Created
February 12, 2022 23:38
-
-
Save JuniorDjjr/86e25524bf0698f4830d696182575c03 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_Djjr - MixMods.com.br | |
// You need: https://forum.mixmods.com.br/f141-gta3script-cleo/t5206-como-criar-scripts-com-cleo | |
// For Inventory System | |
SCRIPT_START | |
{ | |
LVAR_INT scplayer i pItemName iExternalAction iPrice iGiveItemCounter iPosIndex | |
LVAR_FLOAT x y z screenX screenY sizeX sizeY charX charY charZ f shopX shopY | |
//----------------- | |
// External actions | |
CONST_INT EXTERNAL_ACTION_NONE 0 | |
CONST_INT EXTERNAL_ACTION_CREATE_ITEM_OBJECT 1 | |
CONST_INT EXTERNAL_ACTION_GIVE_ITEM 2 | |
//----------------- | |
CONST_FLOAT MIN_DISTANCE_TO_SHOW 7.0 | |
CONST_FLOAT MIN_DISTANCE_TO_PICK 1.0 | |
CONST_FLOAT SHOP_ITEM_LETTER_SIZE_MULT 0.3 | |
WAIT 0 | |
WAIT 0 | |
WAIT 0 // to give time for items to be read on script root | |
GET_PLAYER_CHAR 0 scplayer | |
//SET_CHAR_COORDINATES scplayer 2087.1177 2074.3567 10.9706 //tests | |
WHILE TRUE | |
WAIT 0 | |
GET_AREA_VISIBLE (i) | |
IF i > 0 | |
shopX = -104.7788 | |
shopY = -22.6772 | |
IF LOCATE_CHAR_ANY_MEANS_3D scplayer shopX shopY 1000.0 40.0 40.0 30.0 FALSE | |
GOSUB ProcessShop | |
ENDIF | |
ENDIF | |
ENDWHILE | |
ProcessShop: | |
WHILE TRUE | |
WAIT 0 | |
GET_CHAR_COORDINATES scplayer (charX charY charZ) | |
GET_AREA_VISIBLE (i) | |
IF LOCATE_CHAR_ANY_MEANS_3D scplayer shopX shopY 1000.0 50.0 50.0 20.0 FALSE | |
AND i > 0 | |
iPosIndex = 0 | |
WHILE iPosIndex < 2 | |
GOSUB GetPos | |
IF LOCATE_CHAR_DISTANCE_TO_COORDINATES scplayer x y z MIN_DISTANCE_TO_SHOW | |
CONVERT_3D_TO_SCREEN_2D x y z TRUE FALSE (screenX screenY sizeX sizeY) | |
sizeX *= SHOP_ITEM_LETTER_SIZE_MULT | |
sizeY *= SHOP_ITEM_LETTER_SIZE_MULT | |
GET_LABEL_POINTER Buffer (timera) | |
GET_TEXT_LABEL_STRING IScondm (timera) | |
DRAW_STRING_EXT $timera DRAW_EVENT_BEFORE_DRAWING screenX screenY sizeX sizeY TRUE FONT_SUBTITLES TRUE ALIGN_CENTER 640.0 FALSE (255 255 255 255) 1 0 (0 0 0 255) FALSE (0 0 0 0) | |
f = z + 0.1 | |
CONVERT_3D_TO_SCREEN_2D x y f TRUE FALSE (screenX screenY sizeX sizeY) | |
sizeX *= SHOP_ITEM_LETTER_SIZE_MULT | |
sizeY *= SHOP_ITEM_LETTER_SIZE_MULT | |
DRAW_STRING_EXT "$10" DRAW_EVENT_BEFORE_DRAWING screenX screenY sizeX sizeY TRUE FONT_SUBTITLES TRUE ALIGN_CENTER 640.0 FALSE (100 255 0 255) 1 0 (0 0 0 255) FALSE (0 0 0 0) | |
IF IS_LINE_OF_SIGHT_CLEAR x y z charX charY charZ 1 0 0 0 0 | |
AND LOCATE_CHAR_DISTANCE_TO_COORDINATES scplayer x y z MIN_DISTANCE_TO_PICK | |
f = z + 0.2 | |
CONVERT_3D_TO_SCREEN_2D x y f TRUE FALSE (screenX screenY sizeX sizeY) | |
sizeX *= SHOP_ITEM_LETTER_SIZE_MULT | |
sizeY *= SHOP_ITEM_LETTER_SIZE_MULT | |
sizeX *= 0.8 | |
sizeY *= 1.5 | |
GET_FIXED_XY_ASPECT_RATIO sizeX sizeY (sizeX sizeY) | |
USE_TEXT_COMMANDS 1 | |
SET_TEXT_FONT FONT_SUBTITLES | |
SET_TEXT_EDGE 1 0 0 0 255 | |
SET_TEXT_CENTRE ON | |
SET_TEXT_SCALE sizeX sizeY | |
//ISSHP01 ~s~Press ~y~~k~~CONVERSATION_YES~~s~+ / ~y~~k~~CONVERSATION_NO~~s~- | |
//ISSHP01 ~s~Press ~y~~k~~VEHICLE_ENTER_EXIT~ | |
DISPLAY_TEXT screenX screenY ISBCND1 | |
USE_TEXT_COMMANDS 0 | |
IF IS_BUTTON_JUST_PRESSED PAD1 TRIANGLE | |
IF IS_SCORE_GREATER 0 10 | |
iPrice = 10 | |
GET_LABEL_POINTER BufferItemGive (pItemName) | |
STRING_FORMAT pItemName "IScondm" | |
iExternalAction = EXTERNAL_ACTION_GIVE_ITEM //char; item name pointer or ID | |
iGiveItemCounter = 0 | |
WHILE iGiveItemCounter < 3 //give 3 count (not built in inventory system yet, so just loop it) | |
IF STREAM_CUSTOM_SCRIPT "Inventory System (Junior_Djjr).cs" iExternalAction scplayer pItemName | |
IF iGiveItemCounter = 0 // count once | |
REPORT_MISSION_AUDIO_EVENT_AT_POSITION 0.0 0.0 0.0 SOUND_SHOP_BUY | |
CHANGE_PLAYER_MONEY 0 CHANGE_MONEY_REMOVE iPrice //NOTE: this will run even if the item isn't installed | |
f =# iPrice | |
INCREMENT_FLOAT_STAT 62 f //STAT_TOTAL_SHOPPING_BUDGET | |
ENDIF | |
ELSE | |
PRINT_STRING_NOW "~r~Error: Can't find 'Inventory System (Junior_Djjr).cs'" 5000 | |
BREAK | |
ENDIF | |
++iGiveItemCounter | |
ENDWHILE | |
ELSE | |
REPORT_MISSION_AUDIO_EVENT_AT_POSITION 0.0 0.0 0.0 SOUND_SHOP_BUY_DENIED | |
PRINT_NOW SHOPNO 3000 1 // ~s~You don't have enough money to buy this item. | |
ENDIF | |
ENDIF | |
ENDIF | |
ENDIF | |
++iPosIndex | |
ENDWHILE | |
ELSE | |
BREAK | |
ENDIF | |
ENDWHILE | |
RETURN | |
GetPos: | |
SWITCH iPosIndex | |
CASE 0 | |
x = -104.7788 | |
y = -22.6772 | |
z = 1000.7187 | |
BREAK | |
CASE 1 | |
x = -108.2925 | |
y = -10.6166 | |
z = 1000.7187 | |
BREAK | |
ENDSWITCH | |
RETURN | |
} | |
SCRIPT_END | |
Buffer: | |
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 //64 | |
ENDDUMP | |
BufferItemGive: /// this must keep for at least 1 frame | |
DUMP | |
00 00 00 00 00 00 00 00 //8 | |
ENDDUMP |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment