Last active
September 3, 2021 13:23
-
-
Save nadalao/7ef6e9fe285ca7bd1d714fcf6d7bed01 to your computer and use it in GitHub Desktop.
myth creation and manipulation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SCRIPT_START | |
{ | |
LVAR_FLOAT pos_x pos_y pos_z | |
LVAR_INT special_character_id myth_id p_buffer p_shared_buffer//in | |
LVAR_INT myth_ped int[5] scplayer | |
LVAR_INT damage_audio spawn_audio random_audio fuck | |
LVAR_FLOAT float interaction_radius find_radius x[2] y[2] z[2] | |
GET_PLAYER_CHAR 0 scplayer | |
IF pos_x = 0.0 | |
TERMINATE_THIS_CUSTOM_SCRIPT | |
ENDIF | |
//PRINT_FORMATTED unused (97) reload BLINDMAN ? release: (100) | |
/* | |
IF NOT p_buffer = 0 | |
READ_STRUCT_OFFSET p_buffer (69) 1 timera //type | |
IF timera = 1 | |
AND myth_id = 3 | |
AND int[0] = 0//no skill myth_id = | |
GENERATE_RANDOM_INT_IN_RANGE 0 5000 timerb | |
WAIT timerb | |
PRINT_HELP_FORMATTED "~r~%i~n~%f %f" myth_id pos_x pos_y | |
ADD_BLIP_FOR_COORD pos_x pos_y pos_z fuck | |
ENDIF | |
ENDIF*/ | |
SWITCH int[0]//skill id | |
CASE 1 | |
CLEO_CALL teleport_skill 0 scplayer myth_ped p_buffer p_shared_buffer | |
BREAK | |
CASE 2 | |
READ_STRUCT_OFFSET p_buffer (43) 1 int[0] //myth quantity | |
CLEO_CALL ped_run_away_skill 0 (myth_ped scplayer int[0]) | |
BREAK | |
CASE 3 | |
CLEO_CALL random_walk_skill 0 pos_x pos_y pos_z myth_ped p_buffer p_shared_buffer | |
BREAK | |
CASE 4 | |
CLEO_CALL climb_skill 0 pos_x pos_y pos_z myth_ped p_shared_buffer | |
BREAK | |
CASE 5 | |
CLEO_CALL jumpscare_skill 0 myth_ped p_shared_buffer p_buffer myth_id | |
BREAK | |
CASE 6 | |
CLEO_CALL deadly_stab_skill 0 myth_ped | |
BREAK | |
CASE 7 | |
CLEO_CALL super_punch_skill 0 myth_ped | |
BREAK | |
CASE 8 | |
CLEO_CALL special_fx 0 myth_ped p_buffer | |
BREAK | |
CASE 9 | |
CLEO_CALL improved_combat 0 myth_ped p_buffer p_shared_buffer scplayer | |
BREAK | |
ENDSWITCH | |
READ_STRUCT_OFFSET p_buffer (69) 1 int[0] //type | |
IF int[0] = 2//ped | |
READ_STRUCT_OFFSET p_buffer (65) 4 special_character_id//ped model | |
ENDIF | |
IF NOT DOES_CHAR_EXIST myth_ped | |
IF NOT special_character_id = -1 //random | |
IF NOT HAS_MODEL_LOADED special_character_id | |
//LOAD_ALL_MODELS_NOW | |
REQUEST_PRIORITY_MODEL special_character_id | |
LOAD_ALL_PRIORITY_MODELS_NOW | |
ENDIF | |
ENDIF | |
READ_STRUCT_OFFSET p_buffer (51) 1 int[0] //recruitable | |
IF special_character_id = -1 | |
CREATE_RANDOM_CHAR 0.0 0.0 -10.0 myth_ped | |
GET_PED_POINTER myth_ped int[1] | |
int[1] += 0x598 | |
IF int[0] = 0 | |
WRITE_MEMORY int[1] 1 24 0 //change pedtype to MISSION1 | |
ELSE | |
WRITE_MEMORY int[1] 1 8 0 //change pedtype to PEDTYPE_GANG2 (GROVE GANG) | |
ENDIF | |
GET_CHAR_MODEL myth_ped special_character_id | |
ELSE | |
IF int[0] = 0 | |
CREATE_CHAR PEDTYPE_MISSION1 special_character_id 0.0 0.0 -10.0 myth_ped | |
ELSE | |
CREATE_CHAR PEDTYPE_GANG2 special_character_id 0.0 0.0 -10.0 myth_ped | |
ENDIF | |
ENDIF | |
ENDIF | |
//ADD_BLIP_FOR_CHAR myth_ped timera | |
SET_CHAR_DROWNS_IN_WATER myth_ped FALSE | |
SET_CHAR_VISIBLE myth_ped FALSE | |
WRITE_STRUCT_OFFSET p_buffer (93) 1 1//visible | |
READ_STRUCT_OFFSET p_buffer (10) 1 int[0]//spawn type | |
SWITCH int[0] | |
DEFAULT | |
SET_CHAR_COORDINATES_DONT_WARP_GANG myth_ped pos_x pos_y pos_z | |
GET_CURRENT_DAY_OF_WEEK int[3] | |
READ_STRUCT_OFFSET p_buffer (4) 1 int[0]//starting hour | |
READ_STRUCT_OFFSET p_buffer (5) 1 int[1]//ending hour | |
GET_TIME_OF_DAY int[2] timera | |
IF int[1] > int[2] //ending hour > current hour | |
IF int[0] > int[1] //starting hour > ending hour | |
int[3] -= 1 | |
IF int[3] = 0 | |
int[3] = 7 | |
ENDIF | |
ENDIF | |
ENDIF | |
//angle | |
READ_STRUCT_OFFSET p_buffer (92) 1 int[3] //created spot | |
READ_STRUCT_PARAM p_buffer (0) int[1] //list | |
int[0] = int[3] * 4 | |
int[0] += 3 | |
GET_LIST_VALUE_BY_INDEX int[1] int[0] float //angle | |
SET_CHAR_HEADING myth_ped float | |
BREAK | |
CASE 1 | |
CLEO_CALL spawn_type_1 0 scplayer myth_ped 0 p_buffer | |
BREAK | |
CASE 2 | |
CLEO_CALL spawn_type_2 0 scplayer myth_ped p_buffer pos_x pos_y pos_z | |
BREAK | |
ENDSWITCH | |
timerb = 0 | |
SET_CHAR_VISIBLE myth_ped TRUE | |
FIX_CHAR_GROUND_BRIGHTNESS_AND_FADE_IN myth_ped FALSE TRUE TRUE | |
WRITE_STRUCT_OFFSET p_buffer (93) 1 0//visible | |
SET_CHAR_USES_UPPERBODY_DAMAGE_ANIMS_ONLY myth_ped TRUE | |
READ_STRUCT_OFFSET p_buffer (58) 1 int[0]//does damage animation | |
IF int[0] = 0 | |
SET_CHAR_IGNORE_DAMAGE_ANIMS myth_ped TRUE | |
ENDIF | |
READ_STRUCT_OFFSET p_buffer (16) 1 int[0] //accuracy | |
SET_CHAR_ACCURACY myth_ped int[0] | |
READ_STRUCT_OFFSET p_buffer (17) 1 int[0] //attack rate | |
SET_CHAR_SHOOT_RATE myth_ped int[0] | |
READ_STRUCT_OFFSET p_buffer (18) 4 int[0] //health | |
SET_CHAR_HEALTH myth_ped int[0] | |
READ_STRUCT_OFFSET p_buffer (26) 1 int[0] //can be beheaded | |
SET_CHAR_SUFFERS_CRITICAL_HITS myth_ped int[0] | |
READ_STRUCT_OFFSET p_buffer (27) 1 int[0] //drowns in water | |
SET_CHAR_DROWNS_IN_WATER myth_ped int[0] | |
READ_STRUCT_OFFSET p_buffer (37) 1 int[0] //leaves blood stain | |
SET_CHAR_BLEEDING myth_ped int[0] | |
CLEO_CALL apply_proofs 0 myth_ped p_buffer | |
READ_STRUCT_OFFSET p_buffer (28) 4 int[0]//weapon id | |
IF int[0] > 36 | |
CLEO_CALL weapon_groups 0 int[0] (int[0]) | |
ELSE | |
IF int[0] < 42 | |
IF int[0] > 18 | |
int[0] += 3 | |
ENDIF | |
IF int[0] > 35 | |
int[0] += 1 | |
ENDIF | |
IF int[0] > 38 | |
int[0] += 2 | |
ENDIF | |
ENDIF | |
ENDIF | |
GET_WEAPONTYPE_MODEL int[0] int[1] | |
IF int[0] > 0 | |
IF NOT IS_MODEL_AVAILABLE int[1] | |
int[0] = 4 | |
GET_WEAPONTYPE_MODEL int[0] int[1] | |
ENDIF | |
REQUEST_MODEL int[1] | |
WHILE NOT HAS_MODEL_LOADED int[1] | |
WAIT 0 | |
ENDWHILE | |
GIVE_WEAPON_TO_CHAR myth_ped int[0] 9999 | |
SET_CHAR_DROPS_WEAPONS_WHEN_DEAD myth_ped FALSE | |
ENDIF | |
READ_STRUCT_OFFSET p_buffer (22) 4 int[0]//money | |
SET_CHAR_MONEY myth_ped int[0] | |
READ_STRUCT_OFFSET p_buffer (42) 1 int[0]//fighting style | |
SWITCH int[0] | |
DEFAULT | |
GIVE_MELEE_ATTACK_TO_CHAR myth_ped 15 15 //default | |
BREAK | |
CASE 1 | |
GIVE_MELEE_ATTACK_TO_CHAR myth_ped 5 6 //BOXING | |
BREAK | |
CASE 2 | |
GIVE_MELEE_ATTACK_TO_CHAR myth_ped 6 6 //KUNG FU | |
BREAK | |
CASE 3 | |
GIVE_MELEE_ATTACK_TO_CHAR myth_ped 7 6 //KICKBOXING | |
BREAK | |
ENDSWITCH | |
READ_STRUCT_OFFSET_MULTI p_buffer (80) 3 4 spawn_audio random_audio damage_audio | |
//PRINT_HELP_FORMATTED "%i" spawn_audio | |
//P/RINT_FORMATTED_NOW "%i %i %i %i" 99 myth_ped spawn_audio random_audio damage_audio | |
IF NOT spawn_audio = 0 | |
SET_PLAY_3D_AUDIO_STREAM_AT_CHAR spawn_audio myth_ped | |
SET_AUDIO_STREAM_STATE spawn_audio ON | |
SET_AUDIO_STREAM_VOLUME spawn_audio 1.0 | |
ENDIF | |
//skills | |
//teleport | |
READ_STRUCT_OFFSET p_buffer (45) 1 int[0] //teleports | |
IF int[0] = 1 | |
STREAM_CUSTOM_SCRIPT "Myths_Maker2.cs" (pos_x pos_y pos_z special_character_id myth_id p_buffer p_shared_buffer myth_ped 1) | |
ENDIF | |
//ped_runaway | |
READ_STRUCT_OFFSET p_buffer (48) 1 int[0] //ped run away | |
IF int[0] = 1 | |
STREAM_CUSTOM_SCRIPT "Myths_Maker2.cs" (pos_x pos_y pos_z special_character_id myth_id p_buffer p_shared_buffer myth_ped 2) | |
ENDIF | |
//walks randomly | |
READ_STRUCT_OFFSET p_buffer (13) 1 int[0] //walks randomly | |
IF int[0] = 1//walks randomly | |
OR int[0] = 3//walks towards player | |
STREAM_CUSTOM_SCRIPT "Myths_Maker2.cs" (pos_x pos_y pos_z special_character_id myth_id p_buffer p_shared_buffer myth_ped 3) | |
ENDIF | |
IF int[0] = 2//walk in sidewalks | |
//TASK_WANDER_STANDARD myth_ped | |
MARK_CHAR_AS_NO_LONGER_NEEDED myth_ped | |
MARK_CHAR_AS_NEEDED myth_ped | |
ENDIF | |
//climb_skill | |
READ_STRUCT_OFFSET p_buffer (49) 1 int[0] //interaction | |
IF int[0] = 0//attack | |
READ_STRUCT_OFFSET p_buffer (69) 1 int[0] //type | |
IF int[0] = 0 | |
STREAM_CUSTOM_SCRIPT "Myths_Maker2.cs" (pos_x pos_y pos_z special_character_id myth_id p_buffer p_shared_buffer myth_ped 4) | |
ENDIF | |
ENDIF | |
//jumpscare skill | |
READ_STRUCT_OFFSET p_buffer (62) 1 int[0] //jumpscare | |
IF int[0] = 1//jumpscare | |
STREAM_CUSTOM_SCRIPT "Myths_Maker2.cs" (pos_x pos_y pos_z special_character_id myth_id p_buffer p_shared_buffer myth_ped 5) | |
ENDIF | |
//deadly stab skill | |
READ_STRUCT_OFFSET p_buffer (63) 1 int[0] //deadly stab skill | |
IF int[0] = 1//deadly stab skill | |
STREAM_CUSTOM_SCRIPT "Myths_Maker2.cs" (pos_x pos_y pos_z special_character_id myth_id p_buffer p_shared_buffer myth_ped 6) | |
ENDIF | |
//super punch skill | |
READ_STRUCT_OFFSET p_buffer (64) 1 int[0] //super punch skill | |
IF int[0] = 1//super punch skill | |
STREAM_CUSTOM_SCRIPT "Myths_Maker2.cs" (pos_x pos_y pos_z special_character_id myth_id p_buffer p_shared_buffer myth_ped 7) | |
ENDIF | |
//special fx | |
READ_STRUCT_OFFSET p_buffer (70) 1 int[0] //permanent fx | |
READ_STRUCT_OFFSET p_buffer (72) 1 int[1] //attacking fx | |
READ_STRUCT_OFFSET p_buffer (74) 1 int[2] //attacked fx | |
IF NOT int[0] = 255//permanent fx | |
OR NOT int[0] = 255//attacking fx | |
OR NOT int[0] = 255//attacked fx | |
STREAM_CUSTOM_SCRIPT "Myths_Maker2.cs" (pos_x pos_y pos_z special_character_id myth_id p_buffer p_shared_buffer myth_ped 8) | |
ENDIF | |
//improved_combat | |
READ_STRUCT_OFFSET p_buffer (61) 1 int[0]//improved_combat | |
IF int[0] = 1//improved_combat | |
//STREAM_CUSTOM_SCRIPT_FROM_LABEL improved_combat myth_ped p_buffer p_shared_buffer scplayer | |
STREAM_CUSTOM_SCRIPT "Myths_Maker2.cs" (pos_x pos_y pos_z special_character_id myth_id p_buffer p_shared_buffer myth_ped 9) | |
ENDIF | |
IF NOT DOES_CHAR_EXIST myth_ped | |
GOTO release | |
ENDIF | |
READ_STRUCT_OFFSET p_buffer (69) 1 int[1] //type | |
CLEO_CALL apply_animgroup 0 myth_ped p_buffer myth_id int[1] | |
READ_STRUCT_OFFSET p_buffer (49) 1 int[0] //interaction | |
IF int[0] = 0 //attack | |
READ_STRUCT_OFFSET p_buffer (41) 1 int[0] //attacks peds | |
IF int[0] = 1 | |
CLEO_CALL apply_attack 0 p_shared_buffer scplayer myth_ped 1 //attacks everyone | |
ELSE | |
CLEO_CALL apply_attack 0 p_shared_buffer scplayer myth_ped 0 //neutral | |
ENDIF | |
ELSE | |
READ_STRUCT_PARAM p_shared_buffer (1) int[0] //neutral | |
SET_CHAR_DECISION_MAKER myth_ped int[0] | |
ENDIF | |
GET_LABEL_POINTER string_label (int[0]) | |
SWITCH int[1] | |
CASE 0 | |
STRING_FORMAT (int[0]) "Myths\Myth%i\Myth%i.cs" myth_id myth_id | |
BREAK | |
CASE 1 | |
STRING_FORMAT (int[0]) "Animals\Anim%i\Anim%i.cs" myth_id myth_id | |
BREAK | |
CASE 2 | |
STRING_FORMAT (int[0]) "Peds\Ped%i\Ped%i.cs" myth_id myth_id | |
BREAK | |
ENDSWITCH | |
READ_STRUCT_OFFSET p_buffer (99) 1 int[1] //change spot | |
IF int[1] = 0 | |
IF STREAM_CUSTOM_SCRIPT $int[0] myth_ped myth_id p_shared_buffer p_buffer pos_x pos_y pos_z | |
WAIT 0 | |
ENDIF | |
ENDIF | |
created: | |
//remove radius | |
READ_STRUCT_PARAM p_buffer (0) int[0] //list | |
READ_STRUCT_OFFSET p_buffer (105) 4 find_radius //release radius | |
IF find_radius < 1.0 | |
GET_LIST_VALUE_BY_INDEX int[0] (0) find_radius | |
find_radius += 60.0 | |
ENDIF | |
GET_LIST_VALUE_BY_INDEX int[0] (2) interaction_radius | |
READ_STRUCT_OFFSET p_buffer (10) 1 int[0] //spawn type | |
IF interaction_radius <= 1.0 | |
interaction_radius = 0.2 | |
ENDIF | |
int[2] = 0 | |
GENERATE_RANDOM_INT_IN_RANGE -3000 19000 timerb | |
GENERATE_RANDOM_INT_IN_RANGE 0 5 int[3] | |
WHILE DOES_CHAR_EXIST myth_ped | |
IF IS_CHAR_HEALTH_GREATER myth_ped 1 | |
AND IS_CHAR_HEALTH_GREATER scplayer 1 | |
AND LOCATE_CHAR_DISTANCE_TO_CHAR scplayer myth_ped find_radius | |
//interaction | |
READ_STRUCT_OFFSET p_buffer (49) 1 int[0] //interaction | |
IF LOCATE_CHAR_DISTANCE_TO_CHAR myth_ped scplayer interaction_radius | |
OR HAS_CHAR_BEEN_DAMAGED_BY_CHAR myth_ped scplayer | |
IF int[0] = 0 | |
IF NOT IS_PLAYER_CONTROL_ON 0 | |
WHILE NOT IS_PLAYER_CONTROL_ON 0 | |
WAIT 0 | |
ENDWHILE | |
CLEO_CALL apply_attack 0 p_shared_buffer scplayer myth_ped 2 //attacks target | |
ENDIF | |
//SWIMMING | |
IF IS_CHAR_IN_WATER myth_ped | |
CLEO_CALL get_out_of_water 0 myth_ped | |
ENDIF | |
ELSE | |
CLEO_CALL runaway_from_player 0 p_buffer scplayer myth_ped | |
CLEAR_CHAR_LAST_DAMAGE_ENTITY myth_ped | |
ENDIF | |
ENDIF | |
//car turn off | |
IF IS_CHAR_IN_ANY_CAR scplayer | |
READ_STRUCT_OFFSET p_buffer (14) 1 int[0]//car turn off | |
IF int[0] = 1 | |
CLEO_CALL car_turn_off 0 scplayer | |
ENDIF | |
ENDIF | |
//recruted | |
GET_PLAYER_GROUP 0 int[0] | |
IF IS_GROUP_MEMBER myth_ped int[0] | |
GOTO follow_player | |
ENDIF | |
//fight check | |
IF NOT int[4] = 2 | |
READ_STRUCT_OFFSET p_buffer (60) 1 int[4] //attack trigger | |
IF HAS_CHAR_BEEN_DAMAGED_BY_CHAR myth_ped scplayer | |
OR LOCATE_CHAR_DISTANCE_TO_CHAR myth_ped scplayer interaction_radius | |
OR int[4] = 1 //sync attack | |
READ_STRUCT_PARAM p_buffer (0) int[0] | |
GET_LIST_VALUE_BY_INDEX int[0] (1) float //spawn radius | |
IF float <= 60.0 | |
WRITE_STRUCT_OFFSET p_buffer (60) 1 1 //attack trigger | |
ENDIF | |
READ_STRUCT_OFFSET p_buffer (49) 1 int[0] //interaction | |
IF int[0] = 0 //attack | |
CLEO_CALL apply_attack 0 p_shared_buffer scplayer myth_ped 2 //attacks target | |
ENDIF | |
int[4] = 2 | |
ENDIF | |
ENDIF | |
//damage | |
IF GET_CHAR_KILL_TARGET_CHAR myth_ped int[0] | |
IF GET_CHAR_DAMAGE_LAST_FRAME int[0] int[2] int[1] int[1] float | |
IF NOT int[2] = 0 | |
GET_ENTITY_TYPE int[2] int[1] | |
IF int[1] = ENTITY_TYPE_PED | |
GET_PED_REF int[2] int[1] | |
IF int[1] = myth_ped | |
READ_STRUCT_OFFSET p_buffer (12) 1 int[1] //damage | |
DAMAGE_CHAR int[0] int[1] 1 | |
ENDIF | |
ENDIF | |
ENDIF | |
ENDIF | |
ENDIF | |
//audio | |
IF LOCATE_CHAR_DISTANCE_TO_CHAR scplayer myth_ped 20.0 | |
IF timerb > 19000 | |
GENERATE_RANDOM_INT_IN_RANGE 0 9000 timerb | |
READ_STRUCT_OFFSET p_buffer (84) 4 random_audio //random sound | |
IF NOT random_audio = 0 //random sound | |
SET_PLAY_3D_AUDIO_STREAM_AT_CHAR random_audio myth_ped | |
SET_AUDIO_STREAM_STATE random_audio ON | |
ENDIF | |
ENDIF | |
IF NOT damage_audio = 0 | |
IF HAS_CHAR_BEEN_DAMAGED_BY_CHAR myth_ped scplayer | |
int[3] += 1 | |
CLEAR_CHAR_LAST_DAMAGE_ENTITY myth_ped | |
IF int[3] > 5//damage sound | |
SET_PLAY_3D_AUDIO_STREAM_AT_CHAR damage_audio myth_ped | |
SET_AUDIO_STREAM_STATE damage_audio ON | |
int[3] = 0 | |
ENDIF | |
ENDIF | |
ENDIF | |
ENDIF | |
ELSE | |
BREAK | |
ENDIF | |
READ_STRUCT_PARAM p_shared_buffer (8) int[0]//reload mod | |
IF int[0] = 1000 | |
WRITE_STRUCT_OFFSET p_buffer (59) 1 1 //release mode - deleted somehow | |
BREAK | |
ENDIF | |
WAIT 0 | |
ENDWHILE | |
release: | |
IF DOES_BLIP_EXIST fuck | |
REMOVE_BLIP fuck | |
ENDIF | |
READ_STRUCT_OFFSET p_buffer (59) 1 int[0] //release mode | |
//IF NOT int[0] = 2 | |
IF NOT DOES_CHAR_EXIST myth_ped | |
WRITE_STRUCT_OFFSET p_buffer (59) 1 1 //release mode - deleted somehow | |
ELSE | |
IF NOT IS_CHAR_HEALTH_GREATER myth_ped 1 | |
WRITE_STRUCT_OFFSET p_buffer (59) 1 2 //release mode - dead myth | |
/*READ_STRUCT_OFFSET p_buffer (69) 1 timera //type | |
IF timera = 0 //myth | |
WRITE_STRUCT_PARAM p_shared_buffer (16) 2 | |
ENDIF*/ | |
ELSE | |
READ_STRUCT_OFFSET p_buffer (99) 1 int[0] //change spot | |
IF NOT int[0] = 0 | |
READ_STRUCT_PARAM p_buffer (0) int[0] //list | |
READ_STRUCT_OFFSET p_buffer (92) 1 timera //created spot | |
int[1] = timera * 4 | |
GET_LIST_VALUE_BY_INDEX int[0] int[1] pos_x | |
int[1] += 1 | |
GET_LIST_VALUE_BY_INDEX int[0] int[1] pos_y | |
int[1] += 1 | |
GET_LIST_VALUE_BY_INDEX int[0] int[1] pos_z | |
GET_LIST_VALUE_BY_INDEX int[0] (0) find_radius | |
IF LOCATE_CHAR_DISTANCE_TO_COORDINATES scplayer pos_x pos_y pos_z find_radius | |
READ_STRUCT_OFFSET p_buffer (10) 1 int[0] //spawn type | |
READ_STRUCT_OFFSET p_buffer (18) 4 timera //health | |
timera -= 20 | |
GET_CHAR_HEALTH myth_ped timerb | |
IF timerb >= timera | |
IF int[0] = 1 | |
CLEO_CALL spawn_type_1 0 scplayer myth_ped 0 p_buffer | |
GOTO created | |
ENDIF | |
IF int[0] = 2 | |
GET_CHAR_COORDINATES scplayer x[0] y[0] z[0] | |
CLEO_CALL spawn_type_2 0 scplayer myth_ped p_buffer x[0] y[0] z[0] | |
CLEAR_CHAR_TASKS_IMMEDIATELY myth_ped | |
GOTO created | |
ENDIF | |
ENDIF | |
ENDIF | |
ENDIF | |
WRITE_STRUCT_OFFSET p_buffer (59) 1 3 //release mode - NOT locate | |
ENDIF | |
ENDIF | |
//ENDIF | |
IF DOES_CHAR_EXIST myth_ped | |
IF NOT IS_CHAR_HEALTH_GREATER myth_ped 1 | |
OR NOT IS_CHAR_HEALTH_GREATER scplayer 1 | |
MARK_CHAR_AS_NO_LONGER_NEEDED myth_ped | |
ELSE | |
DELETE_CHAR myth_ped | |
ENDIF | |
WHILE DOES_CHAR_EXIST myth_ped | |
WAIT 0 | |
ENDWHILE | |
ENDIF | |
READ_STRUCT_OFFSET p_buffer (44) 1 int[0] //dead myths | |
int[0] += 1 | |
WRITE_STRUCT_OFFSET p_buffer (44) 1 int[0] //dead myths | |
READ_STRUCT_OFFSET p_buffer (46) 1 int[0] //location_mode | |
IF NOT int[0] = 2 | |
READ_STRUCT_OFFSET p_buffer (100) 1 int[0] //created myths | |
int[0] -- | |
WRITE_STRUCT_OFFSET p_buffer (100) 1 int[0] //created myths | |
ENDIF | |
READ_STRUCT_OFFSET p_buffer (69) 1 int[0] //type | |
IF int[0] > 2 | |
MARK_MODEL_AS_NO_LONGER_NEEDED special_character_id | |
ENDIF | |
TERMINATE_THIS_CUSTOM_SCRIPT | |
follow_player: | |
CLEAR_CHAR_TASKS_IMMEDIATELY myth_ped | |
GET_PLAYER_GROUP 0 int[0] | |
SET_GROUP_MEMBER int[0] myth_ped | |
READ_STRUCT_OFFSET p_buffer (28) 4 int[0]//weapon id | |
IF int[0] < 36 | |
REMOVE_ALL_CHAR_WEAPONS myth_ped | |
IF int[0] < 42 | |
IF int[0] > 18 | |
int[0] += 3 | |
ENDIF | |
IF int[0] > 35 | |
int[0] += 1 | |
ENDIF | |
IF int[0] > 38 | |
int[0] += 2 | |
ENDIF | |
ENDIF | |
GET_WEAPONTYPE_MODEL int[0] int[1] | |
IF int[0] > 0 | |
IF NOT IS_MODEL_AVAILABLE int[1] | |
int[0] = 4 | |
GET_WEAPONTYPE_MODEL int[0] int[1] | |
ENDIF | |
REQUEST_MODEL int[1] | |
WHILE NOT HAS_MODEL_LOADED int[1] | |
WAIT 0 | |
ENDWHILE | |
GIVE_WEAPON_TO_CHAR myth_ped int[0] 9999 | |
SET_CHAR_DROPS_WEAPONS_WHEN_DEAD myth_ped FALSE | |
ENDIF | |
ENDIF | |
GET_PED_POINTER myth_ped int[0] | |
int[0] += 0x598 | |
WRITE_MEMORY int[0] 1 24 0//change pedtype to mission1 | |
GENERATE_RANDOM_INT_IN_RANGE 0 5 int[0] | |
WHILE DOES_CHAR_EXIST myth_ped | |
//audios | |
IF LOCATE_CHAR_DISTANCE_TO_CHAR scplayer myth_ped 20.0 | |
IF timerb > 19000 | |
GENERATE_RANDOM_INT_IN_RANGE 0 9000 timerb | |
IF NOT random_audio = 0//random sound | |
SET_PLAY_3D_AUDIO_STREAM_AT_CHAR random_audio myth_ped | |
SET_AUDIO_STREAM_STATE random_audio ON | |
ENDIF | |
ENDIF | |
IF NOT damage_audio = 0 | |
IF HAS_CHAR_BEEN_DAMAGED_BY_CHAR myth_ped scplayer | |
int[0] += 1 | |
CLEAR_CHAR_LAST_DAMAGE_ENTITY myth_ped | |
IF int[0] > 5//damage sound | |
SET_PLAY_3D_AUDIO_STREAM_AT_CHAR damage_audio myth_ped | |
SET_AUDIO_STREAM_STATE damage_audio ON | |
int[0] = 0 | |
ENDIF | |
ENDIF | |
ENDIF | |
ENDIF | |
IF NOT IS_CHAR_HEALTH_GREATER myth_ped 1 | |
GOTO release | |
ENDIF | |
//stop hand signs | |
IF IS_CHAR_PLAYING_ANIM myth_ped "PRTIAL_GNGTLKA" | |
OR IS_CHAR_PLAYING_ANIM myth_ped "PRTIAL_GNGTLKB" | |
OR IS_CHAR_PLAYING_ANIM myth_ped "PRTIAL_GNGTLKC" | |
OR IS_CHAR_PLAYING_ANIM myth_ped "PRTIAL_GNGTLKD" | |
OR IS_CHAR_PLAYING_ANIM myth_ped "INVITE_NO" | |
OR IS_CHAR_PLAYING_ANIM myth_ped "INVITE_YES" | |
IF NOT IS_CHAR_PLAYING_ANIM myth_ped "FIGHTIDLE" | |
TASK_PLAY_ANIM_SECONDARY myth_ped "FIGHTIDLE" "PED" 0.1 0 0 0 0 1 | |
ENDIF | |
ENDIF | |
IF IS_CHAR_PLAYING_ANIM myth_ped "PRTIAL_GNGTLKE" | |
OR IS_CHAR_PLAYING_ANIM myth_ped "PRTIAL_GNGTLKF" | |
OR IS_CHAR_PLAYING_ANIM myth_ped "PRTIAL_GNGTLKG" | |
OR IS_CHAR_PLAYING_ANIM myth_ped "PRTIAL_GNGTLKH" | |
OR IS_CHAR_PLAYING_ANIM myth_ped "drnkbr_prtl" | |
OR IS_CHAR_PLAYING_ANIM myth_ped "drnkbr_prtl_F" | |
IF NOT IS_CHAR_PLAYING_ANIM myth_ped "FIGHTIDLE" | |
TASK_PLAY_ANIM_SECONDARY myth_ped "FIGHTIDLE" "PED" 0.1 0 0 0 0 1 | |
ENDIF | |
ENDIF | |
WAIT 0 | |
ENDWHILE | |
GOTO release | |
} | |
{ | |
LVAR_INT myth_ped p_buffer p_shared_buffer scplayer | |
LVAR_INT target_ped int[2] var tasks | |
LVAR_FLOAT x y z | |
LVAR_TEXT_LABEL16 myth_anim idle block ifp target_anim | |
improved_combat: | |
WHILE DOES_CHAR_EXIST myth_ped | |
IF GET_CHAR_KILL_TARGET_CHAR myth_ped target_ped | |
BREAK | |
ENDIF | |
WAIT 1000 | |
ENDWHILE | |
IF NOT DOES_CHAR_EXIST myth_ped | |
TERMINATE_THIS_CUSTOM_SCRIPT | |
ENDIF | |
READ_STRUCT_OFFSET p_buffer (42) 1 int[0]//fighting style | |
SWITCH int[0] | |
DEFAULT | |
IFP = PED //default | |
MYTH_ANIM = FightA_2 | |
TARGET_ANIM = HitA_2 | |
IDLE = FightA_IDLE | |
BLOCK = FIGHTA_BLOCK | |
BREAK | |
CASE 1 | |
IFP = FIGHT_B //BOXING | |
MYTH_ANIM = FightB_2 | |
TARGET_ANIM = HitB_2 | |
IDLE = FightB_IDLE | |
BLOCK = FIGHTB_BLOCK | |
BREAK | |
CASE 2 | |
IFP = FIGHT_C //KUNG FU | |
MYTH_ANIM = FightC_2 | |
TARGET_ANIM = HitC_2 | |
IDLE = FightC_IDLE | |
BLOCK = FIGHTC_BLOCK | |
BREAK | |
CASE 3 | |
IFP = FIGHT_D //KICKBOXING | |
MYTH_ANIM = FightD_2 | |
TARGET_ANIM = HitD_2 | |
IDLE = FightD_IDLE | |
BLOCK = FIGHTD_BLOCK | |
BREAK | |
ENDSWITCH | |
IF DOES_CHAR_EXIST myth_ped | |
GET_CURRENT_CHAR_WEAPON myth_ped int[0] | |
ENDIF | |
SWITCH int[0] | |
CASE 4//knife | |
CASE 11//DILDO2 | |
CASE 13//VIBE2 | |
IFP = KNIFE | |
MYTH_ANIM = knife_2 | |
TARGET_ANIM = knife_hit_2 | |
IDLE = knife_IDLE | |
BLOCK = knife_block | |
BREAK | |
CASE 2//GOLFCLUB | |
CASE 3//NIGHTSTICK | |
CASE 5//baseball bat | |
CASE 6//SHOVEL | |
CASE 7//POOLCUE | |
IFP = BASEBALL | |
MYTH_ANIM = Bat_2 | |
TARGET_ANIM = Bat_Hit_2 | |
IDLE = Bat_IDLE | |
BLOCK = Bat_block | |
BREAK | |
CASE 9//CHAINSAW | |
IFP = CHAINSAW | |
MYTH_ANIM = CSAW_2 | |
TARGET_ANIM = CSAW_Hit_2 | |
IDLE = IDLE_csaw | |
BREAK | |
CASE 10//DILDO1 | |
CASE 12//VIBE1 | |
IFP = DILDO | |
MYTH_ANIM = DILDO_2 | |
TARGET_ANIM = DILDO_Hit_2 | |
IDLE = DILDO_IDLE | |
BLOCK = DILDO_block | |
BREAK | |
CASE 8//KATANA | |
CASE 15//CANE | |
IFP = SWORD | |
MYTH_ANIM = sword_2 | |
TARGET_ANIM = Sword_Hit_2 | |
IDLE = sword_IDLE | |
BLOCK = sword_block | |
BREAK | |
ENDSWITCH | |
WHILE DOES_CHAR_EXIST myth_ped | |
IF GET_CHAR_KILL_TARGET_CHAR myth_ped target_ped | |
IF IS_CHAR_ON_FOOT target_ped | |
IF IS_CHAR_HEALTH_GREATER myth_ped 0 | |
IF IS_CHAR_PLAYING_ANIM myth_ped "HIT_FIGHTKICK_B" | |
GET_CHAR_COORDINATES myth_ped x y z | |
GET_GROUND_Z_FOR_3D_COORD x y z z | |
z += 0.05 | |
SET_CHAR_COORDINATES_DONT_WARP_GANG myth_ped x y z | |
TASK_PLAY_ANIM myth_ped "BAT_HIT_1" "BASEBALL" 4.0 0 1 1 0 -1 | |
ENDIF | |
IF IS_CHAR_PLAYING_ANIM myth_ped "HITB_3" | |
WAIT 270 | |
IF NOT DOES_CHAR_EXIST myth_ped | |
OR NOT DOES_CHAR_EXIST target_ped | |
BREAK | |
ENDIF | |
GET_CHAR_COORDINATES myth_ped x y z | |
GET_GROUND_Z_FOR_3D_COORD x y z z | |
z += 0.05 | |
SET_CHAR_COORDINATES_DONT_WARP_GANG myth_ped x y z | |
TASK_PLAY_ANIM_NON_INTERRUPTABLE myth_ped "HITA_3" "PED" 4.0 0 1 1 0 -1 | |
ENDIF | |
IF IS_CHAR_PLAYING_ANIM myth_ped "HITC_3" | |
GET_CHAR_COORDINATES myth_ped x y z | |
GET_GROUND_Z_FOR_3D_COORD x y z z | |
z += 0.05 | |
SET_CHAR_COORDINATES_DONT_WARP_GANG myth_ped x y z | |
TASK_PLAY_ANIM_NON_INTERRUPTABLE myth_ped "HitC_2" "FIGHT_C" 4.0 0 1 1 0 -1 | |
ENDIF | |
IF IS_CHAR_PLAYING_ANIM myth_ped "HITD_3" | |
GET_CHAR_COORDINATES myth_ped x y z | |
GET_GROUND_Z_FOR_3D_COORD x y z z | |
z += 0.05 | |
SET_CHAR_COORDINATES_DONT_WARP_GANG myth_ped x y z | |
TASK_PLAY_ANIM_NON_INTERRUPTABLE myth_ped "HitD_1" "FIGHT_D" 4.0 0 1 1 0 -1 | |
ENDIF | |
//get up | |
IF IS_CHAR_PLAYING_ANIM myth_ped "GETUP" | |
GET_CHAR_COORDINATES myth_ped x y z | |
GET_GROUND_Z_FOR_3D_COORD x y z z | |
z += 0.05 | |
SET_CHAR_COORDINATES_DONT_WARP_GANG myth_ped x y z | |
TASK_PLAY_ANIM_NON_INTERRUPTABLE myth_ped "GETUP" "PED" 4.0 0 1 1 0 -1 | |
z = 0.0 | |
WHILE DOES_CHAR_EXIST myth_ped | |
GET_CHAR_ANIM_CURRENT_TIME myth_ped "GETUP" z | |
IF z > 0.5 | |
BREAK | |
ENDIF | |
WAIT 0 | |
ENDWHILE | |
IF NOT DOES_CHAR_EXIST myth_ped | |
OR NOT DOES_CHAR_EXIST target_ped | |
BREAK | |
ENDIF | |
IF LOCATE_CHAR_DISTANCE_TO_CHAR myth_ped target_ped 1.7 | |
CLEO_CALL turn_char 0 target_ped myth_ped | |
GOSUB clear_tasks | |
TASK_PLAY_ANIM_NON_INTERRUPTABLE target_ped "HIT_FRONT" "PED" 4.0 0 1 1 0 -1 | |
ENDIF | |
WHILE DOES_CHAR_EXIST myth_ped | |
IF NOT IS_CHAR_PLAYING_ANIM myth_ped "GETUP" | |
BREAK | |
ENDIF | |
WAIT 0 | |
ENDWHILE | |
IF NOT DOES_CHAR_EXIST myth_ped | |
OR NOT DOES_CHAR_EXIST target_ped | |
BREAK | |
ENDIF | |
ENDIF | |
//push & cover | |
IF IS_CHAR_PLAYING_ANIM myth_ped $BLOCK | |
IF LOCATE_CHAR_DISTANCE_TO_CHAR myth_ped target_ped 1.5 | |
IF HAS_CHAR_SPOTTED_CHAR_IN_FRONT myth_ped target_ped | |
IF HAS_CHAR_SPOTTED_CHAR_IN_FRONT target_ped myth_ped | |
IF HAS_CHAR_BEEN_DAMAGED_BY_CHAR myth_ped target_ped | |
OR IS_BUTTON_JUST_PRESSED 0 CIRCLE | |
CLEAR_CHAR_LAST_DAMAGE_ENTITY myth_ped | |
GET_CHAR_COORDINATES myth_ped x y z | |
GET_GROUND_Z_FOR_3D_COORD x y z z | |
z += 0.05 | |
SET_CHAR_COORDINATES_DONT_WARP_GANG myth_ped x y z | |
//CLEAR_CHAR_TASKS_IMMEDIATELY myth_ped | |
CLEO_CALL turn_char 0 target_ped myth_ped | |
OPEN_SEQUENCE_TASK tasks | |
TASK_PLAY_ANIM_NON_INTERRUPTABLE -1 $MYTH_ANIM $IFP 4.0 0 1 1 0 500 | |
TASK_PLAY_ANIM -1 $IDLE $IFP 4.0 0 1 1 0 200 | |
CLOSE_SEQUENCE_TASK tasks | |
PERFORM_SEQUENCE_TASK myth_ped tasks | |
CLEAR_SEQUENCE_TASK tasks | |
GOSUB clear_tasks | |
timera = 0 | |
WHILE timera < 400 | |
AND NOT IS_CHAR_PLAYING_ANIM target_ped $TARGET_ANIM | |
TASK_PLAY_ANIM_NON_INTERRUPTABLE target_ped $TARGET_ANIM $IFP 4.0 0 1 1 0 -1 | |
IF timera > 600 | |
BREAK | |
ENDIF | |
WAIT 0 | |
ENDWHILE | |
WHILE DOES_CHAR_EXIST target_ped | |
IF NOT IS_CHAR_PLAYING_ANIM target_ped $TARGET_ANIM | |
BREAK | |
ENDIF | |
WAIT 0 | |
ENDWHILE | |
IF NOT DOES_CHAR_EXIST myth_ped | |
OR NOT DOES_CHAR_EXIST target_ped | |
BREAK | |
ENDIF | |
CLEO_CALL apply_attack 0 p_shared_buffer target_ped myth_ped 2 //attacks target | |
SET_CHAR_SHOOT_RATE myth_ped 200 | |
timera = 0 | |
WHILE timera < 1000 | |
IF DOES_CHAR_EXIST myth_ped | |
GOSUB fight_speed | |
ENDIF | |
WAIT 0 | |
ENDWHILE | |
IF NOT DOES_CHAR_EXIST myth_ped | |
OR NOT DOES_CHAR_EXIST target_ped | |
BREAK | |
ENDIF | |
READ_STRUCT_OFFSET p_buffer (17) 1 int[0] //attack rate | |
SET_CHAR_SHOOT_RATE myth_ped int[0] | |
ENDIF | |
ENDIF | |
ENDIF | |
ENDIF | |
IF var = 0 | |
SET_CHAR_PROOFS myth_ped TRUE TRUE FALSE FALSE TRUE | |
var = 1 | |
ENDIF | |
ELSE | |
IF var = 1 | |
CLEO_CALL apply_proofs 0 myth_ped p_buffer | |
var = 0 | |
ENDIF | |
ENDIF | |
/*IF IS_CHAR_PLAYING_ANIM target_ped "HitB_3" | |
IF var2 = 0 | |
GOSUB clear_tasks | |
TASK_PLAY_ANIM_NON_INTERRUPTABLE target_ped "HitB_2" "FIGHT_B" 4.0 0 1 1 0 -1 | |
var2 = 1 | |
ELSE | |
WHILE IS_CHAR_PLAYING_ANIM target_ped "HitB_3" | |
WAIT 0 | |
ENDWHILE | |
var2 = 0 | |
ENDIF | |
ENDIF*/ | |
IF IS_CHAR_FIGHTING myth_ped | |
GOSUB fight_speed | |
ENDIF | |
IF IS_CHAR_FALLEN_ON_GROUND target_ped | |
SET_CHAR_SHOOT_RATE myth_ped 1 | |
WHILE DOES_CHAR_EXIST myth_ped | |
IF NOT IS_CHAR_FALLEN_ON_GROUND target_ped | |
BREAK | |
ENDIF | |
WAIT 0 | |
ENDWHILE | |
IF NOT DOES_CHAR_EXIST myth_ped | |
OR NOT DOES_CHAR_EXIST target_ped | |
BREAK | |
ENDIF | |
READ_STRUCT_OFFSET p_buffer (17) 1 int[0] //attack rate | |
SET_CHAR_SHOOT_RATE myth_ped int[0] | |
ENDIF | |
ENDIF | |
ENDIF | |
ENDIF | |
WAIT 0 | |
ENDWHILE | |
TERMINATE_THIS_CUSTOM_SCRIPT | |
CLEO_RETURN 0 | |
fight_speed: | |
SET_CHAR_ANIM_SPEED myth_ped $MYTH_ANIM 1.3 //FIGHTX_1 | |
SET_CHAR_ANIM_SPEED myth_ped "FIGHTA_2" 1.3 | |
SET_CHAR_ANIM_SPEED myth_ped "FIGHTA_3" 1.3 | |
SET_CHAR_ANIM_SPEED myth_ped "FIGHTB_2" 1.3 | |
SET_CHAR_ANIM_SPEED myth_ped "FIGHTB_3" 1.3 | |
SET_CHAR_ANIM_SPEED myth_ped "FIGHTC_2" 1.3 | |
SET_CHAR_ANIM_SPEED myth_ped "FIGHTC_3" 1.3 | |
SET_CHAR_ANIM_SPEED myth_ped "FIGHTD_3" 1.3 | |
SET_CHAR_ANIM_SPEED myth_ped "HIT_FIGHTKICK" 1.3 | |
SET_CHAR_ANIM_SPEED myth_ped "HIT_FIGHTKICK_B" 1.2 | |
SET_CHAR_ANIM_SPEED myth_ped "FightShB" 1.15 | |
SET_CHAR_ANIM_SPEED myth_ped "FightShF" 1.15 | |
SET_CHAR_ANIM_SPEED myth_ped "FightSh_BWD" 1.15 | |
SET_CHAR_ANIM_SPEED myth_ped "FightSh_FWD" 1.15 | |
SET_CHAR_ANIM_SPEED myth_ped "FightSh_Left" 1.15 | |
SET_CHAR_ANIM_SPEED myth_ped "FightSh_Right" 1.15 | |
GET_CURRENT_CHAR_WEAPON myth_ped int[0] | |
SWITCH int[0] | |
CASE 4//knife | |
CASE 11//DILDO2 | |
CASE 13//VIBE2 | |
SET_CHAR_ANIM_SPEED myth_ped "knife_1" 1.3 | |
SET_CHAR_ANIM_SPEED myth_ped "knife_2" 1.3 | |
SET_CHAR_ANIM_SPEED myth_ped "knife_3" 1.3 | |
SET_CHAR_ANIM_SPEED myth_ped "knife_4" 1.3 | |
SET_CHAR_ANIM_SPEED myth_ped "knife_G" 1.3 | |
BREAK | |
CASE 2//GOLFCLUB | |
CASE 3//NIGHTSTICK | |
CASE 5//baseball bat | |
CASE 6//SHOVEL | |
CASE 7//POOLCUE | |
SET_CHAR_ANIM_SPEED myth_ped "Bat_1" 1.3 | |
SET_CHAR_ANIM_SPEED myth_ped "Bat_2" 1.3 | |
SET_CHAR_ANIM_SPEED myth_ped "Bat_3" 1.3 | |
SET_CHAR_ANIM_SPEED myth_ped "Bat_4" 1.3 | |
BREAK | |
CASE 9//CHAINSAW | |
SET_CHAR_ANIM_SPEED myth_ped "CSAW_1" 1.3 | |
SET_CHAR_ANIM_SPEED myth_ped "CSAW_2" 1.3 | |
SET_CHAR_ANIM_SPEED myth_ped "CSAW_3" 1.3 | |
SET_CHAR_ANIM_SPEED myth_ped "CSAW_G" 1.3 | |
BREAK | |
CASE 10//DILDO1 | |
CASE 12//VIBE1 | |
SET_CHAR_ANIM_SPEED myth_ped "DILDO_1" 1.3 | |
SET_CHAR_ANIM_SPEED myth_ped "DILDO_2" 1.3 | |
SET_CHAR_ANIM_SPEED myth_ped "DILDO_3" 1.3 | |
SET_CHAR_ANIM_SPEED myth_ped "DILDO_G" 1.3 | |
BREAK | |
CASE 8//KATANA | |
CASE 15//CANE | |
SET_CHAR_ANIM_SPEED myth_ped "sword_1" 1.3 | |
SET_CHAR_ANIM_SPEED myth_ped "sword_2" 1.3 | |
SET_CHAR_ANIM_SPEED myth_ped "sword_3" 1.3 | |
SET_CHAR_ANIM_SPEED myth_ped "sword_4" 1.3 | |
SET_CHAR_ANIM_SPEED myth_ped "sword_part" 1.3 | |
BREAK | |
ENDSWITCH | |
RETURN | |
clear_tasks: | |
IF target_ped = scplayer | |
CLEAR_CHAR_TASKS_IMMEDIATELY scplayer | |
ELSE | |
GET_CHAR_COORDINATES target_ped x y z | |
SET_CHAR_COORDINATES_DONT_WARP_GANG target_ped x y z | |
ENDIF | |
RETURN | |
} | |
{ | |
LVAR_INT myth_ped scplayer time flee_ped vehicle task_status pedtype var1 var2 weapon_type ammo model | |
ped_run_away_skill: | |
time *= 150 | |
WHILE DOES_CHAR_EXIST myth_ped | |
IF IS_CHAR_HEALTH_GREATER myth_ped 0 | |
WHILE GET_ANY_CHAR_NO_SAVE_RECURSIVE var1 var1 flee_ped | |
IF HAS_CHAR_SPOTTED_CHAR flee_ped myth_ped | |
IF NOT flee_ped = scplayer | |
IF NOT flee_ped = myth_ped | |
GOSUB apply_flee | |
ENDIF | |
ENDIF | |
ENDIF | |
WAIT time | |
IF NOT DOES_CHAR_EXIST myth_ped | |
TERMINATE_THIS_CUSTOM_SCRIPT | |
ENDIF | |
ENDWHILE | |
var1 = 0 | |
ENDIF | |
IF NOT flee_ped = -1 | |
ENDIF | |
WAIT time | |
ENDWHILE | |
TERMINATE_THIS_CUSTOM_SCRIPT | |
CLEO_RETURN 0 | |
apply_flee: | |
IF DOES_CHAR_EXIST flee_ped | |
IF NOT IS_CHAR_SCRIPT_CONTROLLED flee_ped | |
IF IS_CHAR_IN_ANY_CAR flee_ped | |
GET_CAR_CHAR_IS_USING flee_ped vehicle | |
SET_CAR_CRUISE_SPEED vehicle 150.0 | |
SET_CAR_DRIVING_STYLE vehicle 2 | |
RETURN | |
ENDIF | |
GET_PED_TYPE flee_ped pedtype | |
IF NOT pedtype = 24//MISSION1 | |
var2 = 1 | |
WHILE NOT var2 = 8 | |
GET_CHAR_WEAPON_IN_SLOT flee_ped var2 weapon_type ammo model | |
IF NOT weapon_type = 0 | |
SET_CHAR_RELATIONSHIP flee_ped 4 PEDTYPE_MISSION1 | |
RETURN | |
ENDIF | |
var2 += 1 | |
ENDWHILE | |
GET_SCRIPT_TASK_STATUS flee_ped 0x5DD (task_status) // get TASK_SMART_FLEE_CHAR status | |
IF task_status = 7 | |
IF HAS_CHAR_SPOTTED_CHAR flee_ped myth_ped | |
TASK_SMART_FLEE_CHAR flee_ped myth_ped 50.0 5000 | |
ENDIF | |
ENDIF | |
ENDIF | |
ENDIF | |
ENDIF | |
RETURN | |
} | |
{ | |
LVAR_INT myth_ped target tasks var damage int[2] | |
LVAR_FLOAT x[4] y[4] z[4] ftimer angle tempo min_a max_a intensity | |
super_punch_skill: | |
WHILE DOES_CHAR_EXIST myth_ped | |
IF GET_CHAR_KILL_TARGET_CHAR myth_ped target | |
IF GET_CHAR_DAMAGE_LAST_FRAME target int[1] int[0] int[0] intensity | |
IF NOT int[1] = 0 | |
GET_ENTITY_TYPE int[1] int[0] | |
IF int[0] = ENTITY_TYPE_PED | |
GET_PED_REF int[1] int[0] | |
IF int[0] = myth_ped | |
BREAK | |
ENDIF | |
ENDIF | |
ENDIF | |
ENDIF | |
ENDIF | |
WAIT 0 | |
ENDWHILE | |
IF NOT DOES_CHAR_EXIST myth_ped | |
TERMINATE_THIS_CUSTOM_SCRIPT | |
ENDIF | |
IF IS_CHAR_FALLEN_ON_GROUND target | |
WAIT 0 | |
GOTO super_punch_skill | |
ENDIF | |
CLEAR_CHAR_TASKS target | |
GET_CHAR_COORDINATES target x[2] y[2] z[2] | |
z[2] -= 0.8 | |
SET_CHAR_COORDINATES target x[2] y[2] z[2] | |
timera = 0 | |
WHILE TRUE | |
IF NOT DOES_CHAR_EXIST myth_ped | |
TERMINATE_THIS_CUSTOM_SCRIPT | |
ENDIF | |
IF NOT DOES_CHAR_EXIST target | |
GOTO super_punch_skill | |
ENDIF | |
GET_CHAR_HEADING myth_ped max_a | |
max_a += 360.0 | |
min_a = max_a | |
max_a += 90.0 | |
min_a -= 90.0 | |
GET_CHAR_HEADING target angle | |
angle += 360.0 | |
IF angle < min_a | |
OR angle > max_a | |
OPEN_SEQUENCE_TASK tasks | |
TASK_PLAY_ANIM_NON_INTERRUPTABLE -1 "KO_skid_front" "PED" 4.0 0 1 1 1 -1 | |
CLOSE_SEQUENCE_TASK tasks | |
PERFORM_SEQUENCE_TASK target tasks | |
CLEAR_SEQUENCE_TASK tasks | |
var = 1 | |
ELSE | |
OPEN_SEQUENCE_TASK tasks | |
TASK_PLAY_ANIM_NON_INTERRUPTABLE -1 "KO_skid_back" "PED" 4.0 0 1 1 1 -1 | |
CLOSE_SEQUENCE_TASK tasks | |
PERFORM_SEQUENCE_TASK target tasks | |
CLEAR_SEQUENCE_TASK tasks | |
var = 0 | |
ENDIF | |
IF IS_CHAR_PLAYING_ANIM target "KO_skid_front" | |
OR IS_CHAR_PLAYING_ANIM target "KO_skid_back" | |
BREAK | |
ENDIF | |
WAIT 0 | |
ENDWHILE | |
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS myth_ped 0.0 0.5 0.3 x[0] y[0] z[0] | |
SET_CHAR_COORDINATES_SIMPLE target x[0] y[0] z[0] | |
timera = 0 | |
ftimer = 4.0 | |
WHILE IS_CHAR_IN_AIR target | |
OR timera < 800 | |
IF NOT DOES_CHAR_EXIST myth_ped | |
OR NOT DOES_CHAR_EXIST target | |
BREAK | |
ENDIF | |
GOSUB get_punch_angle | |
x[0] -= x[1] | |
y[0] -= y[1] | |
z[0] -= z[1] | |
ftimer -=@ 0.2 | |
x[0] *= 3.5 | |
y[0] *= 3.5 | |
//ftimer /= 4.0 | |
z[0] +=@ ftimer | |
//timer *= 4.0 | |
SET_CHAR_VELOCITY target x[0] y[0] z[0] | |
WAIT 0 | |
ENDWHILE | |
WAIT 0 | |
IF NOT DOES_CHAR_EXIST myth_ped | |
TERMINATE_THIS_CUSTOM_SCRIPT | |
ENDIF | |
IF NOT DOES_CHAR_EXIST target | |
GOTO super_punch_skill | |
ENDIF | |
IF var = 1 | |
IF NOT IS_CHAR_PLAYING_ANIM target "getup" | |
WAIT 0 | |
OPEN_SEQUENCE_TASK tasks | |
TASK_PLAY_ANIM_NON_INTERRUPTABLE -1 "getup" "PED" 4.0 0 0 0 0 -1 | |
CLOSE_SEQUENCE_TASK tasks | |
PERFORM_SEQUENCE_TASK target tasks | |
CLEAR_SEQUENCE_TASK tasks | |
ENDIF | |
ELSE | |
IF NOT IS_CHAR_PLAYING_ANIM target "getup_front" | |
WAIT 0 | |
OPEN_SEQUENCE_TASK tasks | |
TASK_PLAY_ANIM_NON_INTERRUPTABLE -1 "getup_front" "PED" 4.0 0 0 0 0 -1 | |
CLOSE_SEQUENCE_TASK tasks | |
PERFORM_SEQUENCE_TASK target tasks | |
CLEAR_SEQUENCE_TASK tasks | |
ENDIF | |
ENDIF | |
timera = 0 | |
WHILE TRUE | |
IF NOT DOES_CHAR_EXIST myth_ped | |
TERMINATE_THIS_CUSTOM_SCRIPT | |
ENDIF | |
IF NOT DOES_CHAR_EXIST target | |
GOTO super_punch_skill | |
ENDIF | |
IF var = 1 | |
GET_CHAR_ANIM_CURRENT_TIME target "getup" tempo | |
ELSE | |
GET_CHAR_ANIM_CURRENT_TIME target "getup_front" tempo | |
ENDIF | |
IF tempo = 1.0 | |
BREAK | |
ENDIF | |
IF timera > 500 | |
IF tempo = 0.0 | |
BREAK | |
ENDIF | |
ENDIF | |
WAIT 0 | |
ENDWHILE | |
GOTO super_punch_skill | |
CLEO_RETURN 0 | |
get_punch_angle: | |
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS myth_ped 0.0 10.0 0.0 x[0] y[0] z[0] | |
GET_GROUND_Z_FOR_3D_COORD x[0] y[0] z[0] z[0] | |
GET_CHAR_COORDINATES target x[1] y[1] z[1] | |
GET_ANGLE_FROM_TWO_COORDS (x[0] y[0]) (x[1],y[1]) (angle) | |
RETURN | |
} | |
{ | |
LVAR_INT scplayer myth_ped p_buffer p_shared_buffer target var | |
teleport_skill: | |
WHILE DOES_CHAR_EXIST myth_ped | |
IF NOT IS_CHAR_ON_SCREEN myth_ped | |
timera = 0 | |
ELSE | |
IF timera > 1000 | |
BREAK | |
ENDIF | |
ENDIF | |
READ_STRUCT_OFFSET p_buffer (94) 1 var//teleport trigger | |
IF NOT var = 0 | |
BREAK | |
ENDIF | |
WAIT 0 | |
ENDWHILE | |
WHILE DOES_CHAR_EXIST myth_ped | |
READ_STRUCT_OFFSET p_buffer (94) 1 var//teleport trigger | |
IF IS_CHAR_HEALTH_GREATER myth_ped 0 | |
OR NOT var = 0 | |
IF NOT IS_CHAR_ON_SCREEN myth_ped | |
OR NOT var = 0 | |
IF timera > 4000 | |
OR NOT var = 0 | |
SET_CHAR_VISIBLE myth_ped FALSE | |
WRITE_STRUCT_OFFSET p_buffer (93) 1 1//visible | |
CLEO_CALL spawn_type_1 0 scplayer myth_ped var p_buffer | |
WRITE_STRUCT_OFFSET p_buffer (94) 1 0//teleport trigger | |
IF DOES_CHAR_EXIST myth_ped | |
GET_CHAR_KILL_TARGET_CHAR myth_ped target | |
IF target = scplayer | |
CLEO_CALL apply_attack 0 p_shared_buffer scplayer myth_ped 2 //attacks target | |
ENDIF | |
SET_CHAR_VISIBLE myth_ped TRUE | |
WRITE_STRUCT_OFFSET p_buffer (93) 1 0//visible | |
ENDIF | |
timera = 0 | |
ENDIF | |
ELSE | |
timera = 0 | |
ENDIF | |
ENDIF | |
WAIT 0 | |
ENDWHILE | |
TERMINATE_THIS_CUSTOM_SCRIPT | |
CLEO_RETURN 0 | |
} | |
{ | |
LVAR_INT myth_ped target tasks current_health max_health weapon int[2] scplayer group | |
LVAR_FLOAT x y z fmax_health intensity | |
deadly_stab_skill: | |
GET_PLAYER_CHAR 0 scplayer | |
GET_PLAYER_GROUP 0 group | |
WHILE DOES_CHAR_EXIST myth_ped | |
IF IS_CHAR_HEALTH_GREATER myth_ped 0 | |
IF GET_CHAR_KILL_TARGET_CHAR myth_ped target | |
GET_CHAR_MAX_HEALTH target fmax_health | |
fmax_health /= 2.0 | |
max_health =# fmax_health | |
GET_CHAR_HEALTH target current_health | |
IF current_health < max_health | |
IF GET_CHAR_DAMAGE_LAST_FRAME target int[1] int[0] int[0] intensity | |
GET_ENTITY_TYPE int[1] int[0] | |
IF int[0] = ENTITY_TYPE_PED | |
GET_PED_REF int[1] int[0] | |
IF int[0] = myth_ped | |
GET_CURRENT_CHAR_WEAPON myth_ped weapon | |
IF IS_WEAPON_FIRE_TYPE weapon WEAPONFIRE_MELEE | |
WHILE DOES_CHAR_EXIST target | |
IF NOT IS_CHAR_FALLEN_ON_GROUND target | |
BREAK | |
ENDIF | |
WAIT 0 | |
ENDWHILE | |
IF NOT DOES_CHAR_EXIST target | |
GOTO deadly_stab_skill | |
ENDIF | |
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS myth_ped 0.0 1.0 0.0 x y z | |
GET_GROUND_Z_FOR_3D_COORD x y 900.0 z | |
SET_CHAR_COORDINATES_DONT_WARP_GANG target x y z | |
CLEAR_CHAR_TASKS myth_ped | |
WAIT 0 | |
IF NOT DOES_CHAR_EXIST target | |
OR NOT DOES_CHAR_EXIST myth_ped | |
GOTO deadly_stab_skill | |
ENDIF | |
OPEN_SEQUENCE_TASK tasks | |
TASK_PLAY_ANIM_NON_INTERRUPTABLE -1 KILL_Knife_Player knife 1.0 1 0 0 0 1600 | |
CLOSE_SEQUENCE_TASK tasks | |
PERFORM_SEQUENCE_TASK myth_ped tasks | |
CLEAR_SEQUENCE_TASK tasks | |
GET_CHAR_HEADING myth_ped z | |
SET_CHAR_HEADING target z | |
WAIT 200 | |
IF NOT DOES_CHAR_EXIST target | |
OR NOT DOES_CHAR_EXIST myth_ped | |
GOTO deadly_stab_skill | |
ENDIF | |
OPEN_SEQUENCE_TASK tasks | |
TASK_PLAY_ANIM_NON_INTERRUPTABLE -1 KILL_Knife_Ped_Damage knife 1.0 0 0 0 0 -1 | |
TASK_DIE_NAMED_ANIM -1 KILL_Knife_Ped_Die knife 1.0 -1 | |
CLOSE_SEQUENCE_TASK tasks | |
PERFORM_SEQUENCE_TASK target tasks | |
CLEAR_SEQUENCE_TASK tasks | |
ENDIF | |
ENDIF | |
ENDIF | |
ENDIF | |
ENDIF | |
ENDIF | |
ELSE | |
BREAK | |
ENDIF | |
IF IS_GROUP_MEMBER myth_ped group | |
BREAK | |
ENDIF | |
WAIT 0 | |
ENDWHILE | |
TERMINATE_THIS_CUSTOM_SCRIPT | |
CLEO_RETURN 0 | |
} | |
{ | |
LVAR_INT myth_ped p_shared_buffer p_buffer myth_id /*in*/ scplayer audio pointer pChar pVector3D var | |
LVAR_FLOAT x y z bone_x bone_y bone_z fVolume angle | |
jumpscare_skill: | |
GET_PLAYER_CHAR 0 scplayer | |
GET_CHAR_HEADING scplayer angle | |
GET_LABEL_POINTER string_label (pointer) | |
READ_STRUCT_OFFSET p_buffer (69) 1 var //type | |
IF var = 2 | |
STRING_FORMAT (pointer) "cleo\Peds\Ped%i\jumpsca.mp3" myth_id | |
ENDIF | |
IF var = 1 | |
STRING_FORMAT (pointer) "cleo\anima\Anim%i\jumpsca.mp3" myth_id | |
ENDIF | |
IF var = 0 | |
STRING_FORMAT (pointer) "cleo\Myths\Myth%i\jumpsca.mp3" myth_id | |
ENDIF | |
LOAD_AUDIO_STREAM $pointer audio | |
WHILE DOES_CHAR_EXIST myth_ped | |
IF NOT IS_CHAR_HEALTH_GREATER myth_ped 1 | |
TERMINATE_THIS_CUSTOM_SCRIPT | |
ENDIF | |
IF IS_CHAR_ON_SCREEN myth_ped | |
AND IS_PLAYER_PLAYING 0 | |
IF IS_CHAR_IN_ANY_CAR scplayer | |
timera = -1000 | |
ENDIF | |
GET_ACTIVE_CAMERA_COORDINATES x y z | |
GET_CHAR_COORDINATES myth_ped bone_x bone_y bone_z | |
IF IS_LINE_OF_SIGHT_CLEAR x y z bone_x bone_y bone_z TRUE TRUE FALSE TRUE FALSE | |
IF timera > 3000 | |
TASK_TURN_CHAR_TO_FACE_CHAR myth_ped scplayer | |
WAIT 1000 | |
BREAK | |
ENDIF | |
ELSE | |
timera = 0 | |
ENDIF | |
ELSE | |
timera = 0 | |
ENDIF | |
WAIT 0 | |
ENDWHILE | |
IF NOT DOES_CHAR_EXIST myth_ped | |
TERMINATE_THIS_CUSTOM_SCRIPT | |
ENDIF | |
IF NOT IS_CHAR_ON_SCREEN scplayer | |
OR NOT IS_PLAYER_PLAYING 0 | |
GOTO jumpscare_skill | |
ENDIF | |
GET_AUDIO_SFX_VOLUME fVolume | |
SET_AUDIO_STREAM_VOLUME audio fVolume | |
SET_AUDIO_STREAM_STATE audio ON | |
SET_PLAYER_CONTROL_PAD_MOVEMENT 0 FALSE | |
CLEAR_CHAR_TASKS myth_ped | |
WAIT 0 | |
timera = 0 | |
WHILE timera < 7000 | |
IF NOT DOES_CHAR_EXIST myth_ped | |
TERMINATE_THIS_CUSTOM_SCRIPT | |
ENDIF | |
TASK_STAND_STILL myth_ped 0x7FFFFFFF | |
GET_PED_POINTER myth_ped (pChar) | |
GET_VAR_POINTER bone_x (pVector3D) | |
CALL_METHOD 0x5E4280 pChar 3 0 (0 4 pVector3D) | |
GET_CHAR_COORDINATES myth_ped (x y z) | |
x -= bone_x | |
y -= bone_y | |
y += 0.8 | |
z -= bone_z | |
z *= -1.0 | |
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS myth_ped x 0.9 z (x y z) | |
SET_FIXED_CAMERA_POSITION x y z 0.0 0.0 0.0 | |
POINT_CAMERA_AT_POINT bone_x bone_y bone_z 2 | |
IF timera > 4000 | |
IF var = 0 | |
DO_FADE 2000 FADE_OUT | |
var = 1 | |
ENDIF | |
ENDIF | |
WAIT 0 | |
ENDWHILE | |
WAIT 700 | |
DO_FADE 700 FADE_IN | |
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS scplayer 0.0 1.0 0.0 x y z | |
GET_GROUND_Z_FOR_3D_COORD x y z z | |
SET_CHAR_COORDINATES_DONT_WARP_GANG myth_ped x y z | |
SET_CHAR_HEADING scplayer angle | |
CLEO_CALL apply_attack 0 p_shared_buffer scplayer myth_ped 2 //attacks target | |
RESTORE_CAMERA_JUMPCUT | |
SET_PLAYER_CONTROL_PAD_MOVEMENT 0 TRUE | |
REMOVE_AUDIO_STREAM audio | |
TERMINATE_THIS_CUSTOM_SCRIPT | |
CLEO_RETURN 0 | |
} | |
{ | |
LVAR_FLOAT pos_x pos_y pos_z | |
LVAR_INT myth_ped p_shared_buffer target_ped scplayer pedstate task p_task entity_type group | |
LVAR_FLOAT x[2] y[2] z[2] | |
climb_skill: | |
GET_PLAYER_CHAR 0 scplayer | |
GET_PLAYER_GROUP 0 group | |
WHILE DOES_CHAR_EXIST myth_ped | |
IF GET_CHAR_KILL_TARGET_CHAR myth_ped target_ped | |
IF target_ped > 0x00100000 | |
GET_ENTITY_TYPE target_ped entity_type | |
IF entity_type = ENTITY_TYPE_PED | |
GET_PED_REF target_ped (target_ped) | |
ENDIF | |
ENDIF | |
IF NOT IS_CHAR_FIGHTING myth_ped | |
IF x[0] = 0.0 | |
AND x[0] = 0.0 | |
GET_CHAR_COORDINATES myth_ped x[0] y[0] z[0] | |
ENDIF | |
IF timera > 2000 | |
IF LOCATE_CHAR_DISTANCE_TO_COORDINATES myth_ped x[0] y[0] z[0] 2.0 | |
GET_CHAR_COORDINATES myth_ped x[0] y[0] z[0] | |
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS myth_ped 0.0 1.0 0.0 x[1] y[1] z[1] | |
IF NOT IS_LINE_OF_SIGHT_CLEAR x[0] y[0] z[0] x[1] y[1] z[1] 1 1 0 1 0 | |
CLEO_CALL turn_char 0 myth_ped target_ped | |
TASK_CLIMB myth_ped TRUE | |
CLEAR_CHAR_TASKS myth_ped | |
CLEO_CALL apply_attack 0 p_shared_buffer target_ped myth_ped 2//attacks target | |
GOSUB restart_coord | |
ENDIF | |
ENDIF | |
GOSUB restart_coord | |
ENDIF | |
ELSE | |
GOSUB restart_coord | |
ENDIF | |
ELSE | |
GOSUB restart_coord | |
ENDIF | |
IF IS_GROUP_MEMBER myth_ped group | |
BREAK | |
ENDIF | |
WAIT 0 | |
ENDWHILE | |
TERMINATE_THIS_CUSTOM_SCRIPT | |
restart_coord: | |
timera = 0 | |
x[0] = 0.0 | |
y[0] = 0.0 | |
z[0] = 0.0 | |
RETURN | |
CLEO_RETURN 0 | |
} | |
{ | |
LVAR_FLOAT pos_x pos_y pos_z | |
LVAR_INT myth_ped p_buffer p_shared_buffer task_status target_ped scplayer walk_mode interaction group list type | |
LVAR_FLOAT x[3] y[3] z[3] find_radius spawn_radius interaction_radius | |
random_walk_skill: | |
GET_PLAYER_CHAR 0 scplayer | |
GET_PLAYER_GROUP 0 group | |
READ_STRUCT_PARAM p_buffer (0) list | |
READ_STRUCT_OFFSET p_buffer (69) 1 type | |
GET_LIST_VALUE_BY_INDEX list (0) find_radius | |
GET_LIST_VALUE_BY_INDEX list (1) spawn_radius | |
GET_LIST_VALUE_BY_INDEX list (2) interaction_radius | |
READ_STRUCT_OFFSET p_buffer (49) 1 interaction | |
READ_STRUCT_OFFSET p_buffer (13) 1 walk_mode//walks randomly wander | |
GENERATE_RANDOM_INT_IN_RANGE 11000 13000 timera | |
WHILE DOES_CHAR_EXIST myth_ped | |
READ_STRUCT_OFFSET p_buffer (13) 1 walk_mode//walks randomly | |
IF walk_mode = 0 | |
BREAK | |
ENDIF | |
IF IS_CHAR_HEALTH_GREATER myth_ped 0 | |
IF walk_mode = 3//walk | |
OR walk_mode = 4//run | |
IF NOT GET_CHAR_KILL_TARGET_CHAR myth_ped target_ped | |
IF timera > 2000 | |
IF LOCATE_CHAR_DISTANCE_TO_COORDINATES scplayer pos_x pos_y pos_z find_radius | |
IF NOT LOCATE_CHAR_DISTANCE_TO_CHAR myth_ped scplayer interaction_radius | |
GET_CHAR_COORDINATES scplayer x[0] y[0] z[0] | |
IF walk_mode = 3//walk | |
TASK_GO_STRAIGHT_TO_COORD myth_ped x[0] y[0] z[0] 4 -1 | |
ELSE//run | |
TASK_GO_STRAIGHT_TO_COORD myth_ped x[0] y[0] z[0] 7 -1 | |
ENDIF | |
WAIT 500 | |
timera = 0 | |
GOTO random_walk_skill | |
ELSE | |
IF interaction = 0//attack | |
CLEO_CALL apply_attack 0 p_shared_buffer scplayer myth_ped 2 //attacks target | |
ELSE | |
CLEO_CALL runaway_from_player 0 p_buffer scplayer myth_ped | |
ENDIF | |
ENDIF | |
ENDIF | |
ENDIF | |
ELSE | |
timera = 0 | |
ENDIF | |
ELSE | |
IF IS_CHAR_STOPPED myth_ped | |
OR IS_CHAR_IN_WATER myth_ped | |
GET_SCRIPT_TASK_STATUS myth_ped 0x5DD (task_status) // get TASK_SMART_FLEE_CHAR status | |
IF task_status = 7 | |
IF NOT IS_CHAR_DOING_ANY_IMPORTANT_TASK myth_ped TRUE | |
IF NOT GET_CHAR_KILL_TARGET_CHAR myth_ped target_ped | |
IF timera > 15000 | |
GENERATE_RANDOM_INT_IN_RANGE -3000 10000 timera | |
x[0] = pos_x | |
x[1] = pos_x | |
y[0] = pos_y | |
y[1] = pos_y | |
x[0] -= spawn_radius | |
x[1] += spawn_radius | |
y[0] -= spawn_radius | |
y[1] += spawn_radius | |
timerb = 0 | |
find_spot: | |
GENERATE_RANDOM_FLOAT_IN_RANGE x[0] x[1] x[2] | |
GENERATE_RANDOM_FLOAT_IN_RANGE y[0] y[1] y[2] | |
GET_GROUND_Z_FOR_3D_COORD x[2] y[2] 900.0 z[2] | |
IF NOT LOCATE_CHAR_DISTANCE_TO_COORDINATES myth_ped x[2] y[2] z[2] 30.0 | |
OR LOCATE_CHAR_DISTANCE_TO_COORDINATES myth_ped x[2] y[2] z[2] 7.0 | |
timerb ++ | |
IF timerb < 80 | |
GOTO find_spot | |
ENDIF | |
ENDIF | |
IF IS_CHAR_SWIMMING myth_ped | |
GET_WATER_HEIGHT_AT_COORDS x[2] y[2] 1 pos_z | |
TASK_SWIM_TO_COORD myth_ped x[2] y[2] pos_z | |
ELSE | |
GET_CITY_PLAYER_IS_IN 0 timerb | |
IF timerb = 0 | |
OR type = 1//animal | |
TASK_GO_STRAIGHT_TO_COORD myth_ped x[2] y[2] -100.0 4 -1 | |
ELSE | |
TASK_WANDER_STANDARD myth_ped | |
timera = 0 | |
WHILE timera < 10000 | |
WAIT 0 | |
ENDWHILE | |
IF DOES_CHAR_EXIST myth_ped | |
TASK_STAND_STILL myth_ped -1 | |
ENDIF | |
ENDIF | |
ENDIF | |
ENDIF | |
ELSE | |
timera = 10000 | |
ENDIF | |
ELSE | |
timera = 10000 | |
ENDIF | |
ELSE | |
timera = 10000 | |
ENDIF | |
ELSE | |
timera = 10000 | |
ENDIF | |
ENDIF | |
ENDIF | |
IF IS_GROUP_MEMBER myth_ped group | |
BREAK | |
ENDIF | |
WAIT 0 | |
ENDWHILE | |
TERMINATE_THIS_CUSTOM_SCRIPT | |
CLEO_RETURN 0 | |
} | |
{ | |
LVAR_INT p_shared_buffer target myth_ped tipo | |
LVAR_INT id decision | |
apply_attack: | |
SWITCH tipo | |
CASE 0//neutral | |
READ_STRUCT_PARAM p_shared_buffer (1) decision | |
BREAK | |
CASE 1//attacks everyone | |
READ_STRUCT_PARAM p_shared_buffer (0) decision | |
id = 0 | |
WHILE id < 31 | |
SET_CHAR_RELATIONSHIP myth_ped 4 id | |
id += 1 | |
IF id = 24//mission1 | |
id = 25 | |
ENDIF | |
ENDWHILE | |
BREAK | |
CASE 2//attacks target | |
READ_STRUCT_PARAM p_shared_buffer (0) decision | |
TASK_KILL_CHAR_ON_FOOT myth_ped target | |
SET_CHAR_RELATIONSHIP myth_ped 4 PEDTYPE_PLAYER1 | |
SET_CHAR_RELATIONSHIP myth_ped 4 PEDTYPE_PLAYER2 | |
BREAK | |
ENDSWITCH | |
TASK_SET_CHAR_DECISION_MAKER myth_ped decision | |
CLEO_RETURN 0 | |
} | |
{ | |
LVAR_INT weapon_id random weapon | |
weapon_groups: | |
SWITCH weapon_id | |
CASE 37//ANY MELEE | |
GENERATE_RANDOM_INT_IN_RANGE 0 15 random | |
SWITCH random | |
CASE 0 | |
weapon = 1//WEAPONTYPE_BRASSKNUCKLE | |
BREAK | |
CASE 1 | |
weapon = 2//WEAPONTYPE_GOLFCLUB | |
BREAK | |
CASE 2 | |
weapon = 3//WEAPONTYPE_NIGHTSTICK | |
BREAK | |
CASE 3 | |
weapon = 4//WEAPONTYPE_KNIFE | |
BREAK | |
CASE 4 | |
weapon = 5//WEAPONTYPE_BASEBALLBAT | |
BREAK | |
CASE 5 | |
weapon = 6//WEAPONTYPE_SHOVEL | |
BREAK | |
CASE 6 | |
weapon = 7//WEAPONTYPE_POOL_CUE | |
BREAK | |
CASE 7 | |
weapon = 8//WEAPONTYPE_KATANA | |
BREAK | |
CASE 8 | |
weapon = 9//WEAPONTYPE_CHAINSAW | |
BREAK | |
CASE 9 | |
weapon = 10//WEAPONTYPE_DILDO1 | |
BREAK | |
CASE 10 | |
weapon = 11//WEAPONTYPE_DILDO2 | |
BREAK | |
CASE 11 | |
weapon = 12//WEAPONTYPE_VIBE1 | |
BREAK | |
CASE 12 | |
weapon = 13//WEAPONTYPE_VIBE2 | |
BREAK | |
CASE 13 | |
weapon = 14//WEAPONTYPE_FLOWERS | |
BREAK | |
CASE 14 | |
weapon = 15//WEAPONTYPE_CANE | |
BREAK | |
ENDSWITCH | |
BREAK | |
CASE 38//ANY MELEE (WITH EXCEPTIONS) | |
GENERATE_RANDOM_INT_IN_RANGE 0 9 random | |
SWITCH random | |
CASE 0 | |
weapon = 15//WEAPONTYPE_CANE | |
BREAK | |
CASE 1 | |
weapon = 2//WEAPONTYPE_GOLFCLUB | |
BREAK | |
CASE 2 | |
weapon = 3//WEAPONTYPE_NIGHTSTICK | |
BREAK | |
CASE 3 | |
weapon = 4//WEAPONTYPE_KNIFE | |
BREAK | |
CASE 4 | |
weapon = 5//WEAPONTYPE_BASEBALLBAT | |
BREAK | |
CASE 5 | |
weapon = 6//WEAPONTYPE_SHOVEL | |
BREAK | |
CASE 6 | |
weapon = 7//WEAPONTYPE_POOL_CUE | |
BREAK | |
CASE 7 | |
weapon = 8//WEAPONTYPE_KATANA | |
BREAK | |
CASE 8 | |
weapon = 9//WEAPONTYPE_CHAINSAW | |
BREAK | |
ENDSWITCH | |
BREAK | |
CASE 39//ANY VIOLENT MELEE | |
GENERATE_RANDOM_INT_IN_RANGE 0 3 random | |
SWITCH random | |
CASE 0 | |
weapon = 4//WEAPONTYPE_KNIFE | |
BREAK | |
CASE 1 | |
weapon = 5//WEAPONTYPE_BASEBALLBAT | |
BREAK | |
CASE 2 | |
weapon = 9//WEAPONTYPE_CHAINSAW | |
BREAK | |
ENDSWITCH | |
BREAK | |
CASE 40//ANY PISTOL | |
GENERATE_RANDOM_INT_IN_RANGE 0 3 random | |
SWITCH random | |
CASE 0 | |
weapon = 22//WEAPONTYPE_PISTOL | |
BREAK | |
CASE 1 | |
weapon = 23//WEAPONTYPE_PISTOL_SILENCED | |
BREAK | |
CASE 2 | |
weapon = 24//WEAPONTYPE_DESERT_EAGLE | |
BREAK | |
ENDSWITCH | |
BREAK | |
CASE 41//ANY SUBMACHINE GUN | |
GENERATE_RANDOM_INT_IN_RANGE 0 3 random | |
SWITCH random | |
CASE 0 | |
weapon = 28//WEAPONTYPE_MICRO_UZI | |
BREAK | |
CASE 1 | |
weapon = 29//WEAPONTYPE_MP5 | |
BREAK | |
CASE 2 | |
weapon = 32//WEAPONTYPE_TEC9 | |
BREAK | |
ENDSWITCH | |
BREAK | |
CASE 42//ANY RIFLE | |
GENERATE_RANDOM_INT_IN_RANGE 0 2 random | |
SWITCH random | |
CASE 0 | |
weapon = 30//WEAPONTYPE_AK47 | |
BREAK | |
CASE 1 | |
weapon = 31//WEAPONTYPE_M4 | |
BREAK | |
ENDSWITCH | |
BREAK | |
CASE 43//ANY SHOTGUN | |
GENERATE_RANDOM_INT_IN_RANGE 0 3 random | |
SWITCH random | |
CASE 0 | |
weapon = 25//WEAPONTYPE_SHOTGUN | |
BREAK | |
CASE 1 | |
weapon = 26//WEAPONTYPE_SAWNOFF_SHOTGUN | |
BREAK | |
CASE 2 | |
weapon = 27//WEAPONTYPE_SPAS12_SHOTGUN | |
BREAK | |
ENDSWITCH | |
BREAK | |
CASE 44//ANY PRECISION RIFLE | |
GENERATE_RANDOM_INT_IN_RANGE 0 2 random | |
SWITCH random | |
CASE 0 | |
weapon = 33//WEAPONTYPE_COUNTRYRIFLE | |
BREAK | |
CASE 1 | |
weapon = 34//WEAPONTYPE_SNIPERRIFLE | |
BREAK | |
ENDSWITCH | |
BREAK | |
CASE 45//ANY THROWABLE | |
GENERATE_RANDOM_INT_IN_RANGE 0 2 random | |
SWITCH random | |
CASE 0 | |
weapon = 16//WEAPONTYPE_GRENADE | |
BREAK | |
CASE 1 | |
weapon = 18//WEAPONTYPE_MOLOTOV | |
BREAK | |
ENDSWITCH | |
BREAK | |
CASE 46//ANY HEAVY GUN | |
GENERATE_RANDOM_INT_IN_RANGE 0 3 random | |
SWITCH random | |
CASE 0 | |
weapon = 35//WEAPONTYPE_ROCKETLAUNCHER | |
BREAK | |
CASE 1 | |
weapon = 37//WEAPONTYPE_FLAMETHROWER | |
BREAK | |
CASE 2 | |
weapon = 38//WEAPONTYPE_MINIGUN | |
BREAK | |
ENDSWITCH | |
BREAK | |
CASE 47//ANY DILDO | |
GENERATE_RANDOM_INT_IN_RANGE 0 4 random | |
SWITCH random | |
CASE 0 | |
weapon = 10//WEAPONTYPE_DILDO1 | |
BREAK | |
CASE 1 | |
weapon = 11//WEAPONTYPE_DILDO2 | |
BREAK | |
CASE 2 | |
weapon = 12//WEAPONTYPE_VIBE1 | |
BREAK | |
CASE 3 | |
weapon = 13//WEAPONTYPE_VIBE2 | |
BREAK | |
ENDSWITCH | |
BREAK | |
CASE 48//ANY GANG WEAPON | |
GENERATE_RANDOM_INT_IN_RANGE 0 6 random | |
SWITCH random | |
CASE 0 | |
weapon = 5//WEAPONTYPE_BASEBALLBAT | |
BREAK | |
CASE 1 | |
weapon = 22//WEAPONTYPE_PISTOL | |
BREAK | |
CASE 2 | |
weapon = 28//WEAPONTYPE_MICRO_UZI | |
BREAK | |
CASE 3 | |
weapon = 29//WEAPONTYPE_MP5 | |
BREAK | |
CASE 4 | |
weapon = 32//WEAPONTYPE_TEC9 | |
BREAK | |
CASE 5 | |
weapon = 30//WEAPONTYPE_AK47 | |
BREAK | |
ENDSWITCH | |
BREAK | |
CASE 49//ANY FARM WEAPON | |
GENERATE_RANDOM_INT_IN_RANGE 0 3 random | |
SWITCH random | |
CASE 0 | |
weapon = 6//WEAPONTYPE_SHOVEL | |
BREAK | |
CASE 1 | |
weapon = 25//WEAPONTYPE_SHOTGUN | |
BREAK | |
CASE 2 | |
weapon = 33//WEAPONTYPE_COUNTRYRIFLE | |
BREAK | |
ENDSWITCH | |
BREAK | |
CASE 50//ANY COP WEAPON | |
GENERATE_RANDOM_INT_IN_RANGE 0 4 random | |
SWITCH random | |
CASE 0 | |
weapon = 3//WEAPONTYPE_NIGHTSTICK | |
BREAK | |
CASE 1 | |
weapon = 22//WEAPONTYPE_PISTOL | |
BREAK | |
CASE 2 | |
weapon = 25//WEAPONTYPE_SHOTGUN | |
BREAK | |
CASE 3 | |
weapon = 31//WEAPONTYPE_M4 | |
BREAK | |
ENDSWITCH | |
BREAK | |
CASE 51//ANY URBAN WEAPON | |
GENERATE_RANDOM_INT_IN_RANGE 0 4 random | |
SWITCH random | |
CASE 0 | |
weapon = 4//WEAPONTYPE_KNIFE | |
BREAK | |
CASE 1 | |
weapon = 5//WEAPONTYPE_BASEBALLBAT | |
BREAK | |
CASE 2 | |
weapon = 22//WEAPONTYPE_PISTOL | |
BREAK | |
CASE 3 | |
weapon = 31//WEAPONTYPE_M4 | |
BREAK | |
ENDSWITCH | |
BREAK | |
ENDSWITCH | |
CLEO_RETURN 0 (weapon) | |
} | |
{ | |
LVAR_INT scplayer CVehicle car pGasPedal mSubClass | |
car_turn_off: | |
IF IS_CHAR_IN_ANY_CAR scplayer | |
STORE_CAR_CHAR_IS_IN_NO_SAVE scplayer car | |
GET_VEHICLE_POINTER car (CVehicle) | |
CVehicle += 0x594 | |
READ_MEMORY CVehicle 4 FALSE (mSubClass) | |
IF mSubClass = 0 // car | |
OR mSubClass = 9 // motorcycle | |
CLEO_CALL SimulateButton 0 14 | |
CLEO_CALL SimulateButton 0 16 | |
CLEO_RETURN 0 | |
ENDIF | |
ENDIF | |
CLEO_RETURN 0 | |
} | |
{ | |
SimulateButton: | |
LVAR_INT adress | |
adress *= 2 | |
adress += 0xB73458 | |
WRITE_MEMORY adress 2 0 0 | |
CLEO_RETURN 0 | |
} | |
{ | |
LVAR_INT myth_ped p_buffer BP FP EP CP MP | |
apply_proofs: | |
READ_STRUCT_OFFSET_MULTI p_buffer (32) 5 1 BP FP EP CP MP | |
SET_CHAR_PROOFS myth_ped BP FP EP CP MP | |
CLEO_RETURN 0 | |
} | |
{ | |
LVAR_INT scplayer myth_ped var p_buffer int[2] sidewalk blood list | |
LVAR_FLOAT pos_x pos_y pos_z z[3] max_height_difference[2] spawn_radius spawn_radius2 x[2] y[2] z0[2] angle[3] | |
spawn_type_1: | |
READ_STRUCT_OFFSET p_buffer (37) 1 blood//leaves blood stain | |
SET_CHAR_BLEEDING myth_ped FALSE | |
FREEZE_CHAR_POSITION myth_ped TRUE | |
READ_STRUCT_OFFSET p_buffer (50) 1 sidewalk | |
READ_STRUCT_PARAM p_buffer (0) list | |
GET_LIST_VALUE_BY_INDEX list (1) spawn_radius | |
GET_LIST_VALUE_BY_INDEX list (3) max_height_difference[0] | |
IF max_height_difference[0] <= 2.0 | |
max_height_difference[0] = 2.0 | |
ENDIF | |
max_height_difference[1] = max_height_difference[0] | |
max_height_difference[1] *= -1.0 | |
GOSUB teleport | |
CLEO_CALL turn_char 0 myth_ped scplayer | |
timera = 0 | |
WHILE TRUE | |
GOSUB teleport | |
CLEO_CALL turn_char 0 myth_ped scplayer | |
GET_CHAR_COORDINATES scplayer pos_x pos_x z[0] | |
GET_CHAR_COORDINATES myth_ped pos_x pos_x z[1] | |
z[2] = z[0] - z[1] | |
WAIT 0 | |
IF NOT DOES_CHAR_EXIST myth_ped | |
READ_STRUCT_OFFSET p_buffer (43) 1 int[0]//myth quantity | |
READ_STRUCT_OFFSET p_buffer (44) 1 int[1]//dead myths | |
IF int[0] = 1 | |
int[1] = 1000 | |
ELSE | |
int[1] += 1 | |
ENDIF | |
WRITE_STRUCT_OFFSET p_buffer (44) 1 int[1]//dead myths | |
TERMINATE_THIS_CUSTOM_SCRIPT | |
ENDIF | |
IF NOT IS_CHAR_ON_SCREEN myth_ped | |
AND LOCATE_CHAR_DISTANCE_TO_CHAR scplayer myth_ped spawn_radius | |
AND z[2] < max_height_difference[0] | |
AND z[2] > max_height_difference[1] | |
IF var = 0 | |
IF HAS_CHAR_SPOTTED_CHAR myth_ped scplayer | |
BREAK | |
ENDIF | |
ELSE | |
BREAK | |
ENDIF | |
ENDIF | |
ENDWHILE | |
SET_CHAR_BLEEDING myth_ped blood | |
FREEZE_CHAR_POSITION myth_ped FALSE | |
CLEO_RETURN 0 | |
teleport: | |
GET_ACTIVE_CAMERA_POINT_AT x[0] y[0] z0[0] | |
GET_ACTIVE_CAMERA_COORDINATES x[1] y[1] z0[1] | |
x[0] -= x[1] | |
y[0] -= y[1] | |
z0[0] -= z0[1] | |
x[0] *= 2.5 | |
y[0] *= 2.5 | |
z0[0] *= 5.5 | |
GET_CHAR_COORDINATES scplayer x[1] y[1] z0[1] | |
x[1] += x[0] | |
y[1] += y[0] | |
z0[1] += z0[0] | |
GET_CHAR_COORDINATES scplayer x[0] y[0] z0[0] | |
GET_ANGLE_FROM_TWO_COORDS (x[0] y[0]) (x[1],y[1]) (angle[0]) | |
angle[1] = angle[0] | |
IF timera < 2000 | |
angle[1] += 60.0 | |
angle[0] -= 60.0 | |
ELSE | |
angle[1] += 80.0 | |
angle[0] -= 80.0 | |
ENDIF | |
IF var = 2 | |
angle[0] -= 180.0 | |
angle[1] -= 180.0 | |
ENDIF | |
GENERATE_RANDOM_FLOAT_IN_RANGE angle[0] angle[1] angle[2] | |
GET_CHAR_COORDINATES scplayer pos_x pos_y pos_z | |
IF var = 0 | |
GENERATE_RANDOM_FLOAT_IN_RANGE spawn_radius 2.0 spawn_radius2 | |
GET_COORD_FROM_ANGLED_DISTANCE (pos_x pos_y angle[2] spawn_radius2) (pos_x pos_y) | |
ELSE | |
GET_COORD_FROM_ANGLED_DISTANCE (pos_x pos_y angle[2] 7.0) (pos_x pos_y) | |
ENDIF | |
IF sidewalk = 1 | |
GET_CLOSEST_CHAR_NODE pos_x pos_y pos_z (pos_x pos_y pos_z) | |
ENDIF | |
GET_WATER_HEIGHT_AT_COORDS pos_x pos_y 1 pos_z | |
IF pos_z = -1000.0 | |
GET_GROUND_Z_FOR_3D_COORD pos_x pos_y 900.0 pos_z | |
pos_z += 0.05 | |
ENDIF | |
SET_CHAR_COORDINATES_DONT_WARP_GANG myth_ped pos_x pos_y pos_z | |
RETURN | |
} | |
{//By LightVelox | |
turn_char: | |
LVAR_INT myth_ped scplayer | |
LVAR_FLOAT cx cy ex ey z | |
LVAR_FLOAT dx dy theta m_pi q magnitude q1 q2 r | |
GET_CHAR_COORDINATES myth_ped cx cy z | |
GET_CHAR_COORDINATES scplayer ex ey z | |
m_pi = 3.1415926 | |
dy = ey | |
dy -= cy | |
dx = ex | |
dx -= cx | |
q1 = dx | |
q1 *=dx | |
q2 = dy | |
q2 *=dy | |
q1 +=q2 | |
SQRT q1 r | |
dx /= r | |
dy /= r | |
GET_HEADING_FROM_VECTOR_2D dx dy theta | |
SET_CHAR_HEADING myth_ped theta | |
CLEO_RETURN 0 | |
} | |
{ | |
LVAR_INT myth_ped p_buffer myth_id type //in | |
LVAR_INT anim nome_ini | |
LVAR_TEXT_LABEL16 nome_anim | |
apply_animgroup: | |
READ_STRUCT_OFFSET p_buffer (11) 1 anim//animgroup | |
SWITCH anim | |
DEFAULT | |
GET_LABEL_POINTER string_label (nome_ini) | |
IF type = 2 | |
STRING_FORMAT (nome_ini) "cleo\Peds\Ped%i\Ped%i.ini" myth_id myth_id | |
ENDIF | |
IF type = 1 | |
STRING_FORMAT (nome_ini) "cleo\Animals\Anim%i\Anim%i.ini" myth_id myth_id | |
ENDIF | |
IF type = 0 | |
STRING_FORMAT (nome_ini) "cleo\Myths\Myth%i\Myth%i.ini" myth_id myth_id | |
ENDIF | |
IF NOT READ_STRING_FROM_INI_FILE $nome_ini "Myths Maker" "custom animgroup" nome_anim | |
IF READ_STRING_FROM_INI_FILE $nome_ini "animação" "animgroup" nome_anim | |
REQUEST_ANIMATION $nome_anim | |
WHILE NOT HAS_ANIMATION_LOADED $nome_anim | |
WAIT 0 | |
ENDWHILE | |
SET_ANIM_GROUP_FOR_CHAR myth_ped $nome_anim | |
WRITE_STRING_TO_INI_FILE $nome_anim $nome_ini "Myths Maker" "animgroup" | |
//REMOVE_ANIMATION $nome_anim | |
ENDIF | |
ELSE | |
REQUEST_ANIMATION $nome_anim | |
WHILE NOT HAS_ANIMATION_LOADED $nome_anim | |
WAIT 0 | |
ENDWHILE | |
SET_ANIM_GROUP_FOR_CHAR myth_ped $nome_anim | |
ENDIF | |
BREAK | |
CASE 0 | |
SET_ANIM_GROUP_FOR_CHAR myth_ped man | |
BREAK | |
CASE 1 | |
SET_ANIM_GROUP_FOR_CHAR myth_ped oldman | |
BREAK | |
CASE 2 | |
SET_ANIM_GROUP_FOR_CHAR myth_ped gang1 | |
BREAK | |
CASE 3 | |
SET_ANIM_GROUP_FOR_CHAR myth_ped gang2 | |
BREAK | |
CASE 4 | |
SET_ANIM_GROUP_FOR_CHAR myth_ped oldfatman | |
BREAK | |
CASE 5 | |
SET_ANIM_GROUP_FOR_CHAR myth_ped fatman | |
BREAK | |
CASE 6 | |
SET_ANIM_GROUP_FOR_CHAR myth_ped jogger | |
BREAK | |
CASE 7 | |
SET_ANIM_GROUP_FOR_CHAR myth_ped drunkman | |
BREAK | |
CASE 8 | |
SET_ANIM_GROUP_FOR_CHAR myth_ped blindman | |
BREAK | |
CASE 9 | |
SET_ANIM_GROUP_FOR_CHAR myth_ped swat | |
BREAK | |
CASE 10 | |
SET_ANIM_GROUP_FOR_CHAR myth_ped woman | |
BREAK | |
CASE 11 | |
SET_ANIM_GROUP_FOR_CHAR myth_ped shopping | |
BREAK | |
CASE 12 | |
SET_ANIM_GROUP_FOR_CHAR myth_ped busywoman | |
BREAK | |
CASE 13 | |
SET_ANIM_GROUP_FOR_CHAR myth_ped sexywoman | |
BREAK | |
CASE 14 | |
SET_ANIM_GROUP_FOR_CHAR myth_ped pro | |
BREAK | |
CASE 15 | |
SET_ANIM_GROUP_FOR_CHAR myth_ped oldwoman | |
BREAK | |
CASE 16 | |
SET_ANIM_GROUP_FOR_CHAR myth_ped fatwoman | |
BREAK | |
CASE 17 | |
SET_ANIM_GROUP_FOR_CHAR myth_ped jogwoman | |
BREAK | |
CASE 18 | |
SET_ANIM_GROUP_FOR_CHAR myth_ped oldfatwoman | |
BREAK | |
CASE 19 | |
SET_ANIM_GROUP_FOR_CHAR myth_ped player | |
BREAK | |
ENDSWITCH | |
CLEO_RETURN 0 | |
} | |
{ | |
LVAR_INT scplayer myth_ped p_buffer | |
LVAR_FLOAT pos_x pos_y pos_z find_radius max_radius spawn_radius[3] x y z[3] max_height_difference[2] z0 angle | |
LVAR_INT int[2] sidewalk counter bli list | |
spawn_type_2: | |
READ_STRUCT_OFFSET p_buffer (50) 1 sidewalk | |
READ_STRUCT_PARAM p_buffer (0) list | |
GET_LIST_VALUE_BY_INDEX list (0) find_radius | |
GET_LIST_VALUE_BY_INDEX list (1) spawn_radius[0] | |
x = pos_x | |
y = pos_y | |
z[0] = pos_z | |
GET_LIST_VALUE_BY_INDEX list (3) max_height_difference[0] | |
IF max_height_difference[0] <= 1.2 | |
max_height_difference[0] = 1.2 | |
ENDIF | |
max_height_difference[1] = max_height_difference[0] | |
max_height_difference[1] *= -1.0 | |
IF find_radius > 100.0 | |
find_radius *= 1.4 | |
ELSE | |
find_radius += 60.0 | |
ENDIF | |
max_radius = find_radius * 1.2 | |
spawn_radius[2] = spawn_radius[0] / 5.0 | |
FREEZE_CHAR_POSITION myth_ped TRUE | |
tipo02: | |
GENERATE_RANDOM_FLOAT_IN_RANGE 0.0 360.0 angle | |
GENERATE_RANDOM_FLOAT_IN_RANGE spawn_radius[2] spawn_radius[0] spawn_radius[1] | |
GET_COORD_FROM_ANGLED_DISTANCE (x y angle spawn_radius[1]) (pos_x pos_y) | |
IF sidewalk = 1 | |
GET_CLOSEST_CHAR_NODE pos_x pos_y pos_z (pos_x pos_y pos_z) | |
ENDIF | |
GET_WATER_HEIGHT_AT_COORDS pos_x pos_y 1 pos_z | |
IF pos_z = -1000.0 | |
SET_CHAR_COORDINATES_DONT_WARP_GANG myth_ped pos_x pos_y -100.0 | |
ELSE | |
GET_GROUND_Z_FOR_3D_COORD pos_x pos_y 900.0 z0 | |
IF z0 > pos_z | |
SET_CHAR_COORDINATES_DONT_WARP_GANG myth_ped pos_x pos_y -100.0 | |
ELSE | |
SET_CHAR_COORDINATES_DONT_WARP_GANG myth_ped pos_x pos_y z0 | |
ENDIF | |
ENDIF | |
GET_CHAR_COORDINATES myth_ped pos_x pos_x z[1] | |
z[2] = z[0] - z[1] | |
GENERATE_RANDOM_FLOAT_IN_RANGE 0.0 360.0 angle | |
SET_CHAR_HEADING myth_ped angle | |
IF NOT LOCATE_CHAR_DISTANCE_TO_COORDINATES myth_ped x y z[0] find_radius | |
OR z[2] > max_height_difference[0] | |
OR z[2] < max_height_difference[1] | |
WAIT 10 | |
IF z[2] > max_height_difference[0] | |
OR z[2] < max_height_difference[1] | |
counter ++ | |
ENDIF | |
IF counter < 100 | |
GOTO tipo02 | |
ENDIF | |
ENDIF | |
IF DOES_CHAR_EXIST myth_ped | |
IF find_radius < 100.0 | |
IF IS_CHAR_ON_SCREEN myth_ped | |
IF counter < 100 | |
GOTO tipo02 | |
ENDIF | |
ENDIF | |
ENDIF | |
IF IS_CHAR_FALLEN_ON_GROUND myth_ped | |
SET_CHAR_VISIBLE myth_ped FALSE | |
WRITE_STRUCT_OFFSET p_buffer (93) 1 1//visible | |
WHILE DOES_CHAR_EXIST myth_ped | |
IF NOT IS_CHAR_FALLEN_ON_GROUND myth_ped | |
BREAK | |
ENDIF | |
WAIT 0 | |
ENDWHILE | |
IF DOES_CHAR_EXIST myth_ped | |
SET_CHAR_VISIBLE myth_ped TRUE | |
WRITE_STRUCT_OFFSET p_buffer (93) 1 0//visible | |
ENDIF | |
ENDIF | |
FREEZE_CHAR_POSITION myth_ped FALSE | |
ENDIF | |
CLEO_RETURN 0 | |
} | |
{ | |
LVAR_INT p_buffer scplayer myth_ped | |
LVAR_INT task_status tempo list | |
LVAR_FLOAT x[2] y[2] z[2] distance radius | |
runaway_from_player: | |
READ_STRUCT_PARAM p_buffer (0) list | |
GET_LIST_VALUE_BY_INDEX list (2) radius//interaction radius | |
tempo = 1000 | |
GET_SCRIPT_TASK_STATUS myth_ped 0x5DD (task_status) // get TASK_SMART_FLEE_CHAR status | |
IF task_status = 7 | |
IF HAS_CHAR_SPOTTED_CHAR myth_ped scplayer | |
IF radius < 10.0 | |
radius = 10.0 | |
ELSE | |
radius *= 1.2 | |
ENDIF | |
IF HAS_CHAR_BEEN_DAMAGED_BY_CHAR myth_ped scplayer | |
GET_CHAR_COORDINATES scplayer x[0] y[0] z[0] | |
GET_CHAR_COORDINATES myth_ped x[1] y[1] z[1] | |
GET_DISTANCE_BETWEEN_COORDS_3D x[0] y[0] z[0] x[1] y[1] z[1] distance | |
distance *= 1.8 | |
radius = distance | |
tempo = 3000 | |
ENDIF | |
TASK_SMART_FLEE_CHAR myth_ped scplayer radius tempo | |
ENDIF | |
ENDIF | |
CLEO_RETURN 0 | |
} | |
{ | |
LVAR_INT myth_ped scplayer | |
LVAR_FLOAT x y z | |
get_out_of_water: | |
GET_PLAYER_CHAR 0 scplayer | |
timera = 0 | |
WHILE DOES_CHAR_EXIST myth_ped | |
GET_CHAR_COORDINATES myth_ped x y z | |
GET_GROUND_Z_FOR_3D_COORD x y z z | |
z += 0.05 | |
GET_CHAR_HEIGHT_ABOVE_GROUND myth_ped z | |
IF z > 1.0 | |
IF IS_CHAR_IN_WATER myth_ped | |
IF timera > 1500 | |
GET_CHAR_COORDINATES scplayer x y z | |
TASK_SWIM_TO_COORD myth_ped x y z | |
SET_SWIM_SPEED myth_ped 1.6 | |
timera = 0 | |
ENDIF | |
ENDIF | |
ELSE | |
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS myth_ped 0.0 5.0 -100.0 x y z | |
TASK_GO_STRAIGHT_TO_COORD myth_ped x y z 6 -1 | |
WAIT 200 | |
CLEO_RETURN 0 | |
ENDIF | |
WAIT 0 | |
ENDWHILE | |
CLEO_RETURN 0 | |
} | |
{ | |
LVAR_INT myth_ped p_buffer var var2 fx[3] target_ped entity_type ped_health[2] teleport | |
LVAR_INT permanent_fx attacking_fx attack_bone[3] attacked_fx | |
special_fx: | |
READ_STRUCT_OFFSET p_buffer (70) 1 permanent_fx | |
READ_STRUCT_OFFSET p_buffer (71) 1 attack_bone[0] | |
READ_STRUCT_OFFSET p_buffer (72) 1 attacking_fx | |
READ_STRUCT_OFFSET p_buffer (73) 1 attack_bone[1] | |
READ_STRUCT_OFFSET p_buffer (74) 1 attacked_fx | |
READ_STRUCT_OFFSET p_buffer (75) 1 attack_bone[2] | |
IF attack_bone[0] > 8 | |
attack_bone[0] += 12 | |
ENDIF | |
IF attack_bone[0] > 26 | |
attack_bone[0] += 4 | |
ENDIF | |
IF attack_bone[0] > 36 | |
attack_bone[0] += 4 | |
ENDIF | |
IF attack_bone[0] > 44 | |
attack_bone[0] += 6 | |
ENDIF | |
IF attack_bone[1] > 8 | |
attack_bone[1] += 12 | |
ENDIF | |
IF attack_bone[1] > 26 | |
attack_bone[1] += 4 | |
ENDIF | |
IF attack_bone[1] > 36 | |
attack_bone[1] += 4 | |
ENDIF | |
IF attack_bone[1] > 44 | |
attack_bone[1] += 6 | |
ENDIF | |
IF attack_bone[2] > 8 | |
attack_bone[2] += 12 | |
ENDIF | |
IF attack_bone[2] > 26 | |
attack_bone[2] += 4 | |
ENDIF | |
IF attack_bone[2] > 36 | |
attack_bone[2] += 4 | |
ENDIF | |
IF attack_bone[2] > 44 | |
attack_bone[2] += 6 | |
ENDIF | |
SWITCH permanent_fx | |
CASE 0 | |
CREATE_FX_SYSTEM_ON_CHAR "prt_blood" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 1 | |
CREATE_FX_SYSTEM_ON_CHAR "prt_boatsplash" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 2 | |
CREATE_FX_SYSTEM_ON_CHAR "prt_bubble" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 3 | |
CREATE_FX_SYSTEM_ON_CHAR "prt_cardebris" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 4 | |
CREATE_FX_SYSTEM_ON_CHAR "prt_collisionsmoke" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 5 | |
CREATE_FX_SYSTEM_ON_CHAR "prt_glass" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 6 | |
CREATE_FX_SYSTEM_ON_CHAR "prt_gunshell" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 7 | |
CREATE_FX_SYSTEM_ON_CHAR "prt_sand" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 8 | |
CREATE_FX_SYSTEM_ON_CHAR "prt_sand2" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 9 | |
CREATE_FX_SYSTEM_ON_CHAR "prt_smokeII_3_expand" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 10 | |
CREATE_FX_SYSTEM_ON_CHAR "prt_smoke_huge" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 11 | |
CREATE_FX_SYSTEM_ON_CHAR "prt_spark" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 12 | |
CREATE_FX_SYSTEM_ON_CHAR "prt_spark_2" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 13 | |
CREATE_FX_SYSTEM_ON_CHAR "prt_splash" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 14 | |
CREATE_FX_SYSTEM_ON_CHAR "prt_watersplash" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 15 | |
CREATE_FX_SYSTEM_ON_CHAR "prt_wheeldirt" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 16 | |
CREATE_FX_SYSTEM_ON_CHAR "boat_prop" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 17 | |
CREATE_FX_SYSTEM_ON_CHAR "extinguisher" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 18 | |
CREATE_FX_SYSTEM_ON_CHAR "fire" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 19 | |
CREATE_FX_SYSTEM_ON_CHAR "fire_bike" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 20 | |
CREATE_FX_SYSTEM_ON_CHAR "fire_car" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 21 | |
CREATE_FX_SYSTEM_ON_CHAR "fire_large" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 22 | |
CREATE_FX_SYSTEM_ON_CHAR "fire_med" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 23 | |
CREATE_FX_SYSTEM_ON_CHAR "flamethrower" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 24 | |
CREATE_FX_SYSTEM_ON_CHAR "heli_dust" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 25 | |
CREATE_FX_SYSTEM_ON_CHAR "jetpack" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 26 | |
CREATE_FX_SYSTEM_ON_CHAR "jetthrust" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 27 | |
CREATE_FX_SYSTEM_ON_CHAR "molotov_flame" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 28 | |
CREATE_FX_SYSTEM_ON_CHAR "nitro" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 29 | |
CREATE_FX_SYSTEM_ON_CHAR "overheat_car" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 30 | |
CREATE_FX_SYSTEM_ON_CHAR "overheat_car_electric" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 31 | |
CREATE_FX_SYSTEM_ON_CHAR "riot_smoke" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 32 | |
CREATE_FX_SYSTEM_ON_CHAR "spraycan" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 33 | |
CREATE_FX_SYSTEM_ON_CHAR "teargas" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 34 | |
CREATE_FX_SYSTEM_ON_CHAR "teargasAD" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 35 | |
CREATE_FX_SYSTEM_ON_CHAR "water_hydrant" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 36 | |
CREATE_FX_SYSTEM_ON_CHAR "water_ripples" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 37 | |
CREATE_FX_SYSTEM_ON_CHAR "water_speed" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 38 | |
CREATE_FX_SYSTEM_ON_CHAR "cigarette_smoke" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 39 | |
CREATE_FX_SYSTEM_ON_CHAR "Flame" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 40 | |
CREATE_FX_SYSTEM_ON_CHAR "insects" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 41 | |
CREATE_FX_SYSTEM_ON_CHAR "smoke30lit" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 42 | |
CREATE_FX_SYSTEM_ON_CHAR "smoke30m" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 43 | |
CREATE_FX_SYSTEM_ON_CHAR "smoke50lit" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 44 | |
CREATE_FX_SYSTEM_ON_CHAR "vent" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 45 | |
CREATE_FX_SYSTEM_ON_CHAR "vent2" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 46 | |
CREATE_FX_SYSTEM_ON_CHAR "waterfall_end" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 47 | |
CREATE_FX_SYSTEM_ON_CHAR "water_fnt_tme" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 48 | |
CREATE_FX_SYSTEM_ON_CHAR "water_fountain" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 49 | |
CREATE_FX_SYSTEM_ON_CHAR "carwashspray" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 50 | |
CREATE_FX_SYSTEM_ON_CHAR "cement" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 51 | |
CREATE_FX_SYSTEM_ON_CHAR "cloudfast" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 52 | |
CREATE_FX_SYSTEM_ON_CHAR "coke_puff" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 53 | |
CREATE_FX_SYSTEM_ON_CHAR "coke_trail" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 54 | |
CREATE_FX_SYSTEM_ON_CHAR "petrolcan" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 55 | |
CREATE_FX_SYSTEM_ON_CHAR "smoke_flare" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
CASE 56 | |
CREATE_FX_SYSTEM_ON_CHAR "WS_factorysmoke" myth_ped 0.0 0.0 0.0 1 fx[0] | |
BREAK | |
ENDSWITCH | |
ATTACH_FX_SYSTEM_TO_CHAR_BONE fx[0] myth_ped attack_bone[0] | |
PLAY_FX_SYSTEM fx[0] | |
timera = 0 | |
GET_CHAR_HEALTH myth_ped ped_health[0] | |
GET_CHAR_HEALTH myth_ped ped_health[1] | |
WHILE DOES_CHAR_EXIST myth_ped | |
IF NOT attacking_fx = 255 | |
IF GET_CHAR_KILL_TARGET_CHAR myth_ped target_ped | |
IF HAS_CHAR_BEEN_DAMAGED_BY_CHAR target_ped myth_ped | |
var = attacking_fx | |
var2 = 1 | |
GOSUB apply_2nd_fx | |
WAIT 2 | |
CLEAR_CHAR_LAST_DAMAGE_ENTITY target_ped | |
ENDIF | |
ENDIF | |
ENDIF | |
IF NOT attacked_fx = 255 | |
GET_CHAR_HEALTH myth_ped ped_health[0] | |
IF NOT ped_health[0] = ped_health[1] | |
var = attacked_fx | |
var2 = 2 | |
GOSUB apply_2nd_fx | |
ped_health[1] = ped_health[0] | |
ENDIF | |
ENDIF | |
READ_STRUCT_OFFSET p_buffer (94) 1 teleport//teleport trigger | |
IF NOT teleport = 0 | |
BREAK | |
ENDIF | |
WAIT 0 | |
ENDWHILE | |
IF NOT fx[0] = 0 | |
KILL_FX_SYSTEM_NOW fx[0] | |
ENDIF | |
IF NOT fx[1] = 0 | |
KILL_FX_SYSTEM_NOW fx[1] | |
ENDIF | |
IF NOT fx[2] = 0 | |
KILL_FX_SYSTEM_NOW fx[2] | |
ENDIF | |
IF NOT teleport = 0 | |
WHILE NOT teleport = 0 | |
READ_STRUCT_OFFSET p_buffer (94) 1 teleport//teleport trigger | |
WAIT 0 | |
ENDWHILE | |
GOTO special_fx | |
ENDIF | |
TERMINATE_THIS_CUSTOM_SCRIPT | |
CLEO_RETURN 0 | |
apply_2nd_fx: | |
SWITCH var | |
CASE 0 | |
CREATE_FX_SYSTEM_ON_CHAR "prt_wake" myth_ped 0.0 0.0 0.0 1 fx[var2] | |
BREAK | |
CASE 1 | |
CREATE_FX_SYSTEM_ON_CHAR "camflash" myth_ped 0.0 0.0 0.0 1 fx[var2] | |
BREAK | |
CASE 2 | |
CREATE_FX_SYSTEM_ON_CHAR "exhale" myth_ped 0.0 0.0 0.0 1 fx[var2] | |
BREAK | |
CASE 3 | |
CREATE_FX_SYSTEM_ON_CHAR "explosion_fuel_car" myth_ped 0.0 0.0 0.0 1 fx[var2] | |
BREAK | |
CASE 4 | |
CREATE_FX_SYSTEM_ON_CHAR "explosion_large" myth_ped 0.0 0.0 0.0 1 fx[var2] | |
BREAK | |
CASE 5 | |
CREATE_FX_SYSTEM_ON_CHAR "explosion_medium" myth_ped 0.0 0.0 0.0 1 fx[var2] | |
BREAK | |
CASE 6 | |
CREATE_FX_SYSTEM_ON_CHAR "explosion_molotov" myth_ped 0.0 0.0 0.0 1 fx[var2] | |
BREAK | |
CASE 7 | |
CREATE_FX_SYSTEM_ON_CHAR "explosion_small" myth_ped 0.0 0.0 0.0 1 fx[var2] | |
BREAK | |
CASE 8 | |
CREATE_FX_SYSTEM_ON_CHAR "explosion_tiny" myth_ped 0.0 0.0 0.0 1 fx[var2] | |
BREAK | |
CASE 9 | |
CREATE_FX_SYSTEM_ON_CHAR "gunflash" myth_ped 0.0 0.0 0.0 1 fx[var2] | |
BREAK | |
CASE 10 | |
CREATE_FX_SYSTEM_ON_CHAR "gunsmoke" myth_ped 0.0 0.0 0.0 1 fx[var2] | |
BREAK | |
CASE 11 | |
CREATE_FX_SYSTEM_ON_CHAR "tank_fire" myth_ped 0.0 0.0 0.0 1 fx[var2] | |
BREAK | |
CASE 12 | |
CREATE_FX_SYSTEM_ON_CHAR "water_splash" myth_ped 0.0 0.0 0.0 1 fx[var2] | |
BREAK | |
CASE 13 | |
CREATE_FX_SYSTEM_ON_CHAR "water_splash_big" myth_ped 0.0 0.0 0.0 1 fx[var2] | |
BREAK | |
CASE 14 | |
CREATE_FX_SYSTEM_ON_CHAR "water_splsh_sml" myth_ped 0.0 0.0 0.0 1 fx[var2] | |
BREAK | |
CASE 15 | |
CREATE_FX_SYSTEM_ON_CHAR "water_swim" myth_ped 0.0 0.0 0.0 1 fx[var2] | |
BREAK | |
CASE 16 | |
CREATE_FX_SYSTEM_ON_CHAR "tree_hit_fir" myth_ped 0.0 0.0 0.0 1 fx[var2] | |
BREAK | |
CASE 17 | |
CREATE_FX_SYSTEM_ON_CHAR "tree_hit_palm" myth_ped 0.0 0.0 0.0 1 fx[var2] | |
BREAK | |
CASE 18 | |
CREATE_FX_SYSTEM_ON_CHAR "blood_heli" myth_ped 0.0 0.0 0.0 1 fx[var2] | |
BREAK | |
CASE 19 | |
CREATE_FX_SYSTEM_ON_CHAR "explosion_barrel" myth_ped 0.0 0.0 0.0 1 fx[var2] | |
BREAK | |
CASE 20 | |
CREATE_FX_SYSTEM_ON_CHAR "explosion_crate" myth_ped 0.0 0.0 0.0 1 fx[var2] | |
BREAK | |
CASE 21 | |
CREATE_FX_SYSTEM_ON_CHAR "explosion_door" myth_ped 0.0 0.0 0.0 1 fx[var2] | |
BREAK | |
CASE 22 | |
CREATE_FX_SYSTEM_ON_CHAR "puke" myth_ped 0.0 0.0 0.0 1 fx[var2] | |
BREAK | |
CASE 23 | |
CREATE_FX_SYSTEM_ON_CHAR "shootlight" myth_ped 0.0 0.0 0.0 1 fx[var2] | |
BREAK | |
CASE 24 | |
CREATE_FX_SYSTEM_ON_CHAR "wallbust" myth_ped 0.0 0.0 0.0 1 fx[var2] | |
BREAK | |
ENDSWITCH | |
ATTACH_FX_SYSTEM_TO_CHAR_BONE fx[var2] myth_ped attack_bone[var2] | |
PLAY_AND_KILL_FX_SYSTEM fx[var2] | |
//PLAY_FX_SYSTEM fx[var2] | |
RETURN | |
} | |
string_label: | |
DUMP | |
00 00 00 00 00 00 00 00 00 00 | |
00 00 00 00 00 00 00 00 00 00 | |
00 00 00 00 00 00 00 00 00 00 | |
00 00 00//33 | |
ENDDUMP | |
SCRIPT_END |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment