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

Лидеры

Популярный контент

Показан контент с высокой репутацией 20.05.2014 во всех областях

  1. Решил проверить, всё ли я понял и вернулся к шагу 9 Туториала CE. Есть решение с использованием структуры игрока и нахождением ID - Туториал CE v. 6.3 шаг 9 v. ID: [ENABLE] alloc(newmem,2048) label(returnhere) label(originalcode) newmem: cmp [ebx+10],1 je originalcode mov [ebx+04],0 originalcode: fldz jmp returnhere "Tutorial-i386.exe"+27E76: jmp newmem returnhere: [DISABLE] "Tutorial-i386.exe"+27E76: mov [ebx+04],eax fldz dealloc(newmem) Это понятно, это прекрасно работает. Я, всё-таки в продолжении своего вопроса, нашёл адреса с указателями здоровья наших игроков (Дейва и Эрика), поэтому вариант Туториал CE v. 6.3 шаг 9 v. Адрес: [ENABLE] alloc(newmem,2048) label(returnhere) label(originalcode) newmem: push edx lea edx,dword ptr [ebx+04] push eax lea eax,[[[006313a0]+4b8]+4] cmp edx,eax pop eax je originalcode push eax lea eax,[[[006313a0]+4bc]+4] cmp edx,eax pop eax je originalcode mov [ebx+04],0 originalcode: pop edx fldz jmp returnhere "Tutorial-i386.exe"+27E76: jmp newmem returnhere: [DISABLE] "Tutorial-i386.exe"+27E76: mov [ebx+04],eax fldz dealloc(newmem) Всё вроде хорошо - при нажатии кнопок "Атака", здоровье наших остаётся неизменным, а враги сразу умирают. Но при нажатии "Случайная игра" умирают все четыре игрока и соответственно мы проиграли. Мастера, пожалуйста подскажите, где я ошибаюсь и почему не работает скрипт. И как правильно всё-таки записать скрипт во втором варианте. А то уже голову сломал. Извините меня тормоза, собственно SER[G]ANT мне уже всё ответил, перед этим. Для таких же лузеров как я, выложу правильный скрипт с использованием адресов с указателями: [ENABLE] alloc(newmem,2048) label(returnhere) label(originalcode) newmem: cmp ebx,[[006313a0]+4b8] je originalcode cmp ebx,[[006313a0]+4bc] je originalcode mov [ebx+04],0 originalcode: fldz jmp returnhere "Tutorial-i386.exe"+27E76: jmp newmem returnhere: [DISABLE] "Tutorial-i386.exe"+27E76: mov [ebx+04],eax fldz dealloc(newmem) Здесь тоже всё прекрасно работает. Как я понял, с использованием регистров для нас - начинающих, лучше вначале быть поосторожнее.
    1 балл
×
×
  • Создать...

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

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