Skip to content

Instantly share code, notes, and snippets.

@JuniorDjjr
Last active January 5, 2024 17:39
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/7d0a399d859c6ad7fd4a65bf2ffa71c1 to your computer and use it in GitHub Desktop.
Save JuniorDjjr/7d0a399d859c6ad7fd4a65bf2ffa71c1 to your computer and use it in GitHub Desktop.
// You need: https://forum.mixmods.com.br/f141-gta3script-cleo/t5206-como-criar-scripts-com-cleoplus
SCRIPT_START
{
LVAR_INT scplayer hChar i j iMoney hTaskCop hTaskPlayer pChar bFail iWantedLevelBackup bHelpShown
GET_PLAYER_CHAR 0 scplayer
WHILE TRUE
WAIT 0
STORE_WANTED_LEVEL 0 i
IF i = 1
IF IS_AIM_BUTTON_PRESSED PAD1
IF GET_CURRENT_CHAR_WEAPONINFO scplayer i
GET_WEAPONINFO_FIRE_TYPE i (i)
IF i = WEAPONFIRE_MELEE
IF GET_CHAR_PLAYER_IS_TARGETING 0 (hChar)
GET_CHAR_STAT_ID hChar (i)
GET_PED_TYPE hChar (j)
IF i = PEDSTAT_COP
OR j = PEDTYPE_COP
IF GET_CURRENT_CHAR_WEAPONINFO scplayer i
GET_WEAPONINFO_FIRE_TYPE i (i)
IF NOT i = WEAPONFIRE_MELEE
CONTINUE
ENDIF
ENDIF
IF LOCATE_CHAR_DISTANCE_TO_CHAR hChar scplayer 2.0
IF bHelpShown = FALSE
PRINT_HELP PAYCOP1
bHelpShown = TRUE
ENDIF
IF IS_BUTTON_JUST_PRESSED PAD1 DPADUP
STORE_SCORE 0 iMoney
IF iMoney > 1000
STORE_WANTED_LEVEL 0 (iWantedLevelBackup)
CLEAR_WANTED_LEVEL 0 // to avoid IA problems
bFail = FALSE
REQUEST_ANIMATION PAYCOPSM
LOAD_ALL_MODELS_NOW
SHUT_CHAR_UP hChar ON
SHUT_CHAR_UP scplayer ON
SET_PLAYER_CONTROL_PAD_MOVEMENT 0 OFF
SET_PLAYER_CYCLE_WEAPON_BUTTON 0 OFF
OPEN_SEQUENCE_TASK hTaskCop
TASK_TURN_CHAR_TO_FACE_CHAR -1 scplayer
TASK_STAND_STILL -1 3500
CLOSE_SEQUENCE_TASK hTaskCop
PERFORM_SEQUENCE_TASK hChar hTaskCop
CLEAR_SEQUENCE_TASK hTaskCop
OPEN_SEQUENCE_TASK hTaskPlayer
TASK_TURN_CHAR_TO_FACE_CHAR -1 hChar
TASK_STAND_STILL -1 3500
CLOSE_SEQUENCE_TASK hTaskPlayer
PERFORM_SEQUENCE_TASK scplayer hTaskPlayer
CLEAR_SEQUENCE_TASK hTaskPlayer
i = -1
j = -1
timera = 0
WHILE NOT i = 7
OR NOT j = 7
WAIT 0
STORE_SCORE 0 iMoney
IF NOT DOES_CHAR_EXIST hChar
OR NOT IS_PLAYER_PLAYING 0
OR IS_CHAR_DEAD hChar
OR IS_CHAR_DEAD scplayer
OR timera > 3000
OR iMoney < 1000
bFail = TRUE
BREAK
ENDIF
GET_SCRIPT_TASK_STATUS hChar 0x639 (i)
GET_SCRIPT_TASK_STATUS scplayer 0x639 (j)
//GET_SEQUENCE_PROGRESS hChar (i)
//GET_SEQUENCE_PROGRESS scplayer (j)
ENDWHILE
IF DOES_CHAR_EXIST hChar
AND bFail = FALSE
bFail = TRUE
TASK_PLAY_ANIM scplayer "paycopsm_give" "PAYCOPSM" 3.0 FALSE FALSE FALSE FALSE -1
TASK_STAND_STILL hChar 1000
WAIT 1000
IF LOCATE_CHAR_DISTANCE_TO_CHAR hChar scplayer 4.0
IF DOES_CHAR_EXIST hChar
TASK_PLAY_ANIM hChar "paycopsm_receive" "PAYCOPSM" 3.0 FALSE FALSE FALSE FALSE -1
WAIT 2000
IF DOES_CHAR_EXIST hChar
AND IS_CHAR_PLAYING_ANIM scplayer "paycopsm_give"
IF IS_CHAR_PLAYING_ANIM hChar "paycopsm_receive"
CHANGE_PLAYER_MONEY 0 CHANGE_MONEY_REMOVE 1000
GET_PED_POINTER hChar pChar
READ_STRUCT_OFFSET pChar 0x756 2 (i) //money count
i += iMoney
SET_CHAR_MONEY hChar i
SHUT_CHAR_UP hChar OFF
//TASK_SAY hChar 168
CLEAR_WANTED_LEVEL 0
WAIT 1400
bFail = FALSE
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF bFail = TRUE
ALTER_WANTED_LEVEL_NO_DROP 0 iWantedLevelBackup
ENDIF
IF DOES_CHAR_EXIST hChar
SHUT_CHAR_UP hChar OFF
CLEAR_CHAR_TASKS_IMMEDIATELY hChar
ENDIF
SHUT_CHAR_UP scplayer OFF
SET_PLAYER_CONTROL_PAD_MOVEMENT 0 ON
SET_PLAYER_CYCLE_WEAPON_BUTTON 0 ON
REMOVE_ANIMATION PAYCOPSM
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDWHILE
}
SCRIPT_END
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment