You are not logged in.
:axaxaax wait 300 if Player.Defined($PLAYER_CHAR) jf @axaxaax if Actor.Driving($PLAYER_ACTOR) then if 0AB0: key_pressed 17 then 03C0: 0@ = $PLAYER_ACTOR car 0174: 2@ = car 0@ Z_angle 2@ += 90.0 0175: set_car 0@ Z_angle_to 2@ end end jump @axaxaax
Last edited by XotaBi4b (14-10-2008 08:12)
GTA SA CrashKiller by MadniX , Virtual_Key_Codes for opcode 0AB0
Offline
Спасибо, а сделайте плиз, чтобы скрипт срабатывал тогда, когда кнопку нажали и отпустили.
Offline
а у меня вопрос - что за непонятные обрывы путей в селской местности?
вот например: ставлю чекпоинт 1 на дорогу, другой - немного подальше(метрах в 5-и). Так вот машина благополучно доезжает до первого, а потом разворачивется на 180 и едет радостно в стенку.
Пробовал пользоваться разными опкодами(но они похоже просто клоны самих себя):
1)car.DriveTo(1@, $XXXXXXXXXXXXXXXXX[0@], $YYYYYYYYYYYYYYYYY[0@], $ZZZZZZZZZZZZZZZZZ[0@])
2) 05D6: clear_scmpath
05D7: add_point_to_scmpath 2411.4048 -1761.8369 13.3906
07E7: AS_assign_scmpath_to_actor 14@ in_car $ADM speed 25.0 flags 1 0 2
3)00A7: car 99@ drive_to 252@ 253@ 254@
Так вот вопрос: сталкивался ли кто-нибудь с этим, как можно это исправить и можно ли вообще
Offline
Alien Я с этим сталкивался Смотри мои посты: #683 #685 , только номера путей я не знаю, мне чисто повезло - я угадал путь 168.
Делай гонки на дорогах.
GTA SA CrashKiller by MadniX , Virtual_Key_Codes for opcode 0AB0
Offline
Спасибо, уже не надо...:D
Offline
Народ, помогите, у меня ничерта не выходит, незнаю почему( Мне из этого скрипта нужно вырезать только функцию, которая дает клавиша Page Up! Плиз!
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007 {$VERSION 3.1.0027} {$CLEO .cs} //-------------MAIN--------------- 0000: NOP :NONAME_2 wait 0 if Player.Defined($PLAYER_CHAR) else_jump @NONAME_2 if 8AB0: not key_pressed 34 else_jump @NONAME_180 0AB0: key_pressed 33 else_jump @NONAME_2 jump @NONAME_55 :NONAME_55 wait 0 if 8AB0: not key_pressed 33 else_jump @NONAME_55 015D: set_gamespeed 0.1 jump @NONAME_88 :NONAME_88 wait 0 if 8AB0: not key_pressed 33 else_jump @NONAME_136 if 8AB0: not key_pressed 34 else_jump @NONAME_180 015D: set_gamespeed 0.1 jump @NONAME_88 :NONAME_136 wait 0 015D: set_gamespeed 1.0 jump @NONAME_154 :NONAME_154 wait 0 if 8AB0: not key_pressed 33 else_jump @NONAME_154 jump @NONAME_2 :NONAME_180 wait 0 if 8AB0: not key_pressed 34 else_jump @NONAME_180 jump @NONAME_206 :NONAME_206 wait 0 if 8AB0: not key_pressed 34 else_jump @NONAME_254 if 8AB0: not key_pressed 33 else_jump @NONAME_55 015D: set_gamespeed 0.0 jump @NONAME_206 :NONAME_254 wait 0 if 8AB0: not key_pressed 34 else_jump @NONAME_254 015D: set_gamespeed 1.0 jump @NONAME_2
Offline
Вот мой скрипт, мне кажется, будет проще. Скорость игры можно регулировать нажав NUM + 9 и отпустив, когда нужная скорость уже набралась.
{$CLEO} 0000: while true wait 500 if Player.Defined($PLAYER_CHAR) then if and 0AB0: key_pressed 0x6F 0AB0: 57 //num + 9 then if 29@ < 1.0 then 29@ = 1.0 end if 29@ > 3.5 then 29@ = 1.0 end 29@ += 0.1 015D: set_gamespeed 29@ end // end end
GTA SA CrashKiller by MadniX , Virtual_Key_Codes for opcode 0AB0
Offline
Не мне это ненадо, мне просто нужно, чтобы при нажатии такой-то кнопки скорость игры становилась 0.1, и еще раз нажав - выключалось
Offline
@GTASA -
{$CLEO} 0@ = 0 32@ = 0 while true wait 0 if Player.Defined($PLAYER_CHAR) then if and 0@ == 0 32@ >= 150 0AB0: key_pressed 0x21 then 0@ = 1 32@ = 0 015D: set_gamespeed 0.1 end if and 0@ == 1 32@ >= 150 0AB0: key_pressed 0x21 then 0@ = 0 32@ = 0 015D: set_gamespeed 1.0 end end end
Offline
Замечательно! Спасибо! Вернемся к моей идее.
Что тут не так? Почему пед появляется только после моей смерти на том месте? Дальше, почему я поставил ему имунитеты от выстрела в голову, а он все равно дохнет? Потом, как ему сделать так, чтобы он, когда атакует меня, или просто заметил, чтобы оббегал объекты, потому что если я стану за дерево, он оббегать его не будет.
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007 {$VERSION 3.1.0027} {$CLEO .cs} //-------------MAIN--------------- wait 0 0000: NOP thread 'MLTBASE' :MLTBASE_17 wait 100 if Player.Defined($PLAYER_CHAR) jf @MLTBASE_17 Model.Load(#ARMY) Model.Load(#M4) 038B: load_requested_models :MLTBASE_49 wait 100 if and Model.Available(#ARMY) Model.Available(#M4) jf @MLTBASE_49 wait 1000 1@ = Actor.Create(Cop, #ARMY, -1859.997, -2181.207, 83.2623) 01B2: give_actor 1@ weapon 31 ammo 9999 // Load the weapon model before using this 0648: unknown_actor 1@ task_set 200.0 // float 0754: define_new_animation_path 0755: add_animation_path_3D_coord -1857.997 -2181.207 83.2623 animation "ROADCROSS" IFP_file "PED" 0755: add_animation_path_3D_coord -1859.997 -2181.207 83.2623 animation "ROADCROSS" IFP_file "PED" 0817: assign_actor 1@ to_animation_path_with_walk_mode 4 route_mode 3 074E: unknown_actor 1@ unknown_set 20.0 unknown_flag 1 0350: set_actor 1@ maintain_position_when_attacked 1 054A: set_actor 1@ immune_to_car_headshots 1 Actor.Health(1@) = 3000 0967: actor 1@ move_mouth 40000 ms 060A: create_decision_maker_type 2 store_to 31@ // decision\allowed\m_.ped files 0709: set_decision_maker 31@ on_event 36 taskID 1024 unknown 0.0 100.0 chance 0.0 unknown 0.0 0 1 // see *.ped files 060B: set_actor 1@ decision_maker_to 31@ 077A: set_actor 1@ acquaintance 4 to_actors_pedtype 0 // see ped.dat 077A: set_actor 1@ acquaintance 4 to_actors_pedtype 8 // see ped.dat 0350: set_actor 1@ maintain_position_when_attacked 1 0568: set_actor 1@ targetable 1 :MLTBASE_326 wait 100 if or Actor.Dead($PLAYER_ACTOR) 0741: actor $PLAYER_ACTOR busted jf @MLTBASE_326 Actor.RemoveReferences(1@) Model.Destroy(#ARMY) Model.Destroy(#M4) jump @MLTBASE_17
Offline
насчет того почему появляется только после смерти - я нинаю=)
Попробуй убрать проверку Player.Defined($PLAYER_CHAR), хотя врятли поможет...
вообще я отсеиваю непонятные баги так - убираю все навороты, оставляю только основную идею в скрипте, дальше если все работает нормально начинаю добавлять всякие фичи... Если все пучком - продолжаем, если нет - значит в последнем изменении причина бага.
Вот и ты попробуй убрать все лишнее оставь только
Model.Load(#ARMY) Model.Load(#M4) 038B: load_requested_models :MLTBASE_49 wait 100 if and Model.Available(#ARMY) Model.Available(#M4) jf @MLTBASE_49 wait 1000 1@ = Actor.Create(Cop, #ARMY, -1859.997, -2181.207, 83.2623) :MLTBASE_326 wait 100 if or Actor.Dead($PLAYER_ACTOR) 0741: actor $PLAYER_ACTOR busted jf @MLTBASE_326 Actor.RemoveReferences(1@) Model.Destroy(#ARMY) Model.Destroy(#M4) jump @MLTBASE_17
От таких оподов как
01B2: give_actor 1@ weapon 31 ammo 9999 // Load the weapon model before using this
и
0568: set_actor 1@ targetable 1
наверное можно вообще отказаться, потому что армейцы и так появляются с М4, и все педы по умолчанию таргетэбл...
насчет иммунитета к выстрелам в голову:
опкод 054A: set_actor 1@ immune_to_car_headshots 1 дает иммунитет машине к выстрелам в бак...
для актеров используй опкод 0446: set_actor 2@ immune_to_headshots 0
насчет обегания препятствий - тут уж надо либо очень постараться и написать что-то вроде
присвоить случайный объект в области между игроком и актером переменной такой-то
если переменная такая-то не пустая и объект в переменной определенных типов,
то актер бежит в сторону...
ну вобщем фигня получается... Думаю, что нет другого способа увеличения ИИ педов кроме "искуственного" типа этого
Offline
Вот нашел скриптик более работающий и без проблем:
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007 {$VERSION 3.1.0027} {$CLEO .cs} //-------------MAIN--------------- 0000: NOP :NONAME_2 wait 500 if 00EC: actor $PLAYER_ACTOR 0 near_point -1859.997 -2181.207 radius 150.0 150.0 else_jump @NONAME_2 set_weather 9 01B5: force_weather 1 Model.Load(#WMYBOUN) Model.Load(#chnsaw) 038B: load_requested_models 1@ = Actor.Create(Gang1, #WMYBOUN, -1859.997, -2181.207, 83.2623) Actor.Health(1@) = 1000 0446: set_actor 1@ immune_to_headshots 0 07DD: set_actor 1@ temper_to 100 // see pedstats.dat 02E0: actor 1@ aggressive 01B2: give_actor 1@ weapon 9 ammo 9999 // Load the weapon model before using this wait 800 05E2: AS_actor 1@ kill_actor $PLAYER_ACTOR 07A5: AS_actor 1@ attack_actor $PLAYER_ACTOR -1 ms jump @NONAME_227 :NONAME_227 wait 500 if Actor.Dead(1@) else_jump @NONAME_227 jump @NONAME_255 :NONAME_255 wait 500 Actor.DestroyInstantly(1@) 01B7: release_weather wait 8000 jump @NONAME_2
Знач как мне сделать так, чтобы он ходил? Я добавлял строчки
0755: add_animation_path_3D_coord -1857.997 -2181.207 83.2623 animation "ROADCROSS" IFP_file "PED"
0755: add_animation_path_3D_coord -1859.997 -2181.207 83.2623 animation "ROADCROSS" IFP_file "PED"
но это не помогло и мне кажется что-то неверно.
Дальше - в скрипте чета там стоит, чтобы пед появился только тогда, когда я окажусь в зоне, прошу это убрать. Потом, как сделать, чтобы он бегал не как пед, а как Карл и даже чуть быстрее? Ну, и наконец - хочу, чтобы когда он атаковал меня - он иногда прыгал)
И еще - вы плиз объясните, что убрали, что добавили, чтобы я все понимал, а не просто так, работа на заказ. Нет, я правда хочу научиться
Last edited by GTASA (21-10-2008 14:51)
Offline
ну я собсно тож ни фига не умел еще месяц тому назад - но ведь научился хоть чему-то. а справка в СБ помойму очень хорошо написана - лучше тебе наверно никто не сможет объяснить...
так - чтобы пед ходил попробуй опкод 05DE: AS_actor 1@ walk_around_ped_path
Чтобы атаковал игрока когда заметит поменяй ему DM:
060A: create_decision_maker_type 2 store_to 31@ 0709: set_decision_maker 31@ on_event 36 {EVENT_ACQUAINTANCE_PED_HATE} taskID 0x400 unknown 0.0 100.0 chance 0.0 unknown 0.0 0 1 060B: set_actor 1@ decision_maker_to 31@ 077A: set_actor 1@ acquaintance 4 {hate} to_actors_pedtype 0 //Педтип игрока 077A: set_actor 1@ acquaintance 4 {hate} to_actors_pedtype 8 //Педтип банды Grove 0350: set_actor 1@ maintain_position_when_attacked 1 0568: set_actor 1@ targetable 1
Дальше насчет скорости передвижения попробуй опкод 07A1: set_walk_speed 4
Сам не проверял... но, наверное, если вместо циферки 4 поставить побольше он будет быстро бегать
а чтобы прыгал попробуй поэкспериментировать с командами 05BC: AS_actor 1@ jump 1 и 06A5: AS_actor 1@ jump_forward stay_on_ground 10000 ms and_stands_back
Last edited by Alien (21-10-2008 15:09)
Offline
а если хочешь чтоб пед появлялся сразу - просто убери строчки
if
00EC: actor $PLAYER_ACTOR 0 near_point -1859.997 -2181.207 radius 150.0 150.0
else_jump @NONAME_2
Offline
опкод 02E0: actor 1@ aggressive
вообще является проверкой и что он делает в линейном скрипте не понятно..
строчки
05E2: AS_actor 1@ kill_actor $PLAYER_ACTOR
07A5: AS_actor 1@ attack_actor $PLAYER_ACTOR -1 ms
лучше убрать если поставишь ему DM как я написал, потому что они приказывают педу атаковать игрока сразу как он появился. а если учесть что ты хочешь убать проверку на нахождение игрока в зоне, то они наверное вообще ни к чему не приведут, если он окажется слишком далеко
Offline
Поставил ему новый ДМ и убрал строчку опкод 02E0: actor 1@ aggressive , и он просто стоит и атакует только есть я очень близко подойду и даже дотронусь. И почему появляться стал военный?
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007 {$VERSION 3.1.0027} {$CLEO .cs} //-------------MAIN--------------- 0000: NOP :NONAME_2 wait 500 if 00EC: actor $PLAYER_ACTOR 0 near_point -1859.997 -2181.207 radius 150.0 150.0 else_jump @NONAME_2 set_weather 9 01B5: force_weather 1 Model.Load(#WMYBOUN) Model.Load(#CHNSAW) 038B: load_requested_models 1@ = Actor.Create(Gang1, #WMYBOUN, -1859.997, -2181.207, 83.2623) Actor.Health(1@) = 1000 07A1: set_walk_speed 1@ 0446: set_actor 1@ immune_to_headshots 0 07DD: set_actor 1@ temper_to 100 // see pedstats.dat 01B2: give_actor 1@ weapon 9 ammo 9999 // Load the weapon model before using this wait 800 060A: create_decision_maker_type 2 store_to 31@ 0709: set_decision_maker 31@ on_event 36 {EVENT_ACQUAINTANCE_PED_HATE} taskID 0x400 unknown 0.0 100.0 chance 0.0 unknown 0.0 0 1 060B: set_actor 1@ decision_maker_to 31@ 077A: set_actor 1@ acquaintance 4 {hate} to_actors_pedtype 0 //Педтип игрока 077A: set_actor 1@ acquaintance 4 {hate} to_actors_pedtype 8 //Педтип банды Grove 0350: set_actor 1@ maintain_position_when_attacked 1 0568: set_actor 1@ targetable 1 jump @NONAME_162 :NONAME_162 wait 500 if Actor.Dead(1@) else_jump @NONAME_162 jump @NONAME_190 :NONAME_190 wait 500 Actor.DestroyInstantly(1@) 01B7: release_weather wait 8000 jump @NONAME_2
убрал еще эти строчки, они по-идее никчему:
00EC: actor $PLAYER_ACTOR 0 near_point -1859.997 -2181.207 radius 150.0 150.0
и теперь стал после смерти появляться!
Last edited by GTASA (21-10-2008 22:38)
Offline
да я тоже замечал что педы замечают игрока слишком поздно.
попробуй так...
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007 {$VERSION 3.1.0027} {$CLEO .cs} //-------------MAIN--------------- 0000: NOP :NONAME_2 wait 500 if Player.Defined($PLAYER_CHAR) else_jump @NONAME_2 set_weather 9 01B5: force_weather 1 Model.Load(#WMYBOUN) Model.Load(#CHNSAW) 038B: load_requested_models 1@ = Actor.Create(Gang1, #WMYBOUN, -1859.997, -2181.207, 83.2623) Actor.Health(1@) = 1000 0446: set_actor 1@ immune_to_headshots 0 07DD: set_actor 1@ temper_to 100 // see pedstats.dat 01B2: give_actor 1@ weapon 9 ammo 9999 // Load the weapon model before using this wait 800 060A: create_decision_maker_type 2 store_to 31@ 0709: set_decision_maker 31@ on_event 36 {EVENT_ACQUAINTANCE_PED_HATE} taskID 0x400 unknown 0.0 100.0 chance 0.0 unknown 0.0 0 1 060B: set_actor 1@ decision_maker_to 31@ 077A: set_actor 1@ acquaintance 4 {hate} to_actors_pedtype 0 //Педтип игрока 077A: set_actor 1@ acquaintance 4 {hate} to_actors_pedtype 8 //Педтип банды Grove 0350: set_actor 1@ maintain_position_when_attacked 1 0568: set_actor 1@ targetable 1 :1 wait 0 if actor.dead(1@) then jump @noname_190 end if 00F2: actor 1@ near_actor $PLAYER_ACTOR radius 20.0 20.0 0 {здесь 20.0 - расстояние, на котором актер начинает атаковать игрока} then 05E2: AS_actor 1@ kill_actor $PLAYER_ACTOR end jump @1 :NONAME_190 wait 500 Actor.DestroyInstantly(1@) 01B7: release_weather wait 8000 jump @NONAME_2
Last edited by Alien (22-10-2008 14:34)
Offline
При компиляции - ошибка:rolleyes:
Offline
добавь end после строчки jump @noname_190
Offline
вообще перестал появляться
Offline
он просто уже уходит пока ты до туда добираешься - проверка на нахождение в зоне-то убрана... А вообще сначала разберись а потом пиши...
Offline
, он не уходит, потому что я телепортируюсь.
Как сделать, чтобы когда жмем кнопку 3, на бампере у тачки, в которой я сижу, появлялся магнит? Мне это нужно, чтобы к машинам прицепляться.
Знач, я загрузил модель:
{$CLEO}
wait 0
Model.Load(1301)
а дальше то что? ID магнита - это 1301
0681: attach_object 1301 to_car $car at_offset 0.5 0.3 0.3 rotation 0.0 0.0 0.0
__________
Вот смотрите, написал какую-то фигню:
{$CLEO}
:CARDEAD
Model.Load(1301)
038B: load_requested_models
jump @CARDEAD_2
:CARDEAD_2
wait 0
if
Model.Available(1301)
jf @CARDEAD_2
wait 0
if
not Actor.Driving($PLAYER_ACTOR)
jf @CARDEAD_2
wait 0
if
0AB0: key_pressed 17
jf @CARDEAD_2
jump @CARDEAD_4
:CARDEAD_4
0681: attach_object 1301 to_car $car at_offset 0.0 -0.85 0.65 rotation 0.0 0.0 90.0
jump @CARDEAD
В чем ошибка?
Last edited by GTASA (25-10-2008 12:53)
Offline
ля=) переменная $car пустая.
03C0:0@ = actor $PLAYER_ACTOR car
и лучше не использовать глобальные переменные в клео
и не забывай выгружать модели. и проверка должна быть Actor.Driving($PLAYER_ACTOR)а не наоборот....
нужно сначала создать объект, а потом прицепить его к машине
0407: store_coords_to 2@ 3@ 4@ from_car 0@ with_offset 10.0 10.0 10.0 Object.Create(1@,1301,2@,3@,4@) 0681: attach_object 1@ to_car 0@ at_offset 0.0 -0.85 0.65 rotation 0.0 0.0 90.0
Last edited by Alien (26-10-2008 09:02)
Offline
Не выходит чет.
{$CLEO} :CARDEAD Model.Load(1301) 038B: load_requested_models jump @CARDEAD_2 :CARDEAD_2 wait 0 if Model.Available(1301) jump @CARDEAD_4 :CARDEAD_4 wait 0 if 0AB0: key_pressed 17 0407: store_coords_to 2@ 3@ 4@ from_car 0@ with_offset 10.0 10.0 10.0 Object.Create(1@,1301,2@,3@,4@) 0681: attach_object 1@ to_car 0@ at_offset 0.0 -0.85 0.65 rotation 0.0 0.0 90.0 jump @CARDEAD
Offline