#include <amxmodx>
2.#include <engine>
3.#include <fakemeta>
4.#include <hamsandwich>
5.#include <colorchat>
6.#include <engine>
7.
8.#define PLUGIN "Unison v1.0"
9.#define VERSION "1.0"
10.#define AUTHOR "o"
11.
12.new const Prefix[] = "[#BlackBox*]";
13.
14.//Egyebek
15.new Arany[33], Lada[33], Kulcs[33], Xp[33], Szint[33], Skin[33];
16.
17.//Skinek
18.new Kes[2][33]
19.
20.//Hud
21.new g_SyncHud1
22.
23.//Skinek sebzese
24.new bool:sebzes[33];
25.
26.//Piac
27.new Erteke[33], kicucc[33], kirakva[33], pido;
28.
29.enum _:ADAT { Name[32], Model[64] };
30.
31.new const Kesek[][ADAT] =
32.{
33. { "Karambit Knife", "models/black/v_karambit.mdl" },
34. { "Bayonet Knife", "models/black/v_bayonet.mdl" }
35.};
36.
37.public plugin_init() {
38.register_plugin(PLUGIN, VERSION, AUTHOR)
39.
40.register_impulse(201, "fomenu")
41.register_clcmd("say /menu", "fomenu")
42.
43.register_event("DeathMsg","Halal","a")
44.set_task(0.5,"TaskHalfSecond",.flags="b");
45.
46.g_SyncHud1 = CreateHudSyncObj();
47.RegisterHam(Ham_Item_Deploy, "weapon_knife", "FegyverValtas", 1);
48.
49.RegisterHam( Ham_TakeDamage , "player" , "Sebzesek", 0)
50.}
51.
52.public plugin_precache()
53.{
54. for(new i;i < 2; i++)
55. precache_model(Kesek[i][Model]);
56.}
57.
58.public Sebzesek(victim,inflictor,attacker,Float:damage, DamageBits)
59.{
60.if(is_user_alive(attacker))
61.{
62.new weap = get_user_weapon(attacker)
63.
64.if(sebzes[attacker] && weap == CSW_KNIFE && Skin[attacker] == 1)
65.{
66.SetHamParamFloat(1, damage * 1.1)
67.}
68.
69.if(sebzes[attacker] && weap == CSW_KNIFE && Skin[attacker] == 2)
70.{
71.SetHamParamFloat(2, damage * 1.4)
72.}
73.
74.return HAM_HANDLED;
75.}
76.return HAM_IGNORED;
77.}
78.
79.public FegyverValtas(ent)
80.{
81. new id = get_pdata_cbase(ent, 41, 4);
82.
83. switch(get_user_weapon(id))
84. {
85. case CSW_KNIFE:
86. {
87. switch(Skin[id])
88. {
89.
90. case 1: set_pev(id, pev_viewmodel2, Kesek[0][Model]);
91. case 2: set_pev(id, pev_viewmodel2, Kesek[1][Model]);
92. }
93. }
94. }
95.}
96.
97.public TaskHalfSecond() {
98. new players[32], pnum, tempid;
99. get_players(players, pnum, "ac");
100.
101. for(new i;i<pnum; i++)
102. {
103. tempid = players[i];
104. set_hudmessage(255, 255, 255, 0.01, 0.17, 0, 1.0, 1.0);
105. ShowSyncHudMsg(tempid, g_SyncHud1, "Szint: %d^nXP: %d/100(%.1f%%)^nArany: %d^n^nLada: %d | Kulcs: %d", Szint[tempid], Xp[tempid], float(Xp[tempid])*100, Arany[tempid], Lada[tempid], Kulcs[tempid]);
106. }
107.}
108.
109.public Halal()
110.{
111. new Gyilkos = read_data(1);
112. new Aldozat = read_data(2);
113. new Num = random_num(1, 10);
114. new elezaparaszt = is_user_alive(Gyilkos);
115. new pPont;
116. pPont += random_num(11, 19);
117.
118. if(Gyilkos == Aldozat)
119. return;
120.
121. Arany[Gyilkos] += pPont;
122. client_printcolor(Gyilkos, "!g%s !nKaptal !g+%d !nAranyat.", Prefix, pPont);
123.
124. if(Szint[Gyilkos] >= 0 && Szint[Gyilkos] <= 1000) Xp[Gyilkos] += random_num(12, 15);
125.
126. if(Xp[Gyilkos] > 100)
127. {
128. Xp[Gyilkos] -= 100;
129. Szint[Gyilkos] ++;
130. }
131.
132. new Nev[32]; get_user_name(Gyilkos, Nev, 31);
133.
134. if(Num == 7 && elezaparaszt)
135. {
136. Lada[Gyilkos] ++;
137. client_printcolor(0, "!g%s !t%s !nTalalt egy ladat.", Prefix, Nev);
138. }
139. else if(Num == 5 && elezaparaszt)
140. {
141. Kulcs[Gyilkos] ++;
142. client_printcolor(0, "!g%s !t%s !nTalalt egy kulcsot.", Prefix, Nev);
143. }
144.}
145.
146.public fomenu(id)
147.{
148. new menu = menu_create("\wGlobal Unison v1.0 \y- \dFomenu", "Fomenu_h");
149.
150. menu_additem(menu, "\wFelszereles", "1", 0);
151. menu_additem(menu, "\yLada \rnyitas", "2", 0);
152. menu_additem(menu, "\yPiac", "3", 0);
153. menu_additem(menu, "\dAddolas \r[Tulajoknak]", "4", 0);
154.
155. menu_display(id, menu, 0);
156.}
157.public Fomenu_h(id, menu, item){
158. if(item == MENU_EXIT)
159. {
160. menu_destroy(menu);
161. return;
162. }
163.
164. new data[9], szName[64];
165. new access, callback;
166. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
167. new key = str_to_num(data);
168.
169. switch(key) {
170. case 1: felszereles(id);
171. case 2: ladanyitas(id);
172. case 3: piac(id);
173. case 4: addolas(id);
174. }
175.}
176.
177.public addolas(id){
178. if (get_user_flags(id) & ADMIN_IMMUNITY)
179. {
180. new menu = menu_create("\r#\yAddolas \d+\y1 \rLada \d& 1 \rKulcs", "menu_handler")
181. new players[32], pnum, tempid
182. new szName[32], szTempid[20]
183. get_players(players, pnum)
184. for( new i; i<pnum; i++ )
185. {
186. tempid = players[i];
187. get_user_name(tempid, szName, charsmax(szName))
188. num_to_str(tempid, szTempid, charsmax(szTempid))
189. menu_additem(menu, szName, szTempid, 0)
190. }
191. menu_display(id, menu, 0)
192. }
193. else
194. {
195. ColorChat(id, RED, "Sajnos te nem vagy TULAJDONOS !.")
196.
197. }
198. }
199. public menu_handler(id, menu, item)
200. {
201. if( item == MENU_EXIT )
202. {
203. menu_destroy(menu);
204. return PLUGIN_HANDLED;
205. }
206.
207. new data[6], szName[64];
208. new access, callback;
209. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
210.
211. new tempid = str_to_num(data);
212.
213. if( is_user_alive(tempid) )
214. {
215. Kulcs[tempid] += 1
216. Lada[tempid] += 1
217. ColorChat(id, GREEN,"Sikeres Addolas !.")
218. }
219. client_cmd(id,"adas")
220. menu_destroy(menu);
221. return PLUGIN_HANDLED;
222.}
223.
224.public piac(id)
225.{
226. new cim[121];
227. format(cim, charsmax(cim), "\wGlobal Unison v1.0 \y- \dPiac");
228. new menu = menu_create(cim, "Piac_h");
229.
230. menu_additem(menu, "Eladas", "1", 0);
231. menu_additem(menu, "Vasarlas", "2", 0);
232.
233. menu_display(id, menu, 0);
234.}
235.public Piac_h(id, menu, item){
236. if(item == MENU_EXIT)
237. {
238. menu_destroy(menu);
239. return;
240. }
241.
242. new data[9], szName[64];
243. new access, callback;
244. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
245. new key = str_to_num(data);
246.
247. switch(key)
248. {
249. case 1: Eladas(id);
250. case 2: Vasarlas(id);
251. }
252.}
253.public Eladas(id) {
254. new cim[121], ks1[121], ks2[121];
255. format(cim, charsmax(cim), "\wPaintball \y- \dEladas");
256. new menu = menu_create(cim, "eladas_h" );
257.
258. if(kirakva[id] == 0){
259. for(new i=0; i < 110; i++) {
260. if(kicucc[id] == 0) format(ks1, charsmax(ks1), "Targy: \dValasz Valamit!^n");
261. else if(kicucc[id] == i) format(ks1, charsmax(ks1), "Targy: \d%s^n", Kesek[i-1][Name]);
262. }
263. menu_additem(menu, ks1 ,"0",0);
264. }
265. if(kirakva[id] == 0){
266. format(ks2, charsmax(ks2), "\wAr: \d%d", Erteke[id]);
267. menu_additem(menu,ks2,"1",0);
268. }
269.
270. if(kirakva[id] == 0)
271. menu_additem(menu,"\yKirakas!","2",0);
272.
273. if(Erteke[id] != 0 && kirakva[id] == 1)
274. menu_additem(menu,"Targy \dVisszavonas","-2",0);
275.
276. menu_setprop(menu, MPROP_EXITNAME, "Kilepes");
277. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
278. menu_display(id, menu, 0);
279.}
280.public eladas_h(id, menu, item){
281. if( item == MENU_EXIT )
282. {
283. menu_destroy(menu);
284. return PLUGIN_HANDLED;
285. }
286. new data[9], szName[64], name[32];
287. get_user_name(id, name, charsmax(name));
288. new access, callback;
289. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
290. new key = str_to_num(data);
291.
292. switch(key)
293. {
294. case -2:{
295. kirakva[id] = 0;
296. kicucc[id] = 0;
297. Erteke[id] = 0;
298. }
299. case 0:{
300. fvalaszt(id);
301. }
302. case 1:{
303. client_cmd(id, "messagemode ARANY");
304. }
305. case 2:{
306. for(new i=0; i < 110; i++) {
307. if(kicucc[id] == i && Kes[i-1][id] >= 1) {
308. client_printcolor(0, "!g%s !t%s !nKirakott egy !g%s-!nt %d aranyert",Prefix, name, Kesek[i-1][Name], Erteke[id]);
309. kirakva[id] = 1;
310. }
311. }
312. }
313. }
314. menu_destroy(menu);
315. return PLUGIN_HANDLED;
316.}
317.public fvalaszt(id) {
318. new szMenuTitle[ 121 ],cim[121];
319. format( szMenuTitle, charsmax( szMenuTitle ), "\wGlobal Unison v1.0 \y- \dFegyver Valasz");
320. new menu = menu_create( szMenuTitle, "fvalaszt_h" );
321.
322. for(new i=0; i < 110; i++) {
323. if(Kes[i-1][id] > 0) {
324. new Num[6];
325. num_to_str(i, Num, 5);
326. formatex(cim, charsmax(cim), "\y%s \r| \d%d DB", Kesek[i][Name], Kes[i][id]);
327. menu_additem(menu, cim, Num);
328. }
329. }
330.
331. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
332. menu_display(id, menu, 0);
333.
334.}
335.public fvalaszt_h(id, menu, item){
336. if(item == MENU_EXIT)
337. {
338. menu_destroy(menu);
339. return;
340. }
341. new data[9], szName[64];
342. new access, callback;
343. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
344. new key = str_to_num(data);
345.
346. kicucc[id] = key+1;
347. Eladas(id);
348.}
349.public lekeres(id) {
350. new ertek, adatok[32];
351. read_args(adatok, charsmax(adatok));
352. remove_quotes(adatok);
353.
354. ertek = str_to_num(adatok);
355.
356. new hossz = strlen(adatok);
357.
358. if(hossz > 7)
359. {
360. client_cmd(id, "messagemode DOLLAR");
361. }
362. else if(ertek < 20)
363. {
364. client_printcolor(id, "!g%s !nNem tudsz eladni fegyver!t 20 arany alatt.", Prefix);
365. Eladas(id);
366. }
367. else
368. {
369. Erteke[id] = ertek;
370. Eladas(id);
371. }
372.}
373.public Vasarlas(id)
374.{
375. new mpont[512], menu, cim[121];
376.
377. static players[32],temp[10],pnum;
378. get_players(players,pnum,"c");
379.
380. format(cim, charsmax(cim), "\wGlobal Unison v1.0 \y- \dVasarlas");
381. menu = menu_create(cim, "vasarlas_h" );
382.
383. for (new i; i < pnum; i++)
384. {
385. if(kirakva[players[i]] == 1 && Erteke[players[i]] > 0)
386. {
387. for(new a=0; a < 110; a++) {
388. if(kicucc[players[i]] == a)
389. formatex(mpont,256,"\r%s \y| \w%s \y| \w%d \yArany", Kesek[i-1][Name], get_player_name(players[i]), Erteke[players[i]]);
390. }
391.
392. num_to_str(players[i],temp,charsmax(temp));
393. menu_additem(menu, mpont, temp);
394. }
395. }
396. menu_setprop(menu, MPROP_PERPAGE, 6);
397. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL );
398. menu_display(id, menu);
399. return PLUGIN_HANDLED;
400.}
401.public vasarlas_h(id,menu, item){
402. if(item == MENU_EXIT)
403. {
404. menu_destroy(menu);
405. return;
406. }
407. if(pido != 0){
408. Vasarlas(id);
409. return;
410. }
411. new data[6] ,szName[64],access,callback;
412. new name[32], name2[32];
413. get_user_name(id, name, charsmax(name));
414.
415. menu_item_getinfo(menu, item, access, data, charsmax(data), szName, charsmax(szName), callback);
416.
417. new player = str_to_num(data);
418. get_user_name(player, name2, charsmax(name2));
419. pido = 2;
420. set_task(2.0, "vido");
421.
422. for(new i=0; i < 110; i++) {
423. if(Arany[id] >= Erteke[player] && kicucc[player] == i && kirakva[player] == 1)
424. {
425. kirakva[player] = 0;
426. client_printcolor(0, "!g%s !t%s !nvett egy !g%s !n%s-tol %d Aranyert!",Prefix, name, Kesek[i-1][Name], name2, Erteke[player]);
427. Arany[player] += Erteke[player];
428. Arany[id] -= Erteke[player];
429. Kes[i-1][id] ++;
430. Kes[i-1][player] --;
431. kicucc[player] = 0;
432. Erteke[player] = 0;
433. }
434. }
435.}
436.
437.public ladanyitas(id)
438.{
439. new menu = menu_create("\wGlobal Unison v1.0 \y- \dLadaNyitas", "LadaNyit_h");
440.
441. menu_additem(menu, "\yLadaNyitas\r!^n\d1 Lada & 1 Kulcs!", "1", 0);
442.
443. menu_display(id, menu, 0);
444.}
445.public LadaNyit_h(id, menu, item){
446. if(item == MENU_EXIT)
447. {
448. menu_destroy(menu);
449. return;
450. }
451.
452. new data[9], szName[64];
453. new access, callback;
454. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
455. new key = str_to_num(data);
456.
457. switch(key) {
458. case 1:
459. {
460. if(Lada[id] >= 1 && Kulcs[id] >= 1)
461. {
462. Lada[id] --;
463. Kulcs[id] --;
464. Talal(id);
465. }
466. ladanyitas(id);
467. }
468. }
469.}
470.
471.public felszereles(id)
472.{
473. new cim[121];
474. new menu = menu_create("\wGlobal Unison v1.0 \y- \dFelszereles", "Felszereles_h");
475.
476. for(new i=0;i < 2; i++)
477. {
478. if(Kes[i][id] > 0)
479. {
480. new Sor[6]; num_to_str(i, Sor, 5);
481. formatex(cim, charsmax(cim), "\r%s \y| \d%d DB", Kesek[i][Name], Kes[i][id]);
482. menu_additem(menu, cim, Sor);
483. }
484. }
485. menu_display(id, menu, 0);
486.}
487.public Felszereles_h(id, menu, item){
488. if(item == MENU_EXIT)
489. {
490. menu_destroy(menu);
491. return;
492. }
493.
494. new data[9], szName[64];
495. new access, callback;
496. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
497. new key = str_to_num(data);
498.
499.
500. Skin[id] = key+1;
501. client_printcolor(id, "!g%s !nSikeresen Kivalasztottad a : !g%s !nSkin.", Prefix, Kesek[key][Name]);
502.}
503.
504.public Talal(id)
505.{
506. new Szam = random_num(1, 700);
507. new Nev[32]; get_user_name(id, Nev, 31);
508.
509. if(Szam < 300)
510. {
511. switch(random_num(1, 2))
512. {
513. case 1:
514. {
515. Kes[0][id] ++;
516. client_printcolor(0, "!g%s !t%s !nTalalta ezt: !g%s!", Prefix, Nev, Kesek[0][Name]);
517. }
518. case 2:
519. {
520. Kes[1][id] ++;
521. client_printcolor(0, "!g%s !t%s !nTalalta ezt: !g%s!", Prefix, Nev, Kesek[1][Name]);
522. }
523. }
524. }
525.}
526.
527.public vido()
528.{
529. pido = 0;
530.}
531.stock get_player_name(id){
532. static Nev[32];
533. get_user_name(id, Nev,31);
534. return Nev;
535.}
536.
537.stock client_printcolor(const id, const input[], any:...)
538.{
539. new count = 1, players[32];
540. static msg[191];
541. vformat(msg, 190, input, 3);
542.
543. replace_all(msg, 190, "!g", "^4");
544. replace_all(msg, 190, "!n", "^1");
545. replace_all(msg, 190, "!t", "^3");
546.
547. if (id) players[0] = id; else get_players(players, count, "ch");
548. {
549. for (new i = 0; i < count; i++)
550. {
551. if (is_user_connected(players[i]))
552. {
553. message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
554. write_byte(players[i]);
555. write_string(msg);
556. message_end();
557. }
558. }
559. }
560. return PLUGIN_HANDLED;
561.}