| A probléma (mivel mást nem nagyon látni) több mint valószínű hogy azért van mert rosszkor próbáljátok betölteni a játékos adatait. Felcsatlakozás közben általában droppol egyet a kliens, tehát lehetséges hogy a dc is lefut közben, de az is lehet hogy kétszer fut le az authorized rossz időben. Nekem volt anno a szerveremen üdvözlő plugin, ami volt hogy 2x köszöntötte a felcsatlakozó játékost. Az eventre már nem emlékszem amit az meghívott, viszont szerintem itt is hasonló lehet a helyzet.
 Megoldás:
 
 Kód: #include <amxmodx>#include <amxmisc>
 #include <cstrike>
 #include <sqlx>
 #include <fakemeta>
 
 #define MAXPLAYERS 33 // player id-k lesznek
 #define MAXLVL 50 // max szint
 #define MAXRANK 11 // maximum rang
 #pragma semicolon 1 // mindenhova ahova lehet tegyék ; jelet
 #define ChatColor print_team_default // -1 csak szürke a ^3 -2 csak piros, -3 csak kék, print_team_default az alap
 #define Tablename "Hlmodra_tabla"
 
 #define OWNER ADMIN_IMMUNITY // OWnerben taroljuk az immunitas jogot
 #define FOADMIN ADMIN_LEVEL_E // foadminban meg a o jogot
 #define ADMIN ADMIN_MAP // adminban a mapvaltas jogot
 #define VIP ADMIN_LEVEL_H  //vipben meg egy h jogot
 
 //(valamelyik előtt mindenképpen legyen // jel!)
 #define RANK_ON // ha latni akarsz rangokat chatben (tulaj admin vip)
 //#define RANK_OFF // ha nem akarsz latni rangokat chatben (tulaj admin vip)
 //(valamelyik előtt mindenképpen legyen // jel!)
 
 enum _:ePlayer{eXp,eLvl,eRank,eRankCounter,};
 new g_ePlayer[ePlayer][MAXPLAYERS], cvarPrefix, gSyncHud, Handle:g_SqlTuple;
 
 enum _:eRanks{eRankName[64], eRankLvl,};
 new const cRanks[MAXRANK][eRanks] = {
 {"Kezdő", 0}, //rang neve, szint
 {"szőlőcukor", 5},
 {"Csöves", 10},
 {"Cukros Bácsi", 15},
 {"Retardált", 20},
 {"Hajléktalan", 25},
 {"Fogyatékos", 30},
 {"Drogos", 35},
 {"Szittyós", 40},
 {"Gyerekrabló", 45},
 {"Rabszolgatartó", MAXLVL} //bővíteni ? MAXLVLt írd át a max szintre és mindenképpen legalulra kerüljön! | a szinteket ötösével adjad meg ha lehet! mert ha nem elfog csúszni a rang.
 };
 public plugin_init()
 {
 register_plugin("Hlmodra", "valamiverziosiskell?", "szeretjükatejetazbiztos!");
 
 register_clcmd("say /info", "info_p");
 //register_clcmd("say /rs", "statreset_p");
 
 register_event("DeathMsg", "ev_deathmsg", "a");
 
 cvarPrefix = register_cvar("Prefix", "^4[.:*[DarK*_*Light]*:.]^3 »");
 
 ////////////////////////////////////////
 register_clcmd("say", "sayhook");      //Maradjon alul!
 ////////////////////////////////////////
 
 gSyncHud = CreateHudSyncObj();
 }
 get_cprefix(){
 new sPrefix[32];
 get_pcvar_string(cvarPrefix, sPrefix, charsmax(sPrefix));
 return sPrefix;
 }
 public info_p(id)
 {
 new Xp, Xp2;
 Xp = 15+g_ePlayer[eLvl][id];
 Xp2 = 15*30+g_ePlayer[eLvl][id]*Xp;
 client_print_color(id, ChatColor, "%s^1 Rangod: %s | Szinted/Xpd: %d/%d | Következő rang: %s", get_cprefix(), cRanks[g_ePlayer[eRank][id]][eRankName],
 g_ePlayer[eXp][id], Xp2, cRanks[g_ePlayer[eRank][id]+1][eRankName]);
 }
 public client_PreThink(id)
 LvlCheck(id);
 
 public LvlCheck(id)
 {
 if(g_ePlayer[eLvl][id] == MAXLVL || g_ePlayer[eRank][id] == MAXRANK)
 return PLUGIN_HANDLED;
 
 new Xp, Xp2, sName[64];
 Xp = 15+g_ePlayer[eLvl][id];
 Xp2 = 15*30+g_ePlayer[eLvl][id]*Xp;
 
 if(g_ePlayer[eXp][id] >= Xp2)
 {
 g_ePlayer[eLvl][id]++;
 g_ePlayer[eXp][id] = 0;
 g_ePlayer[eRankCounter][id]++;
 
 if(g_ePlayer[eRankCounter][id] == 5)
 {
 g_ePlayer[eRank][id]++;
 g_ePlayer[eRankCounter][id] = 0;
 }
 get_user_name(id, sName, charsmax(sName));
 client_print_color(0, ChatColor, "^4%s^3 %s^1 szintet lépett, szintje: %d.", get_cprefix(), sName, g_ePlayer[eLvl][id]);
 }
 return PLUGIN_HANDLED;
 }
 public ev_deathmsg()
 {
 new iKiller = read_data(1);
 new iVictim = read_data(2);
 new iHs = read_data(3);
 new iRnd, sName[64];
 
 if(!iKiller || !iVictim || iVictim == iKiller)
 return PLUGIN_HANDLED;
 
 get_user_name(iVictim, sName, charsmax(sName));
 
 if(iHs)
 {
 iRnd = random_num(5, 10);
 g_ePlayer[eXp][iKiller] += iRnd;
 client_print_color(iKiller, ChatColor, "%s^1 Kaptál^3 %d^1 Xp-t^3 %s^1 fejbelövéséért!", get_cprefix(), iRnd, sName);
 }
 else
 {
 iRnd = random_num(1, 5);
 g_ePlayer[eXp][iKiller] += iRnd;
 client_print_color(iKiller, ChatColor, "%s^1 Kaptál^3 %d^1 Xp-t^3 %s^1 megöléséért!", get_cprefix(), iRnd, sName);
 }
 return PLUGIN_HANDLED_MAIN;
 }
 public sayhook(id)
 {
 new sMessage[512], sText[128], sDeath[16], iLen, sName[64];
 read_args(sMessage, charsmax(sMessage));
 remove_quotes(sMessage);
 
 if(strlen(sMessage) == 0 || sMessage[0] == '/' || sMessage[0] == '@')
 return PLUGIN_HANDLED_MAIN;
 
 new iTeam, iColor;
 iTeam = get_user_team(id);
 
 switch(iTeam) //itt lehet elvalasztani hogy ha ctk irnak a tk kéken lássák, és fordítva, ha specek akkor szürkén látják.
 {
 case CS_TEAM_CT: iColor = -3; //kék
 case CS_TEAM_T: iColor = -2;//piros
 case CS_TEAM_SPECTATOR: iColor = -1;//szürke
 }
 
 format(sDeath, charsmax(sDeath), is_user_alive(id) ? "":"*Halott*");
 iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^1%s", sDeath);
 #if defined RANK_ON
 if(get_user_flags(id) & OWNER)
 iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^3[^4Tulajdonos^3]^1");
 else if(get_user_flags(id) & ADMIN)
 iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^3[^4FőAdmin^3]^1");
 else if(get_user_flags(id) & FOADMIN)
 iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^3[^4Admin^3]^1");
 else if(get_user_flags(id) & VIP)
 iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^3[^4VIP^3]^1");
 else
 iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^3[^4Játékos^3]^1");
 
 iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^3[^4Szint: %d^3]", g_ePlayer[eLvl][id]);
 #endif
 
 #if defined RANK_OFF
 iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^3[^4Szint: %d^3]", g_ePlayer[eLvl][id]);
 #endif
 
 get_user_name(id, sName, charsmax(sName));
 format(sMessage, charsmax(sMessage), "%s ^1%s ^3»^3 %s", sText, sName, sMessage);
 
 for(new i; i < get_maxplayers(); i++)
 {
 if(!is_user_connected(i))
 continue;
 
 client_print_color(i, iColor, sMessage);
 }
 return PLUGIN_HANDLED_MAIN;
 }
 public hudshow_p(id)
 {
 if(!is_user_connected(id))
 return PLUGIN_HANDLED_MAIN;
 
 new sText[256], iLen, idT;
 new Target = pev(id, pev_iuser1) == 4 ? pev(id, pev_iuser2) : id;
 idT = is_user_alive(id) ? id:Target;
 
 new Xp, Xp2;
 Xp = 15+g_ePlayer[eLvl][idT];
 Xp2 = 15*30+g_ePlayer[eLvl][idT]*Xp;
 
 iLen += formatex(sText[iLen], charsmax(sText)-iLen, "Szint: [ %d --> %d ]^n", g_ePlayer[eLvl][idT], MAXLVL);
 iLen += formatex(sText[iLen], charsmax(sText)-iLen, "Rang: -- %s --^n", cRanks[g_ePlayer[eRank][idT]][eRankName]);
 iLen += formatex(sText[iLen], charsmax(sText)-iLen, "XP: [ %d --> %d ]", g_ePlayer[eXp][idT], Xp2);
 
 set_hudmessage(0, 255, 0, -1.0, 0.85, 0, 6.0, 1.0, 0.1, 0.2, -1);
 ShowSyncHudMsg(id, gSyncHud, "%s", sText);
 
 set_task(1.0, "hudshow_p", id);
 
 return PLUGIN_HANDLED;
 }
 public client_putinserver(id)
 {
 if(is_user_bot(id))
 return;
 
 set_task(5.0, "hudshow_p", id);
 
 g_ePlayer[eXp][id] = 0;
 g_ePlayer[eLvl][id] = 0;
 g_ePlayer[eRank][id] = 0;
 g_ePlayer[eRankCounter][id] = 0;
 
 SelectDataTable(id);
 }
 public client_disconnected(id)
 {
 if(is_user_bot(id))
 return;
 
 TableUpdate(id);
 
 if(task_exists(id))
 remove_task(id);
 }
 public plugin_cfg()
 {
 //Kiszolgáló | Felhasználó | Jelszó | Adatbázis
 
 g_SqlTuple = SQL_MakeDbTuple("maria.srkhost.eu", "", "", "s17878_newszerver");
 CreateTable();
 }
 public CreateTable(){
 new iLen;
 static sQuery[2048];
 
 iLen += formatex(sQuery[iLen], charsmax(sQuery), "CREATE TABLE IF NOT EXISTS `%s` ", Tablename);
 iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "( ");
 iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`Id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,");
 iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`SteamId` varchar(64) NOT NULL,");
 iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`qSzint` int(11) NOT NULL,");
 iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`qXp` int(11) NOT NULL,");
 iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`qRank` int(11) NOT NULL,");
 iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`qRankCounter` int(11) NOT NULL)");
 
 SQL_ThreadQuery(g_SqlTuple, "TableCreateThread", sQuery);
 }
 public TableUpdate(id)
 {
 static sQuery[2048];
 new iLen, sSteamID[64];
 get_user_authid(id, sSteamID, charsmax(sSteamID));
 
 iLen += formatex(sQuery[iLen], charsmax(sQuery), "UPDATE `%s` SET ", Tablename);
 iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "qSzint = ^"%i^",", g_ePlayer[eLvl][id]);
 iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "qXp = ^"%i^",", g_ePlayer[eXp][id]);
 iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "qRank = ^"%i^",", g_ePlayer[eRank][id]);
 
 iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "qRankCounter = ^"%i^" WHERE `SteamId` = ^"%s^";", g_ePlayer[eRankCounter][id], sSteamID);
 SQL_ThreadQuery(g_SqlTuple, "QuerySetDataTable", sQuery);
 }
 public TableCreateThread(iFailState, Handle:sQuery, sError[], iErrcode, sData[], iDataSize, Float:fQueuetime)
 {
 if(iFailState == TQUERY_CONNECT_FAILED)
 set_fail_state("[Create] Nem lehet csatlakozni az adatbazishoz!");
 else if(iFailState == TQUERY_QUERY_FAILED)
 set_fail_state("[Create] Lekerdezesi hiba");
 if(iErrcode)
 log_amx("[Create] Hiba:**!! %s !!**", sError);
 }
 public TableInsert(id)
 {
 static sQuery[2048], sSteamID[64];
 
 get_user_authid(id, sSteamID, charsmax(sSteamID));
 formatex(sQuery, charsmax(sQuery), "INSERT INTO `%s` (`SteamId`) VALUES (^"%s^");", Tablename, sSteamID);
 SQL_ThreadQuery(g_SqlTuple, "QuerySetDataTable", sQuery);
 }
 public SelectDataTable(id)
 {
 static sQuery[2048];
 new sData[1], sSteamID[64];
 sData[0] = id;
 
 get_user_authid(id, sSteamID, charsmax(sSteamID));
 
 formatex(sQuery, charsmax(sQuery), "SELECT * FROM `%s` WHERE SteamId = ^"%s^";", Tablename, sSteamID);
 SQL_ThreadQuery(g_SqlTuple, "QuerySelectDataTable", sQuery, sData, 1);
 }
 public QuerySelectDataTable(iFailState, Handle:sQuery, sError[], iErrcode, sData[], iDataSize, Float:fQueuetime)
 {
 if(iFailState == TQUERY_CONNECT_FAILED || iFailState == TQUERY_QUERY_FAILED)
 {
 log_amx("[Insert] Hiba:**!! %s !!**", sError);
 return;
 }
 else
 {
 new id = sData[0];
 
 if(SQL_NumRows(sQuery) > 0)
 {
 g_ePlayer[eLvl][id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "qSzint"));
 g_ePlayer[eXp][id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "qXp"));
 g_ePlayer[eRank][id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "qRank"));
 g_ePlayer[eRankCounter][id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "qRankCounter"));
 }
 else
 TableInsert(id);
 }
 }
 public QuerySetDataTable(iFailState, Handle:sQuery, sError[], iErrcode, sData[], iDataSize, Float:fQueuetime)
 {
 if(iFailState == TQUERY_CONNECT_FAILED || iFailState == TQUERY_QUERY_FAILED)
 {
 log_amx("[SetData] Hiba:**!! %s !!**", sError);
 return;
 }
 }
 |