Skip to content

Instantly share code, notes, and snippets.

@namikiri
Last active January 7, 2017 22:48
Show Gist options
  • Save namikiri/59808e5082ab331e297e7a16d3fd7c04 to your computer and use it in GitHub Desktop.
Save namikiri/59808e5082ab331e297e7a16d3fd7c04 to your computer and use it in GitHub Desktop.
Модули для m0ssion
// Автоматическая добыча алмазов в Золотой Лихорадке
// Чтобы начать добывать, ударь любую шахту киркой
// Как только кирки кончатся, скрипт остановится.
var doingItNow = false,
objectId = '',
doerTimer = null;
function detect_doit (cmd)
{
var cmds = cmd.split(' ');
if (cmds[0] == 'OBJ_ACT' && cmds[4] == 'doit')
{
if (!doingItNow)
{
m0s.log('Starting DOING IT HAЯD!', 'info', 'klondike');
m0s.sendToClient(':srv PRIVMSG 0 :Автоигра запущена. Автоматические удары киркой будут остановлены, если закончатся кирки, или если Вы ещё раз нажмёте «Ударить киркой»');
objectId = cmds[2];
doerTimer = setInterval(function() {m0s.sendToServer ('OBJ_ACT 22 '+objectId+' 1 doit')},
Math.floor(Math.random() * 1000 + 1000));
doingItNow = true;
}
else
{
clearInterval(doerTimer);
doingItNow = false;
m0s.log('Klondike autoplay is stopped.', 'info', 'klondike');
m0s.sendToClient(':srv PRIVMSG 0 :Автоигра остановлена. Чтобы перезапустить, ещё раз ударьте шахту киркой.');
}
return false;
}
return cmd;
}
function detect_end(cmd)
{ // :srv PRIVMSG 0 :Чтобы начать добывать
var cmds = cmd.split(' ');
if (cmds[0] == ':srv' && cmds[1] == 'PRIVMSG' && cmd.indexOf('Чтобы начать добывать') > -1)
{
clearInterval(doerTimer);
doingItNow = false;
m0s.log('Klondike autoplay is stopped.', 'info', 'klondike');
m0s.sendToClient(':srv PRIVMSG 0 :Автоигра остановлена, потому что у вас закончились кирки.');
}
return cmd;
}
m0s.addEvent('send', detect_doit);
m0s.addEvent('receive', detect_end);
// Отключает погоду на планете, из-за неё Гала может сильно лагать
function no_weather (command)
{
if (command.indexOf('WEATHER') > -1)
return false;
else
return command;
}
m0s.addEvent ('receive', no_weather);
// Отключает смайлы ВЕЗДЕ. Ибо заебали.
UI.replaceSmiles = function(h, u, j) { return h; }
// Самострел: автоматическая игра в Галатир
// Чтобы запустить, выполни действие "Начать игру"
// Как только жетоны кончатся, скрипт остановится.
var shots = 0,
nowShooting = false,
objectId = '';
function shoot()
{
if (shots >= 5)
{
m0s.sendToClient(':srv PRIVMSG 0 1 :Отстреляли, пытаемся использовать новый жетон...');
m0s.log ('Used all the bullets, reloading the gun', 'info', 'jewtone');
shots = 0;
m0s.sendToServer('ACTION 781 '+objectId);
}
else
{
m0s.sendToServer('ACTION 780 '+objectId);
shots++;
}
if (nowShooting)
setTimeout(shoot, Math.floor(Math.random()*2000 + 1000));
}
function detect_shoot_start(cmd)
{
var cmds = cmd.split(' ');
if (cmds[0] == 'ACTION' && cmds[1] == '781')
{
if (nowShooting)
{
nowShooting = false;
m0s.sendToClient (':srv PRIVMSG 0 1 :Самострел выключен пользователем.');
m0s.log ('Autoshooting is stopped by user', 'info', 'jewtone');
return false;
}
else
{
nowShooting = true;
objectId = cmds[2];
setTimeout(shoot, Math.floor(Math.random()*2000 + 1000));
m0s.sendToClient (':srv PRIVMSG 0 1 :Самострел запущен. Выстрелы будут производиться автоматически до остановки пользователем или пока не закончатся жетоны.');
m0s.log ('Autoshooting is started!', 'info', 'jewtone');
return cmd;
}
}
return cmd;
}
function shoot_result(cmd)
{
var cmds = cmd.split(' ');
if (nowShooting)
{
if (cmds[0] == ':srv' && cmds[1] == 'PRIVMSG')
{
if (cmd.indexOf('У вас нет жетона') > -1)
{
m0s.sendToClient (':srv PRIVMSG 0 1 :Жетоны закончились, самострел выключен.');
m0s.log ('No coins left, stopping the game.', 'info', 'jewtone');
nowShooting = false;
}
}
}
return cmd;
}
m0s.addEvent('receive', shoot_result);
m0s.addEvent('send', detect_shoot_start);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment