hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.05.25. 11:10



Jelenlévő felhasználók

Jelenleg 208 felhasználó van jelen :: 2 regisztrált, 0 rejtett és 206 vendég

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

Regisztrált felhasználók: ASDD, 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  [ 7 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Precache Fatal Error.
HozzászólásElküldve: 2016.06.04. 19:35 
Offline
Tag
Avatar

Csatlakozott: 2015.08.23. 14:22
Hozzászólások: 39
Megköszönt másnak: 17 alkalommal
Megköszönték neki: 4 alkalommal
Nos a probléma az, hogy nem precacheli az alap skineket sőt semmit. Maga a plugin el indul és működésképes is amíg spec-ben vagyunk (regisztráció láda piac menük mennek). Viszont ahogy csapatba állok vagy áll valaki abban a pillanatban jön egy hibaüzenet és fagy le az egész szerver.


FATAL ERROR (shutting down): SV_ModelIndex: model eapon_usp not precached
Segmentation fault (core dumped)

Az a furcsa, hogy a screenlog ki se jelzi rendesen "eapon_usp" Se az alap se a betett skineket nem tölti le. :/


  1. /*[Bugok]:  *Amíg nem választod ki a raktárban az 1. skint, nem mutatja a többit
  2. */
  3.        
  4. /*[Tennivalók]:    *Tec-9, PP-Bizon, és egyéb fegyverek berakása
  5.         *Offline piac elkészítése
  6.         *Natívok készítése külső pluginokhoz (kérésre megcsinálok bármilyet)
  7.         *Offline piac
  8. */
  9.  
  10. /*[Megjegyzések]:  *A ládák droppolását nem tudtam elég behatóan tesztelni a kevés skin miatt. Ha hibás, jelezzétek!
  11.             *A plugin nincs ékezetesítve!
  12.             *Köszönet mforce-nak a CS:GO-s gránát hangok pluginért. :)
  13.             *Szükséges .zip fájl linkje: https://www.dropbox.com/s/e9t2waz9lqud3u1/csgo.zip?dl=0
  14. */
  15.  
  16. /*[Changelog]
  17. v2.0.1 - SQL adatok külső fájlból való olvasása
  18. v2.0.0 - Skinek és ládák .ini fájlból való betöltése. Mellékelt alap skinek. CS:GO-s gránát hangok. Mentésben elírás javítása.
  19. v1.0.5 - Minimális teljesítményjavítás via mforce
  20. v1.0.4 - Összetettebb dropp rendszer
  21. v1.0.3 - Minden ládának saját kulcs
  22. v1.0.2 - Több láda
  23. v1.0.1 - SQL mentés és még pár bug javítása
  24. v1.0.0 - Alap ötlet
  25. */
  26.  
  27. #include <amxmodx>
  28. #include <amxmisc>
  29. #include <hamsandwich>
  30. #include <engine>
  31. #include <fakemeta>
  32. #include <sqlx>
  33. #include <colorchat>
  34.  
  35. //Köszönet mforce-nak :) (Fegyver lekérés, rádió hangok.)
  36. const m_pPlayer = 41
  37. const XO_WEAPON = 4
  38. #define get_weapon_owner(%1)        get_pdata_cbase(%1, m_pPlayer, XO_WEAPON)
  39.  
  40. const MSGARG_SENDER_ID = 2;
  41. const MSGARG_SENDER_NAME = 4;
  42. const MSGARG_PRINT_RADIO = 5;
  43. const MSGARG_AUDIO_CODE = 2;
  44.  
  45. #define MAX_SOUND_PATH_LENGTH   32
  46. #define MAX_SOUNDS              4   // 4 + 4 + 4 = 12
  47.  
  48. // default audio file format: WAVE(PCM), 8-bit, 22.05 KHz, Mono
  49. // converted: WAVE(PCM), 16-bit, 24.0 KHz, Mono
  50. new const g_szSmokeSounds[MAX_SOUNDS][MAX_SOUND_PATH_LENGTH] = {
  51.     "radio/custom/smoke01.wav",
  52.     "radio/custom/smoke02.wav",
  53.     "radio/custom/smoke03.wav",
  54.     "radio/custom/smoke04.wav"
  55. }
  56.  
  57. new const g_szFlashSounds[MAX_SOUNDS][MAX_SOUND_PATH_LENGTH] = {
  58.     "radio/custom/flashbang01.wav",
  59.     "radio/custom/flashbang02.wav",
  60.     "radio/custom/flashbang03.wav",
  61.     "radio/custom/flashbang04.wav"
  62. }
  63.  
  64. new const g_szHegrenSounds[MAX_SOUNDS][MAX_SOUND_PATH_LENGTH] = {
  65.     "radio/custom/grenade01.wav",
  66.     "radio/custom/grenade02.wav",
  67.     "radio/custom/grenade03.wav",
  68.     "radio/custom/grenade04.wav"
  69. }
  70.  
  71. new const Author[] = {"LyleChriss"}
  72. new const Version[] = {"2.0.1"}
  73. new const Plugin[] = {"CS:GO Mod"}
  74.  
  75. //SQL
  76. new const SQL_INFO[4][32]
  77. new Handle:g_SqlTuple
  78.  
  79. //Skinezendő fegyverek
  80. new const weapons[][] = {
  81.     "weapon_p228",
  82.     "weapon_scout",
  83.     "weapon_xm1014",
  84.     "weapon_mac10",
  85.     "weapon_aug",
  86.     "weapon_elite",
  87.     "weapon_fiveseven",
  88.     "weapon_ump45",
  89.     "weapon_sg550",
  90.     "weapon_galil",
  91.     "weapon_famas",
  92.     "weapon_usp",
  93.     "weapon_glock18",
  94.     "weapon_awp",
  95.     "weapon_mp5navy",
  96.     "weapon_m249",
  97.     "weapon_m3",
  98.     "weapon_m4a1",
  99.     "weapon_tmp",
  100.     "weapon_g3sg1",
  101.     "weapon_deagle",
  102.     "weapon_sg552",
  103.     "weapon_ak47",
  104.     "weapon_knife",
  105.     "weapon_p90"
  106. }
  107.  
  108. //Egyéb skinezendő dolgok
  109. new const Others[][] = {
  110.     "weapon_hegrenade",
  111.     "weapon_smokegrenade",
  112.     "weapon_c4",
  113.     "weapon_flashbang"
  114. }
  115.  
  116. //Alap skinek
  117. new const DefaultSkins[][] = {
  118.     {"weapon_p228", "g_offen/v_p228.mdl"},
  119.     {"weapon_scout", "g_offen/v_scout.mdl"},
  120.     {"weapon_xm1014", "g_offen/v_xm1014.mdl"},
  121.     {"weapon_mac10", "g_offen/v_mac10.mdl"},
  122.     {"weapon_aug", "g_offen/v_aug.mdl"},
  123.     {"weapon_elite", "g_offen/v_elite.mdl"},
  124.     {"weapon_fiveseven", "g_offen/v_fiveseven.mdl"},
  125.     {"weapon_ump45", "g_offen/v_ump45.mdl"},
  126.     {"weapon_galil", "g_offen/v_galil.mdl"},
  127.     {"weapon_famas", "g_offen/v_famas.mdl"},
  128.     {"weapon_usp", "g_offen/v_usp.mdl"},
  129.     {"weapon_glock18", "g_offen/v_glock18.mdl"},
  130.     {"weapon_awp", "g_offen/v_awp.mdl"},
  131.     {"weapon_mp5navy", "g_offen/v_mp5navy.mdl"},
  132.     {"weapon_m249", "g_offen/v_m249.mdl"},
  133.     {"weapon_m3", "g_offen/v_m3.mdl"},
  134.     {"weapon_m4a1", "g_offen/v_m4a1.mdl"},
  135.     {"weapon_tmp", "g_offen/v_tmp.mdl"},
  136.     {"weapon_g3sg1", "g_offen/v_g3sg1.mdl"},
  137.     {"weapon_deagle", "g_offen/v_deagle.mdl"},
  138.     {"weapon_sg552", "g_offen/v_sg552.mdl"},
  139.     {"weapon_ak47", "g_offen/vak47.mdl"},
  140.     {"weapon_knife", "g_offen/v_knife.mdl"},
  141.     {"weapon_p90", "g_offen/v_p90.mdl"},
  142.     {"weapon_sg550", "g_offen/v_sg550.mdl"},
  143.     {"weapon_hegrenade", "g_offen/v_hegrenade.mdl"},
  144.     {"weapon_smokegrenade", "g_offen/v_smokegrenade.mdl"},
  145.     {"weapon_c4", "g_offen/v_c4.mdl"},
  146.     {"weapon_flashbang", "g_offen/v_flashbang.mdl"}
  147. }
  148.  
  149. //Ideiglenes tömb a skineknek
  150. enum _:DATA
  151. {
  152.     EntName[32],
  153.     Drop_from,
  154.     Rarity,
  155.     InSQL[32],
  156.     Name[32],
  157.     Model[64]
  158. }
  159.  
  160. new tmp_Skins[DATA]
  161.  
  162. //Dinamikus tömb a skineknek és ládáknak
  163. new Array:Skins, Array:Cases
  164.  
  165. //Birtokol cuccok
  166. new Array:Owned[33], Array:OwnedKeys[33], Array:OwnedCases[33]
  167.  
  168. //Kiválasztott skin
  169. new chosen[33][sizeof(weapons)]
  170.  
  171. //Arany
  172. new arany[33]
  173.  
  174. //Küldés menü
  175. new send[33][8], target[33]
  176.  
  177. //Piac
  178. enum _:Market
  179. {
  180.     bool:Stuff,
  181.     Put_out,
  182.     Value
  183. }
  184.  
  185. new Market_Things[33][Market]
  186.  
  187. //Cvarok
  188. new cvar_Prefix, cvar_KeyDrop, cvar_CaseDrop
  189. new Prefix[32]
  190.  
  191. //Egyéb
  192. new name[33][32], authid[33][32]
  193.  
  194. public plugin_init() {
  195.     register_plugin(Plugin, Version, Author)
  196.     register_cvar("public_csgo", Version, FCVAR_SERVER | FCVAR_SPONLY)
  197.    
  198.     //Fegyver modellcserék
  199.     for(new i; i<sizeof(weapons); i++)
  200.         RegisterHam(Ham_Item_Deploy, weapons[i], "ItemDeploy_weapon", 1)
  201.     for(new i; i<sizeof(Others);i++)
  202.         RegisterHam(Ham_Item_Deploy, Others[i], "ItemDeploy_Other", 1)
  203.    
  204.     //Menü parancsok
  205.     register_impulse(201, "FoMenu")
  206.     register_clcmd("say /fomenu", "FoMenu")
  207.     register_clcmd("say_team /fomenu", "FoMenu")
  208.     register_clcmd("say /menu", "FoMenu")
  209.     register_clcmd("say_team /menu", "FoMenu")
  210.    
  211.     //Say módok
  212.     register_clcmd("DARAB", "Kuldes")
  213.     register_clcmd("ARANY", "Ellenorzes")
  214.    
  215.     //Halál
  216.     register_event("DeathMsg", "eDeathMsg", "a")
  217.    
  218.     //Cvarok
  219.     cvar_Prefix = register_cvar("csgo_prefix", "CS:GO")
  220.     cvar_KeyDrop = register_cvar("csgo_keydrop", "7.0")
  221.     cvar_CaseDrop = register_cvar("csgo_casedrop", "25.0")
  222.     get_pcvar_string(cvar_Prefix, Prefix, charsmax(Prefix))
  223.    
  224.     //Gránát cuccmók
  225.     register_message(get_user_msgid("SendAudio"), "Message_SendAudio");
  226.     register_message(get_user_msgid("TextMsg"), "Message_TextMsg");
  227.    
  228.     get_cvar_string("amx_sql_host", SQL_INFO[0], charsmax(SQL_INFO[]))
  229.     get_cvar_string("amx_sql_user", SQL_INFO[1], charsmax(SQL_INFO[]))
  230.     get_cvar_string("amx_sql_pass", SQL_INFO[2], charsmax(SQL_INFO[]))
  231.     get_cvar_string("amx_sql_db", SQL_INFO[3], charsmax(SQL_INFO[]))
  232. }
  233.  
  234. /*==========PRECACHE==========*/
  235. public plugin_precache()
  236. {
  237.     Skins = ArrayCreate(DATA)
  238.     Cases = ArrayCreate(DATA)
  239.     for(new i; i<34; i++)
  240.     {
  241.         Owned[i] = ArrayCreate()
  242.         OwnedCases[i] = ArrayCreate()
  243.         OwnedKeys[i] = ArrayCreate()
  244.     }
  245.    
  246.     new Buffer[256], pFile = fopen("addons/amxmodx/configs/g_offen.ini", "rt")
  247.    
  248.     if(pFile)
  249.     {
  250.         while(!feof(pFile))
  251.         {
  252.             fgets(pFile, Buffer, charsmax(Buffer))
  253.             if(Buffer[0] && Buffer[0] != ';' || Buffer[0] && Buffer[0] != '/' && Buffer[1] != '/')
  254.             {
  255.                 parse(Buffer, tmp_Skins[EntName], charsmax(tmp_Skins[EntName]), tmp_Skins[Drop_from], charsmax(tmp_Skins[Drop_from]), tmp_Skins[Rarity], charsmax(tmp_Skins[Rarity]), tmp_Skins[InSQL], charsmax(tmp_Skins[InSQL]), tmp_Skins[Name], charsmax(tmp_Skins[Name]), tmp_Skins[Model], charsmax(tmp_Skins[Model]))
  256.                 if(equal(tmp_Skins[EntName], "lada"))
  257.                     ArrayPushArray(Cases, tmp_Skins)
  258.                 else
  259.                     ArrayPushArray(Skins, tmp_Skins)
  260.             }
  261.         }
  262.         fclose(pFile)
  263.     }
  264.     else fprintf(pFile, ";^"entitásnév^" ^"Láda ID^" ^"Ritkaság^" ^"Neve az SQL-ben^" ^"Neve a játékbanv^" ^"modell^"^n;Példa egy AK skinre^n;^"weapon_ak47^" ^"0^" ^"1^" ^"elso_ak^" ^"AK47 | Első skin^" ^"models/g_offen/v_ak47_1.mdl^"^n;Példa egy ládára^n;^"lada^" ^"^" ^"^" ^"elso_lada^" ^"Operation Wildfire^" ^"^"^n");
  265.    
  266.    
  267.     for(new i; i<sizeof(DefaultSkins);i++)
  268.         precache_model(DefaultSkins[i][1])
  269.        
  270.     for(new i; i<ArraySize(Skins);i++)
  271.     {
  272.         ArrayGetArray(Skins, i, tmp_Skins)
  273.         precache_model(tmp_Skins[Model])
  274.     }
  275.    
  276.     //Gránát hangok
  277.     for(new i; i< MAX_SOUNDS; i++)
  278.     {
  279.         precache_sound(g_szSmokeSounds[i])
  280.         precache_sound(g_szFlashSounds[i])
  281.         precache_sound(g_szHegrenSounds[i])
  282.     }
  283. }
  284.  
  285. /*==========SQL MENTÉS==========*/
  286. //Ne piszkáld, tökéletes!
  287. public plugin_cfg()
  288. {
  289.     static Query[5120], Len
  290.     g_SqlTuple = SQL_MakeDbTuple(SQL_INFO[0],SQL_INFO[1],SQL_INFO[2],SQL_INFO[3])
  291.    
  292.     Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS `g_offen` (`authid` varchar(32) NOT NULL, `username` varchar(32) NOT NULL")
  293.     for(new i; i<ArraySize(Skins);i++)
  294.     {
  295.         ArrayGetArray(Skins, i, tmp_Skins)
  296.         Len += formatex(Query[Len], charsmax(Query)-Len, ", `%s` int(11) NOT NULL", tmp_Skins[InSQL])
  297.     }
  298.     for(new i; i<ArraySize(Cases);i++)
  299.     {
  300.         ArrayGetArray(Cases, i, tmp_Skins)
  301.         Len += formatex(Query[Len], charsmax(Query)-Len, ", `%s` int(11) NOT NULL, `%s_k` int(11) NOT NULL", tmp_Skins[InSQL], tmp_Skins[InSQL])
  302.     }
  303.     Len += formatex(Query[Len], charsmax(Query)-Len, ", `gold` int(11) NOT NULL, `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)")
  304.     SQL_ThreadQuery(g_SqlTuple,"createTableThread", Query)
  305. }
  306.      
  307. public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
  308. {
  309.     if(FailState == TQUERY_CONNECT_FAILED)
  310.         set_fail_state("Nem lehet csatlakozni az adatbazishoz.")
  311.     else if(FailState == TQUERY_QUERY_FAILED)
  312.         set_fail_state("Query Error")
  313.     if(Errcode)
  314.         log_amx("Hiba: %s",Error)
  315. }
  316.  
  317. public client_putinserver(id)
  318. {
  319.     if(!is_user_bot(id) && !is_user_hltv(id))
  320.     {
  321.         get_user_name(id, name[id], charsmax(name))
  322.         get_user_authid(id, authid[id], charsmax(authid))
  323.         if(contain(authid[id], "_ID_LAN") != -1) get_user_ip(id, authid[id], charsmax(authid), 1)
  324.         Load_SQL(id)
  325.     }
  326. }
  327.  
  328. public client_disconnect(id)
  329. {
  330.     if(!is_user_bot(id) && !is_user_hltv(id))
  331.         Update_SQL(id)
  332.    
  333.     ArrayClear(Owned[id])
  334.     ArrayClear(OwnedKeys[id])
  335.     ArrayClear(OwnedCases[id])
  336.     arrayset(chosen[id], 0, sizeof(weapons))
  337.     authid[id][0] = EOS;
  338.     name[id][0] = EOS;
  339. }
  340.  
  341. public client_infochanged(id)
  342. {
  343.     if(!is_user_connected(id))
  344.         return PLUGIN_HANDLED
  345.    
  346.     get_user_info(id, "name", name[id], charsmax(name[]))
  347.    
  348.     return PLUGIN_CONTINUE
  349. }
  350.  
  351. public Load_SQL(id)
  352. {
  353.     static Query[5120], Data[1]; Data[0] = id
  354.    
  355.     formatex(Query, charsmax(Query), "SELECT * FROM `g_offen` WHERE authid = ^"%s^";", authid[id])
  356.     SQL_ThreadQuery(g_SqlTuple, "QuerySelectData", Query, Data, 1)
  357. }
  358.  
  359. public QuerySelectData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
  360. {
  361.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
  362.     {
  363.         log_amx("%s", Error)
  364.         return
  365.     }
  366.     else
  367.     {
  368.         new id = Data[0];
  369.         new kname[32], stg
  370.  
  371.         if(SQL_NumRows(Query) > 0)
  372.         {
  373.             for(new i; i<ArraySize(Skins);i++)
  374.             {
  375.                 ArrayGetArray(Skins, i, tmp_Skins)
  376.                 stg = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, tmp_Skins[InSQL]))
  377.                 ArrayPushCell(Owned[id], stg)
  378.             }
  379.             for(new i; i<ArraySize(Cases);i++)
  380.             {
  381.                 ArrayGetArray(Cases, i, tmp_Skins)
  382.                 formatex(kname, charsmax(kname), "%s_k", tmp_Skins[InSQL])
  383.                 stg = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, kname))
  384.                 ArrayPushCell(OwnedKeys[id], stg)
  385.                 stg = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, tmp_Skins[InSQL]))
  386.                 ArrayPushCell(OwnedCases[id], stg)
  387.                
  388.             }
  389.             arany[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "gold"))
  390.         }
  391.         else
  392.         {
  393.             Save_SQL(id)
  394.         }
  395.     }
  396. }
  397.  
  398. public Save_SQL(id)
  399. {
  400.     static Query[5120], Len
  401.     Len += formatex(Query[Len], charsmax(Query), "INSERT INTO `g_offen` (`authid`, `username`")
  402.     for(new i; i<ArraySize(Skins);i++)
  403.     {
  404.         ArrayGetArray(Skins, i, tmp_Skins)
  405.         Len += formatex(Query[Len], charsmax(Query)-Len, ", `%s`", tmp_Skins[InSQL])
  406.     }
  407.     for(new i; i<ArraySize(Cases); i++)
  408.     {
  409.         ArrayGetArray(Cases, i, tmp_Skins)
  410.         Len += formatex(Query[Len], charsmax(Query)-Len, ", `%s`, `%s_k`", tmp_Skins[InSQL], tmp_Skins[InSQL])
  411.     }
  412.     Len += formatex(Query[Len], charsmax(Query)-Len, ", `gold`) VALUES (^"%s^", ^"%s^"", authid[id], name[id])
  413.     for(new i;i<ArraySize(Skins);i++)
  414.     {
  415.         Len += formatex(Query[Len], charsmax(Query)-Len, ", ^"0^"")
  416.     }
  417.     for(new i; i<ArraySize(Cases); i++)
  418.     {
  419.         Len += formatex(Query[Len], charsmax(Query)-Len, ", ^"0^", ^"0^"")
  420.     }
  421.     Len += formatex(Query[Len], charsmax(Query)-Len, ", ^"0^");")
  422.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query)
  423. }
  424.  
  425. public QuerySetData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
  426. {
  427.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
  428.     {
  429.         log_amx("%s", Error)
  430.         return
  431.     }
  432. }
  433.  
  434. public Update_SQL(id)
  435. {
  436.     static Query[5120], Len
  437.     Len += formatex(Query[Len], charsmax(Query), "UPDATE `g_offen` SET `username` = ^"%s^"", name[id])
  438.     for(new i;i<ArraySize(Skins);i++)
  439.     {
  440.         ArrayGetArray(Skins, i, tmp_Skins)
  441.         Len += formatex(Query[Len], charsmax(Query)-Len, ", `%s` = %d", tmp_Skins[InSQL], ArrayGetCell(Owned[id], i))
  442.     }
  443.     for(new i;i<ArraySize(Cases);i++)
  444.     {
  445.         ArrayGetArray(Skins, i, tmp_Skins)
  446.         Len += formatex(Query[Len], charsmax(Query)-Len, ", `%s` = %d, `%s_k` = %d", tmp_Skins[InSQL], ArrayGetCell(OwnedCases[id], i), tmp_Skins[InSQL], ArrayGetCell(OwnedKeys[id], i))
  447.     }
  448.     Len += formatex(Query[Len], charsmax(Query)-Len, ", `gold` = %d WHERE `authid` = ^"%s^";", arany[id], authid[id])
  449.    
  450.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query)
  451. }
  452.  
  453. public plugin_end()
  454. {
  455.     SQL_FreeHandle(g_SqlTuple)
  456.     for(new i; i<34; i++)
  457.     {
  458.         ArrayDestroy(Owned[i])
  459.         ArrayDestroy(OwnedCases[i])
  460.         ArrayDestroy(OwnedKeys[i])
  461.     }
  462.     ArrayDestroy(Skins)
  463.     ArrayDestroy(Cases)
  464. }
  465.  
  466. /*==========MENÜK==========*/
  467. //Tökéletes, de ha akarsz, belenyúlsz.
  468. //Javaslom, hogy csak a menük neveit módosítsd, a ciklusokba és handlerekbe ne nyúlj bele.
  469. public FoMenu(id)
  470. {
  471.     new txt[128]
  472.     formatex(txt, charsmax(txt), "\r%s\w%s^nby \y%s^nFőMenü", Plugin, Version, Author)
  473.     new menu = menu_create(txt, "FoMenu_h")
  474.    
  475.     menu_additem(menu, "Raktár", "", 0)
  476.     menu_additem(menu, "Láda nyitás", "", 0)
  477.     menu_additem(menu, "Lomtár", "", 0)
  478.     menu_additem(menu, "Küldés", "", 0)
  479.     menu_additem(menu, "Piac", "", 0)
  480.    
  481.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  482.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  483.      
  484.     menu_display(id, menu, 0)
  485.     return PLUGIN_HANDLED
  486. }
  487.  
  488. public FoMenu_h(id, menu, item)
  489. {
  490.     switch(item)
  491.     {
  492.         case 0:Raktar_M(id)
  493.         case 1:Lada_M(id)
  494.         case 2:Lomtar_M(id)
  495.         case 3:Kuldes_M(id)
  496.         case 4:Piac_M(id)
  497.         case MENU_EXIT:{
  498.             menu_destroy(menu)
  499.             return PLUGIN_HANDLED
  500.         }
  501.     }
  502.    
  503.     menu_destroy(menu)
  504.     return PLUGIN_HANDLED
  505. }
  506.  
  507. public Raktar_M(id)
  508. {
  509.     new txt[128], num[8]
  510.     formatex(txt, charsmax(txt), "\r%s\w%s^nRaktár", Plugin, Version)
  511.     new menu = menu_create(txt, "Raktar_h")
  512.    
  513.     for(new i; i<ArraySize(Skins);i++)
  514.     {
  515.         if(ArrayGetCell(Owned[id], i) > 0)
  516.         {
  517.             ArrayGetArray(Skins, i, tmp_Skins)
  518.             num_to_str(i, num, charsmax(num))
  519.             formatex(txt, charsmax(txt), "%s [%d DB]", tmp_Skins[Name], ArrayGetCell(Owned[id], i))
  520.             menu_additem(menu, txt, num, 0)
  521.         }
  522.     }
  523.    
  524.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  525.     menu_setprop(menu, MPROP_BACKNAME, "Vissza")
  526.     menu_setprop(menu, MPROP_NEXTNAME, "Előre")
  527.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  528.      
  529.     menu_display(id, menu, 0)
  530.     return PLUGIN_HANDLED
  531. }
  532.  
  533. public Raktar_h(id, menu, item)
  534. {
  535.     if(item == MENU_EXIT)
  536.     {
  537.         menu_destroy(menu)
  538.         return PLUGIN_HANDLED
  539.     }
  540.    
  541.     new data[9], access, callback, szName[64]
  542.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  543.     new key = str_to_num(data)
  544.    
  545.     for(new i; i<sizeof(weapons);i++)
  546.     {
  547.         ArrayGetArray(Skins, i, tmp_Skins)
  548.         if(equal(tmp_Skins[EntName], weapons[i]) != -1)
  549.         {
  550.             chosen[id][i] = key+1
  551.             ColorChat(id, NORMAL, "^4[%s]^1 Kiválasztottad a(z) ^3%s ^1skint!", Prefix, tmp_Skins[Name])
  552.            
  553.             break;
  554.         }
  555.     }
  556.    
  557.     menu_destroy(menu)
  558.     return PLUGIN_HANDLED
  559. }
  560.  
  561. public Lada_M(id)
  562. {
  563.     new txt[128]
  564.     formatex(txt, charsmax(txt), "\r%s\w%s^nLáda nyitás", Plugin, Version)
  565.     new menu = menu_create(txt, "Lada_h")
  566.    
  567.     for(new i; i<ArraySize(Cases);i++)
  568.     {
  569.         ArrayGetArray(Skins, i, tmp_Skins)
  570.         formatex(txt, charsmax(txt), "%s [%d DB] | [%d DB Kulcs]", tmp_Skins[Name], ArrayGetCell(OwnedCases[id], i), ArrayGetCell(OwnedKeys[id], i))
  571.         menu_additem(menu, txt, "", 0)
  572.     }
  573.    
  574.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  575.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  576.      
  577.     menu_display(id, menu, 0)
  578.     return PLUGIN_HANDLED
  579. }
  580.  
  581. public Lada_h(id, menu, item)
  582. {
  583.     if(item == MENU_EXIT)
  584.     {
  585.         menu_destroy(menu)
  586.         return PLUGIN_HANDLED
  587.     }
  588.    
  589.     if(ArrayGetCell(OwnedKeys[id], item) > 0 && ArrayGetCell(OwnedCases[id], item) > 0)
  590.     {
  591.         ArraySetCell(OwnedKeys[id], item, ArrayGetCell(OwnedKeys[id], item)-1)
  592.         ArraySetCell(OwnedCases[id], item, ArrayGetCell(OwnedCases[id], item)-1)
  593.         weapon_drop(id, item)
  594.     }
  595.     else
  596.     {
  597.         ArrayGetArray(Skins, item, tmp_Skins)
  598.         if(ArrayGetCell(OwnedKeys[id], item) == 0)
  599.             ColorChat(id, NORMAL, "^4[%s]^1 Nincs elég ^4%s Kulcsod^1!", Prefix, tmp_Skins[Name])
  600.         else
  601.             ColorChat(id, NORMAL, "^4[%s]^1 Nincs elég ^4%s Ládád^1!", Prefix, tmp_Skins[Name])
  602.     }
  603.     menu_destroy(menu)
  604.     return PLUGIN_HANDLED
  605. }
  606.  
  607. public Lomtar_M(id)
  608. {
  609.     new txt[128], num[8]
  610.     formatex(txt, charsmax(txt), "\r%s\w%s^nLomtár", Plugin, Version)
  611.     new menu = menu_create(txt, "Lomtar_h")
  612.    
  613.     for(new i; i<ArraySize(Skins);i++)
  614.     {
  615.         if(ArrayGetCell(Owned[id], i) > 0)
  616.         {
  617.             ArrayGetArray(Skins, i, tmp_Skins)
  618.             num_to_str(i, num, charsmax(num))
  619.             formatex(txt, charsmax(txt), "%s [%d DB]", tmp_Skins[Name], ArrayGetCell(Owned[id], i))
  620.             menu_additem(menu, txt, num, 0)
  621.         }
  622.     }
  623.    
  624.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  625.     menu_setprop(menu, MPROP_BACKNAME, "Vissza")
  626.     menu_setprop(menu, MPROP_NEXTNAME, "Előre")
  627.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  628.      
  629.     menu_display(id, menu, 0)
  630.     return PLUGIN_HANDLED
  631. }
  632.  
  633. public Lomtar_h(id, menu, item)
  634. {
  635.     if(item == MENU_EXIT)
  636.     {
  637.         menu_destroy(menu)
  638.         return PLUGIN_HANDLED
  639.     }
  640.    
  641.     new data[9], access, callback, szName[64]
  642.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  643.     new key = str_to_num(data)
  644.    
  645.     ArraySetCell(Owned[id], key, ArrayGetCell(Owned[id], key)-1)
  646.     ArrayGetArray(Skins, key, tmp_Skins)
  647.     ColorChat(id, NORMAL, "^4[%s]^1 Eldobtál egy ^3%s ^1skint!", Prefix, tmp_Skins[Name])
  648.     Update_SQL(id)
  649.    
  650.     menu_destroy(menu)
  651.     return PLUGIN_HANDLED
  652. }
  653.  
  654. public Kuldes_M(id)
  655. {
  656.     new txt[128], num[8]
  657.     formatex(txt, charsmax(txt), "\r%s\w%s^nKüldés", Plugin, Version)
  658.     new menu = menu_create(txt, "Kuldes_h")
  659.    
  660.     formatex(txt, charsmax(txt), "Arany: %d", arany[id])
  661.     menu_additem(menu, txt, "Arany", 0)
  662.    
  663.     for(new i; i<ArraySize(Skins);i++)
  664.     {
  665.         if(ArrayGetCell(Owned[id], i) > 0)
  666.         {
  667.             ArrayGetArray(Skins, i, tmp_Skins)
  668.             num_to_str(i, num, charsmax(num))
  669.             formatex(txt, charsmax(txt), "%s [%d DB]", tmp_Skins[Name], ArrayGetCell(Owned[id], i))
  670.             menu_additem(menu, txt, num, 0)
  671.         }
  672.     }
  673.    
  674.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  675.     menu_setprop(menu, MPROP_BACKNAME, "Vissza")
  676.     menu_setprop(menu, MPROP_NEXTNAME, "Előre")
  677.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  678.      
  679.     menu_display(id, menu, 0)
  680.     return PLUGIN_HANDLED
  681. }
  682.  
  683. public Kuldes_h(id, menu, item)
  684. {
  685.     if(item == MENU_EXIT)
  686.     {
  687.         menu_destroy(menu)
  688.         return PLUGIN_HANDLED
  689.     }
  690.    
  691.     new data[9], access, callback, szName[64]
  692.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  693.    
  694.     copy(send[id], charsmax(send[]), data)
  695.     JatekosValaszt(id)
  696.    
  697.     menu_destroy(menu)
  698.     return PLUGIN_HANDLED
  699. }
  700.  
  701. public JatekosValaszt(id)
  702. {
  703.     new txt[128], userID[32]
  704.     formatex(txt, charsmax(txt), "\r%s\w%s^nVálassz játékost!", Plugin, Version)
  705.     new menu = menu_create(txt, "JatekosValaszt_h")
  706.    
  707.     new players[32], pnum
  708.     get_players(players, pnum, "c")
  709.    
  710.     for(new i; i<pnum; i++)
  711.     {
  712.         if(!is_user_connected(players[i]))
  713.                 continue;
  714.        
  715.         formatex(userID, charsmax(userID), "%d", get_user_userid(players[i]))
  716.         menu_additem(menu, name[players[i]], userID, 0)
  717.     }
  718.    
  719.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  720.     menu_setprop(menu, MPROP_BACKNAME, "Vissza")
  721.     menu_setprop(menu, MPROP_NEXTNAME, "Előre")
  722.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  723.      
  724.     menu_display(id, menu, 0)
  725.     return PLUGIN_HANDLED
  726. }
  727.  
  728. public JatekosValaszt_h(id, menu, item)
  729. {
  730.     if(item == MENU_EXIT)
  731.     {
  732.         menu_destroy(menu)
  733.         return PLUGIN_HANDLED
  734.     }
  735.    
  736.     new data[9], access, callback, szName[64]
  737.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  738.     new userID = str_to_num(data)
  739.     target[id] = find_player("k", userID)
  740.    
  741.     if(!is_user_connected(target[id]))
  742.     {
  743.         ColorChat(id, NORMAL, "^4[%s]^1 Sajnálom, lecsatlakozott akit kiválasztottál!", Prefix)
  744.         menu_display(id, menu, 0)
  745.         return PLUGIN_HANDLED
  746.     }
  747.    
  748.     client_cmd(id, "messagemode DARAB");
  749.     menu_destroy(menu);
  750.     return PLUGIN_HANDLED;
  751. }
  752.  
  753. public Kuldes(id)
  754. {
  755.     new txt[128], num
  756.     read_args(txt, charsmax(txt))
  757.     remove_quotes(txt)
  758.    
  759.     if(is_str_num(txt))
  760.     {
  761.         num = str_to_num(txt)
  762.        
  763.         if(equal(send[id], "Arany"))
  764.         {
  765.             if(arany[id] >= num)
  766.             {
  767.                 arany[target[id]] += num
  768.                 arany[id] -= num
  769.                
  770.                 ColorChat(target[id], NORMAL, "^4[%s]^1 Kaptál ^3%d^1 ^4arany^1at!", Prefix, num)
  771.                 ColorChat(id, NORMAL, "^4[%s]^1 Elküldtél ^3%d^1 ^4arany^1at!", Prefix, num)
  772.                 Update_SQL(id)
  773.                 Update_SQL(target[id])
  774.             }
  775.             else
  776.                 ColorChat(id, NORMAL, "^4[%s]^1 Nincs elég ^4arany^1ad!", Prefix)
  777.         }
  778.         else
  779.         {
  780.             new i = str_to_num(send[id])
  781.            
  782.             if(ArrayGetCell(Owned[id], i) >= num)
  783.             {
  784.                 ArraySetCell(Owned[target[id]], i, ArrayGetCell(Owned[target[id]], i)+1)
  785.                 ArraySetCell(Owned[id], i, ArrayGetCell(Owned[id], i)-1)
  786.                 ArrayGetArray(Skins, i, tmp_Skins)
  787.                
  788.                 ColorChat(target[id], NORMAL, "^4[%s]^1 Kaptál ^3%d ^4%s^1-t!", Prefix, num, tmp_Skins[Name])
  789.                 ColorChat(id, NORMAL, "^4[%s]^1 Elküldtél ^3%d ^4%s^1-t!", Prefix, num, tmp_Skins[Name])
  790.                 Update_SQL(id)
  791.                 Update_SQL(target[id])
  792.             }
  793.             else
  794.             {
  795.                 ArrayGetArray(Skins, i, tmp_Skins)
  796.                 ColorChat(id, NORMAL, "^4[%s]^1 Nincs ennyi^4%s^1-ed!", Prefix, tmp_Skins[Name])
  797.             }
  798.         }
  799.     }
  800.     else
  801.         ColorChat(id, NORMAL, "^4[%s]^1 A megadott szöveg (%s) nem csak számokat tartalmazott! Érvénytelen!", Prefix, txt)
  802.  
  803.     return PLUGIN_CONTINUE;
  804. }
  805.  
  806. public Piac_M(id)
  807. {
  808.     new txt[128]
  809.     formatex(txt, charsmax(txt), "\r%s\w%s^nPiac", Plugin, Version)
  810.     new menu = menu_create(txt, "Piac_h")
  811.    
  812.     menu_additem(menu, "Eladás", "", 0)
  813.     menu_additem(menu, "Vásárlás", "", 0)
  814.    
  815.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  816.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  817.      
  818.     menu_display(id, menu, 0)
  819.     return PLUGIN_HANDLED
  820. }
  821.  
  822. public Piac_h(id, menu, item)
  823. {
  824.     switch(item)
  825.     {
  826.         case 0: Eladas_M(id)
  827.         case 1: Vasarlas_M(id)
  828.         case MENU_EXIT:{
  829.             menu_destroy(menu)
  830.             return PLUGIN_HANDLED
  831.         }
  832.     }
  833.    
  834.     menu_destroy(menu);
  835.     return PLUGIN_HANDLED;
  836. }
  837.  
  838. public Eladas_M(id)
  839. {
  840.     new txt[128]
  841.     formatex(txt, charsmax(txt), "\r%s\w%s^nPiac eladás", Plugin, Version)
  842.     new menu = menu_create(txt, "Eladas_h")
  843.    
  844.     if(!Market_Things[id][Stuff])
  845.     {
  846.         if(Market_Things[id][Put_out] != -1)
  847.         {
  848.             ArrayGetArray(Skins, Market_Things[id][Put_out], tmp_Skins)
  849.             formatex(txt, charsmax(txt), "%s", tmp_Skins[Name])
  850.             menu_additem(menu, txt, "0", 0)
  851.         }
  852.         else
  853.             menu_additem(menu, "Válaszd ki a tárgyat!", "", 0)
  854.            
  855.         formatex(txt, charsmax(txt), "Ár: %d arany", Market_Things[id][Value])
  856.         menu_additem(menu, txt, "1", 0)
  857.        
  858.         if(Market_Things[id][Value])
  859.             menu_additem(menu, "Mehet a Piacra!", "2", 0)
  860.     }
  861.     else
  862.     {
  863.         if(Market_Things[id][Value])
  864.             menu_additem(menu, "Ajánlat visszavonása", "-1", 0)
  865.     }
  866.    
  867.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  868.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  869.     menu_display(id, menu, 0)
  870.     return PLUGIN_HANDLED
  871. }
  872.  
  873. public Eladas_h(id, menu, item)        
  874. {
  875.     if( item == MENU_EXIT )
  876.     {
  877.         menu_destroy(menu);
  878.         return PLUGIN_HANDLED;
  879.     }
  880.     new data[9], szName[64], access, callback, weapon[32]
  881.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  882.     new key = str_to_num(data)
  883.    
  884.     switch(key)
  885.     {
  886.         case -1:
  887.         {
  888.             Market_Things[id][Value] = 0
  889.             Market_Things[id][Stuff] = false
  890.             ArraySetCell(Owned[id], Market_Things[id][Put_out], ArrayGetCell(Owned[id], Market_Things[id][Put_out])+1)
  891.             Market_Things[id][Put_out] = -1
  892.         }
  893.         case 0:
  894.         {
  895.             TargyValaszt(id)
  896.         }
  897.         case 1:
  898.         {
  899.             client_cmd(id, "messagemode ARANY")
  900.         }
  901.         case 2:
  902.         {
  903.             if(Market_Things[id][Put_out] != -1)
  904.             {
  905.                 Market_Things[id][Stuff] = true
  906.                 ArraySetCell(Owned[id], Market_Things[id][Put_out], ArrayGetCell(Owned[id], Market_Things[id][Put_out])-1)
  907.                 copy(weapon, charsmax(weapon), weapon_now(id))
  908.                 if(weapon[0]) weapon_set_default(id, weapon)
  909.                 ArrayGetArray(Skins, Market_Things[id][Put_out], tmp_Skins)
  910.                
  911.                 ColorChat(0, NORMAL, "^4[%s] ^3%s ^1kirakott egy ^4%s^1-t a piacra ^3%d ^4arany^1ért!", Prefix, name[id], tmp_Skins[Name], Market_Things[id][Value])
  912.             }
  913.             else
  914.             {
  915.                 ColorChat(0, NORMAL, "^4[%s] ^1Nem választottál ki semmit!", Prefix)
  916.                 menu_display(id, menu, 0)
  917.                 return PLUGIN_HANDLED
  918.             }
  919.         }
  920.     }
  921.     menu_destroy(menu)
  922.     return PLUGIN_HANDLED
  923. }
  924.  
  925. public Ellenorzes(id)
  926. {
  927.     new num, txt[32]
  928.     read_args(txt, charsmax(txt))
  929.     remove_quotes(txt)
  930.        
  931.     num = str_to_num(txt)
  932.        
  933.     if(strlen(txt) > 7)
  934.     {
  935.         client_cmd(id, "messagemode ARANY")
  936.     }
  937.     else if(num < 500)
  938.     {
  939.         ColorChat(0, NORMAL, "^4[%s] ^1Nem tudsz eladni ^3500 ^4arany^1 alatt!", Prefix)
  940.         Eladas_M(id)
  941.     }
  942.     else
  943.     {
  944.         Market_Things[id][Value] = num
  945.         Eladas_M(id)
  946.     }
  947. }
  948.  
  949. public TargyValaszt(id)
  950. {
  951.     new txt[128], num[8]
  952.     formatex(txt, charsmax(txt), "\r%s\w%s^nVálaszd ki a tárgyat!", Plugin, Version)
  953.     new menu = menu_create(txt, "TargyValaszt_h")
  954.    
  955.     for(new i;i<ArraySize(Skins);i++)
  956.     {
  957.         if(ArrayGetCell(Owned[id], i) > 0)
  958.         {
  959.             ArrayGetArray(Skins, i, tmp_Skins)
  960.             num_to_str(i, num, charsmax(num))
  961.             formatex(txt, charsmax(txt), "%s (%d DB)", tmp_Skins[Name], ArrayGetCell(Owned[id], i))
  962.             menu_additem(menu, txt, num, 0)
  963.         }
  964.     }
  965.    
  966.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  967.     menu_setprop(menu, MPROP_BACKNAME, "Vissza")
  968.     menu_setprop(menu, MPROP_NEXTNAME, "Előre")
  969.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  970.      
  971.     menu_display(id, menu, 0)
  972.     return PLUGIN_HANDLED
  973. }
  974.  
  975. public TargyValaszt_h(id, menu, item)
  976. {
  977.     if( item == MENU_EXIT )
  978.     {
  979.         menu_destroy(menu);
  980.         return PLUGIN_HANDLED;
  981.     }
  982.     new data[9], szName[64], access, callback
  983.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  984.     new key = str_to_num(data)
  985.    
  986.     Market_Things[id][Put_out] = key
  987.     Eladas_M(id)
  988.    
  989.     menu_destroy(menu)
  990.     return PLUGIN_HANDLED
  991. }
  992.  
  993. public Vasarlas_M(id)
  994. {
  995.     new txt[128], userID[32]
  996.     formatex(txt, charsmax(txt), "\r%s\w%s^nPiac vásárlás", Plugin, Version)
  997.     new menu = menu_create(txt, "Vasarlas_h")
  998.    
  999.     new players[32], pnum
  1000.     get_players(players, pnum, "c")
  1001.    
  1002.     for(new i; i<pnum;i++)
  1003.     {
  1004.         if(Market_Things[players[i]][Stuff])
  1005.         {
  1006.             ArrayGetArray(Skins, Market_Things[players[i]][Put_out], tmp_Skins)
  1007.             formatex(userID, charsmax(userID), "%d", get_user_userid(players[i]))
  1008.             formatex(txt, charsmax(txt), "%s (Eladó: %s | Ára: %d)", tmp_Skins[Name], Market_Things[players[i]][Value])
  1009.             menu_additem(menu, txt, userID, 0)
  1010.         }
  1011.     }
  1012.    
  1013.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  1014.     menu_setprop(menu, MPROP_BACKNAME, "Vissza")
  1015.     menu_setprop(menu, MPROP_NEXTNAME, "Előre")
  1016.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  1017.      
  1018.     menu_display(id, menu, 0)
  1019.     return PLUGIN_HANDLED
  1020. }
  1021.  
  1022. public Vasarlas_h(id, menu, item)
  1023. {
  1024.     if(item == MENU_EXIT)
  1025.     {
  1026.         menu_destroy(menu);
  1027.         return PLUGIN_HANDLED
  1028.     }
  1029.     new data[6] ,szName[64],access,callback
  1030.     new name[32]
  1031.        
  1032.     menu_item_getinfo(menu, item, access, data, charsmax(data), szName, charsmax(szName), callback)
  1033.     new userID = str_to_num(data)
  1034.     new userId = find_player("k", userID)
  1035.    
  1036.     if(arany[id] >= Market_Things[userId][Value] && Market_Things[userId][Stuff])
  1037.     {
  1038.         Market_Things[userId][Stuff] = false
  1039.        
  1040.         ArrayGetArray(Skins, Market_Things[userId][Put_out], tmp_Skins)
  1041.         ColorChat(id, NORMAL, "^4[%s] ^1Vettél egy ^3%s^1-t ^4%s^1-től ^3%d ^4arany^1ért!", Prefix, tmp_Skins[Name], name[userId], Market_Things[userId][Value])
  1042.         ColorChat(userID, NORMAL, "^4[%s] ^4%s^1 vett tőled ^3%s^1-t ^3%d ^4arany^1ért!", Prefix, name[id], tmp_Skins[Name], Market_Things[userId][Value])
  1043.         arany[userId] += Market_Things[userId][Value]
  1044.         arany[id] -= Market_Things[userId][Value]
  1045.         Market_Things[userId][Value] = 0
  1046.         ArraySetCell(Owned[userId], Market_Things[userId][Put_out], ArrayGetCell(Owned[userId], Market_Things[userId][Put_out])-1)
  1047.         ArraySetCell(Owned[id], Market_Things[userId][Put_out], ArrayGetCell(Owned[id], Market_Things[userId][Put_out])+1)
  1048.         Market_Things[id][Put_out] = -1
  1049.         Update_SQL(userID)
  1050.         Update_SQL(id)
  1051.     }
  1052.    
  1053.     menu_destroy(menu)
  1054.     return PLUGIN_HANDLED
  1055. }
  1056.  
  1057. /*==========DROPP==========*/
  1058. //Jól droppol, az esélyt a plugin elején állítod.
  1059. public eDeathMsg()
  1060. {
  1061.     new attacker = read_data(1)
  1062.    
  1063.     if(attacker != read_data(2) && is_user_alive(attacker))
  1064.     {
  1065.         set_hudmessage(random(255), random(255), random(255), -1.0, 0.20, 0, 6.0, 12.0)
  1066.         if(read_data(3))
  1067.         {
  1068.             new mennyiseg = random_num(100, 200)
  1069.             arany[attacker] += mennyiseg
  1070.             show_hudmessage(attacker, "[ +%d Arany ]", mennyiseg)
  1071.         }
  1072.         else
  1073.         {
  1074.             new mennyiseg = random_num(50, 100)
  1075.             arany[attacker] += mennyiseg
  1076.             show_hudmessage(attacker, "[ +%d Arany ]", mennyiseg)
  1077.         }
  1078.        
  1079.         new Float:num = random_float(0.0, 100.0)
  1080.         if(num <= get_pcvar_float(cvar_KeyDrop))
  1081.         {
  1082.             new drp = random_num(0, ArraySize(Cases)-1)
  1083.             ArraySetCell(OwnedKeys[attacker], drp, ArrayGetCell(OwnedKeys[attacker], drp)+1)
  1084.             ArrayGetArray(Cases, drp, tmp_Skins)
  1085.             ColorChat(attacker, NORMAL, "^4[%s] ^1Találtál egy ^3%s Kulcsot^1!", Prefix, tmp_Skins[Name])
  1086.         }
  1087.         else if(num <= get_pcvar_float(cvar_CaseDrop))
  1088.         {
  1089.             new drp = random_num(0, ArraySize(Cases)-1)
  1090.             ArraySetCell(OwnedCases[attacker], drp, ArrayGetCell(OwnedCases[attacker], drp)+1)
  1091.             ArrayGetArray(Cases, drp, tmp_Skins)
  1092.             ColorChat(attacker, NORMAL, "^4[%s] ^1Találtál egy ^3%s Ládát^1!", Prefix, tmp_Skins[Name])
  1093.         }  
  1094.         Update_SQL(attacker)
  1095.     }
  1096.     return PLUGIN_HANDLED      
  1097. }
  1098.  
  1099. /*==========SKIN CSERE==========*/
  1100. //Nem belenyúlni, mert könnyen összekavarodnak a dolgok!!!!
  1101. public ItemDeploy_weapon(ent)
  1102. {
  1103.     if(ent <=0)
  1104.         return HAM_IGNORED;
  1105.    
  1106.     new id = get_weapon_owner(ent)
  1107.     new wpn[32]; pev(ent, pev_classname, wpn, charsmax(wpn))
  1108.    
  1109.     for(new i; i<sizeof(weapons);i++)
  1110.     {
  1111.         if(chosen[id][i] == 0)
  1112.         {
  1113.             for(new j; j<sizeof(DefaultSkins);j++)
  1114.             {
  1115.                 if(equal(DefaultSkins[j][0], wpn))
  1116.                 {
  1117.                     set_pev(id, pev_viewmodel2, DefaultSkins[j][1])
  1118.                     return HAM_IGNORED;
  1119.                 }
  1120.             }
  1121.         }
  1122.         else
  1123.         {
  1124.             for(new j; j<ArraySize(Skins);j++)
  1125.             {
  1126.                 ArrayGetArray(Skins, j, tmp_Skins)
  1127.                 if(equal(tmp_Skins[EntName], wpn) != -1 && chosen[id][i] == j+1)
  1128.                 {
  1129.                     set_pev(id, pev_viewmodel2, tmp_Skins[Model])
  1130.                     return HAM_IGNORED;
  1131.                 }
  1132.             }
  1133.         }
  1134.     }
  1135.     return HAM_IGNORED;
  1136. }
  1137.  
  1138.  public ItemDeploy_Other(ent)
  1139. {
  1140.     if(ent <=0)
  1141.         return HAM_IGNORED;
  1142.    
  1143.     new id = get_weapon_owner(ent)
  1144.     new wpn[32]; pev(ent, pev_classname, wpn, charsmax(wpn))
  1145.    
  1146.     for(new i = 25; i<sizeof(DefaultSkins);i++)
  1147.     {
  1148.         if(equal(DefaultSkins[i][0], wpn))
  1149.         {
  1150.             set_pev(id, pev_viewmodel2, DefaultSkins[i][1])
  1151.             return HAM_IGNORED;
  1152.         }
  1153.     }
  1154.     return HAM_IGNORED;
  1155. }
  1156.  
  1157. /*==========STOCKOK==========*/
  1158. //Nem piszkálni!
  1159. stock weapon_set_default(id, weapon[])
  1160. {
  1161.     for(new i; i<sizeof(weapons);i++)
  1162.     {
  1163.         if(containi(weapons[i], weapon) != -1)
  1164.         {
  1165.             chosen[id][i] = 0
  1166.             return 1
  1167.         }
  1168.     }
  1169.     return 0
  1170. }
  1171.  
  1172. stock weapon_now(id)
  1173. {
  1174.     new wpn[32]; get_weaponname(get_user_weapon(id), wpn, charsmax(wpn))
  1175.     replace(wpn, charsmax(wpn), "weapon_", "")
  1176.    
  1177.     for(new i; i<sizeof(weapons);i++)
  1178.     {
  1179.         if(chosen[id][i] == Market_Things[id][Put_out]+1 && ArrayGetCell(Owned[id], Market_Things[id][Put_out]) < 2)
  1180.             return wpn;
  1181.     }
  1182.     wpn[0] = EOS
  1183.     return wpn;
  1184. }
  1185.  
  1186. stock weapon_drop(id, num)
  1187. {
  1188.     new Float:rarity = random_float(0.0, 100.0)
  1189.     new how_rare, count, skins[16]
  1190.    
  1191.     if(rarity < 35.0)   how_rare = 0
  1192.     else if(rarity >= 35.0 && rarity < 50.0) how_rare = 1
  1193.     else if(rarity >= 50.0 && rarity < 65.0) how_rare = 2
  1194.     else if(rarity >= 65.0 && rarity < 80.0) how_rare = 3
  1195.     else if(rarity >= 80.0 && rarity < 92.5) how_rare = 4
  1196.     else if(rarity >= 92.5 && rarity < 97.5) how_rare = 5
  1197.     else if(rarity >= 97.5 && rarity <= 100.0) how_rare = 6
  1198.    
  1199.     for(new i; i<ArraySize(Skins); i++)
  1200.     {
  1201.         ArrayGetArray(Skins, i, tmp_Skins)
  1202.         if(tmp_Skins[Rarity] == how_rare && tmp_Skins[Drop_from] == num)
  1203.         {
  1204.             skins[count] = i
  1205.             count++
  1206.         }
  1207.     }
  1208.    
  1209.     new dropped = random_num(0, count)
  1210.    
  1211.     ArraySetCell(Owned[id], skins[dropped], ArrayGetCell(Owned[id], skins[dropped])+1)
  1212.     ArrayGetArray(Skins, skins[dropped], tmp_Skins)
  1213.     ColorChat(id, NORMAL, "^4[%s]^1 Egy ^3%s ^1skint nyitottál!", Prefix, tmp_Skins[Name])
  1214. }
  1215.  
  1216. /*==========CS:GO-S GRÁNÁT HANGOK==========*/
  1217. public Message_TextMsg(iMsgId, iMsgType, iMsgEnt) {
  1218.     if(get_msg_arg_int(1) != MSGARG_PRINT_RADIO)
  1219.         return PLUGIN_CONTINUE;
  1220.  
  1221.     static szMsg[32]; get_msg_arg_string(MSGARG_PRINT_RADIO, szMsg, charsmax(szMsg));
  1222.    
  1223.     if(equal(szMsg, "#Fire_in_the_hole")) {
  1224.         static Sender[4], SenderName[32], szSound[MAX_SOUND_PATH_LENGTH], SenderId;
  1225.         get_msg_arg_string(MSGARG_SENDER_ID, Sender, charsmax(Sender));
  1226.         get_msg_arg_string(MSGARG_SENDER_NAME, SenderName, charsmax(SenderName));
  1227.  
  1228.         SenderId = str_to_num(Sender);
  1229.         switch(get_user_weapon(SenderId)) {
  1230.             case CSW_HEGRENADE: szSound = g_szHegrenSounds[random(sizeof(g_szHegrenSounds))];
  1231.             case CSW_SMOKEGRENADE: szSound = g_szSmokeSounds[random(sizeof(g_szSmokeSounds))];
  1232.             case CSW_FLASHBANG: szSound = g_szFlashSounds[random(sizeof(g_szFlashSounds))];
  1233.             default: return PLUGIN_CONTINUE;
  1234.         }
  1235.        
  1236.         emit_sound(SenderId, CHAN_VOICE, szSound, VOL_NORM, ATTN_STATIC, 0, PITCH_NORM);
  1237.         return PLUGIN_HANDLED;
  1238.     }
  1239.     return PLUGIN_CONTINUE;
  1240. }
  1241.  
  1242. public Message_SendAudio(iMsgId, iMsgType, iMsgEnt) {
  1243.     static szSound[22]
  1244.     get_msg_arg_string(MSGARG_AUDIO_CODE, szSound, charsmax(szSound))
  1245.     return equal(szSound, "%!MRAD_FIREINHOLE") ? PLUGIN_HANDLED : PLUGIN_CONTINUE
  1246. }

_________________
✯ℝaiz3n✯ツ
Kép
Egy tökéletes világban nincsenek csalók. Mi megvalósítottuk a tökéletes világot.
http://www.switchtogaming.hu


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Precache Fatal Error.
HozzászólásElküldve: 2016.06.04. 20:22 
Offline
Fanatikus
Avatar

Csatlakozott: 2015.07.21. 00:49
Hozzászólások: 178
Megköszönt másnak: 23 alkalommal
Megköszönték neki: 20 alkalommal
DefaultSkin const-hoz használj enum-ot és jó lesz.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Precache Fatal Error.
HozzászólásElküldve: 2016.06.04. 20:37 
Offline
Tag
Avatar

Csatlakozott: 2015.08.23. 14:22
Hozzászólások: 39
Megköszönt másnak: 17 alkalommal
Megköszönték neki: 4 alkalommal
error 021: symbol already defined: "DefaultSkins" Ha van időd dobd bele nekem légyszíves mert már tele a .l.

_________________
✯ℝaiz3n✯ツ
Kép
Egy tökéletes világban nincsenek csalók. Mi megvalósítottuk a tökéletes világot.
http://www.switchtogaming.hu


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Precache Fatal Error.
HozzászólásElküldve: 2016.06.04. 20:57 
Offline
Fanatikus
Avatar

Csatlakozott: 2015.07.21. 00:49
Hozzászólások: 178
Megköszönt másnak: 23 alkalommal
Megköszönték neki: 20 alkalommal
Próbáld:

  1. /*[Bugok]:  *Amíg nem választod ki a raktárban az 1. skint, nem mutatja a többit
  2. */
  3.        
  4. /*[Tennivalók]:    *Tec-9, PP-Bizon, és egyéb fegyverek berakása
  5.         *Offline piac elkészítése
  6.         *Natívok készítése külső pluginokhoz (kérésre megcsinálok bármilyet)
  7.         *Offline piac
  8. */
  9.  
  10. /*[Megjegyzések]:  *A ládák droppolását nem tudtam elég behatóan tesztelni a kevés skin miatt. Ha hibás, jelezzétek!
  11.             *A plugin nincs ékezetesítve!
  12.             *Köszönet mforce-nak a CS:GO-s gránát hangok pluginért. :)
  13.             *Szükséges .zip fájl linkje: https://www.dropbox.com/s/e9t2waz9lqud3u1/csgo.zip?dl=0
  14. */
  15.  
  16. /*[Changelog]
  17. v2.0.1 - SQL adatok külső fájlból való olvasása
  18. v2.0.0 - Skinek és ládák .ini fájlból való betöltése. Mellékelt alap skinek. CS:GO-s gránát hangok. Mentésben elírás javítása.
  19. v1.0.5 - Minimális teljesítményjavítás via mforce
  20. v1.0.4 - Összetettebb dropp rendszer
  21. v1.0.3 - Minden ládának saját kulcs
  22. v1.0.2 - Több láda
  23. v1.0.1 - SQL mentés és még pár bug javítása
  24. v1.0.0 - Alap ötlet
  25. */
  26.  
  27. #include <amxmodx>
  28. #include <amxmisc>
  29. #include <hamsandwich>
  30. #include <engine>
  31. #include <fakemeta>
  32. #include <sqlx>
  33. #include <colorchat>
  34.  
  35. //Köszönet mforce-nak :) (Fegyver lekérés, rádió hangok.)
  36. const m_pPlayer = 41
  37. const XO_WEAPON = 4
  38. #define get_weapon_owner(%1)        get_pdata_cbase(%1, m_pPlayer, XO_WEAPON)
  39.  
  40. const MSGARG_SENDER_ID = 2;
  41. const MSGARG_SENDER_NAME = 4;
  42. const MSGARG_PRINT_RADIO = 5;
  43. const MSGARG_AUDIO_CODE = 2;
  44.  
  45. #define MAX_SOUND_PATH_LENGTH   32
  46. #define MAX_SOUNDS              4   // 4 + 4 + 4 = 12
  47.  
  48. // default audio file format: WAVE(PCM), 8-bit, 22.05 KHz, Mono
  49. // converted: WAVE(PCM), 16-bit, 24.0 KHz, Mono
  50. new const g_szSmokeSounds[MAX_SOUNDS][MAX_SOUND_PATH_LENGTH] = {
  51.     "radio/custom/smoke01.wav",
  52.     "radio/custom/smoke02.wav",
  53.     "radio/custom/smoke03.wav",
  54.     "radio/custom/smoke04.wav"
  55. }
  56.  
  57. new const g_szFlashSounds[MAX_SOUNDS][MAX_SOUND_PATH_LENGTH] = {
  58.     "radio/custom/flashbang01.wav",
  59.     "radio/custom/flashbang02.wav",
  60.     "radio/custom/flashbang03.wav",
  61.     "radio/custom/flashbang04.wav"
  62. }
  63.  
  64. new const g_szHegrenSounds[MAX_SOUNDS][MAX_SOUND_PATH_LENGTH] = {
  65.     "radio/custom/grenade01.wav",
  66.     "radio/custom/grenade02.wav",
  67.     "radio/custom/grenade03.wav",
  68.     "radio/custom/grenade04.wav"
  69. }
  70.  
  71. new const Author[] = {"LyleChriss"}
  72. new const Version[] = {"2.0.1"}
  73. new const Plugin[] = {"CS:GO Mod"}
  74.  
  75. //SQL
  76. new const SQL_INFO[4][32]
  77. new Handle:g_SqlTuple
  78.  
  79. enum _:Default
  80. {
  81.     EntName[32],
  82.     Model[121]
  83. };
  84.  
  85. //Skinezendő fegyverek
  86. new const weapons[][] = {
  87.     "weapon_p228",
  88.     "weapon_scout",
  89.     "weapon_xm1014",
  90.     "weapon_mac10",
  91.     "weapon_aug",
  92.     "weapon_elite",
  93.     "weapon_fiveseven",
  94.     "weapon_ump45",
  95.     "weapon_sg550",
  96.     "weapon_galil",
  97.     "weapon_famas",
  98.     "weapon_usp",
  99.     "weapon_glock18",
  100.     "weapon_awp",
  101.     "weapon_mp5navy",
  102.     "weapon_m249",
  103.     "weapon_m3",
  104.     "weapon_m4a1",
  105.     "weapon_tmp",
  106.     "weapon_g3sg1",
  107.     "weapon_deagle",
  108.     "weapon_sg552",
  109.     "weapon_ak47",
  110.     "weapon_knife",
  111.     "weapon_p90"
  112. }
  113.  
  114. //Egyéb skinezendő dolgok
  115. new const Others[][] = {
  116.     "weapon_hegrenade",
  117.     "weapon_smokegrenade",
  118.     "weapon_c4",
  119.     "weapon_flashbang"
  120. }
  121.  
  122. //Alap skinek
  123. new const DefaultSkins[][Default] = {
  124.     {"weapon_p228", "g_offen/v_p228.mdl"},
  125.     {"weapon_scout", "g_offen/v_scout.mdl"},
  126.     {"weapon_xm1014", "g_offen/v_xm1014.mdl"},
  127.     {"weapon_mac10", "g_offen/v_mac10.mdl"},
  128.     {"weapon_aug", "g_offen/v_aug.mdl"},
  129.     {"weapon_elite", "g_offen/v_elite.mdl"},
  130.     {"weapon_fiveseven", "g_offen/v_fiveseven.mdl"},
  131.     {"weapon_ump45", "g_offen/v_ump45.mdl"},
  132.     {"weapon_galil", "g_offen/v_galil.mdl"},
  133.     {"weapon_famas", "g_offen/v_famas.mdl"},
  134.     {"weapon_usp", "g_offen/v_usp.mdl"},
  135.     {"weapon_glock18", "g_offen/v_glock18.mdl"},
  136.     {"weapon_awp", "g_offen/v_awp.mdl"},
  137.     {"weapon_mp5navy", "g_offen/v_mp5navy.mdl"},
  138.     {"weapon_m249", "g_offen/v_m249.mdl"},
  139.     {"weapon_m3", "g_offen/v_m3.mdl"},
  140.     {"weapon_m4a1", "g_offen/v_m4a1.mdl"},
  141.     {"weapon_tmp", "g_offen/v_tmp.mdl"},
  142.     {"weapon_g3sg1", "g_offen/v_g3sg1.mdl"},
  143.     {"weapon_deagle", "g_offen/v_deagle.mdl"},
  144.     {"weapon_sg552", "g_offen/v_sg552.mdl"},
  145.     {"weapon_ak47", "g_offen/vak47.mdl"},
  146.     {"weapon_knife", "g_offen/v_knife.mdl"},
  147.     {"weapon_p90", "g_offen/v_p90.mdl"},
  148.     {"weapon_sg550", "g_offen/v_sg550.mdl"},
  149.     {"weapon_hegrenade", "g_offen/v_hegrenade.mdl"},
  150.     {"weapon_smokegrenade", "g_offen/v_smokegrenade.mdl"},
  151.     {"weapon_c4", "g_offen/v_c4.mdl"},
  152.     {"weapon_flashbang", "g_offen/v_flashbang.mdl"}
  153. }
  154.  
  155. //Ideiglenes tömb a skineknek
  156. enum _:DATA
  157. {
  158.     EntName[32],
  159.     Drop_from,
  160.     Rarity,
  161.     InSQL[32],
  162.     Name[32],
  163.     Model[64]
  164. }
  165.  
  166. new tmp_Skins[DATA]
  167.  
  168. //Dinamikus tömb a skineknek és ládáknak
  169. new Array:Skins, Array:Cases
  170.  
  171. //Birtokol cuccok
  172. new Array:Owned[33], Array:OwnedKeys[33], Array:OwnedCases[33]
  173.  
  174. //Kiválasztott skin
  175. new chosen[33][sizeof(weapons)]
  176.  
  177. //Arany
  178. new arany[33]
  179.  
  180. //Küldés menü
  181. new send[33][8], target[33]
  182.  
  183. //Piac
  184. enum _:Market
  185. {
  186.     bool:Stuff,
  187.     Put_out,
  188.     Value
  189. }
  190.  
  191. new Market_Things[33][Market]
  192.  
  193. //Cvarok
  194. new cvar_Prefix, cvar_KeyDrop, cvar_CaseDrop
  195. new Prefix[32]
  196.  
  197. //Egyéb
  198. new name[33][32], authid[33][32]
  199.  
  200. public plugin_init() {
  201.     register_plugin(Plugin, Version, Author)
  202.     register_cvar("public_csgo", Version, FCVAR_SERVER | FCVAR_SPONLY)
  203.    
  204.     //Fegyver modellcserék
  205.     for(new i; i<sizeof(weapons); i++)
  206.         RegisterHam(Ham_Item_Deploy, weapons[i], "ItemDeploy_weapon", 1)
  207.     for(new i; i<sizeof(Others);i++)
  208.         RegisterHam(Ham_Item_Deploy, Others[i], "ItemDeploy_Other", 1)
  209.    
  210.     //Menü parancsok
  211.     register_impulse(201, "FoMenu")
  212.     register_clcmd("say /fomenu", "FoMenu")
  213.     register_clcmd("say_team /fomenu", "FoMenu")
  214.     register_clcmd("say /menu", "FoMenu")
  215.     register_clcmd("say_team /menu", "FoMenu")
  216.    
  217.     //Say módok
  218.     register_clcmd("DARAB", "Kuldes")
  219.     register_clcmd("ARANY", "Ellenorzes")
  220.    
  221.     //Halál
  222.     register_event("DeathMsg", "eDeathMsg", "a")
  223.    
  224.     //Cvarok
  225.     cvar_Prefix = register_cvar("csgo_prefix", "CS:GO")
  226.     cvar_KeyDrop = register_cvar("csgo_keydrop", "7.0")
  227.     cvar_CaseDrop = register_cvar("csgo_casedrop", "25.0")
  228.     get_pcvar_string(cvar_Prefix, Prefix, charsmax(Prefix))
  229.    
  230.     //Gránát cuccmók
  231.     register_message(get_user_msgid("SendAudio"), "Message_SendAudio");
  232.     register_message(get_user_msgid("TextMsg"), "Message_TextMsg");
  233.    
  234.     get_cvar_string("amx_sql_host", SQL_INFO[0], charsmax(SQL_INFO[]))
  235.     get_cvar_string("amx_sql_user", SQL_INFO[1], charsmax(SQL_INFO[]))
  236.     get_cvar_string("amx_sql_pass", SQL_INFO[2], charsmax(SQL_INFO[]))
  237.     get_cvar_string("amx_sql_db", SQL_INFO[3], charsmax(SQL_INFO[]))
  238. }
  239.  
  240. /*==========PRECACHE==========*/
  241. public plugin_precache()
  242. {
  243.     Skins = ArrayCreate(DATA)
  244.     Cases = ArrayCreate(DATA)
  245.     for(new i; i<34; i++)
  246.     {
  247.         Owned[i] = ArrayCreate()
  248.         OwnedCases[i] = ArrayCreate()
  249.         OwnedKeys[i] = ArrayCreate()
  250.     }
  251.    
  252.     new Buffer[256], pFile = fopen("addons/amxmodx/configs/g_offen.ini", "rt")
  253.    
  254.     if(pFile)
  255.     {
  256.         while(!feof(pFile))
  257.         {
  258.             fgets(pFile, Buffer, charsmax(Buffer))
  259.             if(Buffer[0] && Buffer[0] != ';' || Buffer[0] && Buffer[0] != '/' && Buffer[1] != '/')
  260.             {
  261.                 parse(Buffer, tmp_Skins[EntName], charsmax(tmp_Skins[EntName]), tmp_Skins[Drop_from], charsmax(tmp_Skins[Drop_from]), tmp_Skins[Rarity], charsmax(tmp_Skins[Rarity]), tmp_Skins[InSQL], charsmax(tmp_Skins[InSQL]), tmp_Skins[Name], charsmax(tmp_Skins[Name]), tmp_Skins[Model], charsmax(tmp_Skins[Model]))
  262.                 if(equal(tmp_Skins[EntName], "lada"))
  263.                     ArrayPushArray(Cases, tmp_Skins)
  264.                 else
  265.                     ArrayPushArray(Skins, tmp_Skins)
  266.             }
  267.         }
  268.         fclose(pFile)
  269.     }
  270.     else fprintf(pFile, ";^"entitásnév^" ^"Láda ID^" ^"Ritkaság^" ^"Neve az SQL-ben^" ^"Neve a játékbanv^" ^"modell^"^n;Példa egy AK skinre^n;^"weapon_ak47^" ^"0^" ^"1^" ^"elso_ak^" ^"AK47 | Első skin^" ^"models/g_offen/v_ak47_1.mdl^"^n;Példa egy ládára^n;^"lada^" ^"^" ^"^" ^"elso_lada^" ^"Operation Wildfire^" ^"^"^n");
  271.    
  272.    
  273.     for(new i; i<sizeof(DefaultSkins);i++)
  274.         precache_model(DefaultSkins[i][Model])
  275.        
  276.     for(new i; i<ArraySize(Skins);i++)
  277.     {
  278.         ArrayGetArray(Skins, i, tmp_Skins)
  279.         precache_model(tmp_Skins[Model])
  280.     }
  281.    
  282.     //Gránát hangok
  283.     for(new i; i< MAX_SOUNDS; i++)
  284.     {
  285.         precache_sound(g_szSmokeSounds[i])
  286.         precache_sound(g_szFlashSounds[i])
  287.         precache_sound(g_szHegrenSounds[i])
  288.     }
  289. }
  290.  
  291. /*==========SQL MENTÉS==========*/
  292. //Ne piszkáld, tökéletes!
  293. public plugin_cfg()
  294. {
  295.     static Query[5120], Len
  296.     g_SqlTuple = SQL_MakeDbTuple(SQL_INFO[0],SQL_INFO[1],SQL_INFO[2],SQL_INFO[3])
  297.    
  298.     Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS `g_offen` (`authid` varchar(32) NOT NULL, `username` varchar(32) NOT NULL")
  299.     for(new i; i<ArraySize(Skins);i++)
  300.     {
  301.         ArrayGetArray(Skins, i, tmp_Skins)
  302.         Len += formatex(Query[Len], charsmax(Query)-Len, ", `%s` int(11) NOT NULL", tmp_Skins[InSQL])
  303.     }
  304.     for(new i; i<ArraySize(Cases);i++)
  305.     {
  306.         ArrayGetArray(Cases, i, tmp_Skins)
  307.         Len += formatex(Query[Len], charsmax(Query)-Len, ", `%s` int(11) NOT NULL, `%s_k` int(11) NOT NULL", tmp_Skins[InSQL], tmp_Skins[InSQL])
  308.     }
  309.     Len += formatex(Query[Len], charsmax(Query)-Len, ", `gold` int(11) NOT NULL, `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)")
  310.     SQL_ThreadQuery(g_SqlTuple,"createTableThread", Query)
  311. }
  312.      
  313. public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
  314. {
  315.     if(FailState == TQUERY_CONNECT_FAILED)
  316.         set_fail_state("Nem lehet csatlakozni az adatbazishoz.")
  317.     else if(FailState == TQUERY_QUERY_FAILED)
  318.         set_fail_state("Query Error")
  319.     if(Errcode)
  320.         log_amx("Hiba: %s",Error)
  321. }
  322.  
  323. public client_putinserver(id)
  324. {
  325.     if(!is_user_bot(id) && !is_user_hltv(id))
  326.     {
  327.         get_user_name(id, name[id], charsmax(name))
  328.         get_user_authid(id, authid[id], charsmax(authid))
  329.         if(contain(authid[id], "_ID_LAN") != -1) get_user_ip(id, authid[id], charsmax(authid), 1)
  330.         Load_SQL(id)
  331.     }
  332. }
  333.  
  334. public client_disconnect(id)
  335. {
  336.     if(!is_user_bot(id) && !is_user_hltv(id))
  337.         Update_SQL(id)
  338.    
  339.     ArrayClear(Owned[id])
  340.     ArrayClear(OwnedKeys[id])
  341.     ArrayClear(OwnedCases[id])
  342.     arrayset(chosen[id], 0, sizeof(weapons))
  343.     authid[id][0] = EOS;
  344.     name[id][0] = EOS;
  345. }
  346.  
  347. public client_infochanged(id)
  348. {
  349.     if(!is_user_connected(id))
  350.         return PLUGIN_HANDLED
  351.    
  352.     get_user_info(id, "name", name[id], charsmax(name[]))
  353.    
  354.     return PLUGIN_CONTINUE
  355. }
  356.  
  357. public Load_SQL(id)
  358. {
  359.     static Query[5120], Data[1]; Data[0] = id
  360.    
  361.     formatex(Query, charsmax(Query), "SELECT * FROM `g_offen` WHERE authid = ^"%s^";", authid[id])
  362.     SQL_ThreadQuery(g_SqlTuple, "QuerySelectData", Query, Data, 1)
  363. }
  364.  
  365. public QuerySelectData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
  366. {
  367.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
  368.     {
  369.         log_amx("%s", Error)
  370.         return
  371.     }
  372.     else
  373.     {
  374.         new id = Data[0];
  375.         new kname[32], stg
  376.  
  377.         if(SQL_NumRows(Query) > 0)
  378.         {
  379.             for(new i; i<ArraySize(Skins);i++)
  380.             {
  381.                 ArrayGetArray(Skins, i, tmp_Skins)
  382.                 stg = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, tmp_Skins[InSQL]))
  383.                 ArrayPushCell(Owned[id], stg)
  384.             }
  385.             for(new i; i<ArraySize(Cases);i++)
  386.             {
  387.                 ArrayGetArray(Cases, i, tmp_Skins)
  388.                 formatex(kname, charsmax(kname), "%s_k", tmp_Skins[InSQL])
  389.                 stg = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, kname))
  390.                 ArrayPushCell(OwnedKeys[id], stg)
  391.                 stg = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, tmp_Skins[InSQL]))
  392.                 ArrayPushCell(OwnedCases[id], stg)
  393.                
  394.             }
  395.             arany[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "gold"))
  396.         }
  397.         else
  398.         {
  399.             Save_SQL(id)
  400.         }
  401.     }
  402. }
  403.  
  404. public Save_SQL(id)
  405. {
  406.     static Query[5120], Len
  407.     Len += formatex(Query[Len], charsmax(Query), "INSERT INTO `g_offen` (`authid`, `username`")
  408.     for(new i; i<ArraySize(Skins);i++)
  409.     {
  410.         ArrayGetArray(Skins, i, tmp_Skins)
  411.         Len += formatex(Query[Len], charsmax(Query)-Len, ", `%s`", tmp_Skins[InSQL])
  412.     }
  413.     for(new i; i<ArraySize(Cases); i++)
  414.     {
  415.         ArrayGetArray(Cases, i, tmp_Skins)
  416.         Len += formatex(Query[Len], charsmax(Query)-Len, ", `%s`, `%s_k`", tmp_Skins[InSQL], tmp_Skins[InSQL])
  417.     }
  418.     Len += formatex(Query[Len], charsmax(Query)-Len, ", `gold`) VALUES (^"%s^", ^"%s^"", authid[id], name[id])
  419.     for(new i;i<ArraySize(Skins);i++)
  420.     {
  421.         Len += formatex(Query[Len], charsmax(Query)-Len, ", ^"0^"")
  422.     }
  423.     for(new i; i<ArraySize(Cases); i++)
  424.     {
  425.         Len += formatex(Query[Len], charsmax(Query)-Len, ", ^"0^", ^"0^"")
  426.     }
  427.     Len += formatex(Query[Len], charsmax(Query)-Len, ", ^"0^");")
  428.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query)
  429. }
  430.  
  431. public QuerySetData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
  432. {
  433.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
  434.     {
  435.         log_amx("%s", Error)
  436.         return
  437.     }
  438. }
  439.  
  440. public Update_SQL(id)
  441. {
  442.     static Query[5120], Len
  443.     Len += formatex(Query[Len], charsmax(Query), "UPDATE `g_offen` SET `username` = ^"%s^"", name[id])
  444.     for(new i;i<ArraySize(Skins);i++)
  445.     {
  446.         ArrayGetArray(Skins, i, tmp_Skins)
  447.         Len += formatex(Query[Len], charsmax(Query)-Len, ", `%s` = %d", tmp_Skins[InSQL], ArrayGetCell(Owned[id], i))
  448.     }
  449.     for(new i;i<ArraySize(Cases);i++)
  450.     {
  451.         ArrayGetArray(Skins, i, tmp_Skins)
  452.         Len += formatex(Query[Len], charsmax(Query)-Len, ", `%s` = %d, `%s_k` = %d", tmp_Skins[InSQL], ArrayGetCell(OwnedCases[id], i), tmp_Skins[InSQL], ArrayGetCell(OwnedKeys[id], i))
  453.     }
  454.     Len += formatex(Query[Len], charsmax(Query)-Len, ", `gold` = %d WHERE `authid` = ^"%s^";", arany[id], authid[id])
  455.    
  456.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query)
  457. }
  458.  
  459. public plugin_end()
  460. {
  461.     SQL_FreeHandle(g_SqlTuple)
  462.     for(new i; i<34; i++)
  463.     {
  464.         ArrayDestroy(Owned[i])
  465.         ArrayDestroy(OwnedCases[i])
  466.         ArrayDestroy(OwnedKeys[i])
  467.     }
  468.     ArrayDestroy(Skins)
  469.     ArrayDestroy(Cases)
  470. }
  471.  
  472. /*==========MENÜK==========*/
  473. //Tökéletes, de ha akarsz, belenyúlsz.
  474. //Javaslom, hogy csak a menük neveit módosítsd, a ciklusokba és handlerekbe ne nyúlj bele.
  475. public FoMenu(id)
  476. {
  477.     new txt[128]
  478.     formatex(txt, charsmax(txt), "\r%s\w%s^nby \y%s^nFőMenü", Plugin, Version, Author)
  479.     new menu = menu_create(txt, "FoMenu_h")
  480.    
  481.     menu_additem(menu, "Raktár", "", 0)
  482.     menu_additem(menu, "Láda nyitás", "", 0)
  483.     menu_additem(menu, "Lomtár", "", 0)
  484.     menu_additem(menu, "Küldés", "", 0)
  485.     menu_additem(menu, "Piac", "", 0)
  486.    
  487.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  488.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  489.      
  490.     menu_display(id, menu, 0)
  491.     return PLUGIN_HANDLED
  492. }
  493.  
  494. public FoMenu_h(id, menu, item)
  495. {
  496.     switch(item)
  497.     {
  498.         case 0:Raktar_M(id)
  499.         case 1:Lada_M(id)
  500.         case 2:Lomtar_M(id)
  501.         case 3:Kuldes_M(id)
  502.         case 4:Piac_M(id)
  503.         case MENU_EXIT:{
  504.             menu_destroy(menu)
  505.             return PLUGIN_HANDLED
  506.         }
  507.     }
  508.    
  509.     menu_destroy(menu)
  510.     return PLUGIN_HANDLED
  511. }
  512.  
  513. public Raktar_M(id)
  514. {
  515.     new txt[128], num[8]
  516.     formatex(txt, charsmax(txt), "\r%s\w%s^nRaktár", Plugin, Version)
  517.     new menu = menu_create(txt, "Raktar_h")
  518.    
  519.     for(new i; i<ArraySize(Skins);i++)
  520.     {
  521.         if(ArrayGetCell(Owned[id], i) > 0)
  522.         {
  523.             ArrayGetArray(Skins, i, tmp_Skins)
  524.             num_to_str(i, num, charsmax(num))
  525.             formatex(txt, charsmax(txt), "%s [%d DB]", tmp_Skins[Name], ArrayGetCell(Owned[id], i))
  526.             menu_additem(menu, txt, num, 0)
  527.         }
  528.     }
  529.    
  530.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  531.     menu_setprop(menu, MPROP_BACKNAME, "Vissza")
  532.     menu_setprop(menu, MPROP_NEXTNAME, "Előre")
  533.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  534.      
  535.     menu_display(id, menu, 0)
  536.     return PLUGIN_HANDLED
  537. }
  538.  
  539. public Raktar_h(id, menu, item)
  540. {
  541.     if(item == MENU_EXIT)
  542.     {
  543.         menu_destroy(menu)
  544.         return PLUGIN_HANDLED
  545.     }
  546.    
  547.     new data[9], access, callback, szName[64]
  548.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  549.     new key = str_to_num(data)
  550.    
  551.     for(new i; i<sizeof(weapons);i++)
  552.     {
  553.         ArrayGetArray(Skins, i, tmp_Skins)
  554.         if(equal(tmp_Skins[EntName], weapons[i]) != -1)
  555.         {
  556.             chosen[id][i] = key+1
  557.             ColorChat(id, NORMAL, "^4[%s]^1 Kiválasztottad a(z) ^3%s ^1skint!", Prefix, tmp_Skins[Name])
  558.            
  559.             break;
  560.         }
  561.     }
  562.    
  563.     menu_destroy(menu)
  564.     return PLUGIN_HANDLED
  565. }
  566.  
  567. public Lada_M(id)
  568. {
  569.     new txt[128]
  570.     formatex(txt, charsmax(txt), "\r%s\w%s^nLáda nyitás", Plugin, Version)
  571.     new menu = menu_create(txt, "Lada_h")
  572.    
  573.     for(new i; i<ArraySize(Cases);i++)
  574.     {
  575.         ArrayGetArray(Skins, i, tmp_Skins)
  576.         formatex(txt, charsmax(txt), "%s [%d DB] | [%d DB Kulcs]", tmp_Skins[Name], ArrayGetCell(OwnedCases[id], i), ArrayGetCell(OwnedKeys[id], i))
  577.         menu_additem(menu, txt, "", 0)
  578.     }
  579.    
  580.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  581.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  582.      
  583.     menu_display(id, menu, 0)
  584.     return PLUGIN_HANDLED
  585. }
  586.  
  587. public Lada_h(id, menu, item)
  588. {
  589.     if(item == MENU_EXIT)
  590.     {
  591.         menu_destroy(menu)
  592.         return PLUGIN_HANDLED
  593.     }
  594.    
  595.     if(ArrayGetCell(OwnedKeys[id], item) > 0 && ArrayGetCell(OwnedCases[id], item) > 0)
  596.     {
  597.         ArraySetCell(OwnedKeys[id], item, ArrayGetCell(OwnedKeys[id], item)-1)
  598.         ArraySetCell(OwnedCases[id], item, ArrayGetCell(OwnedCases[id], item)-1)
  599.         weapon_drop(id, item)
  600.     }
  601.     else
  602.     {
  603.         ArrayGetArray(Skins, item, tmp_Skins)
  604.         if(ArrayGetCell(OwnedKeys[id], item) == 0)
  605.             ColorChat(id, NORMAL, "^4[%s]^1 Nincs elég ^4%s Kulcsod^1!", Prefix, tmp_Skins[Name])
  606.         else
  607.             ColorChat(id, NORMAL, "^4[%s]^1 Nincs elég ^4%s Ládád^1!", Prefix, tmp_Skins[Name])
  608.     }
  609.     menu_destroy(menu)
  610.     return PLUGIN_HANDLED
  611. }
  612.  
  613. public Lomtar_M(id)
  614. {
  615.     new txt[128], num[8]
  616.     formatex(txt, charsmax(txt), "\r%s\w%s^nLomtár", Plugin, Version)
  617.     new menu = menu_create(txt, "Lomtar_h")
  618.    
  619.     for(new i; i<ArraySize(Skins);i++)
  620.     {
  621.         if(ArrayGetCell(Owned[id], i) > 0)
  622.         {
  623.             ArrayGetArray(Skins, i, tmp_Skins)
  624.             num_to_str(i, num, charsmax(num))
  625.             formatex(txt, charsmax(txt), "%s [%d DB]", tmp_Skins[Name], ArrayGetCell(Owned[id], i))
  626.             menu_additem(menu, txt, num, 0)
  627.         }
  628.     }
  629.    
  630.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  631.     menu_setprop(menu, MPROP_BACKNAME, "Vissza")
  632.     menu_setprop(menu, MPROP_NEXTNAME, "Előre")
  633.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  634.      
  635.     menu_display(id, menu, 0)
  636.     return PLUGIN_HANDLED
  637. }
  638.  
  639. public Lomtar_h(id, menu, item)
  640. {
  641.     if(item == MENU_EXIT)
  642.     {
  643.         menu_destroy(menu)
  644.         return PLUGIN_HANDLED
  645.     }
  646.    
  647.     new data[9], access, callback, szName[64]
  648.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  649.     new key = str_to_num(data)
  650.    
  651.     ArraySetCell(Owned[id], key, ArrayGetCell(Owned[id], key)-1)
  652.     ArrayGetArray(Skins, key, tmp_Skins)
  653.     ColorChat(id, NORMAL, "^4[%s]^1 Eldobtál egy ^3%s ^1skint!", Prefix, tmp_Skins[Name])
  654.     Update_SQL(id)
  655.    
  656.     menu_destroy(menu)
  657.     return PLUGIN_HANDLED
  658. }
  659.  
  660. public Kuldes_M(id)
  661. {
  662.     new txt[128], num[8]
  663.     formatex(txt, charsmax(txt), "\r%s\w%s^nKüldés", Plugin, Version)
  664.     new menu = menu_create(txt, "Kuldes_h")
  665.    
  666.     formatex(txt, charsmax(txt), "Arany: %d", arany[id])
  667.     menu_additem(menu, txt, "Arany", 0)
  668.    
  669.     for(new i; i<ArraySize(Skins);i++)
  670.     {
  671.         if(ArrayGetCell(Owned[id], i) > 0)
  672.         {
  673.             ArrayGetArray(Skins, i, tmp_Skins)
  674.             num_to_str(i, num, charsmax(num))
  675.             formatex(txt, charsmax(txt), "%s [%d DB]", tmp_Skins[Name], ArrayGetCell(Owned[id], i))
  676.             menu_additem(menu, txt, num, 0)
  677.         }
  678.     }
  679.    
  680.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  681.     menu_setprop(menu, MPROP_BACKNAME, "Vissza")
  682.     menu_setprop(menu, MPROP_NEXTNAME, "Előre")
  683.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  684.      
  685.     menu_display(id, menu, 0)
  686.     return PLUGIN_HANDLED
  687. }
  688.  
  689. public Kuldes_h(id, menu, item)
  690. {
  691.     if(item == MENU_EXIT)
  692.     {
  693.         menu_destroy(menu)
  694.         return PLUGIN_HANDLED
  695.     }
  696.    
  697.     new data[9], access, callback, szName[64]
  698.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  699.    
  700.     copy(send[id], charsmax(send[]), data)
  701.     JatekosValaszt(id)
  702.    
  703.     menu_destroy(menu)
  704.     return PLUGIN_HANDLED
  705. }
  706.  
  707. public JatekosValaszt(id)
  708. {
  709.     new txt[128], userID[32]
  710.     formatex(txt, charsmax(txt), "\r%s\w%s^nVálassz játékost!", Plugin, Version)
  711.     new menu = menu_create(txt, "JatekosValaszt_h")
  712.    
  713.     new players[32], pnum
  714.     get_players(players, pnum, "c")
  715.    
  716.     for(new i; i<pnum; i++)
  717.     {
  718.         if(!is_user_connected(players[i]))
  719.                 continue;
  720.        
  721.         formatex(userID, charsmax(userID), "%d", get_user_userid(players[i]))
  722.         menu_additem(menu, name[players[i]], userID, 0)
  723.     }
  724.    
  725.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  726.     menu_setprop(menu, MPROP_BACKNAME, "Vissza")
  727.     menu_setprop(menu, MPROP_NEXTNAME, "Előre")
  728.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  729.      
  730.     menu_display(id, menu, 0)
  731.     return PLUGIN_HANDLED
  732. }
  733.  
  734. public JatekosValaszt_h(id, menu, item)
  735. {
  736.     if(item == MENU_EXIT)
  737.     {
  738.         menu_destroy(menu)
  739.         return PLUGIN_HANDLED
  740.     }
  741.    
  742.     new data[9], access, callback, szName[64]
  743.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  744.     new userID = str_to_num(data)
  745.     target[id] = find_player("k", userID)
  746.    
  747.     if(!is_user_connected(target[id]))
  748.     {
  749.         ColorChat(id, NORMAL, "^4[%s]^1 Sajnálom, lecsatlakozott akit kiválasztottál!", Prefix)
  750.         menu_display(id, menu, 0)
  751.         return PLUGIN_HANDLED
  752.     }
  753.    
  754.     client_cmd(id, "messagemode DARAB");
  755.     menu_destroy(menu);
  756.     return PLUGIN_HANDLED;
  757. }
  758.  
  759. public Kuldes(id)
  760. {
  761.     new txt[128], num
  762.     read_args(txt, charsmax(txt))
  763.     remove_quotes(txt)
  764.    
  765.     if(is_str_num(txt))
  766.     {
  767.         num = str_to_num(txt)
  768.        
  769.         if(equal(send[id], "Arany"))
  770.         {
  771.             if(arany[id] >= num)
  772.             {
  773.                 arany[target[id]] += num
  774.                 arany[id] -= num
  775.                
  776.                 ColorChat(target[id], NORMAL, "^4[%s]^1 Kaptál ^3%d^1 ^4arany^1at!", Prefix, num)
  777.                 ColorChat(id, NORMAL, "^4[%s]^1 Elküldtél ^3%d^1 ^4arany^1at!", Prefix, num)
  778.                 Update_SQL(id)
  779.                 Update_SQL(target[id])
  780.             }
  781.             else
  782.                 ColorChat(id, NORMAL, "^4[%s]^1 Nincs elég ^4arany^1ad!", Prefix)
  783.         }
  784.         else
  785.         {
  786.             new i = str_to_num(send[id])
  787.            
  788.             if(ArrayGetCell(Owned[id], i) >= num)
  789.             {
  790.                 ArraySetCell(Owned[target[id]], i, ArrayGetCell(Owned[target[id]], i)+1)
  791.                 ArraySetCell(Owned[id], i, ArrayGetCell(Owned[id], i)-1)
  792.                 ArrayGetArray(Skins, i, tmp_Skins)
  793.                
  794.                 ColorChat(target[id], NORMAL, "^4[%s]^1 Kaptál ^3%d ^4%s^1-t!", Prefix, num, tmp_Skins[Name])
  795.                 ColorChat(id, NORMAL, "^4[%s]^1 Elküldtél ^3%d ^4%s^1-t!", Prefix, num, tmp_Skins[Name])
  796.                 Update_SQL(id)
  797.                 Update_SQL(target[id])
  798.             }
  799.             else
  800.             {
  801.                 ArrayGetArray(Skins, i, tmp_Skins)
  802.                 ColorChat(id, NORMAL, "^4[%s]^1 Nincs ennyi^4%s^1-ed!", Prefix, tmp_Skins[Name])
  803.             }
  804.         }
  805.     }
  806.     else
  807.         ColorChat(id, NORMAL, "^4[%s]^1 A megadott szöveg (%s) nem csak számokat tartalmazott! Érvénytelen!", Prefix, txt)
  808.  
  809.     return PLUGIN_CONTINUE;
  810. }
  811.  
  812. public Piac_M(id)
  813. {
  814.     new txt[128]
  815.     formatex(txt, charsmax(txt), "\r%s\w%s^nPiac", Plugin, Version)
  816.     new menu = menu_create(txt, "Piac_h")
  817.    
  818.     menu_additem(menu, "Eladás", "", 0)
  819.     menu_additem(menu, "Vásárlás", "", 0)
  820.    
  821.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  822.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  823.      
  824.     menu_display(id, menu, 0)
  825.     return PLUGIN_HANDLED
  826. }
  827.  
  828. public Piac_h(id, menu, item)
  829. {
  830.     switch(item)
  831.     {
  832.         case 0: Eladas_M(id)
  833.         case 1: Vasarlas_M(id)
  834.         case MENU_EXIT:{
  835.             menu_destroy(menu)
  836.             return PLUGIN_HANDLED
  837.         }
  838.     }
  839.    
  840.     menu_destroy(menu);
  841.     return PLUGIN_HANDLED;
  842. }
  843.  
  844. public Eladas_M(id)
  845. {
  846.     new txt[128]
  847.     formatex(txt, charsmax(txt), "\r%s\w%s^nPiac eladás", Plugin, Version)
  848.     new menu = menu_create(txt, "Eladas_h")
  849.    
  850.     if(!Market_Things[id][Stuff])
  851.     {
  852.         if(Market_Things[id][Put_out] != -1)
  853.         {
  854.             ArrayGetArray(Skins, Market_Things[id][Put_out], tmp_Skins)
  855.             formatex(txt, charsmax(txt), "%s", tmp_Skins[Name])
  856.             menu_additem(menu, txt, "0", 0)
  857.         }
  858.         else
  859.             menu_additem(menu, "Válaszd ki a tárgyat!", "", 0)
  860.            
  861.         formatex(txt, charsmax(txt), "Ár: %d arany", Market_Things[id][Value])
  862.         menu_additem(menu, txt, "1", 0)
  863.        
  864.         if(Market_Things[id][Value])
  865.             menu_additem(menu, "Mehet a Piacra!", "2", 0)
  866.     }
  867.     else
  868.     {
  869.         if(Market_Things[id][Value])
  870.             menu_additem(menu, "Ajánlat visszavonása", "-1", 0)
  871.     }
  872.    
  873.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  874.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  875.     menu_display(id, menu, 0)
  876.     return PLUGIN_HANDLED
  877. }
  878.  
  879. public Eladas_h(id, menu, item)        
  880. {
  881.     if( item == MENU_EXIT )
  882.     {
  883.         menu_destroy(menu);
  884.         return PLUGIN_HANDLED;
  885.     }
  886.     new data[9], szName[64], access, callback, weapon[32]
  887.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  888.     new key = str_to_num(data)
  889.    
  890.     switch(key)
  891.     {
  892.         case -1:
  893.         {
  894.             Market_Things[id][Value] = 0
  895.             Market_Things[id][Stuff] = false
  896.             ArraySetCell(Owned[id], Market_Things[id][Put_out], ArrayGetCell(Owned[id], Market_Things[id][Put_out])+1)
  897.             Market_Things[id][Put_out] = -1
  898.         }
  899.         case 0:
  900.         {
  901.             TargyValaszt(id)
  902.         }
  903.         case 1:
  904.         {
  905.             client_cmd(id, "messagemode ARANY")
  906.         }
  907.         case 2:
  908.         {
  909.             if(Market_Things[id][Put_out] != -1)
  910.             {
  911.                 Market_Things[id][Stuff] = true
  912.                 ArraySetCell(Owned[id], Market_Things[id][Put_out], ArrayGetCell(Owned[id], Market_Things[id][Put_out])-1)
  913.                 copy(weapon, charsmax(weapon), weapon_now(id))
  914.                 if(weapon[0]) weapon_set_default(id, weapon)
  915.                 ArrayGetArray(Skins, Market_Things[id][Put_out], tmp_Skins)
  916.                
  917.                 ColorChat(0, NORMAL, "^4[%s] ^3%s ^1kirakott egy ^4%s^1-t a piacra ^3%d ^4arany^1ért!", Prefix, name[id], tmp_Skins[Name], Market_Things[id][Value])
  918.             }
  919.             else
  920.             {
  921.                 ColorChat(0, NORMAL, "^4[%s] ^1Nem választottál ki semmit!", Prefix)
  922.                 menu_display(id, menu, 0)
  923.                 return PLUGIN_HANDLED
  924.             }
  925.         }
  926.     }
  927.     menu_destroy(menu)
  928.     return PLUGIN_HANDLED
  929. }
  930.  
  931. public Ellenorzes(id)
  932. {
  933.     new num, txt[32]
  934.     read_args(txt, charsmax(txt))
  935.     remove_quotes(txt)
  936.        
  937.     num = str_to_num(txt)
  938.        
  939.     if(strlen(txt) > 7)
  940.     {
  941.         client_cmd(id, "messagemode ARANY")
  942.     }
  943.     else if(num < 500)
  944.     {
  945.         ColorChat(0, NORMAL, "^4[%s] ^1Nem tudsz eladni ^3500 ^4arany^1 alatt!", Prefix)
  946.         Eladas_M(id)
  947.     }
  948.     else
  949.     {
  950.         Market_Things[id][Value] = num
  951.         Eladas_M(id)
  952.     }
  953. }
  954.  
  955. public TargyValaszt(id)
  956. {
  957.     new txt[128], num[8]
  958.     formatex(txt, charsmax(txt), "\r%s\w%s^nVálaszd ki a tárgyat!", Plugin, Version)
  959.     new menu = menu_create(txt, "TargyValaszt_h")
  960.    
  961.     for(new i;i<ArraySize(Skins);i++)
  962.     {
  963.         if(ArrayGetCell(Owned[id], i) > 0)
  964.         {
  965.             ArrayGetArray(Skins, i, tmp_Skins)
  966.             num_to_str(i, num, charsmax(num))
  967.             formatex(txt, charsmax(txt), "%s (%d DB)", tmp_Skins[Name], ArrayGetCell(Owned[id], i))
  968.             menu_additem(menu, txt, num, 0)
  969.         }
  970.     }
  971.    
  972.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  973.     menu_setprop(menu, MPROP_BACKNAME, "Vissza")
  974.     menu_setprop(menu, MPROP_NEXTNAME, "Előre")
  975.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  976.      
  977.     menu_display(id, menu, 0)
  978.     return PLUGIN_HANDLED
  979. }
  980.  
  981. public TargyValaszt_h(id, menu, item)
  982. {
  983.     if( item == MENU_EXIT )
  984.     {
  985.         menu_destroy(menu);
  986.         return PLUGIN_HANDLED;
  987.     }
  988.     new data[9], szName[64], access, callback
  989.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  990.     new key = str_to_num(data)
  991.    
  992.     Market_Things[id][Put_out] = key
  993.     Eladas_M(id)
  994.    
  995.     menu_destroy(menu)
  996.     return PLUGIN_HANDLED
  997. }
  998.  
  999. public Vasarlas_M(id)
  1000. {
  1001.     new txt[128], userID[32]
  1002.     formatex(txt, charsmax(txt), "\r%s\w%s^nPiac vásárlás", Plugin, Version)
  1003.     new menu = menu_create(txt, "Vasarlas_h")
  1004.    
  1005.     new players[32], pnum
  1006.     get_players(players, pnum, "c")
  1007.    
  1008.     for(new i; i<pnum;i++)
  1009.     {
  1010.         if(Market_Things[players[i]][Stuff])
  1011.         {
  1012.             ArrayGetArray(Skins, Market_Things[players[i]][Put_out], tmp_Skins)
  1013.             formatex(userID, charsmax(userID), "%d", get_user_userid(players[i]))
  1014.             formatex(txt, charsmax(txt), "%s (Eladó: %s | Ára: %d)", tmp_Skins[Name], Market_Things[players[i]][Value])
  1015.             menu_additem(menu, txt, userID, 0)
  1016.         }
  1017.     }
  1018.    
  1019.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  1020.     menu_setprop(menu, MPROP_BACKNAME, "Vissza")
  1021.     menu_setprop(menu, MPROP_NEXTNAME, "Előre")
  1022.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  1023.      
  1024.     menu_display(id, menu, 0)
  1025.     return PLUGIN_HANDLED
  1026. }
  1027.  
  1028. public Vasarlas_h(id, menu, item)
  1029. {
  1030.     if(item == MENU_EXIT)
  1031.     {
  1032.         menu_destroy(menu);
  1033.         return PLUGIN_HANDLED
  1034.     }
  1035.     new data[6] ,szName[64],access,callback
  1036.     new name[32]
  1037.        
  1038.     menu_item_getinfo(menu, item, access, data, charsmax(data), szName, charsmax(szName), callback)
  1039.     new userID = str_to_num(data)
  1040.     new userId = find_player("k", userID)
  1041.    
  1042.     if(arany[id] >= Market_Things[userId][Value] && Market_Things[userId][Stuff])
  1043.     {
  1044.         Market_Things[userId][Stuff] = false
  1045.        
  1046.         ArrayGetArray(Skins, Market_Things[userId][Put_out], tmp_Skins)
  1047.         ColorChat(id, NORMAL, "^4[%s] ^1Vettél egy ^3%s^1-t ^4%s^1-től ^3%d ^4arany^1ért!", Prefix, tmp_Skins[Name], name[userId], Market_Things[userId][Value])
  1048.         ColorChat(userID, NORMAL, "^4[%s] ^4%s^1 vett tőled ^3%s^1-t ^3%d ^4arany^1ért!", Prefix, name[id], tmp_Skins[Name], Market_Things[userId][Value])
  1049.         arany[userId] += Market_Things[userId][Value]
  1050.         arany[id] -= Market_Things[userId][Value]
  1051.         Market_Things[userId][Value] = 0
  1052.         ArraySetCell(Owned[userId], Market_Things[userId][Put_out], ArrayGetCell(Owned[userId], Market_Things[userId][Put_out])-1)
  1053.         ArraySetCell(Owned[id], Market_Things[userId][Put_out], ArrayGetCell(Owned[id], Market_Things[userId][Put_out])+1)
  1054.         Market_Things[id][Put_out] = -1
  1055.         Update_SQL(userID)
  1056.         Update_SQL(id)
  1057.     }
  1058.    
  1059.     menu_destroy(menu)
  1060.     return PLUGIN_HANDLED
  1061. }
  1062.  
  1063. /*==========DROPP==========*/
  1064. //Jól droppol, az esélyt a plugin elején állítod.
  1065. public eDeathMsg()
  1066. {
  1067.     new attacker = read_data(1)
  1068.    
  1069.     if(attacker != read_data(2) && is_user_alive(attacker))
  1070.     {
  1071.         set_hudmessage(random(255), random(255), random(255), -1.0, 0.20, 0, 6.0, 12.0)
  1072.         if(read_data(3))
  1073.         {
  1074.             new mennyiseg = random_num(100, 200)
  1075.             arany[attacker] += mennyiseg
  1076.             show_hudmessage(attacker, "[ +%d Arany ]", mennyiseg)
  1077.         }
  1078.         else
  1079.         {
  1080.             new mennyiseg = random_num(50, 100)
  1081.             arany[attacker] += mennyiseg
  1082.             show_hudmessage(attacker, "[ +%d Arany ]", mennyiseg)
  1083.         }
  1084.        
  1085.         new Float:num = random_float(0.0, 100.0)
  1086.         if(num <= get_pcvar_float(cvar_KeyDrop))
  1087.         {
  1088.             new drp = random_num(0, ArraySize(Cases)-1)
  1089.             ArraySetCell(OwnedKeys[attacker], drp, ArrayGetCell(OwnedKeys[attacker], drp)+1)
  1090.             ArrayGetArray(Cases, drp, tmp_Skins)
  1091.             ColorChat(attacker, NORMAL, "^4[%s] ^1Találtál egy ^3%s Kulcsot^1!", Prefix, tmp_Skins[Name])
  1092.         }
  1093.         else if(num <= get_pcvar_float(cvar_CaseDrop))
  1094.         {
  1095.             new drp = random_num(0, ArraySize(Cases)-1)
  1096.             ArraySetCell(OwnedCases[attacker], drp, ArrayGetCell(OwnedCases[attacker], drp)+1)
  1097.             ArrayGetArray(Cases, drp, tmp_Skins)
  1098.             ColorChat(attacker, NORMAL, "^4[%s] ^1Találtál egy ^3%s Ládát^1!", Prefix, tmp_Skins[Name])
  1099.         }  
  1100.         Update_SQL(attacker)
  1101.     }
  1102.     return PLUGIN_HANDLED      
  1103. }
  1104.  
  1105. /*==========SKIN CSERE==========*/
  1106. //Nem belenyúlni, mert könnyen összekavarodnak a dolgok!!!!
  1107. public ItemDeploy_weapon(ent)
  1108. {
  1109.     if(ent <=0)
  1110.         return HAM_IGNORED;
  1111.    
  1112.     new id = get_weapon_owner(ent)
  1113.     new wpn[32]; pev(ent, pev_classname, wpn, charsmax(wpn))
  1114.    
  1115.     for(new i; i<sizeof(weapons);i++)
  1116.     {
  1117.         if(chosen[id][i] == 0)
  1118.         {
  1119.             for(new j; j<sizeof(DefaultSkins);j++)
  1120.             {
  1121.                 if(equal(DefaultSkins[j][EntName], wpn))
  1122.                 {
  1123.                     set_pev(id, pev_viewmodel2, DefaultSkins[j][Model])
  1124.                     return HAM_IGNORED;
  1125.                 }
  1126.             }
  1127.         }
  1128.         else
  1129.         {
  1130.             for(new j; j<ArraySize(Skins);j++)
  1131.             {
  1132.                 ArrayGetArray(Skins, j, tmp_Skins)
  1133.                 if(equal(tmp_Skins[EntName], wpn) != -1 && chosen[id][i] == j+1)
  1134.                 {
  1135.                     set_pev(id, pev_viewmodel2, tmp_Skins[Model])
  1136.                     return HAM_IGNORED;
  1137.                 }
  1138.             }
  1139.         }
  1140.     }
  1141.     return HAM_IGNORED;
  1142. }
  1143.  
  1144.  public ItemDeploy_Other(ent)
  1145. {
  1146.     if(ent <=0)
  1147.         return HAM_IGNORED;
  1148.    
  1149.     new id = get_weapon_owner(ent)
  1150.     new wpn[32]; pev(ent, pev_classname, wpn, charsmax(wpn))
  1151.    
  1152.     for(new i = 25; i<sizeof(DefaultSkins);i++)
  1153.     {
  1154.         if(equal(DefaultSkins[i][EntName], wpn))
  1155.         {
  1156.             set_pev(id, pev_viewmodel2, DefaultSkins[i][Model])
  1157.             return HAM_IGNORED;
  1158.         }
  1159.     }
  1160.     return HAM_IGNORED;
  1161. }
  1162.  
  1163. /*==========STOCKOK==========*/
  1164. //Nem piszkálni!
  1165. stock weapon_set_default(id, weapon[])
  1166. {
  1167.     for(new i; i<sizeof(weapons);i++)
  1168.     {
  1169.         if(containi(weapons[i], weapon) != -1)
  1170.         {
  1171.             chosen[id][i] = 0
  1172.             return 1
  1173.         }
  1174.     }
  1175.     return 0
  1176. }
  1177.  
  1178. stock weapon_now(id)
  1179. {
  1180.     new wpn[32]; get_weaponname(get_user_weapon(id), wpn, charsmax(wpn))
  1181.     replace(wpn, charsmax(wpn), "weapon_", "")
  1182.    
  1183.     for(new i; i<sizeof(weapons);i++)
  1184.     {
  1185.         if(chosen[id][i] == Market_Things[id][Put_out]+1 && ArrayGetCell(Owned[id], Market_Things[id][Put_out]) < 2)
  1186.             return wpn;
  1187.     }
  1188.     wpn[0] = EOS
  1189.     return wpn;
  1190. }
  1191.  
  1192. stock weapon_drop(id, num)
  1193. {
  1194.     new Float:rarity = random_float(0.0, 100.0)
  1195.     new how_rare, count, skins[16]
  1196.    
  1197.     if(rarity < 35.0)   how_rare = 0
  1198.     else if(rarity >= 35.0 && rarity < 50.0) how_rare = 1
  1199.     else if(rarity >= 50.0 && rarity < 65.0) how_rare = 2
  1200.     else if(rarity >= 65.0 && rarity < 80.0) how_rare = 3
  1201.     else if(rarity >= 80.0 && rarity < 92.5) how_rare = 4
  1202.     else if(rarity >= 92.5 && rarity < 97.5) how_rare = 5
  1203.     else if(rarity >= 97.5 && rarity <= 100.0) how_rare = 6
  1204.    
  1205.     for(new i; i<ArraySize(Skins); i++)
  1206.     {
  1207.         ArrayGetArray(Skins, i, tmp_Skins)
  1208.         if(tmp_Skins[Rarity] == how_rare && tmp_Skins[Drop_from] == num)
  1209.         {
  1210.             skins[count] = i
  1211.             count++
  1212.         }
  1213.     }
  1214.    
  1215.     new dropped = random_num(0, count)
  1216.    
  1217.     ArraySetCell(Owned[id], skins[dropped], ArrayGetCell(Owned[id], skins[dropped])+1)
  1218.     ArrayGetArray(Skins, skins[dropped], tmp_Skins)
  1219.     ColorChat(id, NORMAL, "^4[%s]^1 Egy ^3%s ^1skint nyitottál!", Prefix, tmp_Skins[Name])
  1220. }
  1221.  
  1222. /*==========CS:GO-S GRÁNÁT HANGOK==========*/
  1223. public Message_TextMsg(iMsgId, iMsgType, iMsgEnt) {
  1224.     if(get_msg_arg_int(1) != MSGARG_PRINT_RADIO)
  1225.         return PLUGIN_CONTINUE;
  1226.  
  1227.     static szMsg[32]; get_msg_arg_string(MSGARG_PRINT_RADIO, szMsg, charsmax(szMsg));
  1228.    
  1229.     if(equal(szMsg, "#Fire_in_the_hole")) {
  1230.         static Sender[4], SenderName[32], szSound[MAX_SOUND_PATH_LENGTH], SenderId;
  1231.         get_msg_arg_string(MSGARG_SENDER_ID, Sender, charsmax(Sender));
  1232.         get_msg_arg_string(MSGARG_SENDER_NAME, SenderName, charsmax(SenderName));
  1233.  
  1234.         SenderId = str_to_num(Sender);
  1235.         switch(get_user_weapon(SenderId)) {
  1236.             case CSW_HEGRENADE: szSound = g_szHegrenSounds[random(sizeof(g_szHegrenSounds))];
  1237.             case CSW_SMOKEGRENADE: szSound = g_szSmokeSounds[random(sizeof(g_szSmokeSounds))];
  1238.             case CSW_FLASHBANG: szSound = g_szFlashSounds[random(sizeof(g_szFlashSounds))];
  1239.             default: return PLUGIN_CONTINUE;
  1240.         }
  1241.        
  1242.         emit_sound(SenderId, CHAN_VOICE, szSound, VOL_NORM, ATTN_STATIC, 0, PITCH_NORM);
  1243.         return PLUGIN_HANDLED;
  1244.     }
  1245.     return PLUGIN_CONTINUE;
  1246. }


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Precache Fatal Error.
HozzászólásElküldve: 2016.06.04. 21:14 
Offline
Tag
Avatar

Csatlakozott: 2015.08.23. 14:22
Hozzászólások: 39
Megköszönt másnak: 17 alkalommal
Megköszönték neki: 4 alkalommal
Most annyi változott, hogy a plugin már le sem fut mysql error miatt. :/ "Nem tudtam csatlakozni"

_________________
✯ℝaiz3n✯ツ
Kép
Egy tökéletes világban nincsenek csalók. Mi megvalósítottuk a tökéletes világot.
http://www.switchtogaming.hu


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Precache Fatal Error.
HozzászólásElküldve: 2016.06.04. 21:22 
Offline
Fanatikus
Avatar

Csatlakozott: 2015.07.21. 00:49
Hozzászólások: 178
Megköszönt másnak: 23 alkalommal
Megköszönték neki: 20 alkalommal
Nem nyúltam az sql-hez.Próbáld így:
  1. /*[Bugok]:  *Amíg nem választod ki a raktárban az 1. skint, nem mutatja a többit
  2. */
  3.        
  4. /*[Tennivalók]:    *Tec-9, PP-Bizon, és egyéb fegyverek berakása
  5.         *Offline piac elkészítése
  6.         *Natívok készítése külső pluginokhoz (kérésre megcsinálok bármilyet)
  7.         *Offline piac
  8. */
  9.  
  10. /*[Megjegyzések]:  *A ládák droppolását nem tudtam elég behatóan tesztelni a kevés skin miatt. Ha hibás, jelezzétek!
  11.             *A plugin nincs ékezetesítve!
  12.             *Köszönet mforce-nak a CS:GO-s gránát hangok pluginért. :)
  13.             *Szükséges .zip fájl linkje: https://www.dropbox.com/s/e9t2waz9lqud3u1/csgo.zip?dl=0
  14. */
  15.  
  16. /*[Changelog]
  17. v2.0.1 - SQL adatok külső fájlból való olvasása
  18. v2.0.0 - Skinek és ládák .ini fájlból való betöltése. Mellékelt alap skinek. CS:GO-s gránát hangok. Mentésben elírás javítása.
  19. v1.0.5 - Minimális teljesítményjavítás via mforce
  20. v1.0.4 - Összetettebb dropp rendszer
  21. v1.0.3 - Minden ládának saját kulcs
  22. v1.0.2 - Több láda
  23. v1.0.1 - SQL mentés és még pár bug javítása
  24. v1.0.0 - Alap ötlet
  25. */
  26.  
  27. #include <amxmodx>
  28. #include <amxmisc>
  29. #include <hamsandwich>
  30. #include <engine>
  31. #include <fakemeta>
  32. #include <sqlx>
  33. #include <colorchat>
  34.  
  35. //Köszönet mforce-nak :) (Fegyver lekérés, rádió hangok.)
  36. const m_pPlayer = 41
  37. const XO_WEAPON = 4
  38. #define get_weapon_owner(%1)        get_pdata_cbase(%1, m_pPlayer, XO_WEAPON)
  39.  
  40. const MSGARG_SENDER_ID = 2;
  41. const MSGARG_SENDER_NAME = 4;
  42. const MSGARG_PRINT_RADIO = 5;
  43. const MSGARG_AUDIO_CODE = 2;
  44.  
  45. #define MAX_SOUND_PATH_LENGTH   32
  46. #define MAX_SOUNDS              4   // 4 + 4 + 4 = 12
  47.  
  48. // default audio file format: WAVE(PCM), 8-bit, 22.05 KHz, Mono
  49. // converted: WAVE(PCM), 16-bit, 24.0 KHz, Mono
  50. new const g_szSmokeSounds[MAX_SOUNDS][MAX_SOUND_PATH_LENGTH] = {
  51.     "radio/custom/smoke01.wav",
  52.     "radio/custom/smoke02.wav",
  53.     "radio/custom/smoke03.wav",
  54.     "radio/custom/smoke04.wav"
  55. }
  56.  
  57. new const g_szFlashSounds[MAX_SOUNDS][MAX_SOUND_PATH_LENGTH] = {
  58.     "radio/custom/flashbang01.wav",
  59.     "radio/custom/flashbang02.wav",
  60.     "radio/custom/flashbang03.wav",
  61.     "radio/custom/flashbang04.wav"
  62. }
  63.  
  64. new const g_szHegrenSounds[MAX_SOUNDS][MAX_SOUND_PATH_LENGTH] = {
  65.     "radio/custom/grenade01.wav",
  66.     "radio/custom/grenade02.wav",
  67.     "radio/custom/grenade03.wav",
  68.     "radio/custom/grenade04.wav"
  69. }
  70.  
  71. new const Author[] = {"LyleChriss"}
  72. new const Version[] = {"2.0.1"}
  73. new const Plugin[] = {"CS:GO Mod"}
  74.  
  75. //SQL
  76. new const SQL_INFO[4][32]
  77. new Handle:g_SqlTuple
  78.  
  79. enum _:eDefault
  80. {
  81.     EntName[32],
  82.     Model[121]
  83. };
  84.  
  85. //Skinezendő fegyverek
  86. new const weapons[][] = {
  87.     "weapon_p228",
  88.     "weapon_scout",
  89.     "weapon_xm1014",
  90.     "weapon_mac10",
  91.     "weapon_aug",
  92.     "weapon_elite",
  93.     "weapon_fiveseven",
  94.     "weapon_ump45",
  95.     "weapon_sg550",
  96.     "weapon_galil",
  97.     "weapon_famas",
  98.     "weapon_usp",
  99.     "weapon_glock18",
  100.     "weapon_awp",
  101.     "weapon_mp5navy",
  102.     "weapon_m249",
  103.     "weapon_m3",
  104.     "weapon_m4a1",
  105.     "weapon_tmp",
  106.     "weapon_g3sg1",
  107.     "weapon_deagle",
  108.     "weapon_sg552",
  109.     "weapon_ak47",
  110.     "weapon_knife",
  111.     "weapon_p90"
  112. }
  113.  
  114. //Egyéb skinezendő dolgok
  115. new const Others[][] = {
  116.     "weapon_hegrenade",
  117.     "weapon_smokegrenade",
  118.     "weapon_c4",
  119.     "weapon_flashbang"
  120. }
  121.  
  122. //Alap skinek
  123. new const DefaultSkins[][eDefault] = {
  124.     {"weapon_p228", "g_offen/v_p228.mdl"},
  125.     {"weapon_scout", "g_offen/v_scout.mdl"},
  126.     {"weapon_xm1014", "g_offen/v_xm1014.mdl"},
  127.     {"weapon_mac10", "g_offen/v_mac10.mdl"},
  128.     {"weapon_aug", "g_offen/v_aug.mdl"},
  129.     {"weapon_elite", "g_offen/v_elite.mdl"},
  130.     {"weapon_fiveseven", "g_offen/v_fiveseven.mdl"},
  131.     {"weapon_ump45", "g_offen/v_ump45.mdl"},
  132.     {"weapon_galil", "g_offen/v_galil.mdl"},
  133.     {"weapon_famas", "g_offen/v_famas.mdl"},
  134.     {"weapon_usp", "g_offen/v_usp.mdl"},
  135.     {"weapon_glock18", "g_offen/v_glock18.mdl"},
  136.     {"weapon_awp", "g_offen/v_awp.mdl"},
  137.     {"weapon_mp5navy", "g_offen/v_mp5navy.mdl"},
  138.     {"weapon_m249", "g_offen/v_m249.mdl"},
  139.     {"weapon_m3", "g_offen/v_m3.mdl"},
  140.     {"weapon_m4a1", "g_offen/v_m4a1.mdl"},
  141.     {"weapon_tmp", "g_offen/v_tmp.mdl"},
  142.     {"weapon_g3sg1", "g_offen/v_g3sg1.mdl"},
  143.     {"weapon_deagle", "g_offen/v_deagle.mdl"},
  144.     {"weapon_sg552", "g_offen/v_sg552.mdl"},
  145.     {"weapon_ak47", "g_offen/vak47.mdl"},
  146.     {"weapon_knife", "g_offen/v_knife.mdl"},
  147.     {"weapon_p90", "g_offen/v_p90.mdl"},
  148.     {"weapon_sg550", "g_offen/v_sg550.mdl"},
  149.     {"weapon_hegrenade", "g_offen/v_hegrenade.mdl"},
  150.     {"weapon_smokegrenade", "g_offen/v_smokegrenade.mdl"},
  151.     {"weapon_c4", "g_offen/v_c4.mdl"},
  152.     {"weapon_flashbang", "g_offen/v_flashbang.mdl"}
  153. }
  154.  
  155. //Ideiglenes tömb a skineknek
  156. enum _:DATA
  157. {
  158.     EntName[32],
  159.     Drop_from,
  160.     Rarity,
  161.     InSQL[32],
  162.     Name[32],
  163.     Model[64]
  164. }
  165.  
  166. new tmp_Skins[DATA]
  167.  
  168. //Dinamikus tömb a skineknek és ládáknak
  169. new Array:Skins, Array:Cases
  170.  
  171. //Birtokol cuccok
  172. new Array:Owned[33], Array:OwnedKeys[33], Array:OwnedCases[33]
  173.  
  174. //Kiválasztott skin
  175. new chosen[33][sizeof(weapons)]
  176.  
  177. //Arany
  178. new arany[33]
  179.  
  180. //Küldés menü
  181. new send[33][8], target[33]
  182.  
  183. //Piac
  184. enum _:Market
  185. {
  186.     bool:Stuff,
  187.     Put_out,
  188.     Value
  189. }
  190.  
  191. new Market_Things[33][Market]
  192.  
  193. //Cvarok
  194. new cvar_Prefix, cvar_KeyDrop, cvar_CaseDrop
  195. new Prefix[32]
  196.  
  197. //Egyéb
  198. new name[33][32], authid[33][32]
  199.  
  200. public plugin_init() {
  201.     register_plugin(Plugin, Version, Author)
  202.     register_cvar("public_csgo", Version, FCVAR_SERVER | FCVAR_SPONLY)
  203.    
  204.     //Fegyver modellcserék
  205.     for(new i; i<sizeof(weapons); i++)
  206.         RegisterHam(Ham_Item_Deploy, weapons[i], "ItemDeploy_weapon", 1)
  207.     for(new i; i<sizeof(Others);i++)
  208.         RegisterHam(Ham_Item_Deploy, Others[i], "ItemDeploy_Other", 1)
  209.    
  210.     //Menü parancsok
  211.     register_impulse(201, "FoMenu")
  212.     register_clcmd("say /fomenu", "FoMenu")
  213.     register_clcmd("say_team /fomenu", "FoMenu")
  214.     register_clcmd("say /menu", "FoMenu")
  215.     register_clcmd("say_team /menu", "FoMenu")
  216.    
  217.     //Say módok
  218.     register_clcmd("DARAB", "Kuldes")
  219.     register_clcmd("ARANY", "Ellenorzes")
  220.    
  221.     //Halál
  222.     register_event("DeathMsg", "eDeathMsg", "a")
  223.    
  224.     //Cvarok
  225.     cvar_Prefix = register_cvar("csgo_prefix", "CS:GO")
  226.     cvar_KeyDrop = register_cvar("csgo_keydrop", "7.0")
  227.     cvar_CaseDrop = register_cvar("csgo_casedrop", "25.0")
  228.     get_pcvar_string(cvar_Prefix, Prefix, charsmax(Prefix))
  229.    
  230.     //Gránát cuccmók
  231.     register_message(get_user_msgid("SendAudio"), "Message_SendAudio");
  232.     register_message(get_user_msgid("TextMsg"), "Message_TextMsg");
  233.    
  234.     get_cvar_string("amx_sql_host", SQL_INFO[0], charsmax(SQL_INFO[]))
  235.     get_cvar_string("amx_sql_user", SQL_INFO[1], charsmax(SQL_INFO[]))
  236.     get_cvar_string("amx_sql_pass", SQL_INFO[2], charsmax(SQL_INFO[]))
  237.     get_cvar_string("amx_sql_db", SQL_INFO[3], charsmax(SQL_INFO[]))
  238. }
  239.  
  240. /*==========PRECACHE==========*/
  241. public plugin_precache()
  242. {
  243.     Skins = ArrayCreate(DATA)
  244.     Cases = ArrayCreate(DATA)
  245.     for(new i; i<34; i++)
  246.     {
  247.         Owned[i] = ArrayCreate()
  248.         OwnedCases[i] = ArrayCreate()
  249.         OwnedKeys[i] = ArrayCreate()
  250.     }
  251.    
  252.     new Buffer[256], pFile = fopen("addons/amxmodx/configs/g_offen.ini", "rt")
  253.    
  254.     if(pFile)
  255.     {
  256.         while(!feof(pFile))
  257.         {
  258.             fgets(pFile, Buffer, charsmax(Buffer))
  259.             if(Buffer[0] && Buffer[0] != ';' || Buffer[0] && Buffer[0] != '/' && Buffer[1] != '/')
  260.             {
  261.                 parse(Buffer, tmp_Skins[EntName], charsmax(tmp_Skins[EntName]), tmp_Skins[Drop_from], charsmax(tmp_Skins[Drop_from]), tmp_Skins[Rarity], charsmax(tmp_Skins[Rarity]), tmp_Skins[InSQL], charsmax(tmp_Skins[InSQL]), tmp_Skins[Name], charsmax(tmp_Skins[Name]), tmp_Skins[Model], charsmax(tmp_Skins[Model]))
  262.                 if(equal(tmp_Skins[EntName], "lada"))
  263.                     ArrayPushArray(Cases, tmp_Skins)
  264.                 else
  265.                     ArrayPushArray(Skins, tmp_Skins)
  266.             }
  267.         }
  268.         fclose(pFile)
  269.     }
  270.     else fprintf(pFile, ";^"entitásnév^" ^"Láda ID^" ^"Ritkaság^" ^"Neve az SQL-ben^" ^"Neve a játékbanv^" ^"modell^"^n;Példa egy AK skinre^n;^"weapon_ak47^" ^"0^" ^"1^" ^"elso_ak^" ^"AK47 | Első skin^" ^"models/g_offen/v_ak47_1.mdl^"^n;Példa egy ládára^n;^"lada^" ^"^" ^"^" ^"elso_lada^" ^"Operation Wildfire^" ^"^"^n");
  271.    
  272.    
  273.     for(new i; i<sizeof(DefaultSkins);i++)
  274.         precache_model(DefaultSkins[i][Model])
  275.        
  276.     for(new i; i<ArraySize(Skins);i++)
  277.     {
  278.         ArrayGetArray(Skins, i, tmp_Skins)
  279.         precache_model(tmp_Skins[Model])
  280.     }
  281.    
  282.     //Gránát hangok
  283.     for(new i; i< MAX_SOUNDS; i++)
  284.     {
  285.         precache_sound(g_szSmokeSounds[i])
  286.         precache_sound(g_szFlashSounds[i])
  287.         precache_sound(g_szHegrenSounds[i])
  288.     }
  289. }
  290.  
  291. /*==========SQL MENTÉS==========*/
  292. //Ne piszkáld, tökéletes!
  293. public plugin_cfg()
  294. {
  295.     static Query[5120], Len
  296.     g_SqlTuple = SQL_MakeDbTuple(SQL_INFO[0],SQL_INFO[1],SQL_INFO[2],SQL_INFO[3])
  297.    
  298.     Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS `g_offen` (`authid` varchar(32) NOT NULL, `username` varchar(32) NOT NULL")
  299.     for(new i; i<ArraySize(Skins);i++)
  300.     {
  301.         ArrayGetArray(Skins, i, tmp_Skins)
  302.         Len += formatex(Query[Len], charsmax(Query)-Len, ", `%s` int(11) NOT NULL", tmp_Skins[InSQL])
  303.     }
  304.     for(new i; i<ArraySize(Cases);i++)
  305.     {
  306.         ArrayGetArray(Cases, i, tmp_Skins)
  307.         Len += formatex(Query[Len], charsmax(Query)-Len, ", `%s` int(11) NOT NULL, `%s_k` int(11) NOT NULL", tmp_Skins[InSQL], tmp_Skins[InSQL])
  308.     }
  309.     Len += formatex(Query[Len], charsmax(Query)-Len, ", `gold` int(11) NOT NULL, `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)")
  310.     SQL_ThreadQuery(g_SqlTuple,"createTableThread", Query)
  311. }
  312.      
  313. public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
  314. {
  315.     if(FailState == TQUERY_CONNECT_FAILED)
  316.         set_fail_state("Nem lehet csatlakozni az adatbazishoz.")
  317.     else if(FailState == TQUERY_QUERY_FAILED)
  318.         set_fail_state("Query Error")
  319.     if(Errcode)
  320.         log_amx("Hiba: %s",Error)
  321. }
  322.  
  323. public client_putinserver(id)
  324. {
  325.     if(!is_user_bot(id) && !is_user_hltv(id))
  326.     {
  327.         get_user_name(id, name[id], charsmax(name))
  328.         get_user_authid(id, authid[id], charsmax(authid))
  329.         if(contain(authid[id], "_ID_LAN") != -1) get_user_ip(id, authid[id], charsmax(authid), 1)
  330.         Load_SQL(id)
  331.     }
  332. }
  333.  
  334. public client_disconnect(id)
  335. {
  336.     if(!is_user_bot(id) && !is_user_hltv(id))
  337.         Update_SQL(id)
  338.    
  339.     ArrayClear(Owned[id])
  340.     ArrayClear(OwnedKeys[id])
  341.     ArrayClear(OwnedCases[id])
  342.     arrayset(chosen[id], 0, sizeof(weapons))
  343.     authid[id][0] = EOS;
  344.     name[id][0] = EOS;
  345. }
  346.  
  347. public client_infochanged(id)
  348. {
  349.     if(!is_user_connected(id))
  350.         return PLUGIN_HANDLED
  351.    
  352.     get_user_info(id, "name", name[id], charsmax(name[]))
  353.    
  354.     return PLUGIN_CONTINUE
  355. }
  356.  
  357. public Load_SQL(id)
  358. {
  359.     static Query[5120], Data[1]; Data[0] = id
  360.    
  361.     formatex(Query, charsmax(Query), "SELECT * FROM `g_offen` WHERE authid = ^"%s^";", authid[id])
  362.     SQL_ThreadQuery(g_SqlTuple, "QuerySelectData", Query, Data, 1)
  363. }
  364.  
  365. public QuerySelectData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
  366. {
  367.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
  368.     {
  369.         log_amx("%s", Error)
  370.         return
  371.     }
  372.     else
  373.     {
  374.         new id = Data[0];
  375.         new kname[32], stg
  376.  
  377.         if(SQL_NumRows(Query) > 0)
  378.         {
  379.             for(new i; i<ArraySize(Skins);i++)
  380.             {
  381.                 ArrayGetArray(Skins, i, tmp_Skins)
  382.                 stg = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, tmp_Skins[InSQL]))
  383.                 ArrayPushCell(Owned[id], stg)
  384.             }
  385.             for(new i; i<ArraySize(Cases);i++)
  386.             {
  387.                 ArrayGetArray(Cases, i, tmp_Skins)
  388.                 formatex(kname, charsmax(kname), "%s_k", tmp_Skins[InSQL])
  389.                 stg = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, kname))
  390.                 ArrayPushCell(OwnedKeys[id], stg)
  391.                 stg = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, tmp_Skins[InSQL]))
  392.                 ArrayPushCell(OwnedCases[id], stg)
  393.                
  394.             }
  395.             arany[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "gold"))
  396.         }
  397.         else
  398.         {
  399.             Save_SQL(id)
  400.         }
  401.     }
  402. }
  403.  
  404. public Save_SQL(id)
  405. {
  406.     static Query[5120], Len
  407.     Len += formatex(Query[Len], charsmax(Query), "INSERT INTO `g_offen` (`authid`, `username`")
  408.     for(new i; i<ArraySize(Skins);i++)
  409.     {
  410.         ArrayGetArray(Skins, i, tmp_Skins)
  411.         Len += formatex(Query[Len], charsmax(Query)-Len, ", `%s`", tmp_Skins[InSQL])
  412.     }
  413.     for(new i; i<ArraySize(Cases); i++)
  414.     {
  415.         ArrayGetArray(Cases, i, tmp_Skins)
  416.         Len += formatex(Query[Len], charsmax(Query)-Len, ", `%s`, `%s_k`", tmp_Skins[InSQL], tmp_Skins[InSQL])
  417.     }
  418.     Len += formatex(Query[Len], charsmax(Query)-Len, ", `gold`) VALUES (^"%s^", ^"%s^"", authid[id], name[id])
  419.     for(new i;i<ArraySize(Skins);i++)
  420.     {
  421.         Len += formatex(Query[Len], charsmax(Query)-Len, ", ^"0^"")
  422.     }
  423.     for(new i; i<ArraySize(Cases); i++)
  424.     {
  425.         Len += formatex(Query[Len], charsmax(Query)-Len, ", ^"0^", ^"0^"")
  426.     }
  427.     Len += formatex(Query[Len], charsmax(Query)-Len, ", ^"0^");")
  428.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query)
  429. }
  430.  
  431. public QuerySetData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
  432. {
  433.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
  434.     {
  435.         log_amx("%s", Error)
  436.         return
  437.     }
  438. }
  439.  
  440. public Update_SQL(id)
  441. {
  442.     static Query[5120], Len
  443.     Len += formatex(Query[Len], charsmax(Query), "UPDATE `g_offen` SET `username` = ^"%s^"", name[id])
  444.     for(new i;i<ArraySize(Skins);i++)
  445.     {
  446.         ArrayGetArray(Skins, i, tmp_Skins)
  447.         Len += formatex(Query[Len], charsmax(Query)-Len, ", `%s` = %d", tmp_Skins[InSQL], ArrayGetCell(Owned[id], i))
  448.     }
  449.     for(new i;i<ArraySize(Cases);i++)
  450.     {
  451.         ArrayGetArray(Skins, i, tmp_Skins)
  452.         Len += formatex(Query[Len], charsmax(Query)-Len, ", `%s` = %d, `%s_k` = %d", tmp_Skins[InSQL], ArrayGetCell(OwnedCases[id], i), tmp_Skins[InSQL], ArrayGetCell(OwnedKeys[id], i))
  453.     }
  454.     Len += formatex(Query[Len], charsmax(Query)-Len, ", `gold` = %d WHERE `authid` = ^"%s^";", arany[id], authid[id])
  455.    
  456.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query)
  457. }
  458.  
  459. public plugin_end()
  460. {
  461.     SQL_FreeHandle(g_SqlTuple)
  462.     for(new i; i<34; i++)
  463.     {
  464.         ArrayDestroy(Owned[i])
  465.         ArrayDestroy(OwnedCases[i])
  466.         ArrayDestroy(OwnedKeys[i])
  467.     }
  468.     ArrayDestroy(Skins)
  469.     ArrayDestroy(Cases)
  470. }
  471.  
  472. /*==========MENÜK==========*/
  473. //Tökéletes, de ha akarsz, belenyúlsz.
  474. //Javaslom, hogy csak a menük neveit módosítsd, a ciklusokba és handlerekbe ne nyúlj bele.
  475. public FoMenu(id)
  476. {
  477.     new txt[128]
  478.     formatex(txt, charsmax(txt), "\r%s\w%s^nby \y%s^nFőMenü", Plugin, Version, Author)
  479.     new menu = menu_create(txt, "FoMenu_h")
  480.    
  481.     menu_additem(menu, "Raktár", "", 0)
  482.     menu_additem(menu, "Láda nyitás", "", 0)
  483.     menu_additem(menu, "Lomtár", "", 0)
  484.     menu_additem(menu, "Küldés", "", 0)
  485.     menu_additem(menu, "Piac", "", 0)
  486.    
  487.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  488.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  489.      
  490.     menu_display(id, menu, 0)
  491.     return PLUGIN_HANDLED
  492. }
  493.  
  494. public FoMenu_h(id, menu, item)
  495. {
  496.     switch(item)
  497.     {
  498.         case 0:Raktar_M(id)
  499.         case 1:Lada_M(id)
  500.         case 2:Lomtar_M(id)
  501.         case 3:Kuldes_M(id)
  502.         case 4:Piac_M(id)
  503.         case MENU_EXIT:{
  504.             menu_destroy(menu)
  505.             return PLUGIN_HANDLED
  506.         }
  507.     }
  508.    
  509.     menu_destroy(menu)
  510.     return PLUGIN_HANDLED
  511. }
  512.  
  513. public Raktar_M(id)
  514. {
  515.     new txt[128], num[8]
  516.     formatex(txt, charsmax(txt), "\r%s\w%s^nRaktár", Plugin, Version)
  517.     new menu = menu_create(txt, "Raktar_h")
  518.    
  519.     for(new i; i<ArraySize(Skins);i++)
  520.     {
  521.         if(ArrayGetCell(Owned[id], i) > 0)
  522.         {
  523.             ArrayGetArray(Skins, i, tmp_Skins)
  524.             num_to_str(i, num, charsmax(num))
  525.             formatex(txt, charsmax(txt), "%s [%d DB]", tmp_Skins[Name], ArrayGetCell(Owned[id], i))
  526.             menu_additem(menu, txt, num, 0)
  527.         }
  528.     }
  529.    
  530.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  531.     menu_setprop(menu, MPROP_BACKNAME, "Vissza")
  532.     menu_setprop(menu, MPROP_NEXTNAME, "Előre")
  533.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  534.      
  535.     menu_display(id, menu, 0)
  536.     return PLUGIN_HANDLED
  537. }
  538.  
  539. public Raktar_h(id, menu, item)
  540. {
  541.     if(item == MENU_EXIT)
  542.     {
  543.         menu_destroy(menu)
  544.         return PLUGIN_HANDLED
  545.     }
  546.    
  547.     new data[9], access, callback, szName[64]
  548.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  549.     new key = str_to_num(data)
  550.    
  551.     for(new i; i<sizeof(weapons);i++)
  552.     {
  553.         ArrayGetArray(Skins, i, tmp_Skins)
  554.         if(equal(tmp_Skins[EntName], weapons[i]) != -1)
  555.         {
  556.             chosen[id][i] = key+1
  557.             ColorChat(id, NORMAL, "^4[%s]^1 Kiválasztottad a(z) ^3%s ^1skint!", Prefix, tmp_Skins[Name])
  558.            
  559.             break;
  560.         }
  561.     }
  562.    
  563.     menu_destroy(menu)
  564.     return PLUGIN_HANDLED
  565. }
  566.  
  567. public Lada_M(id)
  568. {
  569.     new txt[128]
  570.     formatex(txt, charsmax(txt), "\r%s\w%s^nLáda nyitás", Plugin, Version)
  571.     new menu = menu_create(txt, "Lada_h")
  572.    
  573.     for(new i; i<ArraySize(Cases);i++)
  574.     {
  575.         ArrayGetArray(Skins, i, tmp_Skins)
  576.         formatex(txt, charsmax(txt), "%s [%d DB] | [%d DB Kulcs]", tmp_Skins[Name], ArrayGetCell(OwnedCases[id], i), ArrayGetCell(OwnedKeys[id], i))
  577.         menu_additem(menu, txt, "", 0)
  578.     }
  579.    
  580.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  581.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  582.      
  583.     menu_display(id, menu, 0)
  584.     return PLUGIN_HANDLED
  585. }
  586.  
  587. public Lada_h(id, menu, item)
  588. {
  589.     if(item == MENU_EXIT)
  590.     {
  591.         menu_destroy(menu)
  592.         return PLUGIN_HANDLED
  593.     }
  594.    
  595.     if(ArrayGetCell(OwnedKeys[id], item) > 0 && ArrayGetCell(OwnedCases[id], item) > 0)
  596.     {
  597.         ArraySetCell(OwnedKeys[id], item, ArrayGetCell(OwnedKeys[id], item)-1)
  598.         ArraySetCell(OwnedCases[id], item, ArrayGetCell(OwnedCases[id], item)-1)
  599.         weapon_drop(id, item)
  600.     }
  601.     else
  602.     {
  603.         ArrayGetArray(Skins, item, tmp_Skins)
  604.         if(ArrayGetCell(OwnedKeys[id], item) == 0)
  605.             ColorChat(id, NORMAL, "^4[%s]^1 Nincs elég ^4%s Kulcsod^1!", Prefix, tmp_Skins[Name])
  606.         else
  607.             ColorChat(id, NORMAL, "^4[%s]^1 Nincs elég ^4%s Ládád^1!", Prefix, tmp_Skins[Name])
  608.     }
  609.     menu_destroy(menu)
  610.     return PLUGIN_HANDLED
  611. }
  612.  
  613. public Lomtar_M(id)
  614. {
  615.     new txt[128], num[8]
  616.     formatex(txt, charsmax(txt), "\r%s\w%s^nLomtár", Plugin, Version)
  617.     new menu = menu_create(txt, "Lomtar_h")
  618.    
  619.     for(new i; i<ArraySize(Skins);i++)
  620.     {
  621.         if(ArrayGetCell(Owned[id], i) > 0)
  622.         {
  623.             ArrayGetArray(Skins, i, tmp_Skins)
  624.             num_to_str(i, num, charsmax(num))
  625.             formatex(txt, charsmax(txt), "%s [%d DB]", tmp_Skins[Name], ArrayGetCell(Owned[id], i))
  626.             menu_additem(menu, txt, num, 0)
  627.         }
  628.     }
  629.    
  630.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  631.     menu_setprop(menu, MPROP_BACKNAME, "Vissza")
  632.     menu_setprop(menu, MPROP_NEXTNAME, "Előre")
  633.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  634.      
  635.     menu_display(id, menu, 0)
  636.     return PLUGIN_HANDLED
  637. }
  638.  
  639. public Lomtar_h(id, menu, item)
  640. {
  641.     if(item == MENU_EXIT)
  642.     {
  643.         menu_destroy(menu)
  644.         return PLUGIN_HANDLED
  645.     }
  646.    
  647.     new data[9], access, callback, szName[64]
  648.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  649.     new key = str_to_num(data)
  650.    
  651.     ArraySetCell(Owned[id], key, ArrayGetCell(Owned[id], key)-1)
  652.     ArrayGetArray(Skins, key, tmp_Skins)
  653.     ColorChat(id, NORMAL, "^4[%s]^1 Eldobtál egy ^3%s ^1skint!", Prefix, tmp_Skins[Name])
  654.     Update_SQL(id)
  655.    
  656.     menu_destroy(menu)
  657.     return PLUGIN_HANDLED
  658. }
  659.  
  660. public Kuldes_M(id)
  661. {
  662.     new txt[128], num[8]
  663.     formatex(txt, charsmax(txt), "\r%s\w%s^nKüldés", Plugin, Version)
  664.     new menu = menu_create(txt, "Kuldes_h")
  665.    
  666.     formatex(txt, charsmax(txt), "Arany: %d", arany[id])
  667.     menu_additem(menu, txt, "Arany", 0)
  668.    
  669.     for(new i; i<ArraySize(Skins);i++)
  670.     {
  671.         if(ArrayGetCell(Owned[id], i) > 0)
  672.         {
  673.             ArrayGetArray(Skins, i, tmp_Skins)
  674.             num_to_str(i, num, charsmax(num))
  675.             formatex(txt, charsmax(txt), "%s [%d DB]", tmp_Skins[Name], ArrayGetCell(Owned[id], i))
  676.             menu_additem(menu, txt, num, 0)
  677.         }
  678.     }
  679.    
  680.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  681.     menu_setprop(menu, MPROP_BACKNAME, "Vissza")
  682.     menu_setprop(menu, MPROP_NEXTNAME, "Előre")
  683.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  684.      
  685.     menu_display(id, menu, 0)
  686.     return PLUGIN_HANDLED
  687. }
  688.  
  689. public Kuldes_h(id, menu, item)
  690. {
  691.     if(item == MENU_EXIT)
  692.     {
  693.         menu_destroy(menu)
  694.         return PLUGIN_HANDLED
  695.     }
  696.    
  697.     new data[9], access, callback, szName[64]
  698.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  699.    
  700.     copy(send[id], charsmax(send[]), data)
  701.     JatekosValaszt(id)
  702.    
  703.     menu_destroy(menu)
  704.     return PLUGIN_HANDLED
  705. }
  706.  
  707. public JatekosValaszt(id)
  708. {
  709.     new txt[128], userID[32]
  710.     formatex(txt, charsmax(txt), "\r%s\w%s^nVálassz játékost!", Plugin, Version)
  711.     new menu = menu_create(txt, "JatekosValaszt_h")
  712.    
  713.     new players[32], pnum
  714.     get_players(players, pnum, "c")
  715.    
  716.     for(new i; i<pnum; i++)
  717.     {
  718.         if(!is_user_connected(players[i]))
  719.                 continue;
  720.        
  721.         formatex(userID, charsmax(userID), "%d", get_user_userid(players[i]))
  722.         menu_additem(menu, name[players[i]], userID, 0)
  723.     }
  724.    
  725.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  726.     menu_setprop(menu, MPROP_BACKNAME, "Vissza")
  727.     menu_setprop(menu, MPROP_NEXTNAME, "Előre")
  728.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  729.      
  730.     menu_display(id, menu, 0)
  731.     return PLUGIN_HANDLED
  732. }
  733.  
  734. public JatekosValaszt_h(id, menu, item)
  735. {
  736.     if(item == MENU_EXIT)
  737.     {
  738.         menu_destroy(menu)
  739.         return PLUGIN_HANDLED
  740.     }
  741.    
  742.     new data[9], access, callback, szName[64]
  743.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  744.     new userID = str_to_num(data)
  745.     target[id] = find_player("k", userID)
  746.    
  747.     if(!is_user_connected(target[id]))
  748.     {
  749.         ColorChat(id, NORMAL, "^4[%s]^1 Sajnálom, lecsatlakozott akit kiválasztottál!", Prefix)
  750.         menu_display(id, menu, 0)
  751.         return PLUGIN_HANDLED
  752.     }
  753.    
  754.     client_cmd(id, "messagemode DARAB");
  755.     menu_destroy(menu);
  756.     return PLUGIN_HANDLED;
  757. }
  758.  
  759. public Kuldes(id)
  760. {
  761.     new txt[128], num
  762.     read_args(txt, charsmax(txt))
  763.     remove_quotes(txt)
  764.    
  765.     if(is_str_num(txt))
  766.     {
  767.         num = str_to_num(txt)
  768.        
  769.         if(equal(send[id], "Arany"))
  770.         {
  771.             if(arany[id] >= num)
  772.             {
  773.                 arany[target[id]] += num
  774.                 arany[id] -= num
  775.                
  776.                 ColorChat(target[id], NORMAL, "^4[%s]^1 Kaptál ^3%d^1 ^4arany^1at!", Prefix, num)
  777.                 ColorChat(id, NORMAL, "^4[%s]^1 Elküldtél ^3%d^1 ^4arany^1at!", Prefix, num)
  778.                 Update_SQL(id)
  779.                 Update_SQL(target[id])
  780.             }
  781.             else
  782.                 ColorChat(id, NORMAL, "^4[%s]^1 Nincs elég ^4arany^1ad!", Prefix)
  783.         }
  784.         else
  785.         {
  786.             new i = str_to_num(send[id])
  787.            
  788.             if(ArrayGetCell(Owned[id], i) >= num)
  789.             {
  790.                 ArraySetCell(Owned[target[id]], i, ArrayGetCell(Owned[target[id]], i)+1)
  791.                 ArraySetCell(Owned[id], i, ArrayGetCell(Owned[id], i)-1)
  792.                 ArrayGetArray(Skins, i, tmp_Skins)
  793.                
  794.                 ColorChat(target[id], NORMAL, "^4[%s]^1 Kaptál ^3%d ^4%s^1-t!", Prefix, num, tmp_Skins[Name])
  795.                 ColorChat(id, NORMAL, "^4[%s]^1 Elküldtél ^3%d ^4%s^1-t!", Prefix, num, tmp_Skins[Name])
  796.                 Update_SQL(id)
  797.                 Update_SQL(target[id])
  798.             }
  799.             else
  800.             {
  801.                 ArrayGetArray(Skins, i, tmp_Skins)
  802.                 ColorChat(id, NORMAL, "^4[%s]^1 Nincs ennyi^4%s^1-ed!", Prefix, tmp_Skins[Name])
  803.             }
  804.         }
  805.     }
  806.     else
  807.         ColorChat(id, NORMAL, "^4[%s]^1 A megadott szöveg (%s) nem csak számokat tartalmazott! Érvénytelen!", Prefix, txt)
  808.  
  809.     return PLUGIN_CONTINUE;
  810. }
  811.  
  812. public Piac_M(id)
  813. {
  814.     new txt[128]
  815.     formatex(txt, charsmax(txt), "\r%s\w%s^nPiac", Plugin, Version)
  816.     new menu = menu_create(txt, "Piac_h")
  817.    
  818.     menu_additem(menu, "Eladás", "", 0)
  819.     menu_additem(menu, "Vásárlás", "", 0)
  820.    
  821.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  822.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  823.      
  824.     menu_display(id, menu, 0)
  825.     return PLUGIN_HANDLED
  826. }
  827.  
  828. public Piac_h(id, menu, item)
  829. {
  830.     switch(item)
  831.     {
  832.         case 0: Eladas_M(id)
  833.         case 1: Vasarlas_M(id)
  834.         case MENU_EXIT:{
  835.             menu_destroy(menu)
  836.             return PLUGIN_HANDLED
  837.         }
  838.     }
  839.    
  840.     menu_destroy(menu);
  841.     return PLUGIN_HANDLED;
  842. }
  843.  
  844. public Eladas_M(id)
  845. {
  846.     new txt[128]
  847.     formatex(txt, charsmax(txt), "\r%s\w%s^nPiac eladás", Plugin, Version)
  848.     new menu = menu_create(txt, "Eladas_h")
  849.    
  850.     if(!Market_Things[id][Stuff])
  851.     {
  852.         if(Market_Things[id][Put_out] != -1)
  853.         {
  854.             ArrayGetArray(Skins, Market_Things[id][Put_out], tmp_Skins)
  855.             formatex(txt, charsmax(txt), "%s", tmp_Skins[Name])
  856.             menu_additem(menu, txt, "0", 0)
  857.         }
  858.         else
  859.             menu_additem(menu, "Válaszd ki a tárgyat!", "", 0)
  860.            
  861.         formatex(txt, charsmax(txt), "Ár: %d arany", Market_Things[id][Value])
  862.         menu_additem(menu, txt, "1", 0)
  863.        
  864.         if(Market_Things[id][Value])
  865.             menu_additem(menu, "Mehet a Piacra!", "2", 0)
  866.     }
  867.     else
  868.     {
  869.         if(Market_Things[id][Value])
  870.             menu_additem(menu, "Ajánlat visszavonása", "-1", 0)
  871.     }
  872.    
  873.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  874.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  875.     menu_display(id, menu, 0)
  876.     return PLUGIN_HANDLED
  877. }
  878.  
  879. public Eladas_h(id, menu, item)        
  880. {
  881.     if( item == MENU_EXIT )
  882.     {
  883.         menu_destroy(menu);
  884.         return PLUGIN_HANDLED;
  885.     }
  886.     new data[9], szName[64], access, callback, weapon[32]
  887.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  888.     new key = str_to_num(data)
  889.    
  890.     switch(key)
  891.     {
  892.         case -1:
  893.         {
  894.             Market_Things[id][Value] = 0
  895.             Market_Things[id][Stuff] = false
  896.             ArraySetCell(Owned[id], Market_Things[id][Put_out], ArrayGetCell(Owned[id], Market_Things[id][Put_out])+1)
  897.             Market_Things[id][Put_out] = -1
  898.         }
  899.         case 0:
  900.         {
  901.             TargyValaszt(id)
  902.         }
  903.         case 1:
  904.         {
  905.             client_cmd(id, "messagemode ARANY")
  906.         }
  907.         case 2:
  908.         {
  909.             if(Market_Things[id][Put_out] != -1)
  910.             {
  911.                 Market_Things[id][Stuff] = true
  912.                 ArraySetCell(Owned[id], Market_Things[id][Put_out], ArrayGetCell(Owned[id], Market_Things[id][Put_out])-1)
  913.                 copy(weapon, charsmax(weapon), weapon_now(id))
  914.                 if(weapon[0]) weapon_set_default(id, weapon)
  915.                 ArrayGetArray(Skins, Market_Things[id][Put_out], tmp_Skins)
  916.                
  917.                 ColorChat(0, NORMAL, "^4[%s] ^3%s ^1kirakott egy ^4%s^1-t a piacra ^3%d ^4arany^1ért!", Prefix, name[id], tmp_Skins[Name], Market_Things[id][Value])
  918.             }
  919.             else
  920.             {
  921.                 ColorChat(0, NORMAL, "^4[%s] ^1Nem választottál ki semmit!", Prefix)
  922.                 menu_display(id, menu, 0)
  923.                 return PLUGIN_HANDLED
  924.             }
  925.         }
  926.     }
  927.     menu_destroy(menu)
  928.     return PLUGIN_HANDLED
  929. }
  930.  
  931. public Ellenorzes(id)
  932. {
  933.     new num, txt[32]
  934.     read_args(txt, charsmax(txt))
  935.     remove_quotes(txt)
  936.        
  937.     num = str_to_num(txt)
  938.        
  939.     if(strlen(txt) > 7)
  940.     {
  941.         client_cmd(id, "messagemode ARANY")
  942.     }
  943.     else if(num < 500)
  944.     {
  945.         ColorChat(0, NORMAL, "^4[%s] ^1Nem tudsz eladni ^3500 ^4arany^1 alatt!", Prefix)
  946.         Eladas_M(id)
  947.     }
  948.     else
  949.     {
  950.         Market_Things[id][Value] = num
  951.         Eladas_M(id)
  952.     }
  953. }
  954.  
  955. public TargyValaszt(id)
  956. {
  957.     new txt[128], num[8]
  958.     formatex(txt, charsmax(txt), "\r%s\w%s^nVálaszd ki a tárgyat!", Plugin, Version)
  959.     new menu = menu_create(txt, "TargyValaszt_h")
  960.    
  961.     for(new i;i<ArraySize(Skins);i++)
  962.     {
  963.         if(ArrayGetCell(Owned[id], i) > 0)
  964.         {
  965.             ArrayGetArray(Skins, i, tmp_Skins)
  966.             num_to_str(i, num, charsmax(num))
  967.             formatex(txt, charsmax(txt), "%s (%d DB)", tmp_Skins[Name], ArrayGetCell(Owned[id], i))
  968.             menu_additem(menu, txt, num, 0)
  969.         }
  970.     }
  971.    
  972.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  973.     menu_setprop(menu, MPROP_BACKNAME, "Vissza")
  974.     menu_setprop(menu, MPROP_NEXTNAME, "Előre")
  975.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  976.      
  977.     menu_display(id, menu, 0)
  978.     return PLUGIN_HANDLED
  979. }
  980.  
  981. public TargyValaszt_h(id, menu, item)
  982. {
  983.     if( item == MENU_EXIT )
  984.     {
  985.         menu_destroy(menu);
  986.         return PLUGIN_HANDLED;
  987.     }
  988.     new data[9], szName[64], access, callback
  989.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  990.     new key = str_to_num(data)
  991.    
  992.     Market_Things[id][Put_out] = key
  993.     Eladas_M(id)
  994.    
  995.     menu_destroy(menu)
  996.     return PLUGIN_HANDLED
  997. }
  998.  
  999. public Vasarlas_M(id)
  1000. {
  1001.     new txt[128], userID[32]
  1002.     formatex(txt, charsmax(txt), "\r%s\w%s^nPiac vásárlás", Plugin, Version)
  1003.     new menu = menu_create(txt, "Vasarlas_h")
  1004.    
  1005.     new players[32], pnum
  1006.     get_players(players, pnum, "c")
  1007.    
  1008.     for(new i; i<pnum;i++)
  1009.     {
  1010.         if(Market_Things[players[i]][Stuff])
  1011.         {
  1012.             ArrayGetArray(Skins, Market_Things[players[i]][Put_out], tmp_Skins)
  1013.             formatex(userID, charsmax(userID), "%d", get_user_userid(players[i]))
  1014.             formatex(txt, charsmax(txt), "%s (Eladó: %s | Ára: %d)", tmp_Skins[Name], Market_Things[players[i]][Value])
  1015.             menu_additem(menu, txt, userID, 0)
  1016.         }
  1017.     }
  1018.    
  1019.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  1020.     menu_setprop(menu, MPROP_BACKNAME, "Vissza")
  1021.     menu_setprop(menu, MPROP_NEXTNAME, "Előre")
  1022.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  1023.      
  1024.     menu_display(id, menu, 0)
  1025.     return PLUGIN_HANDLED
  1026. }
  1027.  
  1028. public Vasarlas_h(id, menu, item)
  1029. {
  1030.     if(item == MENU_EXIT)
  1031.     {
  1032.         menu_destroy(menu);
  1033.         return PLUGIN_HANDLED
  1034.     }
  1035.     new data[6] ,szName[64],access,callback
  1036.     new name[32]
  1037.        
  1038.     menu_item_getinfo(menu, item, access, data, charsmax(data), szName, charsmax(szName), callback)
  1039.     new userID = str_to_num(data)
  1040.     new userId = find_player("k", userID)
  1041.    
  1042.     if(arany[id] >= Market_Things[userId][Value] && Market_Things[userId][Stuff])
  1043.     {
  1044.         Market_Things[userId][Stuff] = false
  1045.        
  1046.         ArrayGetArray(Skins, Market_Things[userId][Put_out], tmp_Skins)
  1047.         ColorChat(id, NORMAL, "^4[%s] ^1Vettél egy ^3%s^1-t ^4%s^1-től ^3%d ^4arany^1ért!", Prefix, tmp_Skins[Name], name[userId], Market_Things[userId][Value])
  1048.         ColorChat(userID, NORMAL, "^4[%s] ^4%s^1 vett tőled ^3%s^1-t ^3%d ^4arany^1ért!", Prefix, name[id], tmp_Skins[Name], Market_Things[userId][Value])
  1049.         arany[userId] += Market_Things[userId][Value]
  1050.         arany[id] -= Market_Things[userId][Value]
  1051.         Market_Things[userId][Value] = 0
  1052.         ArraySetCell(Owned[userId], Market_Things[userId][Put_out], ArrayGetCell(Owned[userId], Market_Things[userId][Put_out])-1)
  1053.         ArraySetCell(Owned[id], Market_Things[userId][Put_out], ArrayGetCell(Owned[id], Market_Things[userId][Put_out])+1)
  1054.         Market_Things[id][Put_out] = -1
  1055.         Update_SQL(userID)
  1056.         Update_SQL(id)
  1057.     }
  1058.    
  1059.     menu_destroy(menu)
  1060.     return PLUGIN_HANDLED
  1061. }
  1062.  
  1063. /*==========DROPP==========*/
  1064. //Jól droppol, az esélyt a plugin elején állítod.
  1065. public eDeathMsg()
  1066. {
  1067.     new attacker = read_data(1)
  1068.    
  1069.     if(attacker != read_data(2) && is_user_alive(attacker))
  1070.     {
  1071.         set_hudmessage(random(255), random(255), random(255), -1.0, 0.20, 0, 6.0, 12.0)
  1072.         if(read_data(3))
  1073.         {
  1074.             new mennyiseg = random_num(100, 200)
  1075.             arany[attacker] += mennyiseg
  1076.             show_hudmessage(attacker, "[ +%d Arany ]", mennyiseg)
  1077.         }
  1078.         else
  1079.         {
  1080.             new mennyiseg = random_num(50, 100)
  1081.             arany[attacker] += mennyiseg
  1082.             show_hudmessage(attacker, "[ +%d Arany ]", mennyiseg)
  1083.         }
  1084.        
  1085.         new Float:num = random_float(0.0, 100.0)
  1086.         if(num <= get_pcvar_float(cvar_KeyDrop))
  1087.         {
  1088.             new drp = random_num(0, ArraySize(Cases)-1)
  1089.             ArraySetCell(OwnedKeys[attacker], drp, ArrayGetCell(OwnedKeys[attacker], drp)+1)
  1090.             ArrayGetArray(Cases, drp, tmp_Skins)
  1091.             ColorChat(attacker, NORMAL, "^4[%s] ^1Találtál egy ^3%s Kulcsot^1!", Prefix, tmp_Skins[Name])
  1092.         }
  1093.         else if(num <= get_pcvar_float(cvar_CaseDrop))
  1094.         {
  1095.             new drp = random_num(0, ArraySize(Cases)-1)
  1096.             ArraySetCell(OwnedCases[attacker], drp, ArrayGetCell(OwnedCases[attacker], drp)+1)
  1097.             ArrayGetArray(Cases, drp, tmp_Skins)
  1098.             ColorChat(attacker, NORMAL, "^4[%s] ^1Találtál egy ^3%s Ládát^1!", Prefix, tmp_Skins[Name])
  1099.         }  
  1100.         Update_SQL(attacker)
  1101.     }
  1102.     return PLUGIN_HANDLED      
  1103. }
  1104.  
  1105. /*==========SKIN CSERE==========*/
  1106. //Nem belenyúlni, mert könnyen összekavarodnak a dolgok!!!!
  1107. public ItemDeploy_weapon(ent)
  1108. {
  1109.     if(ent <=0)
  1110.         return HAM_IGNORED;
  1111.    
  1112.     new id = get_weapon_owner(ent)
  1113.     new wpn[32]; pev(ent, pev_classname, wpn, charsmax(wpn))
  1114.    
  1115.     for(new i; i<sizeof(weapons);i++)
  1116.     {
  1117.         if(chosen[id][i] == 0)
  1118.         {
  1119.             for(new j; j<sizeof(DefaultSkins);j++)
  1120.             {
  1121.                 if(equal(DefaultSkins[j][EntName], wpn))
  1122.                 {
  1123.                     set_pev(id, pev_viewmodel2, DefaultSkins[j][Model])
  1124.                     return HAM_IGNORED;
  1125.                 }
  1126.             }
  1127.         }
  1128.         else
  1129.         {
  1130.             for(new j; j<ArraySize(Skins);j++)
  1131.             {
  1132.                 ArrayGetArray(Skins, j, tmp_Skins)
  1133.                 if(equal(tmp_Skins[EntName], wpn) != -1 && chosen[id][i] == j+1)
  1134.                 {
  1135.                     set_pev(id, pev_viewmodel2, tmp_Skins[Model])
  1136.                     return HAM_IGNORED;
  1137.                 }
  1138.             }
  1139.         }
  1140.     }
  1141.     return HAM_IGNORED;
  1142. }
  1143.  
  1144.  public ItemDeploy_Other(ent)
  1145. {
  1146.     if(ent <=0)
  1147.         return HAM_IGNORED;
  1148.    
  1149.     new id = get_weapon_owner(ent)
  1150.     new wpn[32]; pev(ent, pev_classname, wpn, charsmax(wpn))
  1151.    
  1152.     for(new i = 25; i<sizeof(DefaultSkins);i++)
  1153.     {
  1154.         if(equal(DefaultSkins[i][EntName], wpn))
  1155.         {
  1156.             set_pev(id, pev_viewmodel2, DefaultSkins[i][Model])
  1157.             return HAM_IGNORED;
  1158.         }
  1159.     }
  1160.     return HAM_IGNORED;
  1161. }
  1162.  
  1163. /*==========STOCKOK==========*/
  1164. //Nem piszkálni!
  1165. stock weapon_set_default(id, weapon[])
  1166. {
  1167.     for(new i; i<sizeof(weapons);i++)
  1168.     {
  1169.         if(containi(weapons[i], weapon) != -1)
  1170.         {
  1171.             chosen[id][i] = 0
  1172.             return 1
  1173.         }
  1174.     }
  1175.     return 0
  1176. }
  1177.  
  1178. stock weapon_now(id)
  1179. {
  1180.     new wpn[32]; get_weaponname(get_user_weapon(id), wpn, charsmax(wpn))
  1181.     replace(wpn, charsmax(wpn), "weapon_", "")
  1182.    
  1183.     for(new i; i<sizeof(weapons);i++)
  1184.     {
  1185.         if(chosen[id][i] == Market_Things[id][Put_out]+1 && ArrayGetCell(Owned[id], Market_Things[id][Put_out]) < 2)
  1186.             return wpn;
  1187.     }
  1188.     wpn[0] = EOS
  1189.     return wpn;
  1190. }
  1191.  
  1192. stock weapon_drop(id, num)
  1193. {
  1194.     new Float:rarity = random_float(0.0, 100.0)
  1195.     new how_rare, count, skins[16]
  1196.    
  1197.     if(rarity < 35.0)   how_rare = 0
  1198.     else if(rarity >= 35.0 && rarity < 50.0) how_rare = 1
  1199.     else if(rarity >= 50.0 && rarity < 65.0) how_rare = 2
  1200.     else if(rarity >= 65.0 && rarity < 80.0) how_rare = 3
  1201.     else if(rarity >= 80.0 && rarity < 92.5) how_rare = 4
  1202.     else if(rarity >= 92.5 && rarity < 97.5) how_rare = 5
  1203.     else if(rarity >= 97.5 && rarity <= 100.0) how_rare = 6
  1204.    
  1205.     for(new i; i<ArraySize(Skins); i++)
  1206.     {
  1207.         ArrayGetArray(Skins, i, tmp_Skins)
  1208.         if(tmp_Skins[Rarity] == how_rare && tmp_Skins[Drop_from] == num)
  1209.         {
  1210.             skins[count] = i
  1211.             count++
  1212.         }
  1213.     }
  1214.    
  1215.     new dropped = random_num(0, count)
  1216.    
  1217.     ArraySetCell(Owned[id], skins[dropped], ArrayGetCell(Owned[id], skins[dropped])+1)
  1218.     ArrayGetArray(Skins, skins[dropped], tmp_Skins)
  1219.     ColorChat(id, NORMAL, "^4[%s]^1 Egy ^3%s ^1skint nyitottál!", Prefix, tmp_Skins[Name])
  1220. }
  1221.  
  1222. /*==========CS:GO-S GRÁNÁT HANGOK==========*/
  1223. public Message_TextMsg(iMsgId, iMsgType, iMsgEnt) {
  1224.     if(get_msg_arg_int(1) != MSGARG_PRINT_RADIO)
  1225.         return PLUGIN_CONTINUE;
  1226.  
  1227.     static szMsg[32]; get_msg_arg_string(MSGARG_PRINT_RADIO, szMsg, charsmax(szMsg));
  1228.    
  1229.     if(equal(szMsg, "#Fire_in_the_hole")) {
  1230.         static Sender[4], SenderName[32], szSound[MAX_SOUND_PATH_LENGTH], SenderId;
  1231.         get_msg_arg_string(MSGARG_SENDER_ID, Sender, charsmax(Sender));
  1232.         get_msg_arg_string(MSGARG_SENDER_NAME, SenderName, charsmax(SenderName));
  1233.  
  1234.         SenderId = str_to_num(Sender);
  1235.         switch(get_user_weapon(SenderId)) {
  1236.             case CSW_HEGRENADE: szSound = g_szHegrenSounds[random(sizeof(g_szHegrenSounds))];
  1237.             case CSW_SMOKEGRENADE: szSound = g_szSmokeSounds[random(sizeof(g_szSmokeSounds))];
  1238.             case CSW_FLASHBANG: szSound = g_szFlashSounds[random(sizeof(g_szFlashSounds))];
  1239.             default: return PLUGIN_CONTINUE;
  1240.         }
  1241.        
  1242.         emit_sound(SenderId, CHAN_VOICE, szSound, VOL_NORM, ATTN_STATIC, 0, PITCH_NORM);
  1243.         return PLUGIN_HANDLED;
  1244.     }
  1245.     return PLUGIN_CONTINUE;
  1246. }


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Precache Fatal Error.
HozzászólásElküldve: 2016.06.04. 22:01 
Offline
Tag
Avatar

Csatlakozott: 2015.08.23. 14:22
Hozzászólások: 39
Megköszönt másnak: 17 alkalommal
Megköszönték neki: 4 alkalommal
Sajnos semmi az sql azóta sem hajlandó csatlakozni a fejlesztő azt nyögte írjam át constra megtörtént ugyan úgy hibás ez a fos... :/

_________________
✯ℝaiz3n✯ツ
Kép
Egy tökéletes világban nincsenek csalók. Mi megvalósítottuk a tökéletes világot.
http://www.switchtogaming.hu


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  [ 7 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 41 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