Last active
January 5, 2024 17:31
-
-
Save JuniorDjjr/b618f48a67d08b2ef8cbd12c7d5042b7 to your computer and use it in GitHub Desktop.
This file contains 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_Djjr - MixMods.com.br | |
// You need: https://forum.mixmods.com.br/f141-gta3script-cleo/t5206-como-criar-scripts-com-cleo | |
SCRIPT_START | |
{ | |
LVAR_INT scplayer i iEntityType iTime hVeh hChar pEntity pPlayer iPlayer pColPoint | |
LVAR_FLOAT x y z destX destY destZ lastLookPlayerX[2] lastLookPlayerY[2] | |
WAIT 1000 | |
GET_LABEL_POINTER Colpoint (pColPoint) | |
iPlayer = 0 | |
GOSUB UpdatePlayer | |
WHILE TRUE | |
WAIT 0 | |
IF FRAME_MOD 9 // don't runs every frame; must be odd number | |
IF NOT IS_ON_SCRIPTED_CUTSCENE | |
AND NOT IS_ON_CUTSCENE | |
GOSUB ProcessForPlayer | |
IF IS_2PLAYER_GAME_GOING_ON | |
// get player 2 | |
iPlayer = 1 | |
GOSUB UpdatePlayer | |
GOSUB ProcessForPlayer | |
// reset to player 1 | |
iPlayer = 0 | |
GOSUB UpdatePlayer | |
ENDIF | |
ENDIF | |
ENDIF | |
ENDWHILE | |
ProcessForPlayer: | |
// Add look at car during car entrance | |
IF IS_CHAR_ENTERING_ANY_CAR scplayer | |
GET_CAR_CHAR_IS_USING scplayer hVeh | |
IF hVeh > 0 | |
TASK_LOOK_AT_VEHICLE scplayer hVeh 2000 | |
WHILE IS_CHAR_ENTERING_ANY_CAR scplayer | |
WAIT 0 | |
IF NOT DOES_CHAR_EXIST scplayer // check if still exists, because it also runs for player 2 | |
BREAK | |
ENDIF | |
ENDWHILE | |
ENDIF | |
ELSE | |
IF NOT IS_CHAR_DOING_ANY_IMPORTANT_TASK scplayer INCLUDE_ANIMS_PRIMARY | |
IF timera > 5000 //don't look too often | |
//I want to avoid overwriting TASK_LOOK_AT_* but GET_SCRIPT_TASK_STATUS isn't working idkw | |
READ_MEMORY 0xB613FC 1 FALSE (i) //CAEPedSpeechAudioEntity::s_bPlayerConversationHappening | |
IF i = FALSE | |
GET_CHAR_COORDINATES scplayer x y z | |
// Avoid looking while player kinda stopped | |
IF NOT LOCATE_CHAR_ANY_MEANS_2D scplayer lastLookPlayerX[iPlayer] lastLookPlayerY[iPlayer] 5.0 5.0 FALSE | |
IF FRAME_MOD 2 //use right/left if the frame is odd/even | |
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS scplayer -0.6 0.6 0.0 (destX destY destZ) | |
//PRINT_STRING_NOW "L" 1 | |
ELSE | |
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS scplayer 0.6 0.6 0.0 (destX destY destZ) | |
//PRINT_STRING_NOW "R" 1 | |
ENDIF | |
// check collision for vehicles and peds | |
IF GET_COLLISION_BETWEEN_POINTS x y z destX destY destZ FALSE TRUE TRUE FALSE FALSE FALSE FALSE FALSE pPlayer (pColPoint x y z pEntity) | |
GENERATE_RANDOM_INT_IN_RANGE 1000 2500 (iTime) | |
GET_ENTITY_TYPE pEntity (iEntityType) | |
IF iEntityType = ENTITY_TYPE_PED | |
GET_PED_REF pEntity (hChar) | |
TASK_LOOK_AT_CHAR scplayer hChar iTime | |
timera = 0 | |
ELSE | |
IF iEntityType = ENTITY_TYPE_VEHICLE | |
GET_VEHICLE_REF pEntity (hVeh) | |
TASK_LOOK_AT_VEHICLE scplayer hVeh iTime | |
timera = 0 | |
ENDIF | |
ENDIF | |
lastLookPlayerX[iPlayer] = x | |
lastLookPlayerY[iPlayer] = y | |
ENDIF | |
ENDIF | |
ENDIF | |
ENDIF | |
ENDIF | |
ENDIF | |
RETURN | |
UpdatePlayer: | |
GET_PLAYER_CHAR iPlayer scplayer | |
GET_PED_POINTER scplayer (pPlayer) | |
RETURN | |
} | |
SCRIPT_END | |
Colpoint: | |
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 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