Skip to content

Instantly share code, notes, and snippets.

@JuniorDjjr
Created May 6, 2019 20:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save JuniorDjjr/5ce3e71582c3d0116c7c9ebee61fb0ff to your computer and use it in GitHub Desktop.
Save JuniorDjjr/5ce3e71582c3d0116c7c9ebee61fb0ff to your computer and use it in GitHub Desktop.
// You need: https://forum.mixmods.com.br/f16-utilidades/t179-gta3script-while-true-return_true-e-return_false
SCRIPT_START
{
LVAR_INT scplayer group char members i j p iHealth medic task
LVAR_FLOAT animTime
GET_PLAYER_CHAR 0 scplayer
WHILE TRUE
WAIT 0
GET_PLAYER_GROUP 0 (group)
IF DOES_GROUP_EXIST (group)
GET_GROUP_SIZE group i members
WHILE members > 0
REQUEST_ANIMATION CRACK
REQUEST_ANIMATION BOMBER
WHILE NOT HAS_ANIMATION_LOADED CRACK
OR NOT HAS_ANIMATION_LOADED BOMBER
WAIT 0
ENDWHILE
i = 0
WHILE i < members
GET_GROUP_MEMBER group i (char)
IF char > 0
GET_CHAR_HEALTH char (iHealth)
IF iHealth < 30
AND iHealth > 0
IF NOT IS_CHAR_PLAYING_ANIM char CRCKIDLE1
TASK_PLAY_ANIM_NON_INTERRUPTABLE char CRCKIDLE1 CRACK 4.0 1 0 0 0 -1
ELSE
medic = -1
GET_PED_TYPE char (j)
IF j = 8 //Families
IF IS_BUTTON_PRESSED PAD2 DPADUP
AND IS_PLAYER_CONTROL_ON 1
IF IS_2PLAYER_GAME_GOING_ON
GET_PLAYER_CHAR 1 medic
ENDIF
ENDIF
IF IS_BUTTON_PRESSED PAD1 DPADUP
AND IS_PLAYER_CONTROL_ON 0
medic = scplayer
ENDIF
IF medic > -1
IF LOCATE_CHAR_ANY_MEANS_CHAR_3D medic char 2.0 2.0 1.0 FALSE
OPEN_SEQUENCE_TASK task
TASK_TURN_CHAR_TO_FACE_CHAR -1 char
TASK_PLAY_ANIM -1 BOM_Plant BOMBER 4.0 0 0 0 0 -1
CLOSE_SEQUENCE_TASK task
PERFORM_SEQUENCE_TASK medic task
TASK_LOOK_AT_CHAR char medic 2000
timera = 0
WHILE TRUE
GET_CHAR_ANIM_CURRENT_TIME medic BOM_Plant (animTime)
IF animTime > 0.6
CLEAR_SEQUENCE_TASK task
SET_CHAR_HEALTH char 60
TASK_PLAY_ANIM_NON_INTERRUPTABLE char GETUP PED 4.0 0 0 0 0 -1
BREAK
ENDIF
WAIT 0
IF timera > 3000
OR NOT DOES_CHAR_EXIST char
CLEAR_SEQUENCE_TASK task
BREAK
ENDIF
ENDWHILE
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
i++
ENDWHILE
WAIT 0
GOSUB FixAllCharDead
IF DOES_GROUP_EXIST (group)
GET_GROUP_SIZE group i (members)
ELSE
BREAK
ENDIF
ENDWHILE
GOSUB FixAllCharDead
REMOVE_ANIMATION CRACK
REMOVE_ANIMATION BOMBER
ENDIF
ENDWHILE
FixAllCharDead:
READ_MEMORY 0xB74490 4 0 (p)
p += 0x04
READ_MEMORY p 4 0 (p)
j = 0
WHILE j <= 35584
READ_MEMORY p 1 0 (char)
p++
IF char >= 0x00
AND char < 0x80
char += j
GET_CHAR_HEALTH char (iHealth)
IF iHealth < 1
IF IS_CHAR_PLAYING_ANIM char CRCKIDLE1
//CLEAR_CHAR_TASKS_IMMEDIATELY char
TASK_DIE_NAMED_ANIM char CRCKDETH1 CRACK 4.0 -1
//TASK_PLAY_ANIM_NON_INTERRUPTABLE char CRCKDETH1 CRACK 4.0 0 0 0 1 -1
ENDIF
ENDIF
ENDIF
j += 0x100
ENDWHILE
RETURN
}
SCRIPT_END
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment