Skip to content

Instantly share code, notes, and snippets.

@UmGeek
Last active July 2, 2018 02:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save UmGeek/ed3c06e8b7f650614a38a96a3a76d258 to your computer and use it in GitHub Desktop.
Save UmGeek/ed3c06e8b7f650614a38a96a3a76d258 to your computer and use it in GitHub Desktop.
GTA SA, mod cleo usar escadas do aeroporto San Fierro. blog: https://gta-geek.blogspot.com/2018/06/gta-lua-escadas-do-aeroporto-de-san.html
SCRIPT_START
{
NOP
WAIT 100
LVAR_FLOAT upX upY upZ upA dwX dwY dwZ dwA posX posY posZ fixZ anmpos anm_speed
LVAR_INT counter pcoords scan scplayer anm_pause timer1 timer2 disable
CONST_INT LADDERS 15
CONST_INT BUFF_SIZE 56
GOSUB LOAD_SETTINGS ()
CLEO_CALL LOAD_COORDINATES 0 ()
GET_PLAYER_CHAR 0 scplayer
MAIN_LOOP:
IF IS_PLAYER_CONTROL_ON 0
IF GOSUB CHECK_COND
GET_LABEL_POINTER buffer_coordinates pcoords
REPEAT LADDERS counter
SCAN_STRING $pcoords "%f,%f,%f,%f,%f,%f,%f,%f" (scan) upX upY upZ upA dwX dwY dwZ dwA
IF (scan = 8)
IF LOCATE_CHAR_ANY_MEANS_2D scplayer upX upY 7.0 7.0 FALSE
WHILE LOCATE_CHAR_ANY_MEANS_2D scplayer upX upY 7.0 7.0 FALSE
WAIT 2
//PRINT_FORMATTED_NOW "%i" 4 counter
IF GOSUB CHECK_COND
GOSUB GOING_DOWN ()
GOSUB GOING_UP ()
ENDIF
ENDWHILE
ENDIF
ENDIF
pcoords += BUFF_SIZE
ENDREPEAT
ENDIF
IF IS_KEY_PRESSED VK_KEY_L
AND IS_KEY_PRESSED VK_KEY_R
AND IS_KEY_PRESSED VK_KEY_0
GOSUB LOAD_SETTINGS ()
CLEO_CALL LOAD_COORDINATES 0 ()
PRINT_HELP_STRING "Configs recarregadas!"
WHILE IS_KEY_PRESSED VK_KEY_L
WAIT 4
ENDWHILE
ENDIF
ENDIF
WAIT 40
GOTO MAIN_LOOP
CHECK_COND:
IF NOT IS_CHAR_IN_ANY_CAR scplayer
AND IS_CURRENT_CHAR_WEAPON scplayer 0
AND NOT IS_PLAYER_USING_JETPACK 0
AND NOT IS_CHAR_ATTACHED_TO_ANY_CAR scplayer
AND NOT IS_CHAR_DEAD scplayer
IS_PC_VERSION
RETURN
ENDIF
IS_AUSTRALIAN_GAME
RETURN
LOAD_SETTINGS:
IF NOT READ_INT_FROM_INI_FILE "cleo\ladders.ini" "settings" "disable" disable
WRITE_INT_TO_INI_FILE 0 "cleo\ladders.ini" "settings" "disable"
ELSE
IF (disable = 1)
TERMINATE_THIS_CUSTOM_SCRIPT
ENDIF
ENDIF
IF NOT READ_INT_FROM_INI_FILE "cleo\ladders.ini" "settings" "pause" anm_pause
anm_pause = 60
WRITE_INT_TO_INI_FILE anm_pause "cleo\ladders.ini" "settings" "pause"
ENDIF
IF NOT READ_FLOAT_FROM_INI_FILE "cleo\ladders.ini" "settings" "speed" anm_speed
anm_speed = 0.15
WRITE_FLOAT_TO_INI_FILE anm_speed "cleo\ladders.ini" "settings" "speed"
ENDIF
RETURN
GOING_DOWN:
IF LOCATE_CHAR_ANY_MEANS_3D scplayer upX upY upZ 0.75 0.75 0.75 FALSE
IF IS_BUTTON_PRESSED 0 11
SET_CHAR_COLLISION scplayer FALSE
GET_CHAR_COORDINATES scplayer posX posY posZ
posZ -= 1.25
WHILE (posZ > dwZ)
CLEO_CALL SET_POS_SIMPLE 0 scplayer dwX dwY posZ
GET_CHAR_COORDINATES scplayer posX posY posZ
GOSUB PLAY_LADDER_ANIMATION
posZ -= anm_speed
SET_CHAR_HEADING scplayer dwA
CLEO_CALL WAIT_FIX 0 anm_pause
IF IS_BUTTON_PRESSED 0 10
BREAK
ENDIF
ENDWHILE
SET_CHAR_COLLISION scplayer TRUE
CLEO_CALL SET_POS_SIMPLE 0 scplayer dwX dwY dwZ
SET_CHAR_HEADING scplayer upA
CLEAR_CHAR_TASKS_IMMEDIATELY scplayer
GOSUB SET_CAM
WHILE IS_BUTTON_PRESSED 0 11
WAIT 0
ENDWHILE
ENDIF
ENDIF
DRAW_SPHERE upX upY upZ 0.75
RETURN
GOING_UP:
IF LOCATE_CHAR_ANY_MEANS_3D scplayer dwX dwY dwZ 0.75 0.75 0.75 FALSE
IF IS_BUTTON_PRESSED 0 11
SET_CHAR_COLLISION scplayer FALSE
GET_CHAR_COORDINATES scplayer posX posY posZ
fixZ = posZ
WHILE (fixZ < upZ)
GET_CHAR_COORDINATES scplayer posX posY posZ
GOSUB PLAY_LADDER_ANIMATION
posZ += anm_speed
fixZ = posZ + 1.25
SET_CHAR_HEADING scplayer dwA
CLEO_CALL SET_POS_SIMPLE 0 scplayer dwX dwY posZ
CLEO_CALL WAIT_FIX 0 anm_pause
IF IS_BUTTON_PRESSED 0 10
BREAK
ENDIF
ENDWHILE
SET_CHAR_COLLISION scplayer TRUE
CLEO_CALL SET_POS_SIMPLE 0 scplayer upX upY upZ
SET_CHAR_HEADING scplayer dwA
CLEAR_CHAR_TASKS_IMMEDIATELY scplayer
GOSUB SET_CAM
WHILE IS_BUTTON_PRESSED 0 11
WAIT 0
ENDWHILE
ENDIF
ENDIF
DRAW_SPHERE dwX dwY dwZ 0.75
RETURN
PLAY_LADDER_ANIMATION:
IF NOT HAS_ANIMATION_LOADED LADDER
REQUEST_ANIMATION LADDER
WHILE NOT HAS_ANIMATION_LOADED LADDER
WAIT 0
ENDWHILE
ENDIF
IF NOT IS_CHAR_PLAYING_ANIM scplayer, "ladder_anim_a"
TASK_PLAY_ANIM scplayer "ladder_anim_a", "LADDER", 4.0, FALSE, FALSE, FALSE, FALSE, -1
WHILE NOT IS_CHAR_PLAYING_ANIM scplayer "ladder_anim_a"
WAIT 0
ENDWHILE
ELSE
GET_CHAR_ANIM_CURRENT_TIME scplayer "ladder_anim_a" anmpos
IF (anmpos >= 0.50)
SET_CHAR_ANIM_CURRENT_TIME scplayer "ladder_anim_a" 0.1
ENDIF
IF NOT IS_CURRENT_CHAR_WEAPON scplayer 0
SET_CURRENT_CHAR_WEAPON scplayer 0
ENDIF
ENDIF
RETURN
SET_CAM:
SET_CAMERA_BEHIND_PLAYER
WAIT 60
RESTORE_CAMERA
RETURN
}
{
LVAR_TEXT_LABEL16 string
LVAR_INT pcoords counter
LOAD_COORDINATES:
GET_LABEL_POINTER buffer_coordinates pcoords
REPEAT LADDERS counter
STRING_FORMAT string "ladder_%i" counter
IF READ_STRING_FROM_INI_FILE "cleo\ladders.ini" "coordinates" $string pcoords
pcoords += BUFF_SIZE
ENDIF
ENDREPEAT
CLEO_RETURN 0
}
{
LVAR_INT a // in
LVAR_INT b
WAIT_FIX:
GET_GAME_TIMER b
a += b
WHILE (b <= a)
GET_GAME_TIMER b
WAIT 0
ENDWHILE
CLEO_RETURN 0
}
{
LVAR_INT hPed // in
LVAR_FLOAT x,y,z // in
LVAR_INT pcoords
SET_POS_SIMPLE:
GET_PED_POINTER hPed pcoords
pcoords += 0x14
READ_MEMORY pcoords 4 0 pcoords
pcoords += 0x30
WRITE_MEMORY pcoords 4 x FALSE
pcoords += 0x4
WRITE_MEMORY pcoords 4 y FALSE
pcoords += 0x4
WRITE_MEMORY pcoords 4 z FALSE
CLEO_RETURN 0
}
SCRIPT_END
buffer_coordinates:
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 //56
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 //56
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 //56
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 //56
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 //56
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 //56
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 //56
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 //56
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 //56
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 //56
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 //56
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 //56
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 //56
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 //56
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 //56
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 //56
ENDDUMP
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment