Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define DIALOG_INVENTORY 13337
- #define MAX_ITEMS 20
- #define MAX_ITEM_STACK 300
- #define MAX_ITEM_NAME 32
- #define egyezik(%1) (!strcmp(%1, true))
- forward OnPlayerUseItem(playerid,ItemName[]);
- new _ItemInfo[MAX_PLAYERS][MAX_ITEMS][2];
- //0 = itemname, 1 = itemamount
- /*
- native AddItem(playerid,ItemName[],amount);
- native RemoveItem(playerid,ItemName[],amount);
- native PlayerHasItem(playerid,ItemName[]);
- native ResetPlayerInventory(playerid);
- native ShowInventory(playerid);
- native SaveInventory(playerid);
- native LoadInventory(playerid);
- */
- stock GetItemName(playerid,item)
- {
- new itemname[MAX_ITEM_NAME];
- if(_ItemInfo[playerid][item][1] > 0)
- {
- if(!egyezik(_ItemInfo[playerid][item][0],""))
- {
- format(itemname,sizeof(itemname),"%s",_ItemInfo[playerid][item][0]);
- }
- }
- return itemname;
- }
- stock SetItemName(playerid,item,ItemName[])
- {
- if(_ItemInfo[playerid][item][1] > 0)
- {
- if(egyezik(_ItemInfo[playerid][item][0],""))
- {
- format(_ItemInfo[playerid][item][0],MAX_ITEM_NAME,"%s",ItemName);
- }
- }
- }
- stock GetItemAmount(playerid,ItemName[])
- {
- new amount = 0;
- for(new i = 0; i < MAX_ITEMS; i++)
- {
- if(egyezik(_ItemInfo[playerid][i][0],ItemName))
- {
- if(_ItemInfo[playerid][i][1] > 0)
- {
- amount = _ItemInfo[playerid][i][1];
- break;
- }
- }
- }
- return amount;
- }
- stock GetItemID(playerid,ItemName[])
- {
- new id = -1;
- for(new i = 0; i < MAX_ITEMS; i++)
- {
- if(egyezik(_ItemInfo[playerid][i][0],ItemName))
- {
- id = i;
- break;
- }
- }
- return id;
- }
- stock SetItemAmount(playerid,item,amount)
- {
- if(_ItemInfo[playerid][item][1] > 0)
- {
- if(egyezik(_ItemInfo[item][0],""))
- {
- _ItemInfo[playerid][item][1] = amount;
- }
- }
- }
- stock RemoveItem(playerid,ItemName[],amount)
- {
- new currentamount = 0;
- currentamount = GetItemAmount(playerid,ItemName);
- if(currentamount > 0)
- {
- if(currentamount - amount > 1)
- {
- new result = 0;
- result = currentamount - amount;
- SetItemAmount(playerid,GetItemID(playerid,ItemName),result);
- }
- }
- }
- stock AddItem(playerid,ItemName[],amount)
- {
- new itemslot = -1;
- for(new i = 0; i < MAX_ITEMS; i++)
- {
- if(GetItemAmount(playerid,ItemName) < 1)
- {
- if(itemslot == -1)
- {
- itemslot = i;
- continue;
- }
- }
- if(egyezik(_ItemInfo[playerid][i][0],ItemName))
- {
- new currentamount = 0;
- currentamount = GetItemAmount(playerid,ItemName);
- new result = 0;
- result = currentamount + _ItemInfo[playerid][i][1] + amount;
- SetItemAmount(playerid,i,result);
- SendClientMessage(playerid,-1,"Egy itemből kaptál még pluszba!");
- if(result >= MAX_ITEM_STACK)
- {
- SetItemAmount(playerid,i,MAX_ITEM_STACK-1);
- SendClientMessage(playerid,-1,"Egy itemből túl sokat kaptál ezért a maxot megkaptad!");
- return 2;
- }
- return 1;
- }
- }
- if(itemslot > -1)
- {
- SetItemName(playerid,itemslot,ItemName);
- SetItemAmount(playerid,itemslot,amount);
- SendClientMessage(playerid,-1,"Egy itemből kaptál valamennyit, ez az első ilyen tárgy a táskádban!");
- if(GetItemAmount(playerid,GetItemName(playerid,itemslot)) > MAX_ITEM_STACK)
- {
- SetItemAmount(playerid,itemslot,MAX_ITEM_STACK);
- SendClientMessage(playerid,-1,"Egy itemből túl sokat kaptál ezért a maxot megkaptad, ez az első ilyen tárgy a táskádban!!");
- return 2;
- }
- return 1;
- }
- return 0;
- }
- stock ShowItems(playerid)
- {
- new dialogstring[256],s[128];
- format(dialogstring,sizeof(dialogstring),"Tárgy\tMennyiség");
- for(new i = 0; i < MAX_ITEMS; i++)
- {
- if(GetItemAmount(playerid,GetItemName(playerid,i)) > 0)
- {
- if(!egyezik(GetItemName(playerid,i),""))
- {
- format(s,sizeof(s),"%s\t%d",GetItemName(playerid,i),GetItemAmount(playerid,GetItemName(playerid,i)));
- strcat(dialogstring,s);
- }
- }
- }
- ShowPlayerDialog(playerid,DIALOG_INVENTORY,DIALOG_STYLE_TABLIST_HEADERS,"Táska",dialogstring,"Használ","Mégse");
- }
- stock ResetPlayerInventory(playerid)
- {
- for(new i = 0; i < MAX_ITEMS; i++)
- {
- SetItemAmount(playerid,i,0);
- SetItemName(playerid,i,"");
- }
- }
- stock PlayerItem(playerid,ItemName[])
- {
- for(new i = 0; i < MAX_ITEMS; i++)
- {
- if(GetItemAmount(playerid,ItemName) > 0)
- {
- if(egyezik(GetItemName(playerid,i),ItemName))
- {
- return GetItemAmount(playerid,ItemName);
- }
- }
- }
- return 0;
- }
- stock LoadInventory(playerid)
- {
- }
- stock SaveInventory(playerid)
- {
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement