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

Как автоматизировать смену значения ?


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

Во время игры значение прыгает от 1 до 4.  Хочу сделать так, что бы CE прибавлял всегда 0.5 к дефолтному. Т.е. если 4 то  CE должен сделать 4.5 и зафризить, а когда меняется допустим на 2, то CE должен поставить 2.5 и зафризить. Возможно ли провернуть такое дело ? Помогите пожалуйста :)

mp893eo4vKo.jpg

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

Пишешь вот так вот:
 

Спойлер

// найди записывающую инструкцию, туда впиши прибавку 0,5
// предположим твоё значение в eax
label(mylabel)

code:
mov [mylabel],eax //во временную метку
fld dword [mylabel] //предположим оно у тебя float
fadd dword [mylabel+4] //прибавляем 0.5
fstp dword [mylabel] //возвращаем в метку
mov eax,[mylabel] //возвращаем в eax
jmp return

mylabel: //метка, +0 место для значения, и +4 сколько прибавлять
dd 0 (float)0.5 

 

 

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

5 часов назад, Garik66 сказал:

add [адрес твоего значения],3F000000

Вот ты прямо уверен да? ну попробуй, выполни это, и посмотри что произойдёт... Это ошибка. Если тебе уж хочется сделать так, то делать надо: (и то мы будем прибавлять постоянно умножающуюся составляющую, не получив 0.5)

add [адрес твоего значения],800000

Не забывай о том что float считается НЕ с нуля, хоть ноль в hex и будет равен 0 в float. 

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

В 29.05.2019 в 10:58, DIMITRIS сказал:

CE должен сделать 4.5 и зафризить, а когда меняется допустим на 2

А как оно и в правду будет меняться, если значение заморожено ? К примеру у тебя 4.5 (допустим) ну и заморозило его на этих 4.5..... а как оно потом изменится на 2 ? 

Или ты имеешь введу, поставить сравнение... и если значение ровно 4- то его фриз с дописью в него  0.5 ... а если оно ровно 2.. то его на 2.5 и фриз...  То есть получается, код внутри сам должен следить за данными... Увидел он двойку - сразу запись 2.5 и фриз его.... а если увидел 4 - то дописывает к нему 0.5 и так же фриз его...  ?

А то я что то не фига не понял его замысла... 

Но чел видать из моего круга :lol: в плане ОБЪЯСНЯТЬ. но даже я его и то не понял... 

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

Попробую объяснить подробнее. 

 

Есть значение, которое отвечает за скорость передвижения персонажа. Оно меняется + / - во время игры. По моим наблюдениям - оно может быть следующим: 1,  1.25,  1.5,  1.75,  2,  2.25,  2.5,  2.75,  3,  3.25,  3.50,  3.75,  4. Моя цель - сделать так, что бы это значение было всегда на 0.5 больше от истинного.

 

 

По факту - можно зафризить макс. значение бега (4), но это будет палевно. Исходя из тестов - понял, что нужно добавлять именно 0.5, да бы избежать бана. :D

Если просто без фриза поменять допустим с 3 на 3.5, то при первом же сдвиге персонажа - значение встанет снова на 2.

 

Как вижу решение я: ( Но не знаю как это воплотить в реальность)

Сделать так, что-бы CE прибавлял к истинному значению +0.5 и фризил, но при этом следил за истинным значением, и в случае его изменения менял, что бы не превышать 0.5.

 

Выражаю огромную благодарность за вашу помощь :)

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

5 минут назад, DIMITRIS сказал:

Если просто без фриза поменять допустим с 3 на 3.5, то при первом же сдвиге персонажа - значение встанет снова на 2.

Теперь более понятно - тогда вариант, который предложила @imaginary приемлем.

 

1 час назад, imaginary сказал:

... Это ошибка.

У меня де жавю что ли? По моему я уже один раз так ошибался. :-[

 

8 минут назад, DIMITRIS сказал:

прибавлял к истинному значению +0.5 и фризил

ЗЫ: именно так и будет при использовании её кода.

 

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

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

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

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