#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;}
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 ;
if(listitem == 0) // Használat{ TargyHasznalat(playerid,itemnev);}TargyHasznalat(playerid,nev[]){ if(!strcmp(nev,\"Kaja\")) { SCM(playerid,\"Megettél egy kenyeret\"); }}
GetItemDarab(playerid,nev);GetItemTipus(playerid,nev);
#include a_samp#include a_mysql#include zcmd#include sscanf2
nagyon klassz egy kezdő inventory rendszer elkezdéséhez, szép munka. Illetve el ne felejtsd ezeket beilleszteni a kód elejére, sokan fognak panaszkodni, hogy miért hibás a kódod.. #include a_samp#include a_mysql#include zcmd#include sscanf2
Kissé összekuszált, de nagyon jó rendszer lesz belőle, én például, úgy oldanám meg, hogy amikor itemet választ, if(listitem == 0) // Használat{ TargyHasznalat(playerid,itemnev);}TargyHasznalat(playerid,nev[]){ if(!strcmp(nev,\"Kaja\")) { SCM(playerid,\"Megettél egy kenyeret\"); }} Persze ez úgyanúgy müködik mint a tied, csupán annyi, hogy nem a dialog részedbe irod bele És esetleg csinálhatnál saját lekérdezéseket is, így nemkellene mindenhol megcsinálnod.pl. : GetItemDarab(playerid,nev);GetItemTipus(playerid,nev); Valami ilyesmik, de szintén ezis csak könnyíti a munkádat, és szintaktikailag nézz ki jobban.Ezeket tudnám neked ajánlani, sok sikert a tovább fejlesztéshez, én mindenképpen támogatlak ebben [/quote]Köszönöm.Igen-igen erre én is gondoltam, viszont 10.000 sor után már nem átlátható, ugrálni kell ide-oda.
Igazad van!Viszont ha egy módot stabil alapokra teszel akkor később nem kell aggódni ilyesmiért A saját módodat pedig úgyis csak neked kell értened
Jól hangzik, gratulálok!