Пишем безпалевный Кач Скилов

Забаненный
Статус
Оффлайн
Регистрация
18 Фев 2017
Сообщения
44
Реакции[?]
16
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Все наверное уже знают такую функцию как "Безпалевная прокачка скилла".
И так, разберемся как должно работать это клео ?
Ну по идее, оно просто отнимает патроны у игрока.


Наша последовательность действий:
  • 1) Вначале получаем оружие которое у игрока в руках. Записываем его в переменную.
  • 2) Потом получаем количество патрон этого оружия. Записываем в переменную.
  • 3) Отнимаем от количества патрон единицу.
  • 4) Устанавливаем на это оружие количество патрон равное переменной от которой мы отняли единицу.
  • 5) Ждем секунду и прыгаем назад.
    Приступим к коду.
    Получаем оружие в руках:
  • 0470: 1@ = actor $PLAYER_ACTOR current_weapon
    Получаем количество патрон этого оружия:
    041A: 2@ = actor $PLAYER_ACTOR weapon 1@ ammo
    Отнимаем единицу:
    000E: 2@ -= 1
    И устанавливаем количество патрон на 1 меньше чем было.
    017B: set_actor $PLAYER_ACTOR weapon 1@ ammo_to 2@
    В итоге , благодаря этим опкодам, и немного магии, мы получаем клео такого вида:
    {$CLEO .cs}

    //-------------MAIN---------------
    0000: NOP
    0001: wait 0 ms
    0006: 3@ = 0

    :ALEKILL_24
    0001: wait 0 ms
    00D6: if
    0AB0: key_pressed 105 // если нажата кнопка 105
    004D: jump_if_false @ALEKILL_61 // Если нет, проверяем другую кнопку
    0006: 3@ = 1 // Если да, то устанавливаем переменную 3@ на единицу. 1 = активировано
    0002: jump @ALEKILL_90 //

    :ALEKILL_61
    00D6: if
    0AB0: key_pressed 104 // если нажата 104
    004D: jump_if_false @ALEKILL_90 // если не нажата, то прыгнуть дальше
    0006: 3@ = 0 // если нажата, то устанавливаем переменную на 0. 0 = не активировано
    0002: jump @ALEKILL_90 // прыгаем дальше

    :ALEKILL_90
    00D6: if
    0039: 3@ == 1 // если активировано
    004D: jump_if_false @ALEKILL_24 // если нет, пойти проверить кнопки
    0470: 1@ = actor $PLAYER_ACTOR current_weapon // записываем в первую переменную оружие игрока
    041A: 2@ = actor $PLAYER_ACTOR weapon 1@ ammo // во вторую - кол-во патрон этого оружия
    000E: 2@ -= 1 // отнимаем единицу от кол-ва
    017B: set_actor $PLAYER_ACTOR weapon 1@ ammo_to 2@ // устанавливаем патрон на один меньше чем было
    0001: wait 1030 ms // ждем 1с
    0002: jump @ALEKILL_24 // и прыгаем на проверку кнопок.
    Ну вот как то так, вроде все понятно.
 
Сверху Снизу