Japonamat Опубликовано 14 января, 2015 Поделиться Опубликовано 14 января, 2015 Даже не знаю как назвать тему. Не могу написать кусок кода для Game Trainer Studio, запутался с логикой, мать ее за ногу . Помогите, парни!В общем, суть такая. Используются 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Но вот с двумя условиями никак не дается, зараза. Помогите, парни! Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 14 января, 2015 Поделиться Опубликовано 14 января, 2015 Привет! Показать контент 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 Ссылка на комментарий Поделиться на другие сайты Поделиться
Japonamat Опубликовано 14 января, 2015 Автор Поделиться Опубликовано 14 января, 2015 В 14.01.2015 в 07:23, keng сказал: Привет! Показать контент А в пятой строке точно 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 Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 14 января, 2015 Поделиться Опубликовано 14 января, 2015 Если написать просто if, то будут проверены оба условия - сначала первое, затем второе. В моем же варианте если выполнится первое условие, то второе проверяться не будет и наоборот. Ссылка на комментарий Поделиться на другие сайты Поделиться
Japonamat Опубликовано 14 января, 2015 Автор Поделиться Опубликовано 14 января, 2015 Не принимает генератор кода, собака - 'ElsIf 0EB6990C 01' - Invalid command Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 14 января, 2015 Поделиться Опубликовано 14 января, 2015 Так попробуй написать Elsif, как он хочет. Вроде бы там есть выпадающий список с доступными командами. Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Tortoed Опубликовано 14 января, 2015 Поделиться Опубликовано 14 января, 2015 keng! Просьба к тебе перезалей исходники а то скачать не получается Ссылка на комментарий Поделиться на другие сайты Поделиться
Japonamat Опубликовано 14 января, 2015 Автор Поделиться Опубликовано 14 января, 2015 Да, выпадающий список. Но Elsif он не принимает ни в каком виде почему-то. Видимо, не туда вставляю. И еще. Когда выбираю Elsif, то окно ввода адреса остается неактивным, активно только окно вода значения, причем меняется с НЕХ на ASCII Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 14 января, 2015 Поделиться Опубликовано 14 января, 2015 Tortoed, привет! Какие исходники и куда перезалить?Japonamat, я посмотрю после работы, сейчас нету доступа к Windows. Ссылка на комментарий Поделиться на другие сайты Поделиться
Japonamat Опубликовано 14 января, 2015 Автор Поделиться Опубликовано 14 января, 2015 Если вдруг понадобится, вот ссылка на Game Trainer Studio. Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 14 января, 2015 Поделиться Опубликовано 14 января, 2015 Так, все оказалось просто. Нужно было вместо "Elsif" написать "Elseif".//NullAlex: так это ж очевидно жеж)Ваш К.О. //Не совсем - в самой программе написано "Elsif". Ссылка на комментарий Поделиться на другие сайты Поделиться
Japonamat Опубликовано 14 января, 2015 Автор Поделиться Опубликовано 14 января, 2015 (изменено) В 14.01.2015 в 17:15, keng сказал: Так, все оказалось просто. Нужно было вместо "Elsif" написать "Elseif".//NullAlex: так это ж очевидно жеж)Ваш К.О. Да, так генератор схавал, но код тогда не работает, к сожалению И попробовал на всякий случай "Else if" - тоже не пашет. Изменено 14 января, 2015 пользователем Japonamat Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 14 января, 2015 Поделиться Опубликовано 14 января, 2015 Раз ни в какую не хочет - замени "Elseif" на просто "If" и пусть оно работает. По идее, ничего страшного случиться не должно. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Japonamat Опубликовано 14 января, 2015 Автор Поделиться Опубликовано 14 января, 2015 Ок, спасибо. Покопаюсь еще. По моему, еще накосячил с этим адресом - 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Но не работает, гад. Где накосячил? Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения