Offline |
|
|
Csatlakozott: 2016.02.27. 17:55 Hozzászólások: 349
Megköszönt másnak: 25 alkalommal Megköszönték neki: 57 alkalommal
|
regener írta: Legegyszerűbb talán ha csinálsz egy boolt ami alapból false míg ki nem nyitja a raktárat ÉS meg nem nyom egy gombot ahol a kap a bool egy true értéket. Ha ez true akkor a Fegyvervaltas(id) már megy is. new bool:invOpen[33] = false; // Igazra állítod ahogy fent írtam (+ szebb case kezelés, 118 sor -> 5 sor ) public Raktar_h(id, menu, item){ if(item == MENU_EXIT) { menu_destroy(menu); return; } new data[9], szName[64]; new access, callback; menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback); new key = str_to_num(data); switch(key) { case 0..23: Skin[0][id] = key+1; case 24..48: Skin[1][id] = key-23; case 49..73: Skin[2][id] = key-48; case 74..98: Skin[3][id] = key-73; case 99..118: Skin[4][id] = key-98; } invOpen[id] = true; } // Ezzel kicsit javul a kód, a végiggörgetős folyamatos összehasonlítás helyett a helyére ugrik ha egyáltalán Gun[id] és az invOpen[id] igaz. public FegyverValtas(id) { if(Gun[id] != 1 || invOpen[id] == false) return; new fgy = get_user_weapon(id); switch(fgy) { case CSW_AK47: { for(new i;i < sizeof(m_AK47); i++) { if(Skin[0][id] == i) { set_pev(id, pev_viewmodel2, m_AK47[i]); } } } case CSW_M4A1: { for(new i;i < sizeof(m_M4A1); i++) { if(Skin[1][id] == i) { set_pev(id, pev_viewmodel2, m_M4A1[i]); } } } case CSW_AWP: { for(new i;i < sizeof(m_AWP); i++) { if(Skin[2][id] == i && fgy == CSW_AWP) { set_pev(id, pev_viewmodel2, m_AWP[i]); } } } case CSW_DEAGLE: { for(new i;i < sizeof(m_DEAGLE); i++) { if(Skin[3][id] == i) { set_pev(id, pev_viewmodel2, m_DEAGLE[i]); } } } case CSW_KNIFE: { for(new i;i < sizeof(m_KNIFE); i++) { if(Skin[4][id] == i) { set_pev(id, pev_viewmodel2, m_KNIFE[i]); } } } } } // Persze visszakell állítani ha lelép az illető public client_disconnect(id) { if(!is_user_bot(id)) { Update(id); } Dollar[id] = 0; Rang[id] = 0; Oles[id] = 0; Kulcs[id] = 0; Regisztralt[id] = 0; SMS[id] = 0; Belepve[id] = false; Beirtjelszot[id] = false; Beirtjelszot1[id] = false; Beirtfelhasznalot[id] = false; Beirtfelhasznalot1[id] = false; invOpen[id] = false; regFh[id][0] = EOS; regJelszo[id][0] = EOS; Felhasznalonev[id][0] = EOS; Jelszo[id][0] = EOS; for(new i;i < FEGYO; i++) OsszesSkin[i][id] = 0; for(new i;i < LADA; i++) Lada[i][id] = 0; for(new i;i < 5; i++) Skin[i][id] = 0; copy(name[id], charsmax(name[]), ""); }
Köszönöm a segítséget, medoltottam egyszerűbben. SQL mentésnél minden olyan for ciklust töröltem, ami menti az adott skint disconnectnél. Lehet így nem érted, de mutatom. public plugin_cfg() { g_SqlTuple = SQL_MakeDbTuple(SQLINFO[0], SQLINFO[1], SQLINFO[2], SQLINFO[3]); static Query[10048]; new Len; Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS `awp_2018`"); Len += formatex(Query[Len], charsmax(Query)-Len, "(`Nev` varchar(32) NOT NULL, "); Len += formatex(Query[Len], charsmax(Query)-Len, "`Felhasznalonev` varchar(32) NOT NULL,"); Len += formatex(Query[Len], charsmax(Query)-Len, "`Jelszo` varchar(32) NOT NULL,"); Len += formatex(Query[Len], charsmax(Query)-Len, "`Regisztralt` int(11) NOT NULL,"); Len += formatex(Query[Len], charsmax(Query)-Len, "`Dollars` int(11) NOT NULL,"); Len += formatex(Query[Len], charsmax(Query)-Len, "`Szint` int(11) NOT NULL,"); Len += formatex(Query[Len], charsmax(Query)-Len, "`Oles` int(11) NOT NULL,"); Len += formatex(Query[Len], charsmax(Query)-Len, "`Osszesoles` int(11) NOT NULL,"); Len += formatex(Query[Len], charsmax(Query)-Len, "`AWP` int(11) NOT NULL,"); Len += formatex(Query[Len], charsmax(Query)-Len, "`Knife` int(11) NOT NULL,"); for(new i;i < FEGYO; i++) Len += formatex(Query[Len], charsmax(Query)-Len, "`F_%d` int(11) NOT NULL,", i); for(new i;i < LADA; i++) Len += formatex(Query[Len], charsmax(Query)-Len, "`L_%d` int(11) NOT NULL,", i); for(new i;i < KULCS; i++) Len += formatex(Query[Len], charsmax(Query)-Len, "`K_%d` int(11) NOT NULL,", i); /* for(new i;i < 2; i++) Len += formatex(Query[Len], charsmax(Query)-Len, "`S%d` int(11) NOT NULL,", i); */ Len += formatex(Query[Len], charsmax(Query)-Len, "`Jatszottido` varchar(32) NOT NULL, `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)"); SQL_ThreadQuery(g_SqlTuple, "createTableThread", Query); } public Load(id) { static Query[10048]; new Data[1]; Data[0] = id; formatex(Query, charsmax(Query), "SELECT * FROM `awp_2018` WHERE Nev = ^"%s^";", name[id]); SQL_ThreadQuery(g_SqlTuple, "QuerySelectData", Query, Data, 1); } public QuerySelectData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) { if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) { log_amx("%s", Error); return; } else { new id = Data[0]; if(SQL_NumRows(Query) > 0) { SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Felhasznalonev"), regFh[id], charsmax(regFh[])); SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Jelszo"), regJelszo[id], charsmax(regJelszo[])); Regisztralt[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Regisztralt")); Rang[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Szint")); Dollar[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Dollars")); Oles[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Oles")); osszesoles[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Osszesoles")); awp[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "AWP")); knife[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Knife")); for(new i;i < FEGYO; i++) { new String[64]; formatex(String, charsmax(String), "F_%d", i); OsszesSkin[i][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, String)); } for(new i;i < LADA; i++) { new String[64]; formatex(String, charsmax(String), "L_%d", i); Lada[i][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, String)); } for(new i;i < KULCS; i++) { new String[64]; formatex(String, charsmax(String), "K_%d", i); Kulcs[i][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, String)); } /* for(new i;i < 2; i++) { new String[64]; formatex(String, charsmax(String), "S%d", i); Skin[i][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, String)); } */ osszes_jatszott[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Jatszottido")); } else { Save(id); } } } public Save(id) { static Query[256]; formatex(Query, charsmax(Query), "INSERT INTO `awp_2018` (`Nev`) VALUES (^"%s^");", name[id]); SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query); } public Update(id) { static Query[10048]; new Len; Len += formatex(Query[Len], charsmax(Query), "UPDATE `awp_2018` SET Dollars = ^"%i^",", Dollar[id], name[id]); Len += formatex(Query[Len], charsmax(Query)-Len, "Szint = ^"%i^", ", Rang[id]); Len += formatex(Query[Len], charsmax(Query)-Len, "Oles = ^"%i^", ", Oles[id]); Len += formatex(Query[Len], charsmax(Query)-Len, "Osszesoles = ^"%i^", ", osszesoles[id]); Len += formatex(Query[Len], charsmax(Query)-Len, "AWP = ^"%i^", ", awp[id]); Len += formatex(Query[Len], charsmax(Query)-Len, "Knife = ^"%i^", ", knife[id]); for(new i;i < FEGYO; i++) Len += formatex(Query[Len], charsmax(Query)-Len, "F_%d = ^"%i^", ", i, OsszesSkin[i][id]); for(new i;i < LADA; i++) Len += formatex(Query[Len], charsmax(Query)-Len, "L_%d = ^"%i^", ", i, Lada[i][id]); for(new i;i < KULCS; i++) Len += formatex(Query[Len], charsmax(Query)-Len, "K_%d = ^"%i^", ", i, Kulcs[i][id]); /* for(new i;i < 2; i++) Len += formatex(Query[Len], charsmax(Query)-Len, "S%d = ^"%i^", ", i, Skin[i][id]); */ Len += formatex(Query[Len], charsmax(Query)-Len, "Jatszottido = ^"%i^" WHERE Nev = ^"%s^";", osszes_jatszott[id]+get_user_time(id) / 60, name[id]); SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query); } public SQL_Update_Reg(id) { static Query[10048]; new Len; Len += formatex(Query[Len], charsmax(Query), "UPDATE `awp_2018` SET Felhasznalonev = ^"%s^", ", regFh[id]); Len += formatex(Query[Len], charsmax(Query)-Len, "Jelszo = ^"%s^", ", regJelszo[id]); Len += formatex(Query[Len], charsmax(Query)-Len, "Regisztralt = ^"%i^" WHERE Nev = ^"%s^";", Regisztralt[id], name[id]); SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query); } public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) { if(FailState == TQUERY_CONNECT_FAILED) { set_fail_state("[HIBA*] NEM TUDTAM CSATLAKOZNI AZ ADATBAZISHOZ!"); } else if(FailState == TQUERY_QUERY_FAILED) { set_fail_state("Query Error"); } if(Errcode) { log_amx("[HIBA*] HIBAT DOBTAM: %s",Error); } } public QuerySetData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) { if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) { log_amx("%s", Error); return; } }
Így amikor connectelek, alap skint kapok, amíg nem választok ki raktárból skint. De megy a pacsi, köszönöm mégegyszer!
|
|