HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. /*=============================================================================R=E=Y=M=O=N==A=R=G=*/
  2. /* Create By ReymonARG */
  3. /* */
  4. /* Alls bugs report by MsN or Email To webmaster@djreymon.com */
  5. /* */
  6. /* More Information: http://forums.alliedmods.net/showthread.php?t=75606 */
  7. /* */
  8. /* This is the Version 5.6 Beta of This plugins visit the web for New Versions */
  9. /* */
  10. /* New Version Dedicate to AeroCs Servers. */
  11. /* */
  12. /* Last Mod Modificate 04/12/2008 */
  13. /* */
  14. /*=============================================================================R=E=Y=M=O=N==A=R=G=*/
  15.  
  16. /*================================================================================================*/
  17. /***************************** [Includes & Defines & Arays] ***************************************/
  18. /*=============================================================================R=E=Y=M=O=N==A=R=G=*/
  19. /*
  20.   Fordította: BBk
  21. */
  22.  
  23. #include <amxmodx>
  24. #include <amxmisc>
  25. #include <fakemeta>
  26. #include <hamsandwich>
  27.  
  28. /*-------------DONT CHANGE-------------*/
  29. #define PLUGIN "WarmUP Pro"
  30. #define VERSION "5.6 Beta"
  31. #define AUTHOR "ReymonARG"
  32. /*-------------DONT CHANGE-------------*/
  33.  
  34. #define time_delay 1
  35.  
  36. #define ITEM_HE (1<<0) // "a"
  37. #define ITEM_FS (1<<1) // "b"
  38. #define ITEM_SG (1<<2) // "c"
  39. #define ITEM_C4 (1<<3) // "d"
  40.  
  41. #define HIDE_MONEY (1<<5) // Disable Hud of Money
  42. #define SHOW_MONEY (1<<7) // Enable Hud of Money
  43.  
  44. new num_time, sync, time_s, activadoo, respawn3d, itemsxd, RGB, cvar_x, cvar_y, mode, timeprotect,
  45. ganador, mostrarhud, logtofilecvar
  46.  
  47. new bool:g_is_dead[33];
  48. new bool:g_can_respawn;
  49. new bool:g_cuchi;
  50. new bool:g_items;
  51. new bool:wup_on;
  52. new bool:g_is_connect[33];
  53. new bool:g_is_autofile;
  54. new bool:g_mapexist_file;
  55. new g_ganadores[33];
  56. new const LOGFILE[] = "warmuppro.log"
  57. new const FILECONFIGNAME[] = "/warmuppro.cfg"
  58. new const FILEMAPSNAME[] = "/warmuppro_maps.cfg"
  59.  
  60. #define FLAG_ALIVE (1<<0)
  61. #define FLAG_DEAD (1<<1)
  62. #define FLAG_DISCONNECT (1<<2)
  63.  
  64. #define FLAG_T (1<<0)
  65. #define FLAG_CT (1<<1)
  66.  
  67. #define DEFUSER 0
  68. #define SHIELD 2
  69.  
  70. #define CONTAIN_FLAG_OF_INDEX(%1,%2) ((%1) & (1<<(%2)))
  71.  
  72. new const g_wbox_class[] = "weaponbox"
  73. new const g_shield_class[] = "weapon_shield"
  74. new const g_wbox_model[] = "models/w_weaponbox.mdl"
  75. new const g_model_prefix[] = "models/w_"
  76.  
  77. new g_max_clients
  78. new g_max_entities
  79.  
  80. new g_pcvar_allow
  81.  
  82. /* Foawrds */
  83. new fwd_resultado;
  84. new wup_fwd_start;
  85. new wup_fwd_finish;
  86. new wup_fwd_adminenable;
  87. new wup_fwd_admindsaible;
  88.  
  89. /* Variables for Stocks */
  90. new moneymsg;
  91. new statusiconmsg;
  92. new saytextmsg;
  93. new hideweaponmsg;
  94. new teaminfomsg;
  95.  
  96. /*================================================================================================*/
  97. /************************************* [OFFSETS FAKEMETA] *****************************************/
  98. /*=============================================================================R=E=Y=M=O=N==A=R=G=*/
  99.  
  100. #define EXTRAOFFSET_WEAPONS 4
  101. #define ACTUAL_EXTRA_OFFSET 20
  102.  
  103. #define OFFSET_ARMORTYPE 112
  104. #define OFFSET_TEAM 114
  105. #define OFFSET_CSMONEY 115
  106. #define OFFSET_PRIMARYWEAPON 116
  107. #define OFFSET_LASTACTIVITY 124
  108. #define OFFSET_INTERNALMODEL 126
  109. #define OFFSET_NVGOGGLES 129
  110. #define OFFSET_DEFUSE_PLANT 193
  111. #define OFFSET_VIP 209
  112. #define OFFSET_TK 216
  113. #define OFFSET_HOSTAGEKILLS 217
  114. #define OFFSET_MAPZONE 235
  115. #define OFFSET_ISDRIVING 350
  116. #define OFFSET_STATIONARY 362
  117. #define OFFSET_ZOOMTYPE 363
  118.  
  119. #define OFFSET_AWM_AMMO 377
  120. #define OFFSET_SCOUT_AMMO 378
  121. #define OFFSET_PARA_AMMO 379
  122. #define OFFSET_FAMAS_AMMO 380
  123. #define OFFSET_M3_AMMO 381
  124. #define OFFSET_USP_AMMO 382
  125. #define OFFSET_FIVESEVEN_AMMO 383
  126. #define OFFSET_DEAGLE_AMMO 384
  127. #define OFFSET_P228_AMMO 385
  128. #define OFFSET_GLOCK_AMMO 386
  129. #define OFFSET_FLASH_AMMO 387
  130. #define OFFSET_HE_AMMO 388
  131. #define OFFSET_SMOKE_AMMO 389
  132. #define OFFSET_C4_AMMO 390
  133.  
  134. #define OFFSET_CSDEATHS 444
  135. #define OFFSET_SHIELD 510
  136. // "weapon_*" entities
  137. #define OFFSET_WEAPONTYPE 43
  138. #define OFFSET_CLIPAMMO 51
  139. #define OFFSET_SILENCER_FIREMODE 74
  140. // "hostage_entity" entities
  141. #define OFFSET_HOSTAGEFOLLOW 86
  142. #define OFFSET_HOSTAGE_NEXTUSE 100
  143. #define OFFSET_HOSTAGE_LASTUSE 483
  144. #define OFFSET_HOSTAGEID 487
  145. // "armoury_entity"
  146. #define OFFSET_ARMOURY_TYPE 34
  147. // C4 offsets
  148. #define OFFSET_C4_EXPLODE_TIME 100
  149. #define OFFSET_C4_DEFUSING 0x181
  150.  
  151. #define M4A1_SILENCED (1<<2)
  152. #define M4A1_ATTACHSILENCEANIM 6
  153. #define M4A1_DETACHSILENCEANIM 13
  154. #define USP_SILENCED (1<<0)
  155. #define USP_ATTACHSILENCEANIM 7
  156. #define USP_DETACHSILENCEANIM 15
  157.  
  158. #define GLOCK_SEMIAUTOMATIC 0
  159. #define GLOCK_BURSTMODE 2
  160. #define FAMAS_AUTOMATIC 0
  161. #define FAMAS_BURSTMODE 16
  162.  
  163. #define PLAYER_IS_VIP (1<<8)
  164.  
  165. #define PLAYER_IN_BUYZONE (1<<0)
  166.  
  167. #define TEAM_UNASSIGNED 0
  168. #define TEAM_T 1
  169. #define TEAM_CT 2
  170. #define TEAM_SPECTATOR 3
  171.  
  172. #define CAN_PLANT_BOMB (1<<8)
  173. #define HAS_DEFUSE_KIT (1<<16)
  174.  
  175. #define DEFUSER_COLOUR_R 0
  176. #define DEFUSER_COLOUR_G 160
  177. #define DEFUSER_COLOUR_B 0
  178.  
  179. #define HAS_NVGOGGLES (1<<0)
  180. #define HAS_SHIELD (1<<24)
  181.  
  182. #define SCOREATTRIB_NOTHING 0
  183. #define SCOREATTRIB_DEAD 1
  184. #define SCOREATTRIB_BOMB 2
  185. #define SCOREATTRIB_VIP 4
  186.  
  187. #define CS_FIRST_ZOOM 0x28
  188. #define CS_SECOND_AWP_ZOOM 0xA
  189. #define CS_SECOND_NONAWP_ZOOM 0xF
  190. #define CS_AUGSG552_ZOOM 0x37
  191. #define CS_NO_ZOOM 0x5A
  192.  
  193.  
  194. /*------------------------------------------------------------------------------------------------*/
  195.  
  196. enum CS_Internal_Models
  197. {
  198. CS_DONTCHANGE = 0,
  199. CS_CT_URBAN = 1,
  200. CS_T_TERROR = 2,
  201. CS_T_LEET = 3,
  202. CS_T_ARCTIC = 4,
  203. CS_CT_GSG9 = 5,
  204. CS_CT_GIGN = 6,
  205. CS_CT_SAS = 7,
  206. CS_T_GUERILLA = 8,
  207. CS_CT_VIP = 9,
  208. CZ_T_MILITIA = 10,
  209. CZ_CT_SPETSNAZ = 11
  210. };
  211.  
  212. enum CsTeams
  213. {
  214. CS_TEAM_UNASSIGNED = 0,
  215. CS_TEAM_T = 1,
  216. CS_TEAM_CT = 2,
  217. CS_TEAM_SPECTATOR = 3
  218. };
  219.  
  220.  
  221. enum CsArmorType
  222. {
  223. CS_ARMOR_NONE = 0,
  224. CS_ARMOR_KEVLAR = 1,
  225. CS_ARMOR_VESTHELM = 2
  226. };
  227.  
  228. /*================================================================================================*/
  229. /***************************************** [Stocks] ***********************************************/
  230. /*=============================================================================R=E=Y=M=O=N==A=R=G=*/
  231.  
  232. #define fm_create_entity(%1) engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, %1))
  233.  
  234. stock fm_strip_user_weapons(index) {
  235. new ent = fm_create_entity("player_weaponstrip")
  236. if (!pev_valid(ent))
  237. return 0
  238.  
  239. dllfunc(DLLFunc_Spawn, ent)
  240. dllfunc(DLLFunc_Use, ent, index)
  241. engfunc(EngFunc_RemoveEntity, ent)
  242.  
  243. return 1
  244. }
  245.  
  246. stock fm_give_item(index, const item[]) {
  247. if (!equal(item, "weapon_", 7) && !equal(item, "ammo_", 5) && !equal(item, "item_", 5) && !equal(item, "tf_weapon_", 10))
  248. return 0
  249.  
  250. new ent = fm_create_entity(item)
  251. if (!pev_valid(ent))
  252. return 0
  253.  
  254. new Float:origin[3]
  255. pev(index, pev_origin, origin)
  256. set_pev(ent, pev_origin, origin)
  257. set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN)
  258. dllfunc(DLLFunc_Spawn, ent)
  259.  
  260. new save = pev(ent, pev_solid)
  261. dllfunc(DLLFunc_Touch, ent, index)
  262. if (pev(ent, pev_solid) != save)
  263. return ent
  264.  
  265. engfunc(EngFunc_RemoveEntity, ent)
  266.  
  267. return -1
  268. }
  269.  
  270. stock fm_set_rendering(entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16) {
  271. new Float:RenderColor[3];
  272. RenderColor[0] = float(r);
  273. RenderColor[1] = float(g);
  274. RenderColor[2] = float(b);
  275.  
  276. set_pev(entity, pev_renderfx, fx);
  277. set_pev(entity, pev_rendercolor, RenderColor);
  278. set_pev(entity, pev_rendermode, render);
  279. set_pev(entity, pev_renderamt, float(amount));
  280.  
  281. return 1;
  282. }
  283.  
  284. stock fm_set_user_godmode(index, godmode = 0) {
  285. set_pev(index, pev_takedamage, godmode == 1 ? DAMAGE_NO : DAMAGE_AIM);
  286.  
  287. return 1;
  288. }
  289.  
  290. stock fm_set_user_money(index, money, flash = 1)
  291. {
  292. set_pdata_int(index, OFFSET_CSMONEY, money);
  293.  
  294. message_begin(MSG_ONE, moneymsg, {0,0,0}, index);
  295. write_long(money);
  296. write_byte(flash ? 1 : 0);
  297. message_end();
  298. }
  299.  
  300. stock fm_set_user_plant(id, plant = 1, showbombicon = 1)
  301. {
  302. new plantskill = get_pdata_int(id, OFFSET_DEFUSE_PLANT);
  303.  
  304. if(plant)
  305. {
  306. plantskill |= CAN_PLANT_BOMB;
  307. set_pdata_int(id, OFFSET_DEFUSE_PLANT, plantskill);
  308.  
  309. if(showbombicon)
  310. {
  311. message_begin(MSG_ONE, statusiconmsg, _, id);
  312. write_byte(1);
  313. write_string("c4");
  314. write_byte(DEFUSER_COLOUR_R);
  315. write_byte(DEFUSER_COLOUR_G);
  316. write_byte(DEFUSER_COLOUR_B);
  317. message_end();
  318. }
  319. }
  320. else
  321. {
  322. plantskill &= ~CAN_PLANT_BOMB;
  323. set_pdata_int(id, OFFSET_DEFUSE_PLANT, plantskill);
  324. message_begin(MSG_ONE, statusiconmsg, _, id);
  325. write_byte(0);
  326. write_string("c4");
  327. message_end();
  328. }
  329. }
  330.  
  331. stock fm_set_user_defuse(id, defusekit = 1, r = DEFUSER_COLOUR_R, g = DEFUSER_COLOUR_G, b = DEFUSER_COLOUR_B, icon[] = "defuser", flash = 0)
  332. {
  333. new defuse = get_pdata_int(id, OFFSET_DEFUSE_PLANT);
  334.  
  335. if(defusekit)
  336. {
  337. new colour[3] = {DEFUSER_COLOUR_R, DEFUSER_COLOUR_G, DEFUSER_COLOUR_B}
  338. if(r != -1) colour[0] = r;
  339. if(g != -1) colour[1] = g;
  340. if(b != -1) colour[2] = b;
  341.  
  342. set_pev(id, pev_body, 1);
  343.  
  344. defuse |= HAS_DEFUSE_KIT;
  345. set_pdata_int(id, OFFSET_DEFUSE_PLANT, defuse);
  346.  
  347. message_begin(MSG_ONE, statusiconmsg, _, id);
  348. write_byte((flash == 1) ? 2 : 1);
  349. write_string(icon[0] ? icon : "defuser");
  350. write_byte(colour[0]);
  351. write_byte(colour[1]);
  352. write_byte(colour[2]);
  353. message_end();
  354. }
  355.  
  356. else
  357. {
  358. defuse &= ~HAS_DEFUSE_KIT;
  359. set_pdata_int(id, OFFSET_DEFUSE_PLANT, defuse);
  360. message_begin(MSG_ONE, statusiconmsg, _, id);
  361. write_byte(0);
  362. write_string("defuser");
  363. message_end();
  364.  
  365. set_pev(id, pev_body, 0);
  366. }
  367. }
  368.  
  369. stock fm_set_user_bpammo(index, weapon, amount)
  370. {
  371. new offset;
  372.  
  373. switch(weapon)
  374. {
  375. case CSW_AWP: offset = OFFSET_AWM_AMMO;
  376. case CSW_SCOUT,CSW_AK47,CSW_G3SG1: offset = OFFSET_SCOUT_AMMO;
  377. case CSW_M249: offset = OFFSET_PARA_AMMO;
  378. case CSW_M4A1,CSW_FAMAS,CSW_AUG,CSW_SG550,CSW_GALI,CSW_SG552: offset = OFFSET_FAMAS_AMMO;
  379. case CSW_M3,CSW_XM1014: offset = OFFSET_M3_AMMO;
  380. case CSW_USP,CSW_UMP45,CSW_MAC10: offset = OFFSET_USP_AMMO;
  381. case CSW_FIVESEVEN,CSW_P90: offset = OFFSET_FIVESEVEN_AMMO;
  382. case CSW_DEAGLE: offset = OFFSET_DEAGLE_AMMO;
  383. case CSW_P228: offset = OFFSET_P228_AMMO;
  384. case CSW_GLOCK18,CSW_MP5NAVY,CSW_TMP,CSW_ELITE: offset = OFFSET_GLOCK_AMMO;
  385. case CSW_FLASHBANG: offset = OFFSET_FLASH_AMMO;
  386. case CSW_HEGRENADE: offset = OFFSET_HE_AMMO;
  387. case CSW_SMOKEGRENADE: offset = OFFSET_SMOKE_AMMO;
  388. case CSW_C4: offset = OFFSET_C4_AMMO;
  389.  
  390. default:
  391. {
  392. new invalidMsg[20 + 7];
  393. formatex(invalidMsg,20 + 6,"Ervenytelen fegyver id %d",weapon);
  394. set_fail_state(invalidMsg);
  395.  
  396. return 0;
  397. }
  398. }
  399.  
  400. set_pdata_int(index,offset,amount);
  401.  
  402. return 1;
  403. }
  404.  
  405. /*-----------------------------------------GET----------------------------------------------------*/
  406.  
  407. stock CsTeams:fm_get_user_team(id, &{CS_Internal_Models,_}:model = CS_DONTCHANGE)
  408. {
  409. model = CS_Internal_Models:get_pdata_int(id, OFFSET_INTERNALMODEL);
  410.  
  411. return CsTeams:get_pdata_int(id, OFFSET_TEAM);
  412. }
  413.  
  414. stock fm_get_weapon_id(weapon_id)
  415. {
  416. if(is_linux_server())
  417. {
  418. #undef EXTRAOFFSET_WEAPONS
  419. #define EXTRAOFFSET_WEAPONS 4
  420. }
  421. else
  422. {
  423. #undef EXTRAOFFSET_WEAPONS
  424. #define EXTRAOFFSET_WEAPONS 0
  425. }
  426.  
  427. return get_pdata_int(weapon_id, OFFSET_WEAPONTYPE, EXTRAOFFSET_WEAPONS)
  428. }
  429.  
  430. stock fm_get_user_plant(id)
  431. {
  432. if(get_pdata_int(id, OFFSET_DEFUSE_PLANT) & CAN_PLANT_BOMB)
  433. return 1;
  434.  
  435. return 0;
  436. }
  437.  
  438. stock fm_get_user_defuse(id)
  439. {
  440. if(get_pdata_int(id, OFFSET_DEFUSE_PLANT) & HAS_DEFUSE_KIT)
  441. return 1;
  442.  
  443. return 0;
  444. }
  445.  
  446. /*------------------------------------------------------------------------------------------------*/
  447. new const g_weapon_names[][] =
  448. {
  449. "", // Null random 1 to X This is 0
  450. "weapon_p228",
  451. "weapon_scout",
  452. "weapon_xm1014",
  453. "weapon_mac10",
  454. "weapon_aug",
  455. "weapon_elite",
  456. "weapon_fiveseven",
  457. "weapon_ump45",
  458. "weapon_sg550",
  459. "weapon_galil",
  460. "weapon_famas",
  461. "weapon_usp",
  462. "weapon_glock18",
  463. "weapon_awp",
  464. "weapon_mp5navy",
  465. "weapon_m249",
  466. "weapon_m3",
  467. "weapon_m4a1",
  468. "weapon_tmp",
  469. "weapon_g3sg1",
  470. "weapon_deagle",
  471. "weapon_sg552",
  472. "weapon_ak47",
  473. "weapon_p90"
  474. };
  475.  
  476. /*-------------------------------------------*/
  477. /*-----------WARMPUP GIVE WEAPON-------------*/
  478. /*-------------------------------------------*/
  479. stock wup_give_weapon(index, weapon[], balas)
  480. {
  481. fm_give_item(index, weapon);
  482. new wpnid = get_weaponid(weapon)
  483. fm_set_user_bpammo(index, wpnid, balas)
  484. }
  485. /*-------------------------------------------*/
  486. /*-----------WARMPUP GIVE WEAPON-------------*/
  487. /*-------------------------------------------*/
  488.  
  489.  
  490. /*================================================================================================*/
  491. /*************************************** [Color Chat] *********************************************/
  492. /*=============================================================================R=E=Y=M=O=N==A=R=G=*/
  493.  
  494.  
  495. enum Color
  496. {
  497. NORMAL = 1, // clients scr_concolor cvar color
  498. GREEN, // Green Color
  499. TEAM_COLOR, // Red, grey, blue
  500. GREY, // grey
  501. RED, // Red
  502. BLUE, // Blue
  503. }
  504.  
  505. new TeamName[][] =
  506. {
  507. "",
  508. "TERRORIST",
  509. "CT",
  510. "SPECTATOR"
  511. }
  512.  
  513. ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...)
  514. {
  515. new message[256];
  516.  
  517. switch(type)
  518. {
  519. case NORMAL: // clients scr_concolor cvar color
  520. {
  521. message[0] = 0x01;
  522. }
  523. case GREEN: // Green
  524. {
  525. message[0] = 0x04;
  526. }
  527. default: // White, Red, Blue
  528. {
  529. message[0] = 0x03;
  530. }
  531. }
  532.  
  533. vformat(message[1], 251, msg, 4);
  534.  
  535. // Make sure message is not longer than 192 character. Will crash the server.
  536. message[192] = '^0';
  537.  
  538. new team, ColorChange, index, MSG_Type;
  539.  
  540. if(id)
  541. {
  542. MSG_Type = MSG_ONE;
  543. index = id;
  544. } else {
  545. index = FindPlayer();
  546. MSG_Type = MSG_ALL;
  547. }
  548.  
  549. team = get_user_team(index);
  550. ColorChange = ColorSelection(index, MSG_Type, type);
  551.  
  552. ShowColorMessage(index, MSG_Type, message);
  553.  
  554. if(ColorChange)
  555. {
  556. Team_Info(index, MSG_Type, TeamName[team]);
  557. }
  558. }
  559.  
  560. ShowColorMessage(id, type, message[])
  561. {
  562. message_begin(type, saytextmsg, _, id);
  563. write_byte(id)
  564. write_string(message);
  565. message_end();
  566. }
  567.  
  568. Team_Info(id, type, team[])
  569. {
  570. message_begin(type, teaminfomsg, _, id);
  571. write_byte(id);
  572. write_string(team);
  573. message_end();
  574.  
  575. return 1;
  576. }
  577.  
  578. ColorSelection(index, type, Color:Type)
  579. {
  580. switch(Type)
  581. {
  582. case RED:
  583. {
  584. return Team_Info(index, type, TeamName[1]);
  585. }
  586. case BLUE:
  587. {
  588. return Team_Info(index, type, TeamName[2]);
  589. }
  590. case GREY:
  591. {
  592. return Team_Info(index, type, TeamName[0]);
  593. }
  594. }
  595.  
  596. return 0;
  597. }
  598.  
  599. FindPlayer()
  600. {
  601. new i = -1;
  602.  
  603. while(i <= get_maxplayers())
  604. {
  605. if(is_user_connected(++i))
  606. return i;
  607. }
  608.  
  609. return -1;
  610. }
  611.  
  612. /*================================================================================================*/
  613. /**************************************** [Registers] *********************************************/
  614. /*=============================================================================R=E=Y=M=O=N==A=R=G=*/
  615.  
  616. public plugin_init()
  617. {
  618. register_plugin(PLUGIN, VERSION, AUTHOR)
  619. register_cvar("wup_version", VERSION, FCVAR_SERVER | FCVAR_SPONLY)
  620. register_cvar("wup_author", AUTHOR, FCVAR_SERVER | FCVAR_SPONLY)
  621.  
  622. register_event("TextMsg","autostartrr","a","2&#Game_C");
  623. RegisterHam(Ham_Killed, "player", "FwdPlayerDeath", 1);
  624. RegisterHam(Ham_Spawn, "player", "FwdPlayerSpawn", 1);
  625. register_event("CurWeapon", "check_change", "be", "1=1");
  626.  
  627. register_forward(FM_SetModel, "forward_set_model");
  628.  
  629. g_pcvar_allow = register_cvar("wup_drop", "");
  630. logtofilecvar = register_cvar("wup_logtofile", "1");
  631.  
  632. g_max_clients = global_get(glb_maxClients);
  633. g_max_entities = global_get(glb_maxEntities);
  634.  
  635. sync = CreateHudSyncObj();
  636. register_dictionary( "warmuppro.txt" );
  637. register_dictionary( "common.txt" );
  638.  
  639. if( get_pcvar_num(logtofilecvar) == 1 )
  640. {
  641. new mapita[64]
  642. get_mapname(mapita, 63)
  643. log_to_file(LOGFILE, "<----------: Palya %s :----------->", mapita)
  644. }
  645.  
  646. register_concmd("wup_disable","admin_exec1",ADMIN_BAN,"WarmUp leallitasa")
  647. register_concmd("wup_enable","admin_exec2",ADMIN_BAN,"Uj WarmUp elinditasa")
  648.  
  649. hideweaponmsg = get_user_msgid( "HideWeapon" );
  650. moneymsg = get_user_msgid( "Money" );
  651. statusiconmsg = get_user_msgid( "StatusIcon" );
  652. saytextmsg = get_user_msgid( "SayText" );
  653. teaminfomsg = get_user_msgid( "TeamInfo" );
  654.  
  655. /* CVARS */
  656. activadoo = register_cvar("wup_autostart", "")
  657. respawn3d = register_cvar("wup_respawn", "1")
  658. itemsxd = register_cvar("wup_items", "abcd")
  659. mode = register_cvar("wup_mode", "1")
  660. num_time = register_cvar("wup_time","120")
  661. RGB = register_cvar("wup_color", "255255255")
  662. cvar_x = register_cvar("wup_setx", "-1.0")
  663. cvar_y = register_cvar("wup_sety", "0.28")
  664. timeprotect = register_cvar("wup_protecttime", "3")
  665. /* 5.0 News Cvars */
  666. ganador = register_cvar("wup_winner", "1")
  667. mostrarhud = register_cvar("wup_showhud", "1")
  668.  
  669. wup_fwd_start = CreateMultiForward("wup_startwarmup", ET_IGNORE);
  670. wup_fwd_finish = CreateMultiForward("wup_finishwarmup", ET_IGNORE);
  671. wup_fwd_adminenable = CreateMultiForward("wup_adminenable", ET_IGNORE, FP_CELL);
  672. wup_fwd_admindsaible = CreateMultiForward("wup_adminidsable", ET_IGNORE, FP_CELL);
  673. }
  674.  
  675. /*================================================================================================*/
  676. /************************************ [Register Natives] ******************************************/
  677. /*=============================================================================R=E=Y=M=O=N==A=R=G=*/
  678.  
  679. public plugin_natives()
  680. {
  681. register_native("is_warmup_enable", "native_is_warmup_enable", 1);
  682. register_native("wup_timeleft", "native_wup_timeleft", 1);
  683. register_native("wup_get_user_kills", "native_wup_get_user_kills", 1);
  684. }
  685.  
  686. /*================================================================================================*/
  687. /*********************************** [File Config Cvars] ******************************************/
  688. /*=============================================================================R=E=Y=M=O=N==A=R=G=*/
  689.  
  690. public plugin_cfg()
  691. {
  692. new filename[64], filename2[64]
  693. get_configsdir(filename, 63);
  694. get_configsdir(filename2, 63);
  695. add(filename, 63, FILECONFIGNAME);
  696. add(filename2, 63, FILEMAPSNAME);
  697.  
  698. if(file_exists(filename))
  699. {
  700. server_cmd("exec ^"%s^"",filename)
  701.  
  702. if( get_pcvar_num(logtofilecvar) == 1 )
  703. log_to_file(LOGFILE, "Korrekt Exec: %s", filename)
  704. }
  705. else
  706. {
  707. if( get_pcvar_num(logtofilecvar) == 1 )
  708. log_to_file(LOGFILE, "Cvar Fajlok letrehozasa")
  709.  
  710. new mensajito[256]
  711. formatex(mensajito, 255, "; Fajl eleres: $moddir/%s", filename)
  712. write_file(filename,"; WarmUP Cvar-Configuracio Fajl")
  713. write_file(filename,mensajito)
  714. write_file(filename,";")
  715. write_file(filename,";/////////WARMUP PRO Configuracio\\\\\\\\\\;")
  716. write_file(filename,";/////////WARMUP PRO Configuracio\\\\\\\\\\;")
  717. write_file(filename,";")
  718. write_file(filename,";")
  719. write_file(filename,";A WarmUp engedelyezese jatekkezdesnel.")
  720. write_file(filename,"wup_autostart 1")
  721. write_file(filename,";")
  722. write_file(filename,";")
  723. write_file(filename,";Egy jatekos ujraspawnolasanak engedelyezese, mikor meghal a WarmUp-ban.")
  724. write_file(filename,"wup_respawn 1")
  725. write_file(filename,";")
  726. write_file(filename,";")
  727. write_file(filename,";Eszkozok hozzadasa egy jatekoshoz, mikor ujraspawnol.")
  728. write_file(filename,";A) HE B) Flash C) Fust")
  729. write_file(filename,";D) C4 adas a Terroristanak es Hatastalanito a CT-nek.")
  730. write_file(filename,"wup_items ^"abcd^"")
  731. write_file(filename,";")
  732. write_file(filename,";")
  733. write_file(filename,";0) Normal Korok 1) Veletlen Fegyver 2) Kes")
  734. write_file(filename,"wup_mode 1")
  735. write_file(filename,";")
  736. write_file(filename,";")
  737. write_file(filename,";WarmUp-ok kozotti ido beallitasa.")
  738. write_file(filename,"wup_time 120")
  739. write_file(filename,";")
  740. write_file(filename,";")
  741. write_file(filename,";Hud szinenek beallitasa, amikor a hatralevo idot mutatja.")
  742. write_file(filename,"wup_color ^"255255255^"")
  743. write_file(filename,";")
  744. write_file(filename,";")
  745. write_file(filename,";Hud Pozicio X")
  746. write_file(filename,"wup_setx ^"-1.0^"")
  747. write_file(filename,";")
  748. write_file(filename,";")
  749. write_file(filename,";Hud Pozicio Y")
  750. write_file(filename,"wup_sety ^"0.28^"")
  751. write_file(filename,";")
  752. write_file(filename,";")
  753. write_file(filename,";Kezdovedelemi ido beallitasa, 0 = Kikapcsolva")
  754. write_file(filename,"wup_protectime 3")
  755. write_file(filename,";")
  756. write_file(filename,";")
  757. write_file(filename,";Irjon uzenetet a WarmUp gyozteserol?")
  758. write_file(filename,"wup_winner ^"1^"")
  759. write_file(filename,";")
  760. write_file(filename,";")
  761. write_file(filename,";Mutassa Hud-ban a hatralevo idot?")
  762. write_file(filename,"wup_showhud ^"1^"")
  763. write_file(filename,";")
  764. write_file(filename,";")
  765. write_file(filename,";Plugin Logok engedelyezese.")
  766. write_file(filename,"wup_logtofile ^"1^"")
  767. write_file(filename,";")
  768. write_file(filename,";")
  769. write_file(filename,";Ezt kerlek ne valtoztasd meg :D")
  770. write_file(filename,"wup_drop ^"^" // Ne valtoztasd meg")
  771. write_file(filename,";")
  772. write_file(filename,";")
  773. write_file(filename,";")
  774. write_file(filename,";")
  775. write_file(filename,";/////////WARMUP PRO Configuracio\\\\\\\\\\;")
  776. write_file(filename,";/////////WARMUP PRO Configuracio\\\\\\\\\\;")
  777. write_file(filename,"echo WarmUP 5.6 Pro Cvarok Engedelyezve.")
  778. write_file(filename,"echo WarmUP 5.6 Pro, Keszitette ReymonARG")
  779. write_file(filename,";/////////WARMUP PRO Configuracio\\\\\\\\\\;")
  780. write_file(filename,";/////////WARMUP PRO Configuracio\\\\\\\\\\;")
  781.  
  782. server_cmd("exec %s",filename)
  783. }
  784.  
  785. if( !file_exists(filename2) )
  786. {
  787. if( get_pcvar_num(logtofilecvar) == 1 )
  788. log_to_file(LOGFILE, "Palya-Configuracio Fajl letrehozasa")
  789.  
  790. new mensajelol[256]
  791. formatex(mensajelol, 255, "; Fajl eleres: $moddir/%s", filename2)
  792. write_file(filename2,"; WarmUP Palya-Configuracio Fajl")
  793. write_file(filename2,mensajelol)
  794. write_file(filename2,";")
  795. write_file(filename2,"; Ezzel a Fajllal megtudod valtoztatni az AutoStartot minden palyan")
  796. write_file(filename2,";")
  797. write_file(filename2,"; Peldaul: <mapnev> <status>")
  798. write_file(filename2,"; ^"de_nuke^" ^"0^"")
  799. write_file(filename2,";")
  800. write_file(filename2,"; Prefix Pelda: <Prefix> <status> <P>")
  801. write_file(filename2,"; ^"cs_^" ^"0^" ^"P^"")
  802. write_file(filename2,";")
  803. write_file(filename2,"^"kz_^" ^"0^" ^"P^"")
  804. }
  805.  
  806. enableordisable()
  807.  
  808. }
  809.  
  810. public enableordisable()
  811. {
  812. new readdata[128],txtlen, filenamelala[64]
  813. new parsedmap[64], onoroff[32], prefixs[32]
  814. new mapitas[64]
  815.  
  816. get_configsdir(filenamelala,63)
  817. add(filenamelala, 63, FILEMAPSNAME)
  818.  
  819. new fsize = file_size(filenamelala,1)
  820. get_mapname(mapitas,63)
  821. g_mapexist_file = false;
  822. g_is_autofile = false;
  823.  
  824. for (new line=0;line<=fsize;line++)
  825. {
  826. read_file(filenamelala,line,readdata,127,txtlen)
  827. parse(readdata,parsedmap,63,onoroff,31, prefixs, 31)
  828.  
  829. new estaon = str_to_num(onoroff);
  830.  
  831. if( equal(mapitas,parsedmap) || containi(prefixs, "P") != -1 && containi(mapitas, parsedmap) != -1 )
  832. {
  833. g_mapexist_file = true;
  834. g_is_autofile = estaon ? true : false
  835.  
  836. if( get_pcvar_num(logtofilecvar) == 1 )
  837. log_to_file(LOGFILE, "WarmUP Pro: %s by File", estaon ? "BE" : "KI")
  838.  
  839. break;
  840. }
  841. }
  842. }
  843.  
  844. /*================================================================================================*/
  845. /********************************** [Srting Flags A B C D] ****************************************/
  846. /*=============================================================================R=E=Y=M=O=N==A=R=G=*/
  847.  
  848. public get_item_flags()
  849. {
  850. new sFlags[24]
  851. get_pcvar_string(itemsxd,sFlags,23)
  852. return read_flags(sFlags)
  853. }
  854.  
  855. /*================================================================================================*/
  856. /************************************* [No Weapon Drop] *******************************************/
  857. /*=============================================================================R=E=Y=M=O=N==A=R=G=*/
  858.  
  859. public forward_set_model(ent, const model[])
  860. {
  861.  
  862. if( wup_on && get_pcvar_num(mode) == 1 || wup_on && get_pcvar_num(mode) == 2)
  863. {
  864. if (!pev_valid(ent) || !equali(model, g_model_prefix, sizeof g_model_prefix - 1) || equali(model, g_wbox_model))
  865. return FMRES_IGNORED
  866.  
  867. new id = pev(ent, pev_owner)
  868. if (!(1 <= id <= g_max_clients))
  869. return FMRES_IGNORED
  870.  
  871. new weapon
  872. static class[32]
  873. pev(ent, pev_classname, class, sizeof class - 1)
  874. if (equal(class, g_shield_class))
  875. weapon = SHIELD
  876. else if (!equal(class, g_wbox_class))
  877. return FMRES_IGNORED
  878.  
  879. new cvar_state = 7
  880. new cvar_teams = 3
  881. new cvar_allow = get_pcvar_num(g_pcvar_allow)
  882. if (cvar_state <= 0 || cvar_teams <= 0)
  883. return FMRES_IGNORED
  884.  
  885. new state_, team
  886. if (!is_user_connected(id)) {
  887. state_ = FLAG_DISCONNECT
  888. team = FLAG_T // on disconnect only T can drop weapon (the bomb only)
  889. }
  890. else if (!is_user_alive(id))
  891. state_ = FLAG_DEAD
  892. else
  893. state_ = FLAG_ALIVE
  894.  
  895. if (!(cvar_state & state_))
  896. return FMRES_IGNORED
  897.  
  898. if (state_ != FLAG_DISCONNECT)
  899. {
  900. new CsTeams:equipo = fm_get_user_team(id)
  901. switch( equipo )
  902. {
  903. case CS_TEAM_T:
  904. {
  905. team = FLAG_T
  906. }
  907.  
  908. case CS_TEAM_CT:
  909. {
  910. team = FLAG_CT
  911. }
  912. }
  913. }
  914.  
  915. if (!(cvar_teams & team))
  916. return FMRES_IGNORED
  917.  
  918. if (weapon == SHIELD)
  919. {
  920. if (!CONTAIN_FLAG_OF_INDEX(cvar_allow, SHIELD))
  921. {
  922. set_pev(ent, pev_effects, EF_NODRAW)
  923. set_task(0.1, "task_remove_shield", ent) // we even can't use nextthink, that will not work
  924. }
  925.  
  926. return FMRES_IGNORED
  927. }
  928.  
  929. for (new i = g_max_clients + 1; i < g_max_entities; ++i)
  930. {
  931. if (!pev_valid(i) || ent != pev(i, pev_owner))
  932. continue
  933.  
  934. if (!CONTAIN_FLAG_OF_INDEX(cvar_allow, fm_get_weapon_id(i)))
  935. dllfunc(DLLFunc_Think, ent)
  936.  
  937. return FMRES_IGNORED
  938. }
  939.  
  940. }
  941. return FMRES_IGNORED
  942. }
  943.  
  944. public task_remove_shield(ent)
  945. {
  946. if(wup_on && get_pcvar_num(mode) == 1 || wup_on && get_pcvar_num(mode) == 2)
  947. {
  948. dllfunc(DLLFunc_Think, ent)
  949. }
  950. }
  951.  
  952. /*================================================================================================*/
  953. /************************************ [Respawn Player] ********************************************/
  954. /*=============================================================================R=E=Y=M=O=N==A=R=G=*/
  955.  
  956. public TaskCheckAlive(plr)
  957. {
  958. if( !g_can_respawn )
  959. {
  960. return;
  961. }
  962.  
  963. new CsTeams:team = fm_get_user_team(plr);
  964. if( team == CS_TEAM_UNASSIGNED || team == CS_TEAM_SPECTATOR )
  965. {
  966. set_task(1.0, "TaskCheckAlive", plr);
  967.  
  968. return;
  969. }
  970.  
  971. if( g_is_dead[plr] )
  972. {
  973. ExecuteHamB(Ham_CS_RoundRespawn, plr);
  974. }
  975. }
  976.  
  977. /*================================================================================================*/
  978. /********************************** [Connect & Desconnect] ***************************************/
  979. /*=============================================================================R=E=Y=M=O=N==A=R=G=*/
  980.  
  981. public client_putinserver(plr)
  982. {
  983. if( wup_on )
  984. {
  985. set_task(2.0, "connectrespawn", plr);
  986. g_is_connect[plr] = true;
  987. g_ganadores[plr] = 0;
  988. }
  989. }
  990.  
  991. public connectrespawn(plr)
  992. {
  993. if( !wup_on )
  994. return;
  995.  
  996. if( is_user_alive(plr) )
  997. return;
  998.  
  999. new CsTeams:team = fm_get_user_team(plr);
  1000. if( team == CS_TEAM_UNASSIGNED || team == CS_TEAM_SPECTATOR )
  1001. {
  1002. set_task(1.0, "connectrespawn", plr);
  1003.  
  1004. return;
  1005. }
  1006.  
  1007. if( g_is_connect[plr] )
  1008. {
  1009. ExecuteHamB(Ham_CS_RoundRespawn, plr);
  1010. g_is_connect[plr] = false;
  1011. }
  1012. }
  1013.  
  1014. public client_disconnect(plr)
  1015. {
  1016. remove_task(plr);
  1017. g_ganadores[plr] = 0;
  1018. }
  1019.  
  1020. /*================================================================================================*/
  1021. /************************************** [Player Death] ********************************************/
  1022. /*=============================================================================R=E=Y=M=O=N==A=R=G=*/
  1023.  
  1024. public FwdPlayerDeath(plr, idattacker)
  1025. {
  1026. g_is_dead[plr] = true;
  1027.  
  1028. if(get_pcvar_num(respawn3d) == 1)
  1029. {
  1030. set_task(2.0, "TaskCheckAlive", plr);
  1031. }
  1032.  
  1033. if( wup_on && get_pcvar_num(ganador) == 1 && fm_get_user_team(plr) != fm_get_user_team(idattacker) && is_user_connected(idattacker) )
  1034. {
  1035. g_ganadores[idattacker]++;
  1036. }
  1037. else if( wup_on && get_pcvar_num(ganador) == 1 && fm_get_user_team(plr) == fm_get_user_team(idattacker) && is_user_connected(idattacker) )
  1038. {
  1039. g_ganadores[idattacker]--;
  1040. }
  1041.  
  1042.  
  1043. if(wup_on && get_pcvar_num(mode) == 1 || wup_on && get_pcvar_num(mode) == 2)
  1044. {
  1045. if (!(7 & FLAG_DEAD) || !(3 & FLAG_CT) || !fm_get_user_defuse(plr))
  1046. return
  1047.  
  1048. if (CONTAIN_FLAG_OF_INDEX(get_pcvar_num(g_pcvar_allow), DEFUSER))
  1049. return
  1050.  
  1051. fm_set_user_defuse(plr, 0)
  1052. set_pev(plr, pev_body, 0) // backward compatibility
  1053. }
  1054. }
  1055.  
  1056. /*================================================================================================*/
  1057. /*************************************** [Player Spawn] *******************************************/
  1058. /*=============================================================================R=E=Y=M=O=N==A=R=G=*/
  1059.  
  1060. public FwdPlayerSpawn(plr)
  1061. {
  1062. if( is_user_alive(plr))
  1063. {
  1064. g_is_dead[plr] = false;
  1065.  
  1066. if( g_can_respawn && wup_on && get_pcvar_num(timeprotect) != 0 )
  1067. {
  1068. set_task(0.1, "wup_protect", plr)
  1069. }
  1070.  
  1071. if( wup_on && get_pcvar_num(mode) == 1 || wup_on && get_pcvar_num(mode) == 2)
  1072. {
  1073. fm_set_user_money(plr, 0)
  1074. HideMoney(plr)
  1075. }
  1076.  
  1077. if(wup_on && get_pcvar_num(mode) == 1)
  1078. {
  1079. new rand = random_num(1,sizeof(g_weapon_names) -1);
  1080. fm_strip_user_weapons(plr)
  1081. fm_give_item(plr, "weapon_knife")
  1082. wup_give_weapon(plr, g_weapon_names[rand], 250)
  1083. set_task(0.1, "giveitems", plr)
  1084. }
  1085. }
  1086. }
  1087.  
  1088. /*================================================================================================*/
  1089. /************************************ [Spawn Protection] ******************************************/
  1090. /*=============================================================================R=E=Y=M=O=N==A=R=G=*/
  1091.  
  1092. public wup_protect(plr)
  1093. {
  1094. new Float:ProtecTime = get_pcvar_float(timeprotect)
  1095. if( wup_on && get_pcvar_num(timeprotect) != 0 )
  1096. {
  1097. if(get_user_team(plr) == 1)
  1098. {
  1099. fm_set_rendering(plr, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, 26)
  1100. fm_set_user_godmode(plr, 1)
  1101. }
  1102.  
  1103. if(get_user_team(plr) == 2)
  1104. {
  1105. fm_set_rendering(plr, kRenderFxGlowShell, 0, 0, 255, kRenderNormal, 26)
  1106. fm_set_user_godmode(plr, 1)
  1107. }
  1108.  
  1109. set_task(ProtecTime, "desprotect", plr)
  1110. }
  1111. }
  1112.  
  1113. public desprotect(plr)
  1114. {
  1115. fm_set_rendering(plr, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 26)
  1116. fm_set_user_godmode(plr, 0)
  1117. }
  1118.  
  1119. /*================================================================================================*/
  1120. /*************************************** [Give Items] *********************************************/
  1121. /*=============================================================================R=E=Y=M=O=N==A=R=G=*/
  1122.  
  1123.  
  1124. public giveitems(plr)
  1125. {
  1126. new iFlags = get_item_flags()
  1127. new CsTeams:team = fm_get_user_team(plr);
  1128. if( g_items )
  1129. {
  1130. if (iFlags&ITEM_HE)
  1131. {
  1132. fm_give_item(plr,"weapon_hegrenade")
  1133. }
  1134.  
  1135. if(iFlags&ITEM_FS)
  1136. {
  1137. fm_give_item(plr,"weapon_flashbang")
  1138. }
  1139.  
  1140. if(iFlags&ITEM_SG)
  1141. {
  1142. fm_give_item(plr,"weapon_smokegrenade")
  1143. }
  1144.  
  1145. if( team == CS_TEAM_CT && iFlags&ITEM_C4 )
  1146. {
  1147. fm_give_item(plr, "item_thighpack")
  1148. }
  1149.  
  1150. if( team == CS_TEAM_T && iFlags&ITEM_C4 )
  1151. {
  1152. fm_give_item(plr, "weapon_c4")
  1153. fm_set_user_plant(plr, 1, 1)
  1154. }
  1155. }
  1156. }
  1157.  
  1158. /*================================================================================================*/
  1159. /********************************* [Remove Players Weapons] ***************************************/
  1160. /*=============================================================================R=E=Y=M=O=N==A=R=G=*/
  1161.  
  1162. public check_change(plr)
  1163. {
  1164. if(get_pcvar_num(mode) == 2)
  1165. {
  1166. if( g_cuchi )
  1167. {
  1168. new wpnid = read_data(2)
  1169. if( !(wpnid == CSW_KNIFE || wpnid == CSW_HEGRENADE || wpnid == CSW_FLASHBANG || wpnid == CSW_SMOKEGRENADE || wpnid == CSW_C4) )
  1170. {
  1171. set_task(0.1, "remove", plr);
  1172. fm_set_user_money(plr, 0);
  1173. HideMoney(plr)
  1174. }
  1175. }
  1176. }
  1177. }
  1178.  
  1179.  
  1180. public remove(plr)
  1181. {
  1182. fm_strip_user_weapons(plr)
  1183. fm_give_item(plr,"weapon_knife")
  1184. fm_set_user_money(plr, 0);
  1185. set_task(0.1, "giveitems", plr)
  1186. }
  1187.  
  1188. /*================================================================================================*/
  1189. /******************************** [Remove Huds From Players] **************************************/
  1190. /*=============================================================================R=E=Y=M=O=N==A=R=G=*/
  1191.  
  1192. public HideMoney(plr)
  1193. {
  1194. if( wup_on && get_pcvar_num(mode) == 1 || wup_on && get_pcvar_num(mode) == 2)
  1195. {
  1196. message_begin( MSG_ONE, hideweaponmsg, _, plr );
  1197. write_byte( HIDE_MONEY );
  1198. message_end();
  1199. }
  1200.  
  1201. if( !(wup_on) || get_pcvar_num(mode) == 0)
  1202. {
  1203. message_begin( MSG_ONE, hideweaponmsg, _, plr );
  1204. write_byte( SHOW_MONEY );
  1205. message_end();
  1206. }
  1207. }
  1208.  
  1209. /*================================================================================================*/
  1210. /************************************ [Admins Commands] *******************************************/
  1211. /*=============================================================================R=E=Y=M=O=N==A=R=G=*/
  1212.  
  1213. public admin_exec1(plr, level)
  1214. {
  1215. if(!access(plr, level))
  1216. {
  1217. client_print(plr, print_console, "%L", plr, "NO_ACC_COM")
  1218. return PLUGIN_HANDLED
  1219. }
  1220.  
  1221. set_cvar_float("sv_restartround",1.0);
  1222. batata()
  1223. g_can_respawn = false;
  1224. g_cuchi = false;
  1225. g_items = false;
  1226. wup_on = false;
  1227. remove_task(plr);
  1228. new name[32]
  1229. get_user_name(plr, name, 31)
  1230.  
  1231. if( get_pcvar_num(logtofilecvar) == 1 )
  1232. log_to_file(LOGFILE, "ADMIN: %s letiltotta a WarmUP rendszert", name);
  1233.  
  1234.  
  1235. client_print(plr, print_console, "[WUP] WarmUP Pro LETILTVA")
  1236. ColorChat(0, GREEN,"^x04[WUP] ADMIN:^x03 %s^x04 letiltotta WarmUP Pro rendszert", name)
  1237. ExecuteForward(wup_fwd_admindsaible, fwd_resultado, plr);
  1238.  
  1239. return PLUGIN_HANDLED
  1240. }
  1241.  
  1242. public admin_exec2(plr, level)
  1243. {
  1244. if(!access(plr, level))
  1245. {
  1246. client_print(plr, print_console, "%L", plr, "NO_ACC_COM")
  1247. return PLUGIN_HANDLED
  1248. }
  1249.  
  1250. if( wup_on )
  1251. return PLUGIN_HANDLED
  1252.  
  1253. time_s = get_pcvar_num(num_time)
  1254. set_task(float(time_delay),"restart_time")
  1255.  
  1256. batata()
  1257. set_cvar_float("sv_restartround",1.0);
  1258. g_can_respawn = true;
  1259. g_cuchi = true;
  1260. g_items = true;
  1261. wup_on = true;
  1262. new iFlags = get_item_flags()
  1263. if( !(iFlags&ITEM_C4) )
  1264. {
  1265. set_pcvar_num(g_pcvar_allow, 64)
  1266. }
  1267.  
  1268. new name[32]
  1269. get_user_name(plr, name, 31)
  1270.  
  1271. if( get_pcvar_num(logtofilecvar) == 1 )
  1272. log_to_file(LOGFILE, "ADMIN: %s egy Uj WarmUP-ot inditott el", name);
  1273.  
  1274.  
  1275. client_print(plr, print_console, "[WUP] WarmUP Pro Engedelyezve")
  1276. ColorChat(0, GREEN,"^x04[WUP] ADMIN:^x03 %s^x04 engedelyezte a WarmUP Pro rendszert", name)
  1277. ExecuteForward(wup_fwd_adminenable, fwd_resultado, plr);
  1278.  
  1279. return PLUGIN_HANDLED
  1280. }
  1281.  
  1282. /*================================================================================================*/
  1283. /****************************** [Exec Time And Clean Arrays] **************************************/
  1284. /*=============================================================================R=E=Y=M=O=N==A=R=G=*/
  1285.  
  1286. public autostartrr(plr)
  1287. {
  1288. if( g_mapexist_file && !g_is_autofile )
  1289. {
  1290. g_can_respawn = false;
  1291. g_cuchi = false;
  1292. g_items = false;
  1293. wup_on = false;
  1294. remove_task(plr);
  1295.  
  1296. return;
  1297. }
  1298.  
  1299. if(get_pcvar_num(activadoo) == 0)
  1300. {
  1301. if( g_mapexist_file && g_is_autofile )
  1302. {
  1303. //do nothing
  1304. }
  1305. else
  1306. {
  1307. g_can_respawn = false;
  1308. g_cuchi = false;
  1309. g_items = false;
  1310. wup_on = false;
  1311.  
  1312. if( get_pcvar_num(logtofilecvar) == 1 )
  1313. log_to_file(LOGFILE, "WarmUP AutoStart Kikapcsolva")
  1314.  
  1315. remove_task(plr);
  1316. }
  1317. }
  1318.  
  1319. if(get_pcvar_num(activadoo) == 1 || g_mapexist_file && g_is_autofile)
  1320. {
  1321. time_s = get_pcvar_num(num_time)
  1322. set_task(float(time_delay),"restart_time")
  1323. ExecuteForward(wup_fwd_start, fwd_resultado)
  1324. //g_ganadores[0] = 0;
  1325. wup_on = true;
  1326. g_can_respawn = true;
  1327. g_cuchi = true;
  1328. g_items = true;
  1329.  
  1330. if( get_pcvar_num(logtofilecvar) == 1 )
  1331. log_to_file(LOGFILE, "WarmUP AutoStart Bekapcsolva");
  1332.  
  1333.  
  1334. new iFlags = get_item_flags()
  1335. if( !(iFlags&ITEM_C4) )
  1336. {
  1337. set_pcvar_num(g_pcvar_allow, 64)
  1338. }
  1339. }
  1340. }
  1341.  
  1342. /*================================================================================================*/
  1343. /*********************************** [Show Time & Restart] ****************************************/
  1344. /*=============================================================================R=E=Y=M=O=N==A=R=G=*/
  1345.  
  1346. public restart_time()
  1347. {
  1348. new color[10]
  1349. new r
  1350. new g
  1351. new b
  1352. get_pcvar_string(RGB, color, 9)
  1353. new c = str_to_num(color)
  1354. r = c / 1000000
  1355. c %= 1000000
  1356. g = c / 1000
  1357. b = c % 1000
  1358.  
  1359. if(wup_on && time_s >= 0)
  1360. {
  1361. ClearSyncHud(0, sync)
  1362.  
  1363. if(time_s < 1)
  1364. {
  1365. set_cvar_float("sv_restartround",2.0);
  1366. g_can_respawn = false;
  1367. g_cuchi = false;
  1368. g_items = false;
  1369. }
  1370.  
  1371. if(time_s == 0)
  1372. {
  1373. wup_on = false;
  1374.  
  1375. if( get_pcvar_num(logtofilecvar) == 1 )
  1376. log_to_file(LOGFILE, "A WarmUP befejezodott")
  1377.  
  1378. ExecuteForward(wup_fwd_finish, fwd_resultado)
  1379.  
  1380. if( get_pcvar_num(ganador) == 1 )
  1381. darresultado()
  1382. }
  1383.  
  1384. if( get_pcvar_num(mostrarhud) == 1 )
  1385. {
  1386. set_hudmessage( r, g, b, get_pcvar_float(cvar_x), get_pcvar_float(cvar_y), 1, 6.0, 6.0);
  1387. ShowSyncHudMsg(0, sync, "%L", LANG_PLAYER, "MP_DISPLAY", time_s);
  1388. }
  1389.  
  1390. --time_s;
  1391. set_task(1.0,"restart_time")
  1392. }
  1393. }
  1394.  
  1395. /*================================================================================================*/
  1396. /************************************** [Winner Info] *********************************************/
  1397. /*=============================================================================R=E=Y=M=O=N==A=R=G=*/
  1398.  
  1399. public darresultado()
  1400. {
  1401. new resultadofinal = 0
  1402. new name[32]
  1403. new mensajes[256]
  1404. new bool:g_muchos
  1405. mensajes[0] = 0;
  1406. name[0] = 0;
  1407. g_muchos = false;
  1408. resultadofinal = 0
  1409.  
  1410. for(new i = 1; i <= 32 ; i++)
  1411. {
  1412.  
  1413. if( g_ganadores[i] == resultadofinal )
  1414. {
  1415. g_muchos = true;
  1416. get_user_name(i, name, 31)
  1417.  
  1418. formatex(mensajes, 255, "%s, %s", mensajes, name)
  1419. }
  1420.  
  1421. if( g_ganadores[i] > resultadofinal )
  1422. {
  1423. name[0] = 0;
  1424. mensajes[0] = 0;
  1425. g_muchos = false;
  1426. resultadofinal = g_ganadores[i]
  1427. get_user_name(i, name, 31)
  1428. formatex(mensajes, 255, "%s", name)
  1429. }
  1430. }
  1431.  
  1432. if( resultadofinal >= 1 )
  1433. {
  1434. if( !g_muchos )
  1435. {
  1436. ColorChat(0, GREEN, "^x04[WUP] A Gyoztes:^x03 %s^x04 ^x03 %d^x04 Olessel", name, resultadofinal)
  1437.  
  1438. if( get_pcvar_num(logtofilecvar) == 1 )
  1439. log_to_file(LOGFILE, "A WarmUp Gyoztese: %s volt %d Olessel", name, resultadofinal)
  1440.  
  1441. }
  1442. else if( g_muchos )
  1443. {
  1444. ColorChat(0, GREEN, "^x04[WUP] ^x03%s ^x04 megnyerte a WarmUp Koroket ^x03 %d^x04 Olessel", mensajes, resultadofinal)
  1445.  
  1446. if( get_pcvar_num(logtofilecvar) == 1 )
  1447. log_to_file(LOGFILE, "%s megnyerte a WarmUp Koroket %d Olessel", mensajes, resultadofinal)
  1448.  
  1449. }
  1450. }
  1451.  
  1452. if( resultadofinal == 0 )
  1453. {
  1454. ColorChat(0, GREEN, "[WUP] Nem nyerte senki a WarmUP Kort")
  1455.  
  1456. if( get_pcvar_num(logtofilecvar) == 1 )
  1457. log_to_file(LOGFILE, "Nem nyerte senki a WarmUP Kort")
  1458.  
  1459. }
  1460.  
  1461. batata()
  1462.  
  1463. }
  1464.  
  1465.  
  1466. public batata()
  1467. {
  1468. for(new i = 0; i <= 32 ; i++)
  1469. {
  1470. g_ganadores[i] = 0;
  1471. }
  1472. }
  1473.  
  1474. /*================================================================================================*/
  1475. /***************************************** [Navites] **********************************************/
  1476. /*=============================================================================R=E=Y=M=O=N==A=R=G=*/
  1477.  
  1478. public native_is_warmup_enable()
  1479. {
  1480. return wup_on;
  1481. }
  1482.  
  1483. public native_wup_timeleft()
  1484. {
  1485. return time_s;
  1486. }
  1487.  
  1488. public native_wup_get_user_kills(id)
  1489. {
  1490. return g_ganadores[id];
  1491. }
  1492.  
  1493. /*================================================================================================*/
  1494. /********************************** [Create By ReymonARG] *****************************************/
  1495. /*=============================================================================R=E=Y=M=O=N==A=R=G=*/
  1496. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  1497. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang11274\\ f0\\ fs16 \n\\ par }
  1498. */
  1499.