You are not logged in.
Спасибо
Ребят всем привет. Есть вопрос. Возможно ли управляя игроком перемещаться по воздуху также как и на земле, чтоб игрок не падал, а ходил по воздуху. Как это сделать?? С анимацией думаю туговато будет, да и создания невидимой текстуры тоже не все отлично. Думаю как бы внушить игроку что он не в воздухе а на земле, пробовал через память, но не чего не вышло, применял такие адреса:
CPed +0x15C = Некторые статусы анимации: 154 = спринт (бежит с ускорением) 205 = бежит CPed +0x534 = Статус бега: 4 = начинает бежать 6 = бежит 7 = спринт (бежит с ускорением)
Помогите
0AA6: call_method 0x5E3AE0 struct (ped_struct) num_params 0 pop 0
Cпасибо, то что нужно
Ребят, как заставить актёра одеть очки ночного виденья не применяя анимацию, т.е. пропустить тот момент когда актер одевает очки???
Во общем вопрос закрыт, спасибо всем.
Я всё-таки не понимаю, что мешает отнять единицу от высоты?
Не точно отнимается, машина например все равно чуть-чуть поднимается наверх(если в воздухе), мне нужна точность, если записал координаты машины, телепортнул её на эти координаты, чтоб машина была на тех же координатах, не выше и не ниже. Вообщем нужно подобие опкоду 09BC: только для машины.
По моим тестам этот опкод тоже увеличивает координату Z
088c: протестил, тоже самое
Может через память?
Let's say, the Car Position of this given car starts at 0xC5F5DB4: +48 = CarPosX +52 = CarPosY +56 = CarPosZ
но не знаю как воспользоваться
-------------------
Seemann извеняюсь
HH wrote:Всем привет.
09BC: put_actor $PLAYER_ACTOR at 0.0 0.0 0.0Этот опкод не "подстраховывается" т.е. не увеличивается координату Z на 1.0. Нужен аналогичный опкод, только для машины. Кто может помочь??
00AB
Спасибо, попробую
Всем привет.
09BC: put_actor $PLAYER_ACTOR at 0.0 0.0 0.0
Этот опкод не "подстраховывается" т.е. не увеличивается координату Z на 1.0. Нужен аналогичный опкод, только для машины. Кто может помочь??
Voron295 wrote:1) Как узнать ид машины, только ид нужен.
Пробовал 1@ = Car.Id (0@) выдает ошибку при комплированиеЕсли идёт речь о ID модели машины, то это должно подойти:
0441: 1@ = car 0@ modelПри условии, что в 0@ записан хендл машины и эта машина существует.
Насчёт флагов - ты их читать хочешь или записывать?
По идее они же включаются и выключается, мне надо чтоб я мог включить каждый флаг и отключить и еще хотелось бы узнать статус определенного флага т.е, узнать включен ли флаг или выключен
1) Как узнать ид машины, только ид нужен.
Пробовал 1@ = Car.Id (0@) выдает ошибку при комплированиеЕсли идёт речь о ID модели машины, то это должно подойти:
0441: 1@ = car 0@ modelПри условии, что в 0@ записан хендл машины и эта машина существует.
Насчёт флагов - ты их читать хочешь или записывать?
По идее они же включаются и выключаются, мне надо кажды
И как теперь задать своё значение чтобы работало??
оно перечитывается при установки гидравлики
Возможно ли по другому пересчитать, без гидры???
Ладно. Есть вопросы:
1) Как узнать ид машины, только ид нужен.
Пробовал 1@ = Car.Id (0@) выдает ошибку при комплирование
2) Как пользоваться:
+0xCC = [hex] modelFlags +0xD0 = [hex] handlingFlags
Допустим я флаги знаю и т.д.
; (af) modelFlags!!! WARNING - Now written HEX for easier reading of flags ; ; 1st digit 1: IS_VAN 2: IS_BUS 4: IS_LOW 8: IS_BIG ; 2nd digit 1: REVERSE_BONNET 2: HANGING_BOOT 4: TAILGATE_BOOT 8: NOSWING_BOOT ; 3rd digit 1: NO_DOORS 2: TANDEM_SEATS 4: SIT_IN_BOAT 8: CONVERTIBLE ; 4th digit 1: NO_EXHAUST 2: DOUBLE_EXHAUST 4: NO1FPS_LOOK_BEHIND 8: FORCE_DOOR_CHECK ; 5th digit 1: AXLE_F_NOTILT 2: AXLE_F_SOLID 4: AXLE_F_MCPHERSON 8: AXLE_F_REVERSE ; 6th digit 1: AXLE_R_NOTILT 2: AXLE_R_SOLID 4: AXLE_R_MCPHERSON 8: AXLE_R_REVERSE ; 7th digit 1: IS_BIKE 2: IS_HELI 4: IS_PLANE 8: IS_BOAT ; 8th digit 1: BOUNCE_PANELS 2: DOUBLE_RWHEELS 4: FORCE_GROUND_CLEARANCE 8: IS_HATCHBACK ; ; (ag) handlingFlags - written in HEX ; ; 1st digit 1: 1G_BOOST 2: 2G_BOOST 4: NPC_ANTI_ROLL 8: NPC_NEUTRAL_HANDL ; 2nd digit 1: NO_HANDBRAKE 2: STEER_REARWHEELS 4: HB_REARWHEEL_STEER 8: ALT_STEER_OPT ; 3rd digit 1: WHEEL_F_NARROW2 2: WHEEL_F_NARROW 4: WHEEL_F_WIDE 8: WHEEL_F_WIDE2 ; 4th digit 1: WHEEL_R_NARROW2 2: WHEEL_R_NARROW 4: WHEEL_R_WIDE 8: WHEEL_R_WIDE2 ; 5th digit 1: HYDRAULIC_GEOM 2: HYDRAULIC_INST 4: HYDRAULIC_NONE 8: NOS_INST ; 6th digit 1: OFFROAD_ABILITY 2: OFFROAD_ABILITY2 4: HALOGEN_LIGHTS 8: PROC_REARWHEEL_1ST ; 7th digit 1: USE_MAXSP_LIMIT 2: LOW_RIDER 4: STREET_RACER ; 8th digit 1: SWINGING_CHASSIS
Как расчитать и применить например для этого
; 1st digit 1: IS_VAN
@Voron295 все читает правильно, получил значение подвески -0.15 для Bravura, в handling совпало. Но почему же нельзя вбить значение в этот адрес, читать можно, а задать нельзя? И как теперь задать своё значение чтобы работало??
HH wrote:Не пойму в чем проблема, помогите пожалуйста
Отсчёт ведётся с нуля. Для бравуры не 2, а 1.
Все равно не работает
полазил по форуму нашёл вот это
LANDSTAL c2b9dc BRAVURA c2babc BUFFALO c2bb9c LINERUN c2bc7c PEREN c2bd5c SENTINEL c2be3c DUMPER c2bf1c FIRETRUK c2bffc ...............................
может как то связано с этим
Ребят так и не решилась проблемка
Пытаюсь написать скрипт для определенной машины, которая должна по идее стать выше, т.е. поднять подвеску
{$CLEO} 0000: :1 wait 0 if actor.Driving($PLAYER_ACTOR) jf @1 03c0: 0@ = $PLAYER_ACTOR 0@ = 0xC2B9DC 1@ = 2 // по идее для машины Bravura, как мне сказали 1@ *= 224 005A: 0@ += 1@ 0@ += 0xBC 0A8C: write_memory 0@ size 4 value -0.3 virtual_protect 0 jump @1
Не пойму в чем проблема, помогите пожалуйста
Спасибо, а вот на счёт порядкового номера в handling.cfg
Имеется ввиду, каким по счёту он в файле.
аааа, спасибо=)
Что-то не работает
HH wrote:Как пользоваться адресами handling для машины [Адреса]
Заголовок 3 пункт 3.2
Спасибо
Разузнал тут:
1@ = 5 // Тут ID хэндлинга, по идее, порядковый номер в handling.cfg (не ID машины). Короче, надо подбирать для нужного ID машины
5 - Bravura
как узнать остальные???
И ещё вопрос как убрать эффект такого типа, когда в машине: при повреждение детали и сталкивание с чем либо появляются много темных треугольничков
HH wrote:Как пользоваться адресами handling для машины [Адреса]
Заголовок 3 пункт 3.20@ = 0xC2B9DC 1@ = 5 // Тут ID хэндлинга, по идее, порядковый номер в handling.cfg (не ID машины). Короче, надо подбирать для нужного ID машины 1@ *= 224 005A: 0@ += 1@ 0@ += 0x14 // тут должно быть необходимое тебе смещение, из указанных в статье 0A8D: 2@ = read_memory 0@ size 4 virtual_protect 0Если нужно записать значение, то вместо опкода 0A8D используй этот:
0A8C: write_memory 0@ size 4 value 2@ virtual_protect 0В этом случае, содержимое переменной 2@ запишется по нужному адресу.
Обращай внимание на указания [byte] к смещениям. Это значит, что величина значения не 4 байта (как обычная переменная), а 1. Соответственно параметр size в опкоде чтения/записи памяти нужно изменить на соответствующий (1).
Спасибо, а вот на счёт порядкового номера в handling.cfg
SULTAN 1400.0 3400.0 2.4 0.0 0.1 -0.1 75 0.80 0.8 0.5 5 200.0 28.0 5.0 4 P 10.0 0.5 0 30.0 1.2 0.15 0.0 0.28 -0.20 0.5 0.3 0.25 0.60 35000 2800 4000002 1 1 0
не этот случайно?
@Seemann спасибо ещё раз, за доп. инфо
А все понял. 1 и 2 стандартно записывается в 0@. Можно за место 1 или 2 поставить любую переменную которая будет передаватся указанной файл.
@HH - примерно так
{$CLEO} 0A92: create_custom_thread "TwoScripts.cs" 1 0A92: create_custom_thread "TwoScripts.cs" 2 if 0@ == 1 then // код первого скрипта else if 0@ == 2 then // код второго скрипта end end 0A93: end_custom_threadСкрипт сохранить как TwoScripts.cs в папке CLEO. Код первого и второго скрипта вставлять, где отмечено.
Спасибо большое, давно хотел узнать про это. Обязательно будет 0@ или можно записать поток в другую переменную?