Загрузка...

Скрипт мини игры в беседе вк

Тема в разделе Backend создана пользователем Alex_85461 9 июн 2018. 3412 просмотров

Загрузка...
  1. Alex_85461
    Alex_85461 Автор темы 9 июн 2018 Заблокирован(а) 27 24 фев 2017
    Код

    let strings = {
    cmd_start: ["дуэль", "драка", "пиздилка", "пизделка", "стрела"],
    wait_opponent: [" кто хочет с ним попиздиться?"],
    accept: ["я", "+","го","Го"],
    accepted: [" согласился(лась) попиздиться с "],
    msg_battle_exists: ["вы уже пиздитесь"],
    msg_winner: [" победил(а) в пиздилке "],
    timeout: [" никто не согласился пиздиться"],
    action_timeout: [" съебался от "],
    actions: [
    ["сделать шишку на лбу", "украсть душу", "ударить по почкам", "поставить подножку","Хуем по лбу провести,грех с души свести!"],
    ["прописать по щам", "сломать ребра", "дать с левой", "свалить на прохожего","Позвать сына маминой подруги"],
    ["обидеться", "Нож в печень", "кинуть помидор", "кончить на лицо","подписаться на https://vk.com/qboyd_game";],
    ["укусить", "выколоть глаз", "выпороть", "тыкнуть пальцем", "Разбить бутыль об голову"],
    ["пердануть", "убежать", "отшлепать", "выключить свет", "Вырвать волосы"],
    ["отсосать", "пронзить взглядом", "взять в заложники", "выбить зуб","Щекотать"],
    ["заплакать", "пошутить про мамку", "обосцать", "спрятаться", "Включить мало половин"],
    ["поджопник", "унизить", "наложить проклятье анимешника", "убить", "Вы кто такие, я вас не звал, идите нахуй!"],
    ["сломать иголку об яйцо", "бухнуть", "покурить", "позвонить в 102","Вызвать сатану"],
    ["порезать лук", "оторвать губу", "толкнуть в говно", "сбрить брови","Сделать клизму"],
    ["доказать отсутствие мозга", "написать заявление в полицию", "выкачать мозг", "сломать ноготь","Сломать психику"],
    ["натравить собаку", "облить кипятком", "удалить мозг через компьютер", "задушить туалетной бумагой","Сломать член"],
    ["Посадить на кол", "Послать нахуй", "Насрать в рот", "Адвокаааат", "растянуть очко"],
    ["Кинуть арматуру", "Бездействовать", "Сломать логику ", "Вертеть на хую ","Пирсинг на глаз"],
    ]
    }

    Array.prototype.random = function() {
    return this[Math.floor(Math.random() * this.length)];
    }

    let battles = {};
    let users = {};

    vk.addListener.messages(function(msg) {
    //if (msg.out) return;
    if (msg.chat_id === 0) return;
    if (typeof battles[msg.chat_id] == "undefined") battles[msg.chat_id] = {};
    if (typeof users[msg.user_id] == "undefined") {
    vk.api.users.get({
    user_ids: msg.user_id
    }, function(res) {
    users[msg.user_id] = res.response[0].first_name + " " + res.response[0].last_name;
    handle(msg);
    });
    } else handle(msg);
    });

    function handle(msg) {
    //let args = msg.body.toLowerCase().split(" ");
    let cmd = msg.body.toLowerCase();
    if (typeof battles[msg.chat_id][msg.user_id] != "undefined") {
    battles[msg.chat_id][msg.user_id].setAction(msg);
    } else if (strings.cmd_start.includes(cmd)) {
    if (typeof battles[msg.chat_id][msg.user_id] != "undefined") {
    msg.send(strings.msg_battle_exists.random());
    return;
    }
    if (typeof battles[msg.chat_id].wait != "undefined") accept(msg);
    else create(msg);
    } else if (typeof battles[msg.chat_id][msg.user_id] == "undefined" &&
    typeof battles[msg.chat_id].wait != "undefined" &&
    strings.accept.includes(cmd)) accept(msg);
    }

    function create(msg) {
    battles[msg.chat_id][msg.user_id] = new Battle(msg.chat_id, msg.user_id);
    battles[msg.chat_id].wait = battles[msg.chat_id][msg.user_id];
    msg.send(users[msg.user_id] + strings.wait_opponent.random());
    }

    function accept(msg) {
    battles[msg.chat_id][msg.user_id] = battles[msg.chat_id].wait;
    delete battles[msg.chat_id].wait;
    battles[msg.chat_id][msg.user_id].setOpponent(msg.user_id);
    msg.send(users[msg.user_id] + strings.accepted.random() + users[battles[msg.chat_id][msg.user_id].users[0]]);
    }

    class Battle {
    constructor(chatId, userId) {
    this.chatId = chatId;
    this.users = [userId];
    let instance = this;
    this.timeoutId = setTimeout(function() {
    delete battles[chatId][userId];
    delete battles[chatId].wait;
    instance.message(users[userId] + strings.timeout.random());
    }, 60000);
    }

    setAction(msg) {
    if (this.currentAction == msg.user_id) {
    let index = msg.body.split(" ").shift();
    try {
    index = parseInt(index);
    if (index !== 0 && !isNaN(index)) {
    if (index == this.target[this.getOpponent(msg.user_id)]) this.setWinner(msg.user_id);
    else this.nextAction();
    }
    } catch (e) {}
    }
    }

    setOpponent(userId) {
    this.users.push(userId);
    this.currentAction = this.users.random();
    let cnt = strings.actions.random().length;
    this.target = {};
    this.target[this.users[0]] = Math.floor(Math.random() * cnt);
    this.target[this.users[1]] = Math.floor(Math.random() * cnt);
    this.nextAction();
    }

    nextAction() {
    this.currentAction = this.getOpponent(this.currentAction);
    let msg = users[this.currentAction] + " ебашь\n";
    let actions = strings.actions.random();
    for (let id in actions) {
    if (actions.hasOwnProperty(id)) {
    msg += (parseInt(id) + 1) + " " + actions[id] + "\n";
    }
    }
    clearTimeout(this.timeoutId);
    let chatId = this.chatId;
    let instance = this;
    this.timeoutId = setTimeout(function() {
    delete battles[chatId][instance.users[0]];
    delete battles[chatId][instance.users[1]];
    instance.message(users[instance.currentAction] + strings.action_timeout.random() + users[instance.getOpponent(instance.currentAction)]);
    }, 60000);
    this.message(msg);
    }

    getOpponent(userId) {
    return userId == this.users[0] ? this.users[1] : this.users[0];
    }

    message(text) {
    let chatId = this.chatId;
    vk.api.messages.send({
    chat_id: chatId,
    message: text
    });
    }

    setWinner(userId) {
    clearTimeout(this.timeoutId);
    let chatId = this.chatId;
    delete battles[chatId][this.users[0]];
    delete battles[chatId][this.users[1]];
    let winner = users[userId];
    let looser = users[this.getOpponent(userId)];
    let msg = winner + strings.msg_winner.random() + looser;
    this.message(msg);
    }
    }

    var coin, random;
    coin = ["Иди нахуй!.", "Он тупой еблан", "Ха-ха-ха, иди нахуй. Кхм..."];

    random = function() {
    return coin[Math.floor(Math.random() * coin.length)];
    };


    vk.addListener.messages(function (msg) {
    if (msg.body === "/Go") {
    return msg.reply(random());
    }
    });
    Мини инструкция:
    Создаём беседу
    ставим скрипт на вкскрипт
    тестим)
     
  2. bot_3115
    bot_3115 9 июн 2018 545 2 янв 2018
    куда вставлять это скрипт в код элемента?
     
  3. Retrl
    Retrl 9 июн 2018 $uicideboy$ in heart <3 0 27 фев 2017
    что за вкскрипт ?
     
  4. Aloxa228_inactive144684
    Aloxa228_inactive144684 9 июн 2018 Мне страшно, я не готов умирать. 110 2 авг 2017
    в вкскрипт
     
  5. WALGED
    WALGED 9 июн 2018 Чтение это фундамент всех ваших мыслей и идей 2320 2 мар 2018
    Ахахахах нет
     
  6. bot_3115
    bot_3115 9 июн 2018 545 2 янв 2018
    сложно я не шарю чё до как делать
     
  7. WALGED
    WALGED 9 июн 2018 Чтение это фундамент всех ваших мыслей и идей 2320 2 мар 2018
    Годно +реп
     
  8. Alex_85461
    Alex_85461 Автор темы 9 июн 2018 Заблокирован(а) 27 24 фев 2017
    bot_3115, Ну что тут не понятного?) Ставим скрипт на вкскрипт не закрываем вкладку пишем в беседу дуэль если бот ответил значит всё робит
     
  9. Alex_85461
    Alex_85461 Автор темы 9 июн 2018 Заблокирован(а) 27 24 фев 2017
    Retrl, Кратко скажу. Подключает скрипты к твоей странице
     
  10. wryty
    wryty 9 июн 2018 Я - то, что делает меня уникальным 128 24 сен 2017
    Годно
     
  11. Retrl
    Retrl 9 июн 2018 $uicideboy$ in heart <3 0 27 фев 2017
    и где это найти ?
     
  12. bot_3115
    bot_3115 9 июн 2018 545 2 янв 2018
    Всмысле скрипт на вкскрипт
     
  13. Alex_85461
    Alex_85461 Автор темы 9 июн 2018 Заблокирован(а) 27 24 фев 2017
    Retrl, Скрипт уже есть осталось его подключить через сайт который я написал в теме
     
  14. Alex_85461
    Alex_85461 Автор темы 9 июн 2018 Заблокирован(а) 27 24 фев 2017
    bot_3115, Через сайт вкскрипт подключать его нужно!
     
  15. Onorm
    Onorm 9 июн 2018 Заблокирован(а) 521 21 май 2017
    Киньте скрин с беседы VK стало интересно что это такое
     
  16. bot_3115
    bot_3115 9 июн 2018 545 2 янв 2018
    Просто впервые с таким столкнулся какие то скрипты на беседу в вк
     
  17. Alex_85461
    Alex_85461 Автор темы 9 июн 2018 Заблокирован(а) 27 24 фев 2017
    bot_3115, Я раньше тоже думал что нереально подключить скрипт к беседе вк))
     
  18. asQ_inactive103103
    asQ_inactive103103 9 июн 2018 Заблокирован(а) 187 15 апр 2017
    Брат, ошибка на вкскрипт
     
  19. Alex_85461
    Alex_85461 Автор темы 9 июн 2018 Заблокирован(а) 27 24 фев 2017
  20. Alex_85461
    Alex_85461 Автор темы 9 июн 2018 Заблокирован(а) 27 24 фев 2017
    asQ_inactive103103, У меня тоже показывало ошибку но бот работал. Возможно ты неправильно авторизовался
     
Top