Offline |
|
|
Csatlakozott: 2018.02.07. 01:13 Hozzászólások: 127
Megköszönt másnak: 7 alkalommal Megköszönték neki: 25 alkalommal
|
Shadow -.- írta: Supra írta: #include <amxmodx> #include <amxmisc> #include <fakemeta> #include <engine> #include <sqlx> #include <ColorChat> #define PLUGIN "Fegyver Skin Menu" #define VERSION "1.0" #define AUTHOR "RaZzoR" #define DICTIONARY "fegyver_skin_menu.txt" //#define HOOK_P_MODELS #define HOOK_V_MODELS //#define HOOK_W_MODELS new bool:Belepve[33], bool:Beirtjelszot[33], bool:Beirtjelszot1[33], bool:Beirtfelhasznalot[33], bool:Beirtfelhasznalot1[33], Regisztralt[33], Felhasznalonev[33][100], Jelszo[33][100], regJelszo[33][100], regFh[33][100] new name[33][32], Dollar[33] new weapon_select[33] new const Website[] = "www.facebook.com/groups/rtdteam/"; //Menükben megjelenÅ‘ elérhetÅ‘ség new const SQLINFO[][] = { "-", "cheat462", "-", "cheat462" }; new Oles[33] new Handle:g_SqlTuple; new const Prefix[] = "[Magyar \dOnlyDust2]"; //Menüben megjelenÅ‘ prefix new const C_Prefix[] = "^3[^4Magyar^3]"; //Chat Prefix new const menu_item_names[][][] = { { "Alap Csomag", "0", "" }, { "CSGO Csomag", "30", "magyard2/cs_skins" }, { "Bronz Csomag", "60", "magyard2/brz_skins" }, { "Ezüst Csomag", "110", "magyard2/ez_skins" }, { "Metál Csomag", "250", "magyard2/mt_skins" }, { "Arany Csomag", "460", "magyard2/ar_skins" }, { "Neon Csomag", "672", "magyard2/eo_skins" }, { "Rozsdás Csomag", "50", "magyard2/rz_skins" }, { "Karácsony Csomag", "1000", "magyard2/kr_skins" }, { "Tűz Csomag", "1300", "magyard2/tz_skins" }, { "Barcelona Csomag", "2000", "magyard2/br_skins" }, { "SzuperhÅ‘s Csomag", "2500", "magyard2/sz_skins" }, { "Ultra Csomag", "3400", "magyard2/ul_skins" }, { "Sztár Csomag", "4000", "magyard2/szt_skins" }, { "VégzÅ‘s Csomag", "10000", "magyard2/vip_skins" } } new const models_name[][] = { "ak47.mdl", "m4a1.mdl", "deagle.mdl", "awp.mdl" } public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_dictionary(DICTIONARY) register_impulse(201, "clcmd_menu") register_clcmd("say /menu", "clcmd_menu") register_event("CurWeapon","Hook_P_V_Model","be","1=1") #if defined HOOK_W_MODELS register_forward(FM_SetModel, "Hook_W_Model", 1) #endif } public plugin_precache() { for(new i = 0; i < sizeof(models_name); i++) { for(new j = 1; j < sizeof(menu_item_names); j++) { #if defined HOOK_P_MODELS new precache_p[256] format(precache_p, sizeof(precache_p), "models/%s/p_%s", menu_item_names[j][2], models_name[i]) precache_model(precache_p) #endif #if defined HOOK_V_MODELS new precache_v[256] format(precache_v, sizeof(precache_v), "models/%s/v_%s", menu_item_names[j][2], models_name[i]) precache_model(precache_v) #endif #if defined HOOK_W_MODELS new precache_w[256] format(precache_w, sizeof(precache_w), "models/%s/w_%s", menu_item_names[j][2], models_name[i]) precache_model(precache_w) #endif } } } public W_Model_Hook(ent, model[]) { if(!pev_valid(ent)) return FMRES_IGNORED new owner = pev(ent, pev_owner) for(new i = 0; i < sizeof(models_name); i++) { new old_w[256] format(old_w, sizeof(old_w), "models/w_%s", models_name[i]) new new_w[256] format(new_w, sizeof(new_w), "models/%s/w_%s", menu_item_names[weapon_select[owner]][2], models_name[i]) if(equali(model, old_w) || equali(model, new_w)) { if(weapon_select[owner] >= 1) engfunc(EngFunc_SetModel, ent, new_w) else engfunc(EngFunc_SetModel, ent, old_w) return FMRES_SUPERCEDE } } return FMRES_IGNORED } public Hook_P_V_Model(id) { if(!is_user_alive(id)) return PLUGIN_CONTINUE static v_model[32], p_model[32] pev(id, pev_viewmodel2, v_model, 31) pev(id, pev_weaponmodel2, p_model,31) for(new i = 0; i < sizeof(models_name); i++) { #if defined HOOK_V_MODELS new old_v[256] format(old_v, sizeof(old_v), "models/v_%s", models_name[i]) new new_v[256] format(new_v, sizeof(new_v), "models/%s/v_%s", menu_item_names[weapon_select[id]][2], models_name[i]) if(equali(v_model, old_v) || equali(v_model, new_v)) { if(weapon_select[id] >= 1) set_pev(id, pev_viewmodel2, new_v) else set_pev(id, pev_viewmodel2, old_v) break } #endif #if defined HOOK_P_MODELS new old_p[256] format(old_p, sizeof(old_p), "models/p_%s", models_name[i]) new new_p[256] format(new_p, sizeof(new_p), "models/%s/p_%s", menu_item_names[weapon_select[id]][2], models_name[i]) if(equali(p_model, old_p) || equali(p_model, new_p)) { if(weapon_select[id] >= 1) set_pev(id, pev_weaponmodel2, new_p) else set_pev(id, pev_weaponmodel2, old_p) break } #endif } return PLUGIN_CONTINUE } public clcmd_menu(id) { new i_data[64], String[121] formatex(String, charsmax(String), "\y[\wÄØŇ VÃŢØ\y - \dOnlyDust2 Skinrendszer\y]^n\rÖléseid: \y%d", Oles[id]); new menu = menu_create(String, "clcmd_menu_handler") for(new i = 0; i < sizeof(menu_item_names); i++) { new convert_num = str_to_num(menu_item_names[i][1]) num_to_str(i, i_data, sizeof(i_data)) if(Oles[id] < convert_num) { formatex(String, charsmax(String), "\w%s \y(\d%d \wÖlés\y)", menu_item_names[i][0], convert_num); menu_additem(menu, String, "1",0); } else { formatex(String, charsmax(String), "\w%s \y(\d%d \wKiválasztva\y)", menu_item_names[i][0]); menu_additem(menu, String, "2",0); } } menu_display(id, menu, 0) return PLUGIN_HANDLED } public clcmd_menu_handler(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } new data[64], szName[64] new access, callback menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback) new key = str_to_num(data) new convert_num = str_to_num(menu_item_names[key][1]) if(Oles[id] < convert_num) { ColorChat(id, GREEN, "^3[^4ÄØŇ VÃŢØ^3]^1 Ezt a csomagot ^3(^4%s^3) nem használhatod, mert nincs ^3%d^1 ölésed!", menu_item_names[key][0], convert_num) return PLUGIN_HANDLED } else { weapon_select[id] = key ColorChat(id, GREEN, "^3[^4ÄØŇ VÃŢØ^3]^1 Ezt a csomagot választottad: ^4%s!", menu_item_names[key][0], convert_num) Hook_P_V_Model(id) } return PLUGIN_CONTINUE } new const REGMENU[][][] = { { "\w[Státusz]: \dNem Regisztrált", "\w[Státusz]: \dKijelentkezve" } }; public Menu_Regisztracio(id) { new String[121], Nev[32]; get_user_name(id, Nev, 31); formatex(String, charsmax(String), "%s \r- \dRegisztráció^n%s", Prefix, REGMENU[0][Regisztralt[id]]); new menu = menu_create(String, "Menu_Regisztracio_h"); if(Regisztralt[id] == 0) { formatex(String, charsmax(String), "\wFelhasználónév: \r%s^n", regFh[id]); menu_additem(menu, String, "1",0); formatex(String, charsmax(String), "\wJelszó: \r%s^n", regJelszo[id]); menu_additem(menu, String, "2",0); } else { formatex(String, charsmax(String), "\rNév: \d%s^n\wTe már regisztráltál a szerverre.", Nev, regFh[id]); menu_additem(menu, String, "",0); } if(Beirtfelhasznalot[id] == true && Beirtjelszot[id] == true) { formatex(String, charsmax(String), "\yRegisztráció"); menu_additem(menu, String, "3",0); } menu_display(id, menu, 0); return PLUGIN_HANDLED; } public Menu_Regisztracio_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 1: { client_cmd(id, "messagemode Reg_Felhasznalonev"); } case 2: { client_cmd(id, "messagemode Reg_Jelszo"); } case 3: { Regisztralt[id] = 1; ColorChat(id, GREEN, "%s^1Sikeresen regisztráltál a szerverre.", C_Prefix); SQL_Update_Reg(id); } } } public Menu_Bejelentkezes(id) { new String[121]; formatex(String, charsmax(String), "%s \r- \dBejelentkezés^n%s", Prefix, REGMENU[0][Regisztralt[id]]); new menu = menu_create(String, "Menu_Bejelentkezes_h"); formatex(String, charsmax(String), "Felhasználónév: \r%s^n", Felhasznalonev[id]); menu_additem(menu, String, "1",0); formatex(String, charsmax(String), "Jelszó: \r%s^n", Jelszo[id]); menu_additem(menu, String, "2",0); formatex(String, charsmax(String), "\yBejelentkezés^n"); menu_additem(menu, String, "3",0); menu_display(id, menu, 0); return PLUGIN_HANDLED; } public Menu_Bejelentkezes_h(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return; } new data[9], szName[64], Nev[32]; get_user_name(id, Nev, 31); 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 1: { client_cmd(id, "messagemode Log_Felhasznalonev"); } case 2: { client_cmd(id, "messagemode Log_Jelszo"); } case 3: { if(equali(Jelszo[id], regJelszo[id]) && (equali(Felhasznalonev[id], regFh[id]))) { Belepve[id] = true; ColorChat(id, GREEN, "%s ^1Ãœdv újra itt ^4%s ^1!", C_Prefix, Nev); } else { ColorChat(id, GREEN, "%s ^1Hibás Felhasználónév vagy Jelszó.", C_Prefix); } } } } public Menu_Fo(id) { new String[121]; formatex(String, charsmax(String), "%s \r- \dRegisztrációs rendszer^n%s", Prefix, REGMENU[0][Regisztralt[id]]); new menu = menu_create(String, "Menu_Fo_h"); formatex(String, charsmax(String), "Regisztáció^n"); menu_additem(menu, String, "2",0); formatex(String, charsmax(String), "Bejelentkezés^n^n\d-------------------------------^n%s^n-------------------------------", Website); menu_additem(menu, String, "1",0); menu_display(id, menu, 0); return PLUGIN_HANDLED; } public Menu_Fo_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 1: Menu_Bejelentkezes(id); case 2: Menu_Regisztracio(id); } } public regisztralas_felh(id) { new adat[32]; new hosszusag = strlen(adat); read_args(adat, charsmax(adat)); remove_quotes(adat); if(hosszusag >= 5) { regFh[id] = adat; Beirtfelhasznalot[id] = true; Menu_Regisztracio(id); } else { regFh[id] = adat; Beirtfelhasznalot[id] = true; Menu_Regisztracio(id); } return PLUGIN_CONTINUE; } public regisztralas_jelszo(id) { new adat[32]; new hosszusag = strlen(adat); read_args(adat, charsmax(adat)); remove_quotes(adat); if(hosszusag >= 5) { regJelszo[id] = adat; Beirtjelszot[id] = true; Menu_Regisztracio(id); } else { regJelszo[id] = adat; Beirtjelszot[id] = true; Menu_Regisztracio(id); } return PLUGIN_CONTINUE; } public bejelentkezes_jelszo(id) { new adat[32]; new hosszusag = strlen(adat); read_args(adat, charsmax(adat)); remove_quotes(adat); if(hosszusag >= 5) { Jelszo[id] = adat; Beirtjelszot1[id] = true; Menu_Bejelentkezes(id); } else { Jelszo[id] = adat; Beirtjelszot1[id] = true; Menu_Bejelentkezes(id); } return PLUGIN_CONTINUE; } public bejelentkezes_felh(id) { new adat[32]; new hosszusag = strlen(adat); read_args(adat, charsmax(adat)); remove_quotes(adat); if(hosszusag >= 5) { Felhasznalonev[id] = adat; Beirtfelhasznalot1[id] = true; Menu_Bejelentkezes(id); } else { Felhasznalonev[id] = adat; Beirtfelhasznalot1[id] = true; Menu_Bejelentkezes(id); } return PLUGIN_CONTINUE; } public client_disconnect(id) { if(!is_user_bot(id)) { Update(id); } Belepve[id] = false; Beirtjelszot[id] = false; Beirtjelszot1[id] = false; Beirtfelhasznalot[id] = false; Beirtfelhasznalot1[id] = false; regFh[id][0] = EOS; regJelszo[id][0] = EOS; Felhasznalonev[id][0] = EOS; Jelszo[id][0] = EOS; Dollar[id] = 0; Oles[id] = 0; Regisztralt[id] = 0; copy(name[id], charsmax(name[]), ""); } public client_putinserver(id) { if(!is_user_bot(id)) { get_user_name(id, name[id], charsmax(name)); Load(id); } Belepve[id] = false; Felhasznalonev[id] = ""; Jelszo[id] = ""; } 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 `rtd_new`"); 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, "`Oles` int(11) NOT NULL,"); Len += formatex(Query[Len], charsmax(Query)-Len, "`Do` int(11) 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], Name[32]; get_user_name(id, Name, 31); Data[0] = id; formatex(Query, charsmax(Query), "SELECT * FROM `rtd_new` 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) { Dollar[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "do")); Oles[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Oles")); } else { Save(id); } } } public Save(id) { static Query[256]; formatex(Query, charsmax(Query), "INSERT INTO `rtd_new` (`Nev`) VALUES (^"%s^");", 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 `rtd_new` 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 Update(id) { static Query[10048]; new Len; Len += formatex(Query[Len], charsmax(Query), "UPDATE `rtd_new` SET do = ^"%i^", ",Dollar[id]); Len += formatex(Query[Len], charsmax(Query)-Len, "Oles = ^"%i^" WHERE Nev = ^"%s^";", Oles[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; } } public plugin_end() { SQL_FreeHandle(g_SqlTuple); }
tessek Most az a probléma hogy, elmenti az öléseket, de ha mapot váltok nem tölti be az öléseimet. Sql ben benne van. #include <amxmodx> #include <amxmisc> #include <fakemeta> #include <engine> #include <sqlx> #include <ColorChat> #define PLUGIN "Fegyver Skin Menu" #define VERSION "1.0" #define AUTHOR "RaZzoR" #define DICTIONARY "fegyver_skin_menu.txt" //#define HOOK_P_MODELS #define HOOK_V_MODELS //#define HOOK_W_MODELS new bool:Belepve[33], bool:Beirtjelszot[33], bool:Beirtjelszot1[33], bool:Beirtfelhasznalot[33], bool:Beirtfelhasznalot1[33], Regisztralt[33], Felhasznalonev[33][100], Jelszo[33][100], regJelszo[33][100], regFh[33][100], AutoB[33] new name[33][32], Dollar[33] new weapon_select[33] new const Website[] = "www.facebook.com/groups/rtdteam/"; //Menükben megjelenÅ‘ elérhetÅ‘ség new const SQLINFO[][] = { "-", "cheat462", "u6ETYtAJYNusu5e", "cheat462" }; new Oles[33] new Handle:g_SqlTuple; new Temp[192]; new const Prefix[] = "[Magyar \dOnlyDust2]"; //Menüben megjelenÅ‘ prefix new const C_Prefix[] = "^3[^4Magyar^3]"; //Chat Prefix new const menu_item_names[][][] = { { "Alap Csomag", "0", "" }, { "CSGO Csomag", "30", "magyard2/cs_skins" }, { "Bronz Csomag", "60", "magyard2/brz_skins" }, { "Ezüst Csomag", "110", "magyard2/ez_skins" }, { "Metál Csomag", "250", "magyard2/mt_skins" }, { "Arany Csomag", "460", "magyard2/ar_skins" }, { "Neon Csomag", "672", "magyard2/eo_skins" }, { "Rozsdás Csomag", "50", "magyard2/rz_skins" }, { "Karácsony Csomag", "1000", "magyard2/kr_skins" }, { "Tűz Csomag", "1300", "magyard2/tz_skins" }, { "Barcelona Csomag", "2000", "magyard2/br_skins" }, { "Szuperhős Csomag", "2500", "magyard2/sz_skins" }, { "Ultra Csomag", "3400", "magyard2/ul_skins" }, { "Sztár Csomag", "4000", "magyard2/szt_skins" }, { "Végzős Csomag", "10000", "magyard2/vip_skins" } } new const models_name[][] = { "ak47.mdl", "m4a1.mdl", "deagle.mdl", "awp.mdl" } public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_dictionary(DICTIONARY) register_impulse(201, "clcmd_menu") register_event("DeathMsg","death","a") register_clcmd("say /menu", "clcmd_menu") register_event("CurWeapon","Hook_P_V_Model","be","1=1") #if defined HOOK_W_MODELS register_forward(FM_SetModel, "Hook_W_Model", 1) #endif } public death(){ new killer = read_data(1) new victim = read_data(2) if(killer == victim) { return PLUGIN_HANDLED } Oles[killer]++ return PLUGIN_HANDLED } public plugin_precache() { for(new i = 0; i < sizeof(models_name); i++) { for(new j = 1; j < sizeof(menu_item_names); j++) { #if defined HOOK_P_MODELS new precache_p[256] format(precache_p, sizeof(precache_p), "models/%s/p_%s", menu_item_names[j][2], models_name[i]) precache_model(precache_p) #endif #if defined HOOK_V_MODELS new precache_v[256] format(precache_v, sizeof(precache_v), "models/%s/v_%s", menu_item_names[j][2], models_name[i]) precache_model(precache_v) #endif #if defined HOOK_W_MODELS new precache_w[256] format(precache_w, sizeof(precache_w), "models/%s/w_%s", menu_item_names[j][2], models_name[i]) precache_model(precache_w) #endif } } } public W_Model_Hook(ent, model[]) { if(!pev_valid(ent)) return FMRES_IGNORED new owner = pev(ent, pev_owner) for(new i = 0; i < sizeof(models_name); i++) { new old_w[256] format(old_w, sizeof(old_w), "models/w_%s", models_name[i]) new new_w[256] format(new_w, sizeof(new_w), "models/%s/w_%s", menu_item_names[weapon_select[owner]][2], models_name[i]) if(equali(model, old_w) || equali(model, new_w)) { if(weapon_select[owner] >= 1) engfunc(EngFunc_SetModel, ent, new_w) else engfunc(EngFunc_SetModel, ent, old_w) return FMRES_SUPERCEDE } } return FMRES_IGNORED } public Hook_P_V_Model(id) { if(!is_user_alive(id)) return PLUGIN_CONTINUE static v_model[32], p_model[32] pev(id, pev_viewmodel2, v_model, 31) pev(id, pev_weaponmodel2, p_model,31) for(new i = 0; i < sizeof(models_name); i++) { #if defined HOOK_V_MODELS new old_v[256] format(old_v, sizeof(old_v), "models/v_%s", models_name[i]) new new_v[256] format(new_v, sizeof(new_v), "models/%s/v_%s", menu_item_names[weapon_select[id]][2], models_name[i]) if(equali(v_model, old_v) || equali(v_model, new_v)) { if(weapon_select[id] >= 1) set_pev(id, pev_viewmodel2, new_v) else set_pev(id, pev_viewmodel2, old_v) break } #endif #if defined HOOK_P_MODELS new old_p[256] format(old_p, sizeof(old_p), "models/p_%s", models_name[i]) new new_p[256] format(new_p, sizeof(new_p), "models/%s/p_%s", menu_item_names[weapon_select[id]][2], models_name[i]) if(equali(p_model, old_p) || equali(p_model, new_p)) { if(weapon_select[id] >= 1) set_pev(id, pev_weaponmodel2, new_p) else set_pev(id, pev_weaponmodel2, old_p) break } #endif } return PLUGIN_CONTINUE } public clcmd_menu(id) { new menu_line[64], menu_newline[64], i_data[64] format(menu_line, charsmax(menu_line), "\w%L", id, "SKIN_MENU", Oles[id]) new menu = menu_create(menu_line, "clcmd_menu_handler") for(new i = 0; i < sizeof(menu_item_names); i++) { new convert_num = str_to_num(menu_item_names[i][1]) num_to_str(i, i_data, sizeof(i_data)) if(Oles[id] < convert_num) format(menu_newline, charsmax(menu_newline), "%L", id, "SKIN_ITEM1", menu_item_names[i][0], convert_num) else format(menu_newline, charsmax(menu_newline), "%L", id, "SKIN_ITEM2", menu_item_names[i][0]) menu_additem(menu, menu_newline, i_data, 0) } menu_display(id, menu, 0) return PLUGIN_HANDLED } public clcmd_menu_handler(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } new data[64], szName[64] new access, callback menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback) new key = str_to_num(data) new convert_num = str_to_num(menu_item_names[key][1]) if(Oles[id] < convert_num) { ColorChat(id, GREEN, "^3[^4ĐØŇ VÏŢØ^3]^1 Ezt a csomagot ^3(^4%s^3) nem használhatod, mert nincs ^3%d^1 ölésed!", menu_item_names[key][0], convert_num) return PLUGIN_HANDLED } else { weapon_select[id] = key ColorChat(id, GREEN, "^3[^4ĐØŇ VÏŢØ^3]^1 Ezt a csomagot választottad: ^4%s!", menu_item_names[key][0], convert_num) Hook_P_V_Model(id) } return PLUGIN_CONTINUE } new const REGMENU[][][] = { { "\w[Státusz]: \dNem Regisztrált", "\w[Státusz]: \dKijelentkezve" } }; public Menu_Regisztracio(id) { new String[121], Nev[32]; get_user_name(id, Nev, 31); formatex(String, charsmax(String), "%s \r- \dRegisztráció^n%s", Prefix, REGMENU[0][Regisztralt[id]]); new menu = menu_create(String, "Menu_Regisztracio_h"); if(Regisztralt[id] == 0) { formatex(String, charsmax(String), "\wFelhasználónév: \r%s^n", regFh[id]); menu_additem(menu, String, "1",0); formatex(String, charsmax(String), "\wJelszó: \r%s^n", regJelszo[id]); menu_additem(menu, String, "2",0); } else { formatex(String, charsmax(String), "\rNév: \d%s^n\wTe már regisztráltál a szerverre.", Nev, regFh[id]); menu_additem(menu, String, "",0); } if(Beirtfelhasznalot[id] == true && Beirtjelszot[id] == true) { formatex(String, charsmax(String), "\yRegisztráció"); menu_additem(menu, String, "3",0); } menu_display(id, menu, 0); return PLUGIN_HANDLED; } public Menu_Regisztracio_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 1: { client_cmd(id, "messagemode Reg_Felhasznalonev"); } case 2: { client_cmd(id, "messagemode Reg_Jelszo"); } case 3: { Regisztralt[id] = 1; ColorChat(id, GREEN, "%s^1Sikeresen regisztráltál a szerverre.", C_Prefix); SQL_Update_Reg(id); } } } public Menu_Bejelentkezes(id) { new String[121]; formatex(String, charsmax(String), "%s \r- \dBejelentkezés^n%s", Prefix, REGMENU[0][Regisztralt[id]]); new menu = menu_create(String, "Menu_Bejelentkezes_h"); formatex(String, charsmax(String), "Felhasználónév: \r%s^n", Felhasznalonev[id]); menu_additem(menu, String, "1",0); formatex(String, charsmax(String), "Jelszó: \r%s^n", Jelszo[id]); menu_additem(menu, String, "2",0); formatex(String, charsmax(String), "\yBejelentkezés^n"); menu_additem(menu, String, "3",0); menu_display(id, menu, 0); return PLUGIN_HANDLED; } public Menu_Bejelentkezes_h(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return; } new data[9], szName[64], Nev[32]; get_user_name(id, Nev, 31); 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 1: { client_cmd(id, "messagemode Log_Felhasznalonev"); } case 2: { client_cmd(id, "messagemode Log_Jelszo"); } case 3: { if(equali(Jelszo[id], regJelszo[id]) && (equali(Felhasznalonev[id], regFh[id]))) { Belepve[id] = true; ColorChat(id, GREEN, "%s ^1Ãœdv újra itt ^4%s ^1!", C_Prefix, Nev); } else { ColorChat(id, GREEN, "%s ^1Hibás Felhasználónév vagy Jelszó.", C_Prefix); } } } } public Menu_Fo(id) { new String[121]; formatex(String, charsmax(String), "%s \r- \dRegisztrációs rendszer^n%s", Prefix, REGMENU[0][Regisztralt[id]]); new menu = menu_create(String, "Menu_Fo_h"); formatex(String, charsmax(String), "Regisztáció^n"); menu_additem(menu, String, "2",0); formatex(String, charsmax(String), "Bejelentkezés^n^n\d-------------------------------^n%s^n-------------------------------", Website); menu_additem(menu, String, "1",0); menu_display(id, menu, 0); return PLUGIN_HANDLED; } public Menu_Fo_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 1: Menu_Bejelentkezes(id); case 2: Menu_Regisztracio(id); } } public regisztralas_felh(id) { new adat[32]; new hosszusag = strlen(adat); read_args(adat, charsmax(adat)); remove_quotes(adat); if(hosszusag >= 5) { regFh[id] = adat; Beirtfelhasznalot[id] = true; Menu_Regisztracio(id); } else { regFh[id] = adat; Beirtfelhasznalot[id] = true; Menu_Regisztracio(id); } return PLUGIN_CONTINUE; } public regisztralas_jelszo(id) { new adat[32]; new hosszusag = strlen(adat); read_args(adat, charsmax(adat)); remove_quotes(adat); if(hosszusag >= 5) { regJelszo[id] = adat; Beirtjelszot[id] = true; Menu_Regisztracio(id); } else { regJelszo[id] = adat; Beirtjelszot[id] = true; Menu_Regisztracio(id); } return PLUGIN_CONTINUE; } public bejelentkezes_jelszo(id) { new adat[32]; new hosszusag = strlen(adat); read_args(adat, charsmax(adat)); remove_quotes(adat); if(hosszusag >= 5) { Jelszo[id] = adat; Beirtjelszot1[id] = true; Menu_Bejelentkezes(id); } else { Jelszo[id] = adat; Beirtjelszot1[id] = true; Menu_Bejelentkezes(id); } return PLUGIN_CONTINUE; } public bejelentkezes_felh(id) { new adat[32]; new hosszusag = strlen(adat); read_args(adat, charsmax(adat)); remove_quotes(adat); if(hosszusag >= 5) { Felhasznalonev[id] = adat; Beirtfelhasznalot1[id] = true; Menu_Bejelentkezes(id); } else { Felhasznalonev[id] = adat; Beirtfelhasznalot1[id] = true; Menu_Bejelentkezes(id); } return PLUGIN_CONTINUE; } public client_disconnect(id) { if(!is_user_bot(id)) { Update(id); } Belepve[id] = false; Beirtjelszot[id] = false; Beirtjelszot1[id] = false; Beirtfelhasznalot[id] = false; Beirtfelhasznalot1[id] = false; regFh[id][0] = EOS; regJelszo[id][0] = EOS; Felhasznalonev[id][0] = EOS; Jelszo[id][0] = EOS; Dollar[id] = 0; Oles[id] = 0; Regisztralt[id] = 0; copy(name[id], charsmax(name[]), ""); } public client_putinserver(id) { if(!is_user_bot(id)) { get_user_name(id, name[id], charsmax(name)); Load(id); } Belepve[id] = false; Felhasznalonev[id] = ""; Jelszo[id] = ""; } 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 `icuka_a_bolt_elen_bemutatja`"); 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, "`Oles` int(11) NOT NULL,"); Len += formatex(Query[Len], charsmax(Query)-Len, "`Do` int(11) 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], Name[32]; get_user_name(id, Name, 31); Data[0] = id; formatex(Query, charsmax(Query), "SELECT * FROM `icuka_a_bolt_elen_bemutatja` 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) { Oles[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Oles")); } else { Save(id); } } } public Save(id) { static Query[256]; formatex(Query, charsmax(Query), "INSERT INTO `icuka_a_bolt_elen_bemutatja` (`Nev`) VALUES (^"%s^");", 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 `icuka_a_bolt_elen_bemutatja` 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 Update(id) { static Query[10048]; new Len; Len += formatex(Query[Len], charsmax(Query), "UPDATE `icuka_a_bolt_elen_bemutatja` SET do = ^"%i^", ",Dollar[id]); Len += formatex(Query[Len], charsmax(Query)-Len, "Oles = ^"%i^" WHERE Nev = ^"%s^";", Oles[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; } } public plugin_end() { SQL_FreeHandle(g_SqlTuple); }
Teszteld. #include <amxmodx> #include <amxmisc> #include <fakemeta> #include <engine> #include <sqlx> #include <ColorChat> #define PLUGIN "Fegyver Skin Menu" #define VERSION "1.0" #define AUTHOR "RaZzoR" #define DICTIONARY "fegyver_skin_menu.txt" //#define HOOK_P_MODELS #define HOOK_V_MODELS //#define HOOK_W_MODELS new bool:Belepve[33], bool:Beirtjelszot[33], bool:Beirtjelszot1[33], bool:Beirtfelhasznalot[33], bool:Beirtfelhasznalot1[33], Regisztralt[33], Felhasznalonev[33][100], Jelszo[33][100], regJelszo[33][100], regFh[33][100] new name[33][32], Dollar[33] new weapon_select[33] new const Website[] = "www.facebook.com/groups/rtdteam/"; //Menükben megjelenÅ‘ elérhetÅ‘ség new const SQLINFO[][] = { "-", "cheat462", "u6ETYtAJYNusu5e", "cheat462" }; new Oles[33] new Handle:g_SqlTuple; new const Prefix[] = "[Magyar \dOnlyDust2]"; //Menüben megjelenÅ‘ prefix new const C_Prefix[] = "^3[^4Magyar^3]"; //Chat Prefix new const menu_item_names[][][] = { { "Alap Csomag", "0", "" }, { "CSGO Csomag", "30", "magyard2/cs_skins" }, { "Bronz Csomag", "60", "magyard2/brz_skins" }, { "Ezüst Csomag", "110", "magyard2/ez_skins" }, { "Metál Csomag", "250", "magyard2/mt_skins" }, { "Arany Csomag", "460", "magyard2/ar_skins" }, { "Neon Csomag", "672", "magyard2/eo_skins" }, { "Rozsdás Csomag", "50", "magyard2/rz_skins" }, { "Karácsony Csomag", "1000", "magyard2/kr_skins" }, { "Tűz Csomag", "1300", "magyard2/tz_skins" }, { "Barcelona Csomag", "2000", "magyard2/br_skins" }, { "SzuperhÅ‘s Csomag", "2500", "magyard2/sz_skins" }, { "Ultra Csomag", "3400", "magyard2/ul_skins" }, { "Sztár Csomag", "4000", "magyard2/szt_skins" }, { "VégzÅ‘s Csomag", "10000", "magyard2/vip_skins" } } new const models_name[][] = { "ak47.mdl", "m4a1.mdl", "deagle.mdl", "awp.mdl" } public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_dictionary(DICTIONARY) register_impulse(201, "clcmd_menu") register_event("DeathMsg","death","a") register_clcmd("say /menu", "clcmd_menu") register_event("CurWeapon","Hook_P_V_Model","be","1=1") #if defined HOOK_W_MODELS register_forward(FM_SetModel, "Hook_W_Model", 1) #endif } public death(){ new killer = read_data(1) new victim = read_data(2) if(killer == victim) { return PLUGIN_HANDLED } Oles[killer]++ return PLUGIN_HANDLED } public plugin_precache() { for(new i = 0; i < sizeof(models_name); i++) { for(new j = 1; j < sizeof(menu_item_names); j++) { #if defined HOOK_P_MODELS new precache_p[256] format(precache_p, sizeof(precache_p), "models/%s/p_%s", menu_item_names[j][2], models_name[i]) precache_model(precache_p) #endif #if defined HOOK_V_MODELS new precache_v[256] format(precache_v, sizeof(precache_v), "models/%s/v_%s", menu_item_names[j][2], models_name[i]) precache_model(precache_v) #endif #if defined HOOK_W_MODELS new precache_w[256] format(precache_w, sizeof(precache_w), "models/%s/w_%s", menu_item_names[j][2], models_name[i]) precache_model(precache_w) #endif } } } public W_Model_Hook(ent, model[]) { if(!pev_valid(ent)) return FMRES_IGNORED new owner = pev(ent, pev_owner) for(new i = 0; i < sizeof(models_name); i++) { new old_w[256] format(old_w, sizeof(old_w), "models/w_%s", models_name[i]) new new_w[256] format(new_w, sizeof(new_w), "models/%s/w_%s", menu_item_names[weapon_select[owner]][2], models_name[i]) if(equali(model, old_w) || equali(model, new_w)) { if(weapon_select[owner] >= 1) engfunc(EngFunc_SetModel, ent, new_w) else engfunc(EngFunc_SetModel, ent, old_w) return FMRES_SUPERCEDE } } return FMRES_IGNORED } public Hook_P_V_Model(id) { if(!is_user_alive(id)) return PLUGIN_CONTINUE static v_model[32], p_model[32] pev(id, pev_viewmodel2, v_model, 31) pev(id, pev_weaponmodel2, p_model,31) for(new i = 0; i < sizeof(models_name); i++) { #if defined HOOK_V_MODELS new old_v[256] format(old_v, sizeof(old_v), "models/v_%s", models_name[i]) new new_v[256] format(new_v, sizeof(new_v), "models/%s/v_%s", menu_item_names[weapon_select[id]][2], models_name[i]) if(equali(v_model, old_v) || equali(v_model, new_v)) { if(weapon_select[id] >= 1) set_pev(id, pev_viewmodel2, new_v) else set_pev(id, pev_viewmodel2, old_v) break } #endif #if defined HOOK_P_MODELS new old_p[256] format(old_p, sizeof(old_p), "models/p_%s", models_name[i]) new new_p[256] format(new_p, sizeof(new_p), "models/%s/p_%s", menu_item_names[weapon_select[id]][2], models_name[i]) if(equali(p_model, old_p) || equali(p_model, new_p)) { if(weapon_select[id] >= 1) set_pev(id, pev_weaponmodel2, new_p) else set_pev(id, pev_weaponmodel2, old_p) break } #endif } return PLUGIN_CONTINUE } public clcmd_menu(id) { new menu_line[64], menu_newline[64], i_data[64] format(menu_line, charsmax(menu_line), "\w%L", id, "SKIN_MENU", Oles[id]) new menu = menu_create(menu_line, "clcmd_menu_handler") for(new i = 0; i < sizeof(menu_item_names); i++) { new convert_num = str_to_num(menu_item_names[i][1]) num_to_str(i, i_data, sizeof(i_data)) if(Oles[id] < convert_num) format(menu_newline, charsmax(menu_newline), "%L", id, "SKIN_ITEM1", menu_item_names[i][0], convert_num) else format(menu_newline, charsmax(menu_newline), "%L", id, "SKIN_ITEM2", menu_item_names[i][0]) menu_additem(menu, menu_newline, i_data, 0) } menu_display(id, menu, 0) return PLUGIN_HANDLED } public clcmd_menu_handler(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } new data[64], szName[64] new access, callback menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback) new key = str_to_num(data) new convert_num = str_to_num(menu_item_names[key][1]) if(Oles[id] < convert_num) { ColorChat(id, GREEN, "^3[^4ÄØŇ VÃŢØ^3]^1 Ezt a csomagot ^3(^4%s^3) nem használhatod, mert nincs ^3%d^1 ölésed!", menu_item_names[key][0], convert_num) return PLUGIN_HANDLED } else { weapon_select[id] = key ColorChat(id, GREEN, "^3[^4ÄØŇ VÃŢØ^3]^1 Ezt a csomagot választottad: ^4%s!", menu_item_names[key][0], convert_num) Hook_P_V_Model(id) } return PLUGIN_CONTINUE } new const REGMENU[][][] = { { "\w[Státusz]: \dNem Regisztrált", "\w[Státusz]: \dKijelentkezve" } }; public Menu_Regisztracio(id) { new String[121], Nev[32]; get_user_name(id, Nev, 31); formatex(String, charsmax(String), "%s \r- \dRegisztráció^n%s", Prefix, REGMENU[0][Regisztralt[id]]); new menu = menu_create(String, "Menu_Regisztracio_h"); if(Regisztralt[id] == 0) { formatex(String, charsmax(String), "\wFelhasználónév: \r%s^n", regFh[id]); menu_additem(menu, String, "1",0); formatex(String, charsmax(String), "\wJelszó: \r%s^n", regJelszo[id]); menu_additem(menu, String, "2",0); } else { formatex(String, charsmax(String), "\rNév: \d%s^n\wTe már regisztráltál a szerverre.", Nev, regFh[id]); menu_additem(menu, String, "",0); } if(Beirtfelhasznalot[id] == true && Beirtjelszot[id] == true) { formatex(String, charsmax(String), "\yRegisztráció"); menu_additem(menu, String, "3",0); } menu_display(id, menu, 0); return PLUGIN_HANDLED; } public Menu_Regisztracio_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 1: { client_cmd(id, "messagemode Reg_Felhasznalonev"); } case 2: { client_cmd(id, "messagemode Reg_Jelszo"); } case 3: { Regisztralt[id] = 1; ColorChat(id, GREEN, "%s^1Sikeresen regisztráltál a szerverre.", C_Prefix); SQL_Update_Reg(id); } } } public Menu_Bejelentkezes(id) { new String[121]; formatex(String, charsmax(String), "%s \r- \dBejelentkezés^n%s", Prefix, REGMENU[0][Regisztralt[id]]); new menu = menu_create(String, "Menu_Bejelentkezes_h"); formatex(String, charsmax(String), "Felhasználónév: \r%s^n", Felhasznalonev[id]); menu_additem(menu, String, "1",0); formatex(String, charsmax(String), "Jelszó: \r%s^n", Jelszo[id]); menu_additem(menu, String, "2",0); formatex(String, charsmax(String), "\yBejelentkezés^n"); menu_additem(menu, String, "3",0); menu_display(id, menu, 0); return PLUGIN_HANDLED; } public Menu_Bejelentkezes_h(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return; } new data[9], szName[64], Nev[32]; get_user_name(id, Nev, 31); 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 1: { client_cmd(id, "messagemode Log_Felhasznalonev"); } case 2: { client_cmd(id, "messagemode Log_Jelszo"); } case 3: { if(equali(Jelszo[id], regJelszo[id]) && (equali(Felhasznalonev[id], regFh[id]))) { Belepve[id] = true; ColorChat(id, GREEN, "%s ^1Ãœdv újra itt ^4%s ^1!", C_Prefix, Nev); } else { ColorChat(id, GREEN, "%s ^1Hibás Felhasználónév vagy Jelszó.", C_Prefix); } } } } public Menu_Fo(id) { new String[121]; formatex(String, charsmax(String), "%s \r- \dRegisztrációs rendszer^n%s", Prefix, REGMENU[0][Regisztralt[id]]); new menu = menu_create(String, "Menu_Fo_h"); formatex(String, charsmax(String), "Regisztáció^n"); menu_additem(menu, String, "2",0); formatex(String, charsmax(String), "Bejelentkezés^n^n\d-------------------------------^n%s^n-------------------------------", Website); menu_additem(menu, String, "1",0); menu_display(id, menu, 0); return PLUGIN_HANDLED; } public Menu_Fo_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 1: Menu_Bejelentkezes(id); case 2: Menu_Regisztracio(id); } } public regisztralas_felh(id) { new adat[32]; new hosszusag = strlen(adat); read_args(adat, charsmax(adat)); remove_quotes(adat); if(hosszusag >= 5) { regFh[id] = adat; Beirtfelhasznalot[id] = true; Menu_Regisztracio(id); } else { regFh[id] = adat; Beirtfelhasznalot[id] = true; Menu_Regisztracio(id); } return PLUGIN_CONTINUE; } public regisztralas_jelszo(id) { new adat[32]; new hosszusag = strlen(adat); read_args(adat, charsmax(adat)); remove_quotes(adat); if(hosszusag >= 5) { regJelszo[id] = adat; Beirtjelszot[id] = true; Menu_Regisztracio(id); } else { regJelszo[id] = adat; Beirtjelszot[id] = true; Menu_Regisztracio(id); } return PLUGIN_CONTINUE; } public bejelentkezes_jelszo(id) { new adat[32]; new hosszusag = strlen(adat); read_args(adat, charsmax(adat)); remove_quotes(adat); if(hosszusag >= 5) { Jelszo[id] = adat; Beirtjelszot1[id] = true; Menu_Bejelentkezes(id); } else { Jelszo[id] = adat; Beirtjelszot1[id] = true; Menu_Bejelentkezes(id); } return PLUGIN_CONTINUE; } public bejelentkezes_felh(id) { new adat[32]; new hosszusag = strlen(adat); read_args(adat, charsmax(adat)); remove_quotes(adat); if(hosszusag >= 5) { Felhasznalonev[id] = adat; Beirtfelhasznalot1[id] = true; Menu_Bejelentkezes(id); } else { Felhasznalonev[id] = adat; Beirtfelhasznalot1[id] = true; Menu_Bejelentkezes(id); } return PLUGIN_CONTINUE; } public client_disconnect(id) { if(!is_user_bot(id)) { Update(id); } Belepve[id] = false; Beirtjelszot[id] = false; Beirtjelszot1[id] = false; Beirtfelhasznalot[id] = false; Beirtfelhasznalot1[id] = false; regFh[id][0] = EOS; regJelszo[id][0] = EOS; Felhasznalonev[id][0] = EOS; Jelszo[id][0] = EOS; Dollar[id] = 0; Oles[id] = 0; Regisztralt[id] = 0; copy(name[id], charsmax(name[]), ""); } public client_putinserver(id) { if(!is_user_bot(id)) { get_user_name(id, name[id], charsmax(name)); Load(id); } Belepve[id] = false; Felhasznalonev[id] = ""; Jelszo[id] = ""; } 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 `icuka_a_bolt_elen_bemutatja`"); 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, "`Oles` int(11) NOT NULL,"); Len += formatex(Query[Len], charsmax(Query)-Len, "`Do` int(11) 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], Name[32]; get_user_name(id, Name, 31); Data[0] = id; formatex(Query, charsmax(Query), "SELECT * FROM `icuka_a_bolt_elen_bemutatja` 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) { Oles[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Oles")); Dollar[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Do")); } else { Save(id); } } } public Save(id) { static Query[256]; formatex(Query, charsmax(Query), "INSERT INTO `icuka_a_bolt_elen_bemutatja` (`Nev`) VALUES (^"%s^");", 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 `icuka_a_bolt_elen_bemutatja` 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 Update(id) { static Query[10048]; new Len; Len += formatex(Query[Len], charsmax(Query), "UPDATE `icuka_a_bolt_elen_bemutatja` SET do = ^"%i^", ",Dollar[id]); Len += formatex(Query[Len], charsmax(Query)-Len, "Oles = ^"%i^" WHERE Nev = ^"%s^";", Oles[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; } } public plugin_end() { SQL_FreeHandle(g_SqlTuple); }
|
|