Sziasztok.
A napokban elkezdtem írogatni egy inventory rendszert.
A rendszer tartalmazza a /taska parancsot, melyel megnézhetjük mi van nálunk, tartalmazza a /giveitem parancsot, melyen az adminok itemet tudnak adni a játékosnak.
Készítési idő: pár óra
Item típusok:
0 - Kaja
1 - Pia
2 - Cigaretta
3 - Drog
4 - Fegyver(nincs kész)
100 - Használhatatlan
0.1 verzió:
*Admin tud adni neked cuccokat.
*A táskában levő cuccokat tudod használni( megenni/meginni/elszívni)
Fejlesztészre vár:
*Fegyverek a táskában
*Cuccok eldobása
*Cuccok átadása
#include a_samp
#include a_mysql
#include zcmd
#include sscanf2
CMD:taska(playerid,params[])
{
Inventory(playerid);
return 1;
}
CMD:giveitem(playerid,params[])
{
if(IsPlayerAdmin(playerid))
{
new itemnev[128], jatekosnev[128], darab, fajta;
if(sscanf(params, \"s[128]dds[128]\", itemnev, darab, fajta, jatekosnev)) return SendClientMessage(playerid, -1, \"Használat: /giveitem [itemnév] [darab] [type(/itemtypes)] [játékosnév]\");
format(SQL_Input,sizeof(SQL_Input),\"SELECT darab FROM `inventory` WHERE `kinek` = \'%s\' AND `itemname` = \'%s\'\",jatekosnev,itemnev );
mysql_query(SQLHandle, SQL_Input);
if(!cache_num_rows())
{
format(query, sizeof(query), \"INSERT INTO `inventory` (itemname,darab,kinek,type) VALUES ( \'%s\', \'%d\', \'%s\', \'%d\')\", itemnev, darab, jatekosnev, fajta);
mysql_query(SQLHandle, query);
}
else
{
new hanyvanneki = cache_get_field_content_int(0, \"darab\");
format(SQL_Input, sizeof(SQL_Input), \"UPDATE `inventory` SET `darab`= \'%i\' WHERE `kinek` = \'%s\' AND `itemname` = \'%s\'\",hanyvanneki+darab, jatekosnev,itemnev);
mysql_tquery(SQLHandle, SQL_Input, \"\", \"\");
}
new string[256];
format(string, sizeof(string), \"(( Sikeresen adtál %s-nak/nek %s itemből %d darabot. ))\", jatekosnev,itemnev,darab);
SendClientMessage(playerid, CITROM, string);
new jatekosnak[128];
format(jatekosnak,sizeof(jatekosnak),\"Egy admin adott neked %s itemből %d darabot!\",itemnev,darab);
SendClientMessage(GetPlayerIdFromName(jatekosnev), ZOLD, jatekosnak);
}
return 1;
}
forward OnPlayerInventory(playerid);
public OnPlayerInventory(playerid)
{
new str1[2048], str2[32];
new tempAdmin[64], tempName[64][24];
format(str1, sizeof(str1), \"Item\\tDarab\");
if(!cache_num_rows()) return SendClientMessage(playerid, -1, \"Táskád üres\");
for(new i; i < cache_get_row_count(); i++)
{
cache_get_field_content(i, \"itemname\", tempName, SQLHandle, 24);
tempAdmin = cache_get_field_content_int(i, \"darab\");
format(str2, sizeof(str2), \"\\n%s\\t%i\", tempName, tempAdmin);
strcat(str1, str2);
}
ShowPlayerDialog(playerid, 2000, DIALOG_STYLE_TABLIST_HEADERS, \"Táska\", str1 , \"Rendben\", \"Mégsem\");
return 1;
}
stock Inventory(playerid)
{
mysql_format(SQLHandle, SQL_Input, sizeof(SQL_Input), \"SELECT * FROM inventory WHERE kinek = \'%s\'\",GetName(playerid));
mysql_tquery(SQLHandle, SQL_Input, \"OnPlayerInventory\", \"i\", playerid);
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 2000)
{
if(response)
{
SetPVarString(playerid,\"Item\",inputtext);
ShowPlayerDialog(playerid,2001,DIALOG_STYLE_LIST,\"Item\",\"Használ\\nÁtad\\nEldob\",\"Rendben\",\"Bezár\");
}
}
if(dialogid == 2001)
{
new itemnev[128];
GetPVarString(playerid,\"Item\",itemnev,sizeof(itemnev));
if(listitem == 0 && response)
{
new nev[24];
GetPVarString(playerid,\"Szemely\",nev,sizeof(nev));
format(SQL_Input,sizeof(SQL_Input),\"SELECT darab,type FROM `inventory` WHERE `itemname` = \'%s\'\", itemnev);
mysql_query(SQLHandle, SQL_Input);
new db,type;
db = cache_get_field_content_int(0, \"darab\");
type = cache_get_field_content_int(0, \"type\");
new S[128];
if(type == 0)
{
format(S,sizeof(S),\"elkezd enni egy %s-t.\",itemnev);
cmd_me(playerid,S);
ApplyAnimation(playerid, \"FOOD\", \"EAT_Pizza\",4.1,0,1,1,0,0);
if(db-1 >= 1)
{
format(SQL_Input,sizeof(SQL_Input),\"UPDATE inventory SET darab = %d WHERE kinek = \'%s\' AND itemname = \'%s\'\",db-1,GetName(playerid),itemnev);
mysql_tquery(SQLHandle, SQL_Input);
}
if(db-1 == 0)
{
format(SQL_Input, sizeof(SQL_Input), \"DELETE FROM `inventory` WHERE `kinek` = \'%s\' AND `itemname` = \'%s\'\", GetName(playerid),itemnev);
mysql_tquery(SQLHandle, SQL_Input);
}
}
else if(type == 1)
{
format(S,sizeof(S),\"elkezd inni egy %s-t.\",itemnev);
cmd_me(playerid,S);
ApplyAnimation(playerid, \"VENDING\", \"VEND_Drink2_P\",4.1,0,1,1,0,0);
if(db-1 >= 1)
{
format(SQL_Input,sizeof(SQL_Input),\"UPDATE inventory SET darab = %d WHERE kinek = \'%s\' AND itemname = \'%s\'\",db-1,GetName(playerid),itemnev);
mysql_tquery(SQLHandle, SQL_Input);
}
if(db-1 == 0)
{
format(SQL_Input, sizeof(SQL_Input), \"DELETE FROM `inventory` WHERE `kinek` = \'%s\' AND `itemname` = \'%s\'\", GetName(playerid),itemnev);
mysql_tquery(SQLHandle, SQL_Input);
}
}
else if(type == 2)
{
format(S,sizeof(S),\"rágyujt egy %s cigarettára.\",itemnev);
cmd_me(playerid,S);
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_SMOKE_CIGGY);
if(db-1 >= 1)
{
format(SQL_Input,sizeof(SQL_Input),\"UPDATE inventory SET darab = %d WHERE kinek = \'%s\' AND itemname = \'%s\'\",db-1,GetName(playerid),itemnev);
mysql_tquery(SQLHandle, SQL_Input);
}
if(db-1 == 0)
{
format(SQL_Input, sizeof(SQL_Input), \"DELETE FROM `inventory` WHERE `kinek` = \'%s\' AND `itemname` = \'%s\'\", GetName(playerid),itemnev);
mysql_tquery(SQLHandle, SQL_Input);
}
}
else if(type == 3)
{
format(S,sizeof(S),\"rágyujt egy tekert cigarettára.\",itemnev);
cmd_me(playerid,S);
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_SMOKE_CIGGY);
SetPlayerWeather(playerid,700);
if(db-1 >= 1)
{
format(SQL_Input,sizeof(SQL_Input),\"UPDATE inventory SET darab = %d WHERE kinek = \'%s\' AND itemname = \'%s\'\",db-1,GetName(playerid),itemnev);
mysql_tquery(SQLHandle, SQL_Input);
}
if(db-1 == 0)
{
format(SQL_Input, sizeof(SQL_Input), \"DELETE FROM `inventory` WHERE `kinek` = \'%s\' AND `itemname` = \'%s\'\", GetName(playerid),itemnev);
mysql_tquery(SQLHandle, SQL_Input);
}
}
else if(type == 4)
{
if(Ugyanaz(itemnev,\"Golfütő\"))
{
format(S,sizeof(S),\"előveszi a %s-t.\",itemnev);
cmd_me(playerid,S);
GivePlayerWeapon(playerid,2,1);
format(SQL_Input, sizeof(SQL_Input), \"DELETE FROM `inventory` WHERE `kinek` = \'%s\' AND `itemname` = \'%s\'\", GetName(playerid),itemnev);
mysql_tquery(SQLHandle, SQL_Input);
}
}
}
}
return 1;
}
Tábla:
CREATE TABLE IF NOT EXISTS `inventory` (
`DBID` int(11) NOT NULL AUTO_INCREMENT,
`itemname` varchar(128) NOT NULL,
`darab` int(11) NOT NULL,
`kinek` varchar(32) NOT NULL,
`type` int(11) NOT NULL,
PRIMARY KEY (`DBID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=15 ;
Ha bármi gond van írjatok és segítek.