Created
March 30, 2022 09:17
-
-
Save JuniorDjjr/915be607c534b9821d38c51eb0faaf3a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// by Junior_Djr - MixMods.com.br | |
// You need: https://forum.mixmods.com.br/f141-gta3script-cleo/t5206-como-criar-scripts-com-cleoplus | |
SCRIPT_START | |
{ | |
LVAR_INT i j k hObject hChar pEntity iWeaponType pColPoint pProjectileInfoArray pProjectileInfoObjects iProjectileInfoTotal pObject pProjectileInfo lDeleteObjects bExplodedThisFrame | |
LVAR_FLOAT x y z | |
WAIT 700 | |
READ_MEMORY 0x737B49 4 TRUE (pProjectileInfoObjects) | |
READ_MEMORY 0x737B42 4 TRUE (iProjectileInfoTotal) | |
READ_MEMORY 0x737B50 4 TRUE (pProjectileInfoArray) | |
pProjectileInfoArray -= 0x4 | |
CREATE_LIST DATATYPE_INT (lDeleteObjects) | |
GET_LABEL_POINTER TempColPoint (pColPoint) | |
SET_SCRIPT_EVENT_BULLET_IMPACT ON OnBulletImpact hChar pEntity iWeaponType pColPoint | |
WHILE TRUE | |
WAIT 0 | |
IF bExplodedThisFrame = TRUE | |
GET_LIST_SIZE lDeleteObjects (j) | |
i = 0 | |
WHILE i < j | |
GET_LIST_VALUE_BY_INDEX lDeleteObjects i (hObject) | |
IF DOES_OBJECT_EXIST hObject | |
GET_OBJECT_POINTER hObject (pObject) | |
//char __cdecl CProjectileInfo::RemoveIfThisIsAProjectile(CObject *object) | |
CALL_FUNCTION_RETURN 0x739A40 1 1 (pObject)(k) | |
ENDIF | |
++i | |
ENDWHILE | |
RESET_LIST lDeleteObjects | |
bExplodedThisFrame = FALSE | |
ENDIF | |
ENDWHILE | |
OnBulletImpact: | |
GET_COLPOINT_COORDINATES pColPoint x y z | |
i = 0 | |
WHILE i < iProjectileInfoTotal | |
READ_STRUCT_PARAM pProjectileInfoObjects i pObject | |
IF pObject > 0x0 | |
GET_OBJECT_REF pObject hObject | |
IF DOES_OBJECT_HAVE_THIS_MODEL hObject 363 | |
IF LOCATE_OBJECT_DISTANCE_TO_COORDINATES hObject x y z 0.5 | |
CLEO_CALL ExplodeThisProjectile 0 (hObject lDeleteObjects) | |
bExplodedThisFrame = TRUE | |
ENDIF | |
ENDIF | |
ENDIF | |
++i | |
ENDWHILE | |
RETURN_SCRIPT_EVENT | |
} | |
SCRIPT_END | |
{ | |
LVAR_INT hObject lDeleteObjects //In | |
LVAR_INT i j hObjectInList | |
LVAR_FLOAT x y z | |
ExplodeThisProjectile: | |
// Ignored if already in list | |
GET_LIST_SIZE lDeleteObjects (j) | |
i = 0 | |
WHILE i < j | |
GET_LIST_VALUE_BY_INDEX lDeleteObjects i (hObjectInList) | |
IF hObjectInList = hObject | |
CLEO_RETURN 0 () | |
ENDIF | |
++i | |
ENDWHILE | |
LIST_ADD lDeleteObjects hObject | |
GET_OBJECT_COORDINATES hObject x y z | |
ADD_EXPLOSION x y z EXPLOSION_GRENADE | |
i = 0 | |
WHILE GET_ANY_OBJECT_NO_SAVE_RECURSIVE i (i hObject) | |
IF DOES_OBJECT_HAVE_THIS_MODEL hObject 363 | |
IF LOCATE_OBJECT_DISTANCE_TO_COORDINATES hObject x y z 5.0 | |
CLEO_CALL ExplodeThisProjectile 0 (hObject lDeleteObjects) | |
ENDIF | |
ENDIF | |
ENDWHILE | |
CLEO_RETURN 0 () | |
} | |
TempColPoint: | |
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 | |
ENDDUMP |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment