hlmod.hu

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



Jelenlévő felhasználók

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

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

Regisztrált felhasználók: nincs regisztrált felhasználó 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  [ 52 hozzászólás ]  Oldal 1 2 3 4 5 6 Következő
Szerző Üzenet
 Hozzászólás témája: Publikus CS:GO Mod
HozzászólásElküldve: 2016.05.03. 09:55 
Offline
Nagyúr
Avatar

Csatlakozott: 2014.08.24. 18:28
Hozzászólások: 584
Megköszönt másnak: 122 alkalommal
Megköszönték neki: 120 alkalommal
A projekt személyes okokból szünetel!


Sziasztok!

Mint azt már sokan tudhatjátok, elkezdtem egy Publikus CS:GO modot írni, részben a hatalmas szívem miatt, hogy mindenkinek legyen esélye egy sikeres GO szerverre (füllentés), részben pedig a sok terjengő, számomra fájdalmas megoldásokkal teli mod lecserélésére.
Szívesen várom az ötleteket, javaslatokat. Teszteljétek nyugodtan, ha hibát találtok, szóljatok és amint lehet, javítom.
Az, hogy nem kerül be valakinek az ötlete, nem jelenti, hogy rossz, csak azt, hogy szerintem nem illik bele a modba. Mindenki úgy szerkeszti saját felelősségre a forráskódot, ahogy szeretné, ám én csak az eredeti, általam kiadottal foglalkozom.

Akkor kezdjük is a beállítási lehetőségekkel:
A "csgo_prefix" cvarral állíthatjuk a chat prefixet.
A "csgo_keydrop" cvarral állíthatjuk a kulcs dropp esélyét.
A "csgo_casedrop" cvarral állíthatjuk a láda dropp esélyét.

Az SQL adatokat a configs mappában található sql.cfg fájlban kell módosítani.
amx_sql_host "127.0.0.1"
amx_sql_user "felhasználónév"
amx_sql_pass "jelszó"
amx_sql_db "adatbázis"
amx_sql_type "mysql"

A configs mappában található g_offen.ini fájlba kell beleírni a skineket és a ládákat.
Skinre példa:
Kód:
"weapon_ak47" "0" "1" "elso_ak" "AK47 | Első skin" "models/g_offen/v_ak47_1.mdl"

Sorrendben:
A fegyver entitás neve
Hanyadik ládából dobja. (Az iniben az első láda a 0, a második az 1, stb...)
Mennyire legyen ritka. (0: átlagos, 6: nagyon ritka [GYK: 0-tól 6-ig])
Neve az SQL táblában.
Neve a játékban.
Modellje.

Ládára példa:
Kód:
"lada" "" "" "elso_lada" "Operation Wildfire" ""

Sorrendben:
lada -> Ide szigorúan csak ezt szabad írni, mert különben a plugin nem ismeri fel ládaként.
Üres idézőjel. ("")
Üres idézőjel. ("")
Láda és kulcs neve az SQL táblában. (Ebben az esetben a ládáé: elso_lada, a kulcsé: elso_lada_k)
Láda és kulcs neve a játékban. (Ebben az esetben a ládáé: Operation Wildfire Láda, a kulcsé: Operation Wildfire Kulcs)
Üres idézőjel. ("")

Minden ládához automatikusan létrehoz a rendszer egy kulcsot.

Ezek lennének a mindenki számára szánt konfigurálási lehetőségek.
Emellett a plugin_init-ben módosíthatjuk a menü parancsokat, valamint lejjebb a menük címsorait.
► Spoiler mutatása


Az alap skineket adom, a többit viszont nektek kell beszereznetek.
A dropprendszert nevezzük "Fantom Droppnak", mivel nem egy entitást spawnol valahol a mapra, hanem a gyilkos kapja meg instant a javakat. :)
A plugin nincs ékezetesítve, de ezt mindenki meg tudja oldani magának. ;)

A plugin mostantól .zip formátumban érhető el az alábbi linken, mivel hangok és alap modellek is csatolva vannak hozzá.
Publikus CS:GO mod

ELO Rankrendszer 1.0.0 csatolva a .zip fájlban.
Beállítások:
Az "amx_elo_k" cvar egy konstans érték, melyet a plugin a számítások során használ. Befolyásolja a kapot ELO pontok értékét. Float.
Az "amx_elo_ads" cvar a hirdetések időközét állítja. Float.
A rangok ponthatárait, neveit, és chat prefixeit a 17. sorban módosíthatjátok.
Sorrend:
"Chat prefix", "Rang neve", "Alsó ponthatár", "Felső ponthatár"

Chat parancsok:
/elo - Kiírja az ELO rendszer alapján a rankod.
/top10 - Kilistázza ez ELO rendszer szerinti 10 legjobb játékost egy MOTD-be.
/session - Kiírja az adott pályán nyújtott teljesítményed.
/notify - Ki-/Bekapcsolja a halál értesítéseket.

Figyelem! A plugin egyben chatrendszer is!
Admin prefixek:
'a' jog - Tulaj
's' jog - Főadmin
'd' és 't' jog - Admin+VIP
't' jog - VIP

SQL-re ment, ám az adatokat szintúgy a már fent említett sql.cfg-ből olvassa ki.
Tesztelve nem volt!


A hozzászólást 4 alkalommal szerkesztették, utoljára LyleChriss 2016.05.17. 17:09-kor.

Ők köszönték meg LyleChriss nek ezt a hozzászólást (összesen 3): kengurumancs (2016.05.03. 11:18) • titkos (2016.05.05. 09:21) • ksslszl (2016.06.09. 02:42)
  Népszerűség: 6.82%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Publikus CS:GO Mod
HozzászólásElküldve: 2016.05.03. 10:14 
Offline
Senior Tag

Csatlakozott: 2015.08.11. 14:21
Hozzászólások: 215
Megköszönt másnak: 50 alkalommal
Megköszönték neki: 6 alkalommal
Nekem tetszik! Most írtam bele pár új fegyvert, viszont a rangrendszert, fegyvermenüt meg ilyen apróságokat hiányolom.Elég egyszerűen kimásolnom más módból????


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Publikus CS:GO Mod
HozzászólásElküldve: 2016.05.03. 10:58 
Offline
Nagyúr

Csatlakozott: 2015.02.01. 11:40
Hozzászólások: 670
Megköszönt másnak: 16 alkalommal
Megköszönték neki: 99 alkalommal
CoopCola írta:
Nekem tetszik! Most írtam bele pár új fegyvert, viszont a rangrendszert, fegyvermenüt meg ilyen apróságokat hiányolom.Elég egyszerűen kimásolnom más módból????

külön plugin...

_________________
http://steamcommunity.com/id/floxay/


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Publikus CS:GO Mod
HozzászólásElküldve: 2016.05.03. 11:06 
Offline
Senior Tag

Csatlakozott: 2015.08.11. 14:21
Hozzászólások: 215
Megköszönt másnak: 50 alkalommal
Megköszönték neki: 6 alkalommal
FloxaY írta:
CoopCola írta:
Nekem tetszik! Most írtam bele pár új fegyvert, viszont a rangrendszert, fegyvermenüt meg ilyen apróságokat hiányolom.Elég egyszerűen kimásolnom más módból????

külön plugin...



Mindent értek. :xicon_e_biggrin: :xicon_e_biggrin:


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Publikus CS:GO Mod
HozzászólásElküldve: 2016.05.03. 23:06 
Offline
Tud valamit

Csatlakozott: 2016.04.30. 18:52
Hozzászólások: 104
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 2 alkalommal
Gratulálok.
Nagyon szép munka!

Ők köszönték meg Hl1Star nek ezt a hozzászólást: LyleChriss (2016.05.04. 07:42)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Publikus CS:GO Mod
HozzászólásElküldve: 2016.05.06. 05:01 
Offline
Nagyúr
Avatar

Csatlakozott: 2014.08.24. 18:28
Hozzászólások: 584
Megköszönt másnak: 122 alkalommal
Megköszönték neki: 120 alkalommal
CoopCola jelezte, hogy problémája van a skin cserével (csak a raki első skinjét választja ki/cseréli le csak azt droppolja a láda). Nekem ilyen nem volt, ám amennyiben valakinek még akad, vagy netán tudja a megoldást az jelezze!


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Publikus CS:GO Mod
HozzászólásElküldve: 2016.05.09. 19:38 
Offline
Tud valamit
Avatar

Csatlakozott: 2015.02.04. 18:53
Hozzászólások: 116
Megköszönt másnak: 12 alkalommal
Megköszönték neki: 3 alkalommal
Mi okozhatja azt, hogy sehogy sem hozza elő a menüt?

_________________
Ha esetleg segítettem volna,(ami 1 évben 2-3x fog esetleg megtörténni) akkor ne felejtsd el megköszönni. ;)


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Publikus CS:GO Mod
HozzászólásElküldve: 2016.05.09. 19:44 
Offline
Fórum Moderátor
Avatar

Csatlakozott: 2012.07.02. 17:41
Hozzászólások: 1641
Megköszönt másnak: 121 alkalommal
Megköszönték neki: 247 alkalommal
.:[KR!$Z]:. írta:
Mi okozhatja azt, hogy sehogy sem hozza elő a menüt?

Az, hogy átírtál benne valamit. Ha nem akkor majd lajhár barátunk segít.

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Publikus CS:GO Mod
HozzászólásElküldve: 2016.05.12. 10:15 
Offline
Tag

Csatlakozott: 2016.05.12. 06:36
Hozzászólások: 49
Ha azt szeretném hogy az alap szkinek maradjanak és ne én rakjak be, akkor azt hogy tehetem meg?

Kód:
new const Default_Skins[][DATA] = {
   //Nulla, Nulla, Üresen hagyni, fegyver neve, models/modell.mdl
   {0, 0, "", "AK47", "models/g_offen/v_ak47.mdl"},
   {0, 0, "", "M4A1", "models/g_offen/v_m4a1.mdl"}
}


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Publikus CS:GO Mod
HozzászólásElküldve: 2016.05.12. 10:57 
Offline
Nagyúr
Avatar

Csatlakozott: 2014.08.24. 18:28
Hozzászólások: 584
Megköszönt másnak: 122 alkalommal
Megköszönték neki: 120 alkalommal
foslap írta:
Ha azt szeretném hogy az alap szkinek maradjanak és ne én rakjak be, akkor azt hogy tehetem meg?

Valahogy így. :D Most már összeszedem magam, és nekilátok a fejlesztéseknek meg a teszteknek.

  1. /*[Bugok]:  *Amíg nem választod ki a raktárban az 1. skint, nem mutatja a többit
  2. */
  3.        
  4. /*[Tennivalók]:    *CS:GO-s gránát hangok berakása.
  5.         *Tec-9, PP-Bizon, és egyéb fegyverek berakása
  6.         *Offline piac elkészítése
  7.         *Natívok készítése külső pluginokhoz (kérésre megcsinálok bármilyet)
  8.         *Offline piac
  9. */
  10.  
  11. /*[Megjegyzések]:  *A teszteléshez használt skinek, ládák és kulcsok lecserélendőek!
  12.             *A ládák droppolását nem tudtam elég behatóan tesztelni a kevés skin miatt. Ha hibás, jelezzétek!
  13.             *A plugin nincs ékezetesítve!
  14. */
  15.  
  16. /*[Changelog]
  17. v1.0.5 - Minimális teljesítményjavítás via mforce
  18. v1.0.4 - Összetettebb dropp rendszer
  19. v1.0.3 - Minden ládának saját kulcs
  20. v1.0.2 - Több láda
  21. v1.0.1 - SQL mentés és még pár bug javítása
  22. v1.0.0 - Alap ötlet
  23. */
  24.  
  25. #include <amxmodx>
  26. #include <amxmisc>
  27. #include <hamsandwich>
  28. #include <engine>
  29. #include <fakemeta>
  30. #include <sqlx>
  31. #include <colorchat>
  32.  
  33. //Köszönet mforce-nak a definiálásokért :)
  34. const m_pPlayer = 41
  35. const XO_WEAPON = 4
  36. #define get_weapon_owner(%1)        get_pdata_cbase(%1, m_pPlayer, XO_WEAPON)
  37.  
  38. new const Author[] = {"LyleChriss"}
  39. new const Version[] = {"1.0.5"}
  40. new const Plugin[] = {"CS:GO Mod"}
  41.  
  42. new const Prefix[] = {"CS:GO"}
  43.  
  44. //Droppok
  45. #define CASE_DROP 25.0      //Láda dropp (Alap: 25%)
  46. #define KEY_DROP 7.0        //Kulcs dropp (Alap 7%)
  47.  
  48. //SQL
  49. new const SQL_INFO[][] = {
  50.     "127.0.0.1",
  51.     "SH24765_default",
  52.     "hHaTf1RsrPiy78",
  53.     "SH24765_default"
  54. }
  55. new Handle:g_SqlTuple
  56.  
  57. //Fegyverek, amiket skinezni akarsz
  58. new const Weapons[][] = {
  59.     "weapon_ak47",
  60.     "weapon_m4a1"
  61. }
  62.  
  63. //Egyéb dolgok, amiket skinezel
  64. new const Others[][] = {
  65.     "weapon_smokegrenade",
  66.     "weapon_c4"
  67. }
  68.  
  69. enum _:DATA
  70. {
  71.     Drop_from,
  72.     Rarity,
  73.     InSQL[32],
  74.     Name[32],
  75.     Model[64]
  76. }
  77.  
  78. /*Fegyver ritkasága [CS:GO-s színekkel jellemezve]:
  79. 0 - Szürke
  80. 1 - Világos kék
  81. 2 - Kék
  82. 3 - Lila
  83. 4 - Pink
  84. 5 - Piros
  85. 6 - Arany [Késeknek]*/
  86.  
  87. //Az első szám azt jelzi, hogy a Cases conts hanyadik sorában lévő ládából legyen droppolva a skin
  88. //Megszerezhető fegyver skinek
  89. new const Skins[][DATA] = {
  90.     //Ládája, Ritkaság, Neve az SQL táblában, Neve a játékban, models/modell.mdl
  91.     {0, 0, "vanquish_ak", "AK47 | Vanquish", "models/g_offen/ak47_1.mdl"},
  92.     {0, 1, "guardian_m4", "M4A1 | Guardian", "models/g_offen/m4a1_1.mdl"},
  93.     {0, 2, "vanquish2_ak", "AK47 | Vanquish2", "models/g_offen/ak47_1.mdl"},
  94.     {1, 3, "vanquish3_ak", "AK47 | Vanquish3", "models/g_offen/ak47_1.mdl"},
  95.     {1, 4, "vanquish4_ak", "AK47 | Vanquish4", "models/g_offen/ak47_1.mdl"},
  96.     {1, 5, "vanquish5_ak", "AK47 | Vanquish5", "models/g_offen/ak47_1.mdl"}
  97. }
  98.  
  99. //Alap skinek
  100. /*new const Default_Skins[][DATA] = {
  101.     //Nulla, Nulla, Üresen hagyni, fegyver neve, models/modell.mdl
  102.     {0, 0, "", "AK47", "models/g_offen/v_ak47.mdl"},
  103.     {0, 0, "", "M4A1", "models/g_offen/v_m4a1.mdl"}
  104. }*/
  105.  
  106. //Egyéb modellek
  107. new const Other_Skins[][DATA] = {
  108.     //Nulla, Nulla, Üresen hagyni, fegyver neve, modells/modell.mdl
  109.     {0, 0, "", "Smokegrenade", "models/g_offen/v_smokegrenade.mdl"},
  110.     {0, 0, "", "C4",  "models/g_offen/v_c4.mdl"}
  111. }
  112.  
  113. enum _:CASE_DATA
  114. {
  115.     CaseInSQL[32],
  116.     CaseName[32],
  117.     KeyInSQL[32],
  118.     KeyName[32]
  119. }
  120.  
  121. new const Cases[][CASE_DATA] = {
  122.     //Neve az SQL táblában, Neve a játékban, kulcs neve az SQL-ben, kulcs neve a játékban
  123.     {"falchion", "Falchion Case", "falchion_k", "Falchion Case Key"},
  124.     {"winter", "Winter Offensive Case", "winter_k", "Winter Offensive Case Key"}
  125. }
  126.  
  127. //Birtokolt cuccok, kiválasztott skinek
  128. new owned[33][sizeof(Skins)]
  129. new chosen[33][sizeof(Weapons)]
  130. new cases[33][sizeof(Cases)]
  131. new keys[33][sizeof(Cases)]
  132.  
  133. //Arany
  134. new arany[33]
  135.  
  136. //Küldés menü
  137. new send[33][8], target[33]
  138.  
  139. //Piac
  140. enum _:Market
  141. {
  142.     bool:Stuff,
  143.     Put_out,
  144.     Value
  145. }
  146.  
  147. new Market_Things[33][Market]
  148.  
  149. //Egyéb
  150. new name[33][32], authid[33][32]
  151.  
  152. public plugin_init() {
  153.     register_plugin(Plugin, Version, Author)
  154.     register_cvar("public_csgo", Version, FCVAR_SERVER | FCVAR_SPONLY)
  155.    
  156.     //Fegyver modellcserék
  157.     for(new i; i<sizeof(Weapons); i++)
  158.         RegisterHam(Ham_Item_Deploy, Weapons[i], "ItemDeploy_Weapon", 1)
  159.     for(new i; i<sizeof(Others);i++)
  160.         RegisterHam(Ham_Item_Deploy, Others[i], "ItemDeploy_Other", 1)
  161.    
  162.     //Menü parancsok
  163.     register_impulse(201, "FoMenu")
  164.     register_clcmd("say /fomenu", "FoMenu")
  165.     register_clcmd("say_team /fomenu", "FoMenu")
  166.     register_clcmd("say /menu", "FoMenu")
  167.     register_clcmd("say_team /menu", "FoMenu")
  168.    
  169.     //Say módok
  170.     register_clcmd("DARAB", "Kuldes")
  171.     register_clcmd("ARANY", "Ellenorzes")
  172.    
  173.     //Halál
  174.     register_event("DeathMsg", "eDeathMsg", "a")
  175. }
  176.  
  177. /*==========PRECACHE==========*/
  178. public plugin_precache()
  179. {
  180.     for(new i; i<sizeof(Skins);i++)
  181.         precache_model(Skins[i][Model])
  182.        
  183.     /*for(new i; i<sizeof(Default_Skins);i++)
  184.         precache_model(Default_Skins[i][Model])*/
  185.    
  186.     for(new i; i<sizeof(Other_Skins);i++)
  187.         precache_model(Other_Skins[i][Model])
  188. }
  189.  
  190. /*==========SQL MENTÉS==========*/
  191. //Ne piszkáld, tökéletes!
  192. public plugin_cfg()
  193. {
  194.     static Query[5120], Len
  195.     g_SqlTuple = SQL_MakeDbTuple(SQL_INFO[0],SQL_INFO[1],SQL_INFO[2],SQL_INFO[3])
  196.    
  197.     Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS `g_offen` (`authid` varchar(32) NOT NULL, `username` varchar(32) NOT NULL")
  198.     for(new i; i<sizeof(Skins);i++)
  199.     {
  200.         Len += formatex(Query[Len], charsmax(Query)-Len, ", `%s` int(11) NOT NULL", Skins[i][InSQL])
  201.     }
  202.     for(new i; i<sizeof(Cases);i++)
  203.     {
  204.         Len += formatex(Query[Len], charsmax(Query)-Len, ", `%s` int(11) NOT NULL, `%s` int(11) NOT NULL", Cases[i][CaseInSQL], Cases[i][KeyInSQL])
  205.     }
  206.     Len += formatex(Query[Len], charsmax(Query)-Len, ", `gold` int(11) NOT NULL, `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)")
  207.     SQL_ThreadQuery(g_SqlTuple,"createTableThread", Query)
  208. }
  209.      
  210. public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
  211. {
  212.     if(FailState == TQUERY_CONNECT_FAILED)
  213.         set_fail_state("Nem lehet csatlakozni az adatbazishoz.")
  214.     else if(FailState == TQUERY_QUERY_FAILED)
  215.         set_fail_state("Query Error")
  216.     if(Errcode)
  217.         log_amx("Hiba: %s",Error)
  218. }
  219.  
  220. public client_putinserver(id)
  221. {
  222.     if(!is_user_bot(id) && !is_user_hltv(id))
  223.     {
  224.         get_user_name(id, name[id], charsmax(name))
  225.         get_user_authid(id, authid[id], charsmax(authid))
  226.         if(contain(authid[id], "_ID_LAN") != -1) get_user_ip(id, authid[id], charsmax(authid), 1)
  227.         Load_SQL(id)
  228.     }
  229. }
  230.  
  231. public client_disconnect(id)
  232. {
  233.     if(!is_user_bot(id) && !is_user_hltv(id))
  234.         Update_SQL(id)
  235.    
  236.     arrayset(owned[id], 0, sizeof(Skins))
  237.     arrayset(cases[id], 0, sizeof(Cases))
  238.     arrayset(keys[id], 0, sizeof(Cases))
  239.     arrayset(chosen[id], 0, sizeof(Weapons))
  240.     authid[id][0] = EOS;
  241.     name[id][0] = EOS;
  242. }
  243.  
  244. public client_infochanged(id)
  245. {
  246.     if(!is_user_connected(id))
  247.         return PLUGIN_HANDLED
  248.    
  249.     get_user_info(id, "name", name[id], charsmax(name[]))
  250.    
  251.     return PLUGIN_CONTINUE
  252. }
  253.  
  254. public Load_SQL(id)
  255. {
  256.     static Query[5120], Data[1]; Data[0] = id
  257.    
  258.     formatex(Query, charsmax(Query), "SELECT * FROM `g_offen` WHERE authid = ^"%s^";", authid[id])
  259.     SQL_ThreadQuery(g_SqlTuple, "QuerySelectData", Query, Data, 1)
  260. }
  261.  
  262. public QuerySelectData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
  263. {
  264.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
  265.     {
  266.         log_amx("%s", Error)
  267.         return
  268.     }
  269.     else
  270.     {
  271.         new id = Data[0];
  272.  
  273.         if(SQL_NumRows(Query) > 0)
  274.         {
  275.             for(new i; i<sizeof(Skins);i++)
  276.             {
  277.                 owned[id][i] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, Skins[i][InSQL]))
  278.             }
  279.             for(new i; i<sizeof(Cases);i++)
  280.             {
  281.                 keys[id][i] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, Cases[i][KeyInSQL]))
  282.             }
  283.             for(new i; i<sizeof(Cases);i++)
  284.             {
  285.                 cases[id][i] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, Cases[i][CaseInSQL]))
  286.             }
  287.             arany[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "gold"))
  288.         }
  289.         else
  290.         {
  291.             Save_SQL(id)
  292.         }
  293.     }
  294. }
  295.  
  296. public Save_SQL(id)
  297. {
  298.     static Query[5120], Len
  299.     Len += formatex(Query[Len], charsmax(Query), "INSERT INTO `g_offen` (`authid`, `username`")
  300.     for(new i; i<sizeof(Skins);i++)
  301.     {
  302.         Len += formatex(Query[Len], charsmax(Query)-Len, ", `%s`", Skins[i][InSQL])
  303.     }
  304.     for(new i; i<sizeof(Cases); i++)
  305.     {
  306.         Len += formatex(Query[Len], charsmax(Query)-Len, ", `%s`, `%s`", Cases[i][CaseInSQL], Cases[i][KeyInSQL])
  307.     }
  308.     Len += formatex(Query[Len], charsmax(Query)-Len, ", `gold`) VALUES (^"%s^", ^"%s^"", authid[id], name[id])
  309.     for(new i;i<sizeof(Skins);i++)
  310.     {
  311.         Len += formatex(Query[Len], charsmax(Query)-Len, ", ^"0^"")
  312.     }
  313.     for(new i; i<sizeof(Cases); i++)
  314.     {
  315.         Len += formatex(Query[Len], charsmax(Query)-Len, ", ^"0^", ^"0^"")
  316.     }
  317.     Len += formatex(Query[Len], charsmax(Query)-Len, ", ^"0^");")
  318.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query)
  319. }
  320.  
  321. public QuerySetData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
  322. {
  323.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
  324.     {
  325.         log_amx("%s", Error)
  326.         return
  327.     }
  328. }
  329.  
  330. public Update_SQL(id)
  331. {
  332.     static Query[5120], Len
  333.     Len += formatex(Query[Len], charsmax(Query), "UPDATE `g_offen` SET `username` = ^"%s^"", name[id])
  334.     for(new i;i<sizeof(Skins);i++)
  335.     {
  336.         Len += formatex(Query[Len], charsmax(Query)-Len, ", `%s` = %d", Skins[i][InSQL], owned[id][i])
  337.     }
  338.     for(new i;i<sizeof(Cases);i++)
  339.     {
  340.         Len += formatex(Query[Len], charsmax(Query)-Len, ", `%s` = %d, `%s` = %d", Cases[i][CaseInSQL], cases[id][i], Cases[i][KeyInSQL], keys[id][i])
  341.     }
  342.     Len += formatex(Query[Len], charsmax(Query)-Len, ", `gold` = %d WHERE `authid` = ^"%s^";", keys[id], arany[id], authid[id])
  343.    
  344.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query)
  345. }
  346.  
  347. public plugin_end() SQL_FreeHandle(g_SqlTuple)
  348.  
  349. /*==========MENÜK==========*/
  350. //Tökéletes, de ha akarsz, belenyúlsz.
  351. //Javaslom, hogy csak a menük neveit módosítsd, a ciklusokba és handlerekbe ne nyúlj bele.
  352. public FoMenu(id)
  353. {
  354.     new txt[128]
  355.     formatex(txt, charsmax(txt), "\r%s\w%s^nby \y%s^nFőMenü", Plugin, Version, Author)
  356.     new menu = menu_create(txt, "FoMenu_h")
  357.    
  358.     menu_additem(menu, "Raktár", "", 0)
  359.     menu_additem(menu, "Láda nyitás", "", 0)
  360.     menu_additem(menu, "Lomtár", "", 0)
  361.     menu_additem(menu, "Küldés", "", 0)
  362.     menu_additem(menu, "Piac", "", 0)
  363.    
  364.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  365.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  366.      
  367.     menu_display(id, menu, 0)
  368.     return PLUGIN_HANDLED
  369. }
  370.  
  371. public FoMenu_h(id, menu, item)
  372. {
  373.     switch(item)
  374.     {
  375.         case 0:Raktar_M(id)
  376.         case 1:Lada_M(id)
  377.         case 2:Lomtar_M(id)
  378.         case 3:Kuldes_M(id)
  379.         case 4:Piac_M(id)
  380.         case MENU_EXIT:{
  381.             menu_destroy(menu)
  382.             return PLUGIN_HANDLED
  383.         }
  384.     }
  385.    
  386.     menu_destroy(menu)
  387.     return PLUGIN_HANDLED
  388. }
  389.  
  390. public Raktar_M(id)
  391. {
  392.     new txt[128], num[8]
  393.     formatex(txt, charsmax(txt), "\r%s\w%s^nRaktár", Plugin, Version)
  394.     new menu = menu_create(txt, "Raktar_h")
  395.    
  396.     for(new i; i<sizeof(Skins);i++)
  397.     {
  398.         if(owned[id][i] > 0)
  399.         {
  400.             num_to_str(i, num, charsmax(num))
  401.             formatex(txt, charsmax(txt), "%s [%d DB]", Skins[i][Name], owned[id][i])
  402.             menu_additem(menu, txt, num, 0)
  403.         }
  404.     }
  405.    
  406.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  407.     menu_setprop(menu, MPROP_BACKNAME, "Vissza")
  408.     menu_setprop(menu, MPROP_NEXTNAME, "Előre")
  409.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  410.      
  411.     menu_display(id, menu, 0)
  412.     return PLUGIN_HANDLED
  413. }
  414.  
  415. public Raktar_h(id, menu, item)
  416. {
  417.     if(item == MENU_EXIT)
  418.     {
  419.         menu_destroy(menu)
  420.         return PLUGIN_HANDLED
  421.     }
  422.    
  423.     new data[9], access, callback, szName[64]
  424.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  425.     new key = str_to_num(data)
  426.    
  427.     for(new i; i<sizeof(Weapons);i++)
  428.     {
  429.         copy(szName, charsmax(szName), Weapons[i])
  430.         replace(szName, charsmax(szName), "weapon_", "")
  431.         if(containi(Skins[key][Name], szName) != -1)
  432.         {
  433.             chosen[id][i] = key+1
  434.             ColorChat(id, NORMAL, "^4[%s]^1 Kiválasztottad a(z) ^3%s ^1skint!", Prefix, Skins[key][Name])
  435.            
  436.             break;
  437.         }
  438.     }
  439.    
  440.     menu_destroy(menu)
  441.     return PLUGIN_HANDLED
  442. }
  443.  
  444. public Lada_M(id)
  445. {
  446.     new txt[128]
  447.     formatex(txt, charsmax(txt), "\r%s\w%s^nLáda nyitás", Plugin, Version)
  448.     new menu = menu_create(txt, "Lada_h")
  449.    
  450.     for(new i; i<sizeof(Cases);i++)
  451.     {
  452.         formatex(txt, charsmax(txt), "%s [%d DB] | [%d DB Kulcs]", Cases[i][CaseName], cases[id][i], keys[id][i])
  453.         menu_additem(menu, txt, "", 0)
  454.     }
  455.    
  456.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  457.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  458.      
  459.     menu_display(id, menu, 0)
  460.     return PLUGIN_HANDLED
  461. }
  462.  
  463. public Lada_h(id, menu, item)
  464. {
  465.     if(item == MENU_EXIT)
  466.     {
  467.         menu_destroy(menu)
  468.         return PLUGIN_HANDLED
  469.     }
  470.    
  471.     if(keys[id][item] > 0 && cases[id][item] > 0)
  472.     {
  473.         keys[id][item]--
  474.         cases[id][item]--
  475.         weapon_drop(id, item)
  476.     }
  477.     else
  478.     {
  479.         if(keys[id][item] == 0)
  480.             ColorChat(id, NORMAL, "^4[%s]^1 Nincs elég ^4%s^1-ed!", Prefix, Cases[item][KeyName])
  481.         else
  482.             ColorChat(id, NORMAL, "^4[%s]^1 Nincs elég ^4%s^1-d!", Prefix, Cases[item][CaseName])
  483.     }
  484.     menu_destroy(menu)
  485.     return PLUGIN_HANDLED
  486. }
  487.  
  488. public Lomtar_M(id)
  489. {
  490.     new txt[128], num[8]
  491.     formatex(txt, charsmax(txt), "\r%s\w%s^nLomtár", Plugin, Version)
  492.     new menu = menu_create(txt, "Lomtar_h")
  493.    
  494.     for(new i; i<sizeof(Skins);i++)
  495.     {
  496.         if(owned[id][i] > 0)
  497.         {
  498.             num_to_str(i, num, charsmax(num))
  499.             formatex(txt, charsmax(txt), "%s [%d DB]", Skins[i][Name], owned[id][i])
  500.             menu_additem(menu, txt, num, 0)
  501.         }
  502.     }
  503.    
  504.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  505.     menu_setprop(menu, MPROP_BACKNAME, "Vissza")
  506.     menu_setprop(menu, MPROP_NEXTNAME, "Előre")
  507.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  508.      
  509.     menu_display(id, menu, 0)
  510.     return PLUGIN_HANDLED
  511. }
  512.  
  513. public Lomtar_h(id, menu, item)
  514. {
  515.     if(item == MENU_EXIT)
  516.     {
  517.         menu_destroy(menu)
  518.         return PLUGIN_HANDLED
  519.     }
  520.    
  521.     new data[9], access, callback, szName[64]
  522.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  523.     new key = str_to_num(data)
  524.    
  525.     owned[id][key]--
  526.     ColorChat(id, NORMAL, "^4[%s]^1 Eldobtál egy ^3%s ^1skint!", Prefix, Skins[key][Name])
  527.     Update_SQL(id)
  528.    
  529.     menu_destroy(menu)
  530.     return PLUGIN_HANDLED
  531. }
  532.  
  533. public Kuldes_M(id)
  534. {
  535.     new txt[128], num[8]
  536.     formatex(txt, charsmax(txt), "\r%s\w%s^nKüldés", Plugin, Version)
  537.     new menu = menu_create(txt, "Kuldes_h")
  538.    
  539.     formatex(txt, charsmax(txt), "Arany: %d", arany[id])
  540.     menu_additem(menu, txt, "Arany", 0)
  541.    
  542.     for(new i; i<sizeof(Skins);i++)
  543.     {
  544.         if(owned[id][i] > 0)
  545.         {
  546.             num_to_str(i, num, charsmax(num))
  547.             formatex(txt, charsmax(txt), "%s [%d DB]", Skins[i][Name], owned[id][i])
  548.             menu_additem(menu, txt, num, 0)
  549.         }
  550.     }
  551.    
  552.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  553.     menu_setprop(menu, MPROP_BACKNAME, "Vissza")
  554.     menu_setprop(menu, MPROP_NEXTNAME, "Előre")
  555.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  556.      
  557.     menu_display(id, menu, 0)
  558.     return PLUGIN_HANDLED
  559. }
  560.  
  561. public Kuldes_h(id, menu, item)
  562. {
  563.     if(item == MENU_EXIT)
  564.     {
  565.         menu_destroy(menu)
  566.         return PLUGIN_HANDLED
  567.     }
  568.    
  569.     new data[9], access, callback, szName[64]
  570.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  571.    
  572.     copy(send[id], charsmax(send[]), data)
  573.     JatekosValaszt(id)
  574.    
  575.     menu_destroy(menu)
  576.     return PLUGIN_HANDLED
  577. }
  578.  
  579. public JatekosValaszt(id)
  580. {
  581.     new txt[128], userID[32]
  582.     formatex(txt, charsmax(txt), "\r%s\w%s^nVálassz játékost!", Plugin, Version)
  583.     new menu = menu_create(txt, "JatekosValaszt_h")
  584.    
  585.     new players[32], pnum
  586.     get_players(players, pnum, "c")
  587.    
  588.     for(new i; i<pnum; i++)
  589.     {
  590.         if(!is_user_connected(players[i]))
  591.                 continue;
  592.        
  593.         formatex(userID, charsmax(userID), "%d", get_user_userid(players[i]))
  594.         menu_additem(menu, name[players[i]], userID, 0)
  595.     }
  596.    
  597.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  598.     menu_setprop(menu, MPROP_BACKNAME, "Vissza")
  599.     menu_setprop(menu, MPROP_NEXTNAME, "Előre")
  600.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  601.      
  602.     menu_display(id, menu, 0)
  603.     return PLUGIN_HANDLED
  604. }
  605.  
  606. public JatekosValaszt_h(id, menu, item)
  607. {
  608.     if(item == MENU_EXIT)
  609.     {
  610.         menu_destroy(menu)
  611.         return PLUGIN_HANDLED
  612.     }
  613.    
  614.     new data[9], access, callback, szName[64]
  615.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  616.     new userID = str_to_num(data)
  617.     target[id] = find_player("k", userID)
  618.    
  619.     if(!is_user_connected(target[id]))
  620.     {
  621.         ColorChat(id, NORMAL, "^4[%s]^1 Sajnálom, lecsatlakozott akit kiválasztottál!", Prefix)
  622.         menu_display(id, menu, 0)
  623.         return PLUGIN_HANDLED
  624.     }
  625.    
  626.     client_cmd(id, "messagemode DARAB");
  627.     menu_destroy(menu);
  628.     return PLUGIN_HANDLED;
  629. }
  630.  
  631. public Kuldes(id)
  632. {
  633.     new txt[128], num
  634.     read_args(txt, charsmax(txt))
  635.     remove_quotes(txt)
  636.    
  637.     if(is_str_num(txt))
  638.     {
  639.         num = str_to_num(txt)
  640.        
  641.         if(equal(send[id], "Arany"))
  642.         {
  643.             if(arany[id] >= num)
  644.             {
  645.                 arany[target[id]] += num
  646.                 arany[id] -= num
  647.                
  648.                 ColorChat(target[id], NORMAL, "^4[%s]^1 Kaptál ^3%d^1 ^4arany^1at!", Prefix, num)
  649.                 ColorChat(id, NORMAL, "^4[%s]^1 Elküldtél ^3%d^1 ^4arany^1at!", Prefix, num)
  650.                 Update_SQL(id)
  651.                 Update_SQL(target[id])
  652.             }
  653.             else
  654.                 ColorChat(id, NORMAL, "^4[%s]^1 Nincs elég ^4arany^1ad!", Prefix)
  655.         }
  656.         else
  657.         {
  658.             new i = str_to_num(send[id])
  659.            
  660.             if(owned[id][i] >= num)
  661.             {
  662.                 owned[target[id]][i] += num
  663.                 owned[id][i] -= num
  664.                
  665.                 ColorChat(target[id], NORMAL, "^4[%s]^1 Kaptál ^3%d ^4%s^1-t!", Prefix, num, Skins[i][Name])
  666.                 ColorChat(id, NORMAL, "^4[%s]^1 Elküldtél ^3%d ^4%s^1-t!", Prefix, num, Skins[i][Name])
  667.                 Update_SQL(id)
  668.                 Update_SQL(target[id])
  669.             }
  670.             else
  671.                 ColorChat(id, NORMAL, "^4[%s]^1 Nincs ennyi^4%s^1-ed!", Prefix, Skins[i][Name])
  672.         }
  673.     }
  674.     else
  675.         ColorChat(id, NORMAL, "^4[%s]^1 A megadott szöveg (%s) nem csak számokat tartalmazott! Érvénytelen!", Prefix, txt)
  676.  
  677.     return PLUGIN_CONTINUE;
  678. }
  679.  
  680. public Piac_M(id)
  681. {
  682.     new txt[128]
  683.     formatex(txt, charsmax(txt), "\r%s\w%s^nPiac", Plugin, Version)
  684.     new menu = menu_create(txt, "Piac_h")
  685.    
  686.     menu_additem(menu, "Eladás", "", 0)
  687.     menu_additem(menu, "Vásárlás", "", 0)
  688.    
  689.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  690.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  691.      
  692.     menu_display(id, menu, 0)
  693.     return PLUGIN_HANDLED
  694. }
  695.  
  696. public Piac_h(id, menu, item)
  697. {
  698.     switch(item)
  699.     {
  700.         case 0: Eladas_M(id)
  701.         case 1: Vasarlas_M(id)
  702.         case MENU_EXIT:{
  703.             menu_destroy(menu)
  704.             return PLUGIN_HANDLED
  705.         }
  706.     }
  707.    
  708.     menu_destroy(menu);
  709.     return PLUGIN_HANDLED;
  710. }
  711.  
  712. public Eladas_M(id)
  713. {
  714.     new txt[128]
  715.     formatex(txt, charsmax(txt), "\r%s\w%s^nPiac eladás", Plugin, Version)
  716.     new menu = menu_create(txt, "Eladas_h")
  717.    
  718.     if(!Market_Things[id][Stuff])
  719.     {
  720.         if(Market_Things[id][Put_out] != -1)
  721.         {
  722.             formatex(txt, charsmax(txt), "%s", Skins[Market_Things[id][Put_out]][Name])
  723.             menu_additem(menu, txt, "0", 0)
  724.         }
  725.         else
  726.             menu_additem(menu, "Válaszd ki a tárgyat!", "", 0)
  727.            
  728.         formatex(txt, charsmax(txt), "Ár: %d arany", Market_Things[id][Value])
  729.         menu_additem(menu, txt, "1", 0)
  730.        
  731.         if(Market_Things[id][Value])
  732.             menu_additem(menu, "Mehet a Piacra!", "2", 0)
  733.     }
  734.     else
  735.     {
  736.         if(Market_Things[id][Value])
  737.             menu_additem(menu, "Ajánlat visszavonása", "-1", 0)
  738.     }
  739.    
  740.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  741.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  742.     menu_display(id, menu, 0)
  743.     return PLUGIN_HANDLED
  744. }
  745.  
  746. public Eladas_h(id, menu, item)        
  747. {
  748.     if( item == MENU_EXIT )
  749.     {
  750.         menu_destroy(menu);
  751.         return PLUGIN_HANDLED;
  752.     }
  753.     new data[9], szName[64], access, callback, weapon[32]
  754.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  755.     new key = str_to_num(data)
  756.    
  757.     switch(key)
  758.     {
  759.         case -1:
  760.         {
  761.             Market_Things[id][Value] = 0
  762.             Market_Things[id][Stuff] = false
  763.             owned[id][Market_Things[id][Put_out]]++
  764.             Market_Things[id][Put_out] = -1
  765.         }
  766.         case 0:
  767.         {
  768.             TargyValaszt(id)
  769.         }
  770.         case 1:
  771.         {
  772.             client_cmd(id, "messagemode ARANY")
  773.         }
  774.         case 2:
  775.         {
  776.             if(Market_Things[id][Put_out] != -1)
  777.             {
  778.                 Market_Things[id][Stuff] = true
  779.                 owned[id][Market_Things[id][Put_out]]--
  780.                 copy(weapon, charsmax(weapon), weapon_now(id))
  781.                 if(weapon[0]) weapon_set_default(id, weapon)
  782.                 ColorChat(0, NORMAL, "^4[%s] ^3%s ^1kirakott egy ^4%s^1-t a piacra ^3%d ^4arany^1ért!", Prefix, name[id], Skins[Market_Things[id][Put_out]][Name], Market_Things[id][Value])
  783.             }
  784.             else
  785.             {
  786.                 ColorChat(0, NORMAL, "^4[%s] ^1Nem választottál ki semmit!", Prefix)
  787.                 menu_display(id, menu, 0)
  788.                 return PLUGIN_HANDLED
  789.             }
  790.         }
  791.     }
  792.     menu_destroy(menu)
  793.     return PLUGIN_HANDLED
  794. }
  795.  
  796. public Ellenorzes(id)
  797. {
  798.     new num, txt[32]
  799.     read_args(txt, charsmax(txt))
  800.     remove_quotes(txt)
  801.        
  802.     num = str_to_num(txt)
  803.        
  804.     if(strlen(txt) > 7)
  805.     {
  806.         client_cmd(id, "messagemode ARANY")
  807.     }
  808.     else if(num < 500)
  809.     {
  810.         ColorChat(0, NORMAL, "^4[%s] ^1Nem tudsz eladni ^3500 ^4arany^1 alattt!", Prefix)
  811.         Eladas_M(id)
  812.     }
  813.     else
  814.     {
  815.         Market_Things[id][Value] = num
  816.         Eladas_M(id)
  817.     }
  818. }
  819.  
  820. public TargyValaszt(id)
  821. {
  822.     new txt[128], num[8]
  823.     formatex(txt, charsmax(txt), "\r%s\w%s^nVálaszd ki a tárgyat!", Plugin, Version)
  824.     new menu = menu_create(txt, "TargyValaszt_h")
  825.    
  826.     for(new i;i<sizeof(Skins);i++)
  827.     {
  828.         if(owned[id][i] > 0)
  829.         {
  830.             num_to_str(i, num, charsmax(num))
  831.             formatex(txt, charsmax(txt), "%s (%d DB)", Skins[i][Name], owned[id][i])
  832.             menu_additem(menu, txt, num, 0)
  833.         }
  834.     }
  835.    
  836.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  837.     menu_setprop(menu, MPROP_BACKNAME, "Vissza")
  838.     menu_setprop(menu, MPROP_NEXTNAME, "Előre")
  839.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  840.      
  841.     menu_display(id, menu, 0)
  842.     return PLUGIN_HANDLED
  843. }
  844.  
  845. public TargyValaszt_h(id, menu, item)
  846. {
  847.     if( item == MENU_EXIT )
  848.     {
  849.         menu_destroy(menu);
  850.         return PLUGIN_HANDLED;
  851.     }
  852.     new data[9], szName[64], access, callback
  853.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  854.     new key = str_to_num(data)
  855.    
  856.     Market_Things[id][Put_out] = key
  857.     Eladas_M(id)
  858.    
  859.     menu_destroy(menu)
  860.     return PLUGIN_HANDLED
  861. }
  862.  
  863. public Vasarlas_M(id)
  864. {
  865.     new txt[128], userID[32]
  866.     formatex(txt, charsmax(txt), "\r%s\w%s^nPiac vásárlás", Plugin, Version)
  867.     new menu = menu_create(txt, "Vasarlas_h")
  868.    
  869.     new players[32], pnum
  870.     get_players(players, pnum, "c")
  871.    
  872.     for(new i; i<pnum;i++)
  873.     {
  874.         if(Market_Things[players[i]][Stuff])
  875.         {
  876.             formatex(userID, charsmax(userID), "%d", get_user_userid(players[i]))
  877.             formatex(txt, charsmax(txt), "%s (Eladó: %s | Ára: %d)", Skins[Market_Things[players[i]][Put_out]][Name], Market_Things[players[i]][Value])
  878.             menu_additem(menu, txt, userID, 0)
  879.         }
  880.     }
  881.    
  882.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  883.     menu_setprop(menu, MPROP_BACKNAME, "Vissza")
  884.     menu_setprop(menu, MPROP_NEXTNAME, "Előre")
  885.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  886.      
  887.     menu_display(id, menu, 0)
  888.     return PLUGIN_HANDLED
  889. }
  890.  
  891. public Vasarlas_h(id, menu, item)
  892. {
  893.     if(item == MENU_EXIT)
  894.     {
  895.         menu_destroy(menu);
  896.         return PLUGIN_HANDLED
  897.     }
  898.     new data[6] ,szName[64],access,callback
  899.     new name[32]
  900.        
  901.     menu_item_getinfo(menu, item, access, data, charsmax(data), szName, charsmax(szName), callback)
  902.     new userID = str_to_num(data)
  903.     new userId = find_player("k", userID)
  904.    
  905.     if(arany[id] >= Market_Things[userId][Value] && Market_Things[userId][Stuff])
  906.     {
  907.         Market_Things[userId][Stuff] = false
  908.        
  909.         ColorChat(id, NORMAL, "^4[%s] ^1Vettél egy ^3%s^1-t ^4%s^1-től ^3%d ^4arany^1ért!", Prefix, Skins[Market_Things[userId][Put_out]][Name], name[userId], Market_Things[userId][Value])
  910.         ColorChat(userID, NORMAL, "^4[%s] ^4%s^1 vett tőled ^3%s^1-t ^3%d ^4arany^1ért!", Prefix, name[id], Skins[Market_Things[userId][Put_out]][Name], Market_Things[userId][Value])
  911.         arany[userId] += Market_Things[userId][Value]
  912.         arany[id] -= Market_Things[userId][Value]
  913.         Market_Things[userId][Value] = 0
  914.         owned[id][Market_Things[userId][Put_out]] ++
  915.         owned[userId][Market_Things[userId][Put_out]] --
  916.         Market_Things[id][Put_out] = -1
  917.         Update_SQL(userID)
  918.         Update_SQL(id)
  919.     }
  920.    
  921.     menu_destroy(menu)
  922.     return PLUGIN_HANDLED
  923. }
  924.  
  925. /*==========DROPP==========*/
  926. //Jól droppol, az esélyt a plugin elején állítod.
  927. public eDeathMsg()
  928. {
  929.     new attacker = read_data(1)
  930.    
  931.     if(attacker != read_data(2) && is_user_alive(attacker))
  932.     {
  933.         set_hudmessage(random(255), random(255), random(255), -1.0, 0.20, 0, 6.0, 12.0)
  934.         if(read_data(3))
  935.         {
  936.             new mennyiseg = random_num(100, 200)
  937.             arany[attacker] += mennyiseg
  938.             show_hudmessage(attacker, "[ +%d Arany ]", mennyiseg)
  939.         }
  940.         else
  941.         {
  942.             new mennyiseg = random_num(50, 100)
  943.             arany[attacker] += mennyiseg
  944.             show_hudmessage(attacker, "[ +%d Arany ]", mennyiseg)
  945.         }
  946.        
  947.         new Float:num = random_float(0.0, 100.0)
  948.         if(num <= KEY_DROP)
  949.         {
  950.             new drp = random_num(0, sizeof(Cases)-1)
  951.             keys[attacker][drp]++
  952.             ColorChat(attacker, NORMAL, "^4[%s] ^1Találtál egy ^3%s^1-t!", Prefix, Cases[drp][KeyName])
  953.         }
  954.         else if(num <= KEY_DROP+CASE_DROP)
  955.         {
  956.             new drp = random_num(0, sizeof(Cases)-1)
  957.             cases[attacker][drp]++
  958.             ColorChat(attacker, NORMAL, "^4[%s] ^1Találtál egy ^3%s^1-t!", Prefix, Cases[drp][CaseName])
  959.         }  
  960.         Update_SQL(attacker)
  961.     }
  962.     return PLUGIN_HANDLED      
  963. }
  964.  
  965. /*==========SKIN CSERE==========*/
  966. //Nem belenyúlni, mert könnyen összekavarodnak a dolgok!!!!
  967. public ItemDeploy_Weapon(ent)
  968. {
  969.     if(ent <=0)
  970.         return HAM_IGNORED;
  971.    
  972.     new id = get_weapon_owner(ent)
  973.     new wpn[32]; pev(ent, pev_classname, wpn, charsmax(wpn))
  974.     replace(wpn, charsmax(wpn), "weapon_", "")
  975.    
  976.     for(new i; i<sizeof(Weapons);i++)
  977.     {
  978.         if(chosen[id][i] == 0)
  979.         {
  980.             /*for(new j; j<sizeof(Default_Skins);j++)
  981.             {
  982.                 if(containi(Default_Skins[j][Name], wpn) != -1)
  983.                 {
  984.                     set_pev(id, pev_viewmodel2, Default_Skins[j][Model])
  985.                     return HAM_IGNORED;
  986.                 }
  987.             }*/
  988.             return HAM_IGNORED;
  989.         }
  990.         else
  991.         {
  992.             for(new j; j<sizeof(Skins);j++)
  993.             {
  994.                 if(containi(Skins[j][Name], wpn) != -1 && chosen[id][i] == j+1)
  995.                 {
  996.                     set_pev(id, pev_viewmodel2, Skins[j][Model])
  997.                     return HAM_IGNORED;
  998.                 }
  999.             }
  1000.         }
  1001.     }
  1002.     return HAM_IGNORED;
  1003. }
  1004.  
  1005.  public ItemDeploy_Other(ent)
  1006. {
  1007.     if(ent <=0)
  1008.         return HAM_IGNORED;
  1009.    
  1010.     new id = get_weapon_owner(ent)
  1011.     new wpn[32]; pev(ent, pev_classname, wpn, charsmax(wpn))
  1012.     replace(wpn, charsmax(wpn), "weapon_", "")
  1013.    
  1014.     for(new i; i<sizeof(Others);i++)
  1015.     {
  1016.         for(new j; j<sizeof(Other_Skins);j++)
  1017.         {
  1018.             if(containi(Other_Skins[j][Name], wpn) != -1)
  1019.             {
  1020.                 set_pev(id, pev_viewmodel2, Other_Skins[j][Model])
  1021.                 return HAM_IGNORED;
  1022.             }
  1023.         }
  1024.     }
  1025.     return HAM_IGNORED;
  1026. }
  1027.  
  1028. /*==========STOCKOK==========*/
  1029. //Nem piszkálni!
  1030. stock weapon_set_default(id, weapon[])
  1031. {
  1032.     for(new i; i<sizeof(Weapons);i++)
  1033.     {
  1034.         if(containi(Weapons[i], weapon) != -1)
  1035.         {
  1036.             chosen[id][i] = 0
  1037.             return 1
  1038.         }
  1039.     }
  1040.     return 0
  1041. }
  1042.  
  1043. stock weapon_now(id)
  1044. {
  1045.     new wpn[32]; get_weaponname(get_user_weapon(id), wpn, charsmax(wpn))
  1046.     replace(wpn, charsmax(wpn), "weapon_", "")
  1047.    
  1048.     for(new i; i<sizeof(Weapons);i++)
  1049.     {
  1050.         if(chosen[id][i] == Market_Things[id][Put_out]+1 && owned[id][Market_Things[id][Put_out]] < 2)
  1051.             return wpn;
  1052.     }
  1053.    
  1054.     copy(wpn, charsmax(wpn), "")
  1055.     return wpn;
  1056. }
  1057.  
  1058. stock weapon_drop(id, num)
  1059. {
  1060.     new Float:rarity = random_float(0.0, 100.0)
  1061.     new how_rare, count, skins[16]
  1062.    
  1063.     if(rarity < 35.0)   how_rare = 0
  1064.     else if(rarity >= 35.0 && rarity < 50.0) how_rare = 1
  1065.     else if(rarity >= 50.0 && rarity < 65.0) how_rare = 2
  1066.     else if(rarity >= 65.0 && rarity < 80.0) how_rare = 3
  1067.     else if(rarity >= 80.0 && rarity < 92.5) how_rare = 4
  1068.     else if(rarity >= 92.5 && rarity < 97.5) how_rare = 5
  1069.     else if(rarity >= 97.5 && rarity <= 100.0) how_rare = 6
  1070.    
  1071.     for(new i; i<sizeof(Skins);i++)
  1072.     {
  1073.         if(Skins[i][Rarity] == how_rare && Skins[i][Drop_from] == num)
  1074.         {
  1075.             skins[count] = i
  1076.             count++
  1077.         }
  1078.     }
  1079.    
  1080.     new dropped = random_num(0, count)
  1081.    
  1082.     owned[id][skins[dropped]]++
  1083.     ColorChat(id, NORMAL, "^4[%s]^1 Egy ^3%s ^1skint nyitottál!", Prefix, Skins[skins[dropped]][Name])
  1084. }


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  [ 52 hozzászólás ]  Oldal 1 2 3 4 5 6 Következő


Ki van itt

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