Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Как сделать это? (https://javascript.ru/forum/node-js-io-js/77726-kak-sdelat-ehto.html)

notzzz 11.06.2019 19:30

Как сделать это?
 
Доброго дня, дорогие форумчане. Я новичок в node.js, поэтому я сумашедший. :help:

У меня есть, скажем так, две команды -
vk.updates.hear(/^(?:Копать рубины|Рубины копать)$/i, async (message, args, bot) => {
	let user = acc.users[user_id(message.user)]; 
  	if(user.timers.shaxta != false) return message.send(`????‍⚖️ >> Копать рубины можно раз в 15 мин. Отдахните!`);
    let mine = utils.pick([1, 2, 3, 4, 5]);
    user.timers.shaxta = true;
	setTimeout(() => {
			timers.shaxta = false;
			vk.api.call('messages.send', {
			peer_id: user.id,
			message: `???????? Вы отдохнули ! Можете копать рубины еще ! Напиши " копать рубины "` 
		});
	}, 600000);
	user.timers.shaxta = true;

if(mine === 1)
	{
		user.donate += 1;
		user.exs += 20;
        return message.send(`@id${user.id}(${user.tag}) вы накопали 1 рубинов????`);
	}

	if(mine === 2)
	{
		user.donate += 2;
		user.exs += 70;
         return message.send(`@id${user.id}(${user.tag}) вы накопали 2 рубинов????`);
	}

	if(mine === 3)
	{
		user.donate += 1;
		user.exs += 100;
         return message.send(`@id${user.id}(${user.tag}) вы накопали 1 рубинов????`);
	}

	if(mine === 4)
	{
		user.donate += 5;
		user.exs += 180;
         return message.send(`@id${user.id}(${user.tag}) вы накопали 5 рубинов????`);
	}

	if(mine === 5)
	{
		user.donate += 3;
		user.exs += 200;
        return message.send(`@id${user.id}(${user.tag}) вы накопали 3 рубинов????`);
	}
});


vk.updates.hear(/^(?:поход)$/i, async (message, args, bot) => {
	let user = acc.users[user_id(message.user)]; 
  	if(user.timers.poxod != false) return message.send(`????‍⚖️ >> Ходить в поход можно раз в час. Отдахните!`);
 let mine = utils.pick([1, 2, 3, 4, 5,6,7,8,9,10]);
user.timers.poxod = true;
	setTimeout(() => {
			user.timers.poxod = false;
			vk.api.call('messages.send', {
			peer_id: user.id,
			message: `???????? Вы отдохнули ! Можете сходить в поход еще ! Напиши " поход "` 
		});
	}, 3600000);
if(mine === 1)
	{
		user.balance += 50000000;
		user.exs += 20;
        return message.send(`@id${user.id}(${user.tag}) ???? вы нашли в кустах 50.000.000 $ ????`);
	}

	if(mine === 2)
	{
		user.balance += 10000000;
		user.exs += 70;
         return message.send(`@id${user.id}(${user.tag}) ???? вы нашли в кустах 10.000.000 $ ????`);
	}

	if(mine === 3)
	{
		user.balance = 0;
		user.exs += 100;
         return message.send(`@id${user.id}(${user.tag}) Вы умерли в походе и потеряли все ваши деньги!`);
	}

	if(mine === 4)
	{
		user.balance = 0;
		user.exs += 100;
         return message.send(`@id${user.id}(${user.tag}) Вы умерли в походе и потеряли все ваши деньги!`);
	}

	if(mine === 5)
	{
		user.balance = 0;
		user.exs += 100;
         return message.send(`@id${user.id}(${user.tag}) Вы умерли в походе и потеряли все ваши деньги!`);
	}
	if(mine === 6)
	{
		user.balance += 800000;
		user.exs += 20;
        return message.send(`@id${user.id}(${user.tag}) ???? вы нашли в кустах 800000 $ ????`);
	}
	if(mine === 7)
	{
		user.balance += 400000;
		user.exs += 20;
        return message.send(`@id${user.id}(${user.tag}) ???? вы нашли в кустах 400.000 $ ????`);
	}
	if(mine === 8)
	{
		user.balance += 100000;
		user.exs += 20;
        return message.send(`@id${user.id}(${user.tag}) ???? вы нашли в кустах 1.000.000 $ ????`);
	}
	if(mine === 9)
	{
		user.balance = 0;
		user.exs += 100;
         return message.send(`@id${user.id}(${user.tag}) Вы умерли в походе и потеряли все ваши деньги!`);
	}
	if(mine === 10)
	{
		user.balance = 0;
		user.exs += 100;
         return message.send(`@id${user.id}(${user.tag}) Вы умерли в походе и потеряли все ваши деньги!`);
	}
});



И вот, с первой случается такая ошибка -
TypeError: Cannot read property 'shaxta' of undefined
    at vk.updates.hear (/home/bot.js:3233:19)
    at hears.use (/home/node_modules/vk-io/lib/index.js:6708:24)
    at next (/home/node_modules/vk-io/node_modules/middleware-io/lib/index.js:198:27)
    at middleware (/home/node_modules/vk-io/node_modules/middleware-io/lib/index.js:198:39)
    at hears.use (/home/node_modules/vk-io/lib/index.js:6708:49)
    at next (/home/node_modules/vk-io/node_modules/middleware-io/lib/index.js:198:27)
    at middleware (/home/node_modules/vk-io/node_modules/middleware-io/lib/index.js:198:39)
    at hears.use (/home/node_modules/vk-io/lib/index.js:6708:49)
    at next (/home/node_modules/vk-io/node_modules/middleware-io/lib/index.js:198:27)
    at middleware (/home/node_modules/vk-io/node_modules/middleware-io/lib/index.js:198:39)
    at hears.use (/home/node_modules/vk-io/lib/index.js:6708:49)
    at next (/home/node_modules/vk-io/node_modules/middleware-io/lib/index.js:198:27)
    at middleware (/home/node_modules/vk-io/node_modules/middleware-io/lib/index.js:198:39)
    at hears.use (/home/node_modules/vk-io/lib/index.js:6708:49)
    at next (/home/node_modules/vk-io/node_modules/middleware-io/lib/index.js:198:27)
    at middleware (/home/node_modules/vk-io/node_modules/middleware-io/lib/index.js:198:39)


А со второй, вот такая -
TypeError: Cannot read property 'poxod' of undefined
    at vk.updates.hear (/home/bot.js:3282:19)
    at hears.use (/home/node_modules/vk-io/lib/index.js:6708:24)
    at next (/home/node_modules/vk-io/node_modules/middleware-io/lib/index.js:198:27)
    at middleware (/home/node_modules/vk-io/node_modules/middleware-io/lib/index.js:198:39)
    at hears.use (/home/node_modules/vk-io/lib/index.js:6708:49)
    at next (/home/node_modules/vk-io/node_modules/middleware-io/lib/index.js:198:27)
    at middleware (/home/node_modules/vk-io/node_modules/middleware-io/lib/index.js:198:39)
    at hears.use (/home/node_modules/vk-io/lib/index.js:6708:49)
    at next (/home/node_modules/vk-io/node_modules/middleware-io/lib/index.js:198:27)
    at middleware (/home/node_modules/vk-io/node_modules/middleware-io/lib/index.js:198:39)
    at hears.use (/home/node_modules/vk-io/lib/index.js:6708:49)
    at next (/home/node_modules/vk-io/node_modules/middleware-io/lib/index.js:198:27)
    at middleware (/home/node_modules/vk-io/node_modules/middleware-io/lib/index.js:198:39)
    at hears.use (/home/node_modules/vk-io/lib/index.js:6708:49)
    at next (/home/node_modules/vk-io/node_modules/middleware-io/lib/index.js:198:27)
    at middleware (/home/node_modules/vk-io/node_modules/middleware-io/lib/index.js:198:39)



Помогите пожалуйста....

Signal 29.06.2019 22:48

я, кончено не сильно силен в vk играх но точно могу сказать
что иногда, может даже по вине инета
let user = acc.users[user_id(message.user)];

user не получает ничего и есть undefined

соотыетсвенно и
if(user.timers.shaxta

тоже будет undefined

тебе зырить надо или в переменной user или в его хеше user.timers

console натыкай и увидишь, де косяк

Signal 30.06.2019 04:31

еще добавлю
вот в таком виде не пиши
Цитата:

..
if(mine === 2)
	    {
	        user.balance += 10000000;
	        user.exs += 70;
	         return message.send(`@id${user.id}(${user.tag}) ???? вы нашли в кустах 10.000.000 $ ????`);
	    }
	    if(mine === 3)
	    {
		...

пиши лучше так
Цитата:

if (mine === 2)
	    {
	        user.balance += 10000000;
	        user.exs += 70;
	         return message.send(`@id${user.id}(${user.tag}) ???? вы нашли в кустах 10.000.000 $ ????`);
	    } else if (mine === 3)  {
}....

else {
console.log('Djopa!!!!!!!!!');
}


Signal 30.06.2019 04:34

ps. фраза "вы нашли в кустах 10.000.000 $" рассмешила, поржал спс...


Часовой пояс GMT +3, время: 11:34.