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