Advertisement
Guest User

Untitled

a guest
Jan 20th, 2020
251
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 85.00 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <csx>
  4. #include <engine>
  5. #include <fakemeta>
  6. #include <fakemeta_util>
  7. #include <hamsandwich>
  8. #include <nvault>
  9.  
  10. #include "fc/defines.inl"
  11. #include "fc/natives.inl"
  12. #include "fc/constants.inl"
  13. #include "fc/variables.inl"
  14. #include "fc/publics.inl"
  15. #include "fc/native.inl"
  16. #include "fc/stocks.inl"
  17. #include "fc/settings.inl"
  18.  
  19. public plugin_init()
  20. {
  21. register_plugin("Furien Classic Mod", "1.0", "cyby");
  22.  
  23. cmds_saved();
  24. cache_vars();
  25. message_items();
  26. event_items();
  27. fakemeta_items();
  28. ham_items();
  29. settings_set();
  30. vip_free_set();
  31. g_forward_item_selected = CreateMultiForward("fc_item_select", ET_IGNORE, FP_CELL, FP_CELL);
  32. }
  33.  
  34. public plugin_precache()
  35. {
  36. item_name = ArrayCreate(64, 1);
  37. item_cost = ArrayCreate(1, 1);
  38. item_team = ArrayCreate(1, 1);
  39. item_vip = ArrayCreate(1, 1);
  40. item_alive = ArrayCreate(1, 1);
  41.  
  42. g_trail = precache_model("sprites/laserbeam.spr");
  43. precache_model("models/parachute.mdl");
  44. }
  45.  
  46. public plugin_cfg()
  47. {
  48. g_vault = nvault_open("data_players");
  49. g_anothervault = nvault_open("stats_players");
  50. }
  51.  
  52. public plugin_end()
  53. {
  54. nvault_close(g_vault);
  55. nvault_close(g_anothervault);
  56. DestroyForward(g_forward_item_selected);
  57. }
  58.  
  59. // NATIVE ***********************************************
  60. public plugin_natives()
  61. register_natives();
  62.  
  63. public take_shits()
  64. {
  65. g_c4timer = get_cvar_num("mp_c4timer");
  66. g_time_freeze = get_cvar_num("mp_freezetime");
  67. g_roundtime = get_cvar_num("mp_roundtime");
  68. }
  69.  
  70. public shop_cmd(id)
  71. {
  72. if(should_autojoin(id))
  73. return PLUGIN_CONTINUE;
  74.  
  75. if(!loaded(id))
  76. return PLUGIN_HANDLED;
  77.  
  78. if(get_user_team(id) == 2 && !flag_get(g_cmdguns, id))
  79. {
  80. menu_weapons(id);
  81. color(id, ".v%s.g Nu poti folosi.e magazinul.g pana ce nu alegi arma!", TAG);
  82. return PLUGIN_HANDLED;
  83. }
  84.  
  85. if(g_item == 0)
  86. {
  87. color(id, ".v%s.g Nu exista iteme in shop!", TAG);
  88. return PLUGIN_HANDLED
  89. }
  90.  
  91. if(g_endround || flag_get(g_lockshop, id))
  92. {
  93. color(id, ".v%s.g Nu poti cumpara chiar acum!", TAG);
  94. return PLUGIN_HANDLED;
  95. }
  96.  
  97. new menu_item[128], menu, tasta[2], string_temp[64], Cost_Item, inviata, echip;
  98. switch(get_user_team(id))
  99. {
  100. case 1: formatex(menu_item, charsmax(menu_item), "\rShop Furien:");
  101. case 2: formatex(menu_item, charsmax(menu_item), "\rShop Anti-Furien:");
  102. }
  103.  
  104. menu = menu_create(menu_item, "furien_shop");
  105. for(new i = 0; i < g_item; i++)
  106. {
  107. ArrayGetString(item_name, i, string_temp, charsmax(string_temp));
  108. Cost_Item = ArrayGetCell(item_cost, i);
  109. inviata = ArrayGetCell(item_alive, i);
  110. echip = ArrayGetCell(item_team, i);
  111. if(ArrayGetCell(item_vip, i) == 1)
  112. {
  113. if(echip == get_user_team(id) || echip == 0)
  114. {
  115. if(player_data[id][money] < Cost_Item)
  116. formatex(menu_item, charsmax(menu_item), "\d%s - %d$ | [VIP ONLY]", string_temp, Cost_Item);
  117. else
  118. {
  119. if(player_data[id][isvip] < 1)
  120. formatex(menu_item, charsmax(menu_item), "\d%s - %d$ | [VIP ONLY]", string_temp, Cost_Item);
  121. else
  122. {
  123. switch(inviata)
  124. {
  125. case 0:
  126. {
  127. if(flag_get(g_isalive, id))
  128. formatex(menu_item, charsmax(menu_item), "\d%s - %d$ | [VIP ONLY]", string_temp, Cost_Item);
  129. else
  130. formatex(menu_item, charsmax(menu_item), "\y%s - \w%d$ |\r [VIP ONLY]", string_temp, Cost_Item);
  131. }
  132. case 1:
  133. {
  134. if(flag_get(g_isalive, id))
  135. formatex(menu_item, charsmax(menu_item), "\y%s - \w%d$ |\r [VIP ONLY]", string_temp, Cost_Item);
  136. else
  137. formatex(menu_item, charsmax(menu_item), "\d%s - %d$ | [VIP ONLY]", string_temp, Cost_Item);
  138. }
  139. }
  140. }
  141. }
  142. }
  143. else
  144. continue;
  145. }
  146. else
  147. {
  148. if(echip == get_user_team(id) || echip == 0)
  149. {
  150. if(player_data[id][money] < Cost_Item)
  151. formatex(menu_item, charsmax(menu_item), "\d%s - %d$", string_temp, Cost_Item);
  152. else
  153. {
  154. switch(inviata)
  155. {
  156. case 0:
  157. {
  158. if(flag_get(g_isalive, id))
  159. formatex(menu_item, charsmax(menu_item), "\d%s - %d$", string_temp, Cost_Item);
  160. else
  161. formatex(menu_item, charsmax(menu_item), "\y%s - \w%d$", string_temp, Cost_Item);
  162. }
  163. case 1:
  164. {
  165. if(flag_get(g_isalive, id))
  166. formatex(menu_item, charsmax(menu_item), "\y%s - \w%d$", string_temp, Cost_Item);
  167. else
  168. formatex(menu_item, charsmax(menu_item), "\d%s - %d$", string_temp, Cost_Item);
  169. }
  170. }
  171. }
  172. }
  173. else
  174. continue;
  175. }
  176.  
  177. tasta[0] = i;
  178. tasta[1] = 0;
  179. menu_additem(menu, menu_item, tasta);
  180. }
  181. menu_display(id, menu, 0);
  182. return PLUGIN_HANDLED;
  183. }
  184.  
  185. // Spatele shopului pentru furieni
  186. public furien_shop(id, menu, item)
  187. {
  188. if(item == MENU_EXIT || g_endround || flag_get(g_lockshop, id))
  189. {
  190. menu_destroy(menu);
  191. return PLUGIN_HANDLED;
  192. }
  193.  
  194. new itemdata[2], dummy, itemid
  195. menu_item_getinfo(menu, item, dummy, itemdata, charsmax(itemdata), _, _, dummy)
  196. itemid = itemdata[0]
  197.  
  198. new icost, iname[64], ivip, echip, ialive;
  199. icost = ArrayGetCell(item_cost, itemid);
  200. ArrayGetString(item_name, itemid, iname, charsmax(iname));
  201. ivip = ArrayGetCell(item_vip, itemid);
  202. echip = ArrayGetCell(item_team, itemid);
  203. ialive = ArrayGetCell(item_alive, itemid);
  204.  
  205. if(get_user_team(id) != echip && echip != 0)
  206. {
  207. color(id, ".v%s.g Acest echipament este pentru echipa adversa!", TAG)
  208. menu_destroy(menu);
  209. return PLUGIN_HANDLED;
  210. }
  211.  
  212. if(ivip > player_data[id][isvip])
  213. {
  214. new vip_type[28];
  215. switch(ivip)
  216. {
  217. case 1: formatex(vip_type, charsmax(vip_type), "VIP Silver");
  218. case 2: formatex(vip_type, charsmax(vip_type), "VIP Gold");
  219. case 3: formatex(vip_type, charsmax(vip_type), "VIP Platina");
  220. }
  221. color(id, ".v%s.g Acest echipament este pentru.e %s.g!", TAG, vip_type);
  222. menu_destroy(menu);
  223. return PLUGIN_HANDLED;
  224. }
  225.  
  226. if(player_data[id][money] < icost)
  227. {
  228. color(id, ".v%s.g Nu ai bani pentru.e %s.g!", TAG, iname);
  229. menu_destroy(menu);
  230. return PLUGIN_HANDLED;
  231. }
  232.  
  233. switch(ialive)
  234. {
  235. case 0:
  236. {
  237. if(flag_get(g_isalive, id))
  238. {
  239. color(id, ".v%s.g Trebuie sa fii mort pentru a folosi.e %s.g!", TAG, iname);
  240. menu_destroy(menu);
  241. return PLUGIN_HANDLED;
  242. }
  243. }
  244. case 1:
  245. {
  246. if(!flag_get(g_isalive, id))
  247. {
  248. color(id, ".v%s.g Trebuie sa fii in viata pentru a folosi.e %s.g!", TAG, iname);
  249. menu_destroy(menu);
  250. return PLUGIN_HANDLED;
  251. }
  252. }
  253. }
  254.  
  255. menu_destroy(menu);
  256. flag_set(g_lockshop, id)
  257. set_task(SHOP_DELAY, "unlock_shop", id+TASK_DELAY_SHOP);
  258. buy_extra_item(id, itemid);
  259. return PLUGIN_HANDLED;
  260. }
  261.  
  262. buy_extra_item(id, itemid, ignore = 0)
  263. {
  264. ExecuteForward(g_forward_item_selected, g_fwdummyresult, id, itemid);
  265. if(player_data[id][blockbuy])
  266. {
  267. player_data[id][blockbuy] = false;
  268. return;
  269. }
  270.  
  271. new iteam = ArrayGetCell(item_team, itemid);
  272. new icost;
  273. if(iteam == 0)
  274. {
  275. icost = ArrayGetCell(item_cost, itemid);
  276. if(player_data[id][money] < icost && ignore == 0)
  277. {
  278. color(id, ".v%s.g Nu ai destui bani pentru acest item!", TAG);
  279. return;
  280. }
  281. }
  282.  
  283. if(iteam != get_user_team(id) && iteam > 0)
  284. {
  285. color(id, ".v%s.g Acest item nu este pentru echipa ta!", TAG);
  286. return;
  287. }
  288.  
  289. icost = ArrayGetCell(item_cost, itemid);
  290. if(player_data[id][money] < icost && !ignore)
  291. {
  292. color(id, ".v%s.g Nu ai destui bani pentru acest item!", TAG);
  293. return;
  294. }
  295. take_money(id, icost, 0);
  296. }
  297.  
  298. public unlock_shop(taskid)
  299. {
  300. if(!flag_get(g_isconnected, ID_DELAY_SHOP))
  301. return;
  302.  
  303. flag_unset(g_lockshop, ID_DELAY_SHOP)
  304. }
  305.  
  306. // Comanda blocata.
  307. public block_cmd(id)
  308. {
  309. if(should_autojoin(id))
  310. return PLUGIN_CONTINUE;
  311.  
  312. return PLUGIN_HANDLED;
  313. }
  314.  
  315. // Blocarea shopului
  316. public msg_satus_icon(msgid, msgdest, id)
  317. {
  318. static szIcon[8];
  319. get_msg_arg_string(2, szIcon, 7);
  320.  
  321. if(equal(szIcon, "buyzone") && get_msg_arg_int(1))
  322. {
  323. set_pdata_int(id, 235, get_pdata_int(id, 235) & ~(1<<0));
  324. return PLUGIN_HANDLED;
  325. }
  326.  
  327. return PLUGIN_CONTINUE;
  328. }
  329.  
  330. // Stergerea armelor dupa 1 secunda.
  331. public fm_setmodel(entity, const model[])
  332. {
  333. if(strlen(model) < 8)
  334. return FMRES_IGNORED;
  335.  
  336. if(model[9] == 'c' && model[10] == '4' || model[9] == 'b' && model[10] == 'a')
  337. return FMRES_IGNORED;
  338.  
  339. static classname[10];
  340. pev(entity, pev_classname, classname, charsmax(classname));
  341.  
  342. if(equal(classname, "weaponbox"))
  343. {
  344. set_pev(entity, pev_nextthink, get_gametime() + 0.01);
  345. return FMRES_IGNORED;
  346. }
  347. return FMRES_IGNORED;
  348. }
  349.  
  350. // Inceput runda (inainte de freezetime)
  351. public event_hltv()
  352. {
  353. take_shits();
  354. msg_create_fog(0, 0, 0, 0);
  355. set_lights("a");
  356. g_endround = false;
  357. g_freezetime = true;
  358. for(new i = 1; i <= g_maxplayers; i++)
  359. {
  360. if(!flag_get(g_isconnected, i))
  361. continue;
  362.  
  363. if(para_ent[i] > 0)
  364. {
  365. remove_entity(para_ent[i]);
  366. para_ent[i] = 0;
  367. }
  368. }
  369. seconds_new = g_time_freeze;
  370. set_task(0.1, "countdown");
  371. g_canplant = false;
  372. remove_task(16969);
  373. new Float:flTime = (g_time_freeze + g_roundtime * 60) - 60.0;
  374. set_task(flTime, "task_CanPlant", 16969);
  375. }
  376.  
  377. // Blocarea C4-ului inainte sa poata fi plantata.
  378. public ham_PrimaryAttack_C4(iEnt)
  379. {
  380. new id = pev(iEnt, pev_owner);
  381. if(!g_canplant)
  382. {
  383. client_print(id, print_center, "Doar in ultimul minut poti planta bomba!");
  384. return HAM_SUPERCEDE;
  385. }
  386. return HAM_IGNORED;
  387. }
  388.  
  389. // Functia blocare he.
  390. public ham_PrimaryAttack_He(iEnt)
  391. {
  392. new id = pev(iEnt, pev_owner);
  393. if(g_bombplanted)
  394. {
  395. client_print(id, print_center, "Nu poti arunca HE pentru ca bomba este plantata!");
  396. return HAM_SUPERCEDE;
  397. }
  398.  
  399. if(flag_get(g_locknade, id))
  400. {
  401. client_print(id, print_center, "Nu poti arunca acum...");
  402. return HAM_SUPERCEDE;
  403. }
  404. return HAM_IGNORED;
  405. }
  406.  
  407. // Task-ul in care setam posibilitatea plantarii bombei.
  408. public task_CanPlant()
  409. {
  410. g_canplant = true;
  411. set_lights("f");
  412. set_hudmessage(255, 51, 51, -1.0, 0.06, 1, 3.1, 3.0)
  413. show_hudmessage(0, "Bomba poate fi plantata!");
  414. }
  415.  
  416. // Inceput runda dupa freezetime.
  417. public round_start()
  418. {
  419. g_freezetime = false;
  420. g_bombplanted = false;
  421. for(new i = 1; i <= g_maxplayers; i++)
  422. {
  423. if(!flag_get(g_isalive, i))
  424. continue;
  425.  
  426. ExecuteHamB(Ham_Item_PreFrame, i);
  427. }
  428. set_lights("i");
  429. g_firstblood = false;
  430. }
  431.  
  432. // Comanda de drop blocata.
  433. public drop_block(id)
  434. {
  435. if(!flag_get(g_isalive, id))
  436. return PLUGIN_CONTINUE;
  437.  
  438. client_print(id, print_center, "Nu poti arunca arma.");
  439. return PLUGIN_HANDLED;
  440. }
  441.  
  442. public free_ammo(id)
  443. set_pdata_int(id, 376 + read_data(1), 69, 5);
  444.  
  445. // Functia de viteza
  446. public reset_max_speed(id)
  447. {
  448. if(!flag_get(g_isalive, id))
  449. return;
  450.  
  451. if(g_endround || g_freezetime)
  452. {
  453. set_pev(id, pev_maxspeed, 0.1);
  454. return;
  455. }
  456.  
  457. if(flag_get(g_isfurien, id))
  458. set_pev(id, pev_maxspeed, 850.0);
  459. }
  460.  
  461. public message_show_menu(msgid, dest, id)
  462. {
  463. if(!should_autojoin(id))
  464. return PLUGIN_CONTINUE;
  465.  
  466. static team_select[] = "#Team_Select";
  467. static menu_text_code[sizeof team_select];
  468. get_msg_arg_string(4, menu_text_code, charsmax(menu_text_code));
  469. if(!equal(menu_text_code, team_select))
  470. return PLUGIN_CONTINUE;
  471.  
  472. set_force_team_join_task(id, msgid);
  473. return PLUGIN_HANDLED;
  474. }
  475.  
  476. public message_vgui_menu(msgid, dest, id)
  477. {
  478. if(get_msg_arg_int(1) != 2 || !should_autojoin(id))
  479. return PLUGIN_CONTINUE;
  480.  
  481. set_force_team_join_task(id, msgid);
  482. return PLUGIN_HANDLED;
  483. }
  484.  
  485. // Sfarsit runda.
  486. public end_round()
  487. {
  488. g_freezetime = false;
  489. g_lastannounce = 0;
  490. g_endround = true;
  491. g_firstblood = false;
  492.  
  493. c4_lefts = -1;
  494.  
  495. for(new id = 1; id <= g_maxplayers; id++)
  496. {
  497. if(para_ent[id] > 0)
  498. {
  499. remove_entity(para_ent[id]);
  500. para_ent[id] = 0;
  501. }
  502. if(!flag_get(g_isconnected, id))
  503. continue;
  504.  
  505. if(flag_get(g_isalive, id))
  506. {
  507. strip_user_weapons(id);
  508. ExecuteHamB(Ham_Item_PreFrame, id);
  509. set_user_godmode(id, 1);
  510. }
  511.  
  512. if(!check_is_attending(id))
  513. {
  514. reset_bet(id);
  515. continue;
  516. }
  517.  
  518. if(flag_get(g_isalive, g_betplayer[id][0]))
  519. g_betplayer[id][3] = 3;
  520.  
  521. if(!flag_get(g_isalive, g_betplayer[id][0]))
  522. g_betplayer[id][3] = 2;
  523. }
  524. remove_task(29696);
  525. }
  526.  
  527. // Trail la grenada
  528. public grenade_throw(id, gid, wid)
  529. {
  530. new r, g, b;
  531. switch(wid)
  532. {
  533. case CSW_HEGRENADE:
  534. {
  535. r = 200, g = 0, b = 0;
  536.  
  537. set_task(GRENADE_DELAY, "unlock_nade", id+TASK_THROW_HE);
  538. flag_set(g_locknade, id);
  539. }
  540. case CSW_FLASHBANG: r = 0, g = 0, b = 200;
  541. }
  542. message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
  543. write_byte(TE_BEAMFOLLOW);
  544. write_short(gid);
  545. write_short(g_trail);
  546. write_byte(10);
  547. write_byte(5);
  548. write_byte(r);
  549. write_byte(g);
  550. write_byte(b);
  551. write_byte(192);
  552. message_end();
  553. }
  554.  
  555. // meniul de arme
  556. public menu_weapons(id)
  557. {
  558. if(!flag_get(g_isalive, id) || flag_get(g_isfurien, id))
  559. return;
  560.  
  561. new menu = menu_create("\yAlege o arma:", "guns_handler");
  562. menu_additem(menu, "\rArme noi", "");
  563. if(g_gunsselect[id] == 0)
  564. menu_additem(menu, "\dUltimele arme", "");
  565. else
  566. menu_additem(menu, "\rUltimele arme", "");
  567. if(g_gunsselect[id] == 0)
  568. menu_additem(menu, "\dUltimele arme [auto]", "");
  569. else
  570. menu_additem(menu, "\rUltimele arme [auto]", "");
  571. menu_display(id, menu, 0);
  572. }
  573.  
  574. // spatele meniului de arme
  575. public guns_handler(id, menu, item)
  576. {
  577. if(!flag_get(g_isalive, id) || flag_get(g_isfurien, id))
  578. {
  579. menu_destroy(menu);
  580. return PLUGIN_HANDLED;
  581. }
  582.  
  583. switch(item)
  584. {
  585. case 0:
  586. {
  587. menu_destroy(menu);
  588. primary_weap(id);
  589. return PLUGIN_HANDLED;
  590. }
  591. case 1:
  592. {
  593. if(g_gunsselect[id] == 0)
  594. {
  595. menu_destroy(menu);
  596. menu_weapons(id);
  597. return PLUGIN_HANDLED;
  598. }
  599. else
  600. {
  601. menu_destroy(menu);
  602. g_gunsselect[id] = 2;
  603. set_guns(id);
  604. return PLUGIN_HANDLED;
  605. }
  606. }
  607. case 2:
  608. {
  609. if(g_gunsselect[id] == 0)
  610. {
  611. menu_destroy(menu);
  612. menu_weapons(id);
  613. return PLUGIN_HANDLED;
  614. }
  615. else
  616. {
  617. menu_destroy(menu);
  618. g_gunsselect[id] = 3;
  619. set_guns(id);
  620. return PLUGIN_HANDLED;
  621. }
  622. }
  623. }
  624. menu_destroy(menu);
  625. return PLUGIN_HANDLED;
  626. }
  627.  
  628. public ham_take_damage(vic, inf, att, Float:dmg, dmgbits)
  629. {
  630. if(!is_user_connected(att) || !is_user_connected(vic))
  631. return HAM_IGNORED;
  632.  
  633. if(!flag_get(g_isalive, att))
  634. return HAM_IGNORED;
  635.  
  636. if(dmgbits & DMG_FALL || g_endround)
  637. return HAM_SUPERCEDE;
  638.  
  639. switch(player_data[att][isvip])
  640. {
  641. case 1: dmg += 2.0;
  642. case 2: dmg += 4.0;
  643. case 3: dmg += 6.0;
  644. }
  645.  
  646. if((vic == att) && (dmgbits & (1<<24)))
  647. return HAM_SUPERCEDE;
  648.  
  649. if((dmgbits & (1<<24)) && flag_get(g_isalive, vic) && player_data[vic][isvip] == 3 && random_num(1, 100) > 65)
  650. {
  651. client_print(vic, print_center, "Ai evitat grenada lui %s", player_data[att][user_name]);
  652. return HAM_SUPERCEDE;
  653. }
  654.  
  655. if((dmgbits & (1<<24)) && flag_get(g_isalive, vic) && player_data[vic][isvip] == 2 && random_num(1, 100) > 80)
  656. {
  657. client_print(vic, print_center, "Ai evitat grenada lui %s", player_data[att][user_name]);
  658. return HAM_SUPERCEDE;
  659. }
  660.  
  661. SetHamParamFloat(4, dmg);
  662. return HAM_IGNORED;
  663. }
  664.  
  665. public hook_say(id)
  666. {
  667. if(!flag_get(g_isconnected, id) || !get_user_team(id))
  668. return PLUGIN_HANDLED;
  669.  
  670. new chat[192];
  671. read_args(chat, charsmax(chat))
  672. remove_quotes(chat);
  673.  
  674. if(!chat[0])
  675. return PLUGIN_CONTINUE;
  676.  
  677. if(player_stats[id][gag])
  678. {
  679. color(id, ".v%s.g Chat-ul tau este restrictionat pentru inca.e %d minute.g!", TAG, player_stats[id][gag]);
  680. color(id, ".v%s.g Ai primit restrictionarea de la.e %s.g pentru.v %s.g!", TAG, player_stats[id][gagadmin], player_stats[id][gagreason]);
  681. return PLUGIN_HANDLED;
  682. }
  683.  
  684. if(fnGetNumbers(chat))
  685. {
  686. color(id, ".v%s.g Tentativa la o reclama IP gasita!", TAG);
  687. return PLUGIN_HANDLED;
  688. }
  689.  
  690. new chat_len = strlen(chat);
  691.  
  692. if(chat_len >= 70)
  693. {
  694. color(id, ".v%s.g Mesajul tau contine mai mult de 70 de caractere!", TAG);
  695. return PLUGIN_HANDLED;
  696. }
  697.  
  698. if(fnGetAdString(chat))
  699. {
  700. color(id, ".v%s.g Tentativa de reclama DNS gasita!", TAG);
  701. return PLUGIN_HANDLED;
  702. }
  703. new i = 0;
  704. for(i = 0; i < sizeof block_messages; i++)
  705. {
  706. if(contain(chat, block_messages[i]) != -1)
  707. {
  708. replace_all(chat, charsmax(chat), block_messages[i], " ");
  709. color(id, ".v%s.g Ai utilizat un caracter interzis!", TAG);
  710. return PLUGIN_HANDLED;
  711. }
  712. }
  713.  
  714. for(i = 0; i < sizeof hints_chat; i++)
  715. {
  716. if(contain(chat, hints_chat[i][0]) != -1)
  717. {
  718. set_hudmessage(255, 85, 255, 0.0, 0.64, 1, 3.1, 3.0);
  719. ShowSyncHudMsg(id, g_synchudh, "%s", hints_chat[i][1]);
  720. break;
  721. }
  722. }
  723. new bool:is_badlang = false;
  724. for(i = 0; i < sizeof bad_lang; i++)
  725. {
  726. if(contain(chat, bad_lang[i]) != -1)
  727. {
  728. is_badlang = true;
  729. break;
  730. }
  731. }
  732.  
  733. if(is_badlang)
  734. {
  735. player_stats[id][badlang]++;
  736. if(player_stats[id][badlang] > 2)
  737. {
  738. player_stats[id][badlang] = 0;
  739. player_stats[id][gag] = 5;
  740. copy(player_stats[id][gagadmin], 31, "SERVER");
  741. copy(player_stats[id][gagreason], 16, "3 injuraturi");
  742. player_stats[id][gagtimes]++;
  743. color(id, ".v%s.g Ai primit.e gag.g pentru 5 minute!", TAG);
  744. }
  745. else
  746. {
  747. color(id, ".v%s.g Aceasta este a.e %d.g tentativa de injuraturi!", TAG, player_stats[id][badlang]);
  748. color(id, ".v%s.g La 3 injuraturi primesti automat gag!", TAG);
  749. }
  750. return PLUGIN_HANDLED;
  751. }
  752.  
  753. new users_team = fm_cs_get_user_team(id);
  754.  
  755. switch(get_user_team(id))
  756. {
  757. case 1:
  758. {
  759. if(flag_get(g_isalive, id))
  760. {
  761. if(flag_get(g_loaded, id))
  762. {
  763. if(get_user_flags(id) & VIP_FLAG_PLATINUM)
  764. {
  765. if(player_data[id][tagname][0])
  766. color_chat(0, id, users_team, RED, "^4[^3 %s^4 ]^3 %s:^4 %s", player_data[id][tagname], player_data[id][user_name], chat);
  767. else
  768. color_chat(0, id, users_team, RED, "^4[ PLATINA ]^3 %s:^4 %s", player_data[id][user_name], chat);
  769. }
  770. else if(get_user_flags(id) & VIP_FLAG_GOLD)
  771. color_chat(0, id, users_team, RED, "^4[ GOLD ]^3 %s:^4 %s", player_data[id][user_name], chat);
  772. else if(get_user_flags(id) & VIP_FLAG_SILVER)
  773. color_chat(0, id, users_team, RED, "^4[ SILVER ]^3 %s:^4 %s", player_data[id][user_name], chat);
  774. else
  775. color_chat(0, id, users_team, RED, "^3%s:^1 %s", player_data[id][user_name], chat);
  776. }
  777. else
  778. color(id, ".v%s.g Este necesar sa te spawnezi pentru a folosi chatul!", TAG);
  779. }
  780. else
  781. {
  782. if(flag_get(g_loaded, id))
  783. {
  784. if(get_user_flags(id) & VIP_FLAG_PLATINUM)
  785. {
  786. if(player_data[id][tagname][0])
  787. color_chat(0, id, users_team, RED, "^4[^3 %s^4 ]^3 *DEAD* %s:^4 %s", player_data[id][tagname], player_data[id][user_name], chat);
  788. else
  789. color_chat(0, id, users_team, RED, "^4[ PLATINA ]^3 *DEAD* %s:^4 %s", player_data[id][user_name], chat);
  790. }
  791. else if(get_user_flags(id) & VIP_FLAG_GOLD)
  792. color_chat(0, id, users_team, RED, "^4[ GOLD ]^3 *DEAD* %s:^4 %s", player_data[id][user_name], chat);
  793. else if(get_user_flags(id) & VIP_FLAG_SILVER)
  794. color_chat(0, id, users_team, RED, "^4[ SILVER ]^3 *DEAD* %s:^4 %s", player_data[id][user_name], chat);
  795. else
  796. color_chat(0, id, users_team, RED, "^3*DEAD* %s:^1 %s", player_data[id][user_name], chat);
  797. }
  798. else
  799. color(id, ".v%s.g Este necesar sa te spawnezi pentru a folosi chatul!", TAG);
  800. }
  801. }
  802. case 2:
  803. {
  804. if(flag_get(g_isalive, id))
  805. {
  806. if(flag_get(g_loaded, id))
  807. {
  808. if(get_user_flags(id) & VIP_FLAG_PLATINUM)
  809. {
  810. if(player_data[id][tagname][0])
  811. color_chat(0, id, users_team, BLUE, "^4[^3 %s^4 ]^3 %s:^4 %s", player_data[id][tagname], player_data[id][user_name], chat);
  812. else
  813. color_chat(0, id, users_team, BLUE, "^4[ PLATINA ]^3 %s:^4 %s", player_data[id][user_name], chat);
  814. }
  815. else if(get_user_flags(id) & VIP_FLAG_GOLD)
  816. color_chat(0, id, users_team, BLUE, "^4[ GOLD ]^3 %s:^4 %s", player_data[id][user_name], chat);
  817. else if(get_user_flags(id) & VIP_FLAG_SILVER)
  818. color_chat(0, id, users_team, BLUE, "^4[ SILVER ]^3 %s:^4 %s", player_data[id][user_name], chat);
  819. else
  820. color_chat(0, id, users_team, BLUE, "^3%s:^1 %s", player_data[id][user_name], chat);
  821. }
  822. else
  823. color(id, ".v%s.g Este necesar sa te spawnezi pentru a folosi chatul!", TAG);
  824. }
  825. else
  826. {
  827. if(flag_get(g_loaded, id))
  828. {
  829. if(get_user_flags(id) & VIP_FLAG_PLATINUM)
  830. {
  831. if(player_data[id][tagname][0])
  832. color_chat(0, id, users_team, BLUE, "^4[^3 %s^4 ]^3 *DEAD* %s:^4 %s", player_data[id][tagname], player_data[id][user_name], chat);
  833. else
  834. color_chat(0, id, users_team, BLUE, "^4[ PLATINA ]^3 *DEAD* %s:^4 %s", player_data[id][user_name], chat);
  835. }
  836. else if(get_user_flags(id) & VIP_FLAG_GOLD)
  837. color_chat(0, id, users_team, BLUE, "^4[ GOLD ]^3 *DEAD* %s:^4 %s", player_data[id][user_name], chat);
  838. else if(get_user_flags(id) & VIP_FLAG_SILVER)
  839. color_chat(0, id, users_team, BLUE, "^4[ SILVER ]^3 *DEAD* %s:^4 %s", player_data[id][user_name], chat);
  840. else
  841. color_chat(0, id, users_team, BLUE, "^3*DEAD* %s:^1 %s", player_data[id][user_name], chat);
  842. }
  843. else
  844. color(id, ".v%s.g Este necesar sa te spawnezi pentru a folosi chatul!", TAG);
  845. }
  846. }
  847. case 3:
  848. {
  849. if(flag_get(g_isalive, id))
  850. {
  851. if(flag_get(g_loaded, id))
  852. color(id, ".v%s.g Nu poti scrie mesaje ca spectator in viata!", TAG);
  853. else
  854. color(id, ".v%s.g Este necesar sa te spawnezi pentru a folosi chatul!", TAG);
  855. }
  856. else
  857. {
  858. if(flag_get(g_loaded, id))
  859. {
  860. if(get_user_flags(id) & VIP_FLAG_PLATINUM)
  861. {
  862. if(player_data[id][tagname][0])
  863. color_chat(0, id, users_team, GREY, "^4[^3 %s^4 ]^3 *SPEC* %s:^4 %s", player_data[id][tagname], player_data[id][user_name], chat);
  864. else
  865. color_chat(0, id, users_team, GREY, "^4[ PLATINA ]^3 *SPEC* %s:^4 %s", player_data[id][user_name], chat);
  866. }
  867. else if(get_user_flags(id) & VIP_FLAG_GOLD)
  868. color_chat(0, id, users_team, GREY, "^4[ GOLD ]^3 *SPEC* %s:^4 %s", player_data[id][user_name], chat);
  869. else if(get_user_flags(id) & VIP_FLAG_SILVER)
  870. color_chat(0, id, users_team, GREY, "^4[ SILVER ]^3 *SPEC* %s:^4 %s", player_data[id][user_name], chat);
  871. else
  872. color_chat(0, id, users_team, GREY, "^3*SPEC* %s:^1 %s", player_data[id][user_name], chat);
  873. }
  874. else
  875. color(id, ".v%s.g Este necesar sa te spawnezi pentru a folosi chatul!", TAG);
  876. }
  877. }
  878. }
  879. return PLUGIN_HANDLED;
  880. }
  881.  
  882. public hook_chat(id)
  883. {
  884. if(!flag_get(g_isconnected, id))
  885. return PLUGIN_HANDLED;
  886.  
  887. new message[192];
  888. read_args(message, charsmax(message));
  889. remove_quotes(message);
  890.  
  891. for(new i = 0; i < sizeof block_messages; i++)
  892. {
  893. if(contain(message, block_messages[i]) != -1)
  894. {
  895. replace_all(message, charsmax(message), block_messages[i], " ")
  896. return PLUGIN_HANDLED;
  897. }
  898. }
  899.  
  900. if(strlen(message) > 80)
  901. {
  902. color(id, ".v%s.g Mesajul scris de tine este prea lung!", TAG);
  903. return PLUGIN_HANDLED;
  904. }
  905. if(strlen(message) < 2)
  906. {
  907. color(id, ".v%s.g Mesajul scris de tine este prea scurt!", TAG);
  908. return PLUGIN_HANDLED;
  909. }
  910.  
  911. if(!message[0])
  912. return PLUGIN_CONTINUE;
  913.  
  914. new zzzzz[15], admin = 100;
  915. new players[32], inum;
  916. get_players(players, inum);
  917.  
  918. for(new i = 0; i < sizeof flags_players; i++)
  919. {
  920. if(get_user_flags(id) == read_flags(flags_players[i][1]))
  921. {
  922. admin = i;
  923. break;
  924. }
  925. }
  926. if(admin == 100)
  927. formatex(zzzzz, charsmax(zzzzz), "Jucator");
  928. else
  929. formatex(zzzzz, charsmax(zzzzz), "%s", flags_players[admin][0]);
  930.  
  931. for(new i = 0; i < inum; ++i)
  932. {
  933. if(players[i] != id && get_user_flags(players[i]) & ADMIN_SLAY)
  934. colored_print(players[i], "^x01[^x04%s^x01]^x04 %s^x01:^x03 %s^x01", zzzzz, player_data[id][user_name], message);
  935. }
  936.  
  937. colored_print(id, "^x01[^x04%s^x01]^x04 %s^x01:^x03 %s^x01", zzzzz, player_data[id][user_name], message);
  938. return PLUGIN_HANDLED;
  939. }
  940.  
  941. public primary_weap(id)
  942. {
  943. if(!flag_get(g_isalive, id) || flag_get(g_isfurien, id))
  944. return
  945.  
  946. new menu_head[128], menu_item[128], tasta[2];
  947. formatex(menu_head, charsmax(menu_head), "\yAlege arma principala:")
  948. new menu = menu_create(menu_head, "primary_handled")
  949. for(new i = 1; i < sizeof PRIMARY_NAME; i++)
  950. {
  951. if(VIP_ONLY_PRIMARY[i] == 1)
  952. formatex(menu_item, charsmax(menu_item), "\r%s \y[VIP ONLY]", PRIMARY_NAME[i]);
  953. else
  954. formatex(menu_item, charsmax(menu_item), "\r%s", PRIMARY_NAME[i]);
  955. tasta[0] = i;
  956. tasta[1] = 0;
  957. menu_additem(menu, menu_item, tasta);
  958. }
  959. menu_display(id, menu, 0);
  960. }
  961.  
  962. public primary_handled(id, menu, item)
  963. {
  964. if(!flag_get(g_isalive, id) || flag_get(g_isfurien, id))
  965. {
  966. menu_destroy(menu);
  967. return PLUGIN_HANDLED;
  968. }
  969.  
  970. if(item == MENU_EXIT)
  971. {
  972. menu_destroy(menu);
  973. return PLUGIN_HANDLED;
  974. }
  975.  
  976. if(VIP_ONLY_PRIMARY[item+1] == 1 && !player_data[id][isvip])
  977. {
  978. menu_destroy(menu);
  979. primary_weap(id);
  980. color(id, ".v%s.g Aceasta arma este doar pentru.e VIP.g!", TAG);
  981. return PLUGIN_HANDLED;
  982. }
  983. g_primary_select[id] = item + 1;
  984. menu_destroy(menu);
  985. secondary_weap(id);
  986. return PLUGIN_HANDLED;
  987. }
  988.  
  989. public secondary_weap(id)
  990. {
  991. if(!flag_get(g_isalive, id) || flag_get(g_isfurien, id))
  992. return;
  993.  
  994. new menu_head[128], menu_item[128], tasta[2];
  995. formatex(menu_head, charsmax(menu_head), "\yAlege arma secundara:");
  996. new menu = menu_create(menu_head, "secondary_handled");
  997. for(new i = 1; i < sizeof SECONDARY_NAME; i++)
  998. {
  999. if(VIP_ONLY_SECONDARY[i] == 1)
  1000. formatex(menu_item, charsmax(menu_item), "\r%s\y [VIP ONLY]", SECONDARY_NAME[i]);
  1001. else
  1002. formatex(menu_item, charsmax(menu_item), "\r%s", SECONDARY_NAME[i]);
  1003. tasta[0] = i;
  1004. tasta[1] = 0;
  1005. menu_additem(menu, menu_item, tasta);
  1006. }
  1007. menu_display(id, menu, 0)
  1008. }
  1009.  
  1010. public secondary_handled(id, menu, item)
  1011. {
  1012. if(!flag_get(g_isalive, id) || flag_get(g_isfurien, id))
  1013. return PLUGIN_HANDLED;
  1014.  
  1015. if(item == MENU_EXIT)
  1016. {
  1017. menu_destroy(menu);
  1018. return PLUGIN_HANDLED;
  1019. }
  1020.  
  1021. if(VIP_ONLY_SECONDARY[item +1] == 1 && !player_data[id][isvip])
  1022. {
  1023. menu_destroy(menu);
  1024. secondary_weap(id);
  1025. color(id, ".v%s.g Aceasta arma este doar pentru.e VIP.g!", TAG);
  1026. return PLUGIN_HANDLED;
  1027. }
  1028.  
  1029. g_secondary_select[id] = item + 1;
  1030. menu_destroy(menu);
  1031. g_gunsselect[id] = 1;
  1032. set_guns(id);
  1033. return PLUGIN_HANDLED;
  1034. }
  1035.  
  1036. public set_guns(id)
  1037. {
  1038. if(!flag_get(g_isalive, id) || flag_get(g_isfurien, id))
  1039. return;
  1040.  
  1041. ham_give_weapon(id, wp_give_primary[g_primary_select[id]]);
  1042. cs_set_user_bpammo(id, bullets_primary[g_primary_select[id]], 250);
  1043. ham_give_weapon(id, wp_give_secondary[g_secondary_select[id]]);
  1044. cs_set_user_bpammo(id, bullets_secondary[g_secondary_select[id]], 250);
  1045. ham_give_weapon(id, "weapon_hegrenade");
  1046. ham_give_weapon(id, "weapon_knife");
  1047. flag_set(g_cmdguns, id)
  1048. }
  1049.  
  1050. public client_command(id)
  1051. {
  1052. new arg[100];
  1053. read_argv(0, arg, charsmax(arg));
  1054. if(contain("%", arg) != -1 || contain("spawn 1 1", arg) != -1)
  1055. {
  1056. console_print(id, "Am gasit caractere ilegale!");
  1057. return PLUGIN_HANDLED;
  1058. }
  1059. return PLUGIN_CONTINUE;
  1060. }
  1061.  
  1062. public countdown()
  1063. {
  1064. if(g_endround)
  1065. return;
  1066.  
  1067. set_hudmessage(random(255), random(255), random(255), -1.0, 0.24, 1, 0.0, 1.0, 0.0, 0.0);
  1068. if(seconds_new == 0)
  1069. {
  1070. show_hudmessage(0, "PREGATESTE-TE DE LUPTA!");
  1071. return;
  1072. }
  1073. show_hudmessage(0, "Razboiul incepe in %d secund%s", seconds_new, seconds_new > 1 ? "e" : "a");
  1074. seconds_new -= 1;
  1075. set_task(1.0, "countdown");
  1076. }
  1077.  
  1078. public client_putinserver(id)
  1079. init_player(id, 0);
  1080.  
  1081. public spawn_post(id)
  1082. {
  1083. if(!is_user_alive(id))
  1084. return;
  1085.  
  1086. if(!flag_get(g_loaded, id))
  1087. {
  1088. took_data(id);
  1089. set_task(60.0, "increase_minutes", id+TASK_MINUTES, _, _, "b");
  1090. }
  1091.  
  1092. set_user_godmode(id, 0);
  1093. player_data[id][blockbuy] = false;
  1094. strip_user_weapons(id);
  1095. set_user_rendering(id);
  1096. ExecuteHamB(Ham_Item_PreFrame, id);
  1097. flag_set(g_isalive, id)
  1098. flag_unset(g_lockshop, id)
  1099. flag_unset(g_locknade, id)
  1100. switch(player_data[id][isvip])
  1101. {
  1102. case 0: set_user_health(id, HP_NORMAL_PLAYER_START), set_user_armor(id, AP_NORMAL_PLAYER_START);
  1103. case 1: set_user_health(id, HP_VIP_SILVER_START), set_user_armor(id, AP_VIP_SILVER_START);
  1104. case 2: set_user_health(id, HP_VIP_GOLD_START), set_user_armor(id, AP_VIP_GOLD_START);
  1105. case 3: set_user_health(id, HP_VIP_PLATINUM_START), set_user_armor(id, AP_VIP_PLATINUM_START);
  1106. }
  1107. if(check_is_attending(id))
  1108. set_task(0.1, "give_money_to_bitch", id);
  1109. else
  1110. reset_bet(id);
  1111.  
  1112. switch(get_user_team(id))
  1113. {
  1114. case 1:
  1115. {
  1116. flag_set(g_isfurien, id)
  1117. set_user_footsteps(id, 1);
  1118. ham_give_weapon(id, "weapon_knife");
  1119. ham_give_weapon(id, "weapon_hegrenade");
  1120. //ham_give_weapon(id, "weapon_flashbang");
  1121. set_user_gravity(id, 0.375);
  1122. }
  1123. case 2:
  1124. {
  1125. flag_unset(g_isfurien, id)
  1126. set_user_footsteps(id, 0);
  1127. set_user_gravity(id, 1.0);
  1128. flag_unset(g_cmdguns, id)
  1129. if(g_gunsselect[id] == 3)
  1130. set_guns(id);
  1131. else
  1132. menu_weapons(id);
  1133. }
  1134. }
  1135. }
  1136.  
  1137. public give_money_to_bitch(id)
  1138. {
  1139. switch(g_betplayer[id][3])
  1140. {
  1141. case 1: color(id, ".v%s.g Cum ai facut asta? Am facut screenshot!", TAG), client_cmd(id, "snapshot");
  1142. case 2: color(id, ".v%s.g Ai pierdut pariul!", TAG);
  1143. case 3:
  1144. {
  1145. color(id, ".v%s.g Ai castigat pariul! Au fost adaugati:.e %d$.g!", TAG, g_betplayer[id][1]);
  1146. add_money(id, g_betplayer[id][1], 0);
  1147. }
  1148. }
  1149. reset_bet(id);
  1150. }
  1151.  
  1152. public kill_player(victim, attacker)
  1153. {
  1154. if(!is_user_connected(attacker) || !is_user_connected(victim))
  1155. return;
  1156.  
  1157. flag_unset(g_isalive, victim)
  1158. player_data[victim][bonuskill] = 0;
  1159.  
  1160. if(para_ent[victim] > 0)
  1161. {
  1162. remove_entity(para_ent[victim]);
  1163. para_ent[victim] = 0;
  1164. }
  1165.  
  1166. new selfkill = (victim == attacker || !flag_get(g_isconnected, attacker)) ? true : false
  1167.  
  1168. strip_user_weapons(victim);
  1169. if(selfkill)
  1170. return;
  1171.  
  1172. switch(player_data[attacker][isvip])
  1173. {
  1174. case 0:
  1175. {
  1176. set_user_health(attacker, clamp(get_user_health(attacker) + HPAP_NORMAL_REWARD, 1, MAX_HP));
  1177. set_user_armor(attacker, clamp(get_user_armor(attacker) + HPAP_NORMAL_REWARD, 1, MAX_AP));
  1178. add_money(attacker, MONEY_PLAYER_REWARD, KILL_REWARD_MESSAGE);
  1179. }
  1180. case 1:
  1181. {
  1182. set_user_health(attacker, clamp(get_user_health(attacker) + HPAP_SILVER_REWARD, 1, MAX_HP));
  1183. set_user_armor(attacker, clamp(get_user_armor(attacker) + HPAP_SILVER_REWARD, 1, MAX_AP));
  1184. add_money(attacker, MONEY_SILVER_REWARD, KILL_REWARD_MESSAGE);
  1185. }
  1186. case 2:
  1187. {
  1188. set_user_health(attacker, clamp(get_user_health(attacker) + HPAP_GOLD_REWARD, 1, MAX_HP));
  1189. set_user_armor(attacker, clamp(get_user_armor(attacker) + HPAP_GOLD_REWARD, 1, MAX_AP));
  1190. add_money(attacker, MONEY_GOLD_REWARD, KILL_REWARD_MESSAGE);
  1191. }
  1192. case 3:
  1193. {
  1194. set_user_health(attacker, clamp(get_user_health(attacker) + HPAP_PLATINUM_REWARD, 1, MAX_HP));
  1195. set_user_armor(attacker, clamp(get_user_armor(attacker) + HPAP_PLATINUM_REWARD, 1, MAX_AP));
  1196. add_money(attacker, MONEY_PLATINUM_REWARD, KILL_REWARD_MESSAGE);
  1197. }
  1198. }
  1199.  
  1200. if(flag_get(g_isfurien, attacker))
  1201. SetHamParamInteger(3, 2);
  1202.  
  1203. player_data[attacker][bonuskill]++;
  1204. if(player_data[attacker][bonuskill] == KILL_BONUS)
  1205. {
  1206. if(player_stats[attacker][hints] == 2)
  1207. {
  1208. set_hudmessage(255, 85, 255, 0.0, 0.64, 1, 3.1, 3.0);
  1209. ShowSyncHudMsg(attacker, g_synchudh, "Pentru a selecta tipul de bonus pe care-l primesti scrie /bonus pe chat!");
  1210. }
  1211.  
  1212. if(!player_stats[attacker][bonus])
  1213. bonus_menu(attacker);
  1214. else
  1215. {
  1216. switch(player_stats[attacker][bonus])
  1217. {
  1218. case 1: cs_set_user_bpammo(attacker, CSW_HEGRENADE, 1);
  1219. case 2: add_money(attacker, REWARD_KILL_BONUS, BONUS_REWARD_MESSAGE);
  1220. case 3: set_user_health(attacker, get_user_health(attacker) + 50);
  1221. case 4: set_user_armor(attacker, get_user_armor(attacker) + 50);
  1222. case 5: cs_set_user_bpammo(attacker, CSW_FLASHBANG, 1);
  1223. }
  1224. }
  1225.  
  1226. player_data[attacker][bonuskill] = 0;
  1227. }
  1228.  
  1229. if(player_stats[attacker][hints] == 2 && player_data[attacker][money] > 31000)
  1230. {
  1231. set_hudmessage(255, 85, 255, 0.0, 0.64, 1, 3.1, 3.0);
  1232. ShowSyncHudMsg(attacker, g_synchudh, "Vrei sa-i trimiti unui jucator bani? Scrie /transfer pe chat!");
  1233. }
  1234.  
  1235. if(player_stats[victim][hints] == 2)
  1236. {
  1237. set_hudmessage(255, 85, 255, 0.0, 0.64, 1, 3.1, 3.0);
  1238. ShowSyncHudMsg(victim, g_synchudh, "Vrei sa pariezi pe un jucator sau o echipa? Scrie /bet pe chat!");
  1239. }
  1240. }
  1241.  
  1242. public bonus_menu(id)
  1243. {
  1244. if(!loaded(id))
  1245. return;
  1246.  
  1247. new menu, menu_item[128];
  1248. formatex(menu_item, charsmax(menu_item), "\rAlege un bonus:");
  1249. menu = menu_create(menu_item, "bonus_handler");
  1250. for(new i = 1; i < sizeof bonus_items; i++)
  1251. {
  1252. if(player_stats[id][bonus] == i)
  1253. formatex(menu_item, charsmax(menu_item), "\y%s\r [X]", bonus_items[i]);
  1254. else
  1255. formatex(menu_item, charsmax(menu_item), "\y%s", bonus_items[i]);
  1256.  
  1257. menu_additem(menu, menu_item, "");
  1258. }
  1259. menu_display(id, menu, 0);
  1260. return;
  1261. }
  1262.  
  1263. public bonus_handler(id, menu, item)
  1264. {
  1265. if(item == MENU_EXIT)
  1266. {
  1267. menu_destroy(menu);
  1268. return;
  1269. }
  1270.  
  1271. if(!loaded(id))
  1272. return;
  1273.  
  1274. if(item + 1 == player_stats[id][bonus])
  1275. {
  1276. color(id, ".v%s.g Ai deja selectat acest bonus!", TAG);
  1277. return;
  1278. }
  1279. player_stats[id][bonus] = item + 1;
  1280. color(id, ".v%s.g Ai selectat bonusul.e %s.g!", TAG, bonus_items[player_stats[id][bonus]]);
  1281. return;
  1282. }
  1283.  
  1284. public client_death(killer, victim, wpnindex, hitplace, TK)
  1285. {
  1286. if(wpnindex == CSW_C4)
  1287. return
  1288.  
  1289. if(flag_get(g_isconnected, victim))
  1290. {
  1291. new ppl[32], pplnum = 0;
  1292. new epplnum = 0;
  1293. new team = get_user_team(victim), other_team;
  1294. new enemy_team = (team == 1) ? 2 : 1
  1295.  
  1296. if(team == 1 || team == 2)
  1297. {
  1298. for(new i = 1; i <= g_maxplayers; i++)
  1299. {
  1300. if(!flag_get(g_isconnected, i) || i == victim)
  1301. continue;
  1302.  
  1303. other_team = get_user_team(i);
  1304. if(other_team == team && flag_get(g_isalive, i))
  1305. epplnum++;
  1306. else if(other_team == enemy_team)
  1307. ppl[pplnum++] = i;
  1308. }
  1309.  
  1310. if(pplnum && epplnum)
  1311. {
  1312. switch(team)
  1313. {
  1314. case 1:
  1315. {
  1316. set_hudmessage(255, 51, 51, 0.02, 0.85, 2, 0.05, 0.1, 0.02, 3.0, -1);
  1317. ShowSyncHudMsg(0, g_synchuds, "%d furien%s ramas%s...", epplnum, (epplnum == 1) ? "" : "i", (epplnum == 1) ? "" : "i");
  1318. }
  1319. case 2:
  1320. {
  1321. set_hudmessage(102, 255, 255, 0.02, 0.85, 2, 0.05, 0.1, 0.02, 3.0, -1);
  1322. ShowSyncHudMsg(0, g_synchuds, "%d anti-furien%s ramas%s...", epplnum, (epplnum == 1) ? "" : "i", (epplnum == 1) ? "" : "i");
  1323. }
  1324. }
  1325. }
  1326. }
  1327. }
  1328.  
  1329. new cts[32], ts[32], ctsnum, tsnum, team;
  1330.  
  1331. for (new i = 1; i <= g_maxplayers; i++)
  1332. {
  1333. if(!flag_get(g_isconnected, i) || !flag_get(g_isalive, i))
  1334. continue;
  1335.  
  1336. team = get_user_team(i);
  1337. switch(team)
  1338. {
  1339. case 1: ts[tsnum++] = i;
  1340. case 2: cts[ctsnum++] = i;
  1341. }
  1342. }
  1343.  
  1344. if(ctsnum == 1 && tsnum == 1)
  1345. {
  1346. set_hudmessage(255, 255, 255, -1.0, 0.17, 1, 3.1, 3.0);
  1347. ShowSyncHudMsg(0, g_synchudf, "%s vs %s", player_data[ts[0]][user_name], player_data[cts[0]][user_name]);
  1348. }
  1349. else if(!g_lastannounce)
  1350. {
  1351. new oposite = 0, _team = 0;
  1352.  
  1353. if(ctsnum == 1 && tsnum > 1)
  1354. {
  1355. g_lastannounce = cts[0];
  1356. oposite = tsnum;
  1357. _team = 0
  1358. }
  1359. else if(tsnum == 1 && ctsnum > 1)
  1360. {
  1361. g_lastannounce = ts[0];
  1362. oposite = ctsnum;
  1363. _team = 1;
  1364. }
  1365.  
  1366. if(g_lastannounce)
  1367. {
  1368. if(tsnum == 1)
  1369. set_hudmessage(255, 51, 51, -1.0, 0.17, 1, 3.1, 3.0);
  1370. else if(ctsnum == 1)
  1371. set_hudmessage(102, 255, 255, -1.0, 0.17, 1, 3.1, 3.0);
  1372.  
  1373. new health_msg[64];
  1374. if(LAST_HP == 1)
  1375. formatex(health_msg, charsmax(health_msg), " (%d HP) ", get_user_health(g_lastannounce));
  1376. else
  1377. formatex(health_msg, charsmax(health_msg), " ");
  1378.  
  1379. ShowSyncHudMsg(0, g_synchudf, "%s%svs. %d %s%s", player_data[g_lastannounce][user_name], health_msg, oposite, g_teamsNames[_team], (oposite == 1) ? "" : "I")
  1380. }
  1381. }
  1382.  
  1383. if(!g_lastannounce && !(ctsnum == 1 && tsnum == 1))
  1384. {
  1385. if(!g_firstblood)
  1386. {
  1387. switch(get_user_team(killer))
  1388. {
  1389. case 1: set_hudmessage(255, 51, 51, -1.0, 0.06, 0, 4.1, 4.0);
  1390. case 2: set_hudmessage(51, 51, 255, -1.0, 0.06, 0, 4.1, 4.0);
  1391. }
  1392.  
  1393. show_hudmessage(0, "%s a facut prima victima si a primit %d$!", player_data[killer][user_name], FIRST_BLOOD_BONUS);
  1394. add_money(killer, FIRST_BLOOD_BONUS, 0);
  1395. g_firstblood = true;
  1396. }
  1397. }
  1398. }
  1399.  
  1400. public FWD_AddToFullPack(es, e, ent, host, host_flags, player, p_set)
  1401. {
  1402. if(is_user_connected(ent) && is_user_connected(host) && flag_get(g_isalive, ent))
  1403. {
  1404. if(flag_get(g_isalive, host) && flag_get(g_isfurien, ent) && flag_get(g_isfurien, host)
  1405. || !flag_get(g_isalive, host) && flag_get(g_isfurien, ent) && pev(host, pev_iuser2) == ent
  1406. || flag_get(g_isfurien, ent) && pev(ent, pev_maxspeed) <= 1.0)
  1407. {
  1408. set_es(es, ES_RenderFx, kRenderFxNone);
  1409. set_es(es, ES_RenderMode, kRenderTransTexture);
  1410. set_es(es, ES_RenderAmt, 255);
  1411. }
  1412. else if(flag_get(g_isfurien, ent))
  1413. {
  1414. set_es(es, ES_RenderFx, kRenderFxNone);
  1415. set_es(es, ES_RenderMode, kRenderTransTexture);
  1416. static viteza;
  1417. viteza = fm_get_speed(ent);
  1418. if(get_user_weapon(ent) == CSW_KNIFE)
  1419. {
  1420. if(viteza <= 50)
  1421. set_es(es, ES_RenderAmt, viteza/1);
  1422. else
  1423. set_es(es, ES_RenderAmt, 255);
  1424. }
  1425. else
  1426. set_es(es, ES_RenderAmt, 255);
  1427. }
  1428. }
  1429. }
  1430.  
  1431. public FWD_PreThink(id)
  1432. {
  1433. if(!is_user_connected(id))
  1434. return FMRES_IGNORED;
  1435.  
  1436. if(flag_get(g_isalive, id) && flag_get(g_isfurien, id))
  1437. {
  1438. static target, body;
  1439. get_user_aiming(id, target, body, 999);
  1440.  
  1441. if(valid_player(target))
  1442. {
  1443. if(flag_get(g_isalive, target))
  1444. {
  1445. if(flag_get(g_isfurien, target))
  1446. {
  1447. set_hudmessage(127, 0, 0, -1.0, -1.0, 0, 0.0, 0.1, 0.0, 0.0, -1);
  1448. static is_vip[32];
  1449. if(player_data[target][isvip] > 0)
  1450. formatex(is_vip, charsmax(is_vip), " %s", vip_types_names[player_data[target][isvip]]);
  1451. else
  1452. formatex(is_vip, charsmax(is_vip), "");
  1453. show_hudmessage(id, "%s | HP: %d | AP: %d%s", player_data[target][user_name], get_user_health(target), get_user_armor(target), is_vip);
  1454. }
  1455. else
  1456. {
  1457. set_hudmessage(0, 63, 127, -1.0, -1.0, 0, 0.0, 0.1, 0.0, 0.0, -1);
  1458. static is_vip[32];
  1459. if(player_data[target][isvip] > 0)
  1460. formatex(is_vip, charsmax(is_vip), " %s", vip_types_names[player_data[target][isvip]]);
  1461. else
  1462. formatex(is_vip, charsmax(is_vip), "");
  1463. show_hudmessage(id, "%s | HP: %d | AP: %d%s", player_data[target][user_name], get_user_health(target), get_user_armor(target), is_vip);
  1464. }
  1465. }
  1466. }
  1467. }
  1468. return FMRES_IGNORED;
  1469. }
  1470.  
  1471. public CWeaponBox_Touch(iWeaponBox, id)
  1472. {
  1473. if(!is_user_alive(id))
  1474. return HAM_IGNORED;
  1475.  
  1476. if(get_pdata_cbase(iWeaponBox, 39, 4))
  1477. return HAM_IGNORED;
  1478.  
  1479. if(get_user_team(id) == 1)
  1480. return HAM_SUPERCEDE;
  1481.  
  1482. return HAM_IGNORED;
  1483. }
  1484.  
  1485. public GroundWeapon_Touch(iWeapon, id)
  1486. {
  1487. if(!is_user_alive(id))
  1488. return HAM_IGNORED;
  1489.  
  1490. if(get_user_team(id) == 1)
  1491. return HAM_SUPERCEDE;
  1492.  
  1493. return HAM_IGNORED;
  1494. }
  1495.  
  1496. public client_disconnect(id)
  1497. {
  1498. set_data(id);
  1499. init_player(id, 1);
  1500. }
  1501.  
  1502. public changeTeam(id)
  1503. {
  1504. if(!flag_get(g_isconnected, id))
  1505. return;
  1506.  
  1507. switch(cs_get_user_team(id))
  1508. {
  1509. case CS_TEAM_CT: cs_set_user_team(id, CS_TEAM_T);
  1510. case CS_TEAM_T: cs_set_user_team(id, CS_TEAM_CT);
  1511. }
  1512. }
  1513.  
  1514. add_delay(id)
  1515. {
  1516. switch(id)
  1517. {
  1518. case 1..7: set_task(0.15, "changeTeam", id);
  1519. case 8..15: set_task(0.3, "changeTeam", id);
  1520. case 16..23: set_task(0.4, "changeTeam", id);
  1521. case 24..32: set_task(0.55, "changeTeam", id);
  1522. }
  1523. }
  1524.  
  1525. public message_textmsg()
  1526. {
  1527. new textmsg[22];
  1528. get_msg_arg_string(2, textmsg, charsmax(textmsg));
  1529. if(equal(textmsg, "#Terrorists_Win"))
  1530. {
  1531. ScreenFade(0, 0, 0);
  1532. for(new user = 1; user <= g_maxplayers; user++)
  1533. {
  1534. if(!flag_get(g_isconnected, user))
  1535. continue;
  1536.  
  1537. if(flag_get(g_isfurien, user))
  1538. add_money(user, 500, 0);
  1539.  
  1540. if(!check_is_attending(user))
  1541. {
  1542. reset_bet(user);
  1543. continue;
  1544. }
  1545. switch(g_betplayer[user][2])
  1546. {
  1547. case 1: g_betplayer[user][3] = 3;
  1548. case 2: g_betplayer[user][3] = 2;
  1549. }
  1550. }
  1551. set_hudmessage(255, 51, 51, -1.0, 0.06, 0, 4.1, 4.0)
  1552. show_hudmessage(0, "Furienii au castigat!");
  1553. return PLUGIN_HANDLED;
  1554. }
  1555. else if(equal(textmsg, "#CTs_Win"))
  1556. {
  1557. ScreenFade(200, 200, 200);
  1558. for(new user = 1; user <= g_maxplayers; user++)
  1559. {
  1560. if(!flag_get(g_isconnected, user))
  1561. continue;
  1562.  
  1563. if(!flag_get(g_isfurien, user))
  1564. add_money(user, 500, 0);
  1565.  
  1566. add_delay(user);
  1567. if(!check_is_attending(user))
  1568. {
  1569. reset_bet(user);
  1570. continue;
  1571. }
  1572. switch(g_betplayer[user][2])
  1573. {
  1574. case 1: g_betplayer[user][3] = 2;
  1575. case 2: g_betplayer[user][3] = 3;
  1576. }
  1577. }
  1578. set_hudmessage(51, 51, 255, -1.0, 0.06, 0, 4.1, 4.0)
  1579. show_hudmessage(0, "Anti-Furienii au castigat!");
  1580. return PLUGIN_HANDLED;
  1581. }
  1582. else if(equal(textmsg, "#Bomb_Defused"))
  1583. {
  1584. ScreenFade(200, 200, 200);
  1585. for(new user = 1; user <= g_maxplayers; user++)
  1586. {
  1587. if(!flag_get(g_isconnected, user))
  1588. continue
  1589.  
  1590. if(!flag_get(g_isfurien, user))
  1591. add_money(user, 500, 0);
  1592.  
  1593. add_delay(user);
  1594. if(!check_is_attending(user))
  1595. {
  1596. reset_bet(user);
  1597. continue;
  1598. }
  1599. switch(g_betplayer[user][2])
  1600. {
  1601. case 1: g_betplayer[user][3] = 2;
  1602. case 2: g_betplayer[user][3] = 3;
  1603. }
  1604. }
  1605. set_hudmessage(51, 51, 255, -1.0, 0.06, 0, 4.1, 4.0)
  1606. show_hudmessage(0, "Bomba a fost dezamorsata de anti-furieni!");
  1607. return PLUGIN_HANDLED;
  1608. }
  1609. else if(equal(textmsg, "#Bomb_Planted"))
  1610. {
  1611. set_hudmessage(255, 51, 51, -1.0, 0.06, 1, 3.1, 3.0)
  1612. show_hudmessage(0, "Bomba a fost plantata!");
  1613. return PLUGIN_HANDLED;
  1614. }
  1615. else if(equal(textmsg, "#Game_bomb_drop"))
  1616. {
  1617. new mesaj[128], nume[32];
  1618. get_msg_arg_string(3, nume, charsmax(nume));
  1619. formatex(mesaj, charsmax(mesaj), "%s a scapat bomba...", nume);
  1620. set_msg_arg_string(2, mesaj);
  1621. }
  1622. else if(equal(textmsg, "#Game_bomb_pickup"))
  1623. {
  1624. new mesaj[128], nume[32];
  1625. get_msg_arg_string(3, nume, charsmax(nume));
  1626. formatex(mesaj, charsmax(mesaj), "Bravo lui %s. A luat bomba!", nume);
  1627. set_msg_arg_string(2, mesaj);
  1628. }
  1629. else if(equal(textmsg, "#Round_Draw"))
  1630. {
  1631. ScreenFade(0, 0, 0)
  1632. for(new i = 1; i <= g_maxplayers; i++)
  1633. {
  1634. if(!flag_get(g_isconnected, i))
  1635. continue;
  1636.  
  1637. reset_bet(i);
  1638. }
  1639. set_msg_arg_string(2, "Runda provizorie...");
  1640. }
  1641. else if(equal(textmsg, "#Target_Bombed"))
  1642. {
  1643. set_msg_arg_string(2, "Bomba a bubuit!");
  1644. ScreenFade(0, 0, 0);
  1645. for(new user = 1; user <= g_maxplayers; user++)
  1646. {
  1647. if(!flag_get(g_isconnected, user))
  1648. continue
  1649.  
  1650. if(flag_get(g_isfurien, user))
  1651. add_money(user, 500, 0);
  1652.  
  1653. if(!check_is_attending(user))
  1654. {
  1655. reset_bet(user);
  1656. continue;
  1657. }
  1658. switch(g_betplayer[user][2])
  1659. {
  1660. case 1: g_betplayer[user][3] = 3;
  1661. case 2: g_betplayer[user][3] = 2;
  1662. }
  1663. }
  1664. }
  1665. else if(equal(textmsg, "#Target_Saved"))
  1666. {
  1667. for(new user = 1; user <= g_maxplayers; user++)
  1668. {
  1669. if(!flag_get(g_isconnected, user))
  1670. continue
  1671.  
  1672. if(!flag_get(g_isfurien, user))
  1673. add_money(user, 500, 0);
  1674.  
  1675. add_delay(user);
  1676.  
  1677. if(!check_is_attending(user))
  1678. {
  1679. reset_bet(user);
  1680. continue;
  1681. }
  1682. switch(g_betplayer[user][2])
  1683. {
  1684. case 1: g_betplayer[user][3] = 2;
  1685. case 2: g_betplayer[user][3] = 3;
  1686. }
  1687. }
  1688. set_hudmessage(51, 51, 255, -1.0, 0.06, 0, 4.1, 4.0)
  1689. show_hudmessage(0, "Anti-Furienii au rezistat terorii.");
  1690. return PLUGIN_HANDLED;
  1691. }
  1692. else if(equal(textmsg, "#Hostages_Not_Rescued"))
  1693. return PLUGIN_HANDLED;
  1694.  
  1695. if(get_msg_args() == 5)
  1696. {
  1697. get_msg_arg_string(5, textmsg, charsmax(textmsg));
  1698. if(equal(textmsg, "#Fire_in_the_hole"))
  1699. return PLUGIN_HANDLED;
  1700.  
  1701. return PLUGIN_CONTINUE;
  1702. }
  1703.  
  1704. return PLUGIN_CONTINUE;
  1705. }
  1706.  
  1707. public reset_score(id)
  1708. {
  1709. set_user_frags(id, 0);
  1710. cs_set_user_deaths(id, 0);
  1711. set_user_frags(id, 0);
  1712. cs_set_user_deaths(id, 0);
  1713. color(id, ".v%s.g Scorul tau a fost resetat!", TAG);
  1714. return PLUGIN_HANDLED;
  1715. }
  1716.  
  1717. public message_sendaudio()
  1718. {
  1719. new textmsg[18];
  1720. get_msg_arg_string(2, textmsg, charsmax(textmsg));
  1721. if(equal(textmsg, "%!MRAD_FIREINHOLE"))
  1722. return PLUGIN_HANDLED;
  1723.  
  1724. return PLUGIN_CONTINUE;
  1725. }
  1726.  
  1727. public client_PreThink(id)
  1728. {
  1729. if(!flag_get(g_isalive, id))
  1730. return PLUGIN_CONTINUE;
  1731.  
  1732. static newbut, oldbut, plflags;
  1733. newbut = get_user_button(id);
  1734. oldbut = get_user_oldbutton(id);
  1735. plflags = get_entity_flags(id);
  1736. if((newbut & IN_JUMP) && !(plflags & FL_ONGROUND) && !(oldbut & IN_JUMP))
  1737. {
  1738. if(jumpnum[id] < 2)
  1739. {
  1740. dojump[id] = true;
  1741. jumpnum[id]++;
  1742. }
  1743. }
  1744. if((newbut & IN_JUMP) && (plflags & FL_ONGROUND))
  1745. jumpnum[id] = 0;
  1746.  
  1747. if(!(plflags & FL_ONGROUND) && (newbut & IN_USE))
  1748. {
  1749. static Float:velocity[3];
  1750. entity_get_vector(id, EV_VEC_velocity, velocity);
  1751. if(velocity[2] < 0)
  1752. {
  1753. if(para_ent[id] == 0)
  1754. {
  1755. para_ent[id] = create_entity("info_target");
  1756. if(para_ent[id] > 0)
  1757. {
  1758. //entity_set_model(para_ent[id], "models/parachute.mdl");
  1759. entity_set_int(para_ent[id], EV_INT_movetype, MOVETYPE_FOLLOW);
  1760. entity_set_edict(para_ent[id], EV_ENT_aiment, id);
  1761. }
  1762. }
  1763. if(para_ent[id] > 0)
  1764. {
  1765. velocity[2] = (velocity[2] + 40.0 < -100) ? velocity[2] + 40.0 : -100.0
  1766. entity_set_vector(id, EV_VEC_velocity, velocity);
  1767. if (entity_get_float(para_ent[id], EV_FL_frame) < 0.0 || entity_get_float(para_ent[id], EV_FL_frame) > 254.0)
  1768. {
  1769. if(entity_get_int(para_ent[id], EV_INT_sequence) != 1)
  1770. entity_set_int(para_ent[id], EV_INT_sequence, 1);
  1771.  
  1772. entity_set_float(para_ent[id], EV_FL_frame, 0.0);
  1773. }
  1774. else
  1775. entity_set_float(para_ent[id], EV_FL_frame, entity_get_float(para_ent[id], EV_FL_frame) + 1.0)
  1776. }
  1777. }
  1778. else
  1779. {
  1780. if(para_ent[id] > 0)
  1781. {
  1782. remove_entity(para_ent[id]);
  1783. para_ent[id] = 0;
  1784. }
  1785. }
  1786. }
  1787. else
  1788. {
  1789. if(para_ent[id] > 0)
  1790. {
  1791. remove_entity(para_ent[id]);
  1792. para_ent[id] = 0;
  1793. }
  1794. }
  1795. return PLUGIN_CONTINUE;
  1796. }
  1797.  
  1798. public client_PostThink(id)
  1799. {
  1800. if(!flag_get(g_isalive, id))
  1801. return PLUGIN_CONTINUE;
  1802.  
  1803. if(dojump[id] == true)
  1804. {
  1805. static Float:velocity[3];
  1806. entity_get_vector(id, EV_VEC_velocity, velocity);
  1807. velocity[2] = random_float(265.0, 285.0);
  1808. entity_set_vector(id, EV_VEC_velocity, velocity);
  1809. dojump[id] = false;
  1810. }
  1811. return PLUGIN_CONTINUE;
  1812. }
  1813.  
  1814. public onResetHUD(id)
  1815. {
  1816. new hideflags = GetHudHideFlags();
  1817. for(new i = 1; i <= g_maxplayers; i++)
  1818. {
  1819. if(!flag_get(g_isconnected, i))
  1820. continue;
  1821.  
  1822. message_begin(MSG_ONE_UNRELIABLE, g_msg_hideweapon, _, i);
  1823. write_byte(hideflags);
  1824. message_end();
  1825. }
  1826. }
  1827.  
  1828. public HealthHud(taskid)
  1829. {
  1830. static id;
  1831. id = ID_HUD;
  1832.  
  1833. if(!is_user_alive(id))
  1834. {
  1835. id = pev(id, pev_iuser2);
  1836.  
  1837. if(!is_user_alive(id))
  1838. return;
  1839. }
  1840.  
  1841. static rva[3], camp_meter[128];
  1842. if(flag_get(g_isfurien, id))
  1843. {
  1844. rva[0] = 200;
  1845. rva[1] = 50;
  1846. rva[2] = 70;
  1847. formatex(camp_meter, charsmax(camp_meter), "");
  1848. }
  1849. else
  1850. {
  1851. rva[0] = 20
  1852. rva[1] = 50
  1853. rva[2] = 200
  1854. if(get_camp(id) < 0)
  1855. formatex(camp_meter, charsmax(camp_meter), " | CAMP: 0%");
  1856. else
  1857. formatex(camp_meter, charsmax(camp_meter), " | CAMP: %i%", get_camp(id));
  1858. }
  1859.  
  1860. if(id != ID_HUD)
  1861. {
  1862. set_hudmessage(100, 50, 150, -1.0, 0.85, 1, 0.51, 0.5);
  1863. ShowSyncHudMsg(ID_HUD, g_hudsync, "%s^nHP: %d | AP: %d | MONEY: %d$ | BONUS: %d/%d%s", player_data[id][user_name], get_user_health(id), get_user_armor(id), player_data[id][money], player_data[id][bonuskill], KILL_BONUS, camp_meter)
  1864. }
  1865. else
  1866. {
  1867. set_hudmessage(rva[0], rva[1], rva[2], 0.01, 0.94, 0, 0.0, 0.51, 0.5, 0.0)
  1868. show_hudmessage(ID_HUD, "HP: %d | AP: %d | %d$ | BONUS: %d/%d%s", get_user_health(ID_HUD), get_user_armor(ID_HUD), player_data[ID_HUD][money], player_data[ID_HUD][bonuskill], KILL_BONUS, camp_meter)
  1869. }
  1870. }
  1871.  
  1872. public msg_hide_weapon()
  1873. {
  1874. new hideflags = GetHudHideFlags();
  1875. if(hideflags)
  1876. set_msg_arg_int(1, ARG_BYTE, get_msg_arg_int(1) | hideflags);
  1877. }
  1878.  
  1879. public sound_emit(id, channel, const snx[])
  1880. {
  1881. if(snx[0] == 'h' && snx[1] == 'o' && snx[2] == 's' && snx[3] == 't' && snx[4] == 'a' && snx[5] == 'g' && snx[6] == 'e')
  1882. return FMRES_SUPERCEDE;
  1883.  
  1884. return FMRES_IGNORED;
  1885. }
  1886.  
  1887. public bomb_planted(planter)
  1888. {
  1889. if(flag_get(g_loaded, planter))
  1890. add_money(planter, 500, PLANT_REWARD_MESSAGE);
  1891.  
  1892. msg_create_fog(random_num(100, 250), random_num(100, 250), random_num(100, 250), 2);
  1893. g_bombplanted = true;
  1894.  
  1895. c4_lefts = g_c4timer;
  1896. set_task(1.0, "update_timer");
  1897. }
  1898.  
  1899. public update_timer()
  1900. {
  1901. if(c4_lefts < 1)
  1902. {
  1903. c4_lefts = -1;
  1904. return;
  1905. }
  1906.  
  1907. set_hudmessage(random(255), random(255), random(255), -1.0, 0.0, 1, 1.0, 1.0, 0.0, 0.0)
  1908. if(c4_lefts > 0)
  1909. show_hudmessage(0, "%d secund%s ramas%s pana la explozie!", c4_lefts, c4_lefts < 2 ? "a" : "e", c4_lefts < 2 ? "a" : "e")
  1910.  
  1911. c4_lefts--;
  1912. set_task(1.0, "update_timer");
  1913. }
  1914.  
  1915. public bomb_defused(defuser)
  1916. {
  1917. if(flag_get(g_loaded, defuser))
  1918. add_money(defuser, 500, DEFUSE_REWARD_MESSAGE);
  1919.  
  1920. g_bombplanted = false;
  1921. }
  1922.  
  1923. public bomb_explode(planter, defuser)
  1924. g_bombplanted = false;
  1925.  
  1926. public messages_random()
  1927. color(0, ".v%s.g %s", TAG, random_msg_ro[random(sizeof random_msg_ro)]);
  1928.  
  1929. public transfer_menu(id)
  1930. {
  1931. if(!flag_get(g_loaded, id))
  1932. {
  1933. color(id, ".v%s.g Nu ti s-au preluat datele!", TAG);
  1934. return PLUGIN_HANDLED;
  1935. }
  1936.  
  1937. if(g_endround)
  1938. {
  1939. color(id, ".v%s.g Nu poti transfera la sfarsitul rundei!", TAG);
  1940. return PLUGIN_HANDLED;
  1941. }
  1942.  
  1943. new menu, menu_item[168];
  1944. formatex(menu_item, charsmax(menu_item), "\rMeniul de transfer^nBani:\y %d$", player_data[id][money]);
  1945. menu = menu_create(menu_item, "transfer_handler");
  1946. new userid[32];
  1947. for(new i = 1; i <= g_maxplayers; i++)
  1948. {
  1949. if(!flag_get(g_loaded, i) || i == id)
  1950. continue;
  1951.  
  1952. if(get_user_flags(id) & IS_ADMIN)
  1953. formatex(menu_item, charsmax(menu_item), "\y%s - \r%d$", player_data[i][user_name], player_data[i][money]);
  1954. else
  1955. formatex(menu_item, charsmax(menu_item), "\y%s", player_data[i][user_name]);
  1956. formatex(userid, charsmax(userid), "%d", get_user_userid(i));
  1957. menu_additem(menu, menu_item, userid, 0);
  1958. }
  1959. menu_display(id, menu, 0);
  1960. return PLUGIN_HANDLED;
  1961. }
  1962.  
  1963. public transfer_handler(id, menu, item)
  1964. {
  1965. if(!flag_get(g_isconnected, id) || item == MENU_EXIT)
  1966. {
  1967. menu_destroy(menu);
  1968. reset_transfer(id);
  1969. return PLUGIN_HANDLED;
  1970. }
  1971.  
  1972. if(!flag_get(g_loaded, id))
  1973. {
  1974. color(id, ".v%s.g Nu ti s-au preluat datele!", TAG);
  1975. menu_destroy(menu);
  1976. reset_transfer(id);
  1977. return PLUGIN_HANDLED;
  1978. }
  1979.  
  1980. if(g_endround)
  1981. {
  1982. color(id, ".v%s.g Nu poti transfera la sfarsitul rundei!", TAG);
  1983. menu_destroy(menu);
  1984. reset_transfer(id);
  1985. return PLUGIN_HANDLED;
  1986. }
  1987.  
  1988. new menu_data[6], menu_name[64];
  1989. new _access, item_callback;
  1990. menu_item_getinfo(menu, item, _access, menu_data, charsmax(menu_data), menu_name, charsmax(menu_name), item_callback);
  1991. new userid = str_to_num(menu_data);
  1992. new player = find_player("k", userid);
  1993.  
  1994. if(player)
  1995. {
  1996. if(!flag_get(g_loaded, player))
  1997. {
  1998. color(id, ".v%s.g Nu poti face transfer pe acest jucator acum!", TAG);
  1999. menu_destroy(menu);
  2000. reset_transfer(id);
  2001. return PLUGIN_HANDLED;
  2002. }
  2003. client_cmd(id, "messagemode TRANSFER_MONEY");
  2004. g_transfermoney[id][0] = player;
  2005. color(id, ".v%s.g L-ai selectat pe.e %s.g pentru a transfera bani.", TAG, player_data[player][user_name]);
  2006. }
  2007. menu_destroy(menu);
  2008. return PLUGIN_HANDLED;
  2009. }
  2010.  
  2011. public transfer_to_player(id)
  2012. {
  2013. if(!loaded(id))
  2014. {
  2015. reset_transfer(id);
  2016. return PLUGIN_HANDLED;
  2017. }
  2018.  
  2019. if(g_endround)
  2020. {
  2021. color(id, ".v%s.g Nu poti transfera chiar acum!", TAG);
  2022. reset_transfer(id);
  2023. return PLUGIN_HANDLED;
  2024. }
  2025. if(!flag_get(g_loaded, g_transfermoney[id][0]))
  2026. {
  2027. color(id, ".v%s.g Nu poti transfera jucatorului acesta!", TAG);
  2028. reset_transfer(id);
  2029. return PLUGIN_HANDLED;
  2030. }
  2031. new amount[16];
  2032. read_args(amount, charsmax(amount));
  2033. remove_quotes(amount);
  2034. new much = str_to_num(amount);
  2035. if(much < 1)
  2036. {
  2037. color(id, ".v%s.g Suma introdusa este invalida!", TAG);
  2038. reset_transfer(id);
  2039. return PLUGIN_HANDLED;
  2040. }
  2041.  
  2042. if(much > 16000)
  2043. {
  2044. color(id, ".v%s.g Nu poti transfera peste.e 16000$.g!", TAG);
  2045. reset_transfer(id);
  2046. return PLUGIN_HANDLED;
  2047. }
  2048.  
  2049. if(player_data[id][money] < much)
  2050. {
  2051. color(id, ".v%s.g Suma este mai mare decat banca ta!", TAG);
  2052. reset_transfer(id);
  2053. return PLUGIN_HANDLED;
  2054. }
  2055.  
  2056. g_transfermoney[id][1] = much;
  2057. transfer_sure(id);
  2058. return PLUGIN_HANDLED;
  2059. }
  2060.  
  2061. public reset_transfer(id)
  2062. {
  2063. g_transfermoney[id][0] = 0;
  2064. g_transfermoney[id][1] = 0;
  2065. }
  2066.  
  2067. public bet_menu(id)
  2068. {
  2069. if(!loaded(id))
  2070. return PLUGIN_HANDLED;
  2071.  
  2072. if(flag_get(g_isalive, id))
  2073. {
  2074. color(id, ".v%s.g Trebuie sa fii mort pentru a putea paria!", TAG);
  2075. return PLUGIN_HANDLED;
  2076. }
  2077.  
  2078. if(g_endround)
  2079. {
  2080. color(id, ".v%s.g Nu poti paria chiar acum!", TAG);
  2081. return PLUGIN_HANDLED;
  2082. }
  2083.  
  2084. if(check_is_attending(id))
  2085. {
  2086. color(id, ".v%s.g Ai deja un pariu plasat!", TAG);
  2087. return PLUGIN_HANDLED;
  2088. }
  2089.  
  2090. new menu, menu_item[100];
  2091. formatex(menu_item, charsmax(menu_item), "\rMeniul pariurilor^nBani:\y %d$", player_data[id][money]);
  2092. menu = menu_create(menu_item, "bet_handler");
  2093. menu_additem(menu, "\yPariaza un jucator", "");
  2094. menu_additem(menu, "\yPariaza echipa", "");
  2095. menu_display(id, menu, 0);
  2096. return PLUGIN_HANDLED;
  2097. }
  2098.  
  2099. public bet_handler(id, menu, item)
  2100. {
  2101. if(item == MENU_EXIT)
  2102. {
  2103. menu_destroy(menu);
  2104. return PLUGIN_HANDLED;
  2105. }
  2106.  
  2107. if(!flag_get(g_loaded, id))
  2108. {
  2109. color(id, ".v%s.g Nu ti s-au preluat datele momentan!", TAG);
  2110. return PLUGIN_HANDLED;
  2111. }
  2112.  
  2113. if(flag_get(g_isalive, id))
  2114. {
  2115. color(id, ".v%s.g Trebuie sa fii mort pentru a putea paria!", TAG);
  2116. return PLUGIN_HANDLED;
  2117. }
  2118.  
  2119. if(g_endround)
  2120. {
  2121. color(id, ".v%s.g Nu poti paria acum!", TAG);
  2122. return PLUGIN_HANDLED;
  2123. }
  2124.  
  2125. if(check_is_attending(id))
  2126. {
  2127. color(id, ".v%s.g Ai deja plasat un pariu!", TAG);
  2128. menu_destroy(menu);
  2129. return PLUGIN_HANDLED;
  2130. }
  2131.  
  2132. switch(item)
  2133. {
  2134. case 0: menu_player_bet_list(id);
  2135. case 1: menu_team_bet(id);
  2136. }
  2137. menu_destroy(menu);
  2138. return PLUGIN_HANDLED;
  2139. }
  2140.  
  2141. public menu_player_bet_list(id)
  2142. {
  2143. if(!flag_get(g_loaded, id))
  2144. {
  2145. color(id, ".v%s.g Nu ti s-au preluat datele momentan!", TAG);
  2146. return PLUGIN_HANDLED;
  2147. }
  2148.  
  2149. if(flag_get(g_isalive, id))
  2150. {
  2151. color(id, ".v%s.g Trebuie sa fii mort pentru a putea paria!", TAG);
  2152. return PLUGIN_HANDLED;
  2153. }
  2154.  
  2155. if(g_endround)
  2156. {
  2157. color(id, ".v%s.g Nu poti paria acum!", TAG);
  2158. return PLUGIN_HANDLED;
  2159. }
  2160.  
  2161. new menu = menu_create("\rAlege jucatorul pentru care vrei sa pariezi", "player_bet_handler");
  2162. new menu_item[100], userid[32], skill, Float:cota;
  2163. for(new i = 1; i <= g_maxplayers; i++)
  2164. {
  2165. if(!flag_get(g_isalive, i) || !flag_get(g_loaded, i) || i == id)
  2166. continue;
  2167.  
  2168. skill = get_user_frags(i) - cs_get_user_deaths(i);
  2169. cota = make_odd(skill);
  2170. formatex(menu_item, charsmax(menu_item), "\y%s - \r%.1f odd", player_data[i][user_name], cota);
  2171. formatex(userid, charsmax(userid), "%d", get_user_userid(i));
  2172. menu_additem(menu, menu_item, userid, 0);
  2173. }
  2174. menu_display(id, menu, 0);
  2175. return PLUGIN_HANDLED;
  2176. }
  2177.  
  2178. public menu_team_bet(id)
  2179. {
  2180. if(!flag_get(g_loaded, id))
  2181. {
  2182. color(id, ".v%s.g Nu ti s-au preluat datele momentan!", TAG);
  2183. return PLUGIN_HANDLED;
  2184. }
  2185.  
  2186. if(flag_get(g_isalive, id))
  2187. {
  2188. color(id, ".v%s.g Trebuie sa fii mort pentru a putea paria!", TAG);
  2189. return PLUGIN_HANDLED;
  2190. }
  2191.  
  2192. if(g_endround)
  2193. {
  2194. color(id, ".v%s.g Nu poti paria acum!", TAG);
  2195. return PLUGIN_HANDLED;
  2196. }
  2197.  
  2198. new menu = menu_create("\rChoose 1 team to bet", "team_bet_handler");
  2199. new menu_item[100], Float:cota;
  2200. cota = fnGetOdd(1);
  2201. formatex(menu_item, charsmax(menu_item), "\yFurien -\r %.1f odd", cota);
  2202. menu_additem(menu, menu_item, "");
  2203. cota = fnGetOdd(2);
  2204. formatex(menu_item, charsmax(menu_item), "\yAnti-Furien -\r %.1f odd", cota);
  2205. menu_additem(menu, menu_item, "");
  2206. menu_display(id, menu, 0);
  2207. return PLUGIN_HANDLED;
  2208. }
  2209.  
  2210. public player_bet_handler(id, menu, item)
  2211. {
  2212. if(!is_user_connected(id) || item == MENU_EXIT || !loaded(id))
  2213. {
  2214. reset_bet(id);
  2215. menu_destroy(menu);
  2216. return PLUGIN_HANDLED;
  2217. }
  2218.  
  2219. if(flag_get(g_isalive, id))
  2220. {
  2221. color(id, ".v%s.g Trebuie sa fii mort pentru a putea paria!", TAG);
  2222. menu_destroy(menu);
  2223. reset_bet(id);
  2224. return PLUGIN_HANDLED;
  2225. }
  2226.  
  2227. if(g_endround)
  2228. {
  2229. color(id, ".v%s.g Nu poti paria chiar acum!", TAG);
  2230. menu_destroy(menu);
  2231. reset_bet(id);
  2232. return PLUGIN_HANDLED;
  2233. }
  2234.  
  2235. new menu_data[6], menu_name[64];
  2236. new _access, item_callback;
  2237. menu_item_getinfo(menu, item, _access, menu_data, charsmax(menu_data), menu_name, charsmax(menu_name), item_callback);
  2238. new userid = str_to_num(menu_data);
  2239. new player = find_player("k", userid);
  2240.  
  2241. if(player)
  2242. {
  2243. if(!flag_get(g_isalive, player) || !flag_get(g_loaded, player))
  2244. {
  2245. color(id, ".v%s.g Jucatorul ales este decedat!", TAG);
  2246. menu_destroy(menu);
  2247. reset_bet(id);
  2248. return PLUGIN_HANDLED;
  2249. }
  2250. client_cmd(id, "messagemode BET_PLAYER");
  2251. g_betplayer[id][0] = player;
  2252. color(id, ".v%s.g Ai ales pe.e %s.g pentru a paria. Scrie suma!", TAG, player_data[player][user_name]);
  2253. }
  2254. menu_destroy(menu);
  2255. return PLUGIN_HANDLED;
  2256. }
  2257.  
  2258. public team_bet_handler(id, menu, item)
  2259. {
  2260. if(!is_user_connected(id) || item == MENU_EXIT)
  2261. {
  2262. reset_bet(id);
  2263. menu_destroy(menu);
  2264. return PLUGIN_HANDLED;
  2265. }
  2266.  
  2267. if(!loaded(id))
  2268. {
  2269. menu_destroy(menu);
  2270. reset_bet(id);
  2271. return PLUGIN_HANDLED;
  2272. }
  2273.  
  2274. if(flag_get(g_isalive, id))
  2275. {
  2276. color(id, ".v%s.g Trebuie sa fii mort pentru a putea paria!", TAG);
  2277. menu_destroy(menu);
  2278. reset_bet(id);
  2279. return PLUGIN_HANDLED;
  2280. }
  2281.  
  2282. if(g_endround)
  2283. {
  2284. color(id, ".v%s.g Nu poti paria chiar acum!", TAG);
  2285. menu_destroy(menu);
  2286. reset_bet(id);
  2287. return PLUGIN_HANDLED;
  2288. }
  2289. switch(item)
  2290. {
  2291. case 0:
  2292. {
  2293. color(id, ".v%s.g Ai pariat pe echipa.e Furien.g!", TAG);
  2294. g_betplayer[id][2] = 1;
  2295. }
  2296. case 1:
  2297. {
  2298. color(id, ".v%s.g Ai pariat pe echipa.e Anti-Furien.g!", TAG);
  2299. g_betplayer[id][2] = 2;
  2300. }
  2301.  
  2302. }
  2303. client_cmd(id, "messagemode BET_TEAM");
  2304. menu_destroy(menu);
  2305. return PLUGIN_HANDLED;
  2306. }
  2307.  
  2308. public bet_on_player(id)
  2309. {
  2310. if(!loaded(id))
  2311. {
  2312. reset_bet(id);
  2313. return PLUGIN_HANDLED;
  2314. }
  2315.  
  2316. if(g_endround)
  2317. {
  2318. color(id, ".v%s.g Nu poti paria chiar acum!", TAG);
  2319. reset_bet(id);
  2320. return PLUGIN_HANDLED;
  2321. }
  2322.  
  2323. if(!flag_get(g_isalive, g_betplayer[id][0]) || !flag_get(g_loaded, g_betplayer[id][0]))
  2324. {
  2325. color(id, ".v%s.g Jucatorul care ai pariat nu este in viata sau nu a luat datele!", TAG);
  2326. reset_bet(id);
  2327. return PLUGIN_HANDLED;
  2328. }
  2329.  
  2330. new amount[16];
  2331. read_args(amount, charsmax(amount));
  2332. remove_quotes(amount);
  2333. new much = str_to_num(amount);
  2334. if(much < 1)
  2335. {
  2336. color(id, ".v%s.g Suma nu este valida!", TAG);
  2337. reset_bet(id);
  2338. return PLUGIN_HANDLED;
  2339. }
  2340.  
  2341. if(much > 1000)
  2342. {
  2343. color(id, ".v%s.g Nu poti paria mai mult de.e 1000$.g!", TAG);
  2344. reset_bet(id);
  2345. return PLUGIN_HANDLED;
  2346. }
  2347.  
  2348. if(player_data[id][money] < much)
  2349. {
  2350. color(id, ".v%s.g Suma introdusa este mai mare decat totalul tau!", TAG);
  2351. reset_bet(id);
  2352. return PLUGIN_HANDLED;
  2353. }
  2354. g_betplayer[id][1] = much;
  2355. menu_sure(id, 1);
  2356. return PLUGIN_HANDLED;
  2357. }
  2358.  
  2359. public bet_on_team(id)
  2360. {
  2361. if(!loaded(id))
  2362. {
  2363. reset_bet(id);
  2364. return PLUGIN_HANDLED;
  2365. }
  2366.  
  2367. if(flag_get(g_isalive, id))
  2368. {
  2369. color(id, ".v%s.g Trebuie sa fii decedat sa poti paria!", TAG);
  2370. reset_bet(id);
  2371. return PLUGIN_HANDLED;
  2372. }
  2373.  
  2374. if(g_endround)
  2375. {
  2376. color(id, ".v%s.g Nu poti paria chiar acum!", TAG);
  2377. reset_bet(id);
  2378. return PLUGIN_HANDLED;
  2379. }
  2380.  
  2381. new amount[16];
  2382. read_args(amount, charsmax(amount));
  2383. remove_quotes(amount);
  2384. new much = str_to_num(amount);
  2385. if(much < 1)
  2386. {
  2387. color(id, ".v%s.g Suma nu este valida!", TAG);
  2388. reset_bet(id);
  2389. return PLUGIN_HANDLED;
  2390. }
  2391.  
  2392. if(much > 5000)
  2393. {
  2394. color(id, ".v%s.g Nu poti paria mai mult de.e 5000$.g!", TAG);
  2395. reset_bet(id);
  2396. return PLUGIN_HANDLED;
  2397. }
  2398.  
  2399. if(player_data[id][money] < much)
  2400. {
  2401. color(id, ".v%s.g Suma introdusa este mai mare decat banca ta!", TAG);
  2402. reset_bet(id);
  2403. return PLUGIN_HANDLED;
  2404. }
  2405. g_betplayer[id][1] = much;
  2406. menu_sure(id, 2);
  2407. return PLUGIN_HANDLED;
  2408. }
  2409.  
  2410. public transfer_sure(id)
  2411. {
  2412. if(!flag_get(g_loaded, id))
  2413. {
  2414. color(id, ".v%s.g Nu ti-au fost preluate datele aferente contului!", TAG);
  2415. reset_transfer(id);
  2416. return PLUGIN_HANDLED;
  2417. }
  2418.  
  2419. if(g_endround)
  2420. {
  2421. color(id, ".v%s.g Nu poti paria chiar acum", TAG);
  2422. reset_transfer(id);
  2423. return PLUGIN_HANDLED;
  2424. }
  2425.  
  2426. if(player_data[id][money] < g_transfermoney[id][1])
  2427. {
  2428. color(id, ".v%s.g Nu ai destui bani pentru acest transfer.", TAG);
  2429. reset_transfer(id);
  2430. return PLUGIN_HANDLED;
  2431. }
  2432.  
  2433. if(!flag_get(g_loaded, g_transfermoney[id][0]))
  2434. {
  2435. color(id, ".v%s.g Jucatorul nu si-a preluat datele!", TAG);
  2436. reset_transfer(id);
  2437. return PLUGIN_HANDLED;
  2438. }
  2439. new menu, menu_item[100];
  2440. formatex(menu_item, charsmax(menu_item), "\rEsti sigur ca doresti sa-i trimiti lui\y %s\r?^nSuma trimisa:\y %d$\r.", player_data[g_transfermoney[id][0]][user_name], g_transfermoney[id][1]);
  2441. menu = menu_create(menu_item, "sure_transfer_handler");
  2442. menu_additem(menu, "\yDa", "");
  2443. menu_additem(menu, "\yNu", "");
  2444. menu_display(id, menu, 0);
  2445. return PLUGIN_HANDLED;
  2446. }
  2447.  
  2448. public sure_transfer_handler(id, menu, item)
  2449. {
  2450. if(item == MENU_EXIT)
  2451. {
  2452. reset_transfer(id);
  2453. menu_destroy(menu);
  2454. return PLUGIN_HANDLED;
  2455. }
  2456.  
  2457. if(!flag_get(g_loaded, id))
  2458. {
  2459. color(id, ".v%s.g Nu ti-au fost preluate datele corect!", TAG);
  2460. reset_transfer(id);
  2461. menu_destroy(menu);
  2462. return PLUGIN_HANDLED;
  2463. }
  2464.  
  2465. if(g_endround)
  2466. {
  2467. color(id, ".v%s.g Nu poti transfera chiar acum!", TAG);
  2468. reset_transfer(id);
  2469. return PLUGIN_HANDLED;
  2470. }
  2471.  
  2472. if(player_data[id][money] < g_transfermoney[id][1])
  2473. {
  2474. color(id, ".v%s.g Nu ai destui bani!", TAG);
  2475. reset_transfer(id);
  2476. menu_destroy(menu);
  2477. return PLUGIN_HANDLED;
  2478. }
  2479.  
  2480. if(!flag_get(g_loaded, g_transfermoney[id][0]))
  2481. {
  2482. color(id, ".v%s.g Jucatorul selectat nu a preluat datele aferente contului!", TAG);
  2483. reset_transfer(id);
  2484. menu_destroy(menu);
  2485. return PLUGIN_HANDLED;
  2486. }
  2487.  
  2488. switch(item)
  2489. {
  2490. case 0:
  2491. {
  2492. color(id, ".v%s.g I-ai trimis cu succes lui.e %s.g suma de.e %d$.g!", TAG, player_data[g_transfermoney[id][0]][user_name], g_transfermoney[id][1]);
  2493. color(0, ".v%s.e %s.g a transferat lui.e %s.g suma de.e %d$.g!", TAG, player_data[id][user_name], player_data[g_transfermoney[id][0]][user_name], g_transfermoney[id][1]);
  2494. take_money(id, g_transfermoney[id][1], 0);
  2495. add_money(g_transfermoney[id][0], g_transfermoney[id][1], 0);
  2496. reset_transfer(id);
  2497. }
  2498. case 1:
  2499. {
  2500. color(id, ".v%s.g Ai anulat transferul!", TAG);
  2501. reset_transfer(id);
  2502. }
  2503. }
  2504. menu_destroy(menu);
  2505. return PLUGIN_HANDLED;
  2506. }
  2507.  
  2508. public menu_sure(id, type)
  2509. {
  2510. if(!loaded(id))
  2511. {
  2512. reset_bet(id);
  2513. return PLUGIN_HANDLED;
  2514. }
  2515. if(flag_get(g_isalive, id))
  2516. {
  2517. color(id, ".v%s.g Trebuie sa fii decedat pentru a paria!", TAG);
  2518. reset_bet(id);
  2519. return PLUGIN_HANDLED;
  2520. }
  2521.  
  2522. if(g_endround)
  2523. {
  2524. color(id, ".v%s.g Nu poti paria chiar acum!", TAG);
  2525. reset_bet(id);
  2526. return PLUGIN_HANDLED;
  2527. }
  2528.  
  2529. if(player_data[id][money] < g_betplayer[id][1])
  2530. {
  2531. color(id, ".v%s.g Nu ai destui bani pentru acest pariu!", TAG);
  2532. reset_bet(id);
  2533. return PLUGIN_HANDLED;
  2534. }
  2535.  
  2536. switch(type)
  2537. {
  2538. case 1:
  2539. {
  2540. if(!flag_get(g_isalive, g_betplayer[id][0]) || !flag_get(g_loaded, g_betplayer[id][0]))
  2541. {
  2542. color(id, ".v%s.g Jucatorul este decedat sau a parasit serverul.", TAG);
  2543. reset_bet(id);
  2544. return PLUGIN_HANDLED;
  2545. }
  2546. new menu, menu_item[100], Float:cota, bet_money;
  2547. new skill = get_user_frags(g_betplayer[id][0]) - cs_get_user_deaths(g_betplayer[id][0]);
  2548. cota = make_odd(skill);
  2549. bet_money = floatround(g_betplayer[id][1] * cota);
  2550. formatex(menu_item, charsmax(menu_item), "\rEsti sigur ca vrei sa pariezi pe\y %s\r?^nAi pariat:\y %d$\r. Poti castiga:\y %d$\r", player_data[g_betplayer[id][0]][user_name], g_betplayer[id][1], bet_money);
  2551. menu = menu_create(menu_item, "sure_handler_player");
  2552. menu_additem(menu, "\yDa", "");
  2553. menu_additem(menu, "\yNu", "");
  2554. menu_display(id, menu, 0);
  2555. }
  2556. case 2:
  2557. {
  2558. new menu, menu_item[100], Float:cota, bet_money;
  2559. cota = fnGetOdd(g_betplayer[id][2]);
  2560. bet_money = floatround(g_betplayer[id][1] * cota);
  2561. new team[16];
  2562.  
  2563. switch(g_betplayer[id][2])
  2564. {
  2565. case 1: formatex(team, charsmax(team), "furieni");
  2566. case 2: formatex(team, charsmax(team), "anti-furieni");
  2567. }
  2568. formatex(menu_item, charsmax(menu_item), "\rEsti sigur ca vrei sa pariezi pe\y %s\r?^nAi pariat:\y %d$\r. Poti castiga:\y %d$\r", team, bet_money, g_betplayer[id][1]);
  2569. menu = menu_create(menu_item, "sure_handler_team");
  2570. menu_additem(menu, "\yDa", "");
  2571. menu_additem(menu, "\yNu", "");
  2572. menu_display(id, menu, 0);
  2573. }
  2574. }
  2575.  
  2576. return PLUGIN_HANDLED;
  2577. }
  2578.  
  2579. public sure_handler_player(id, menu, item)
  2580. {
  2581. if(item == MENU_EXIT || !loaded(id))
  2582. {
  2583. reset_bet(id);
  2584. menu_destroy(menu);
  2585. return PLUGIN_HANDLED;
  2586. }
  2587.  
  2588. if(flag_get(g_isalive, id))
  2589. {
  2590. color(id, ".v%s.g Trebuie sa fii mort pentru a putea paria!", TAG);
  2591. reset_bet(id);
  2592. menu_destroy(menu);
  2593. return PLUGIN_HANDLED;
  2594. }
  2595.  
  2596. if(g_endround)
  2597. {
  2598. color(id, ".v%s.g Nu poti paria chiar acum!", TAG);
  2599. reset_bet(id);
  2600. return PLUGIN_HANDLED;
  2601. }
  2602.  
  2603. if(player_data[id][money] < g_betplayer[id][1])
  2604. {
  2605. color(id, ".v%s.g Nu ai destui bani pentru acest pariu", TAG);
  2606. reset_bet(id);
  2607. menu_destroy(menu);
  2608. return PLUGIN_HANDLED;
  2609. }
  2610.  
  2611. if(!flag_get(g_isalive, g_betplayer[id][0]) || !flag_get(g_loaded, g_betplayer[id][0]))
  2612. {
  2613. color(id, ".v%s.g Jucatorul nu este in viata sau a parasit serverul!", TAG);
  2614. reset_bet(id);
  2615. menu_destroy(menu);
  2616. return PLUGIN_HANDLED;
  2617. }
  2618.  
  2619. switch(item)
  2620. {
  2621. case 0:
  2622. {
  2623. new Float:cota, bet_money;
  2624. new skill = get_user_frags(g_betplayer[id][0]) - cs_get_user_deaths(g_betplayer[id][0]);
  2625. cota = make_odd(skill);
  2626. bet_money = floatround(g_betplayer[id][1] * cota);
  2627. color(id, ".v%s.g Ai pariat cu succes pe.e %s.g! Poti castiga.e %d$.g!", TAG, player_data[g_betplayer[id][0]][user_name], bet_money);
  2628. g_betplayer[id][3] = 1;
  2629. take_money(id, g_betplayer[id][1], 0);
  2630. g_betplayer[id][1] = bet_money;
  2631.  
  2632. }
  2633. case 1:
  2634. {
  2635. color(id, ".v%s.g Ai anulat pariul!", TAG);
  2636. reset_bet(id);
  2637. }
  2638. }
  2639. menu_destroy(menu);
  2640. return PLUGIN_HANDLED;
  2641. }
  2642.  
  2643. public sure_handler_team(id, menu, item)
  2644. {
  2645. if(item == MENU_EXIT || !loaded(id))
  2646. {
  2647. reset_bet(id);
  2648. menu_destroy(menu);
  2649. return PLUGIN_HANDLED;
  2650. }
  2651.  
  2652. if(flag_get(g_isalive, id))
  2653. {
  2654. color(id, ".v%s.g Trebuie sa fii decedat pentru a putea paria!", TAG);
  2655. reset_bet(id);
  2656. menu_destroy(menu);
  2657. return PLUGIN_HANDLED;
  2658. }
  2659.  
  2660. if(g_endround)
  2661. {
  2662. color(id, ".v%s.g Nu poti paria chiar acum!", TAG);
  2663. reset_bet(id);
  2664. return PLUGIN_HANDLED;
  2665. }
  2666.  
  2667. if(player_data[id][money] < g_betplayer[id][1])
  2668. {
  2669. color(id, ".v%s.g Nu ai destui bani!", TAG);
  2670. reset_bet(id);
  2671. menu_destroy(menu);
  2672. return PLUGIN_HANDLED;
  2673. }
  2674.  
  2675. switch(item)
  2676. {
  2677. case 1:
  2678. {
  2679. new team[16], Float:cota, bet_money;
  2680. cota = fnGetOdd(g_betplayer[id][2]);
  2681. bet_money = floatround(g_betplayer[id][1] * cota);
  2682. switch(g_betplayer[id][2])
  2683. {
  2684. case 1: formatex(team, charsmax(team), "furien");
  2685. case 2: formatex(team, charsmax(team), "anti-furien");
  2686. }
  2687. color(id, ".v%s.g Ai pariat pe.e %s.g! Castig:.e %d$.g!", TAG, team, bet_money);
  2688. g_betplayer[id][3] = 1;
  2689. take_money(id, g_betplayer[id][1], 0);
  2690. g_betplayer[id][1] = bet_money;
  2691. }
  2692. }
  2693. menu_destroy(menu);
  2694. return PLUGIN_HANDLED;
  2695. }
  2696.  
  2697. public stats_menu(id)
  2698. {
  2699. if(!loaded(id))
  2700. return;
  2701.  
  2702. new menu, menu_item[192], admin = 100;
  2703. formatex(menu_item, charsmax(menu_item), "\rStatisticile tale sunt:^nUltima conectare:\d %s^n", player_stats[id][lastconnect]);
  2704. menu = menu_create(menu_item, "stats_handler");
  2705. for(new i = 0; i < sizeof flags_players; i++)
  2706. {
  2707. if(get_user_flags(id) == read_flags(flags_players[i][1]))
  2708. {
  2709. admin = i;
  2710. break;
  2711. }
  2712. }
  2713. if(admin == 100)
  2714. formatex(menu_item, charsmax(menu_item), "\yAcces:\r Jucator");
  2715. else
  2716. formatex(menu_item, charsmax(menu_item), "\yAcces:\r %s", flags_players[admin][0]);
  2717.  
  2718. menu_additem(menu, menu_item, "");
  2719. formatex(menu_item, charsmax(menu_item), "\yTimp jucat:\r %s", convert_minutes(id));
  2720. menu_additem(menu, menu_item, "");
  2721. new izstats[8], izbody[8], pos, max;
  2722. pos = get_user_stats(id, izstats, izbody);
  2723. max = get_statsnum();
  2724. formatex(menu_item, charsmax(menu_item), "\yRank:\r %d/%d", pos, max);
  2725. menu_additem(menu, menu_item, "");
  2726. formatex(menu_item, charsmax(menu_item), "\yMembru:\r %s", vip_types_names[player_data[id][isvip]]);
  2727. menu_additem(menu, menu_item, "");
  2728. formatex(menu_item, charsmax(menu_item), "\yGag:\r %s\y Gag-uri totale:\r %d", player_stats[id][gag] > 0 ? "Da" : "Nu", player_stats[id][gagtimes]);
  2729. menu_additem(menu, menu_item, "");
  2730. formatex(menu_item, charsmax(menu_item), "\ySetari joc");
  2731. menu_additem(menu, menu_item, "");
  2732. menu_display(id, menu, 0);
  2733. }
  2734.  
  2735. public stats_handler(id, menu, item)
  2736. {
  2737. if(item == MENU_EXIT)
  2738. {
  2739. menu_destroy(menu);
  2740. return;
  2741. }
  2742.  
  2743. if(!loaded(id))
  2744. return;
  2745.  
  2746. if(item != 5)
  2747. {
  2748. menu_destroy(menu);
  2749. return;
  2750. }
  2751. else
  2752. {
  2753. menu_destroy(menu);
  2754. settings_menu(id);
  2755. return;
  2756. }
  2757. }
  2758.  
  2759. public settings_menu(id)
  2760. {
  2761. new menu, menu_item[128];
  2762. formatex(menu_item, charsmax(menu_item), "\yAlege setari:");
  2763. menu = menu_create(menu_item, "settings_handler");
  2764. formatex(menu_item, charsmax(menu_item), "\rSugestii:\y %s", player_stats[id][hints] == 2 ? "Da" : "Nu");
  2765. menu_additem(menu, menu_item, "");
  2766. formatex(menu_item, charsmax(menu_item), "\rBonus:\y %s", player_stats[id][bonus] == 0 ? "Nu" : bonus_items[player_stats[id][bonus]]);
  2767. menu_additem(menu, menu_item, "");
  2768. menu_display(id, menu, 0);
  2769. }
  2770.  
  2771. public settings_handler(id, menu, item)
  2772. {
  2773. if(item == MENU_EXIT)
  2774. {
  2775. menu_destroy(menu);
  2776. return;
  2777. }
  2778.  
  2779. if(!loaded(id))
  2780. {
  2781. menu_destroy(menu);
  2782. return;
  2783. }
  2784.  
  2785. switch(item)
  2786. {
  2787. case 0:
  2788. {
  2789. if(player_stats[id][hints] == 2)
  2790. {
  2791. color(id, ".v%s.g Ti-am dezactivat sugestiile!", TAG);
  2792. player_stats[id][hints] = 1;
  2793. }
  2794. else
  2795. {
  2796. color(id, ".v%s.g Ti-am activat sugestiile!", TAG);
  2797. player_stats[id][hints] = 2;
  2798. }
  2799. }
  2800. case 1:
  2801. {
  2802. menu_destroy(menu);
  2803. bonus_menu(id);
  2804. return;
  2805. }
  2806. }
  2807. menu_destroy(menu);
  2808. return;
  2809. }
  2810.  
  2811. public message_weappickup(msg_id, msg_dest, msg_entity)
  2812. {
  2813. if(get_user_team(msg_entity) == 1)
  2814. return PLUGIN_HANDLED;
  2815.  
  2816. return PLUGIN_CONTINUE;
  2817. }
  2818.  
  2819. public message_ammopickup(msg_id, msg_dest, msg_entity)
  2820. {
  2821. if(get_user_team(msg_entity) == 1)
  2822. return PLUGIN_HANDLED;
  2823.  
  2824. return PLUGIN_CONTINUE;
  2825. }
  2826.  
  2827. public reset_bet(id)
  2828. {
  2829. g_betplayer[id][0] = 0; // id player pariat
  2830. g_betplayer[id][1] = 0; // suma id player pariat
  2831. g_betplayer[id][2] = 0; // echipa pariata
  2832. g_betplayer[id][3] = 0; // stadiul pariului 1 - pariu facut, 2 - pariu castigat, 3 - pariu pierdut
  2833. }
  2834.  
  2835. public fw_clientkill()
  2836. return FMRES_SUPERCEDE;
  2837.  
  2838. public slot_cmd(id)
  2839. {
  2840. if(!loaded(id))
  2841. return PLUGIN_HANDLED;
  2842.  
  2843. if(player_data[id][minutes] < 600)
  2844. {
  2845. color(id, ".v%s.g Pentru a putea sa-ti inregistrezi numele este necesar sa joci.e 10 ore.g!", TAG);
  2846. return PLUGIN_HANDLED;
  2847. }
  2848.  
  2849. if(get_user_flags(id) & SLOT_FLAG)
  2850. {
  2851. color(id, ".v%s.g Acest nume este inregistrat!", TAG);
  2852. return PLUGIN_HANDLED;
  2853. }
  2854.  
  2855. client_cmd(id, "messagemode PASSWORD_SLOT");
  2856. color(id, ".v%s.g Parola ta trebuie sa contina doar litere si maxim 14 caractere!", TAG);
  2857. color(id, ".v%s.g Scrie parola ta!", TAG);
  2858. return PLUGIN_HANDLED;
  2859. }
  2860.  
  2861. public timeplayed_cmd(id)
  2862. {
  2863. if(!loaded(id))
  2864. return PLUGIN_HANDLED;
  2865.  
  2866. color(id, ".v%s.g Ai jucat.e %s.g!", TAG, convert_minutes(id));
  2867. return PLUGIN_HANDLED;
  2868. }
  2869.  
  2870. public client_infochanged(id)
  2871. {
  2872. new name[32];
  2873. get_user_info(id, "name", name, charsmax(name));
  2874. if(!(equali(name, player_data[id][user_name])))
  2875. {
  2876. set_data(id);
  2877. copy(player_data[id][user_name], 31, name);
  2878. }
  2879. }
  2880.  
  2881. public vip_menu(id)
  2882. {
  2883. if(!loaded(id))
  2884. return PLUGIN_HANDLED;
  2885.  
  2886. if(player_data[id][isvip] < 3)
  2887. {
  2888. color(id, ".v%s.g Trebuie sa fii.e VIP Platina.g!", TAG);
  2889. return PLUGIN_HANDLED;
  2890. }
  2891. new menu = menu_create("\rVIP Platina", "vip_handler"), menu_item[127];
  2892. if(player_data[id][tagname][0])
  2893. formatex(menu_item, charsmax(menu_item), "\ySeteaza TAG [\r%s\y]", player_data[id][tagname]);
  2894. else
  2895. formatex(menu_item, charsmax(menu_item), "\ySeteaza TAG");
  2896.  
  2897. menu_additem(menu, menu_item, "");
  2898. if(player_data[id][custom_message][0])
  2899. formatex(menu_item, charsmax(menu_item), "\ySeteaza mesaj^n\r%s", player_data[id][custom_message]);
  2900. else
  2901. formatex(menu_item, charsmax(menu_item), "\ySeteaza mesaj");
  2902. menu_additem(menu, menu_item, "");
  2903. menu_display(id, menu, 0);
  2904. return PLUGIN_HANDLED;
  2905. }
  2906.  
  2907. public vip_handler(id, menu, item)
  2908. {
  2909. if(item == MENU_EXIT)
  2910. {
  2911. menu_destroy(menu);
  2912. return PLUGIN_HANDLED;
  2913. }
  2914.  
  2915. if(!loaded(id))
  2916. {
  2917. menu_destroy(menu);
  2918. return PLUGIN_HANDLED;
  2919. }
  2920.  
  2921. if(player_data[id][isvip] < 3)
  2922. {
  2923. color(id, ".v%s.g Trebuie sa fii.e VIP Platina.g!", TAG);
  2924. menu_destroy(menu);
  2925. return PLUGIN_HANDLED;
  2926. }
  2927. switch(item)
  2928. {
  2929. case 0: client_cmd(id, "messagemode TAG_NAME");
  2930. case 1: client_cmd(id, "messagemode CUSTOM_ENTER_MSG");
  2931. }
  2932. menu_destroy(menu);
  2933. return PLUGIN_HANDLED;
  2934. }
  2935.  
  2936. public tag_for_vips(id)
  2937. {
  2938. if(!loaded(id))
  2939. return PLUGIN_HANDLED;
  2940.  
  2941. if(player_data[id][isvip] < 3)
  2942. {
  2943. color(id, ".v%s.g Trebuie sa fii.e VIP Platina.g!", TAG);
  2944. return PLUGIN_HANDLED;
  2945. }
  2946.  
  2947. new fgmeroare[9];
  2948. read_argv(1, fgmeroare, charsmax(fgmeroare));
  2949. remove_quotes(fgmeroare);
  2950. new doamne = strlen(fgmeroare);
  2951. if(doamne > 9)
  2952. {
  2953. color(id, ".v%s.g Tag-ul tau are peste 9 litere!!", TAG);
  2954. return PLUGIN_HANDLED;
  2955. }
  2956. if(is_valid_text(fgmeroare))
  2957. {
  2958. formatex(player_data[id][tagname], 9, "%s", fgmeroare);
  2959. color(id, ".v%s.g Ai setat.e %s.g tag!", TAG, fgmeroare);
  2960. return PLUGIN_HANDLED;
  2961. }
  2962. else
  2963. {
  2964. color(id, ".v%s.g Tag-ul tau nu este conform regulilor!", TAG);
  2965. color(id, ".v%s.g Tag-ul trebuie sa fie maxim 9 caractere si sa contina doar litere si spatiu!", TAG);
  2966. return PLUGIN_HANDLED;
  2967. }
  2968. return PLUGIN_HANDLED;
  2969. }
  2970.  
  2971. public enter_msg_vips(id)
  2972. {
  2973. if(!loaded(id))
  2974. return PLUGIN_HANDLED;
  2975.  
  2976. if(player_data[id][isvip] < 3)
  2977. {
  2978. color(id, ".v%s.g Trebuie sa fii.e VIP Platina.g!", TAG);
  2979. return PLUGIN_HANDLED;
  2980. }
  2981.  
  2982. new fgmeroare[27];
  2983. read_argv(1, fgmeroare, charsmax(fgmeroare));
  2984. remove_quotes(fgmeroare);
  2985. new doamne = strlen(fgmeroare);
  2986. if(doamne > 26)
  2987. {
  2988. color(id, ".v%s.g Mesajul tau de intrare are mai mult de 26 de caractere!", TAG);
  2989. return PLUGIN_HANDLED;
  2990. }
  2991. if(!is_valid_text(fgmeroare))
  2992. {
  2993. color(id, ".v%s.g Mesajul tau de intrare nu corespunde regulamentului!", TAG);
  2994. color(id, ".v%s.g Doar litere si spatii si maximul de caractere sa fie 26!", TAG);
  2995. return PLUGIN_HANDLED;
  2996. }
  2997. copy(player_data[id][custom_message], 26, fgmeroare);
  2998. color(id, ".v%s.g Ai setat.e %s.g ca mesaj de intrare!", TAG, fgmeroare);
  2999. return PLUGIN_HANDLED;
  3000. }
  3001.  
  3002. public password_for_slot(id)
  3003. {
  3004. new password[17];
  3005. read_args(password, charsmax(password));
  3006. remove_quotes(password);
  3007. if(!check_string(password))
  3008. {
  3009. color(id, ".v%s.g Parola ta trebuie sa contina doar litere!", TAG);
  3010. return PLUGIN_HANDLED;
  3011. }
  3012. register_slot(id, password);
  3013. return PLUGIN_HANDLED;
  3014. }
  3015.  
  3016. public unlock_nade(taskid)
  3017. {
  3018. if(!flag_get(g_isconnected, ID_THROW_HE))
  3019. return;
  3020.  
  3021. flag_unset(g_locknade, ID_THROW_HE)
  3022. }
  3023.  
  3024. public increase_minutes(taskid)
  3025. {
  3026. if(get_user_team(ID_MINUTES) == 0 || get_user_team(ID_MINUTES) == 3 || !flag_get(g_loaded, ID_MINUTES))
  3027. return;
  3028.  
  3029. player_data[ID_MINUTES][minutes]++;
  3030.  
  3031. new ore_reale = player_data[ID_MINUTES][minutes] / 60;
  3032. if(isdigit(ore_reale) && player_stats[ID_MINUTES][hints] == 2)
  3033. {
  3034. set_hudmessage(255, 85, 255, 0.0, 0.64, 1, 3.1, 3.0);
  3035. ShowSyncHudMsg(ID_MINUTES, g_synchudh, "Pentru inregistrarea numelui este nevoie de 10 ore jucate! Comanda /register pe chat!");
  3036. }
  3037.  
  3038. if(player_stats[ID_MINUTES][gag])
  3039. {
  3040. player_stats[ID_MINUTES][gag]--;
  3041. if(player_stats[ID_MINUTES][gag] == 0)
  3042. color(ID_MINUTES, ".v%s.g Restrictionarea de pe chat a fost dezactivata!", TAG);
  3043. }
  3044. }
  3045.  
  3046. public took_data(id)
  3047. {
  3048. if(flag_get(g_loaded, id) || !flag_get(g_isconnected, id))
  3049. return;
  3050.  
  3051. new vaultkey[64], vaultdata[256];
  3052. formatex(vaultkey, charsmax(vaultkey), "^"%s^"", player_data[id][user_name]);
  3053. formatex(vaultdata, charsmax(vaultdata), "^"%i^" ^"%s^" ^"%s^"", player_data[id][minutes], player_data[id][tagname], player_data[id][custom_message]);
  3054.  
  3055. nvault_get(g_vault, vaultkey, vaultdata, 255);
  3056.  
  3057. new str_minutes[10], str_tag[10], str_custom[27];
  3058. parse(vaultdata, str_minutes, charsmax(str_minutes), str_tag, charsmax(str_tag), str_custom, charsmax(str_custom));
  3059. player_data[id][minutes] = str_to_num(str_minutes);
  3060. copy(player_data[id][tagname], 9, str_tag);
  3061. copy(player_data[id][custom_message], 26, str_custom);
  3062.  
  3063. formatex(vaultdata, charsmax(vaultdata), "^"%i^" ^"%s^" ^"%i^" ^"%s^" ^"%s^" ^"%i^" ^"%i^" ^"%i^"", player_stats[id][hints], player_stats[id][lastconnect], player_stats[id][gag], player_stats[id][gagadmin], player_stats[id][gagreason], player_stats[id][gagtimes], player_stats[id][badlang], player_stats[id][bonus]);
  3064.  
  3065. nvault_get(g_anothervault, vaultkey, vaultdata, 255);
  3066.  
  3067. new str_hints[2], str_lc[17], str_gag[4], str_gagadm[32], str_gagr[17], str_gagtimes[3], str_badlang[2], str_bonus[2];
  3068. parse(vaultdata, str_hints, charsmax(str_hints), str_lc, charsmax(str_lc), str_gag, charsmax(str_gag), str_gagadm, charsmax(str_gagadm), str_gagr, charsmax(str_gagr), str_gagtimes, charsmax(str_gagtimes), str_badlang, charsmax(str_badlang), str_bonus, charsmax(str_bonus));
  3069. player_stats[id][hints] = str_to_num(str_hints);
  3070. if(player_stats[id][hints] == 0)
  3071. player_stats[id][hints] = 2;
  3072.  
  3073. copy(player_stats[id][lastconnect], 16, str_lc);
  3074. player_stats[id][gag] = str_to_num(str_gag);
  3075. copy(player_stats[id][gagadmin], 31, str_gagadm);
  3076. copy(player_stats[id][gagreason], 16, str_gagr);
  3077. player_stats[id][gagtimes] = str_to_num(str_gagtimes);
  3078. player_stats[id][badlang] = str_to_num(str_badlang);
  3079. player_stats[id][bonus] = str_to_num(str_bonus);
  3080.  
  3081. flag_set(g_loaded, id)
  3082.  
  3083. if(player_data[id][isvip] == 3 && player_data[id][custom_message])
  3084. color(0, ".e%s.g -.v %s.g", player_data[id][user_name], player_data[id][custom_message]);
  3085.  
  3086. color(id, ".vSalut.e %s.v! Bine ai venit pe.e %s.g!", player_data[id][user_name], g_servername);
  3087. color(id, ".vDaca doresti sa ai acest server in lista ta favorita, adauga.e %s.g!", g_servername);
  3088. }
  3089.  
  3090. public set_data(id)
  3091. {
  3092. if(!flag_get(g_loaded, id))
  3093. return;
  3094.  
  3095. new vaultkey[64], vaultdata[256];
  3096. formatex(vaultkey, charsmax(vaultkey), "^"%s^"", player_data[id][user_name]);
  3097. formatex(vaultdata, charsmax(vaultdata), "^"%i^" ^"%s^" ^"%s^"", player_data[id][minutes], player_data[id][tagname], player_data[id][custom_message]);
  3098. nvault_set(g_vault, vaultkey, vaultdata);
  3099.  
  3100. get_time("%d.%m.%Y/%H:%M", player_stats[id][lastconnect], 16);
  3101. formatex(vaultdata, charsmax(vaultdata), "^"%i^" ^"%s^" ^"%i^" ^"%s^" ^"%s^" ^"%i^" ^"%i^" ^"%i^"", player_stats[id][hints], player_stats[id][lastconnect], player_stats[id][gag], player_stats[id][gagadmin], player_stats[id][gagreason], player_stats[id][gagtimes], player_stats[id][badlang], player_stats[id][bonus]);
  3102. nvault_set(g_anothervault, vaultkey, vaultdata);
  3103. }
  3104.  
  3105. public init_player(id, disconnect)
  3106. {
  3107. switch(disconnect)
  3108. {
  3109. case 0:
  3110. {
  3111. get_user_name(id, player_data[id][user_name], 31);
  3112.  
  3113. flag_set(g_isconnected, id)
  3114. flag_unset(g_isalive, id)
  3115. flag_unset(g_isfurien, id)
  3116. flag_unset(g_loaded, id)
  3117.  
  3118. set_task(0.5, "HealthHud", id+TASK_HUD, _, _, "b");
  3119.  
  3120. if(get_user_flags(id) & VIP_FLAG_PLATINUM)
  3121. player_data[id][isvip] = 3;
  3122. else if(get_user_flags(id) & VIP_FLAG_GOLD)
  3123. player_data[id][isvip] = 2;
  3124. else if(get_user_flags(id) & VIP_FLAG_SILVER)
  3125. player_data[id][isvip] = 1;
  3126. else
  3127. {
  3128. if(g_freevip)
  3129. player_data[id][isvip] = 1;
  3130. else
  3131. player_data[id][isvip] = 0;
  3132. }
  3133. }
  3134. case 1:
  3135. {
  3136. player_data[id][isvip] = 0;
  3137.  
  3138. flag_unset(g_loaded, id)
  3139. flag_unset(g_isfurien, id)
  3140. flag_unset(g_isalive, id)
  3141. flag_unset(g_isconnected, id)
  3142.  
  3143. remove_task(id+TASK_THROW_HE);
  3144. remove_task(id+TASK_DELAY_SHOP);
  3145. remove_task(id+TASK_HUD);
  3146. }
  3147. }
  3148.  
  3149. player_data[id][blockbuy] = false;
  3150. jumpnum[id] = 0;
  3151. dojump[id] = false;
  3152.  
  3153. g_gunsselect[id] = 0;
  3154. g_primary_select[id] = 0;
  3155. g_secondary_select[id] = 0;
  3156. flag_unset(g_cmdguns, id)
  3157.  
  3158. flag_unset(g_lockshop, id)
  3159. flag_unset(g_locknade, id)
  3160.  
  3161. player_data[id][minutes] = 0;
  3162. player_data[id][money] = 500;
  3163. player_data[id][bonuskill] = 0;
  3164. player_stats[id][gag] = 0;
  3165. player_stats[id][badlang] = 0;
  3166. player_stats[id][gagtimes] = 0;
  3167. player_stats[id][bonus] = 0;
  3168. player_stats[id][hints] = 0;
  3169.  
  3170. reset_bet(id);
  3171. reset_transfer(id);
  3172. if(para_ent[id] > 0)
  3173. {
  3174. remove_entity(para_ent[id]);
  3175. para_ent[id] = 0;
  3176. }
  3177. }
  3178.  
  3179. public register_slot(id, const password[])
  3180. {
  3181. new line[192], conf[128];
  3182. formatex(line, charsmax(line), "^"%s^" ^"%s^" ^"b^" ^"a^" ; inregistrat", player_data[id][user_name], password);
  3183.  
  3184. get_configsdir(conf, charsmax(conf));
  3185. formatex(conf, charsmax(conf), "%s/users.ini", conf);
  3186. write_file(conf, line, -1);
  3187. color(id, ".v%s.g Numele tau a fost inregistrat!", TAG);
  3188. color(id, ".v%s.g Parola ta este:.e %s.g!", TAG, password);
  3189. client_cmd(id, "snapshot");
  3190. set_user_info(id, FIELD, password);
  3191. color(0, ".v%s.e %s.g si-a luat slot!", TAG, player_data[id][user_name]);
  3192. server_cmd("amx_reloadadmins");
  3193. }
  3194.  
  3195. public client_impulse(id, impulse)
  3196. {
  3197. if(impulse == 201)
  3198. {
  3199. client_print(id, print_center, "Nu poti folosi spray-ul...");
  3200. return PLUGIN_HANDLED;
  3201. }
  3202.  
  3203. if(impulse == 100)
  3204. {
  3205. stats_menu(id);
  3206. return PLUGIN_HANDLED;
  3207. }
  3208.  
  3209. return PLUGIN_CONTINUE;
  3210. }
  3211.  
  3212. public fwd_syserror()
  3213. plugin_end();
  3214.  
  3215. public beneficii_cmd(id)
  3216. {
  3217. if(!loaded(id))
  3218. return PLUGIN_CONTINUE;
  3219.  
  3220. new menu, menu_item[512];
  3221. formatex(menu_item, charsmax(menu_item), "\yAlege un tip de membru!");
  3222. menu = menu_create(menu_item, "beneficii_handler");
  3223. menu_additem(menu, "\rMembru Platina", "");
  3224. menu_additem(menu, "\rMembru Gold", "");
  3225. menu_additem(menu, "\rMembru Silver", "");
  3226.  
  3227. menu_display(id, menu, 0);
  3228. return PLUGIN_CONTINUE;
  3229. }
  3230.  
  3231. public beneficii_handler(id, menu, item)
  3232. {
  3233. if(item == MENU_EXIT)
  3234. {
  3235. menu_destroy(menu);
  3236. return PLUGIN_HANDLED;
  3237. }
  3238.  
  3239. menu_destroy(menu);
  3240. members_menu(id, item);
  3241. return PLUGIN_HANDLED;
  3242. }
  3243.  
  3244. public members_menu(id, type)
  3245. {
  3246. if(!loaded(id))
  3247. return PLUGIN_CONTINUE;
  3248.  
  3249. new menu, menu_item[512];
  3250. formatex(menu_item, charsmax(menu_item), "%s%s%s", vip_benefits[type][0], vip_benefits[type][1], vip_benefits[type][2]);
  3251. menu = menu_create(menu_item, "members_handler");
  3252.  
  3253. formatex(menu_item, charsmax(menu_item), "\rAchizitioneaza");
  3254. menu_additem(menu, menu_item, "");
  3255.  
  3256. menu_display(id, menu, 0);
  3257. return PLUGIN_CONTINUE;
  3258. }
  3259.  
  3260. public members_handler(id, menu, item)
  3261. {
  3262. if(item == MENU_EXIT)
  3263. {
  3264. menu_destroy(menu);
  3265. return PLUGIN_HANDLED;
  3266. }
  3267.  
  3268. if(item == 0)
  3269. {
  3270. menu_destroy(menu);
  3271. new buymenu, menuitem[512];
  3272. formatex(menuitem, charsmax(menuitem), "%s%s%s", vip_benefits[3][0], vip_benefits[3][1], vip_benefits[3][2])
  3273. buymenu = menu_create(menuitem, "benefits_handler");
  3274. menu_additem(buymenu, "\rOk.", "");
  3275. menu_display(id, buymenu, 0);
  3276. return PLUGIN_HANDLED;
  3277. }
  3278.  
  3279. menu_destroy(menu);
  3280. return PLUGIN_HANDLED;
  3281. }
  3282.  
  3283. public benefits_handler(id, menu, item)
  3284. {
  3285. menu_destroy(menu);
  3286. return PLUGIN_HANDLED;
  3287. }
  3288.  
  3289. public cmd_gag(id)
  3290. {
  3291. if(!(get_user_flags(id) & ADMIN_KICK))
  3292. {
  3293. console_print(id, "Nu ai acces la aceasta comanda!");
  3294. return PLUGIN_HANDLED;
  3295. }
  3296.  
  3297. new namearg[32], timearg[3], reasonarg[17];
  3298. read_argv(1, namearg, 31);
  3299.  
  3300. new player = cmd_target(id, namearg, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_NO_BOTS);
  3301.  
  3302. if(!player)
  3303. return PLUGIN_HANDLED;
  3304.  
  3305. if(!flag_get(g_loaded, player))
  3306. {
  3307. console_print(id, "%s nu si-a preluat datele!", player_data[player][user_name]);
  3308. return PLUGIN_HANDLED;
  3309. }
  3310.  
  3311. if(player_stats[player][gag])
  3312. {
  3313. console_print(id, "%s are deja gag!", player_data[player][user_name]);
  3314. return PLUGIN_HANDLED;
  3315. }
  3316.  
  3317. read_argv(2, timearg, 2);
  3318.  
  3319. new timpgag = str_to_num(timearg);
  3320.  
  3321. if(timpgag > 99)
  3322. {
  3323. console_print(id, "Nu poti da gag mai mult de 99 de minute!");
  3324. return PLUGIN_HANDLED;
  3325. }
  3326.  
  3327. if(timpgag < 0)
  3328. {
  3329. console_print(id, "Valoarea nu este valida!");
  3330. return PLUGIN_HANDLED;
  3331. }
  3332.  
  3333. read_argv(3, reasonarg, 16);
  3334.  
  3335. if(strlen(reasonarg) < 3)
  3336. {
  3337. console_print(id, "Motivul trebuie sa aibe minim 3 litere!");
  3338. return PLUGIN_HANDLED;
  3339. }
  3340.  
  3341. player_stats[player][gag] = timpgag;
  3342. player_stats[player][gagtimes]++;
  3343. player_stats[player][badlang] = 0;
  3344. copy(player_stats[player][gagadmin], 31, player_data[id][user_name]);
  3345. copy(player_stats[player][gagreason], 16, reasonarg);
  3346. color(0, ".v%s.g ADMIN.e %s.g a restrictionat chat-ul lui.e %s.g!", TAG, player_data[id][user_name], player_data[player][user_name]);
  3347. color(id, ".v%s.g Restrictionarea dureaza:.e %d minute.g! Motiv:.e %s.g!", TAG, timpgag, reasonarg);
  3348. return PLUGIN_HANDLED;
  3349. }
  3350.  
  3351. public cmd_ungag(id)
  3352. {
  3353. if(!(get_user_flags(id) & ADMIN_KICK))
  3354. {
  3355. console_print(id, "Nu ai acces la aceasta comanda!");
  3356. return PLUGIN_HANDLED;
  3357. }
  3358.  
  3359. new namearg[32];
  3360. read_argv(1, namearg, 31);
  3361.  
  3362. new player = cmd_target(id, namearg, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_NO_BOTS);
  3363.  
  3364. if(!player)
  3365. return PLUGIN_HANDLED;
  3366.  
  3367. if(!flag_get(g_loaded, player))
  3368. {
  3369. console_print(id, "%s nu si-a preluat datele!", player_data[player][user_name]);
  3370. return PLUGIN_HANDLED;
  3371. }
  3372.  
  3373. if(!player_stats[player][gag])
  3374. {
  3375. console_print(id, "%s nu are gag!", player_data[player][user_name]);
  3376. return PLUGIN_HANDLED;
  3377. }
  3378.  
  3379. player_stats[player][gag] = 0;
  3380. color(0, ".v%s.g ADMIN.e %s.g a deblocat accesul la chat-ul lui.e %s.g!", TAG, player_data[id][user_name], player_data[player][user_name]);
  3381. return PLUGIN_HANDLED;
  3382. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement