Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Inventoriaus kūrimo include
- Autorius "Bebras" 2014 ©
- v0.2
- */
- /*
- native AddItem(itemname[]); Ši funkcija pridėta daiktą, nepanaudoję jos negalėsite naudotis tuo daiktu..
- native GivePlayerItem(playerid,item[],amount); Ši funkcija duoda žaidėjui tam tikrą daiktų skaičių(galima naudoti ir daiktų atėmimui).
- native ShowPlayerInventory(playerid); Ši funkcija parodys žaidėjui GUI su visais jo daiktais ir jų kiekiu(taipat paspaudus įvyks nurodytas veiksmas).
- native ResetPlayerItem(playerid,itemname[]); Ši funkcija atiims iš žaidėjo visus nurodytus daiktus.
- native ResetPlayerItems(playerid); Ši funkcija attims visus žaidėjo daiktus.
- native GetPlayerItemAmount(playerid,itemname[]); Ši funkcija gražins nurodyto daikto skaičių.
- */
- #define Bebras AUTORIUS
- #if defined INV_SAVE_Y_INI
- #if !defined _inc_y_ini
- #include <YSI\y_ini>
- #endif
- #if !defined INV_LOAD_ONCONNECT && !defined INV_LOAD_ONSPAWN
- #define INV_LOAD_ONCONNECT
- #endif
- #endif
- #if !defined isnull
- #define isnull(%1) \
- ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
- #endif
- #define MAX_ITEMS 15
- #define MAX_ITEM_NAME 30
- #define DIALOG_INVENTORY 457
- #define Item:%0(%1) forward item_%0(%1); public item_%0(%1)
- #if !defined ShowEmptyInventory
- #define ShowEmptyInventory(%0) \
- ShowPlayerDialog(%0, 32760, DIALOG_STYLE_MSGBOX,"Inventorius","{FF0000}Jūs neturite daiktų!","Gerai","")
- #endif
- static stock UsableItems[MAX_ITEMS][MAX_ITEM_NAME];
- stock AddItem(itemname[])
- {
- for(new i; i < MAX_ITEMS; i++)
- {
- if(!isnull(UsableItems[i]) && !strcmp(UsableItems[i],itemname)) return 0;
- if(isnull(UsableItems[i]))
- {
- strins(UsableItems[i],itemname,0,MAX_ITEM_NAME);
- return 1;
- }
- }
- return 0;
- }
- stock GivePlayerItem(playerid,item[],amount)
- {
- if(GetPVarInt(playerid,item) != 0) SetPVarInt(playerid,item,GetPVarInt(playerid,item)+amount);
- else SetPVarInt(playerid,item,amount);
- return GetPVarInt(playerid,item);
- }
- stock GetPlayerItemAmount(playerid,itemname[])
- return GetPVarInt(playerid,itemname[]);
- stock ShowPlayerInventory(playerid)
- {
- new bigstring[MAX_ITEMS*MAX_ITEM_NAME],str[MAX_ITEM_NAME+5];
- for(new i; i < MAX_ITEMS; i++)
- {
- if(GetPVarInt(playerid,UsableItems[i]) > 0)
- {
- format(str,sizeof(str),"%s %d\n",UsableItems[i],GetPVarInt(playerid,UsableItems[i]));
- strcat(bigstring,str);
- }
- }
- if(isnull(bigstring))
- {
- ShowEmptyInventory(playerid);
- return 0;
- }
- ShowPlayerDialog(playerid,DIALOG_INVENTORY,DIALOG_STYLE_LIST,"Inventorius",bigstring,"Pasirinkti","Išeiti");
- return 1;
- }
- stock ResetPlayerItem(playerid,itemname[])
- return DeletePVar(playerid,itemname);
- stock ResetPlayerItems(playerid)
- {
- for(new i; i < MAX_ITEMS; i++)
- {
- if(isnull(UsableItems[i])) break;
- DeletePVar(playerid,UsableItems[i]);
- }
- return 1;
- }
- public OnDialogResponse(playerid,dialogid,response,listitem,inputtext[])
- {
- if(dialogid == DIALOG_INVENTORY && response)
- {
- if(isnull(inputtext)) return 1;
- new func[MAX_ITEM_NAME];
- strmid(func,inputtext,0,strfind(inputtext," "));
- strins(func,"item_",0);
- if(funcidx(func) == -1) return printf("Daikto \"%s\" funkcija nesukurta",func);
- CallLocalFunction(func,"i",playerid);
- return 1;
- }
- #if defined BInv_OnDialogResponse
- BInv_OnDialogResponse(playerid,dialogid,response,listitem,inputtext);
- #endif
- return 0;
- }
- #if defined _ALS_OnDialogResponse
- #undef OnDialogResponse
- #else
- #define _ALS_OnDialogResponse
- #endif
- #define OnDialogResponse BInv_OnDialogResponse
- #if defined BInv_OnDialogResponse
- forward BInv_OnDialogResponse(playerid,dialogid,response,listitem,inputtext[]);
- #endif
- #if defined INV_SAVE_Y_INI
- forward LoadPlayerItems_Items(playerid,name[],value[]);
- public LoadPlayerItems_Items(playerid,name[],value[])
- {
- new tmp;
- for(new i; i < sizeof(UsableItems); i++)
- {
- if(isnull(UsableItems[i])) continue;
- if(!strcmp(name,UsableItems[i]))
- GivePlayerItem(playerid,name,strval(value));
- }
- return 1;
- }
- #endif
- public OnPlayerConnect(playerid)
- {
- #if defined INV_SAVE_Y_INI && defined INV_LOAD_ONCONNECT
- new pv[MAX_PLAYER_NAME],path_to_inv[32];
- GetPlayerName(playerid, pv,sizeof(pv));
- format(path_to_inv,sizeof(path_to_inv),"Inventory_%s.ini",pv);
- if(fexist(path_to_inv))
- INI_ParseFile(path_to_inv,"LoadPlayerItems_%s",.bExtra=true,.extra=playerid);
- #endif
- #if defined BInv_OnPlayerConnect
- BInv_OnPlayerConnect(playerid);
- #endif
- return 1;
- }
- #if defined _ALS_OnPlayerConnect
- #undef OnPlayerConnect
- #else
- #define _ALS_OnPlayerConnect
- #endif
- #define OnPlayerConnect BInv_OnPlayerConnect
- #if defined BInv_OnPlayerConnect
- forward BInv_OnPlayerConnect(playerid);
- #endif
- public OnPlayerSpawn(playerid)
- {
- #if defined INV_SAVE_Y_INI && defined INV_LOAD_ONSPAWN
- new pv[MAX_PLAYER_NAME],path_to_inv[32];
- GetPlayerName(playerid, pv,sizeof(pv));
- format(path_to_inv,sizeof(path_to_inv),"Inventory_%s.ini",pv);
- if(fexist(path_to_inv))
- INI_ParseFile(path_to_inv,"LoadPlayerItems_%s",.bExtra=true,.extra=playerid);
- #endif
- #if defined BInv_OnPlayerSpawn
- BInv_OnPlayerSpawn(playerid);
- #endif
- return 1;
- }
- #if defined _ALS_OnPlayerSpawn
- #undef OnPlayerSpawn
- #else
- #define _ALS_OnPlayerSpawn
- #endif
- #if !defined Bebras
- #error Include autorius - Bebras. Nuo tiesos nepabegsi, turek pagarbos.
- #endif
- #define OnPlayerSpawn BInv_OnPlayerSpawn
- #if defined BInv_OnPlayerSpawn
- forward BInv_OnPlayerSpawn(playerid);
- #endif
- public OnPlayerDisconnect(playerid, reason)
- {
- #if defined INV_SAVE_Y_INI
- new pv[MAX_PLAYER_NAME],path_to_inv[32];
- GetPlayerName(playerid, pv,sizeof(pv));
- format(path_to_inv,sizeof(path_to_inv),"Inventory_%s.ini",pv);
- new INI:inv_file = INI_Open(path_to_inv);
- INI_SetTag(inv_file,"Items");
- for(new i; i < sizeof(UsableItems); i++)
- {
- if(isnull(UsableItems[i])) continue;
- INI_WriteInt(inv_file,UsableItems[i],GetPVarInt(playerid, UsableItems[i]));
- }
- INI_Close(inv_file);
- #endif
- #if defined BInv_OnPlayerDisconnect
- BInv_OnPlayerDisconnect(playerid,reason);
- #endif
- return 1;
- }
- #if defined _ALS_OnPlayerDisconnect
- #undef OnPlayerDisconnect
- #else
- #define _ALS_OnPlayerDisconnect
- #endif
- #define OnPlayerDisconnect BInv_OnPlayerDisconnect
- #if defined BInv_OnPlayerDisconnect
- forward BInv_OnPlayerDisconnect(playerid,reason);
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement