You are not logged in.
Можно ли как - нибудь выключить двигатель, не выключая управления (то есть, можно газовать, тормозить, поворачивать...)?
Offline
Постоянно как я создаю актёров,у меня они плавают в воздухе и всегда их 2! (даже когда не плавают в воздухе,как это было в ВС).
В чём проблема?
create_thread @GOP :GOP thread 'GOP' wait 100 Model.Load(#WMYBMX) 038B: load_requested_models :GOP_21 wait 100 Model.Available(#WMYBMX) else_jump @GOP_21 $GOP2 = Actor.Create(CivMale, #WMYBMX, 2495.66, -1677.64, 13.5219)
Offline
Постоянно как я создаю актёров,у меня они плавают в воздухе и всегда их 2! (даже когда не плавают в воздухе,как это было в ВС).
В чём проблема?
Пример кода:
create_thread @GOP :GOP thread 'GOP' wait 100 Model.Load(#WMYBMX) 038B: load_requested_models :GOP_21 wait 100 Model.Available(#WMYBMX) else_jump @GOP_21 $GOP2 = Actor.Create(CivMale, #WMYBMX, 2495.66, -1677.64, 13.5219)
Offline
Можно ли как - нибудь выключить двигатель, не выключая управления (то есть, можно газовать, тормозить, поворачивать...)?
Ахах. Как можно будет газовать если двигатель выключен.
Offline
Можно ли как - нибудь выключить двигатель, не выключая управления (то есть, можно газовать, тормозить, поворачивать...)?
Ахах. Как можно будет газовать если двигатель выключен.
Offline
Нифига себе. Дабл-даблпост. У russkiy не только актёры двоятся
Dr_Emmett_Brown_2011 wrote:Можно ли как - нибудь выключить двигатель, не выключая управления (то есть, можно газовать, тормозить, поворачивать...)?
Ахах. Как можно будет газовать если двигатель выключен.
Понятное дело, никак. Инерция.
Нашёл 2 опкода, не знаю как насчёт управления.
02D4: car 290@($7257,2i) turn_off_engine 0ABF: set_vehicle 0@ engine_state_to 0
Offline
Хотя бы подскажите, как уменьшить звук двигателя...
Offline
Хотя бы подскажите, как уменьшить звук двигателя...
0918: enable_car 34@ engine_sound 0
Offline
~AquaZ~, он глушит двигатель...
Offline
Тогда извращайся; захватывай нажатие кнопок вперед/назад/... и поворачивай/газуй если они нажаты.
Offline
Попробую...
Теперь следующий вопрос: есть 3 опкода:
00A7: car 99@ drive_to 252@ 253@ 254@ 02C2: car 0@ drive_to 7@ 8@ 9@ 0704: car 17@ drive_to $X_BCE2_CHECKPOINTS(26@,85f) $Y_BCE2_CHECKPOINTS(26@,85f) $Z_BCE2_CHECKPOINTS(26@,85f)
Автомобиль находится в Las Vegas, а доехать надо до San Fierro, и при выполнении этих команд машина пытается проехать "напрямик", по дороге он не едет даже с опкодом "00AF: set_car 0@ driver_behaviour_to 1". Как заставить машину ехать по дороге?
Last edited by Dr_Emmett_Brown_2011 (24-10-2011 12:12)
Offline
Как дать актёру Cellphone?
Пытался дать как оружие,но игра вылитает.
Offline
Для этого есть опкод. Не помню названия. Поиск по слову: cellphone
Offline
@russkiy -
0729: AS_actor $PLAYER_ACTOR hold_cellphone 1
@Dr_Emmett_Brown_2011 - ищи на форуме, уже было и давно.
Offline
Можно ли как - нибудь выключить двигатель, не выключая управления (то есть, можно газовать, тормозить, поворачивать...)?
Измени код .exe, чтобы можно было ездить с выключенным двигателем!
Offline
Вопрос №1: вылетает по непонятной мне причине, вот конец записи в SCMLog:
******************************************** thread time_tra Local variables dump: 1 0 100 1010000 1200 1010000 1200 0 0 0 0 1154879004 -1006439718 1107966443 -2147483648 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ******************************************** 00000019: 0006 get numeric params: 1 param 1 = 0 00000026: 0006 get numeric params: 1 param 1 = 5000 00000034: 0AB3 get numeric params: 2 param 1 = 815 param 2 = 0 00000041: 0A92 get numeric params: 1 param 1 = 1 00000054: 1900 ********************************* > Total opcodes: 65462 > Logging finished: 22:51:48 Powered by SCMLog v1.04 *********************************
Откуда взялся опкод 1900? Я его не вставлял, и этот глюк появляется довольно часто, но не всегда...
Вопрос №2: Можно ли как - нибудь разрешить плавать ТОЛЬКО ОДНОМУ АВТОМОБИЛЮ, и чтобы у него колёса "не раскладывались"?
Last edited by Dr_Emmett_Brown_2011 (27-10-2011 00:42)
Offline
Вопрос №2: Можно ли как - нибудь разрешить плавать ТОЛЬКО ОДНОМУ АВТОМОБИЛЮ, и чтобы у него колёса "не раскладывались"?
можно, просто в цикле ставь какой-нибудь плоский объект с коллизией под авто, перед этим узнав уровень воды около игрока, т.е. будет выглядеть примерно так:
{$CLEO} 0000: NOP while not player.Defined($PLAYER_CHAR) wait 0 end 0@ = Object.Create(3095, 0.0, 0.0, 0.0) 0750: set_object 0@ visibility 0 while true wait 0 if actor.Driving($PLAYER_ACTOR) then 03C0: 1@ = actor $PLAYER_ACTOR car car.StorePos(1@, 2@, 3@, 4@) 092E: get_water_height_at 2@ 3@ flag 0 store_to 5@ // записываем уровень воды в месте, где находится авто if 5@ > -100 // если воды поблизости нет, то в переменную 5@ возвращается большое отрицательное число then 5@ -= 0.5 // на самом деле возвращается значение на полметра больше, чем надо, так что отнимаем... object.PutAt(0@, 2@, 3@, 5@) else object.PutAt(0@, 0.0, 0.0, 0.0) end else object.PutAt(0@, 0.0, 0.0, 0.0) end end
Но таким образом будут неточности, ибо не учитываются волны...
Offline
Offline
Возможно-ли в принципе встроить в игру редактор реплеев? Такой же как в жта4 (кастомизация камеры например).
Offline
Вопрос №2: Можно ли как - нибудь разрешить плавать ТОЛЬКО ОДНОМУ АВТОМОБИЛЮ, и чтобы у него колёса "не раскладывались"?
тут у меня есть старый скрипт для плавания по воде, как раз для этого случая -
thread 'seaways' {$CLEO} var $PLAYER_ACTOR: Actor $PLAYER_CHAR: Player 0@: Car 1@: Float 2@: Float 3@: Float 4@: Float 5@: Float 6@: Car 8@: Actor 13@: array 6 of Float end const BOAT_MODEL=#DINGHY {#COASTG} end 0A8C: write_memory 0x96918C size 1 value 0 virtual_protect 0 060A: create_decision_maker_type 0 store_to 12@ 0708: reset_decision_maker 12@ event 13 0708: reset_decision_maker 12@ event 56 0708: reset_decision_maker 12@ event 0 0708: reset_decision_maker 12@ event 44 while true if $PLAYER_CHAR.Defined then if and $PLAYER_ACTOR.Driving 84A7: not actor $PLAYER_ACTOR driving_boat then 03C0: 0@ = actor $PLAYER_ACTOR car while $PLAYER_ACTOR.InCar(0@) if 02bf: car 0@ sunk then // #launch // #jetmax //#COASTG //#DINGHY 09B9: show_entered_car_name 0 Model.Load(BOAT_MODEL) while not Model.Available(BOAT_MODEL) wait 0 end 0@.StorePos(1@, 2@, 3@) 3@ -= 1.2 3@ -= 0.4 6@ = Car.Create(BOAT_MODEL, 1@, 2@, 3@) Model.Destroy(BOAT_MODEL) {0A97: 9@ = car 0@ struct 9@+=1145 0A8C: write_memory 9@ size 1 value 2 virtual_protect 0 9@+=1 0A8C: write_memory 9@ size 1 value 2 virtual_protect 0 9@+=1 0A8C: write_memory 9@ size 1 value 2 virtual_protect 0 9@+=1 0A8C: write_memory 9@ size 1 value 2 virtual_protect 0 } 0A97: 9@ = car 0@ struct 0A97: 10@ = car 6@ struct 9@+=20 10@+=20 0A8D: 9@ = read_memory 9@ size 4 virtual_protect 0 0A8D: 10@ = read_memory 10@ size 4 virtual_protect 0 for 32@ = 0 to 14 0A8D: 11@ = read_memory 9@ size 4 virtual_protect 0 0A8C: write_memory 10@ size 4 value 11@ virtual_protect 0 9@+=4 10@+=4 end 0A97: 9@ = car 0@ struct 0A97: 10@ = car 6@ struct 9@+=68 10@+=68 for 32@ = 1 to 6 0A8D: 11@ = read_memory 9@ size 4 virtual_protect 0 0A8C: write_memory 10@ size 4 value 11@ virtual_protect 0 9@+=4 10@+=4 end 0338: set_car 6@ visibility 0 {0174: 4@ = car 0@ Z_angle 06BE: 5@ = car 0@ y_angle 0175: set_car 6@ Z_angle_to 4@ 0731: set_car 6@ y_angle_to 5@} // 0362: remove_actor $PLAYER_ACTOR from_car_and_place_at 0.0 0.0 0.0 //09B9: show_entered_car_name 0 036a: put_actor $PLAYER_ACTOR in_car 6@ //09B9: show_entered_car_name 1 0683: attach_car 0@ to_car 6@ with_offset 0.0 0.0 0.0 rotation 0.0 0.0 0.0 0852: set_car 6@ damages_visible 0 7@ = 0@.Health 6@.Health = 7@ 0129: 8@ = create_actor_pedtype 23 model #NULL in_car 0@ driverseat 036A: put_actor 8@ in_car 0@ 02ab: set_actor 8@ immunities BP 1 FP 1 EP 1 CP 1 MP 1 04D8: set_actor 8@ drowns_in_water 0 039e: set_actor 8@ locked 1 while_in_car 0526: set_actor 8@ stay_in_car 1 054A: set_actor 8@ immune_to_car_headshots 1 020A: set_car 0@ door_status_to 3 060B: set_actor 8@ decision_maker_to 12@ while true if not $PLAYER_CHAR.Defined then Break end if not $PLAYER_ACTOR.InCar(6@) then Break end if 02BF: car 6@ sunk then 32@ = 0 end if and 82BF: not car 6@ sunk 32@ > 666 {ms} then // 32@ = 0 Break end if 8686: not car 0@ attached then 0683: attach_car 0@ to_car 6@ with_offset 0.0 0.0 0.0 rotation 0.0 0.0 0.0 end 7@ = 6@.Health 0@.Health = 7@ wait 0 end end wait 0 end //065C: release_decision_maker 9@ if and 056E: car 6@ defined 056E: car 0@ defined $PLAYER_CHAR.Defined then 0A97: 9@ = car 6@ struct 9@+=68 for 31@ = 0 to 5 0A8D: 13@[31@] = read_memory 9@ size 4 virtual_protect 0 9@+=4 end 020A: set_car 0@ door_status_to 0 0684: detach_car 0@ 0.0 0.0 0.0 collision_detection 1 0A97: 9@ = car 6@ struct 0A97: 10@ = car 0@ struct 9@+=20 10@+=20 0A8D: 9@ = read_memory 9@ size 4 virtual_protect 0 0A8D: 10@ = read_memory 10@ size 4 virtual_protect 0 for 32@ = 0 to 14 0A8D: 11@ = read_memory 9@ size 4 virtual_protect 0 0A8C: write_memory 10@ size 4 value 11@ virtual_protect 0 9@+=4 10@+=4 end if //and 80E1: not player 0 pressed_key 15 // 02BF: car 0@ sunk then // 0362: remove_actor $PLAYER_ACTOR from_car_and_place_at 0.0 0.0 0.0 036a: put_actor $PLAYER_ACTOR in_car 0@ end 0A97: 10@ = car 0@ struct 10@+=68 for 31@ = 0 to 5 0A8C: write_memory 10@ size 4 value 13@[31@] virtual_protect 0 10@+=4 end end if 056E: car 6@ defined then 6@.Destroy if 056D: actor 8@ defined then 8@.DestroyInstantly end end 0@.RemoveReferences wait 0 09B9: show_entered_car_name 1 end end wait 0 end
Last edited by VcSaJen (28-10-2011 12:41)
[small][/small]
Offline
Sw[ee]t, VcSaJen, спасибо. Попробую оба варианта...
Offline
Часть кода, вызывающий машину и запускающий скрипт:
00D6: if and 0AB0: key_pressed 50 0AB0: key_pressed 98 004D: jump_if_false @SPAWN_310 0006: 10@ = 541 0247: load_model 10@ 038B: load_requested_models :SPAWN_94 0001: wait 10 ms 0256: player $PLAYER_CHAR defined 004D: jump_if_false @SPAWN_94 0248: model 10@ available 004D: jump_if_false @SPAWN_94 04C4: store_coords_to 1@ 2@ 3@ from_actor $PLAYER_ACTOR with_offset 0.0 0.0 0.0 0172: 4@ = actor $PLAYER_ACTOR Z_angle 00A5: 0@ = create_car 10@ at 1@ 2@ 3@ 0175: set_car 0@ Z_angle_to 4@ 02AC: set_car 0@ immunities BP 0 FP 0 EP 0 CP 1 MP 1 036A: put_actor $PLAYER_ACTOR in_car 0@ 0AB4: 5@ = var 807 00BF: 6@ = current_time_hours, 7@ = current_time_minutes 0012: 6@ *= 100 005A: 6@ += 7@ // (int) 0A92: create_custom_thread "TIMETRAVEL.S" 0@ 1 2 5@ 0 5@ 6@ 0 0 0 0 1@ 2@ 3@ 4@ 0249: release_model 10@ 0001: wait 500 ms 0002: jump @SPAWN_11
Часть кода загружаемого скрипта:
03A4: name_thread 'TIME_TRAVEL' 0006: 32@ = 0 0006: 33@ = 5000 0AB3: var 815 = 0 0A92: create_custom_thread "DOOR.S" 0@ //после этого опкода иногда появляется ошибка 0119: car 0@ wrecked 004D: jump_if_false @TIME_TRAVEL_297 0AB4: 30@ = var 814 0039: 30@ == 0 004D: jump_if_false @TIME_TRAVEL_193 0107: 30@ = create_object 18641 at 11@ 12@ 13@
А вот 2 пример:
Скрипт №1:
03A4: name_thread 'KITT_SCAN_ON' :KITT_SCAN_ON_19 0001: wait 0 ms 0256: player $PLAYER_CHAR defined 004D: jump_if_false @KITT_SCAN_ON_19 00D6: if or 00DD: actor $PLAYER_ACTOR driving_car_with_model #REGINA 00DD: actor $PLAYER_ACTOR driving_car_with_model #BFINJECT 00DD: actor $PLAYER_ACTOR driving_car_with_model #SOLAIR 004D: jump_if_false @KITT_SCAN_ON_19 0AB4: 1@ = var 800 0039: 1@ == 0 004D: jump_if_false @KITT_SCAN_ON_19 8241: not player $PLAYER_CHAR in_remote_mode 004D: jump_if_false @KITT_SCAN_ON_19 :KITT_SCAN_ON_104 0001: wait 10 ms // иногда тут вылетает 0256: player $PLAYER_CHAR defined 004D: jump_if_false @KITT_SCAN_ON_104 00D6: if or 00DD: actor $PLAYER_ACTOR driving_car_with_model #REGINA 00DD: actor $PLAYER_ACTOR driving_car_with_model #BFINJECT 00DD: actor $PLAYER_ACTOR driving_car_with_model #SOLAIR 004D: jump_if_false @KITT_SCAN_ON_19 03C0: 0@ = actor $PLAYER_ACTOR car 0AB4: 1@ = var 700 803B: not 0@ == 1@ // (int) 004D: jump_if_false @KITT_SCAN_ON_19 :KITT_SCAN_ON_186 0001: wait 10 ms // иногда тут вылетает 0256: player $PLAYER_CHAR defined 004D: jump_if_false @KITT_SCAN_ON_186 00D6: if or 00DD: actor $PLAYER_ACTOR driving_car_with_model #REGINA 00DD: actor $PLAYER_ACTOR driving_car_with_model #BFINJECT 00DD: actor $PLAYER_ACTOR driving_car_with_model #SOLAIR 004D: jump_if_false @KITT_SCAN_ON_19 03C0: 0@ = actor $PLAYER_ACTOR car 0AB4: 1@ = var 700 803B: not 0@ == 1@ // (int) 004D: jump_if_false @KITT_SCAN_ON_19 0A92: create_custom_thread "KITT_SCANNER.S" 0@ 0002: jump @KITT_SCAN_ON_19
А вот часть скрипта, вызванный предыдущим скриптом:
03A4: name_thread 'KITT_SCANER' // Вылетает сразу до этого опкода, происходит не всегда 22@ = 150 31@ = 106.0 gosub @CAR_WRECKED 0039: 2@ == 1 004D: jump_if_false @KITT_SKANER_81 0006: 25@ = 1 :KITT_SKANER_81 0227: 18@ = car 0@ health 8137: not car 0@ model == 424 004D: jump_if_false @KITT_SKANER_113 0006: 3@ = -0.05 0002: jump @KITT_SKANER_123 :KITT_SKANER_113 0006: 3@ = 0.025 :KITT_SKANER_123 0001: wait 0 ms 0256: player $PLAYER_CHAR defined 004D: jump_if_false @KITT_SKANER_123 gosub @CAR_WRECKED 0AB4: 1@ = var 800 0039: 1@ == 0 004D: jump_if_false @KITT_SKANER_123 gosub @IMMUNITETS gosub @AUTO_CRUISE_INDICATION 0050: gosub @SKANNER 0050: gosub @KITT_SKANER_6224 0050: gosub @KITT_SKANER_6978 00DB: actor $PLAYER_ACTOR in_car 0@ 004D: jump_if_false @KITT_SKANER_3698 jump @01
Вот два примера...
Last edited by Dr_Emmett_Brown_2011 (28-10-2011 15:04)
Offline