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

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

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

Во время игры значение прыгает от 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 час назад, imaginary сказал:

Вот ты прямо уверен да?

с утра торможу. %) - Плохо болеть однако.

 

Поделиться сообщением


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

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

 

Есть значение, которое отвечает за скорость передвижения персонажа. Оно меняется + / - во время игры. По моим наблюдениям - оно может быть следующим: 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 и фризил

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
3 часа назад, Garik66 сказал:

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

Да ладно, с кем не бывает такого 😄

 

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

×

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

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