Skip to content

Instantly share code, notes, and snippets.

@JuniorDjjr
Last active January 5, 2024 18:08
Show Gist options
  • Save JuniorDjjr/4fd11b4318ffe55dadbc73e0b3d0e158 to your computer and use it in GitHub Desktop.
Save JuniorDjjr/4fd11b4318ffe55dadbc73e0b3d0e158 to your computer and use it in GitHub Desktop.
SCRIPT_START
{
LVAR_INT scplayer bUsingCompressor hCompressorObject iLanguage iKey bInfos iModel
LVAR_FLOAT x y z x2 y2 z2
CONST_INT LANG_PT 1
CONST_INT LANG_EN 2
GET_PLAYER_CHAR 0 scplayer
IF READ_INT_FROM_INI_FILE "cleo\compressor.ini" "Settings" "lang" iLanguage
AND READ_INT_FROM_INI_FILE "cleo\compressor.ini" "Settings" "key" iKey
AND READ_INT_FROM_INI_FILE "cleo\compressor.ini" "Settings" "infos" bInfos
AND READ_INT_FROM_INI_FILE "cleo\compressor.ini" "Settings" "model" iModel
ELSE
PRINT_STRING_NOW "~r~Mod Compressor: Fail to load compressor.ini" 7000
TERMINATE_THIS_CUSTOM_SCRIPT
ENDIF
IF NOT IS_MODEL_AVAILABLE iModel
PRINT_FORMATTED_NOW "~r~Mod Compressor: Model ID %i isn't installed -~n~Modelo de ID %i nao esta instalado." 10000 iModel iModel
TERMINATE_THIS_CUSTOM_SCRIPT
ENDIF
GOTO var_types_jump
CREATE_OBJECT 0 0.0 0.0 0.0 hCompressorObject
var_types_jump:
main_loop:
WAIT 0
IF NOT IS_CHAR_SITTING_IN_ANY_CAR scplayer
IF IS_CURRENT_CHAR_WEAPON scplayer WEAPONTYPE_SPRAYCAN
WHILE IS_CURRENT_CHAR_WEAPON scplayer WEAPONTYPE_SPRAYCAN
AND NOT IS_CHAR_SITTING_IN_ANY_CAR scplayer
WAIT 0
GOSUB CheckObjectValid
IF bUsingCompressor = TRUE
SET_PLAYER_FIRE_BUTTON 0 ON
ELSE
SET_PLAYER_FIRE_BUTTON 0 OFF
ENDIF
IF IS_KEY_PRESSED iKey
GOSUB UpdateObject
ENDIF
IF DOES_OBJECT_EXIST hCompressorObject
IF NOT LOCATE_CHAR_ANY_MEANS_OBJECT_3D scplayer hCompressorObject 20.0 20.0 20.0 FALSE
SET_PLAYER_FIRE_BUTTON 0 ON
GOSUB DeleteObject
GOTO main_loop
ENDIF
ENDIF
ENDWHILE
GOSUB DeleteObject
SET_PLAYER_FIRE_BUTTON 0 ON
ENDIF
ENDIF
GOTO main_loop
UpdateObject:
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS scplayer (-0.5 -1.7 -0.8) (x y z)
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS scplayer (0.5 -2.0 -0.5) (x2 y2 z2)
IF IS_AREA_OCCUPIED x2 y2 z2 x y z FALSE TRUE FALSE FALSE FALSE
IF bInfos = ON
IF iLanguage = LANG_PT
PRINT_STRING "~r~Nao ha como colocar o compressor ai, esta muito proximo de um veiculo." 500
ELSE
PRINT_STRING "~r~There is no way to put the compressor there, is very close to a vehicle." 500
ENDIF
ENDIF
ELSE
GOSUB DeleteObject
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS scplayer (0.0 -1.0 -1.0) (x y z)
CREATE_OBJECT iModel (x y z) hCompressorObject
ENDIF
RETURN
CheckObjectValid:
IF DOES_OBJECT_EXIST hCompressorObject
IF LOCATE_CHAR_ANY_MEANS_OBJECT_3D scplayer hCompressorObject 3.5 3.5 3.5 FALSE
bUsingCompressor = TRUE
RETURN
ELSE
IF IS_BUTTON_PRESSED PAD1 CIRCLE
IF bInfos = ON
IF iLanguage = LANG_PT
PRINT_STRING "~r~Voce esta muito longe do compressor." 200
ELSE
PRINT_STRING "~r~You're too far from compressor." 200
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
IF IS_BUTTON_PRESSED PAD1 CIRCLE
IF bInfos = ON
IF iLanguage = LANG_PT
PRINT_STRING "~r~Voce precisa de um compressor." 200
ELSE
PRINT_STRING "~r~You need a compressor." 200
ENDIF
ENDIF
ENDIF
ENDIF
bUsingCompressor = FALSE
RETURN
DeleteObject:
IF DOES_OBJECT_EXIST hCompressorObject
DELETE_OBJECT hCompressorObject
ENDIF
RETURN
}
SCRIPT_END
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment