Перейти к содержанию

Рекомендуемые сообщения

Даже не знаю как назвать тему. Не могу написать кусок кода для Game Trainer Studio, запутался с логикой, мать ее за ногу o_0 . Помогите, парни!

В общем, суть такая. Используются If, Else, Endif, Elsif, Poke. Другого в генераторе кода в программе нет.

Нужно:

Если по этим адресам значения такие0EB6990C 0002134B22 01Тогда здесь выставляем так02134B21 00 00 00 00Но если0EB6990C 0102134B22 00Тогда должно быть так02134B21 00 01 00 00

Мозги кипят. Вот с такой конструкцией с одним условием справился, все работает на ура

If 02134B21 01Poke 02134B21 00 01 00 00ElsePoke 02134B21 01 01 01 01Endif

Но вот с двумя условиями никак не дается, зараза. Помогите, парни!

 

Ссылка на комментарий
Поделиться на другие сайты

Привет!

 

If 0EB6990C 00 ;Если выполняется условие 1    If 02134B22 01 ;Если выполняется условие 2        Poke 02134B21 00 00 00 00 ;Делаем замену байт    EndIf ;Закрываем второе условие (по вложенности)ElsIf 0EB6990C 01 ;Иначе, если выполняется условие 3    If 02134B22 00 ;Если выполняется условие 4        Poke 02134B21 00 01 00 00 ;Делаем замену байт    EndIf ;Закрываем условие 4EndIf; Закрываем условие 3
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

Привет!

 

А в пятой строке точно

 

ElsIf 0EB6990C 01?
 
Разве не If?
If 0EB6990C 00 ;Если выполняется условие 1    If 02134B22 01 ;Если выполняется условие 2        Poke 02134B21 00 00 00 00 ;Делаем замену байт    EndIf ;Закрываем второе условие (по вложенности)ElsIf 0EB6990C 01 ;Иначе, если выполняется условие 3    If 02134B22 00 ;Если выполняется условие 4        Poke 02134B21 00 01 00 00 ;Делаем замену байт    EndIf ;Закрываем условие 4EndIf; Закрываем условие 3
Ссылка на комментарий
Поделиться на другие сайты

Если написать просто if, то будут проверены оба условия - сначала первое, затем 

второе. В моем же варианте если выполнится первое условие, то второе 

проверяться не будет и наоборот.

Ссылка на комментарий
Поделиться на другие сайты

Да, выпадающий список. Но Elsif он не принимает ни в каком виде почему-то. Видимо, не туда вставляю.

И еще. Когда выбираю Elsif, то окно ввода адреса остается неактивным, активно только окно вода значения, причем меняется с НЕХ на ASCII

Ссылка на комментарий
Поделиться на другие сайты

Так, все оказалось просто. Нужно было вместо "Elsif" написать "Elseif".

//NullAlex: так это ж очевидно жеж)
Ваш К.О. ^_^

 

//Не совсем - в самой программе написано "Elsif".

Ссылка на комментарий
Поделиться на другие сайты

Так, все оказалось просто. Нужно было вместо "Elsif" написать "Elseif".

//NullAlex: так это ж очевидно жеж)

Ваш К.О. ^_^

Да, так генератор схавал, но код тогда не работает, к сожалению :unsure:

И попробовал на всякий случай "Else if" - тоже не пашет.

Изменено пользователем Japonamat
Ссылка на комментарий
Поделиться на другие сайты

Ок, спасибо. Покопаюсь еще. По моему, еще накосячил с этим адресом - 0EB6990C. Похоже, он плавающий, гад. Может, потому код и не пашет, что условие не срабатывает. А вчера этот адрес был вполне себе актуальный.

Ага, нашел статичный адрес и все заработало. Также увидел, что можно упростить код, то есть два условия ни к чему. Пока по крайней мере.

Вот так сделал:

If 0241DA7F 80Poke 02134B21 00 00 00 00ElsePoke 02134B21 00 01 00 00EndIf

Но теперь возникла другая сложность. Код работает по хоткею (шифт), но дело в том, что это условие - "0241DA7F 80" - это снайперский режим, может возникнуть по двум причинам - по шифту и колесиком мыши. А код срабатывает только по шифту, по колесу не пашет. Надо, видимо, отслеживать в памяти этот адрес 0241DA7F и при изменении значения с 00 на 80 запускать код. То есть, это, судя по всему ReadMemory. Вот так попробовал:

ReadMemory BYTE 0241DA7FIf 0241DA7F 80Poke 02134B21 00 00 00 00ElsePoke 02134B21 00 01 00 00EndIf

Но не работает, гад. Где накосячил?

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.