You are not logged in.
Спасибо, Den_spb!
А как координаты фар вычислить?
Как создавать светящиеся огни такие как, например, на крышах небоскрёбов? Пробовал опкод 09E5: create_flash_light... - ничего не появилось.
И ещё. Возможно, немного странноватый вопрос. Можно ли узнать координаты фар относительно автомобиля?
CraZZZy-GameRRR wrote:Существует ли проверка момента выхода актёра из машины?
А может через адрес памяти ?
CPed +0x530 = [dword] Статус:
0 = покидает машину, падает с байка или что-то в этом роде.... 0A96: 0@ = actor $PLAYER_ACTOR struct inc(0@,0x530) 0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0 if 0@ == 0 then // Аокидает машину end ....Или может тут найдёшь http://gtamodding.ru/wiki/Адреса_Памяти … 0.B4.D1.8B
Большое спасибо, Deniska! Работает!
CraZZZy-GameRRR wrote:Существует ли проверка момента выхода актёра из машины?
А может через адрес памяти ?
CPed +0x530 = [dword] Статус:
0 = покидает машину, падает с байка или что-то в этом роде.... 0A96: 0@ = actor $PLAYER_ACTOR struct inc(0@,0x530) 0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0 if 0@ == 0 then // Аокидает машину end ....Или может тут найдёшь http://gtamodding.ru/wiki/Адреса_Памяти … 0.B4.D1.8B
Спасибо! Сегодня уже поздно, спать ложусь. Завтра обязательно попробую так сделать.
CraZZZy-GameRRR wrote:Увы, но данный опкод, как оказалось, отвечает только за ВХОД, но не за ВЫХОД, а именно он мне и нужен. Я полазил в поисковике опкодов в SB, но нужной проверки не нашёл.
Тогда надо искать альтернативный способ. В крайнем случае измерять циклом расстояние между актером и центром машины. Если оно начало увеличиваться, значит актер начал выходить.
В принципе можно так сделать, но немного муторновато. А вообще странно - есть проверка входа, но нет проверки выхода.
Попробуй
09DE: actor $PLAYER_ACTOR entering_car
Увы, но данный опкод, как оказалось, отвечает только за ВХОД, но не за ВЫХОД, а именно он мне и нужен. Я полазил в поисковике опкодов в SB, но нужной проверки не нашёл.
Проверяй если актёра НЕТУ в машине
Я бы с радостью, но проблема в том, что когда актёр выходит из машины, проверка not Actor.Driving($PLAYER_ACTOR) и not Actor.InCar($PLAYER_ACTOR, 0@) говорит, что он в авто.
Существует ли проверка момента выхода актёра из машины?
Там массив флагов. Юзай опкоды test bit.
А какой из нх за тип двигателя отвечает, не знаешь?
При считывании из памяти типа двигателя авто (+0x75), каждый раз получаю какие-то разные и непонятные значения, типа 0, 128, 310 и т.п.
для начала надо код нитро искать, а нитрометры
я в интернете гте-то видел
Я только этот сумел раздобыть - http://sa-sity.ucoz.ru/load/0-0-0-85-20. Принцип работы, к сожалению, понять не смог, может ты растолкуешь?
и ещё вопросик.
Что делает опкод 0AB3?
Народ, подскажите, как количество оставшегося нитро у тачки узнать?
а что, опкода 0ABE: vehicle 0@ engine_on не существует ?
Спасибо! Теперь всё работает правильно. Я думал, этот опкод установка, а он, оказывается, проверка.
Хочу проверить, включён двигатель у авто или нет. Считываю информацию из ячейки +1064. Если значение равно 0 - движок выключен, 16 - включён.
03c0: 1@ = actor $PLAYER_ACTOR car 0A97: 0@ = car 1@ struct 0@ += 1064 0A8D: 1@ = read_memory 0@ size 1 virtual_protect 0
Проверяю, равно ли значение переменной 1@ 16-ти, т.е. включён ли двигатель?
if 1@ == 16 then //TRUE else //FALSE end
Проверка выдаст TRUE, если двигатель включён.
Проверка выдаст FALSE, если:
а) двигатель выключен
б) двигатель включён и включён ручник (???)
Что это за глюк такой, или я может что не так делаю?
Правильно понимаете, а как дальше - незнаю
Это спрашивайте у товарища Seemann`а или listener`а.
Хорошо, спрошу у них.
Вопрос такой: можно ли в игру добавить свои новые иконки для карты? Я так понимаю, добавляем новую иконку в hud.txd, а дальше как?
А как включить/выключить правую/левую заднюю фару?
Короче, по фарам. Получается вот что:
dword по смещению 0x584 содержит массив битов, определяющих рендеринг огней на машинах:
бит 0 - правая фара,
бит 1 - левая фара,
биты 2 и 3 - стоп-сигналы. Они всегда вместе горят.
Может что-то еще определяет свечение огней такси на крыше.
Скриптовые биты совсем не нужны оказались. Чтобы проверить только состояние фар::IsCarLightsOn 0A97: 0@ = car 0@ struct 0@ += 0x584 0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0 if or 08B7: test 0@ bit 0 08B7: test 0@ bit 1 then 0485: return_true else 059A: return_false end 0AB2: ret 0Есть еще темка, где чинились и разбивались эти фары.
Спасибо, ALIEN, хотя всё вышеизложенное я уже на своём личном опыте понял.
ага, 3 и 4 биты включаются скриптовым опкодом 067F. На него функция реагирует прекрасно, но вот игровой движок видимо включает фары через dword по смещению 0x584. Тогда функция должна быть переписана примерно так:
Я что заметил, в предыдущей версии кода (с моими поправками) скрипт выдаёт TRUE, если горит правая фара (не обращая внимания на левую). Здесь же скрипт выдаёт TRUE когда фары должны гореть (даже если они разбиты). Мне как раз именно это и нужно.
И ещё. У тебя скрипт выдаёт TRUE, когда я торможу и у тачки загораются тормозные огни. Исправь пожалуйста.
-----------
вопрос не новый, да и ответ не изменился: НЕЛЬЗЯ
но можно рассчитать, исходя из:
+скорости
+передачи
+максимальной скорости
+общего количества передач
Ну я в принципе так и сделал, но результатом не очень доволен - уж много всяких нюансов учитывать надо. Например, жму на ручник и на газ - обороты должны быть большие, а они оказываются немногим выше нуля или при переключении передач стрелка тахометра должна более-менее плавно опускалась или поднималась и т.д. А ты, 3Doomer, случайно не знаешь, может где-нибудь есть скрипт нормального тахометра, а то я кроме Camera-Hack`а, в котором он есть, больше ничего не нашёл.
Спасибо, ALIEN!
Сначала скрипт всегда выдавал FALSE, но я нашёл список всех адресов памяти, прочитал статью про биты переменных. Вообщем, вместо
0@ += 0x4A8
написал
0@ += 1412
и
if or
08B7: test 0@ bit 3
08B7: test 0@ bit 4
...заменил на
if
08B7: test 0@ bit 0
...Заработало!
И ещё один вопрос - можно-ли узнать обороты двигателя авто?
Смутно разбираюсь в адресах памяти и как с ними работать. Сначала пытался сам понять но не смог. Вообщем нужно из памяти считать информацию, включены или выключены фары у авто. Лучше не объясняйте мне (всё равно врядли не пойму), а готовый исходник дайте.