hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.04.27. 18:07



Jelenlévő felhasználók

Jelenleg 534 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 533 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: Majestic-12 [Bot] az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 6 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Skin rendszer hiba.
HozzászólásElküldve: 2018.06.17. 01:14 
Offline
Jómunkásember
Avatar

Csatlakozott: 2017.10.14. 00:48
Hozzászólások: 304
Megköszönt másnak: 10 alkalommal
Megköszönték neki: 16 alkalommal
Helló valaki ezt kitudná nekem javítani? Meg azt hogy a menü megjelenjen?
AMX Mod X Compiler 1.8.3-manual
Copyright (c) 1997-2006 ITB CompuPhase
Copyright (c) 2004-2013 AMX Mod X Team

Modified for www.Freakz.ro / amx.freakz.ro

amxmodx_18597-fegyver_skin_menu.sma(173) : warning 217: loose indentation
amxmodx_18597-fegyver_skin_menu.sma(175) : error 029: invalid expression, assumed zero
amxmodx_18597-fegyver_skin_menu.sma(177) : error 017: undefined symbol "i"
amxmodx_18597-fegyver_skin_menu.sma(184) : warning 204: symbol is assigned a value that is never used: "menu_newline"
amxmodx_18597-fegyver_skin_menu.sma(184) : warning 204: symbol is assigned a value that is never used: "menu_line"
amxmodx_18597-fegyver_skin_menu.sma(201) : warning 217: loose indentation
amxmodx_18597-fegyver_skin_menu.sma(510) : warning 217: loose indentation
amxmodx_18597-fegyver_skin_menu.sma(563) : warning 203: symbol is never used: "AutoB"
amxmodx_18597-fegyver_skin_menu.sma(563) : warning 203: symbol is never used: "Temp"

2 Errors.
Compile failed!


Csatolmányok:
amxmodx_18597-fegyver_skin_menu.sma [16.66 KiB]
Letöltve 78 alkalommal.

_________________
2015.07.11 Konfigolás kezdete
2017.09.27 Első nagy játékosbázissal rendelkező szerver | RtD
2018.08.24 Második nagy játékosbázissal rendelkező szerver | Black Night
2018.11.16 Konfigolás befejezése
Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Skin rendszer hiba.
HozzászólásElküldve: 2018.06.17. 05:42 
Offline
Jómunkásember

Csatlakozott: 2014.10.30. 10:18
Hozzászólások: 468
Megköszönt másnak: 235 alkalommal
Megköszönték neki: 34 alkalommal
Itt volt némi gond a kapcsos zárójelekkel:

161. sor:
  1. public clcmd_menu(id) {
  2.     new menu_line[64], menu_newline[64], i_data[64], String[121]
  3.     formatex(String, charsmax(String), "\y[\wĐØŇ VÏŢØ\y - \dOnlyDust2 Skinrendszer\y]^n\rĂ–lĂ©seid: \y%d", Oles[id]);
  4.    
  5.     new menu = menu_create(String, "clcmd_menu_handler")
  6.    
  7.     for(new  i = 0; i < sizeof(menu_item_names); i++) {
  8.         new convert_num = str_to_num(menu_item_names[i][1])
  9.         num_to_str(i, i_data, sizeof(i_data))
  10.        
  11.         if(Oles[id] < convert_num)
  12.         {
  13.             formatex(String, charsmax(String), "\w%s \y(\d%d \wĂ–lĂ©s\y)", menu_item_names[i][0], convert_num);
  14.             menu_additem(menu, String, "1",0);
  15.         }else
  16.             {
  17.             formatex(String, charsmax(String), "\w%s \y(\d%d \wKiválasztva\y)", menu_item_names[i][0]);
  18.             menu_additem(menu, String, "2",0);
  19.             }
  20.     }
  21.     menu_display(id, menu, 0)
  22.    
  23.     return PLUGIN_HANDLED
  24. }


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Skin rendszer hiba.
HozzászólásElküldve: 2018.06.17. 22:50 
Offline
Jómunkásember
Avatar

Csatlakozott: 2017.10.14. 00:48
Hozzászólások: 304
Megköszönt másnak: 10 alkalommal
Megköszönték neki: 16 alkalommal
jokypapa írta:
Itt volt némi gond a kapcsos zárójelekkel:

161. sor:
  1. public clcmd_menu(id) {
  2.     new menu_line[64], menu_newline[64], i_data[64], String[121]
  3.     formatex(String, charsmax(String), "\y[\wĐØŇ VÏŢØ\y - \dOnlyDust2 Skinrendszer\y]^n\rĂ–lĂ©seid: \y%d", Oles[id]);
  4.    
  5.     new menu = menu_create(String, "clcmd_menu_handler")
  6.    
  7.     for(new  i = 0; i < sizeof(menu_item_names); i++) {
  8.         new convert_num = str_to_num(menu_item_names[i][1])
  9.         num_to_str(i, i_data, sizeof(i_data))
  10.        
  11.         if(Oles[id] < convert_num)
  12.         {
  13.             formatex(String, charsmax(String), "\w%s \y(\d%d \wĂ–lĂ©s\y)", menu_item_names[i][0], convert_num);
  14.             menu_additem(menu, String, "1",0);
  15.         }else
  16.             {
  17.             formatex(String, charsmax(String), "\w%s \y(\d%d \wKiválasztva\y)", menu_item_names[i][0]);
  18.             menu_additem(menu, String, "2",0);
  19.             }
  20.     }
  21.     menu_display(id, menu, 0)
  22.    
  23.     return PLUGIN_HANDLED
  24. }


Most, nem jön elő a menü.

_________________
2015.07.11 Konfigolás kezdete
2017.09.27 Első nagy játékosbázissal rendelkező szerver | RtD
2018.08.24 Második nagy játékosbázissal rendelkező szerver | Black Night
2018.11.16 Konfigolás befejezése


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Skin rendszer hiba.
HozzászólásElküldve: 2018.06.17. 23:17 
Offline
Tud valamit
Avatar

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
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <fakemeta>
  4. #include <engine>
  5. #include <sqlx>
  6. #include <ColorChat>
  7.  
  8. #define PLUGIN "Fegyver Skin Menu"
  9. #define VERSION "1.0"
  10. #define AUTHOR "RaZzoR"
  11.  
  12. #define DICTIONARY "fegyver_skin_menu.txt"
  13.  
  14. //#define HOOK_P_MODELS
  15. #define HOOK_V_MODELS
  16. //#define HOOK_W_MODELS
  17. 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]
  18. new name[33][32], Dollar[33]
  19. new weapon_select[33]
  20. new const Website[] = "www.facebook.com/groups/rtdteam/"; //Menükben megjelenő elérhetőség
  21. new const SQLINFO[][] = { "-", "cheat462", "-", "cheat462" };
  22. new Oles[33]
  23. new Handle:g_SqlTuple;
  24. new const Prefix[] = "[Magyar \dOnlyDust2]"; //Menüben megjelenő prefix
  25. new const C_Prefix[] = "^3[^4Magyar^3]"; //Chat Prefix
  26.  
  27. new const menu_item_names[][][] = {
  28.     { "Alap Csomag",    "0",    ""      },
  29.     { "CSGO Csomag",        "30",   "magyard2/cs_skins" },
  30.     { "Bronz Csomag",       "60",   "magyard2/brz_skins" },
  31.     { "Ezüst Csomag",        "110""magyard2/ez_skins" },
  32.     { "Metál Csomag",        "250""magyard2/mt_skins" },
  33.     { "Arany Csomag",       "460""magyard2/ar_skins" },
  34.     { "Neon Csomag",        "672""magyard2/eo_skins" },
  35.     { "Rozsdás Csomag",      "50",   "magyard2/rz_skins" },
  36.     { "Karácsony Csomag",        "1000", "magyard2/kr_skins" },
  37.     { "Tűz Csomag",      "1300", "magyard2/tz_skins" },
  38.     { "Barcelona Csomag",       "2000", "magyard2/br_skins" },
  39.     { "SzuperhÅ‘s Csomag",       "2500", "magyard2/sz_skins" },
  40.     { "Ultra Csomag",       "3400", "magyard2/ul_skins" },
  41.     { "Sztár Csomag",        "4000", "magyard2/szt_skins" },
  42.     { "VégzÅ‘s Csomag",       "10000",    "magyard2/vip_skins" }
  43.    
  44. }
  45.  
  46. new const models_name[][] = {
  47.     "ak47.mdl",                  
  48.     "m4a1.mdl",                    
  49.     "deagle.mdl",
  50.     "awp.mdl"
  51. }
  52.  
  53. public plugin_init() {
  54.     register_plugin(PLUGIN, VERSION, AUTHOR)
  55.    
  56.     register_dictionary(DICTIONARY)
  57.    
  58.     register_impulse(201, "clcmd_menu")
  59.     register_clcmd("say /menu", "clcmd_menu")
  60.     register_event("CurWeapon","Hook_P_V_Model","be","1=1")
  61.    
  62.     #if defined HOOK_W_MODELS
  63.     register_forward(FM_SetModel, "Hook_W_Model", 1)
  64.     #endif
  65. }
  66.  
  67. public plugin_precache() {
  68.     for(new i = 0; i < sizeof(models_name); i++) {
  69.         for(new j = 1; j < sizeof(menu_item_names); j++) {
  70.             #if defined HOOK_P_MODELS
  71.             new precache_p[256]
  72.             format(precache_p, sizeof(precache_p), "models/%s/p_%s", menu_item_names[j][2], models_name[i])
  73.            
  74.             precache_model(precache_p)
  75.             #endif
  76.            
  77.             #if defined HOOK_V_MODELS
  78.             new precache_v[256]
  79.             format(precache_v, sizeof(precache_v), "models/%s/v_%s", menu_item_names[j][2], models_name[i])
  80.            
  81.             precache_model(precache_v)
  82.             #endif
  83.            
  84.             #if defined HOOK_W_MODELS
  85.             new precache_w[256]
  86.             format(precache_w, sizeof(precache_w), "models/%s/w_%s", menu_item_names[j][2], models_name[i])
  87.            
  88.             precache_model(precache_w)
  89.             #endif
  90.         }
  91.     }
  92. }
  93.  
  94. public W_Model_Hook(ent, model[]) {
  95.     if(!pev_valid(ent)) return FMRES_IGNORED
  96.    
  97.     new owner = pev(ent, pev_owner)
  98.    
  99.     for(new i = 0; i < sizeof(models_name); i++) {
  100.         new old_w[256]
  101.         format(old_w, sizeof(old_w), "models/w_%s", models_name[i])
  102.        
  103.         new new_w[256]         
  104.         format(new_w, sizeof(new_w), "models/%s/w_%s", menu_item_names[weapon_select[owner]][2], models_name[i])
  105.        
  106.         if(equali(model, old_w) || equali(model, new_w)) {
  107.             if(weapon_select[owner] >= 1) engfunc(EngFunc_SetModel, ent, new_w)
  108.             else engfunc(EngFunc_SetModel, ent, old_w)
  109.            
  110.             return FMRES_SUPERCEDE
  111.         }
  112.     }
  113.    
  114.     return FMRES_IGNORED
  115. }
  116.  
  117. public Hook_P_V_Model(id) {
  118.     if(!is_user_alive(id))
  119.         return PLUGIN_CONTINUE
  120.    
  121.     static v_model[32], p_model[32]
  122.     pev(id, pev_viewmodel2, v_model, 31)
  123.     pev(id, pev_weaponmodel2, p_model,31)
  124.    
  125.     for(new i = 0; i < sizeof(models_name); i++) {
  126.         #if defined HOOK_V_MODELS
  127.         new old_v[256]
  128.         format(old_v, sizeof(old_v), "models/v_%s", models_name[i])
  129.        
  130.         new new_v[256]
  131.         format(new_v, sizeof(new_v), "models/%s/v_%s", menu_item_names[weapon_select[id]][2], models_name[i])
  132.        
  133.         if(equali(v_model, old_v) || equali(v_model, new_v)) {
  134.             if(weapon_select[id] >= 1) set_pev(id, pev_viewmodel2, new_v)          
  135.             else set_pev(id, pev_viewmodel2, old_v)
  136.            
  137.             break
  138.         }
  139.         #endif
  140.        
  141.         #if defined HOOK_P_MODELS
  142.         new old_p[256]
  143.         format(old_p, sizeof(old_p), "models/p_%s", models_name[i])
  144.        
  145.         new new_p[256]
  146.         format(new_p, sizeof(new_p), "models/%s/p_%s", menu_item_names[weapon_select[id]][2], models_name[i])
  147.        
  148.         if(equali(p_model, old_p) || equali(p_model, new_p)) {
  149.             if(weapon_select[id] >= 1) set_pev(id, pev_weaponmodel2, new_p)    
  150.             else set_pev(id, pev_weaponmodel2, old_p)
  151.            
  152.             break
  153.         }
  154.         #endif
  155.     }
  156.    
  157.     return PLUGIN_CONTINUE
  158. }
  159.  
  160. public clcmd_menu(id) {
  161.     new i_data[64], String[121]
  162.     formatex(String, charsmax(String), "\y[\wĐØŇ VÏŢØ\y - \dOnlyDust2 Skinrendszer\y]^n\rÖléseid: \y%d", Oles[id]);
  163.    
  164.     new menu = menu_create(String, "clcmd_menu_handler")
  165.    
  166.     for(new  i = 0; i < sizeof(menu_item_names); i++) {
  167.         new convert_num = str_to_num(menu_item_names[i][1])
  168.         num_to_str(i, i_data, sizeof(i_data))
  169.        
  170.         if(Oles[id] < convert_num) {
  171.             formatex(String, charsmax(String), "\w%s \y(\d%d \wÖlés\y)", menu_item_names[i][0], convert_num);
  172.             menu_additem(menu, String, "1",0);
  173.         }
  174.         else
  175.         {
  176.             formatex(String, charsmax(String), "\w%s \y(\d%d \wKiválasztva\y)", menu_item_names[i][0]);
  177.             menu_additem(menu, String, "2",0);
  178.         }
  179.     }
  180.    
  181.     menu_display(id, menu, 0)
  182.    
  183.     return PLUGIN_HANDLED
  184. }
  185. public clcmd_menu_handler(id, menu, item) {
  186.     if(item == MENU_EXIT) {
  187.         menu_destroy(menu)
  188.         return PLUGIN_HANDLED
  189.     }
  190.    
  191.     new data[64], szName[64]
  192.     new access, callback
  193.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  194.    
  195.     new key = str_to_num(data)
  196.     new convert_num = str_to_num(menu_item_names[key][1])
  197.    
  198.     if(Oles[id] < convert_num) {
  199.         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)
  200.         return PLUGIN_HANDLED
  201.     }
  202.    
  203.     else {
  204.         weapon_select[id] = key
  205.         ColorChat(id, GREEN, "^3[^4ĐØŇ VÏŢØ^3]^1 Ezt a csomagot választottad: ^4%s!", menu_item_names[key][0], convert_num)
  206.         Hook_P_V_Model(id)
  207.     }
  208.    
  209.     return PLUGIN_CONTINUE
  210. }
  211. new const REGMENU[][][] = { { "\w[Státusz]: \dNem Regisztrált", "\w[Státusz]: \dKijelentkezve" } };
  212. public Menu_Regisztracio(id)
  213. {
  214.     new String[121], Nev[32];
  215.     get_user_name(id, Nev, 31);
  216.     formatex(String, charsmax(String), "%s \r- \dRegisztráció^n%s", Prefix, REGMENU[0][Regisztralt[id]]);
  217.     new menu = menu_create(String, "Menu_Regisztracio_h");
  218.    
  219.     if(Regisztralt[id] == 0)
  220.     {
  221.         formatex(String, charsmax(String), "\wFelhasználónév: \r%s^n", regFh[id]);
  222.         menu_additem(menu, String, "1",0);
  223.         formatex(String, charsmax(String), "\wJelszó: \r%s^n", regJelszo[id]);
  224.         menu_additem(menu, String, "2",0);
  225.     }
  226.     else
  227.     {
  228.         formatex(String, charsmax(String), "\rNév: \d%s^n\wTe már regisztráltál a szerverre.", Nev, regFh[id]);
  229.         menu_additem(menu, String, "",0);
  230.     }
  231.    
  232.     if(Beirtfelhasznalot[id] == true && Beirtjelszot[id] == true)
  233.     {
  234.         formatex(String, charsmax(String), "\yRegisztráció");
  235.         menu_additem(menu, String, "3",0);
  236.     }
  237.    
  238.     menu_display(id, menu, 0);
  239.     return PLUGIN_HANDLED;
  240. }
  241. public Menu_Regisztracio_h(id, menu, item)
  242. {
  243.     if(item == MENU_EXIT)
  244.     {
  245.         menu_destroy(menu);
  246.         return;
  247.     }
  248.    
  249.     new data[9], szName[64];
  250.     new access, callback;
  251.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  252.     new key = str_to_num(data);
  253.    
  254.     switch(key)
  255.     {
  256.         case 1:
  257.         {
  258.             client_cmd(id, "messagemode Reg_Felhasznalonev");
  259.         }
  260.         case 2:
  261.         {
  262.             client_cmd(id, "messagemode Reg_Jelszo");
  263.         }
  264.         case 3:
  265.         {
  266.             Regisztralt[id] = 1;
  267.             ColorChat(id, GREEN, "%s^1Sikeresen regisztráltál a szerverre.", C_Prefix);
  268.             SQL_Update_Reg(id);
  269.         }
  270.     }
  271. }
  272. public Menu_Bejelentkezes(id)
  273. {
  274.     new String[121];
  275.     formatex(String, charsmax(String), "%s \r- \dBejelentkezés^n%s", Prefix, REGMENU[0][Regisztralt[id]]);
  276.     new menu = menu_create(String, "Menu_Bejelentkezes_h");
  277.    
  278.     formatex(String, charsmax(String), "Felhasználónév: \r%s^n", Felhasznalonev[id]);
  279.     menu_additem(menu, String, "1",0);
  280.     formatex(String, charsmax(String), "Jelszó: \r%s^n", Jelszo[id]);
  281.     menu_additem(menu, String, "2",0);
  282.    
  283.     formatex(String, charsmax(String), "\yBejelentkezés^n");
  284.     menu_additem(menu, String, "3",0);
  285.    
  286.     menu_display(id, menu, 0);
  287.     return PLUGIN_HANDLED;
  288. }
  289. public Menu_Bejelentkezes_h(id, menu, item)
  290. {
  291.     if(item == MENU_EXIT)
  292.     {
  293.         menu_destroy(menu);
  294.         return;
  295.     }
  296.    
  297.     new data[9], szName[64], Nev[32];
  298.     get_user_name(id, Nev, 31);
  299.     new access, callback;
  300.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  301.     new key = str_to_num(data);
  302.    
  303.     switch(key)
  304.     {
  305.         case 1:
  306.         {
  307.             client_cmd(id, "messagemode Log_Felhasznalonev");
  308.         }
  309.         case 2:
  310.         {
  311.             client_cmd(id, "messagemode Log_Jelszo");
  312.         }
  313.         case 3:
  314.         {
  315.             if(equali(Jelszo[id], regJelszo[id]) && (equali(Felhasznalonev[id], regFh[id])))
  316.             {
  317.                 Belepve[id] = true;
  318.                 ColorChat(id, GREEN, "%s ^1Ãœdv újra itt ^4%s ^1!", C_Prefix, Nev);
  319.             }
  320.             else
  321.             {
  322.                 ColorChat(id, GREEN, "%s ^1Hibás Felhasználónév vagy Jelszó.", C_Prefix);
  323.             }
  324.         }
  325.     }
  326. }
  327. public Menu_Fo(id)
  328. {
  329.     new String[121];
  330.     formatex(String, charsmax(String), "%s \r- \dRegisztrációs rendszer^n%s", Prefix, REGMENU[0][Regisztralt[id]]);
  331.     new menu = menu_create(String, "Menu_Fo_h");
  332.    
  333.     formatex(String, charsmax(String), "Regisztáció^n");
  334.     menu_additem(menu, String, "2",0);
  335.     formatex(String, charsmax(String), "Bejelentkezés^n^n\d-------------------------------^n%s^n-------------------------------", Website);
  336.     menu_additem(menu, String, "1",0);
  337.    
  338.     menu_display(id, menu, 0);
  339.     return PLUGIN_HANDLED;
  340. }
  341. public Menu_Fo_h(id, menu, item)
  342. {
  343.     if(item == MENU_EXIT)
  344.     {
  345.         menu_destroy(menu);
  346.         return;
  347.     }
  348.    
  349.     new data[9], szName[64];
  350.     new access, callback;
  351.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  352.     new key = str_to_num(data);
  353.    
  354.     switch(key)
  355.     {
  356.         case 1: Menu_Bejelentkezes(id);
  357.             case 2: Menu_Regisztracio(id);
  358.         }
  359. }
  360. public regisztralas_felh(id)
  361. {
  362.     new adat[32];
  363.     new hosszusag = strlen(adat);
  364.     read_args(adat, charsmax(adat));
  365.     remove_quotes(adat);
  366.     if(hosszusag >= 5)
  367.     {
  368.         regFh[id] = adat;
  369.         Beirtfelhasznalot[id] = true;
  370.         Menu_Regisztracio(id);
  371.     }
  372.     else
  373.     {
  374.         regFh[id] = adat;
  375.         Beirtfelhasznalot[id] = true;
  376.         Menu_Regisztracio(id);
  377.     }
  378.     return PLUGIN_CONTINUE;
  379. }
  380. public regisztralas_jelszo(id)
  381. {
  382.     new adat[32];
  383.     new hosszusag = strlen(adat);
  384.     read_args(adat, charsmax(adat));
  385.     remove_quotes(adat);
  386.     if(hosszusag >= 5) {
  387.         regJelszo[id] = adat;
  388.         Beirtjelszot[id] = true;
  389.         Menu_Regisztracio(id);
  390.     }
  391.     else {
  392.         regJelszo[id] = adat;
  393.         Beirtjelszot[id] = true;
  394.         Menu_Regisztracio(id);
  395.     }
  396.     return PLUGIN_CONTINUE;
  397. }
  398. public bejelentkezes_jelszo(id)
  399. {
  400.     new adat[32];
  401.     new hosszusag = strlen(adat);
  402.     read_args(adat, charsmax(adat));
  403.     remove_quotes(adat);
  404.     if(hosszusag >= 5) {
  405.         Jelszo[id] = adat;
  406.         Beirtjelszot1[id] = true;
  407.         Menu_Bejelentkezes(id);
  408.     }
  409.     else {
  410.         Jelszo[id] = adat;
  411.         Beirtjelszot1[id] = true;
  412.         Menu_Bejelentkezes(id);
  413.     }
  414.     return PLUGIN_CONTINUE;
  415. }
  416. public bejelentkezes_felh(id)
  417. {
  418.     new adat[32];
  419.     new hosszusag = strlen(adat);
  420.     read_args(adat, charsmax(adat));
  421.     remove_quotes(adat);
  422.     if(hosszusag >= 5)
  423.     {
  424.         Felhasznalonev[id] = adat;
  425.         Beirtfelhasznalot1[id] = true;
  426.         Menu_Bejelentkezes(id);
  427.     }
  428.     else
  429.     {
  430.         Felhasznalonev[id] = adat;
  431.         Beirtfelhasznalot1[id] = true;
  432.         Menu_Bejelentkezes(id);
  433.     }
  434.     return PLUGIN_CONTINUE;
  435. }
  436. public client_disconnect(id)
  437. {
  438.     if(!is_user_bot(id))
  439.     {
  440.         Update(id);
  441.     }
  442.     Belepve[id] = false;
  443.     Beirtjelszot[id] = false;
  444.     Beirtjelszot1[id] = false;
  445.     Beirtfelhasznalot[id] = false;
  446.     Beirtfelhasznalot1[id] = false;
  447.    
  448.     regFh[id][0] = EOS;
  449.     regJelszo[id][0] = EOS;
  450.     Felhasznalonev[id][0] = EOS;
  451.     Jelszo[id][0] = EOS;
  452.    
  453.     Dollar[id] = 0;
  454.     Oles[id] = 0;
  455.     Regisztralt[id] = 0;
  456.    
  457.     copy(name[id], charsmax(name[]), "");
  458. }
  459. public client_putinserver(id)
  460. {
  461.     if(!is_user_bot(id))
  462.     {
  463.         get_user_name(id, name[id], charsmax(name));
  464.         Load(id);
  465.     }
  466.     Belepve[id] = false;
  467.     Felhasznalonev[id] = "";
  468.     Jelszo[id] = "";
  469. }
  470. public plugin_cfg()
  471. {
  472.     g_SqlTuple = SQL_MakeDbTuple(SQLINFO[0], SQLINFO[1], SQLINFO[2], SQLINFO[3]);
  473.    
  474.     static Query[10048];
  475.     new Len;
  476.    
  477.     Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS `rtd_new`");
  478.     Len += formatex(Query[Len], charsmax(Query)-Len, "(`Nev` varchar(32) NOT NULL, ");
  479.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Felhasznalonev` varchar(32) NOT NULL,");
  480.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Jelszo` varchar(32) NOT NULL,");
  481.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Regisztralt` int(11) NOT NULL,");
  482.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Oles` int(11) NOT NULL,");
  483.    
  484.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Do` int(11) NOT NULL, `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)");
  485.    
  486.     SQL_ThreadQuery(g_SqlTuple, "createTableThread", Query);
  487. }
  488. public Load(id) {
  489.     static Query[10048];
  490.     new Data[1], Name[32];
  491.     get_user_name(id, Name, 31);
  492.     Data[0] = id;
  493.    
  494.     formatex(Query, charsmax(Query), "SELECT * FROM `rtd_new` WHERE Nev = ^"%s^";", name[id]);
  495.     SQL_ThreadQuery(g_SqlTuple, "QuerySelectData", Query, Data, 1);
  496. }
  497. public QuerySelectData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  498.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  499.         log_amx("%s", Error);
  500.         return;
  501.     }
  502.     else {
  503.         new id = Data[0];
  504.        
  505.         if(SQL_NumRows(Query) > 0) {
  506.             Dollar[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "do"));
  507.            
  508.            
  509.             Oles[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Oles"));
  510.         }
  511.         else
  512.         {
  513.             Save(id);
  514.         }
  515.     }
  516. }
  517. public Save(id)
  518. {
  519.     static Query[256];
  520.    
  521.     formatex(Query, charsmax(Query), "INSERT INTO `rtd_new` (`Nev`) VALUES (^"%s^");", name[id]);
  522.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
  523. }
  524. public SQL_Update_Reg(id)
  525. {
  526.     static Query[10048];
  527.     new Len;
  528.    
  529.     Len += formatex(Query[Len], charsmax(Query), "UPDATE `rtd_new` SET Felhasznalonev = ^"%s^", ", regFh[id]);
  530.     Len += formatex(Query[Len], charsmax(Query)-Len, "Jelszo = ^"%s^", ", regJelszo[id]);
  531.     Len += formatex(Query[Len], charsmax(Query)-Len, "Regisztralt = ^"%i^" WHERE Nev = ^"%s^";", Regisztralt[id], name[id]);
  532.    
  533.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
  534. }
  535. public Update(id)
  536. {
  537.     static Query[10048];
  538.     new Len;
  539.    
  540.     Len += formatex(Query[Len], charsmax(Query), "UPDATE `rtd_new` SET do = ^"%i^", ",Dollar[id]);
  541.    
  542.     Len += formatex(Query[Len], charsmax(Query)-Len, "Oles = ^"%i^" WHERE Nev = ^"%s^";", Oles[id], name[id]);
  543.    
  544.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
  545. }
  546. public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  547.     if(FailState == TQUERY_CONNECT_FAILED)
  548.         set_fail_state("[HIBA*] NEM TUDTAM CSATLAKOZNI AZ ADATBAZISHOZ!");
  549.     else if(FailState == TQUERY_QUERY_FAILED)
  550.         set_fail_state("Query Error");
  551.     if(Errcode)
  552.         log_amx("[HIBA*] HIBAT DOBTAM: %s",Error);
  553. }
  554. public QuerySetData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  555.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  556.         log_amx("%s", Error);
  557.         return;
  558.     }
  559. }
  560. public plugin_end() {
  561.     SQL_FreeHandle(g_SqlTuple);
  562. }


tessek


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Skin rendszer hiba.
HozzászólásElküldve: 2018.06.18. 00:32 
Offline
Jómunkásember
Avatar

Csatlakozott: 2017.10.14. 00:48
Hozzászólások: 304
Megköszönt másnak: 10 alkalommal
Megköszönték neki: 16 alkalommal
Supra írta:
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <fakemeta>
  4. #include <engine>
  5. #include <sqlx>
  6. #include <ColorChat>
  7.  
  8. #define PLUGIN "Fegyver Skin Menu"
  9. #define VERSION "1.0"
  10. #define AUTHOR "RaZzoR"
  11.  
  12. #define DICTIONARY "fegyver_skin_menu.txt"
  13.  
  14. //#define HOOK_P_MODELS
  15. #define HOOK_V_MODELS
  16. //#define HOOK_W_MODELS
  17. 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]
  18. new name[33][32], Dollar[33]
  19. new weapon_select[33]
  20. new const Website[] = "www.facebook.com/groups/rtdteam/"; //Menükben megjelenő elérhetőség
  21. new const SQLINFO[][] = { "-", "cheat462", "-", "cheat462" };
  22. new Oles[33]
  23. new Handle:g_SqlTuple;
  24. new const Prefix[] = "[Magyar \dOnlyDust2]"; //Menüben megjelenő prefix
  25. new const C_Prefix[] = "^3[^4Magyar^3]"; //Chat Prefix
  26.  
  27. new const menu_item_names[][][] = {
  28.     { "Alap Csomag",    "0",    ""      },
  29.     { "CSGO Csomag",        "30",   "magyard2/cs_skins" },
  30.     { "Bronz Csomag",       "60",   "magyard2/brz_skins" },
  31.     { "Ezüst Csomag",        "110""magyard2/ez_skins" },
  32.     { "Metál Csomag",        "250""magyard2/mt_skins" },
  33.     { "Arany Csomag",       "460""magyard2/ar_skins" },
  34.     { "Neon Csomag",        "672""magyard2/eo_skins" },
  35.     { "Rozsdás Csomag",      "50",   "magyard2/rz_skins" },
  36.     { "Karácsony Csomag",        "1000", "magyard2/kr_skins" },
  37.     { "Tűz Csomag",      "1300", "magyard2/tz_skins" },
  38.     { "Barcelona Csomag",       "2000", "magyard2/br_skins" },
  39.     { "SzuperhÅ‘s Csomag",       "2500", "magyard2/sz_skins" },
  40.     { "Ultra Csomag",       "3400", "magyard2/ul_skins" },
  41.     { "Sztár Csomag",        "4000", "magyard2/szt_skins" },
  42.     { "VégzÅ‘s Csomag",       "10000",    "magyard2/vip_skins" }
  43.    
  44. }
  45.  
  46. new const models_name[][] = {
  47.     "ak47.mdl",                  
  48.     "m4a1.mdl",                    
  49.     "deagle.mdl",
  50.     "awp.mdl"
  51. }
  52.  
  53. public plugin_init() {
  54.     register_plugin(PLUGIN, VERSION, AUTHOR)
  55.    
  56.     register_dictionary(DICTIONARY)
  57.    
  58.     register_impulse(201, "clcmd_menu")
  59.     register_clcmd("say /menu", "clcmd_menu")
  60.     register_event("CurWeapon","Hook_P_V_Model","be","1=1")
  61.    
  62.     #if defined HOOK_W_MODELS
  63.     register_forward(FM_SetModel, "Hook_W_Model", 1)
  64.     #endif
  65. }
  66.  
  67. public plugin_precache() {
  68.     for(new i = 0; i < sizeof(models_name); i++) {
  69.         for(new j = 1; j < sizeof(menu_item_names); j++) {
  70.             #if defined HOOK_P_MODELS
  71.             new precache_p[256]
  72.             format(precache_p, sizeof(precache_p), "models/%s/p_%s", menu_item_names[j][2], models_name[i])
  73.            
  74.             precache_model(precache_p)
  75.             #endif
  76.            
  77.             #if defined HOOK_V_MODELS
  78.             new precache_v[256]
  79.             format(precache_v, sizeof(precache_v), "models/%s/v_%s", menu_item_names[j][2], models_name[i])
  80.            
  81.             precache_model(precache_v)
  82.             #endif
  83.            
  84.             #if defined HOOK_W_MODELS
  85.             new precache_w[256]
  86.             format(precache_w, sizeof(precache_w), "models/%s/w_%s", menu_item_names[j][2], models_name[i])
  87.            
  88.             precache_model(precache_w)
  89.             #endif
  90.         }
  91.     }
  92. }
  93.  
  94. public W_Model_Hook(ent, model[]) {
  95.     if(!pev_valid(ent)) return FMRES_IGNORED
  96.    
  97.     new owner = pev(ent, pev_owner)
  98.    
  99.     for(new i = 0; i < sizeof(models_name); i++) {
  100.         new old_w[256]
  101.         format(old_w, sizeof(old_w), "models/w_%s", models_name[i])
  102.        
  103.         new new_w[256]         
  104.         format(new_w, sizeof(new_w), "models/%s/w_%s", menu_item_names[weapon_select[owner]][2], models_name[i])
  105.        
  106.         if(equali(model, old_w) || equali(model, new_w)) {
  107.             if(weapon_select[owner] >= 1) engfunc(EngFunc_SetModel, ent, new_w)
  108.             else engfunc(EngFunc_SetModel, ent, old_w)
  109.            
  110.             return FMRES_SUPERCEDE
  111.         }
  112.     }
  113.    
  114.     return FMRES_IGNORED
  115. }
  116.  
  117. public Hook_P_V_Model(id) {
  118.     if(!is_user_alive(id))
  119.         return PLUGIN_CONTINUE
  120.    
  121.     static v_model[32], p_model[32]
  122.     pev(id, pev_viewmodel2, v_model, 31)
  123.     pev(id, pev_weaponmodel2, p_model,31)
  124.    
  125.     for(new i = 0; i < sizeof(models_name); i++) {
  126.         #if defined HOOK_V_MODELS
  127.         new old_v[256]
  128.         format(old_v, sizeof(old_v), "models/v_%s", models_name[i])
  129.        
  130.         new new_v[256]
  131.         format(new_v, sizeof(new_v), "models/%s/v_%s", menu_item_names[weapon_select[id]][2], models_name[i])
  132.        
  133.         if(equali(v_model, old_v) || equali(v_model, new_v)) {
  134.             if(weapon_select[id] >= 1) set_pev(id, pev_viewmodel2, new_v)          
  135.             else set_pev(id, pev_viewmodel2, old_v)
  136.            
  137.             break
  138.         }
  139.         #endif
  140.        
  141.         #if defined HOOK_P_MODELS
  142.         new old_p[256]
  143.         format(old_p, sizeof(old_p), "models/p_%s", models_name[i])
  144.        
  145.         new new_p[256]
  146.         format(new_p, sizeof(new_p), "models/%s/p_%s", menu_item_names[weapon_select[id]][2], models_name[i])
  147.        
  148.         if(equali(p_model, old_p) || equali(p_model, new_p)) {
  149.             if(weapon_select[id] >= 1) set_pev(id, pev_weaponmodel2, new_p)    
  150.             else set_pev(id, pev_weaponmodel2, old_p)
  151.            
  152.             break
  153.         }
  154.         #endif
  155.     }
  156.    
  157.     return PLUGIN_CONTINUE
  158. }
  159.  
  160. public clcmd_menu(id) {
  161.     new i_data[64], String[121]
  162.     formatex(String, charsmax(String), "\y[\wĐØŇ VÏŢØ\y - \dOnlyDust2 Skinrendszer\y]^n\rÖléseid: \y%d", Oles[id]);
  163.    
  164.     new menu = menu_create(String, "clcmd_menu_handler")
  165.    
  166.     for(new  i = 0; i < sizeof(menu_item_names); i++) {
  167.         new convert_num = str_to_num(menu_item_names[i][1])
  168.         num_to_str(i, i_data, sizeof(i_data))
  169.        
  170.         if(Oles[id] < convert_num) {
  171.             formatex(String, charsmax(String), "\w%s \y(\d%d \wÖlés\y)", menu_item_names[i][0], convert_num);
  172.             menu_additem(menu, String, "1",0);
  173.         }
  174.         else
  175.         {
  176.             formatex(String, charsmax(String), "\w%s \y(\d%d \wKiválasztva\y)", menu_item_names[i][0]);
  177.             menu_additem(menu, String, "2",0);
  178.         }
  179.     }
  180.    
  181.     menu_display(id, menu, 0)
  182.    
  183.     return PLUGIN_HANDLED
  184. }
  185. public clcmd_menu_handler(id, menu, item) {
  186.     if(item == MENU_EXIT) {
  187.         menu_destroy(menu)
  188.         return PLUGIN_HANDLED
  189.     }
  190.    
  191.     new data[64], szName[64]
  192.     new access, callback
  193.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  194.    
  195.     new key = str_to_num(data)
  196.     new convert_num = str_to_num(menu_item_names[key][1])
  197.    
  198.     if(Oles[id] < convert_num) {
  199.         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)
  200.         return PLUGIN_HANDLED
  201.     }
  202.    
  203.     else {
  204.         weapon_select[id] = key
  205.         ColorChat(id, GREEN, "^3[^4ĐØŇ VÏŢØ^3]^1 Ezt a csomagot választottad: ^4%s!", menu_item_names[key][0], convert_num)
  206.         Hook_P_V_Model(id)
  207.     }
  208.    
  209.     return PLUGIN_CONTINUE
  210. }
  211. new const REGMENU[][][] = { { "\w[Státusz]: \dNem Regisztrált", "\w[Státusz]: \dKijelentkezve" } };
  212. public Menu_Regisztracio(id)
  213. {
  214.     new String[121], Nev[32];
  215.     get_user_name(id, Nev, 31);
  216.     formatex(String, charsmax(String), "%s \r- \dRegisztráció^n%s", Prefix, REGMENU[0][Regisztralt[id]]);
  217.     new menu = menu_create(String, "Menu_Regisztracio_h");
  218.    
  219.     if(Regisztralt[id] == 0)
  220.     {
  221.         formatex(String, charsmax(String), "\wFelhasználónév: \r%s^n", regFh[id]);
  222.         menu_additem(menu, String, "1",0);
  223.         formatex(String, charsmax(String), "\wJelszó: \r%s^n", regJelszo[id]);
  224.         menu_additem(menu, String, "2",0);
  225.     }
  226.     else
  227.     {
  228.         formatex(String, charsmax(String), "\rNév: \d%s^n\wTe már regisztráltál a szerverre.", Nev, regFh[id]);
  229.         menu_additem(menu, String, "",0);
  230.     }
  231.    
  232.     if(Beirtfelhasznalot[id] == true && Beirtjelszot[id] == true)
  233.     {
  234.         formatex(String, charsmax(String), "\yRegisztráció");
  235.         menu_additem(menu, String, "3",0);
  236.     }
  237.    
  238.     menu_display(id, menu, 0);
  239.     return PLUGIN_HANDLED;
  240. }
  241. public Menu_Regisztracio_h(id, menu, item)
  242. {
  243.     if(item == MENU_EXIT)
  244.     {
  245.         menu_destroy(menu);
  246.         return;
  247.     }
  248.    
  249.     new data[9], szName[64];
  250.     new access, callback;
  251.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  252.     new key = str_to_num(data);
  253.    
  254.     switch(key)
  255.     {
  256.         case 1:
  257.         {
  258.             client_cmd(id, "messagemode Reg_Felhasznalonev");
  259.         }
  260.         case 2:
  261.         {
  262.             client_cmd(id, "messagemode Reg_Jelszo");
  263.         }
  264.         case 3:
  265.         {
  266.             Regisztralt[id] = 1;
  267.             ColorChat(id, GREEN, "%s^1Sikeresen regisztráltál a szerverre.", C_Prefix);
  268.             SQL_Update_Reg(id);
  269.         }
  270.     }
  271. }
  272. public Menu_Bejelentkezes(id)
  273. {
  274.     new String[121];
  275.     formatex(String, charsmax(String), "%s \r- \dBejelentkezés^n%s", Prefix, REGMENU[0][Regisztralt[id]]);
  276.     new menu = menu_create(String, "Menu_Bejelentkezes_h");
  277.    
  278.     formatex(String, charsmax(String), "Felhasználónév: \r%s^n", Felhasznalonev[id]);
  279.     menu_additem(menu, String, "1",0);
  280.     formatex(String, charsmax(String), "Jelszó: \r%s^n", Jelszo[id]);
  281.     menu_additem(menu, String, "2",0);
  282.    
  283.     formatex(String, charsmax(String), "\yBejelentkezés^n");
  284.     menu_additem(menu, String, "3",0);
  285.    
  286.     menu_display(id, menu, 0);
  287.     return PLUGIN_HANDLED;
  288. }
  289. public Menu_Bejelentkezes_h(id, menu, item)
  290. {
  291.     if(item == MENU_EXIT)
  292.     {
  293.         menu_destroy(menu);
  294.         return;
  295.     }
  296.    
  297.     new data[9], szName[64], Nev[32];
  298.     get_user_name(id, Nev, 31);
  299.     new access, callback;
  300.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  301.     new key = str_to_num(data);
  302.    
  303.     switch(key)
  304.     {
  305.         case 1:
  306.         {
  307.             client_cmd(id, "messagemode Log_Felhasznalonev");
  308.         }
  309.         case 2:
  310.         {
  311.             client_cmd(id, "messagemode Log_Jelszo");
  312.         }
  313.         case 3:
  314.         {
  315.             if(equali(Jelszo[id], regJelszo[id]) && (equali(Felhasznalonev[id], regFh[id])))
  316.             {
  317.                 Belepve[id] = true;
  318.                 ColorChat(id, GREEN, "%s ^1Ãœdv újra itt ^4%s ^1!", C_Prefix, Nev);
  319.             }
  320.             else
  321.             {
  322.                 ColorChat(id, GREEN, "%s ^1Hibás Felhasználónév vagy Jelszó.", C_Prefix);
  323.             }
  324.         }
  325.     }
  326. }
  327. public Menu_Fo(id)
  328. {
  329.     new String[121];
  330.     formatex(String, charsmax(String), "%s \r- \dRegisztrációs rendszer^n%s", Prefix, REGMENU[0][Regisztralt[id]]);
  331.     new menu = menu_create(String, "Menu_Fo_h");
  332.    
  333.     formatex(String, charsmax(String), "Regisztáció^n");
  334.     menu_additem(menu, String, "2",0);
  335.     formatex(String, charsmax(String), "Bejelentkezés^n^n\d-------------------------------^n%s^n-------------------------------", Website);
  336.     menu_additem(menu, String, "1",0);
  337.    
  338.     menu_display(id, menu, 0);
  339.     return PLUGIN_HANDLED;
  340. }
  341. public Menu_Fo_h(id, menu, item)
  342. {
  343.     if(item == MENU_EXIT)
  344.     {
  345.         menu_destroy(menu);
  346.         return;
  347.     }
  348.    
  349.     new data[9], szName[64];
  350.     new access, callback;
  351.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  352.     new key = str_to_num(data);
  353.    
  354.     switch(key)
  355.     {
  356.         case 1: Menu_Bejelentkezes(id);
  357.             case 2: Menu_Regisztracio(id);
  358.         }
  359. }
  360. public regisztralas_felh(id)
  361. {
  362.     new adat[32];
  363.     new hosszusag = strlen(adat);
  364.     read_args(adat, charsmax(adat));
  365.     remove_quotes(adat);
  366.     if(hosszusag >= 5)
  367.     {
  368.         regFh[id] = adat;
  369.         Beirtfelhasznalot[id] = true;
  370.         Menu_Regisztracio(id);
  371.     }
  372.     else
  373.     {
  374.         regFh[id] = adat;
  375.         Beirtfelhasznalot[id] = true;
  376.         Menu_Regisztracio(id);
  377.     }
  378.     return PLUGIN_CONTINUE;
  379. }
  380. public regisztralas_jelszo(id)
  381. {
  382.     new adat[32];
  383.     new hosszusag = strlen(adat);
  384.     read_args(adat, charsmax(adat));
  385.     remove_quotes(adat);
  386.     if(hosszusag >= 5) {
  387.         regJelszo[id] = adat;
  388.         Beirtjelszot[id] = true;
  389.         Menu_Regisztracio(id);
  390.     }
  391.     else {
  392.         regJelszo[id] = adat;
  393.         Beirtjelszot[id] = true;
  394.         Menu_Regisztracio(id);
  395.     }
  396.     return PLUGIN_CONTINUE;
  397. }
  398. public bejelentkezes_jelszo(id)
  399. {
  400.     new adat[32];
  401.     new hosszusag = strlen(adat);
  402.     read_args(adat, charsmax(adat));
  403.     remove_quotes(adat);
  404.     if(hosszusag >= 5) {
  405.         Jelszo[id] = adat;
  406.         Beirtjelszot1[id] = true;
  407.         Menu_Bejelentkezes(id);
  408.     }
  409.     else {
  410.         Jelszo[id] = adat;
  411.         Beirtjelszot1[id] = true;
  412.         Menu_Bejelentkezes(id);
  413.     }
  414.     return PLUGIN_CONTINUE;
  415. }
  416. public bejelentkezes_felh(id)
  417. {
  418.     new adat[32];
  419.     new hosszusag = strlen(adat);
  420.     read_args(adat, charsmax(adat));
  421.     remove_quotes(adat);
  422.     if(hosszusag >= 5)
  423.     {
  424.         Felhasznalonev[id] = adat;
  425.         Beirtfelhasznalot1[id] = true;
  426.         Menu_Bejelentkezes(id);
  427.     }
  428.     else
  429.     {
  430.         Felhasznalonev[id] = adat;
  431.         Beirtfelhasznalot1[id] = true;
  432.         Menu_Bejelentkezes(id);
  433.     }
  434.     return PLUGIN_CONTINUE;
  435. }
  436. public client_disconnect(id)
  437. {
  438.     if(!is_user_bot(id))
  439.     {
  440.         Update(id);
  441.     }
  442.     Belepve[id] = false;
  443.     Beirtjelszot[id] = false;
  444.     Beirtjelszot1[id] = false;
  445.     Beirtfelhasznalot[id] = false;
  446.     Beirtfelhasznalot1[id] = false;
  447.    
  448.     regFh[id][0] = EOS;
  449.     regJelszo[id][0] = EOS;
  450.     Felhasznalonev[id][0] = EOS;
  451.     Jelszo[id][0] = EOS;
  452.    
  453.     Dollar[id] = 0;
  454.     Oles[id] = 0;
  455.     Regisztralt[id] = 0;
  456.    
  457.     copy(name[id], charsmax(name[]), "");
  458. }
  459. public client_putinserver(id)
  460. {
  461.     if(!is_user_bot(id))
  462.     {
  463.         get_user_name(id, name[id], charsmax(name));
  464.         Load(id);
  465.     }
  466.     Belepve[id] = false;
  467.     Felhasznalonev[id] = "";
  468.     Jelszo[id] = "";
  469. }
  470. public plugin_cfg()
  471. {
  472.     g_SqlTuple = SQL_MakeDbTuple(SQLINFO[0], SQLINFO[1], SQLINFO[2], SQLINFO[3]);
  473.    
  474.     static Query[10048];
  475.     new Len;
  476.    
  477.     Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS `rtd_new`");
  478.     Len += formatex(Query[Len], charsmax(Query)-Len, "(`Nev` varchar(32) NOT NULL, ");
  479.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Felhasznalonev` varchar(32) NOT NULL,");
  480.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Jelszo` varchar(32) NOT NULL,");
  481.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Regisztralt` int(11) NOT NULL,");
  482.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Oles` int(11) NOT NULL,");
  483.    
  484.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Do` int(11) NOT NULL, `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)");
  485.    
  486.     SQL_ThreadQuery(g_SqlTuple, "createTableThread", Query);
  487. }
  488. public Load(id) {
  489.     static Query[10048];
  490.     new Data[1], Name[32];
  491.     get_user_name(id, Name, 31);
  492.     Data[0] = id;
  493.    
  494.     formatex(Query, charsmax(Query), "SELECT * FROM `rtd_new` WHERE Nev = ^"%s^";", name[id]);
  495.     SQL_ThreadQuery(g_SqlTuple, "QuerySelectData", Query, Data, 1);
  496. }
  497. public QuerySelectData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  498.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  499.         log_amx("%s", Error);
  500.         return;
  501.     }
  502.     else {
  503.         new id = Data[0];
  504.        
  505.         if(SQL_NumRows(Query) > 0) {
  506.             Dollar[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "do"));
  507.            
  508.            
  509.             Oles[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Oles"));
  510.         }
  511.         else
  512.         {
  513.             Save(id);
  514.         }
  515.     }
  516. }
  517. public Save(id)
  518. {
  519.     static Query[256];
  520.    
  521.     formatex(Query, charsmax(Query), "INSERT INTO `rtd_new` (`Nev`) VALUES (^"%s^");", name[id]);
  522.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
  523. }
  524. public SQL_Update_Reg(id)
  525. {
  526.     static Query[10048];
  527.     new Len;
  528.    
  529.     Len += formatex(Query[Len], charsmax(Query), "UPDATE `rtd_new` SET Felhasznalonev = ^"%s^", ", regFh[id]);
  530.     Len += formatex(Query[Len], charsmax(Query)-Len, "Jelszo = ^"%s^", ", regJelszo[id]);
  531.     Len += formatex(Query[Len], charsmax(Query)-Len, "Regisztralt = ^"%i^" WHERE Nev = ^"%s^";", Regisztralt[id], name[id]);
  532.    
  533.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
  534. }
  535. public Update(id)
  536. {
  537.     static Query[10048];
  538.     new Len;
  539.    
  540.     Len += formatex(Query[Len], charsmax(Query), "UPDATE `rtd_new` SET do = ^"%i^", ",Dollar[id]);
  541.    
  542.     Len += formatex(Query[Len], charsmax(Query)-Len, "Oles = ^"%i^" WHERE Nev = ^"%s^";", Oles[id], name[id]);
  543.    
  544.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
  545. }
  546. public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  547.     if(FailState == TQUERY_CONNECT_FAILED)
  548.         set_fail_state("[HIBA*] NEM TUDTAM CSATLAKOZNI AZ ADATBAZISHOZ!");
  549.     else if(FailState == TQUERY_QUERY_FAILED)
  550.         set_fail_state("Query Error");
  551.     if(Errcode)
  552.         log_amx("[HIBA*] HIBAT DOBTAM: %s",Error);
  553. }
  554. public QuerySetData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  555.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  556.         log_amx("%s", Error);
  557.         return;
  558.     }
  559. }
  560. public plugin_end() {
  561.     SQL_FreeHandle(g_SqlTuple);
  562. }


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.
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <fakemeta>
  4. #include <engine>
  5. #include <sqlx>
  6. #include <ColorChat>
  7.  
  8. #define PLUGIN "Fegyver Skin Menu"
  9. #define VERSION "1.0"
  10. #define AUTHOR "RaZzoR"
  11.  
  12. #define DICTIONARY "fegyver_skin_menu.txt"
  13.  
  14. //#define HOOK_P_MODELS
  15. #define HOOK_V_MODELS
  16. //#define HOOK_W_MODELS
  17. 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]
  18. new name[33][32], Dollar[33]
  19. new weapon_select[33]
  20. new const Website[] = "www.facebook.com/groups/rtdteam/"; //Menükben megjelenő elérhetőség
  21. new const SQLINFO[][] = { "-", "cheat462", "u6ETYtAJYNusu5e", "cheat462" };
  22. new Oles[33]
  23. new Handle:g_SqlTuple;
  24. new Temp[192];
  25. new const Prefix[] = "[Magyar \dOnlyDust2]"; //Menüben megjelenő prefix
  26. new const C_Prefix[] = "^3[^4Magyar^3]"; //Chat Prefix
  27.  
  28. new const menu_item_names[][][] = {
  29.     { "Alap Csomag",    "0",    ""      },
  30.     { "CSGO Csomag",        "30",   "magyard2/cs_skins" },
  31.     { "Bronz Csomag",       "60",   "magyard2/brz_skins" },
  32.     { "Ezüst Csomag",      "110""magyard2/ez_skins" },
  33.     { "Metál Csomag",      "250""magyard2/mt_skins" },
  34.     { "Arany Csomag",       "460""magyard2/ar_skins" },
  35.     { "Neon Csomag",        "672""magyard2/eo_skins" },
  36.     { "Rozsdás Csomag",        "50",   "magyard2/rz_skins" },
  37.     { "Karácsony Csomag",      "1000", "magyard2/kr_skins" },
  38.     { "Tűz Csomag",        "1300", "magyard2/tz_skins" },
  39.     { "Barcelona Csomag",       "2000", "magyard2/br_skins" },
  40.     { "Szuperhős Csomag",      "2500", "magyard2/sz_skins" },
  41.     { "Ultra Csomag",       "3400", "magyard2/ul_skins" },
  42.     { "Sztár Csomag",      "4000", "magyard2/szt_skins" },
  43.     { "Végzős Csomag",        "10000",    "magyard2/vip_skins" }
  44.    
  45. }
  46.  
  47. new const models_name[][] = {
  48.     "ak47.mdl",                  
  49.     "m4a1.mdl",                    
  50.     "deagle.mdl",
  51.     "awp.mdl"
  52. }
  53.  
  54. public plugin_init() {
  55.     register_plugin(PLUGIN, VERSION, AUTHOR)
  56.    
  57.     register_dictionary(DICTIONARY)
  58.    
  59.     register_impulse(201, "clcmd_menu")
  60.     register_event("DeathMsg","death","a")
  61.     register_clcmd("say /menu", "clcmd_menu")
  62.     register_event("CurWeapon","Hook_P_V_Model","be","1=1")
  63.    
  64.     #if defined HOOK_W_MODELS
  65.     register_forward(FM_SetModel, "Hook_W_Model", 1)
  66.     #endif
  67. }
  68. public death(){
  69.     new killer = read_data(1)
  70.     new victim = read_data(2)
  71.  
  72.     if(killer == victim)
  73.     {
  74.         return PLUGIN_HANDLED
  75.     }
  76.     Oles[killer]++
  77.     return PLUGIN_HANDLED
  78. }
  79. public plugin_precache() {
  80.     for(new i = 0; i < sizeof(models_name); i++) {
  81.         for(new j = 1; j < sizeof(menu_item_names); j++) {
  82.             #if defined HOOK_P_MODELS
  83.             new precache_p[256]
  84.             format(precache_p, sizeof(precache_p), "models/%s/p_%s", menu_item_names[j][2], models_name[i])
  85.            
  86.             precache_model(precache_p)
  87.             #endif
  88.            
  89.             #if defined HOOK_V_MODELS
  90.             new precache_v[256]
  91.             format(precache_v, sizeof(precache_v), "models/%s/v_%s", menu_item_names[j][2], models_name[i])
  92.            
  93.             precache_model(precache_v)
  94.             #endif
  95.            
  96.             #if defined HOOK_W_MODELS
  97.             new precache_w[256]
  98.             format(precache_w, sizeof(precache_w), "models/%s/w_%s", menu_item_names[j][2], models_name[i])
  99.            
  100.             precache_model(precache_w)
  101.             #endif
  102.         }
  103.     }
  104. }
  105.    
  106. public W_Model_Hook(ent, model[]) {
  107.     if(!pev_valid(ent)) return FMRES_IGNORED
  108.  
  109.     new owner = pev(ent, pev_owner)
  110.  
  111.     for(new i = 0; i < sizeof(models_name); i++) {
  112.         new old_w[256]
  113.         format(old_w, sizeof(old_w), "models/w_%s", models_name[i])
  114.  
  115.         new new_w[256]         
  116.         format(new_w, sizeof(new_w), "models/%s/w_%s", menu_item_names[weapon_select[owner]][2], models_name[i])
  117.        
  118.         if(equali(model, old_w) || equali(model, new_w)) {
  119.             if(weapon_select[owner] >= 1) engfunc(EngFunc_SetModel, ent, new_w)
  120.             else engfunc(EngFunc_SetModel, ent, old_w)
  121.                
  122.             return FMRES_SUPERCEDE
  123.         }
  124.     }
  125.    
  126.     return FMRES_IGNORED
  127. }
  128.  
  129. public Hook_P_V_Model(id) {
  130.     if(!is_user_alive(id))
  131.         return PLUGIN_CONTINUE
  132.    
  133.     static v_model[32], p_model[32]
  134.     pev(id, pev_viewmodel2, v_model, 31)
  135.     pev(id, pev_weaponmodel2, p_model,31)
  136.    
  137.     for(new i = 0; i < sizeof(models_name); i++) {
  138.         #if defined HOOK_V_MODELS
  139.         new old_v[256]
  140.         format(old_v, sizeof(old_v), "models/v_%s", models_name[i])
  141.  
  142.         new new_v[256]
  143.         format(new_v, sizeof(new_v), "models/%s/v_%s", menu_item_names[weapon_select[id]][2], models_name[i])
  144.        
  145.         if(equali(v_model, old_v) || equali(v_model, new_v)) {
  146.             if(weapon_select[id] >= 1) set_pev(id, pev_viewmodel2, new_v)          
  147.             else set_pev(id, pev_viewmodel2, old_v)
  148.  
  149.             break
  150.         }
  151.         #endif
  152.        
  153.         #if defined HOOK_P_MODELS
  154.         new old_p[256]
  155.         format(old_p, sizeof(old_p), "models/p_%s", models_name[i])
  156.  
  157.         new new_p[256]
  158.         format(new_p, sizeof(new_p), "models/%s/p_%s", menu_item_names[weapon_select[id]][2], models_name[i])
  159.  
  160.         if(equali(p_model, old_p) || equali(p_model, new_p)) {
  161.             if(weapon_select[id] >= 1) set_pev(id, pev_weaponmodel2, new_p)    
  162.             else set_pev(id, pev_weaponmodel2, old_p)
  163.  
  164.             break
  165.         }
  166.         #endif
  167.     }
  168.    
  169.     return PLUGIN_CONTINUE
  170. }
  171.  
  172. public clcmd_menu(id) {
  173.     new menu_line[64], menu_newline[64], i_data[64]
  174.     format(menu_line, charsmax(menu_line), "\w%L", id, "SKIN_MENU", Oles[id])
  175.  
  176.     new menu = menu_create(menu_line, "clcmd_menu_handler")
  177.  
  178.     for(new  i = 0; i < sizeof(menu_item_names); i++) {
  179.         new convert_num = str_to_num(menu_item_names[i][1])
  180.         num_to_str(i, i_data, sizeof(i_data))
  181.  
  182.         if(Oles[id] < convert_num)
  183.             format(menu_newline, charsmax(menu_newline), "%L", id, "SKIN_ITEM1", menu_item_names[i][0], convert_num)
  184.         else
  185.             format(menu_newline, charsmax(menu_newline), "%L", id, "SKIN_ITEM2", menu_item_names[i][0])
  186.         menu_additem(menu, menu_newline, i_data, 0)
  187.     }
  188.  
  189.     menu_display(id, menu, 0)
  190.  
  191.     return PLUGIN_HANDLED
  192. }
  193.  
  194. public clcmd_menu_handler(id, menu, item) {
  195.     if(item == MENU_EXIT) {
  196.         menu_destroy(menu)
  197.         return PLUGIN_HANDLED
  198.     }
  199.  
  200.     new data[64], szName[64]
  201.     new access, callback
  202.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  203.  
  204.     new key = str_to_num(data)
  205.     new convert_num = str_to_num(menu_item_names[key][1])
  206.  
  207.     if(Oles[id] < convert_num) {
  208.         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)
  209.         return PLUGIN_HANDLED
  210.     }
  211.  
  212.     else {
  213.         weapon_select[id] = key
  214.         ColorChat(id, GREEN, "^3[^4ĐØŇ VÏŢØ^3]^1 Ezt a csomagot választottad: ^4%s!", menu_item_names[key][0], convert_num)
  215.         Hook_P_V_Model(id)
  216.     }
  217.  
  218.     return PLUGIN_CONTINUE
  219. }
  220. new const REGMENU[][][] = { { "\w[Státusz]: \dNem Regisztrált", "\w[Státusz]: \dKijelentkezve" } };
  221. public Menu_Regisztracio(id)
  222. {
  223.     new String[121], Nev[32];
  224.     get_user_name(id, Nev, 31);
  225.     formatex(String, charsmax(String), "%s \r- \dRegisztráció^n%s", Prefix, REGMENU[0][Regisztralt[id]]);
  226.     new menu = menu_create(String, "Menu_Regisztracio_h");
  227.    
  228.     if(Regisztralt[id] == 0)
  229.     {
  230.         formatex(String, charsmax(String), "\wFelhasználónév: \r%s^n", regFh[id]);
  231.         menu_additem(menu, String, "1",0);
  232.         formatex(String, charsmax(String), "\wJelszó: \r%s^n", regJelszo[id]);
  233.         menu_additem(menu, String, "2",0);
  234.     }
  235.     else
  236.     {
  237.         formatex(String, charsmax(String), "\rNév: \d%s^n\wTe már regisztráltál a szerverre.", Nev, regFh[id]);
  238.         menu_additem(menu, String, "",0);
  239.     }
  240.    
  241.     if(Beirtfelhasznalot[id] == true && Beirtjelszot[id] == true)
  242.     {
  243.         formatex(String, charsmax(String), "\yRegisztráció");
  244.         menu_additem(menu, String, "3",0);
  245.     }
  246.    
  247.     menu_display(id, menu, 0);
  248.     return PLUGIN_HANDLED;
  249. }
  250. public Menu_Regisztracio_h(id, menu, item)
  251. {
  252.     if(item == MENU_EXIT)
  253.     {
  254.         menu_destroy(menu);
  255.         return;
  256.     }
  257.    
  258.     new data[9], szName[64];
  259.     new access, callback;
  260.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  261.     new key = str_to_num(data);
  262.    
  263.     switch(key)
  264.     {
  265.         case 1:
  266.         {
  267.             client_cmd(id, "messagemode Reg_Felhasznalonev");
  268.         }
  269.         case 2:
  270.         {
  271.             client_cmd(id, "messagemode Reg_Jelszo");
  272.         }
  273.         case 3:
  274.         {
  275.             Regisztralt[id] = 1;
  276.             ColorChat(id, GREEN, "%s^1Sikeresen regisztráltál a szerverre.", C_Prefix);
  277.             SQL_Update_Reg(id);
  278.         }
  279.     }
  280. }
  281. public Menu_Bejelentkezes(id)
  282. {
  283.     new String[121];
  284.     formatex(String, charsmax(String), "%s \r- \dBejelentkezés^n%s", Prefix, REGMENU[0][Regisztralt[id]]);
  285.     new menu = menu_create(String, "Menu_Bejelentkezes_h");
  286.    
  287.     formatex(String, charsmax(String), "Felhasználónév: \r%s^n", Felhasznalonev[id]);
  288.     menu_additem(menu, String, "1",0);
  289.     formatex(String, charsmax(String), "Jelszó: \r%s^n", Jelszo[id]);
  290.     menu_additem(menu, String, "2",0);
  291.    
  292.     formatex(String, charsmax(String), "\yBejelentkezés^n");
  293.     menu_additem(menu, String, "3",0);
  294.    
  295.     menu_display(id, menu, 0);
  296.     return PLUGIN_HANDLED;
  297. }
  298. public Menu_Bejelentkezes_h(id, menu, item)
  299. {
  300.     if(item == MENU_EXIT)
  301.     {
  302.         menu_destroy(menu);
  303.         return;
  304.     }
  305.    
  306.     new data[9], szName[64], Nev[32];
  307.     get_user_name(id, Nev, 31);
  308.     new access, callback;
  309.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  310.     new key = str_to_num(data);
  311.    
  312.     switch(key)
  313.     {
  314.         case 1:
  315.         {
  316.             client_cmd(id, "messagemode Log_Felhasznalonev");
  317.         }
  318.         case 2:
  319.         {
  320.             client_cmd(id, "messagemode Log_Jelszo");
  321.         }
  322.         case 3:
  323.         {
  324.             if(equali(Jelszo[id], regJelszo[id]) && (equali(Felhasznalonev[id], regFh[id])))
  325.             {
  326.                 Belepve[id] = true;
  327.                 ColorChat(id, GREEN, "%s ^1Ãœdv újra itt ^4%s ^1!", C_Prefix, Nev);
  328.             }
  329.             else
  330.             {
  331.                 ColorChat(id, GREEN, "%s ^1Hibás Felhasználónév vagy Jelszó.", C_Prefix);
  332.             }
  333.         }
  334.     }
  335. }
  336. public Menu_Fo(id)
  337. {
  338.     new String[121];
  339.     formatex(String, charsmax(String), "%s \r- \dRegisztrációs rendszer^n%s", Prefix, REGMENU[0][Regisztralt[id]]);
  340.     new menu = menu_create(String, "Menu_Fo_h");
  341.    
  342.     formatex(String, charsmax(String), "Regisztáció^n");
  343.     menu_additem(menu, String, "2",0);
  344.     formatex(String, charsmax(String), "Bejelentkezés^n^n\d-------------------------------^n%s^n-------------------------------", Website);
  345.     menu_additem(menu, String, "1",0);
  346.    
  347.     menu_display(id, menu, 0);
  348.     return PLUGIN_HANDLED;
  349. }
  350. public Menu_Fo_h(id, menu, item)
  351. {
  352.     if(item == MENU_EXIT)
  353.     {
  354.         menu_destroy(menu);
  355.         return;
  356.     }
  357.    
  358.     new data[9], szName[64];
  359.     new access, callback;
  360.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  361.     new key = str_to_num(data);
  362.    
  363.     switch(key)
  364.     {
  365.         case 1: Menu_Bejelentkezes(id);
  366.             case 2: Menu_Regisztracio(id);
  367.         }
  368. }
  369. public regisztralas_felh(id)
  370. {
  371.     new adat[32];
  372.     new hosszusag = strlen(adat);
  373.     read_args(adat, charsmax(adat));
  374.     remove_quotes(adat);
  375.     if(hosszusag >= 5)
  376.     {
  377.         regFh[id] = adat;
  378.         Beirtfelhasznalot[id] = true;
  379.         Menu_Regisztracio(id);
  380.     }
  381.     else
  382.     {
  383.         regFh[id] = adat;
  384.         Beirtfelhasznalot[id] = true;
  385.         Menu_Regisztracio(id);
  386.     }
  387.     return PLUGIN_CONTINUE;
  388. }
  389. public regisztralas_jelszo(id)
  390. {
  391.     new adat[32];
  392.     new hosszusag = strlen(adat);
  393.     read_args(adat, charsmax(adat));
  394.     remove_quotes(adat);
  395.     if(hosszusag >= 5) {
  396.         regJelszo[id] = adat;
  397.         Beirtjelszot[id] = true;
  398.         Menu_Regisztracio(id);
  399.     }
  400.     else {
  401.         regJelszo[id] = adat;
  402.         Beirtjelszot[id] = true;
  403.         Menu_Regisztracio(id);
  404.     }
  405.     return PLUGIN_CONTINUE;
  406. }
  407. public bejelentkezes_jelszo(id)
  408. {
  409.     new adat[32];
  410.     new hosszusag = strlen(adat);
  411.     read_args(adat, charsmax(adat));
  412.     remove_quotes(adat);
  413.     if(hosszusag >= 5) {
  414.         Jelszo[id] = adat;
  415.         Beirtjelszot1[id] = true;
  416.         Menu_Bejelentkezes(id);
  417.     }
  418.     else {
  419.         Jelszo[id] = adat;
  420.         Beirtjelszot1[id] = true;
  421.         Menu_Bejelentkezes(id);
  422.     }
  423.     return PLUGIN_CONTINUE;
  424. }
  425. public bejelentkezes_felh(id)
  426. {
  427.     new adat[32];
  428.     new hosszusag = strlen(adat);
  429.     read_args(adat, charsmax(adat));
  430.     remove_quotes(adat);
  431.     if(hosszusag >= 5)
  432.     {
  433.         Felhasznalonev[id] = adat;
  434.         Beirtfelhasznalot1[id] = true;
  435.         Menu_Bejelentkezes(id);
  436.     }
  437.     else
  438.     {
  439.         Felhasznalonev[id] = adat;
  440.         Beirtfelhasznalot1[id] = true;
  441.         Menu_Bejelentkezes(id);
  442.     }
  443.     return PLUGIN_CONTINUE;
  444. }
  445. public client_disconnect(id)
  446. {
  447.     if(!is_user_bot(id))
  448.     {
  449.         Update(id);
  450.     }
  451.     Belepve[id] = false;
  452.     Beirtjelszot[id] = false;
  453.     Beirtjelszot1[id] = false;
  454.     Beirtfelhasznalot[id] = false;
  455.     Beirtfelhasznalot1[id] = false;
  456.    
  457.     regFh[id][0] = EOS;
  458.     regJelszo[id][0] = EOS;
  459.     Felhasznalonev[id][0] = EOS;
  460.     Jelszo[id][0] = EOS;
  461.    
  462.     Dollar[id] = 0;
  463.     Oles[id] = 0;
  464.     Regisztralt[id] = 0;
  465.    
  466.     copy(name[id], charsmax(name[]), "");
  467. }
  468. public client_putinserver(id)
  469. {
  470.     if(!is_user_bot(id))
  471.     {
  472.         get_user_name(id, name[id], charsmax(name));
  473.         Load(id);
  474.     }
  475.     Belepve[id] = false;
  476.     Felhasznalonev[id] = "";
  477.     Jelszo[id] = "";
  478. }
  479. public plugin_cfg()
  480. {
  481.     g_SqlTuple = SQL_MakeDbTuple(SQLINFO[0], SQLINFO[1], SQLINFO[2], SQLINFO[3]);
  482.    
  483.     static Query[10048];
  484.     new Len;
  485.    
  486.     Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS `icuka_a_bolt_elen_bemutatja`");
  487.     Len += formatex(Query[Len], charsmax(Query)-Len, "(`Nev` varchar(32) NOT NULL, ");
  488.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Felhasznalonev` varchar(32) NOT NULL,");
  489.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Jelszo` varchar(32) NOT NULL,");
  490.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Regisztralt` int(11) NOT NULL,");
  491.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Oles` int(11) NOT NULL,");
  492.    
  493.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Do` int(11) NOT NULL, `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)");
  494.    
  495.     SQL_ThreadQuery(g_SqlTuple, "createTableThread", Query);
  496. }
  497. public Load(id) {
  498.     static Query[10048];
  499.     new Data[1], Name[32];
  500.     get_user_name(id, Name, 31);
  501.     Data[0] = id;
  502.    
  503.     formatex(Query, charsmax(Query), "SELECT * FROM `icuka_a_bolt_elen_bemutatja` WHERE Nev = ^"%s^";", name[id]);
  504.     SQL_ThreadQuery(g_SqlTuple, "QuerySelectData", Query, Data, 1);
  505. }
  506. public QuerySelectData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  507.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  508.  
  509.         log_amx("%s", Error);
  510.         return;
  511.     }
  512.     else {
  513.         new id = Data[0];
  514.        
  515.         if(SQL_NumRows(Query) > 0) {
  516.            Oles[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Oles"));
  517.             }
  518.         else
  519.         {
  520.             Save(id);
  521.         }
  522.     }
  523. }
  524. public Save(id)
  525. {
  526.     static Query[256];
  527.    
  528.     formatex(Query, charsmax(Query), "INSERT INTO `icuka_a_bolt_elen_bemutatja` (`Nev`) VALUES (^"%s^");", name[id]);
  529.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
  530. }
  531. public SQL_Update_Reg(id)
  532. {
  533.     static Query[10048];
  534.     new Len;
  535.    
  536.     Len += formatex(Query[Len], charsmax(Query), "UPDATE `icuka_a_bolt_elen_bemutatja` SET Felhasznalonev = ^"%s^", ", regFh[id]);
  537.     Len += formatex(Query[Len], charsmax(Query)-Len, "Jelszo = ^"%s^", ", regJelszo[id]);
  538.     Len += formatex(Query[Len], charsmax(Query)-Len, "Regisztralt = ^"%i^" WHERE Nev = ^"%s^";", Regisztralt[id], name[id]);
  539.    
  540.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
  541. }
  542. public Update(id)
  543. {
  544.     static Query[10048];
  545.     new Len;
  546.    
  547.     Len += formatex(Query[Len], charsmax(Query), "UPDATE `icuka_a_bolt_elen_bemutatja` SET do = ^"%i^", ",Dollar[id]);
  548.    
  549.     Len += formatex(Query[Len], charsmax(Query)-Len, "Oles = ^"%i^" WHERE Nev = ^"%s^";", Oles[id], name[id]);
  550.    
  551.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
  552. }
  553. public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  554.     if(FailState == TQUERY_CONNECT_FAILED)
  555.         set_fail_state("[HIBA*] NEM TUDTAM CSATLAKOZNI AZ ADATBAZISHOZ!");
  556.     else if(FailState == TQUERY_QUERY_FAILED)
  557.         set_fail_state("Query Error");
  558.     if(Errcode)
  559.         log_amx("[HIBA*] HIBAT DOBTAM: %s",Error);
  560. }
  561. public QuerySetData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  562.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  563.         log_amx("%s", Error);
  564.         return;
  565.     }
  566. }
  567. public plugin_end() {
  568.     SQL_FreeHandle(g_SqlTuple);
  569. }

_________________
2015.07.11 Konfigolás kezdete
2017.09.27 Első nagy játékosbázissal rendelkező szerver | RtD
2018.08.24 Második nagy játékosbázissal rendelkező szerver | Black Night
2018.11.16 Konfigolás befejezése


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Skin rendszer hiba.
HozzászólásElküldve: 2018.06.18. 08:29 
Offline
Tud valamit
Avatar

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:
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <fakemeta>
  4. #include <engine>
  5. #include <sqlx>
  6. #include <ColorChat>
  7.  
  8. #define PLUGIN "Fegyver Skin Menu"
  9. #define VERSION "1.0"
  10. #define AUTHOR "RaZzoR"
  11.  
  12. #define DICTIONARY "fegyver_skin_menu.txt"
  13.  
  14. //#define HOOK_P_MODELS
  15. #define HOOK_V_MODELS
  16. //#define HOOK_W_MODELS
  17. 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]
  18. new name[33][32], Dollar[33]
  19. new weapon_select[33]
  20. new const Website[] = "www.facebook.com/groups/rtdteam/"; //Menükben megjelenő elérhetőség
  21. new const SQLINFO[][] = { "-", "cheat462", "-", "cheat462" };
  22. new Oles[33]
  23. new Handle:g_SqlTuple;
  24. new const Prefix[] = "[Magyar \dOnlyDust2]"; //Menüben megjelenő prefix
  25. new const C_Prefix[] = "^3[^4Magyar^3]"; //Chat Prefix
  26.  
  27. new const menu_item_names[][][] = {
  28.     { "Alap Csomag",    "0",    ""      },
  29.     { "CSGO Csomag",        "30",   "magyard2/cs_skins" },
  30.     { "Bronz Csomag",       "60",   "magyard2/brz_skins" },
  31.     { "Ezüst Csomag",        "110""magyard2/ez_skins" },
  32.     { "Metál Csomag",        "250""magyard2/mt_skins" },
  33.     { "Arany Csomag",       "460""magyard2/ar_skins" },
  34.     { "Neon Csomag",        "672""magyard2/eo_skins" },
  35.     { "Rozsdás Csomag",      "50",   "magyard2/rz_skins" },
  36.     { "Karácsony Csomag",        "1000", "magyard2/kr_skins" },
  37.     { "Tűz Csomag",      "1300", "magyard2/tz_skins" },
  38.     { "Barcelona Csomag",       "2000", "magyard2/br_skins" },
  39.     { "SzuperhÅ‘s Csomag",       "2500", "magyard2/sz_skins" },
  40.     { "Ultra Csomag",       "3400", "magyard2/ul_skins" },
  41.     { "Sztár Csomag",        "4000", "magyard2/szt_skins" },
  42.     { "VégzÅ‘s Csomag",       "10000",    "magyard2/vip_skins" }
  43.    
  44. }
  45.  
  46. new const models_name[][] = {
  47.     "ak47.mdl",                  
  48.     "m4a1.mdl",                    
  49.     "deagle.mdl",
  50.     "awp.mdl"
  51. }
  52.  
  53. public plugin_init() {
  54.     register_plugin(PLUGIN, VERSION, AUTHOR)
  55.    
  56.     register_dictionary(DICTIONARY)
  57.    
  58.     register_impulse(201, "clcmd_menu")
  59.     register_clcmd("say /menu", "clcmd_menu")
  60.     register_event("CurWeapon","Hook_P_V_Model","be","1=1")
  61.    
  62.     #if defined HOOK_W_MODELS
  63.     register_forward(FM_SetModel, "Hook_W_Model", 1)
  64.     #endif
  65. }
  66.  
  67. public plugin_precache() {
  68.     for(new i = 0; i < sizeof(models_name); i++) {
  69.         for(new j = 1; j < sizeof(menu_item_names); j++) {
  70.             #if defined HOOK_P_MODELS
  71.             new precache_p[256]
  72.             format(precache_p, sizeof(precache_p), "models/%s/p_%s", menu_item_names[j][2], models_name[i])
  73.            
  74.             precache_model(precache_p)
  75.             #endif
  76.            
  77.             #if defined HOOK_V_MODELS
  78.             new precache_v[256]
  79.             format(precache_v, sizeof(precache_v), "models/%s/v_%s", menu_item_names[j][2], models_name[i])
  80.            
  81.             precache_model(precache_v)
  82.             #endif
  83.            
  84.             #if defined HOOK_W_MODELS
  85.             new precache_w[256]
  86.             format(precache_w, sizeof(precache_w), "models/%s/w_%s", menu_item_names[j][2], models_name[i])
  87.            
  88.             precache_model(precache_w)
  89.             #endif
  90.         }
  91.     }
  92. }
  93.  
  94. public W_Model_Hook(ent, model[]) {
  95.     if(!pev_valid(ent)) return FMRES_IGNORED
  96.    
  97.     new owner = pev(ent, pev_owner)
  98.    
  99.     for(new i = 0; i < sizeof(models_name); i++) {
  100.         new old_w[256]
  101.         format(old_w, sizeof(old_w), "models/w_%s", models_name[i])
  102.        
  103.         new new_w[256]         
  104.         format(new_w, sizeof(new_w), "models/%s/w_%s", menu_item_names[weapon_select[owner]][2], models_name[i])
  105.        
  106.         if(equali(model, old_w) || equali(model, new_w)) {
  107.             if(weapon_select[owner] >= 1) engfunc(EngFunc_SetModel, ent, new_w)
  108.             else engfunc(EngFunc_SetModel, ent, old_w)
  109.            
  110.             return FMRES_SUPERCEDE
  111.         }
  112.     }
  113.    
  114.     return FMRES_IGNORED
  115. }
  116.  
  117. public Hook_P_V_Model(id) {
  118.     if(!is_user_alive(id))
  119.         return PLUGIN_CONTINUE
  120.    
  121.     static v_model[32], p_model[32]
  122.     pev(id, pev_viewmodel2, v_model, 31)
  123.     pev(id, pev_weaponmodel2, p_model,31)
  124.    
  125.     for(new i = 0; i < sizeof(models_name); i++) {
  126.         #if defined HOOK_V_MODELS
  127.         new old_v[256]
  128.         format(old_v, sizeof(old_v), "models/v_%s", models_name[i])
  129.        
  130.         new new_v[256]
  131.         format(new_v, sizeof(new_v), "models/%s/v_%s", menu_item_names[weapon_select[id]][2], models_name[i])
  132.        
  133.         if(equali(v_model, old_v) || equali(v_model, new_v)) {
  134.             if(weapon_select[id] >= 1) set_pev(id, pev_viewmodel2, new_v)          
  135.             else set_pev(id, pev_viewmodel2, old_v)
  136.            
  137.             break
  138.         }
  139.         #endif
  140.        
  141.         #if defined HOOK_P_MODELS
  142.         new old_p[256]
  143.         format(old_p, sizeof(old_p), "models/p_%s", models_name[i])
  144.        
  145.         new new_p[256]
  146.         format(new_p, sizeof(new_p), "models/%s/p_%s", menu_item_names[weapon_select[id]][2], models_name[i])
  147.        
  148.         if(equali(p_model, old_p) || equali(p_model, new_p)) {
  149.             if(weapon_select[id] >= 1) set_pev(id, pev_weaponmodel2, new_p)    
  150.             else set_pev(id, pev_weaponmodel2, old_p)
  151.            
  152.             break
  153.         }
  154.         #endif
  155.     }
  156.    
  157.     return PLUGIN_CONTINUE
  158. }
  159.  
  160. public clcmd_menu(id) {
  161.     new i_data[64], String[121]
  162.     formatex(String, charsmax(String), "\y[\wĐØŇ VÏŢØ\y - \dOnlyDust2 Skinrendszer\y]^n\rÖléseid: \y%d", Oles[id]);
  163.    
  164.     new menu = menu_create(String, "clcmd_menu_handler")
  165.    
  166.     for(new  i = 0; i < sizeof(menu_item_names); i++) {
  167.         new convert_num = str_to_num(menu_item_names[i][1])
  168.         num_to_str(i, i_data, sizeof(i_data))
  169.        
  170.         if(Oles[id] < convert_num) {
  171.             formatex(String, charsmax(String), "\w%s \y(\d%d \wÖlés\y)", menu_item_names[i][0], convert_num);
  172.             menu_additem(menu, String, "1",0);
  173.         }
  174.         else
  175.         {
  176.             formatex(String, charsmax(String), "\w%s \y(\d%d \wKiválasztva\y)", menu_item_names[i][0]);
  177.             menu_additem(menu, String, "2",0);
  178.         }
  179.     }
  180.    
  181.     menu_display(id, menu, 0)
  182.    
  183.     return PLUGIN_HANDLED
  184. }
  185. public clcmd_menu_handler(id, menu, item) {
  186.     if(item == MENU_EXIT) {
  187.         menu_destroy(menu)
  188.         return PLUGIN_HANDLED
  189.     }
  190.    
  191.     new data[64], szName[64]
  192.     new access, callback
  193.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  194.    
  195.     new key = str_to_num(data)
  196.     new convert_num = str_to_num(menu_item_names[key][1])
  197.    
  198.     if(Oles[id] < convert_num) {
  199.         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)
  200.         return PLUGIN_HANDLED
  201.     }
  202.    
  203.     else {
  204.         weapon_select[id] = key
  205.         ColorChat(id, GREEN, "^3[^4ĐØŇ VÏŢØ^3]^1 Ezt a csomagot választottad: ^4%s!", menu_item_names[key][0], convert_num)
  206.         Hook_P_V_Model(id)
  207.     }
  208.    
  209.     return PLUGIN_CONTINUE
  210. }
  211. new const REGMENU[][][] = { { "\w[Státusz]: \dNem Regisztrált", "\w[Státusz]: \dKijelentkezve" } };
  212. public Menu_Regisztracio(id)
  213. {
  214.     new String[121], Nev[32];
  215.     get_user_name(id, Nev, 31);
  216.     formatex(String, charsmax(String), "%s \r- \dRegisztráció^n%s", Prefix, REGMENU[0][Regisztralt[id]]);
  217.     new menu = menu_create(String, "Menu_Regisztracio_h");
  218.    
  219.     if(Regisztralt[id] == 0)
  220.     {
  221.         formatex(String, charsmax(String), "\wFelhasználónév: \r%s^n", regFh[id]);
  222.         menu_additem(menu, String, "1",0);
  223.         formatex(String, charsmax(String), "\wJelszó: \r%s^n", regJelszo[id]);
  224.         menu_additem(menu, String, "2",0);
  225.     }
  226.     else
  227.     {
  228.         formatex(String, charsmax(String), "\rNév: \d%s^n\wTe már regisztráltál a szerverre.", Nev, regFh[id]);
  229.         menu_additem(menu, String, "",0);
  230.     }
  231.    
  232.     if(Beirtfelhasznalot[id] == true && Beirtjelszot[id] == true)
  233.     {
  234.         formatex(String, charsmax(String), "\yRegisztráció");
  235.         menu_additem(menu, String, "3",0);
  236.     }
  237.    
  238.     menu_display(id, menu, 0);
  239.     return PLUGIN_HANDLED;
  240. }
  241. public Menu_Regisztracio_h(id, menu, item)
  242. {
  243.     if(item == MENU_EXIT)
  244.     {
  245.         menu_destroy(menu);
  246.         return;
  247.     }
  248.    
  249.     new data[9], szName[64];
  250.     new access, callback;
  251.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  252.     new key = str_to_num(data);
  253.    
  254.     switch(key)
  255.     {
  256.         case 1:
  257.         {
  258.             client_cmd(id, "messagemode Reg_Felhasznalonev");
  259.         }
  260.         case 2:
  261.         {
  262.             client_cmd(id, "messagemode Reg_Jelszo");
  263.         }
  264.         case 3:
  265.         {
  266.             Regisztralt[id] = 1;
  267.             ColorChat(id, GREEN, "%s^1Sikeresen regisztráltál a szerverre.", C_Prefix);
  268.             SQL_Update_Reg(id);
  269.         }
  270.     }
  271. }
  272. public Menu_Bejelentkezes(id)
  273. {
  274.     new String[121];
  275.     formatex(String, charsmax(String), "%s \r- \dBejelentkezés^n%s", Prefix, REGMENU[0][Regisztralt[id]]);
  276.     new menu = menu_create(String, "Menu_Bejelentkezes_h");
  277.    
  278.     formatex(String, charsmax(String), "Felhasználónév: \r%s^n", Felhasznalonev[id]);
  279.     menu_additem(menu, String, "1",0);
  280.     formatex(String, charsmax(String), "Jelszó: \r%s^n", Jelszo[id]);
  281.     menu_additem(menu, String, "2",0);
  282.    
  283.     formatex(String, charsmax(String), "\yBejelentkezés^n");
  284.     menu_additem(menu, String, "3",0);
  285.    
  286.     menu_display(id, menu, 0);
  287.     return PLUGIN_HANDLED;
  288. }
  289. public Menu_Bejelentkezes_h(id, menu, item)
  290. {
  291.     if(item == MENU_EXIT)
  292.     {
  293.         menu_destroy(menu);
  294.         return;
  295.     }
  296.    
  297.     new data[9], szName[64], Nev[32];
  298.     get_user_name(id, Nev, 31);
  299.     new access, callback;
  300.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  301.     new key = str_to_num(data);
  302.    
  303.     switch(key)
  304.     {
  305.         case 1:
  306.         {
  307.             client_cmd(id, "messagemode Log_Felhasznalonev");
  308.         }
  309.         case 2:
  310.         {
  311.             client_cmd(id, "messagemode Log_Jelszo");
  312.         }
  313.         case 3:
  314.         {
  315.             if(equali(Jelszo[id], regJelszo[id]) && (equali(Felhasznalonev[id], regFh[id])))
  316.             {
  317.                 Belepve[id] = true;
  318.                 ColorChat(id, GREEN, "%s ^1Ãœdv újra itt ^4%s ^1!", C_Prefix, Nev);
  319.             }
  320.             else
  321.             {
  322.                 ColorChat(id, GREEN, "%s ^1Hibás Felhasználónév vagy Jelszó.", C_Prefix);
  323.             }
  324.         }
  325.     }
  326. }
  327. public Menu_Fo(id)
  328. {
  329.     new String[121];
  330.     formatex(String, charsmax(String), "%s \r- \dRegisztrációs rendszer^n%s", Prefix, REGMENU[0][Regisztralt[id]]);
  331.     new menu = menu_create(String, "Menu_Fo_h");
  332.    
  333.     formatex(String, charsmax(String), "Regisztáció^n");
  334.     menu_additem(menu, String, "2",0);
  335.     formatex(String, charsmax(String), "Bejelentkezés^n^n\d-------------------------------^n%s^n-------------------------------", Website);
  336.     menu_additem(menu, String, "1",0);
  337.    
  338.     menu_display(id, menu, 0);
  339.     return PLUGIN_HANDLED;
  340. }
  341. public Menu_Fo_h(id, menu, item)
  342. {
  343.     if(item == MENU_EXIT)
  344.     {
  345.         menu_destroy(menu);
  346.         return;
  347.     }
  348.    
  349.     new data[9], szName[64];
  350.     new access, callback;
  351.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  352.     new key = str_to_num(data);
  353.    
  354.     switch(key)
  355.     {
  356.         case 1: Menu_Bejelentkezes(id);
  357.             case 2: Menu_Regisztracio(id);
  358.         }
  359. }
  360. public regisztralas_felh(id)
  361. {
  362.     new adat[32];
  363.     new hosszusag = strlen(adat);
  364.     read_args(adat, charsmax(adat));
  365.     remove_quotes(adat);
  366.     if(hosszusag >= 5)
  367.     {
  368.         regFh[id] = adat;
  369.         Beirtfelhasznalot[id] = true;
  370.         Menu_Regisztracio(id);
  371.     }
  372.     else
  373.     {
  374.         regFh[id] = adat;
  375.         Beirtfelhasznalot[id] = true;
  376.         Menu_Regisztracio(id);
  377.     }
  378.     return PLUGIN_CONTINUE;
  379. }
  380. public regisztralas_jelszo(id)
  381. {
  382.     new adat[32];
  383.     new hosszusag = strlen(adat);
  384.     read_args(adat, charsmax(adat));
  385.     remove_quotes(adat);
  386.     if(hosszusag >= 5) {
  387.         regJelszo[id] = adat;
  388.         Beirtjelszot[id] = true;
  389.         Menu_Regisztracio(id);
  390.     }
  391.     else {
  392.         regJelszo[id] = adat;
  393.         Beirtjelszot[id] = true;
  394.         Menu_Regisztracio(id);
  395.     }
  396.     return PLUGIN_CONTINUE;
  397. }
  398. public bejelentkezes_jelszo(id)
  399. {
  400.     new adat[32];
  401.     new hosszusag = strlen(adat);
  402.     read_args(adat, charsmax(adat));
  403.     remove_quotes(adat);
  404.     if(hosszusag >= 5) {
  405.         Jelszo[id] = adat;
  406.         Beirtjelszot1[id] = true;
  407.         Menu_Bejelentkezes(id);
  408.     }
  409.     else {
  410.         Jelszo[id] = adat;
  411.         Beirtjelszot1[id] = true;
  412.         Menu_Bejelentkezes(id);
  413.     }
  414.     return PLUGIN_CONTINUE;
  415. }
  416. public bejelentkezes_felh(id)
  417. {
  418.     new adat[32];
  419.     new hosszusag = strlen(adat);
  420.     read_args(adat, charsmax(adat));
  421.     remove_quotes(adat);
  422.     if(hosszusag >= 5)
  423.     {
  424.         Felhasznalonev[id] = adat;
  425.         Beirtfelhasznalot1[id] = true;
  426.         Menu_Bejelentkezes(id);
  427.     }
  428.     else
  429.     {
  430.         Felhasznalonev[id] = adat;
  431.         Beirtfelhasznalot1[id] = true;
  432.         Menu_Bejelentkezes(id);
  433.     }
  434.     return PLUGIN_CONTINUE;
  435. }
  436. public client_disconnect(id)
  437. {
  438.     if(!is_user_bot(id))
  439.     {
  440.         Update(id);
  441.     }
  442.     Belepve[id] = false;
  443.     Beirtjelszot[id] = false;
  444.     Beirtjelszot1[id] = false;
  445.     Beirtfelhasznalot[id] = false;
  446.     Beirtfelhasznalot1[id] = false;
  447.    
  448.     regFh[id][0] = EOS;
  449.     regJelszo[id][0] = EOS;
  450.     Felhasznalonev[id][0] = EOS;
  451.     Jelszo[id][0] = EOS;
  452.    
  453.     Dollar[id] = 0;
  454.     Oles[id] = 0;
  455.     Regisztralt[id] = 0;
  456.    
  457.     copy(name[id], charsmax(name[]), "");
  458. }
  459. public client_putinserver(id)
  460. {
  461.     if(!is_user_bot(id))
  462.     {
  463.         get_user_name(id, name[id], charsmax(name));
  464.         Load(id);
  465.     }
  466.     Belepve[id] = false;
  467.     Felhasznalonev[id] = "";
  468.     Jelszo[id] = "";
  469. }
  470. public plugin_cfg()
  471. {
  472.     g_SqlTuple = SQL_MakeDbTuple(SQLINFO[0], SQLINFO[1], SQLINFO[2], SQLINFO[3]);
  473.    
  474.     static Query[10048];
  475.     new Len;
  476.    
  477.     Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS `rtd_new`");
  478.     Len += formatex(Query[Len], charsmax(Query)-Len, "(`Nev` varchar(32) NOT NULL, ");
  479.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Felhasznalonev` varchar(32) NOT NULL,");
  480.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Jelszo` varchar(32) NOT NULL,");
  481.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Regisztralt` int(11) NOT NULL,");
  482.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Oles` int(11) NOT NULL,");
  483.    
  484.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Do` int(11) NOT NULL, `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)");
  485.    
  486.     SQL_ThreadQuery(g_SqlTuple, "createTableThread", Query);
  487. }
  488. public Load(id) {
  489.     static Query[10048];
  490.     new Data[1], Name[32];
  491.     get_user_name(id, Name, 31);
  492.     Data[0] = id;
  493.    
  494.     formatex(Query, charsmax(Query), "SELECT * FROM `rtd_new` WHERE Nev = ^"%s^";", name[id]);
  495.     SQL_ThreadQuery(g_SqlTuple, "QuerySelectData", Query, Data, 1);
  496. }
  497. public QuerySelectData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  498.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  499.         log_amx("%s", Error);
  500.         return;
  501.     }
  502.     else {
  503.         new id = Data[0];
  504.        
  505.         if(SQL_NumRows(Query) > 0) {
  506.             Dollar[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "do"));
  507.            
  508.            
  509.             Oles[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Oles"));
  510.         }
  511.         else
  512.         {
  513.             Save(id);
  514.         }
  515.     }
  516. }
  517. public Save(id)
  518. {
  519.     static Query[256];
  520.    
  521.     formatex(Query, charsmax(Query), "INSERT INTO `rtd_new` (`Nev`) VALUES (^"%s^");", name[id]);
  522.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
  523. }
  524. public SQL_Update_Reg(id)
  525. {
  526.     static Query[10048];
  527.     new Len;
  528.    
  529.     Len += formatex(Query[Len], charsmax(Query), "UPDATE `rtd_new` SET Felhasznalonev = ^"%s^", ", regFh[id]);
  530.     Len += formatex(Query[Len], charsmax(Query)-Len, "Jelszo = ^"%s^", ", regJelszo[id]);
  531.     Len += formatex(Query[Len], charsmax(Query)-Len, "Regisztralt = ^"%i^" WHERE Nev = ^"%s^";", Regisztralt[id], name[id]);
  532.    
  533.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
  534. }
  535. public Update(id)
  536. {
  537.     static Query[10048];
  538.     new Len;
  539.    
  540.     Len += formatex(Query[Len], charsmax(Query), "UPDATE `rtd_new` SET do = ^"%i^", ",Dollar[id]);
  541.    
  542.     Len += formatex(Query[Len], charsmax(Query)-Len, "Oles = ^"%i^" WHERE Nev = ^"%s^";", Oles[id], name[id]);
  543.    
  544.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
  545. }
  546. public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  547.     if(FailState == TQUERY_CONNECT_FAILED)
  548.         set_fail_state("[HIBA*] NEM TUDTAM CSATLAKOZNI AZ ADATBAZISHOZ!");
  549.     else if(FailState == TQUERY_QUERY_FAILED)
  550.         set_fail_state("Query Error");
  551.     if(Errcode)
  552.         log_amx("[HIBA*] HIBAT DOBTAM: %s",Error);
  553. }
  554. public QuerySetData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  555.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  556.         log_amx("%s", Error);
  557.         return;
  558.     }
  559. }
  560. public plugin_end() {
  561.     SQL_FreeHandle(g_SqlTuple);
  562. }


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.
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <fakemeta>
  4. #include <engine>
  5. #include <sqlx>
  6. #include <ColorChat>
  7.  
  8. #define PLUGIN "Fegyver Skin Menu"
  9. #define VERSION "1.0"
  10. #define AUTHOR "RaZzoR"
  11.  
  12. #define DICTIONARY "fegyver_skin_menu.txt"
  13.  
  14. //#define HOOK_P_MODELS
  15. #define HOOK_V_MODELS
  16. //#define HOOK_W_MODELS
  17. 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]
  18. new name[33][32], Dollar[33]
  19. new weapon_select[33]
  20. new const Website[] = "www.facebook.com/groups/rtdteam/"; //Menükben megjelenő elérhetőség
  21. new const SQLINFO[][] = { "-", "cheat462", "u6ETYtAJYNusu5e", "cheat462" };
  22. new Oles[33]
  23. new Handle:g_SqlTuple;
  24. new Temp[192];
  25. new const Prefix[] = "[Magyar \dOnlyDust2]"; //Menüben megjelenő prefix
  26. new const C_Prefix[] = "^3[^4Magyar^3]"; //Chat Prefix
  27.  
  28. new const menu_item_names[][][] = {
  29.     { "Alap Csomag",    "0",    ""      },
  30.     { "CSGO Csomag",        "30",   "magyard2/cs_skins" },
  31.     { "Bronz Csomag",       "60",   "magyard2/brz_skins" },
  32.     { "Ezüst Csomag",      "110""magyard2/ez_skins" },
  33.     { "Metál Csomag",      "250""magyard2/mt_skins" },
  34.     { "Arany Csomag",       "460""magyard2/ar_skins" },
  35.     { "Neon Csomag",        "672""magyard2/eo_skins" },
  36.     { "Rozsdás Csomag",        "50",   "magyard2/rz_skins" },
  37.     { "Karácsony Csomag",      "1000", "magyard2/kr_skins" },
  38.     { "Tűz Csomag",        "1300", "magyard2/tz_skins" },
  39.     { "Barcelona Csomag",       "2000", "magyard2/br_skins" },
  40.     { "Szuperhős Csomag",      "2500", "magyard2/sz_skins" },
  41.     { "Ultra Csomag",       "3400", "magyard2/ul_skins" },
  42.     { "Sztár Csomag",      "4000", "magyard2/szt_skins" },
  43.     { "Végzős Csomag",        "10000",    "magyard2/vip_skins" }
  44.    
  45. }
  46.  
  47. new const models_name[][] = {
  48.     "ak47.mdl",                  
  49.     "m4a1.mdl",                    
  50.     "deagle.mdl",
  51.     "awp.mdl"
  52. }
  53.  
  54. public plugin_init() {
  55.     register_plugin(PLUGIN, VERSION, AUTHOR)
  56.    
  57.     register_dictionary(DICTIONARY)
  58.    
  59.     register_impulse(201, "clcmd_menu")
  60.     register_event("DeathMsg","death","a")
  61.     register_clcmd("say /menu", "clcmd_menu")
  62.     register_event("CurWeapon","Hook_P_V_Model","be","1=1")
  63.    
  64.     #if defined HOOK_W_MODELS
  65.     register_forward(FM_SetModel, "Hook_W_Model", 1)
  66.     #endif
  67. }
  68. public death(){
  69.     new killer = read_data(1)
  70.     new victim = read_data(2)
  71.  
  72.     if(killer == victim)
  73.     {
  74.         return PLUGIN_HANDLED
  75.     }
  76.     Oles[killer]++
  77.     return PLUGIN_HANDLED
  78. }
  79. public plugin_precache() {
  80.     for(new i = 0; i < sizeof(models_name); i++) {
  81.         for(new j = 1; j < sizeof(menu_item_names); j++) {
  82.             #if defined HOOK_P_MODELS
  83.             new precache_p[256]
  84.             format(precache_p, sizeof(precache_p), "models/%s/p_%s", menu_item_names[j][2], models_name[i])
  85.            
  86.             precache_model(precache_p)
  87.             #endif
  88.            
  89.             #if defined HOOK_V_MODELS
  90.             new precache_v[256]
  91.             format(precache_v, sizeof(precache_v), "models/%s/v_%s", menu_item_names[j][2], models_name[i])
  92.            
  93.             precache_model(precache_v)
  94.             #endif
  95.            
  96.             #if defined HOOK_W_MODELS
  97.             new precache_w[256]
  98.             format(precache_w, sizeof(precache_w), "models/%s/w_%s", menu_item_names[j][2], models_name[i])
  99.            
  100.             precache_model(precache_w)
  101.             #endif
  102.         }
  103.     }
  104. }
  105.    
  106. public W_Model_Hook(ent, model[]) {
  107.     if(!pev_valid(ent)) return FMRES_IGNORED
  108.  
  109.     new owner = pev(ent, pev_owner)
  110.  
  111.     for(new i = 0; i < sizeof(models_name); i++) {
  112.         new old_w[256]
  113.         format(old_w, sizeof(old_w), "models/w_%s", models_name[i])
  114.  
  115.         new new_w[256]         
  116.         format(new_w, sizeof(new_w), "models/%s/w_%s", menu_item_names[weapon_select[owner]][2], models_name[i])
  117.        
  118.         if(equali(model, old_w) || equali(model, new_w)) {
  119.             if(weapon_select[owner] >= 1) engfunc(EngFunc_SetModel, ent, new_w)
  120.             else engfunc(EngFunc_SetModel, ent, old_w)
  121.                
  122.             return FMRES_SUPERCEDE
  123.         }
  124.     }
  125.    
  126.     return FMRES_IGNORED
  127. }
  128.  
  129. public Hook_P_V_Model(id) {
  130.     if(!is_user_alive(id))
  131.         return PLUGIN_CONTINUE
  132.    
  133.     static v_model[32], p_model[32]
  134.     pev(id, pev_viewmodel2, v_model, 31)
  135.     pev(id, pev_weaponmodel2, p_model,31)
  136.    
  137.     for(new i = 0; i < sizeof(models_name); i++) {
  138.         #if defined HOOK_V_MODELS
  139.         new old_v[256]
  140.         format(old_v, sizeof(old_v), "models/v_%s", models_name[i])
  141.  
  142.         new new_v[256]
  143.         format(new_v, sizeof(new_v), "models/%s/v_%s", menu_item_names[weapon_select[id]][2], models_name[i])
  144.        
  145.         if(equali(v_model, old_v) || equali(v_model, new_v)) {
  146.             if(weapon_select[id] >= 1) set_pev(id, pev_viewmodel2, new_v)          
  147.             else set_pev(id, pev_viewmodel2, old_v)
  148.  
  149.             break
  150.         }
  151.         #endif
  152.        
  153.         #if defined HOOK_P_MODELS
  154.         new old_p[256]
  155.         format(old_p, sizeof(old_p), "models/p_%s", models_name[i])
  156.  
  157.         new new_p[256]
  158.         format(new_p, sizeof(new_p), "models/%s/p_%s", menu_item_names[weapon_select[id]][2], models_name[i])
  159.  
  160.         if(equali(p_model, old_p) || equali(p_model, new_p)) {
  161.             if(weapon_select[id] >= 1) set_pev(id, pev_weaponmodel2, new_p)    
  162.             else set_pev(id, pev_weaponmodel2, old_p)
  163.  
  164.             break
  165.         }
  166.         #endif
  167.     }
  168.    
  169.     return PLUGIN_CONTINUE
  170. }
  171.  
  172. public clcmd_menu(id) {
  173.     new menu_line[64], menu_newline[64], i_data[64]
  174.     format(menu_line, charsmax(menu_line), "\w%L", id, "SKIN_MENU", Oles[id])
  175.  
  176.     new menu = menu_create(menu_line, "clcmd_menu_handler")
  177.  
  178.     for(new  i = 0; i < sizeof(menu_item_names); i++) {
  179.         new convert_num = str_to_num(menu_item_names[i][1])
  180.         num_to_str(i, i_data, sizeof(i_data))
  181.  
  182.         if(Oles[id] < convert_num)
  183.             format(menu_newline, charsmax(menu_newline), "%L", id, "SKIN_ITEM1", menu_item_names[i][0], convert_num)
  184.         else
  185.             format(menu_newline, charsmax(menu_newline), "%L", id, "SKIN_ITEM2", menu_item_names[i][0])
  186.         menu_additem(menu, menu_newline, i_data, 0)
  187.     }
  188.  
  189.     menu_display(id, menu, 0)
  190.  
  191.     return PLUGIN_HANDLED
  192. }
  193.  
  194. public clcmd_menu_handler(id, menu, item) {
  195.     if(item == MENU_EXIT) {
  196.         menu_destroy(menu)
  197.         return PLUGIN_HANDLED
  198.     }
  199.  
  200.     new data[64], szName[64]
  201.     new access, callback
  202.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  203.  
  204.     new key = str_to_num(data)
  205.     new convert_num = str_to_num(menu_item_names[key][1])
  206.  
  207.     if(Oles[id] < convert_num) {
  208.         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)
  209.         return PLUGIN_HANDLED
  210.     }
  211.  
  212.     else {
  213.         weapon_select[id] = key
  214.         ColorChat(id, GREEN, "^3[^4ĐØŇ VÏŢØ^3]^1 Ezt a csomagot választottad: ^4%s!", menu_item_names[key][0], convert_num)
  215.         Hook_P_V_Model(id)
  216.     }
  217.  
  218.     return PLUGIN_CONTINUE
  219. }
  220. new const REGMENU[][][] = { { "\w[Státusz]: \dNem Regisztrált", "\w[Státusz]: \dKijelentkezve" } };
  221. public Menu_Regisztracio(id)
  222. {
  223.     new String[121], Nev[32];
  224.     get_user_name(id, Nev, 31);
  225.     formatex(String, charsmax(String), "%s \r- \dRegisztráció^n%s", Prefix, REGMENU[0][Regisztralt[id]]);
  226.     new menu = menu_create(String, "Menu_Regisztracio_h");
  227.    
  228.     if(Regisztralt[id] == 0)
  229.     {
  230.         formatex(String, charsmax(String), "\wFelhasználónév: \r%s^n", regFh[id]);
  231.         menu_additem(menu, String, "1",0);
  232.         formatex(String, charsmax(String), "\wJelszó: \r%s^n", regJelszo[id]);
  233.         menu_additem(menu, String, "2",0);
  234.     }
  235.     else
  236.     {
  237.         formatex(String, charsmax(String), "\rNév: \d%s^n\wTe már regisztráltál a szerverre.", Nev, regFh[id]);
  238.         menu_additem(menu, String, "",0);
  239.     }
  240.    
  241.     if(Beirtfelhasznalot[id] == true && Beirtjelszot[id] == true)
  242.     {
  243.         formatex(String, charsmax(String), "\yRegisztráció");
  244.         menu_additem(menu, String, "3",0);
  245.     }
  246.    
  247.     menu_display(id, menu, 0);
  248.     return PLUGIN_HANDLED;
  249. }
  250. public Menu_Regisztracio_h(id, menu, item)
  251. {
  252.     if(item == MENU_EXIT)
  253.     {
  254.         menu_destroy(menu);
  255.         return;
  256.     }
  257.    
  258.     new data[9], szName[64];
  259.     new access, callback;
  260.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  261.     new key = str_to_num(data);
  262.    
  263.     switch(key)
  264.     {
  265.         case 1:
  266.         {
  267.             client_cmd(id, "messagemode Reg_Felhasznalonev");
  268.         }
  269.         case 2:
  270.         {
  271.             client_cmd(id, "messagemode Reg_Jelszo");
  272.         }
  273.         case 3:
  274.         {
  275.             Regisztralt[id] = 1;
  276.             ColorChat(id, GREEN, "%s^1Sikeresen regisztráltál a szerverre.", C_Prefix);
  277.             SQL_Update_Reg(id);
  278.         }
  279.     }
  280. }
  281. public Menu_Bejelentkezes(id)
  282. {
  283.     new String[121];
  284.     formatex(String, charsmax(String), "%s \r- \dBejelentkezés^n%s", Prefix, REGMENU[0][Regisztralt[id]]);
  285.     new menu = menu_create(String, "Menu_Bejelentkezes_h");
  286.    
  287.     formatex(String, charsmax(String), "Felhasználónév: \r%s^n", Felhasznalonev[id]);
  288.     menu_additem(menu, String, "1",0);
  289.     formatex(String, charsmax(String), "Jelszó: \r%s^n", Jelszo[id]);
  290.     menu_additem(menu, String, "2",0);
  291.    
  292.     formatex(String, charsmax(String), "\yBejelentkezés^n");
  293.     menu_additem(menu, String, "3",0);
  294.    
  295.     menu_display(id, menu, 0);
  296.     return PLUGIN_HANDLED;
  297. }
  298. public Menu_Bejelentkezes_h(id, menu, item)
  299. {
  300.     if(item == MENU_EXIT)
  301.     {
  302.         menu_destroy(menu);
  303.         return;
  304.     }
  305.    
  306.     new data[9], szName[64], Nev[32];
  307.     get_user_name(id, Nev, 31);
  308.     new access, callback;
  309.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  310.     new key = str_to_num(data);
  311.    
  312.     switch(key)
  313.     {
  314.         case 1:
  315.         {
  316.             client_cmd(id, "messagemode Log_Felhasznalonev");
  317.         }
  318.         case 2:
  319.         {
  320.             client_cmd(id, "messagemode Log_Jelszo");
  321.         }
  322.         case 3:
  323.         {
  324.             if(equali(Jelszo[id], regJelszo[id]) && (equali(Felhasznalonev[id], regFh[id])))
  325.             {
  326.                 Belepve[id] = true;
  327.                 ColorChat(id, GREEN, "%s ^1Ãœdv újra itt ^4%s ^1!", C_Prefix, Nev);
  328.             }
  329.             else
  330.             {
  331.                 ColorChat(id, GREEN, "%s ^1Hibás Felhasználónév vagy Jelszó.", C_Prefix);
  332.             }
  333.         }
  334.     }
  335. }
  336. public Menu_Fo(id)
  337. {
  338.     new String[121];
  339.     formatex(String, charsmax(String), "%s \r- \dRegisztrációs rendszer^n%s", Prefix, REGMENU[0][Regisztralt[id]]);
  340.     new menu = menu_create(String, "Menu_Fo_h");
  341.    
  342.     formatex(String, charsmax(String), "Regisztáció^n");
  343.     menu_additem(menu, String, "2",0);
  344.     formatex(String, charsmax(String), "Bejelentkezés^n^n\d-------------------------------^n%s^n-------------------------------", Website);
  345.     menu_additem(menu, String, "1",0);
  346.    
  347.     menu_display(id, menu, 0);
  348.     return PLUGIN_HANDLED;
  349. }
  350. public Menu_Fo_h(id, menu, item)
  351. {
  352.     if(item == MENU_EXIT)
  353.     {
  354.         menu_destroy(menu);
  355.         return;
  356.     }
  357.    
  358.     new data[9], szName[64];
  359.     new access, callback;
  360.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  361.     new key = str_to_num(data);
  362.    
  363.     switch(key)
  364.     {
  365.         case 1: Menu_Bejelentkezes(id);
  366.             case 2: Menu_Regisztracio(id);
  367.         }
  368. }
  369. public regisztralas_felh(id)
  370. {
  371.     new adat[32];
  372.     new hosszusag = strlen(adat);
  373.     read_args(adat, charsmax(adat));
  374.     remove_quotes(adat);
  375.     if(hosszusag >= 5)
  376.     {
  377.         regFh[id] = adat;
  378.         Beirtfelhasznalot[id] = true;
  379.         Menu_Regisztracio(id);
  380.     }
  381.     else
  382.     {
  383.         regFh[id] = adat;
  384.         Beirtfelhasznalot[id] = true;
  385.         Menu_Regisztracio(id);
  386.     }
  387.     return PLUGIN_CONTINUE;
  388. }
  389. public regisztralas_jelszo(id)
  390. {
  391.     new adat[32];
  392.     new hosszusag = strlen(adat);
  393.     read_args(adat, charsmax(adat));
  394.     remove_quotes(adat);
  395.     if(hosszusag >= 5) {
  396.         regJelszo[id] = adat;
  397.         Beirtjelszot[id] = true;
  398.         Menu_Regisztracio(id);
  399.     }
  400.     else {
  401.         regJelszo[id] = adat;
  402.         Beirtjelszot[id] = true;
  403.         Menu_Regisztracio(id);
  404.     }
  405.     return PLUGIN_CONTINUE;
  406. }
  407. public bejelentkezes_jelszo(id)
  408. {
  409.     new adat[32];
  410.     new hosszusag = strlen(adat);
  411.     read_args(adat, charsmax(adat));
  412.     remove_quotes(adat);
  413.     if(hosszusag >= 5) {
  414.         Jelszo[id] = adat;
  415.         Beirtjelszot1[id] = true;
  416.         Menu_Bejelentkezes(id);
  417.     }
  418.     else {
  419.         Jelszo[id] = adat;
  420.         Beirtjelszot1[id] = true;
  421.         Menu_Bejelentkezes(id);
  422.     }
  423.     return PLUGIN_CONTINUE;
  424. }
  425. public bejelentkezes_felh(id)
  426. {
  427.     new adat[32];
  428.     new hosszusag = strlen(adat);
  429.     read_args(adat, charsmax(adat));
  430.     remove_quotes(adat);
  431.     if(hosszusag >= 5)
  432.     {
  433.         Felhasznalonev[id] = adat;
  434.         Beirtfelhasznalot1[id] = true;
  435.         Menu_Bejelentkezes(id);
  436.     }
  437.     else
  438.     {
  439.         Felhasznalonev[id] = adat;
  440.         Beirtfelhasznalot1[id] = true;
  441.         Menu_Bejelentkezes(id);
  442.     }
  443.     return PLUGIN_CONTINUE;
  444. }
  445. public client_disconnect(id)
  446. {
  447.     if(!is_user_bot(id))
  448.     {
  449.         Update(id);
  450.     }
  451.     Belepve[id] = false;
  452.     Beirtjelszot[id] = false;
  453.     Beirtjelszot1[id] = false;
  454.     Beirtfelhasznalot[id] = false;
  455.     Beirtfelhasznalot1[id] = false;
  456.    
  457.     regFh[id][0] = EOS;
  458.     regJelszo[id][0] = EOS;
  459.     Felhasznalonev[id][0] = EOS;
  460.     Jelszo[id][0] = EOS;
  461.    
  462.     Dollar[id] = 0;
  463.     Oles[id] = 0;
  464.     Regisztralt[id] = 0;
  465.    
  466.     copy(name[id], charsmax(name[]), "");
  467. }
  468. public client_putinserver(id)
  469. {
  470.     if(!is_user_bot(id))
  471.     {
  472.         get_user_name(id, name[id], charsmax(name));
  473.         Load(id);
  474.     }
  475.     Belepve[id] = false;
  476.     Felhasznalonev[id] = "";
  477.     Jelszo[id] = "";
  478. }
  479. public plugin_cfg()
  480. {
  481.     g_SqlTuple = SQL_MakeDbTuple(SQLINFO[0], SQLINFO[1], SQLINFO[2], SQLINFO[3]);
  482.    
  483.     static Query[10048];
  484.     new Len;
  485.    
  486.     Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS `icuka_a_bolt_elen_bemutatja`");
  487.     Len += formatex(Query[Len], charsmax(Query)-Len, "(`Nev` varchar(32) NOT NULL, ");
  488.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Felhasznalonev` varchar(32) NOT NULL,");
  489.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Jelszo` varchar(32) NOT NULL,");
  490.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Regisztralt` int(11) NOT NULL,");
  491.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Oles` int(11) NOT NULL,");
  492.    
  493.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Do` int(11) NOT NULL, `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)");
  494.    
  495.     SQL_ThreadQuery(g_SqlTuple, "createTableThread", Query);
  496. }
  497. public Load(id) {
  498.     static Query[10048];
  499.     new Data[1], Name[32];
  500.     get_user_name(id, Name, 31);
  501.     Data[0] = id;
  502.    
  503.     formatex(Query, charsmax(Query), "SELECT * FROM `icuka_a_bolt_elen_bemutatja` WHERE Nev = ^"%s^";", name[id]);
  504.     SQL_ThreadQuery(g_SqlTuple, "QuerySelectData", Query, Data, 1);
  505. }
  506. public QuerySelectData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  507.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  508.  
  509.         log_amx("%s", Error);
  510.         return;
  511.     }
  512.     else {
  513.         new id = Data[0];
  514.        
  515.         if(SQL_NumRows(Query) > 0) {
  516.            Oles[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Oles"));
  517.             }
  518.         else
  519.         {
  520.             Save(id);
  521.         }
  522.     }
  523. }
  524. public Save(id)
  525. {
  526.     static Query[256];
  527.    
  528.     formatex(Query, charsmax(Query), "INSERT INTO `icuka_a_bolt_elen_bemutatja` (`Nev`) VALUES (^"%s^");", name[id]);
  529.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
  530. }
  531. public SQL_Update_Reg(id)
  532. {
  533.     static Query[10048];
  534.     new Len;
  535.    
  536.     Len += formatex(Query[Len], charsmax(Query), "UPDATE `icuka_a_bolt_elen_bemutatja` SET Felhasznalonev = ^"%s^", ", regFh[id]);
  537.     Len += formatex(Query[Len], charsmax(Query)-Len, "Jelszo = ^"%s^", ", regJelszo[id]);
  538.     Len += formatex(Query[Len], charsmax(Query)-Len, "Regisztralt = ^"%i^" WHERE Nev = ^"%s^";", Regisztralt[id], name[id]);
  539.    
  540.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
  541. }
  542. public Update(id)
  543. {
  544.     static Query[10048];
  545.     new Len;
  546.    
  547.     Len += formatex(Query[Len], charsmax(Query), "UPDATE `icuka_a_bolt_elen_bemutatja` SET do = ^"%i^", ",Dollar[id]);
  548.    
  549.     Len += formatex(Query[Len], charsmax(Query)-Len, "Oles = ^"%i^" WHERE Nev = ^"%s^";", Oles[id], name[id]);
  550.    
  551.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
  552. }
  553. public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  554.     if(FailState == TQUERY_CONNECT_FAILED)
  555.         set_fail_state("[HIBA*] NEM TUDTAM CSATLAKOZNI AZ ADATBAZISHOZ!");
  556.     else if(FailState == TQUERY_QUERY_FAILED)
  557.         set_fail_state("Query Error");
  558.     if(Errcode)
  559.         log_amx("[HIBA*] HIBAT DOBTAM: %s",Error);
  560. }
  561. public QuerySetData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  562.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  563.         log_amx("%s", Error);
  564.         return;
  565.     }
  566. }
  567. public plugin_end() {
  568.     SQL_FreeHandle(g_SqlTuple);
  569. }

Teszteld.

  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <fakemeta>
  4. #include <engine>
  5. #include <sqlx>
  6. #include <ColorChat>
  7.  
  8. #define PLUGIN "Fegyver Skin Menu"
  9. #define VERSION "1.0"
  10. #define AUTHOR "RaZzoR"
  11.  
  12. #define DICTIONARY "fegyver_skin_menu.txt"
  13.  
  14. //#define HOOK_P_MODELS
  15. #define HOOK_V_MODELS
  16. //#define HOOK_W_MODELS
  17. 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]
  18. new name[33][32], Dollar[33]
  19. new weapon_select[33]
  20. new const Website[] = "www.facebook.com/groups/rtdteam/"; //Menükben megjelenő elérhetőség
  21. new const SQLINFO[][] = { "-", "cheat462", "u6ETYtAJYNusu5e", "cheat462" };
  22. new Oles[33]
  23. new Handle:g_SqlTuple;
  24. new const Prefix[] = "[Magyar \dOnlyDust2]"; //Menüben megjelenő prefix
  25. new const C_Prefix[] = "^3[^4Magyar^3]"; //Chat Prefix
  26.  
  27. new const menu_item_names[][][] = {
  28.     { "Alap Csomag",    "0",    ""      },
  29.     { "CSGO Csomag",        "30",   "magyard2/cs_skins" },
  30.     { "Bronz Csomag",       "60",   "magyard2/brz_skins" },
  31.     { "Ezüst Csomag",        "110""magyard2/ez_skins" },
  32.     { "Metál Csomag",        "250""magyard2/mt_skins" },
  33.     { "Arany Csomag",       "460""magyard2/ar_skins" },
  34.     { "Neon Csomag",        "672""magyard2/eo_skins" },
  35.     { "Rozsdás Csomag",      "50",   "magyard2/rz_skins" },
  36.     { "Karácsony Csomag",        "1000", "magyard2/kr_skins" },
  37.     { "Tűz Csomag",      "1300", "magyard2/tz_skins" },
  38.     { "Barcelona Csomag",       "2000", "magyard2/br_skins" },
  39.     { "SzuperhÅ‘s Csomag",       "2500", "magyard2/sz_skins" },
  40.     { "Ultra Csomag",       "3400", "magyard2/ul_skins" },
  41.     { "Sztár Csomag",        "4000", "magyard2/szt_skins" },
  42.     { "VégzÅ‘s Csomag",       "10000",    "magyard2/vip_skins" }
  43.    
  44. }
  45.  
  46. new const models_name[][] = {
  47.     "ak47.mdl",                  
  48.     "m4a1.mdl",                    
  49.     "deagle.mdl",
  50.     "awp.mdl"
  51. }
  52.  
  53. public plugin_init() {
  54.     register_plugin(PLUGIN, VERSION, AUTHOR)
  55.    
  56.     register_dictionary(DICTIONARY)
  57.    
  58.     register_impulse(201, "clcmd_menu")
  59.     register_event("DeathMsg","death","a")
  60.     register_clcmd("say /menu", "clcmd_menu")
  61.     register_event("CurWeapon","Hook_P_V_Model","be","1=1")
  62.    
  63.     #if defined HOOK_W_MODELS
  64.     register_forward(FM_SetModel, "Hook_W_Model", 1)
  65.     #endif
  66. }
  67. public death(){
  68.     new killer = read_data(1)
  69.     new victim = read_data(2)
  70.    
  71.     if(killer == victim)
  72.     {
  73.         return PLUGIN_HANDLED
  74.     }
  75.     Oles[killer]++
  76.     return PLUGIN_HANDLED
  77. }
  78. public plugin_precache() {
  79.     for(new i = 0; i < sizeof(models_name); i++) {
  80.         for(new j = 1; j < sizeof(menu_item_names); j++) {
  81.             #if defined HOOK_P_MODELS
  82.             new precache_p[256]
  83.             format(precache_p, sizeof(precache_p), "models/%s/p_%s", menu_item_names[j][2], models_name[i])
  84.            
  85.             precache_model(precache_p)
  86.             #endif
  87.            
  88.             #if defined HOOK_V_MODELS
  89.             new precache_v[256]
  90.             format(precache_v, sizeof(precache_v), "models/%s/v_%s", menu_item_names[j][2], models_name[i])
  91.            
  92.             precache_model(precache_v)
  93.             #endif
  94.            
  95.             #if defined HOOK_W_MODELS
  96.             new precache_w[256]
  97.             format(precache_w, sizeof(precache_w), "models/%s/w_%s", menu_item_names[j][2], models_name[i])
  98.            
  99.             precache_model(precache_w)
  100.             #endif
  101.         }
  102.     }
  103. }
  104.  
  105. public W_Model_Hook(ent, model[]) {
  106.     if(!pev_valid(ent)) return FMRES_IGNORED
  107.    
  108.     new owner = pev(ent, pev_owner)
  109.    
  110.     for(new i = 0; i < sizeof(models_name); i++) {
  111.         new old_w[256]
  112.         format(old_w, sizeof(old_w), "models/w_%s", models_name[i])
  113.        
  114.         new new_w[256]         
  115.         format(new_w, sizeof(new_w), "models/%s/w_%s", menu_item_names[weapon_select[owner]][2], models_name[i])
  116.        
  117.         if(equali(model, old_w) || equali(model, new_w)) {
  118.             if(weapon_select[owner] >= 1) engfunc(EngFunc_SetModel, ent, new_w)
  119.             else engfunc(EngFunc_SetModel, ent, old_w)
  120.            
  121.             return FMRES_SUPERCEDE
  122.         }
  123.     }
  124.    
  125.     return FMRES_IGNORED
  126. }
  127.  
  128. public Hook_P_V_Model(id) {
  129.     if(!is_user_alive(id))
  130.         return PLUGIN_CONTINUE
  131.    
  132.     static v_model[32], p_model[32]
  133.     pev(id, pev_viewmodel2, v_model, 31)
  134.     pev(id, pev_weaponmodel2, p_model,31)
  135.    
  136.     for(new i = 0; i < sizeof(models_name); i++) {
  137.         #if defined HOOK_V_MODELS
  138.         new old_v[256]
  139.         format(old_v, sizeof(old_v), "models/v_%s", models_name[i])
  140.        
  141.         new new_v[256]
  142.         format(new_v, sizeof(new_v), "models/%s/v_%s", menu_item_names[weapon_select[id]][2], models_name[i])
  143.        
  144.         if(equali(v_model, old_v) || equali(v_model, new_v)) {
  145.             if(weapon_select[id] >= 1) set_pev(id, pev_viewmodel2, new_v)          
  146.             else set_pev(id, pev_viewmodel2, old_v)
  147.            
  148.             break
  149.         }
  150.         #endif
  151.        
  152.         #if defined HOOK_P_MODELS
  153.         new old_p[256]
  154.         format(old_p, sizeof(old_p), "models/p_%s", models_name[i])
  155.        
  156.         new new_p[256]
  157.         format(new_p, sizeof(new_p), "models/%s/p_%s", menu_item_names[weapon_select[id]][2], models_name[i])
  158.        
  159.         if(equali(p_model, old_p) || equali(p_model, new_p)) {
  160.             if(weapon_select[id] >= 1) set_pev(id, pev_weaponmodel2, new_p)    
  161.             else set_pev(id, pev_weaponmodel2, old_p)
  162.            
  163.             break
  164.         }
  165.         #endif
  166.     }
  167.    
  168.     return PLUGIN_CONTINUE
  169. }
  170.  
  171. public clcmd_menu(id) {
  172.     new menu_line[64], menu_newline[64], i_data[64]
  173.     format(menu_line, charsmax(menu_line), "\w%L", id, "SKIN_MENU", Oles[id])
  174.    
  175.     new menu = menu_create(menu_line, "clcmd_menu_handler")
  176.    
  177.     for(new  i = 0; i < sizeof(menu_item_names); i++) {
  178.         new convert_num = str_to_num(menu_item_names[i][1])
  179.         num_to_str(i, i_data, sizeof(i_data))
  180.        
  181.         if(Oles[id] < convert_num)
  182.             format(menu_newline, charsmax(menu_newline), "%L", id, "SKIN_ITEM1", menu_item_names[i][0], convert_num)
  183.         else
  184.             format(menu_newline, charsmax(menu_newline), "%L", id, "SKIN_ITEM2", menu_item_names[i][0])
  185.         menu_additem(menu, menu_newline, i_data, 0)
  186.     }
  187.    
  188.     menu_display(id, menu, 0)
  189.    
  190.     return PLUGIN_HANDLED
  191. }
  192.  
  193. public clcmd_menu_handler(id, menu, item) {
  194.     if(item == MENU_EXIT) {
  195.         menu_destroy(menu)
  196.         return PLUGIN_HANDLED
  197.     }
  198.    
  199.     new data[64], szName[64]
  200.     new access, callback
  201.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  202.    
  203.     new key = str_to_num(data)
  204.     new convert_num = str_to_num(menu_item_names[key][1])
  205.    
  206.     if(Oles[id] < convert_num) {
  207.         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)
  208.         return PLUGIN_HANDLED
  209.     }
  210.    
  211.     else {
  212.         weapon_select[id] = key
  213.         ColorChat(id, GREEN, "^3[^4ĐØŇ VÏŢØ^3]^1 Ezt a csomagot választottad: ^4%s!", menu_item_names[key][0], convert_num)
  214.         Hook_P_V_Model(id)
  215.     }
  216.    
  217.     return PLUGIN_CONTINUE
  218. }
  219. new const REGMENU[][][] = { { "\w[Státusz]: \dNem Regisztrált", "\w[Státusz]: \dKijelentkezve" } };
  220. public Menu_Regisztracio(id)
  221. {
  222.     new String[121], Nev[32];
  223.     get_user_name(id, Nev, 31);
  224.     formatex(String, charsmax(String), "%s \r- \dRegisztráció^n%s", Prefix, REGMENU[0][Regisztralt[id]]);
  225.     new menu = menu_create(String, "Menu_Regisztracio_h");
  226.    
  227.     if(Regisztralt[id] == 0)
  228.     {
  229.         formatex(String, charsmax(String), "\wFelhasználónév: \r%s^n", regFh[id]);
  230.         menu_additem(menu, String, "1",0);
  231.         formatex(String, charsmax(String), "\wJelszó: \r%s^n", regJelszo[id]);
  232.         menu_additem(menu, String, "2",0);
  233.     }
  234.     else
  235.     {
  236.         formatex(String, charsmax(String), "\rNév: \d%s^n\wTe már regisztráltál a szerverre.", Nev, regFh[id]);
  237.         menu_additem(menu, String, "",0);
  238.     }
  239.    
  240.     if(Beirtfelhasznalot[id] == true && Beirtjelszot[id] == true)
  241.     {
  242.         formatex(String, charsmax(String), "\yRegisztráció");
  243.         menu_additem(menu, String, "3",0);
  244.     }
  245.    
  246.     menu_display(id, menu, 0);
  247.     return PLUGIN_HANDLED;
  248. }
  249. public Menu_Regisztracio_h(id, menu, item)
  250. {
  251.     if(item == MENU_EXIT)
  252.     {
  253.         menu_destroy(menu);
  254.         return;
  255.     }
  256.    
  257.     new data[9], szName[64];
  258.     new access, callback;
  259.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  260.     new key = str_to_num(data);
  261.    
  262.     switch(key)
  263.     {
  264.         case 1:
  265.         {
  266.             client_cmd(id, "messagemode Reg_Felhasznalonev");
  267.         }
  268.         case 2:
  269.         {
  270.             client_cmd(id, "messagemode Reg_Jelszo");
  271.         }
  272.         case 3:
  273.         {
  274.             Regisztralt[id] = 1;
  275.             ColorChat(id, GREEN, "%s^1Sikeresen regisztráltál a szerverre.", C_Prefix);
  276.             SQL_Update_Reg(id);
  277.         }
  278.     }
  279. }
  280. public Menu_Bejelentkezes(id)
  281. {
  282.     new String[121];
  283.     formatex(String, charsmax(String), "%s \r- \dBejelentkezés^n%s", Prefix, REGMENU[0][Regisztralt[id]]);
  284.     new menu = menu_create(String, "Menu_Bejelentkezes_h");
  285.    
  286.     formatex(String, charsmax(String), "Felhasználónév: \r%s^n", Felhasznalonev[id]);
  287.     menu_additem(menu, String, "1",0);
  288.     formatex(String, charsmax(String), "Jelszó: \r%s^n", Jelszo[id]);
  289.     menu_additem(menu, String, "2",0);
  290.    
  291.     formatex(String, charsmax(String), "\yBejelentkezés^n");
  292.     menu_additem(menu, String, "3",0);
  293.    
  294.     menu_display(id, menu, 0);
  295.     return PLUGIN_HANDLED;
  296. }
  297. public Menu_Bejelentkezes_h(id, menu, item)
  298. {
  299.     if(item == MENU_EXIT)
  300.     {
  301.         menu_destroy(menu);
  302.         return;
  303.     }
  304.    
  305.     new data[9], szName[64], Nev[32];
  306.     get_user_name(id, Nev, 31);
  307.     new access, callback;
  308.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  309.     new key = str_to_num(data);
  310.    
  311.     switch(key)
  312.     {
  313.         case 1:
  314.         {
  315.             client_cmd(id, "messagemode Log_Felhasznalonev");
  316.         }
  317.         case 2:
  318.         {
  319.             client_cmd(id, "messagemode Log_Jelszo");
  320.         }
  321.         case 3:
  322.         {
  323.             if(equali(Jelszo[id], regJelszo[id]) && (equali(Felhasznalonev[id], regFh[id])))
  324.             {
  325.                 Belepve[id] = true;
  326.                 ColorChat(id, GREEN, "%s ^1Ãœdv újra itt ^4%s ^1!", C_Prefix, Nev);
  327.             }
  328.             else
  329.             {
  330.                 ColorChat(id, GREEN, "%s ^1Hibás Felhasználónév vagy Jelszó.", C_Prefix);
  331.             }
  332.         }
  333.     }
  334. }
  335. public Menu_Fo(id)
  336. {
  337.     new String[121];
  338.     formatex(String, charsmax(String), "%s \r- \dRegisztrációs rendszer^n%s", Prefix, REGMENU[0][Regisztralt[id]]);
  339.     new menu = menu_create(String, "Menu_Fo_h");
  340.    
  341.     formatex(String, charsmax(String), "Regisztáció^n");
  342.     menu_additem(menu, String, "2",0);
  343.     formatex(String, charsmax(String), "Bejelentkezés^n^n\d-------------------------------^n%s^n-------------------------------", Website);
  344.     menu_additem(menu, String, "1",0);
  345.    
  346.     menu_display(id, menu, 0);
  347.     return PLUGIN_HANDLED;
  348. }
  349. public Menu_Fo_h(id, menu, item)
  350. {
  351.     if(item == MENU_EXIT)
  352.     {
  353.         menu_destroy(menu);
  354.         return;
  355.     }
  356.    
  357.     new data[9], szName[64];
  358.     new access, callback;
  359.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  360.     new key = str_to_num(data);
  361.    
  362.     switch(key)
  363.     {
  364.         case 1: Menu_Bejelentkezes(id);
  365.             case 2: Menu_Regisztracio(id);
  366.         }
  367. }
  368. public regisztralas_felh(id)
  369. {
  370.     new adat[32];
  371.     new hosszusag = strlen(adat);
  372.     read_args(adat, charsmax(adat));
  373.     remove_quotes(adat);
  374.     if(hosszusag >= 5)
  375.     {
  376.         regFh[id] = adat;
  377.         Beirtfelhasznalot[id] = true;
  378.         Menu_Regisztracio(id);
  379.     }
  380.     else
  381.     {
  382.         regFh[id] = adat;
  383.         Beirtfelhasznalot[id] = true;
  384.         Menu_Regisztracio(id);
  385.     }
  386.     return PLUGIN_CONTINUE;
  387. }
  388. public regisztralas_jelszo(id)
  389. {
  390.     new adat[32];
  391.     new hosszusag = strlen(adat);
  392.     read_args(adat, charsmax(adat));
  393.     remove_quotes(adat);
  394.     if(hosszusag >= 5) {
  395.         regJelszo[id] = adat;
  396.         Beirtjelszot[id] = true;
  397.         Menu_Regisztracio(id);
  398.     }
  399.     else {
  400.         regJelszo[id] = adat;
  401.         Beirtjelszot[id] = true;
  402.         Menu_Regisztracio(id);
  403.     }
  404.     return PLUGIN_CONTINUE;
  405. }
  406. public bejelentkezes_jelszo(id)
  407. {
  408.     new adat[32];
  409.     new hosszusag = strlen(adat);
  410.     read_args(adat, charsmax(adat));
  411.     remove_quotes(adat);
  412.     if(hosszusag >= 5) {
  413.         Jelszo[id] = adat;
  414.         Beirtjelszot1[id] = true;
  415.         Menu_Bejelentkezes(id);
  416.     }
  417.     else {
  418.         Jelszo[id] = adat;
  419.         Beirtjelszot1[id] = true;
  420.         Menu_Bejelentkezes(id);
  421.     }
  422.     return PLUGIN_CONTINUE;
  423. }
  424. public bejelentkezes_felh(id)
  425. {
  426.     new adat[32];
  427.     new hosszusag = strlen(adat);
  428.     read_args(adat, charsmax(adat));
  429.     remove_quotes(adat);
  430.     if(hosszusag >= 5)
  431.     {
  432.         Felhasznalonev[id] = adat;
  433.         Beirtfelhasznalot1[id] = true;
  434.         Menu_Bejelentkezes(id);
  435.     }
  436.     else
  437.     {
  438.         Felhasznalonev[id] = adat;
  439.         Beirtfelhasznalot1[id] = true;
  440.         Menu_Bejelentkezes(id);
  441.     }
  442.     return PLUGIN_CONTINUE;
  443. }
  444. public client_disconnect(id)
  445. {
  446.     if(!is_user_bot(id))
  447.     {
  448.         Update(id);
  449.     }
  450.     Belepve[id] = false;
  451.     Beirtjelszot[id] = false;
  452.     Beirtjelszot1[id] = false;
  453.     Beirtfelhasznalot[id] = false;
  454.     Beirtfelhasznalot1[id] = false;
  455.    
  456.     regFh[id][0] = EOS;
  457.     regJelszo[id][0] = EOS;
  458.     Felhasznalonev[id][0] = EOS;
  459.     Jelszo[id][0] = EOS;
  460.    
  461.     Dollar[id] = 0;
  462.     Oles[id] = 0;
  463.     Regisztralt[id] = 0;
  464.    
  465.     copy(name[id], charsmax(name[]), "");
  466. }
  467. public client_putinserver(id)
  468. {
  469.     if(!is_user_bot(id))
  470.     {
  471.         get_user_name(id, name[id], charsmax(name));
  472.         Load(id);
  473.     }
  474.     Belepve[id] = false;
  475.     Felhasznalonev[id] = "";
  476.     Jelszo[id] = "";
  477. }
  478. public plugin_cfg()
  479. {
  480.     g_SqlTuple = SQL_MakeDbTuple(SQLINFO[0], SQLINFO[1], SQLINFO[2], SQLINFO[3]);
  481.    
  482.     static Query[10048];
  483.     new Len;
  484.    
  485.     Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS `icuka_a_bolt_elen_bemutatja`");
  486.     Len += formatex(Query[Len], charsmax(Query)-Len, "(`Nev` varchar(32) NOT NULL, ");
  487.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Felhasznalonev` varchar(32) NOT NULL,");
  488.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Jelszo` varchar(32) NOT NULL,");
  489.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Regisztralt` int(11) NOT NULL,");
  490.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Oles` int(11) NOT NULL,");
  491.    
  492.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Do` int(11) NOT NULL, `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)");
  493.    
  494.     SQL_ThreadQuery(g_SqlTuple, "createTableThread", Query);
  495. }
  496. public Load(id) {
  497.     static Query[10048];
  498.     new Data[1], Name[32];
  499.     get_user_name(id, Name, 31);
  500.     Data[0] = id;
  501.    
  502.     formatex(Query, charsmax(Query), "SELECT * FROM `icuka_a_bolt_elen_bemutatja` WHERE Nev = ^"%s^";", name[id]);
  503.     SQL_ThreadQuery(g_SqlTuple, "QuerySelectData", Query, Data, 1);
  504. }
  505. public QuerySelectData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  506.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  507.        
  508.         log_amx("%s", Error);
  509.         return;
  510.     }
  511.     else {
  512.         new id = Data[0];
  513.        
  514.         if(SQL_NumRows(Query) > 0) {
  515.             Oles[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Oles"));
  516.             Dollar[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Do"));
  517.         }
  518.         else
  519.         {
  520.             Save(id);
  521.         }
  522.     }
  523. }
  524. public Save(id)
  525. {
  526.     static Query[256];
  527.    
  528.     formatex(Query, charsmax(Query), "INSERT INTO `icuka_a_bolt_elen_bemutatja` (`Nev`) VALUES (^"%s^");", name[id]);
  529.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
  530. }
  531. public SQL_Update_Reg(id)
  532. {
  533.     static Query[10048];
  534.     new Len;
  535.    
  536.     Len += formatex(Query[Len], charsmax(Query), "UPDATE `icuka_a_bolt_elen_bemutatja` SET Felhasznalonev = ^"%s^", ", regFh[id]);
  537.     Len += formatex(Query[Len], charsmax(Query)-Len, "Jelszo = ^"%s^", ", regJelszo[id]);
  538.     Len += formatex(Query[Len], charsmax(Query)-Len, "Regisztralt = ^"%i^" WHERE Nev = ^"%s^";", Regisztralt[id], name[id]);
  539.    
  540.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
  541. }
  542. public Update(id)
  543. {
  544.     static Query[10048];
  545.     new Len;
  546.    
  547.     Len += formatex(Query[Len], charsmax(Query), "UPDATE `icuka_a_bolt_elen_bemutatja` SET do = ^"%i^", ",Dollar[id]);
  548.    
  549.     Len += formatex(Query[Len], charsmax(Query)-Len, "Oles = ^"%i^" WHERE Nev = ^"%s^";", Oles[id], name[id]);
  550.    
  551.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
  552. }
  553. public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  554.     if(FailState == TQUERY_CONNECT_FAILED)
  555.         set_fail_state("[HIBA*] NEM TUDTAM CSATLAKOZNI AZ ADATBAZISHOZ!");
  556.     else if(FailState == TQUERY_QUERY_FAILED)
  557.         set_fail_state("Query Error");
  558.     if(Errcode)
  559.         log_amx("[HIBA*] HIBAT DOBTAM: %s",Error);
  560. }
  561. public QuerySetData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  562.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  563.         log_amx("%s", Error);
  564.         return;
  565.     }
  566. }
  567. public plugin_end() {
  568.     SQL_FreeHandle(g_SqlTuple);
  569. }


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 6 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 63 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole