[SA] Weapon Bail 1.2
Enviado: 08 Mar 2021, 18:57
Adiciona a função do GTA:VCS de recuperar suas armas por $2.000 quando morto/preso. Diferente de outros mods, esse funciona como no jogo original, através de um pickup temporário, além de não criar o pickup caso o jogador não perca as armas quando morto e também não criar caso você spawne na casa da Katie. Os textos e modelo foram convertidos do jogo original, e adaptados ao estilo do SA. O pickup é adicionado sem substituir de forma dinâmica, então funciona com todos os hospitais/delegacias e até mesmo adicionados, como no SAxVCxLC Connected.


Código: Selecionar tudo
SCRIPT_START
{
LVAR_INT scplayer hPickup iWeaponType[12] ammo[12] i
LVAR_FLOAT x y f x2 y2
GET_PLAYER_CHAR 0 scplayer
SET_SCRIPT_EVENT_SAVE_CONFIRMATION ON delete_pickup i
WHILE TRUE
WAIT 0
IF HAS_CHAR_BEEN_ARRESTED scplayer
OR IS_CHAR_DEAD scplayer
IF HAS_CHAR_BEEN_ARRESTED scplayer
READ_MEMORY 0x8A5E49 1 FALSE i // check if player can lose weapons when arrested, thanks Junior_Djjr for the memory address
ELSE
READ_MEMORY 0x8A5E48 1 FALSE i // when dead
ENDIF
IF i = TRUE
GET_CHAR_WEAPON_IN_SLOT scplayer 1 iWeaponType[0] ammo[0] i
GET_CHAR_WEAPON_IN_SLOT scplayer 2 iWeaponType[1] ammo[1] i
GET_CHAR_WEAPON_IN_SLOT scplayer 3 iWeaponType[2] ammo[2] i
GET_CHAR_WEAPON_IN_SLOT scplayer 4 iWeaponType[3] ammo[3] i
GET_CHAR_WEAPON_IN_SLOT scplayer 5 iWeaponType[4] ammo[4] i
GET_CHAR_WEAPON_IN_SLOT scplayer 6 iWeaponType[5] ammo[5] i
GET_CHAR_WEAPON_IN_SLOT scplayer 7 iWeaponType[6] ammo[6] i
GET_CHAR_WEAPON_IN_SLOT scplayer 8 iWeaponType[7] ammo[7] i
GET_CHAR_WEAPON_IN_SLOT scplayer 9 iWeaponType[8] ammo[8] i
GET_CHAR_WEAPON_IN_SLOT scplayer 10 iWeaponType[9] ammo[9] i
GET_CHAR_WEAPON_IN_SLOT scplayer 11 iWeaponType[10] ammo[10] i
GET_CHAR_WEAPON_IN_SLOT scplayer 12 iWeaponType[11] ammo[11] i
WAIT 1000
WHILE IS_CHAR_DEAD scplayer
OR HAS_CHAR_BEEN_ARRESTED scplayer
WAIT 0
ENDWHILE
WAIT 500
GOSUB coord_weapon_check
ENDIF
ENDIF
ENDWHILE
coord_weapon_check:
GET_CHAR_COORDINATES scplayer x y f
GET_CHAR_HEADING scplayer f
f += 45.0
GET_COORD_FROM_ANGLED_DISTANCE x y f (3.0) x2 y2
IF LOCATE_CHAR_ANY_MEANS_2D scplayer x y (110.0 110.0) FALSE
AND NOT LOCATE_CHAR_ANY_MEANS_3D scplayer -2570.51 1139.58 55.86 (5.0 5.0 5.0) FALSE //check if you have spawned at katie's house
AND NOT LOCATE_CHAR_ANY_MEANS_3D scplayer -1403.5135 2643.4602 55.4317 (15.0 15.0 10.0) FALSE //check if you have spawned at barbara's house
GOSUB create_pickup
ELSE
RETURN
ENDIF
RETURN
create_pickup:
REQUEST_MODEL 794
WHILE NOT HAS_MODEL_LOADED 794
WAIT 0
ENDWHILE
GET_CHAR_COORDINATES scplayer x y f
IF GET_PICKUP_THIS_COORD x2 y2 f TRUE hPickup
REMOVE_PICKUP hPickup
ENDIF
CREATE_PICKUP 794 PICKUP_ON_STREET x2 y2 f hPickup
WHILE LOCATE_CHAR_ANY_MEANS_2D scplayer x2 y2 (110.0 110.0) FALSE
WAIT 0
IF HAS_PICKUP_BEEN_COLLECTED hPickup
IF IS_SCORE_GREATER 0 1999
SET_PLAYER_CONTROL_PAD 0 OFF
WHILE TRUE
WAIT 0
PRINT_HELP_FOREVER RE_WEP
IF IS_BUTTON_JUST_PRESSED PAD1 DPADLEFT // N
BREAK
ENDIF
IF IS_BUTTON_JUST_PRESSED PAD1 DPADRIGHT // Y
IF IS_SCORE_GREATER 0 1999
i = 2
f = 0.0
REPEAT 10 i
IF iWeaponType[i] > 0
AND ammo[i] > 0
GET_WEAPONINFO iWeaponType[i] 1 (timera)
GET_WEAPONINFO_MODELS timera (timera timerb)
IF timera > 0
REQUEST_MODEL timera
ENDIF
IF timerb > 0
REQUEST_MODEL timerb
ENDIF
LOAD_ALL_MODELS_NOW
GIVE_WEAPON_TO_CHAR scplayer iWeaponType[i] ammo
[i] IF timera > 0
MARK_MODEL_AS_NO_LONGER_NEEDED timera
ENDIF
IF timerb > 0
MARK_MODEL_AS_NO_LONGER_NEEDED timerb
ENDIF
ELSE
f += 1.0 // number of times the slot was empty
ENDIF
ENDREPEAT
IF f = 10.0
PRINT_HELP RE_WEPE
ELSE
CHANGE_PLAYER_MONEY 0 CHANGE_MONEY_REMOVE 2000
ENDIF
BREAK
ELSE
PRINT_HELP RE_WEPN
BREAK
ENDIF
ENDIF
ENDWHILE
BREAK
ELSE
PRINT_HELP RE_WEPN
BREAK
ENDIF
ENDIF
ENDWHILE
IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED RE_WEP
CLEAR_HELP
ENDIF
SET_PLAYER_CONTROL_PAD 0 ON
REMOVE_PICKUP hPickup
MARK_MODEL_AS_NO_LONGER_NEEDED 794
RETURN
delete_pickup:
IF DOES_PICKUP_EXIST hPickup
REMOVE_PICKUP hPickup
ENDIF
RETURN_SCRIPT_EVENT
}
SCRIPT_END[/i][/i][/i][/i][/i]