· 10 years ago · Sep 17, 2016, 08:36 AM
1#include <amxmodx>
2#include <amxmisc>
3#include <hamsandwich>
4#include <cstrike>
5#include <dhudmessage>
6#include <colorchat>
7#include <engine>
8#include <fakemeta>
9#include <fun>
10#include <sqlx>
11
12new const PLUGIN[] = "Global Unison";
13new const VERSION[] = "1.0";
14new const AUTHOR[] = "exodus"; //Ne Ãrd át kösz!
15
16//EXP Drop
17#define EXPMIN 1
18#define EXPMAX 3
19//Arany Drop
20#define ARANYMIN 1
21#define ARANYMAX 20
22//Rangok
23#define TULAJ ADMIN_LEVEL_A
24#define ADMIN ADMIN_KICK
25#define VIP ADMIN_LEVEL_H
26
27//Mentés
28new Handle:g_SqlTuple;
29
30//Szinteles,Fizetés,Lada,Kulcs
31new Tapasztalat[33], Kikepzespontok[33], Szint[33], Arany[33], Lada[3][33], Kulcs[33], Mod;
32
33//Skinek
34new OsszesSkin[3][33], OsszesNev[3], Skin[1][33];
35
36//Kepessegek
37new Gyorsasag[33], Elet[33], Aranydrop[33], Ero[33];
38new FegyoEro[33], FegyoElet[33], FegyoAranydrop[33], FegyoGyorsasag[33];
39
40//Tárgyak
41new Ujratekercs[33], Aranyora[33], Aranyoraido[33], Aranyorahasznal[33];
42
43//Piac
44new Erteke[33], kicucc[33], kirakva[33], pido;
45
46//Regisztráció a kurva anyádba már
47
48
49//Chat
50new Temp[192];
51static color[10];
52
53new const PREFIX[] = "[exodus Global Unison]";
54new const Chat_PREFIX[] = "[Információ]";
55
56new const SQLINFO[][] =
57{
58 "", // HOST
59 "", // USERNAME
60 "", // PASSWORD
61 "" // DATABASE
62};
63
64new const Ladak[][] =
65{
66{ "Kulcs" },
67{ "Holdfény Kincsesláda" },
68{ "Fa Láda" },
69{ "Főnix Láda" }
70};
71
72new const Float:DropItem[][] =
73{
74 { 11.35 },
75 { 23.62},
76 { 33.23},
77 { 51.86 }
78};
79
80new const Fegyverek[3][] =
81{
82{ "AK47 | Aquamarine \y/ \rE:\w+11 \rK:\w+8 \rGY:\w+21 \rA:\w+6" },
83{ "AK47 | Carbonite \y/ \rE:\w+2 \rK:\w+40 \rGY:\w+7 \rA:\w+1" },
84{ "AK47 | Fire Serpent \y/ \rE:\w+32 \rK:\w+11 \rGY:\w+1 \rA:\w+0" }
85};
86
87new const Ak47_Modelek[][] = {
88"models/exodus_go_new/Alap/AK47.mdl",
89"models/exodus_go_new/ak47/Aquamarine.mdl",
90"models/exodus_go_new/ak47/Carbonite.mdl",
91"models/exodus_go_new/ak47/Fireserpent.mdl"
92};
93
94enum _:info
95{
96 uname[32],
97 pass[32]
98};
99
100new Array:regusers, data[info];
101
102public plugin_init()
103{
104register_plugin(PLUGIN, VERSION, AUTHOR);
105
106regusers = ArrayCreate(info);
107
108register_impulse(201, "Fomenu");
109register_clcmd("say /menu", "Fomenu");
110register_clcmd("ARANY", "lekeres");
111register_clcmd("say /add", "Addolas");
112register_clcmd("Felhasznalo", "GetUsername");
113register_clcmd("Jelszo", "GetPassword");
114
115RegisterHam(Ham_Spawn, "player", "elet_player", 1)
116RegisterHam(Ham_Spawn, "player", "ero_player", 1)
117
118register_clcmd("say", "sayhook");
119
120register_event("CurWeapon", "Fejlodes_h", "be", "1=1");
121register_event("DeathMsg", "Halal", "a");
122
123set_task(60.0, "Targyakhasznal",_,_,_,"b");
124set_task(1.0, "Skinhasznal",_,_,_,"b");
125}
126
127public plugin_precache()
128{
129for(new i;i < sizeof(Ak47_Modelek); i++){
130precache_model(Ak47_Modelek[i]);
131}
132}
133public Addolas(id)
134{
135 for(new i;i < 3; i++)
136 OsszesSkin[i][id]++;
137 for(new i;i < 3; i++)
138 Lada[i][id]++;
139 Tapasztalat[id] += 25;
140 Kulcs[id] += 25;
141 Kikepzespontok[id] += 20;
142 Aranyora[id]++;
143}
144public Targyakhasznal()
145{
146new p[32],n;
147get_players(p,n,"ch");
148for(new i=0;i<n;i++)
149 {
150 new id = p[i];
151 if(Aranyorahasznal[id] >= 1 && Aranyoraido[id] <= 1800)
152 {
153 new bPont;
154
155 bPont += random_num(ARANYMIN, ARANYMAX);
156 Arany[id] += bPont;
157 set_dhudmessage(random(256), random(256), random(256), -1.0, 0.20, 0, 6.0, 3.0);
158 show_dhudmessage(id, "+%d Arany", bPont);
159 }
160 }
161}
162public Skinhasznal()
163{
164new p[32],n;
165get_players(p,n,"ch");
166for(new i=0;i<n;i++)
167 {
168 new id = p[i];
169 if(Skin[0][id] == 1 && get_user_weapon(id) == CSW_AK47)
170 {
171 Ero[id] += 11
172 Gyorsasag[id] += 8
173 Elet[id] += 21
174 Aranydrop[id] += 6
175 }
176 }
177}
178public Fejlodes_h(id, victim, inflictor, attacker, Float:damage)
179{
180new fegyo = get_user_weapon(id);
181
182for(new i;i < sizeof(Ak47_Modelek); i++) {
183if(Skin[0][id] == i && fegyo == CSW_AK47){
184set_pev(id, pev_viewmodel2, Ak47_Modelek[i]);
185}
186}
187if(Tapasztalat[id] >= 100)
188{
189Tapasztalat[id] = 0;
190Szint[id]++;
191Kikepzespontok[id] += 2;
192}
193if(get_user_weapon(id) == CSW_KNIFE)
194{
195 set_user_maxspeed(id, get_user_maxspeed(id) + Gyorsasag[id] + FegyoGyorsasag[id])
196}
197}
198public elet_player(id)
199{
200 if(is_user_alive(id))
201 {
202 set_user_health(id, get_user_health(id) + Elet[id] + FegyoElet[id])
203 }
204}
205public ero_player(victim, inflictor, attacker, Float:damage)
206{
207 if(is_user_alive(attacker) && is_user_alive(victim))
208 {
209 new fgy = get_user_weapon(attacker)
210
211 if(fgy == CSW_AK47)
212 SetHamParamFloat(4, damage + FegyoEro[attacker] + Ero[attacker] / 2)
213 if(fgy == CSW_AWP)
214 SetHamParamFloat(4, damage + FegyoEro[attacker] + Ero[attacker] / 2)
215 if(fgy == CSW_FAMAS)
216 SetHamParamFloat(4, damage + FegyoEro[attacker] + Ero[attacker] / 2)
217 if(fgy == CSW_M4A1)
218 SetHamParamFloat(4, damage + FegyoEro[attacker] + Ero[attacker] / 2)
219 if(fgy == CSW_M3)
220 SetHamParamFloat(4, damage + FegyoEro[attacker] + Ero[attacker] / 2)
221 if(fgy == CSW_MP5NAVY)
222 SetHamParamFloat(4, damage + FegyoEro[attacker] + Ero[attacker] / 2)
223
224 if(fgy == CSW_USP)
225 SetHamParamFloat(4, damage + FegyoEro[attacker] + Ero[attacker])
226 if(fgy == CSW_DEAGLE)
227 SetHamParamFloat(4, damage + FegyoEro[attacker] + Ero[attacker] / 2)
228 }
229}
230public Fomenu(id)
231{
232new String[121];
233formatex(String, charsmax(String), "%s \r- \dFőmenü^n\rSzinted: \d%d \r| Tapasztalat: \d%d%%\r/\d100%% \r| Arany: \d%d", PREFIX, Szint[id], Tapasztalat[id], Arany[id])
234new menu = menu_create(String, "Fomenu_h")
235
236format(String,charsmax(String),"Kiképzés")
237menu_additem(menu,String,"1")
238format(String,charsmax(String),"Raktár")
239menu_additem(menu,String,"2")
240format(String,charsmax(String),"Láda Nyitás")
241menu_additem(menu,String,"3")
242format(String,charsmax(String),"Piac")
243menu_additem(menu,String,"4")
244
245menu_display(id, menu, 0)
246return PLUGIN_HANDLED
247}
248public Fomenu_h(id, menu, item){
249if(item == MENU_EXIT)
250//Ne lopkodj kurva anyád. :D (eredeti AUTHOR: exodus)
251{
252menu_destroy(menu);
253return;
254}
255
256new data[9], szName[64];
257new access, callback;
258menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
259new key = str_to_num(data);
260
261switch(key) {
262case 1: Kikepzes(id);
263case 2: Raktar_Handler(id);
264case 3: LadaNyitas(id);
265case 4: Piac(id);
266}
267}
268public Kikepzes(id)
269{
270new String[121]
271formatex(String, charsmax(String), "%s \r- \dKiképzés^n\wElosztható Pontok:\d (%d)", PREFIX, Kikepzespontok[id])
272new menu = menu_create(String, "Kikepzes_h")
273
274format(String,charsmax(String),"Erő: \r(\d%d\r) \wMax: \r95 \y(Növeli a sebzésed)^n\w +Erő: %d \r(Fegyver által)", Ero[id], FegyoEro[id])
275menu_additem(menu,String,"1")
276format(String,charsmax(String),"Kondicio: \r(\d%d\r) \wMax: \r95 \y(Növeli a sebességed)^n\w +Kondicio: %d \r(Fegyver által)", Gyorsasag[id], FegyoGyorsasag[id])
277menu_additem(menu,String,"2")
278format(String,charsmax(String),"Energia: \r(\d%d\r) \wMax: \r95 \y(Növeli az életed)^n\w +Energia: %d \r(Fegyver által)", Elet[id], FegyoElet[id])
279menu_additem(menu,String,"3")
280format(String,charsmax(String),"Ügyesség: \r(\d%d\r) \wMax: \r95 \y(Növeli a talált arany mennyiséget)^n\w +Ügyesség: %d \r(Fegyver által)", Aranydrop[id], FegyoAranydrop[id])
281menu_additem(menu,String,"4")
282
283menu_display(id, menu, 0)
284return PLUGIN_HANDLED
285}
286public Kikepzes_h(id, menu, item){
287if(item == MENU_EXIT)
288{
289menu_destroy(menu);
290return;
291}
292
293new data[9], szName[64];
294new access, callback;
295menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
296new key = str_to_num(data);
297
298switch(key)
299 {
300 case 1:
301 {
302 if(Kikepzespontok[id] >= 1 && Ero[id] <= 95)
303 {
304 Ero[id]++;
305 Kikepzespontok[id]--;
306 Kikepzes(id);
307 ColorChat(id, GREEN, "%s^1Raktál^3 +1^1 pontot az erőre!", Chat_PREFIX)
308 }
309 else
310 {
311 ColorChat(id, GREEN, "%s^1Nincs elég kiképzési pontod.", Chat_PREFIX);
312 Kikepzes(id);
313 }
314 }
315 case 2:
316 {
317 if(Kikepzespontok[id] >= 1 && Gyorsasag[id] <= 95)
318 {
319 Gyorsasag[id]++;
320 Kikepzespontok[id]--;
321 Kikepzes(id);
322 ColorChat(id, GREEN, "%s^1Raktál^3 +1^1 pontot a kondicióra!", Chat_PREFIX)
323 }
324 else
325 {
326 ColorChat(id, GREEN, "%s^1Nincs elég kiképzési pontod.", Chat_PREFIX);
327 Kikepzes(id);
328 }
329 }
330 case 3:
331 {
332 if(Kikepzespontok[id] >= 1 && Elet[id] <=95)
333 {
334 Elet[id]++;
335 Kikepzespontok[id]--;
336 Kikepzes(id);
337 ColorChat(id, GREEN, "%s^1Raktál^3 +1^1 pontot az energiára!", Chat_PREFIX)
338 }
339 else
340 {
341 ColorChat(id, GREEN, "%s^1Nincs elég kiképzési pontod.", Chat_PREFIX);
342 Kikepzes(id);
343 }
344 }
345 case 4:
346 {
347 if(Kikepzespontok[id] >= 1 && Aranydrop[id] <=95)
348 {
349 Aranydrop[id]++;
350 Kikepzespontok[id]--;
351 Kikepzes(id);
352 ColorChat(id, GREEN, "%s^1Raktál^3 +1^1 pontot az ügyességre!", Chat_PREFIX)
353 }
354 else
355 {
356 ColorChat(id, GREEN, "%s^1Nincs elég kiképzési pontod.", Chat_PREFIX);
357 Kikepzes(id);
358 }
359 }
360 }
361}
362public Raktar_Handler(id)
363{
364new String[121];
365formatex(String, charsmax(String), "%s \r- \dRaktár",PREFIX);
366new menu = menu_create(String, "Raktar_handler");
367
368format(String, charsmax(String), "\wFelszereléseim");
369menu_additem(menu, String, "1", 0);
370format(String, charsmax(String), "\wTárgyaim");
371menu_additem(menu, String, "2", 0);
372
373menu_display(id, menu, 0);
374}
375public Raktar_handler(id, menu, item){
376if(item == MENU_EXIT)
377{
378menu_destroy(menu);
379return;
380}
381
382new data[9], szName[64];
383new access, callback;
384menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
385new key = str_to_num(data);
386
387switch(key) {
388case 1: Raktar(id);
389case 2: Raktar2(id);
390}
391}
392public Raktar(id)
393{
394new String[121];
395formatex(String, charsmax(String), "%s \r- \dRaktár",PREFIX);
396new menu = menu_create(String, "Raktar_h");
397
398for(new i;i < sizeof(Fegyverek); i++)
399{
400if(OsszesSkin[i][id] > 0)
401{
402new Sor[6]; num_to_str(i, Sor, 5);
403formatex(String, charsmax(String), "\w%s \y(\dĂ–sszes: \r%d\y)", Fegyverek[i][0], OsszesSkin[i][id]);
404menu_additem(menu, String, Sor);
405}
406}
407menu_display(id, menu, 0);
408}
409public Raktar_h(id, menu, item){
410if(item == MENU_EXIT)
411{
412menu_destroy(menu);
413return;
414}
415
416new data[9], szName[64];
417new access, callback;
418menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
419new key = str_to_num(data);
420
421switch(key)
422 {
423 case 0:
424 {
425 Skin[0][id] = 1;
426 FegyoEro[id] = 11;
427 FegyoGyorsasag[id] = 8;
428 FegyoElet[id] = 21;
429 FegyoAranydrop[id] = 6;
430 }
431 case 1:
432 {
433 Skin[0][id] = 2;
434 FegyoEro[id] = 2;
435 FegyoGyorsasag[id] = 40;
436 FegyoElet[id] = 7;
437 FegyoAranydrop[id] = 1;
438 }
439 case 2:
440 {
441 Skin[0][id] = 3;
442 FegyoEro[id] = 38;
443 FegyoGyorsasag[id] = 11;
444 FegyoElet[id] = 1;
445 FegyoAranydrop[id] = 0;
446 }
447 }
448}
449public Raktar2(id)
450{
451new String[121];
452formatex(String, charsmax(String), "%s \r- \dTárgyaim",PREFIX);
453new menu = menu_create(String, "Raktar2_h");
454
455if(Ujratekercs[id] >= 1)
456{
457format(String, charsmax(String), "\wStátusz Tekercs \y(Újraoszthatod a ponjaid)");
458menu_additem(menu, String, "1", 0);
459}
460if(Aranyora[id] >= 1)
461{
462format(String, charsmax(String), "\wArany Óra \y(Időközönként ingyen arany)");
463menu_additem(menu, String, "2", 0);
464}
465
466menu_display(id, menu, 0);
467}
468public Raktar2_h(id, menu, item){
469if(item == MENU_EXIT)
470{
471menu_destroy(menu);
472return;
473}
474
475new data[9], szName[64];
476new access, callback;
477menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
478new key = str_to_num(data);
479
480switch(key)
481 {
482 case 1:
483 {
484 if(Ujratekercs[id] >= 1)
485 {
486 Kikepzespontok[id] += Aranydrop[id];
487 Kikepzespontok[id] += Elet[id];
488 Kikepzespontok[id] += Gyorsasag[id];
489 Kikepzespontok[id] += Ero[id];
490 Aranydrop[id] = 0;
491 Elet[id] = 0;
492 Gyorsasag[id] = 0;
493 Ero[id] = 0;
494 Ujratekercs[id]--;
495 ColorChat(id, GREEN, "%s^1Kepessegek alap helyzetbe Allitva!", Chat_PREFIX)
496 }
497 }
498 case 2:
499 {
500 if(Aranyora[id] >= 1)
501 {
502 Aranyoraido[id] = 0;
503 Aranyora[id]--;
504 Aranyorahasznal[id]++;
505 ColorChat(id, GREEN, "%s^1Aktiváltad az aranyórát.", Chat_PREFIX)
506 }
507 }
508 }
509}
510public LadaNyitas(id)
511{
512new String[121];
513format(String, charsmax(String), "%s \r- \dLádaNyitás^n\wKulcsaid: \d(%d) \yDrop esély: \r(%3.2f%%)", PREFIX, Kulcs[id], DropItem[3][Mod]);
514new menu = menu_create(String, "LadaNyitas_h");
515
516format(String, charsmax(String), "\w%s \d(%d) \yDrop esély: \r(%3.2f%%)", Ladak[1][0], Lada[0][id], DropItem[0][Mod]);
517menu_additem(menu, String, "1", 0);
518format(String, charsmax(String), "\w%s \d(%d) \yDrop esély: \r(%3.2f%%)", Ladak[2][0], Lada[1][id], DropItem[1][Mod]);
519menu_additem(menu, String, "2", 0);
520format(String, charsmax(String), "\w%s \d(%d) \yDrop esély: \r(%3.2f%%)", Ladak[3][0], Lada[2][id], DropItem[2][Mod]);
521menu_additem(menu, String, "3", 0);
522
523menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
524menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
525menu_display(id, menu, 0);
526return PLUGIN_HANDLED;
527}
528public LadaNyitas_h(id, menu, item){
529if(item == MENU_EXIT)
530{
531menu_destroy(menu);
532return;
533}
534
535new data[9], szName[64];
536new access, callback;
537menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
538new key = str_to_num(data);
539
540switch(key)
541 {
542 case 1:
543 {
544 if(Lada[0][id] >= 1 && Kulcs[id] >= 1)
545 {
546 Szint[id]++;
547 }
548 }
549 case 2:
550 {
551 if(Lada[1][id] >= 1 && Kulcs[id] >= 1)
552 {
553 Szint[id]++;
554 }
555 }
556 case 3:
557 {
558 if(Lada[2][id] >= 1 && Kulcs[id] >= 1)
559 {
560 Szint[id]++;
561 }
562 }
563 }
564}
565public Halal()
566{
567new Gyilkos = read_data(1);
568new Aldozat = read_data(2);
569
570if(Gyilkos == Aldozat)
571return PLUGIN_HANDLED;
572//EXP Drop------------------------------
573new pPont;
574
575pPont += random_num(EXPMIN, EXPMAX);
576Tapasztalat[Gyilkos] += pPont;
577//------------------------------
578//Arany Drop------------------------------
579new aPont;
580
581aPont += random_num(ARANYMIN, ARANYMAX);
582Arany[Gyilkos] += aPont + Aranydrop[Gyilkos] + FegyoAranydrop[Gyilkos];
583//------------------------------
584
585set_dhudmessage(random(256), random(256), random(256), -1.0, 0.20, 0, 6.0, 3.0);
586show_dhudmessage(Gyilkos, "+%d Arany", aPont + Aranydrop[Gyilkos] + FegyoAranydrop[Gyilkos]);
587
588while(Tapasztalat[Gyilkos] >= 100)
589Szint[Gyilkos]++;
590
591LadaDrop(Gyilkos);
592return PLUGIN_HANDLED;
593}
594public LadaDrop(id)
595{
596new Float:RandomSzam = random_float(0.01, 100.00);
597new Nev[32]; get_user_name(id, Nev,31);
598
599if(RandomSzam <= DropItem[0][Mod])
600{
601Lada[0][id] ++;
602ColorChat(id, GREEN, "[Információ] ^3Találtál egy: ^4%s-t.", Ladak[1][0]);
603}
604else if(RandomSzam <= DropItem[1][Mod])
605{
606Lada[1][id] ++;
607ColorChat(id, GREEN, "[Információ] ^3Találtál egy: ^4%s-t.", Ladak[2][0]);
608}
609else if(RandomSzam <= DropItem[2][Mod])
610{
611Lada[2][id] ++;
612ColorChat(id, GREEN, "[Információ] ^3Találtál egy: ^4%s-t.", Ladak[3][0]);
613}
614else if(RandomSzam <= DropItem[3][Mod])
615{
616Kulcs[id] ++;
617ColorChat(id, GREEN, "[Információ] ^3Találtál egy: ^4%s-t.", Ladak[0][0]);
618}
619}
620public client_putinserver(id)
621{
622Szint[id] = 1;
623Tapasztalat[id] = 0;
624Arany[id] = 0;
625Aranyora[id] = 0;
626Aranyoraido[id] = 0;
627Aranyorahasznal[id] = 0;
628Kulcs[id] = 0;
629Ujratekercs[id] = 0
630
631for(new i;i < 3; i++)
632OsszesNev[i] = EOS;
633
634for(new i;i < 3; i++)
635OsszesSkin[i][id] = EOS;
636
637for(new i;i < 3; i++)
638Lada[i][id] = EOS;
639
640if(!is_user_bot(id))
641Load(id);
642}
643
644public client_disconnect(id)
645{
646if(!is_user_bot(id))
647Update(id);
648}
649
650public plugin_cfg()
651{
652g_SqlTuple = SQL_MakeDbTuple(SQLINFO[0], SQLINFO[1], SQLINFO[2], SQLINFO[3]);
653
654static Query[10048];
655new Len;
656
657Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS `exodus_unison`");
658Len += formatex(Query[Len], charsmax(Query)-Len, "(`Nev` varchar(32) NOT NULL, ");
659Len += formatex(Query[Len], charsmax(Query)-Len, "`Felhasznalo` varchar(32) NOT NULL,");
660Len += formatex(Query[Len], charsmax(Query)-Len, "`Jelszo` varchar(32) NOT NULL,");
661Len += formatex(Query[Len], charsmax(Query)-Len, "`Arany` int(11) NOT NULL,");
662Len += formatex(Query[Len], charsmax(Query)-Len, "`Tapasztalat` int(11) NOT NULL,");
663Len += formatex(Query[Len], charsmax(Query)-Len, "`Osszes` int(11) NOT NULL, ");
664Len += formatex(Query[Len], charsmax(Query)-Len, "`Kulcs` int(11) NOT NULL, ");
665Len += formatex(Query[Len], charsmax(Query)-Len, "`Ero` int(11) NOT NULL, ");
666Len += formatex(Query[Len], charsmax(Query)-Len, "`Gyorsasag` int(11) NOT NULL, ");
667Len += formatex(Query[Len], charsmax(Query)-Len, "`Elet` int(11) NOT NULL, ");
668Len += formatex(Query[Len], charsmax(Query)-Len, "`Aranydrop` int(11) NOT NULL, ");
669Len += formatex(Query[Len], charsmax(Query)-Len, "`Ujratekercs` int(11) NOT NULL, ");
670Len += formatex(Query[Len], charsmax(Query)-Len, "`Aranyora` int(11) NOT NULL, ");
671Len += formatex(Query[Len], charsmax(Query)-Len, "`Aranyoraido` int(11) NOT NULL, ");
672Len += formatex(Query[Len], charsmax(Query)-Len, "`Aranyorahasznal` int(11) NOT NULL, ");
673
674for(new i;i < 3; i++)
675Len += formatex(Query[Len], charsmax(Query)-Len, "`F_%d` int(11) NOT NULL,", i);
676
677for(new i;i < 3; i++)
678Len += formatex(Query[Len], charsmax(Query)-Len, "`L_%d` int(11) NOT NULL,", i);
679
680Len += formatex(Query[Len], charsmax(Query)-Len, "`Szint` int(11) NOT NULL, `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)");
681
682SQL_ThreadQuery(g_SqlTuple, "createTableThread", Query);
683}
684public Load(id) {
685static Query[10048];
686new Data[1], Name[32];
687get_user_name(id, Name, 31);
688Data[0] = id;
689
690formatex(Query, charsmax(Query), "SELECT * FROM `exodus_unison` WHERE Nev = ^"%s^";", Name);
691SQL_ThreadQuery(g_SqlTuple, "QuerySelectData", Query, Data, 1);
692}
693public QuerySelectData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
694if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
695log_amx("%s", Error);
696return;
697}
698else {
699new id = Data[0];
700
701if(SQL_NumRows(Query) > 0) {
702SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Felhasznalo"), Username[id], charsmax(Username[]));
703SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Jelszo"), Password[id], charsmax(Password[]));
704Arany[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Arany"));
705Tapasztalat[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Tapasztalat"));
706Szint[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Szint"));
707Kulcs[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Kulcs"));
708Ero[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Ero"));
709Gyorsasag[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Gyorsasag"));
710Elet[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Elet"));
711Aranydrop[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Aranydrop"));
712Aranyora[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Aranyora"));
713Ujratekercs[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Ujratekercs"));
714Aranyoraido[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Aranyoraido"));
715Aranyoraido[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Aranyorahasznal"));
716
717for(new i=0;i<3;i++)
718OsszesNev[i] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Osszes"));
719
720for(new i=0;i < 3; i++)
721{
722new String[64];
723formatex(String, charsmax(String), "F_%d", i);
724OsszesSkin[i][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, String));
725}
726
727for(new i;i < 3; i++)
728{
729new String[64];
730formatex(String, charsmax(String), "L_%d", i);
731Lada[i][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, String));
732}
733
734}
735else
736{
737Save(id);
738}
739}
740}
741public Save(id)
742{
743static Query[256];
744new Name[32]; get_user_name(id, Name, 31);
745
746formatex(Query, charsmax(Query), "INSERT INTO `exodus_unison` (`Nev`) VALUES (^"%s^");", Name);
747
748SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
749}
750public Update(id)
751{
752static Query[10048];
753new Len;
754new Name[32]; get_user_name(id, Name, 31);
755
756Len += formatex(Query[Len], charsmax(Query), "UPDATE `exodus_unison` SET Arany = ^"%i^", ",Arany[id]);
757Len += formatex(Query[Len], charsmax(Query)-Len, "Felhasznalo = ^"%s^", ", Username[id]);
758Len += formatex(Query[Len], charsmax(Query)-Len, "Jelszo = ^"%s^", ", Password[id]);
759Len += formatex(Query[Len], charsmax(Query)-Len, "Tapasztalat = ^"%i^", ", Tapasztalat[id]);
760Len += formatex(Query[Len], charsmax(Query)-Len, "Kulcs = ^"%i^", ", Kulcs[id]);
761Len += formatex(Query[Len], charsmax(Query)-Len, "Ero = ^"%i^", ", Ero[id]);
762Len += formatex(Query[Len], charsmax(Query)-Len, "Gyorsasag = ^"%i^", ", Gyorsasag[id]);
763Len += formatex(Query[Len], charsmax(Query)-Len, "Elet = ^"%i^", ", Elet[id]);
764Len += formatex(Query[Len], charsmax(Query)-Len, "Aranydrop = ^"%i^", ", Aranydrop[id]);
765Len += formatex(Query[Len], charsmax(Query)-Len, "Aranyora = ^"%i^", ", Aranyora[id]);
766Len += formatex(Query[Len], charsmax(Query)-Len, "Ujratekercs = ^"%i^", ", Aranydrop[id]);
767Len += formatex(Query[Len], charsmax(Query)-Len, "Aranyoraido = ^"%i^", ", Aranydrop[id]+get_user_time(id));
768Len += formatex(Query[Len], charsmax(Query)-Len, "Aranyorahasznal = ^"%i^", ", Aranyorahasznal[id]);
769
770for(new i=0;i < 3; i++)
771Len += formatex(Query[Len], charsmax(Query)-Len, "Osszes = ^"%i^", ", OsszesNev[i]);
772
773for(new i=0;i < 3; i++)
774Len += formatex(Query[Len], charsmax(Query)-Len, "F_%d = ^"%i^", ", i, OsszesSkin[i][id]);
775
776for(new i;i < 3; i++)
777Len += formatex(Query[Len], charsmax(Query)-Len, "L_%d = ^"%i^", ", i, Lada[i][id]);
778
779Len += formatex(Query[Len], charsmax(Query)-Len, "Szint = ^"%i^" WHERE Nev = ^"%s^";", Szint[id], Name);
780
781SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
782}
783public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
784if(FailState == TQUERY_CONNECT_FAILED)
785set_fail_state("[HIBA*] NEM TUDTAM CSATLAKOZNI AZ ADATBAZISHOZ!");
786else if(FailState == TQUERY_QUERY_FAILED)
787set_fail_state("Query Error");
788if(Errcode)
789log_amx("[HIBA*] HIBAT DOBTAM: %s",Error);
790}
791public QuerySetData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
792if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
793log_amx("%s", Error);
794return;
795}
796}
797public Piac(id)
798{
799new cim[121];
800format(cim, charsmax(cim), "%s \r- \dPiac^n\yArany: \d(%d)", PREFIX, Arany[id]);
801new menu = menu_create(cim, "Piac_h");
802
803menu_additem(menu, "Eladás", "1", 0);
804menu_additem(menu, "Vásárlás", "2", 0);
805
806menu_display(id, menu, 0);
807}
808public Piac_h(id, menu, item){
809if(item == MENU_EXIT)
810{
811menu_destroy(menu);
812return;
813}
814
815new data[9], szName[64];
816new access, callback;
817menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
818new key = str_to_num(data);
819
820switch(key)
821{
822case 1: Eladas(id);
823case 2: Vasarlas(id);
824}
825}
826public Eladas(id) {
827new cim[121], ks1[121], ks2[121];
828format(cim, charsmax(cim), "%s \r- \dEladás", PREFIX);
829new menu = menu_create(cim, "eladas_h" );
830
831if(kirakva[id] == 0){
832for(new i=0; i < 3; i++) {
833if(kicucc[id] == 0) format(ks1, charsmax(ks1), "Válaszd ki a Tárgyat!");
834else if(kicucc[id] == i) format(ks1, charsmax(ks1), "Tárgy: \r%s", Fegyverek[i-1][0]);
835}
836menu_additem(menu, ks1 ,"0",0);
837}
838if(kirakva[id] == 0){
839format(ks2, charsmax(ks2), "\dÄ‚Âra: \r%d \yArany", Erteke[id]);
840menu_additem(menu,ks2,"1",0);
841}
842if(Erteke[id] != 0 && kirakva[id] == 0)
843{
844menu_additem(menu,"Mehet a piacra!","2",0);
845}
846if(Erteke[id] != 0 && kirakva[id] == 1)
847menu_additem(menu,"\wVisszavonás","-2",0);
848
849menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
850menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
851menu_display(id, menu, 0);
852}
853public eladas_h(id, menu, item){
854if( item == MENU_EXIT )
855{
856menu_destroy(menu);
857return PLUGIN_HANDLED;
858}
859new data[9], szName[64], name[32];
860get_user_name(id, name, charsmax(name));
861new access, callback;
862menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
863new key = str_to_num(data);
864
865switch(key)
866{
867case -2:{
868kirakva[id] = 0;
869kicucc[id] = 0;
870Erteke[id] = 0;
871}
872case 0:{
873fvalaszt(id);
874}
875case 1:{
876client_cmd(id, "messagemode ARANY");
877}
878case 2:{
879for(new i=0; i < 3; i++) {
880if(kicucc[id] == i && OsszesSkin[i-1][id] >= 1) {
881ColorChat(0, GREEN, "%s ^3%s ^1Kirakott egy ^4%s-^1t %d Aranyért",Chat_PREFIX, name, Fegyverek[i-1][0], Erteke[id]);
882kirakva[id] = 1;
883}
884}
885}
886}
887menu_destroy(menu);
888return PLUGIN_HANDLED;
889}
890public fvalaszt(id) {
891new szMenuTitle[ 121 ],cim[121];
892format( szMenuTitle, charsmax( szMenuTitle ), "[%s] \r- \dFegyver Válasz", PREFIX);
893new menu = menu_create( szMenuTitle, "fvalaszt_h" );
894
895for(new i=0; i < 3; i++) {
896if(OsszesSkin[i][id] > 0) {
897new Num[6];
898num_to_str(i, Num, 5);
899formatex(cim, charsmax(cim), "\w%s \d(%d) \yDarab", Fegyverek[i][0], OsszesSkin[i][id]);
900menu_additem(menu, cim, Num);
901}
902}
903
904menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
905menu_display(id, menu, 0);
906
907}
908public fvalaszt_h(id, menu, item){
909if(item == MENU_EXIT)
910{
911menu_destroy(menu);
912return;
913}
914new data[9], szName[64];
915new access, callback;
916menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
917new key = str_to_num(data);
918
919kicucc[id] = key+1;
920Eladas(id);
921}
922public lekeres(id) {
923new ertek, adatok[32];
924read_args(adatok, charsmax(adatok));
925remove_quotes(adatok);
926
927ertek = str_to_num(adatok);
928
929new hossz = strlen(adatok);
930
931if(hossz > 7)
932{
933//Ne lopkodj kurva anyád. :D (eredeti AUTHOR: exodus)
934client_cmd(id, "messagemode ARANY");
935}
936else if(ertek < 20)
937{
938ColorChat(id, GREEN, "%s ^1Nem tudsz eladni fegyver^3 20 Arany alatt.", Chat_PREFIX);
939Eladas(id);
940}
941else
942{
943Erteke[id] = ertek;
944Eladas(id);
945}
946}
947public Vasarlas(id)
948{
949new mpont[512], menu, cim[121];
950
951static players[32],temp[10],pnum;
952get_players(players,pnum,"c");
953
954format(cim, charsmax(cim), "%s \r- \dVásárlás", PREFIX);
955menu = menu_create(cim, "vasarlas_h" );
956
957for (new i; i < pnum; i++)
958{
959if(kirakva[players[i]] == 1 && Erteke[players[i]] > 0)
960{
961for(new a=0; a < 3; a++) {
962if(kicucc[players[i]] == a)
963formatex(mpont,256,"\y%s\d(\wEladĂł: \r%s \d| \wÄ‚Âra: \r%d\d)", Fegyverek[a-1][0], get_player_name(players[i]), Erteke[players[i]]);
964}
965
966num_to_str(players[i],temp,charsmax(temp));
967menu_additem(menu, mpont, temp);
968}
969}
970menu_setprop(menu, MPROP_PERPAGE, 6);
971menu_setprop(menu, MPROP_EXIT, MEXIT_ALL );
972menu_display(id, menu);
973return PLUGIN_HANDLED;
974}
975public vasarlas_h(id,menu, item){
976if(item == MENU_EXIT)
977{
978menu_destroy(menu);
979return;
980}
981if(pido != 0){
982Vasarlas(id);
983return;
984}
985new data[6] ,szName[64],access,callback;
986new name[32], name2[32];
987get_user_name(id, name, charsmax(name));
988
989menu_item_getinfo(menu, item, access, data, charsmax(data), szName, charsmax(szName), callback);
990
991new player = str_to_num(data);
992get_user_name(player, name2, charsmax(name2));
993pido = 2;
994//Ne lopkodj kurva anyád. :D (eredeti AUTHOR: exodus)
995set_task(2.0, "vido");
996
997for(new i=0; i < 3; i++) {
998if(Arany[id] >= Erteke[player] && kicucc[player] == i && kirakva[player] == 1)
999{
1000kirakva[player] = 0;
1001ColorChat(0, GREEN, "%s ^3%s ^1vett egy ^4%s ^1%s-tól %d Aranyért!",Chat_PREFIX, name, Fegyverek[i-1][0], name2, Erteke[player]);
1002Arany[player] += Erteke[player];
1003Arany[id] -= Erteke[player];
1004OsszesSkin[i-1][id] ++;
1005OsszesSkin[i-1][player] --;
1006kicucc[player] = 0;
1007Erteke[player] = 0;
1008}
1009}
1010}
1011public vido()
1012{
1013pido = 0;
1014}
1015public sayhook(id)
1016{
1017new message[192], Name[32], none[2][32], chat[192];
1018read_args(message, 191);
1019remove_quotes(message);
1020
1021formatex(none[0], 31, ""), formatex(none[1], 31, " ");
1022
1023if (message[0] == '@' || message[0] == '/' || message[0] == '#' || message[0] == '!' || equal (message, ""))
1024return PLUGIN_HANDLED;
1025
1026if(!equali(message, none[0]) && !equali(message, none[1]))
1027{
1028get_user_name(id, Name, 31);
1029if(is_user_alive(id))
1030{
1031if(get_user_flags(id) & TULAJ)
1032formatex(chat, 191, "^x04[Tulajdonos][Lv%d.]^3%s^x04: %s", Szint[id], Name, message);
1033else if(get_user_flags(id) & ADMIN)
1034formatex(chat, 191, "^x04[Admin][Lv%d.]^x03%s^x04: %s", Szint[id], Name, message);
1035else if(get_user_flags(id) & VIP)
1036formatex(chat, 191, "^x04[VIP][Lv%d.]^x03%s^x04: %s", Szint[id], Name, message);
1037else if(Szint[id] >= 0)
1038formatex(chat, 191, "^x04[Lv%d.]^x03%s^x01: %s", Szint[id], Name, message);
1039}
1040else {
1041get_user_team(id, color, 9);
1042if(get_user_flags(id) & TULAJ)
1043formatex(chat, 191, "^x01*Halott*^x04[Tulajdonos][Lv%d.]^3 %s^x04: %s", Szint[id], Name, message);
1044else if(get_user_flags(id) & ADMIN)
1045formatex(chat, 191, "^x01*Halott*^x04[Admin][Lv%d.]^x03 %s^x04: %s", Szint[id], Name, message);
1046else if(get_user_flags(id) & VIP)
1047formatex(chat, 191, "^x01*Halott*^x04[VIP][Lv%d.]^x03 %s^x04: %s", Szint[id], Name, message);
1048else if(Szint[id] >= 0)
1049formatex(chat, 191, "^x01*Halott*^x04[Lv%d.]^x03 %s^x01: %s", Szint[id], Name, message);
1050}
1051
1052switch(cs_get_user_team(id))
1053{
1054case 1: ColorChat(0, RED, chat);
1055case 2: ColorChat(0, BLUE, chat);
1056}
1057if(cs_get_user_team(id) == CS_TEAM_SPECTATOR)
1058ColorChat(0, GREY, chat);
1059return PLUGIN_HANDLED;
1060}
1061return PLUGIN_CONTINUE;
1062}
1063public LoadUsers()
1064{
1065 new file[200];
1066
1067 get_configsdir(file, 199);
1068 format(file, 199, "%s/regusers.ini", file);
1069
1070 if (!file_exists(file))
1071 return PLUGIN_HANDLED;
1072
1073 new pFile = fopen(file, "rt");
1074
1075 if(pFile)
1076 {
1077 new Line[192];
1078
1079 new s[2][32];
1080 while(!feof(pFile))
1081 {
1082 fgets(pFile, Line, 191);
1083 if(Line[0] == ';' || strlen(Line) < 5)
1084 continue;
1085
1086 parse(Line, s[0], 31, s[1], 31);
1087
1088 copy(data[uname], charsmax(data[uname]), s[0]);
1089 copy(data[pass], charsmax(data[pass]), s[1]);
1090
1091 ArrayPushArray(regusers, data);
1092 }
1093 fclose(pFile);
1094 }
1095 return 0;
1096}
1097
1098public SaveUser(const sName[], const sPass[])
1099{
1100 new file[200];
1101
1102 copy(data[uname], charsmax(data[uname]), sName);
1103 copy(data[pass], charsmax(data[pass]), sPass);
1104
1105 ArrayPushArray(regusers, data);
1106
1107 get_configsdir(file, 199);
1108 format(file, 199, "%s/regusers.ini", file);
1109
1110 new pFile = fopen(file, "at");
1111
1112 if(pFile)
1113 {
1114 new line[70];
1115
1116 formatex(line, 69, "^"%s^" ^"%s^"", sName, sPass);
1117
1118 fputs(pFile, line);
1119 fclose(pFile);
1120 }
1121 return PLUGIN_HANDLED;
1122}
1123public sendmessage(color[])
1124{
1125new teamName[10];
1126for(new player = 1; player < get_maxplayers(); player++)
1127{
1128get_user_team (player, teamName, 9);
1129teamf (player, color);
1130elkuldes(player, Temp);
1131teamf(player, teamName);
1132}
1133}
1134public teamf(player, team[])
1135{
1136message_begin(MSG_ONE, get_user_msgid("TeamInfo"), _, player);
1137write_byte(player);
1138write_string(team);
1139message_end();
1140}
1141public elkuldes(player, Temp[])
1142{
1143message_begin( MSG_ONE, get_user_msgid( "SayText" ), _, player);
1144write_byte( player );
1145write_string( Temp );
1146message_end();
1147}
1148stock print_color(const id, const input[], any:...) {
1149new count = 1, players[32]
1150static msg[191]
1151vformat(msg, 190, input, 3)
1152
1153replace_all(msg, 190, "!g", "^4")
1154replace_all(msg, 190, "!y", "^1")
1155replace_all(msg, 190, "!t", "^3")
1156
1157if(id)players[0] = id; else get_players(players, count, "ch")
1158{
1159for(new i = 0; i <count; i++)
1160{
1161if (is_user_connected(players[i]))
1162{
1163message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
1164write_byte(players[i])
1165write_string(msg)
1166message_end()
1167}
1168}
1169}
1170return PLUGIN_HANDLED
1171}
1172stock get_player_name(id){
1173static Nev[32];
1174get_user_name(id, Nev,31);
1175return Nev;
1176}
1177public plugin_end() {
1178SQL_FreeHandle(g_SqlTuple);
1179}