Advertisement
Guest User

Untitled

a guest
Jun 8th, 2017
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 239.96 KB | None | 0 0
  1. ººººººººººººººººººººººº
  2. ESTE ES EL .INC
  3. ººººººººººººººººººººººº
  4.  
  5. native level(id)
  6. native bbpacks(id)
  7. native reset(id)
  8. native abrir_tienda_ct(id)
  9. native granada_fuego(id)
  10.  
  11. ººººººººººººººººººººººº
  12. ESTE ES EL .SMA
  13. ººººººººººººººººººººººº
  14.  
  15. #include <amxmodx>
  16. #include <amxmisc>
  17. #include <cstrike>
  18. #include <fun>
  19. #include <hamsandwich>
  20. #include <fakemeta>
  21. #include <engine>
  22. #include <csx>
  23. #include <csx>
  24. #include <basebuilder_ie>
  25. #include <fakemeta_util>
  26. #include <xs>
  27. #include <fvault> //Cuentas
  28. #include <nfvault> //exp,bbpack, rr, etc...
  29.  
  30.  
  31. #define Hook_Chooseteam
  32. #define TAG "[I-E BaseBuilder]"
  33. #define ID_HUD (taskid - TASK_HUD)
  34. #define costo(%1) (%1 * 2) + 10 // costo de mejoras
  35. #define ammount_speed(%1) (%1 * 2.5) // upgrade speed
  36. #define ammount_health(%1) (%1 * 5) // upgrade health
  37. #define ammount_armor(%1) (%1 * 5) // upgrade armor
  38. #define ammount_gravity(%1) ((%1 * 0.01) * 1.4) // upgrade gravity
  39.  
  40. enum { PASSWORD = 0, NAME, MAX_CHANGE }
  41. enum { UNREGISTERED = 0, REGISTERED, LOGGED, MAX_STATUS}
  42.  
  43. new Tag[] = "[I-E BaseBuilder]"
  44. new MODEL[] = "models"
  45. new CARPETA[] = "[I-E]armasgd"
  46. new const Matar_zm[] = "sound/[I-E]Sounds/Zombie-6.mp3"
  47. new const RESPAWN_ZM[] = "[I-E]Sounds/respawn zm.wav"
  48.  
  49. //new const g_objective_ents[][] = { "func_bomb_target","info_bomb_target","hostage_entity","monster_scientist","func_hostage_rescue","info_hostage_rescue","info_vip_start","func_vip_safetyzone","func_escapezone"}
  50. const m_iFOV = 363
  51. const m_iPlayer = 41
  52. const m_iClipAmmo = 51
  53. const m_iExtraOffsetLinux = 4
  54. const m_iExtraOffsetWindows = 0
  55. new model_deagle_sniper[] = "models/v_deagle_new.mdl";
  56. new gAlive[33];
  57. new gZoom[33];
  58. new gReloading[33];
  59. new g_exp[33]
  60. new g_level[33]
  61. new g_reset[33]
  62. new g_bbpacks[33]
  63. new g_puntos[33]
  64. new g_mejoras[33][4]
  65. new una_vez[33], una_vez_rr[33]
  66. new rojo[33], verde[33], azul[33]
  67. new Hud_Datos, g_msgSayText
  68. new arma_vip[33], Tiempo[33], pico, party_hud
  69.  
  70. new VaultFile[128], szData[180], szKey[30]
  71.  
  72. new menu_armas, g_arma[33], laser, maxplayers, SaysText
  73. new Zclas[33], ZRapi[33], ZSalt[33], ZTank[33], ZOxid[33], ZSpit[33], ZHunt[33], ZTerr[33], ZCang[33], Zm_Adm[33]
  74. new ZSpitd[33], ZWitc[33], ZPuta[33], ZSwar[33], ZClot[33], ZFeno[33], ZPaya[33], Zdiab[33], ZPois[33]
  75. new ZSant[33], ZScra[33], ZSire[33], ZSmok[33], ZStal[33], ZHusk[33], Zlobo[33], ZClass[33], Zperr[33]
  76. new ZDocS[33], ZSui[33], ZDest[33], ZJock[33], ZNeme[33], ZRadia[33], ZLeye[33], ZChar[33], ZCarn[33], ZTanke[33], ZBull[33]
  77.  
  78. new g_TempPassword[33][32],g_Password[33][32],g_Date[33][32],g_Status[33],gMsg,g_AlredyChanged[33][MAX_CHANGE],g_CanChange
  79.  
  80. new const g_MsgArgs[][] = { "#Team_Select","#Team_Select_Spect","#IG_Team_Select","#IG_Team_Select_Spect" }
  81. new const g_Vault[] = "cuentas"
  82. new const g_szStatus[MAX_STATUS][] = { "No registrado","Registrado","Logueado" }
  83.  
  84. new Hm_Civil[33], Hm_princ[33], Hm_Sobre[33], Hm_Domin[33], Hm_Solda[33], Hm_Milit[33], Hm_Assasins[33], un_hm[33], un_zm[33], Hm_Adm[33]
  85. const PDATA_SAFE = 2
  86. const KEYSMENU = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0
  87. const OFFSET_ACTIVE_ITEM = 373
  88. const OFFSET_LINUX = 5
  89. const m_iFOV = 363
  90. const m_iPlayer = 41
  91.  
  92. enum (+= 77) {
  93. TASK_HUD = 777,
  94. TASK_ACEPT
  95. }
  96.  
  97. enum {
  98. NONE = -1,
  99. Master,
  100. Start_Amount
  101. }
  102.  
  103. enum _:pdata {
  104. In_Party,
  105. Position,
  106. Amount_In_Party,
  107. Block_Party,
  108. UserName[32]
  109. }
  110.  
  111. enum _:DataCallBack {
  112. MASTER,
  113. USER
  114. }
  115. new g_PartyData[33][pdata], Array:Party_Ids[33], g_maxplayers, g_MenuCallback[DataCallBack], g_MsgSayTexts, cvar_time_acept, cvar_max_players, cvar_allow_bots
  116. new const LEVELS[] = {
  117. /*-level=1*/10,
  118. /*-level=2*/110,
  119. /*-level=3*/220,
  120. /*-level=4*/460,
  121. /*-level=5*/800,
  122. /*-level=6*/1340,
  123. /*-level=7*/1920,
  124. /*-level=8*/2860,
  125. /*-level=9*/4000,
  126. /*-level=10*/4910,
  127. /*-level=11*/6000,
  128. /*-level=12*/7200,
  129. /*-level=13*/9070,
  130. /*-level=14*/11632,
  131. /*-level=15*/13780,
  132. /*-level=16*/15999,
  133. /*-level=17*/19420,
  134. /*-level=18*/23755,
  135. /*-level=19*/25500,
  136. /*-level=20*/30000,
  137. /*-No TOCAR-*/1000000
  138. }
  139. enum _:DATA_EXP
  140. {
  141. Nivel_x[20],
  142. Exp_x[20]
  143. }
  144. enum _:DATA_MEJORA
  145. {
  146. MEJORA_NAME[33],
  147. MEJORA_MAX
  148. }
  149.  
  150. new gMejoras[][DATA_MEJORA] =
  151. {
  152. { "Vida", 40 },
  153. { "Velocidad", 40 },
  154. { "Chaleco", 40 },
  155. { "Gravedad", 40 }
  156. }
  157.  
  158. enum _:Caracteres {
  159. item_name_v2[20],
  160. Comando[90],
  161. item_reset,
  162. Weapon_nombre[90],
  163. item_id,
  164. Rojo,
  165. Verde,
  166. Azul,
  167. Float:item_damage
  168. }
  169. enum _:reglas_c
  170. {
  171. Nombre[90],
  172. Mensaje_x[90]
  173. }
  174. enum _:shop_adm
  175. {
  176. Nombre[90],
  177. Precio[90]
  178. }
  179. new const menu_death[][Caracteres] = {
  180. /*----Los Comandos que estan "" dejalos como estan por que,...-------
  181. ------Yo cree Las Habilidades de esas Armas------------------------*/
  182. //
  183. // CARACTERES : ---> |
  184. // V
  185. //Nombre | Comando con el que se abre | Reset
  186. /*-1-*/{ "Glock18", "say /glockauto", 1, "weapon_glock18", CSW_KNIFE, 0, 0, 0, 2.0},
  187. /*-2-*/{ "Deagle Dorada", "", 2, "weapon_deagle", CSW_DEAGLE, 255, 255, 0, 1.2},
  188. /*-3-*/{ "Moto Cierra", "say /motocierra", 3, "", CSW_KNIFE, 0, 0, 0, 2.0},
  189. /*-4-*/{ "Desert Laser Mira", "", 5, "weapon_deagle", CSW_DEAGLE, 0, 0, 0, 1.5},
  190. /*-5-*/{ "Pistolas Doble", "", 7, "weapon_elite", CSW_ELITE, 0, 0, 0, 1.7},
  191. /*-6-*/{ "Ballesta", "", 8, "weapon_scout", CSW_SCOUT, 0, 0, 0, 2.0},
  192. /*-7-*/{ "Revolver", "", 10, "weapon_deagle", CSW_DEAGLE, 42, 85, 255, 2.2},
  193. /*-8-*/{ "Doble Deagle", "say /ddeglexdx", 11, "", CSW_KNIFE, 0, 0, 0, 2.0},
  194. /*-9-*/{ "Balrog I", "say /balrogI", 12 , "", CSW_KNIFE, 0, 0, 0, 2.0},
  195. /*-10-*/{ "Balrog III", "say /balrogIIIxddx", 13, "", CSW_KNIFE, 0, 0, 0, 2.0},
  196. /*-11-*/{ "Cart Blue", "", 15, "weapon_tmp", CSW_TMP, 0, 0, 255, 2.5},
  197. /*-12-*/{ "Doble Vector", "say /2vec", 16, "", CSW_KNIFE, 0, 0, 0, 2.0},
  198. /*-13-*/{ "Mp5 Dobles", "", 17, "weapon_mp5navy", CSW_MP5NAVY, 0, 0, 0, 2.9},
  199. /*-14-*/{ "P90 Sf", "", 18, "weapon_p90", CSW_P90, 150, 250, 0, 3.0},
  200. /*-15-*/{ "Escopeta Gatling", "say /escgatlxx", 21, "", CSW_KNIFE, 0, 0, 0 },
  201. /*-16-*/{ "Spas 12 Cobra", "", 22, "weapon_m3", CSW_M3, 240, 240, 240, 3.6 },
  202. /*-17-*/{ "Xm1014 Dorada", "", 23, "weapon_xm1014", CSW_XM1014, 255, 255, 0, 3.9 },
  203. /*-18-*/{ "Lanza Llamas", "say /salamaderdxxd", 25, "", CSW_M249, 0, 0, 0, 2.0 },
  204. /*-19-*/{ "Ump45 ge sf1", "", 26, "weapon_ump45", CSW_UMP45, 15, 25, 255, 4.1},
  205. /*-20-*/{ "Escopeta Barrel", "", 27, "weapon_m3" , CSW_M3, 0, 0, 0, 4.3 },
  206. /*-21-*/{ "Escopeta m1887", "", 30, "weapon_m3", CSW_M3, 0, 0, 0, 4.5 },
  207. /*-22-*/{ "Escopeta usas12", "", 31, "weapon_m3", CSW_M3, 250, 250, 250, 4.7 },
  208. /*-23-*/{ "Oicw", "say /oicwxdas", 32, "", CSW_KNIFE, 0, 0, 0, 2.0 },
  209. /*-24-*/{ "Fusil Ak47", "", 33, "weapon_ak47", CSW_AK47, 0, 0, 0, 5.0 },
  210. /*-25-*/{ "Ak47 Dorada", "", 34, "weapon_ak47", CSW_AK47, 255, 250, 15, 5.2 },
  211. /*-26-*/{ "M4a1 Dorada", "", 35, "weapon_m4a1", CSW_M4A1, 255, 250, 15, 5.5 },
  212. /*-27-*/{ "Thunder Bolt", "say /thunder_boltxddx", 37, "", CSW_KNIFE, 0, 0, 0, 2.0 },
  213. /*-28-*/{ "Rifle Aw50", "", 38, "weapon_awp", CSW_AWP, 18, 22, 216, 6.0},
  214. /*-29-*/{ "Lanza Bombas", "say /m32xddx", 39, "", CSW_KNIFE, 0 ,0, 0, 2.0 },
  215. /*-30-*/{ "Cannon", "say /cannonxddx", 40, "", CSW_KNIFE, 0, 0, 0, 2.0 },
  216. /*-31-*/{ "Lanzabombas m32 mgl", "say /lanzbbm", 41, "", CSW_KNIFE, 0, 0, 0, 2.0 },
  217. /*-32-*/{ "Bazooka AT4CS", "say /xddxasas", 42, "", CSW_KNIFE, 0, 0, 0, 2.0 },
  218. /*-33-*/{ "Machinegun FN MK-48", "", 43, "weapon_m249", CSW_M249, 0, 0, 0, 7.0 },
  219. /*-34-*/{ "Machinegun Balrog7", "", 45, "weapon_m249", CSW_M249, 205, 15, 0, 7.3 },
  220. /*-35-*/{ "Ethereal", "say /etherealxddx", 46, "", CSW_KNIFE, 0, 0, 0, 2.0 },
  221. /*-36-*/{ "Plasma", "say /plasmariflexd", 47, "", CSW_KNIFE, 0, 0, 0, 2.0 },
  222. /*-37-*/{ "MiniGun", "say /megamachinedx", 50, "", CSW_KNIFE, 0, 0, 0, 2.0 }
  223. }
  224. new const Reglas[][reglas_c] =
  225. {
  226. { "ningun jugador y ningun admin puede discriminar o insultar", "Debes Respetar las Reglas" },
  227. { "ningun admin puede abusar de su poder.", "Debes Respetar las Reglas" },
  228. { "ningun admin puede darse vida o cualquier otra cosa.", "Debes Respetar las Reglas" },
  229. { "ningun jugador puede entrar con lulo o wall.", "Debes Respetar las Reglas" },
  230. { "ningun admin puede agrandar su base solo puede arreglarla.", "Debes Respetar las Reglas" },
  231. { "el admin solo puede usar noclip para arreglar la base de un jugador.", "Debes Respetar las Reglas" },
  232. { "no se dicen garavatos o groserias en el servidor xd.", "Debes Respetar las Reglas" },
  233. { "cualquier abuso o lo que sea que no respete las reglas deves-", "Debes Respetar las Reglas" },
  234. { "decirle inmediato al admin general.", "Debes Respetar las Reglas" },
  235. { "al abusador se le quitara 1 reset , 1 semana de admin y 15-", "Debes Respetar las Reglas" },
  236. { "niveles y al que lo reporte se le regalaran-", "Debes Respetar las Reglas" },
  237. { "50 de exp y 10 bbpack.", "Debes Respetar las Reglas" }
  238. }
  239. new const Tienda_ADM[][shop_adm] =
  240. {
  241. { "\yAdmin Basico 1 mes \ra", "\y500" },
  242. { "\yAdmin Basico 3 meses \ra", "\y1000^n\w----------------------" },
  243. { "\yAdmin Golden 1 mes \ra", "\y1000" },
  244. { "\yAdmin Golden 3 meses \ra", "\y2500^n\w----------------------" },
  245. { "\yAdmin Vip 1 mes \ra", "\y2000" },
  246. { "\yAdmin Vip 3 meses \ra", "\y5000" }
  247. }
  248. new const EXP_DATA[][DATA_EXP] =
  249. {
  250. { "1", "10" },
  251. { "2", "110" },
  252. { "3", "220" },
  253. { "4", "460" },
  254. { "5", "800" },
  255. { "6", "1340" },
  256. { "7", "1920" },
  257. { "8", "2860" },
  258. { "9", "4000" },
  259. { "10", "4910" },
  260. { "11", "6000" },
  261. { "12", "7200" },
  262. { "13", "9070" },
  263. { "14", "11632" },
  264. { "15", "13780" },
  265. { "16", "15999" },
  266. { "17", "19420" },
  267. { "18", "22755" },
  268. { "19", "25500" },
  269. { "20", "30000" }
  270. }
  271. //======BB APARTE
  272.  
  273. //Enable this only if you have bought the credits plugin
  274. //#define BB_CREDITS
  275.  
  276. #define FLAGS_BUILD ADMIN_KICK
  277. #define FLAGS_LOCK ADMIN_LEVEL_A
  278. #define FLAGS_BUILDBAN ADMIN_KICK
  279. #define FLAGS_SWAP ADMIN_KICK
  280. #define FLAGS_REVIVE ADMIN_KICK
  281. #define FLAGS_GUNS ADMIN_LEVEL_A
  282. #define FLAGS_RELEASE ADMIN_BAN
  283. #define FLAGS_OVERRIDE ADMIN_BAN
  284.  
  285. #define VERSION "9.5"
  286. #define MODNAME "^x01 [^x04 Base Builder^x01 ]"
  287.  
  288. #define LockBlock(%1,%2) ( entity_set_int( %1, EV_INT_iuser1, %2 ) )
  289. #define UnlockBlock(%1) ( entity_set_int( %1, EV_INT_iuser1, 0 ) )
  290. #define BlockLocker(%1) ( entity_get_int( %1, EV_INT_iuser1 ) )
  291.  
  292. #define MovingEnt(%1) ( entity_set_int( %1, EV_INT_iuser2, 1 ) )
  293. #define UnmovingEnt(%1) ( entity_set_int( %1, EV_INT_iuser2, 0 ) )
  294. #define IsMovingEnt(%1) ( entity_get_int( %1, EV_INT_iuser2 ) == 1 )
  295.  
  296. #define SetEntMover(%1,%2) ( entity_set_int( %1, EV_INT_iuser3, %2 ) )
  297. #define UnsetEntMover(%1) ( entity_set_int( %1, EV_INT_iuser3, 0 ) )
  298. #define GetEntMover(%1) ( entity_get_int( %1, EV_INT_iuser3 ) )
  299.  
  300. #define SetLastMover(%1,%2) ( entity_set_int( %1, EV_INT_iuser4, %2 ) )
  301. #define UnsetLastMover(%1) ( entity_set_int( %1, EV_INT_iuser4, 0 ) )
  302. #define GetLastMover(%1) ( entity_get_int( %1, EV_INT_iuser4 ) )
  303.  
  304. #define MAXPLAYERS 32
  305. #define MAXENTS 1024
  306. #define AMMO_SLOT 376
  307. #define MODELCHANGE_DELAY 0.5
  308. #define AUTO_TEAM_JOIN_DELAY 0.1
  309. #define TEAM_SELECT_VGUI_MENU_ID 2
  310. #define OBJECT_PUSHPULLRATE 4.0
  311. #define HUD_FRIEND_HEIGHT 0.30
  312.  
  313. #define BARRIER_COLOR 0.0, 0.0, 0.0
  314. #define BARRIER_RENDERAMT 150.0
  315.  
  316. #define BLOCK_RENDERAMT 150.0
  317.  
  318. #define LOCKED_COLOR 125.0, 0.0, 0.0
  319. #define LOCKED_RENDERAMT 225.0
  320.  
  321. const ZOMBIE_ALLOWED_WEAPONS_BITSUM = (1<<CSW_KNIFE)
  322. const ZOMBIE_ALLOWED_WEAPONS_BITSUM_H = (1<<CSW_HEGRENADE)/*
  323. const ZOMBIE_ALLOWED_WEAPONS_BITSUM_F = (1<<CSW_FLASHBANG)
  324. const ZOMBIE_ALLOWED_WEAPONS_BITSUM_S = (1<<CSW_SMOKEGRENADE)*/
  325.  
  326. #define OFFSET_WPN_WIN 41
  327. #define OFFSET_WPN_LINUX 4
  328.  
  329. #define OFFSET_ACTIVE_ITEM 373
  330. #define OFFSET_LINUX 5
  331.  
  332. #if cellbits == 32
  333. #define OFFSET_BUYZONE 235
  334. #else
  335. #define OFFSET_BUYZONE 268
  336. #endif
  337.  
  338. new g_iMaxPlayers
  339. new g_msgStatusText
  340. new g_HudSync
  341.  
  342. new g_isConnected[MAXPLAYERS+1]
  343. new g_isAlive[MAXPLAYERS+1]
  344. new g_isZombie[MAXPLAYERS+1]
  345. new g_isBuildBan[MAXPLAYERS+1]
  346. new g_isCustomModel[MAXPLAYERS+1]
  347.  
  348. enum (+= 5000) {
  349. TASK_BUILD = 10000,
  350. TASK_PREPTIME,
  351. TASK_MODELSET,
  352. TASK_RESPAWN,
  353. TASK_HEALTH,
  354. TASK_IDLESOUND
  355. }
  356.  
  357. //Custom Sounds
  358. new g_szRoundStart[][] = {
  359. "[I-E]Sounds/phase_buildtime.wav"
  360. }
  361.  
  362. #define WIN_ZOMBIES "[I-E]Sounds/win_zombies.wav"
  363. #define WIN_BUILDERS "[I-E]Sounds/win_builders2.wav"
  364.  
  365. #define PHASE_PREP "[I-E]Sounds/phase_preptime.wav"
  366. #define PHASE_BUILD "[I-E]Sounds/phase_buildtime2.wav"
  367.  
  368. #define LOCK_OBJECT "buttons/lightswitch2.wav"
  369. #define LOCK_FAIL "buttons/button10.wav"
  370.  
  371. #define GRAB_START "basebuilder/block_grab.wav"
  372. #define GRAB_STOP "basebuilder/block_drop.wav"
  373.  
  374. #define INFECTION "basebuilder/zombie_kill1.wav"
  375.  
  376. new const g_szZombiePain[][] = {
  377. "basebuilder/zombie/pain/pain1.wav",
  378. "basebuilder/zombie/pain/pain2.wav",
  379. "basebuilder/zombie/pain/pain3.wav"
  380. }
  381.  
  382. new const g_szZombieDie[][] = {
  383. "basebuilder/zombie/death/death1.wav",
  384. "basebuilder/zombie/death/death2.wav",
  385. "basebuilder/zombie/death/death3.wav"
  386. }
  387.  
  388. new const g_szZombieIdle[][] = {
  389. "basebuilder/zombie/idle/idle1.wav",
  390. "basebuilder/zombie/idle/idle2.wav",
  391. "basebuilder/zombie/idle/idle3.wav"
  392. }
  393.  
  394. new const g_szZombieHit[][] = {
  395. "basebuilder/zombie/hit/hit1.wav",
  396. "basebuilder/zombie/hit/hit1.wav",
  397. "basebuilder/zombie/hit/hit1.wav"
  398. }
  399.  
  400. new const g_szZombieMiss[][] = {
  401. "basebuilder/zombie/miss/miss1.wav",
  402. "basebuilder/zombie/miss/miss2.wav",
  403. "basebuilder/zombie/miss/miss3.wav"
  404. }
  405.  
  406. //Custom Player Models
  407. new Float:g_fModelsTargetTime
  408. new g_szPlayerModel[MAXPLAYERS+1][32]
  409.  
  410. //Game Name
  411. new g_szModName[32]
  412.  
  413. new g_iCountDown, g_iEntBarrier
  414. new bool:g_boolCanBuild, bool:g_boolPrepTime, bool:g_boolRoundEnded
  415. new g_iFriend[MAXPLAYERS+1]
  416. new CsTeams:g_iTeam[MAXPLAYERS+1], CsTeams:g_iCurTeam[MAXPLAYERS+1]
  417. new bool:g_boolFirstTeam[MAXPLAYERS+1]
  418.  
  419. //Building Stores
  420. new Float:g_fOffset1[MAXPLAYERS+1], Float:g_fOffset2[MAXPLAYERS+1], Float:g_fOffset3[MAXPLAYERS+1]
  421. new g_iOwnedEnt[MAXPLAYERS+1], g_iOwnedEntities[MAXPLAYERS+1]
  422. new Float:g_fEntDist[MAXPLAYERS+1]
  423.  
  424. static const g_szWpnEntNames[][] = { "", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10",
  425. "weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550",
  426. "weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249",
  427. "weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552",
  428. "weapon_ak47", "weapon_knife", "weapon_p90"
  429. }
  430.  
  431. //Weapon Names (For Guns Menu)
  432. static const szWeaponNames[24][23] = { "Schmidt Scout", "XM1014 M4", "Ingram MAC-10", "Steyr AUG A1", "UMP 45", "SG-550 Auto-Sniper",
  433. "IMI Galil", "Famas", "AWP Magnum Sniper", "MP5 Navy", "M249 Para Machinegun", "M3 Super 90", "M4A1 Carbine",
  434. "Schmidt TMP", "G3SG1 Auto-Sniper", "SG-552 Commando", "AK-47 Kalashnikov", "ES P90", "P228 Compact",
  435. "Dual Elite Berettas", "Fiveseven", "USP .45 ACP Tactical", "Glock 18C", "Desert Eagle .50 AE"
  436. }
  437.  
  438. #define MAX_COLORS 24
  439. new const Float:g_fColor[MAX_COLORS][3] = {
  440. {200.0, 000.0, 000.0},
  441. {255.0, 083.0, 073.0},
  442. {255.0, 117.0, 056.0},
  443. {255.0, 174.0, 066.0},
  444. {255.0, 207.0, 171.0},
  445. {252.0, 232.0, 131.0},
  446. {254.0, 254.0, 034.0},
  447. {059.0, 176.0, 143.0},
  448. {197.0, 227.0, 132.0},
  449. {000.0, 150.0, 000.0},
  450. {120.0, 219.0, 226.0},
  451. {135.0, 206.0, 235.0},
  452. {128.0, 218.0, 235.0},
  453. {000.0, 000.0, 255.0},
  454. {146.0, 110.0, 174.0},
  455. {255.0, 105.0, 180.0},
  456. {246.0, 100.0, 175.0},
  457. {205.0, 074.0, 076.0},
  458. {250.0, 167.0, 108.0},
  459. {234.0, 126.0, 093.0},
  460. {180.0, 103.0, 077.0},
  461. {149.0, 145.0, 140.0},
  462. {000.0, 000.0, 000.0},
  463. {255.0, 255.0, 255.0}
  464. }
  465.  
  466. new const Float:g_fRenderAmt[MAX_COLORS] = {
  467. 100.0, //Red
  468. 135.0, //Red Orange
  469. 140.0, //Orange
  470. 120.0, //Yellow Orange
  471. 140.0, //Peach
  472. 125.0, //Yellow
  473. 100.0, //Lemon Yellow
  474. 125.0, //Jungle Green
  475. 135.0, //Yellow Green
  476. 100.0, //Green
  477. 125.0, //Aquamarine
  478. 150.0, //Baby Blue
  479. 090.0, //Sky Blue
  480. 075.0, //Blue
  481. 175.0, //Violet
  482. 150.0, //Hot Pink
  483. 175.0, //Magenta
  484. 140.0, //Mahogany
  485. 140.0, //Tan
  486. 140.0, //Light Brown
  487. 165.0, //Brown
  488. 175.0, //Gray
  489. 125.0, //Black
  490. 125.0 //White
  491. }
  492.  
  493. new const g_szColorName[MAX_COLORS][] = {
  494. "Red",
  495. "Red Orange",
  496. "Orange",
  497. "Yellow Orange",
  498. "Peach",
  499. "Yellow",
  500. "Lemon Yellow",
  501. "Jungle Green",
  502. "Yellow Green",
  503. "Green",
  504. "Aquamarine",
  505. "Baby Blue",
  506. "Sky Blue",
  507. "Blue",
  508. "Violet",
  509. "Hot Pink",
  510. "Magenta",
  511. "Mahogany",
  512. "Tan",
  513. "Light Brown",
  514. "Brown",
  515. "Gray",
  516. "Black",
  517. "White"
  518. }
  519.  
  520. enum {
  521. COLOR_RED = 0, //200, 000, 000
  522. COLOR_REDORANGE, //255, 083, 073
  523. COLOR_ORANGE, //255, 117, 056
  524. COLOR_YELLOWORANGE, //255, 174, 066
  525. COLOR_PEACH, //255, 207, 171
  526. COLOR_YELLOW, //252, 232, 131
  527. COLOR_LEMONYELLOW, //254, 254, 034
  528. COLOR_JUNGLEGREEN, //059, 176, 143
  529. COLOR_YELLOWGREEN, //197, 227, 132
  530. COLOR_GREEN, //000, 200, 000
  531. COLOR_AQUAMARINE, //120, 219, 226
  532. COLOR_BABYBLUE, //135, 206, 235
  533. COLOR_SKYBLUE, //128, 218, 235
  534. COLOR_BLUE, //000, 000, 200
  535. COLOR_VIOLET, //146, 110, 174
  536. COLOR_PINK, //255, 105, 180
  537. COLOR_MAGENTA, //246, 100, 175
  538. COLOR_MAHOGANY, //205, 074, 076
  539. COLOR_TAN, //250, 167, 108
  540. COLOR_LIGHTBROWN, //234, 126, 093
  541. COLOR_BROWN, //180, 103, 077
  542. COLOR_GRAY, //149, 145, 140
  543. COLOR_BLACK, //000, 000, 000
  544. COLOR_WHITE //255, 255, 255
  545. }
  546.  
  547. new g_iColor[MAXPLAYERS+1]
  548. new g_iColorOwner[MAX_COLORS]
  549.  
  550. //Color Menu
  551. new g_iMenuOffset[MAXPLAYERS+1], g_iMenuOptions[MAXPLAYERS+1][8], g_iWeaponPicked[2][MAXPLAYERS+1],
  552. g_iPrimaryWeapon[MAXPLAYERS+1]
  553.  
  554. new bool:g_boolFirstTime[MAXPLAYERS+1], bool:g_boolRepick[MAXPLAYERS+1]
  555.  
  556. new Float:g_fBuildDelay[MAXPLAYERS+1]
  557. #define BUILD_DELAY 0.75
  558.  
  559. #define KEYS_GENERIC (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<9)
  560.  
  561. enum {
  562. ATT_HEALTH = 0,
  563. ATT_SPEED,
  564. ATT_GRAVITY
  565. }
  566.  
  567. //Zombie Classes
  568. new g_iZClasses
  569. new g_iZombieClass[MAXPLAYERS+1]
  570. new bool:g_boolFirstSpawn[MAXPLAYERS+1]
  571. new g_szPlayerClass[MAXPLAYERS+1][32]
  572. new g_iNextClass[MAXPLAYERS+1]
  573. new bool:g_boolArraysCreated
  574. new Array:g_zclass_name
  575. new Array:g_zclass_info
  576. new Array:g_zclass_modelsstart // start position in models array
  577. new Array:g_zclass_modelsend // end position in models array
  578. new Array:g_zclass_playermodel // player models array
  579. new Array:g_zclass_modelindex // model indices array
  580. new Array:g_zclass_clawmodel
  581. new Array:g_zclass_hp
  582. new Array:g_zclass_spd
  583. new Array:g_zclass_grav
  584. new Array:g_zclass_admin
  585. new Array:g_zclass_credits
  586. //new Float:g_fClassMultiplier[MAXPLAYERS+1][3]
  587.  
  588. new Array:g_zclass2_realname, Array:g_zclass2_name, Array:g_zclass2_info,
  589. Array:g_zclass2_modelsstart, Array:g_zclass2_modelsend, Array:g_zclass2_playermodel,
  590. Array:g_zclass2_clawmodel, Array:g_zclass2_hp, Array:g_zclass2_spd,
  591. Array:g_zclass2_grav, Array:g_zclass2_admin, Array:g_zclass2_credits, Array:g_zclass_new
  592.  
  593. //Forwards
  594. new g_fwRoundStart, g_fwPrepStarted, g_fwBuildStarted, g_fwClassPicked,
  595. g_fwPushPull, g_fwGrabEnt_Pre, g_fwGrabEnt_Post, g_fwDropEnt_Pre,
  596. g_fwDropEnt_Post, g_fwNewColor, g_fwLockEnt_Pre, g_fwLockEnt_Post, g_fwDummyResult
  597.  
  598. //Cvars
  599. new g_pcvar_buildtime, g_iBuildTime,
  600. g_pcvar_preptime, g_iPrepTime,
  601. g_pcvar_givenades, g_iGrenadeHE, g_iGrenadeFLASH, g_iGrenadeSMOKE,
  602. g_pcvar_entmindist, Float: g_fEntMinDist,
  603. g_pcvar_entsetdist, Float: g_fEntSetDist,
  604. g_pcvar_entmaxdist, Float: g_fEntMaxDist,
  605. g_pcvar_resetent, g_iResetEnt,
  606. g_pcvar_showmovers, g_iShowMovers,
  607. g_pcvar_lockblocks, g_iLockBlocks,
  608. g_pcvar_lockmax, g_iLockMax,
  609. g_pcvar_colormode, g_iColorMode,
  610. g_pcvar_zombietime, g_iZombieTime,
  611. g_pcvar_infecttime, g_iInfectTime,
  612. g_pcvar_supercut, g_iSupercut,
  613. g_pcvar_gunsmenu, g_iGunsMenu,
  614. g_pcvar_enabled,
  615. g_pcvar_allowedweps
  616.  
  617.  
  618.  
  619. public plugin_precache() {
  620. register_event("CurWeapon", "make_tracer", "be", "1=1", "3>0")
  621. //MODELOS ARMAs
  622.  
  623. precache_generic(Matar_zm)
  624. register_event("CurWeapon", "event_CurWeapon_armas", "be", "1=1")
  625. RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
  626. register_event("CurWeapon", "event_CurWeapon_knife", "be", "1=1")
  627. register_event("CurWeapon", "event_CurWeapon", "be", "1=1")
  628. laser = engfunc(EngFunc_PrecacheModel, "sprites/laserbeam.spr")
  629. engfunc(EngFunc_PrecacheModel, model_deagle_sniper)
  630.  
  631. precache_model("models/v_mp5m203.mdl")
  632. precache_model("models/player/Clasico/Clasico.mdl")
  633. precache_model("models/player/Cangrejo/Cangrejo.mdl")
  634. precache_model("models/player/Clot_Circ/Clot_Circ.mdl")
  635. precache_model("models/player/Fenomeno/Fenomeno.mdl")
  636. precache_model("models/player/Hunter/Hunter.mdl")
  637. precache_model("models/player/Oxido/Oxido.mdl")
  638. precache_model("models/player/Payaso/Payaso.mdl")
  639. precache_model("models/player/Puta/Puta.mdl")
  640. precache_model("models/player/Rapido/Rapido.mdl")
  641. precache_model("models/player/Saltador/Saltador.mdl")
  642. precache_model("models/player/Spiter/Spiter.mdl")
  643. precache_model("models/player/Splinter/Splinter.mdl")
  644. precache_model("models/player/Swarm/Swarm.mdl")
  645. precache_model("models/player/Tankee/Tankee.mdl")
  646. precache_model("models/player/Terrorista/Terrorista.mdl")
  647. precache_model("models/player/Witch/Witch.mdl")
  648. precache_model("models/player/diablo/diablo.mdl")
  649. precache_model("models/player/poison/poison.mdl")
  650. precache_model("models/player/santa/santa.mdl")
  651. precache_model("models/player/scrake/scrake.mdl")
  652. precache_model("models/player/siren/siren.mdl")
  653. precache_model("models/player/smoker/smoker.mdl")
  654. precache_model("models/player/stalker2/stalker2.mdl")
  655. precache_model("models/player/husk/husk.mdl")
  656. precache_model("models/player/hombrelobo/hombrelobo.mdl")
  657. precache_model("models/player/clasico2/clasico2.mdl")
  658. precache_model("models/player/perro/perro.mdl")
  659. precache_model("models/player/suicida/suicida.mdl")
  660. precache_model("models/player/destripador/destripador.mdl")
  661. precache_model("models/player/jockey/jockey.mdl")
  662. precache_model("models/player/nemesis/nemesis.mdl")
  663. precache_model("models/player/radiactivo/radiactivo.mdl")
  664. precache_model("models/player/leyenda/leyenda.mdl")
  665. precache_model("models/player/charger/charger.mdl")
  666. precache_model("models/player/carnicero/carnicero.mdl")
  667. precache_model("models/player/tanke/tanke.mdl")
  668. precache_model("models/player/bull/bull.mdl")
  669. precache_model("models/player/zm_vip/zm_vip.mdl")
  670. precache_model("models/player/Asesino/Asesino.mdl")
  671. precache_model("models/player/Dominante/Dominante.mdl")
  672. precache_model("models/player/Militar/Militar.mdl")
  673. precache_model("models/player/Principiante/Principiante.mdl")
  674. precache_model("models/player/Sobreviviente/Sobreviviente.mdl")
  675. precache_model("models/player/Soldado/Soldado.mdl")
  676. precache_model("models/Knifes_zm/v_clasico.mdl")
  677. precache_model("models/Knifes_zm/knife_scrake.mdl")
  678. precache_model("models/Knifes_zm/manos_necrofago.mdl")
  679. precache_model("models/Knifes_zm/v_bloodyhands.mdl")
  680. precache_model("models/Knifes_zm/v_cangre.mdl")
  681. precache_model("models/Knifes_zm/v_charger_claws.mdl")
  682. precache_model("models/Knifes_zm/v_doghands.mdl")
  683. precache_model("models/Knifes_zm/v_hunter.mdl")
  684. precache_model("models/Knifes_zm/v_husk_hands.mdl")
  685. precache_model("models/Knifes_zm/v_knife_diablo.mdl")
  686. precache_model("models/Knifes_zm/v_knife_jockey.mdl")
  687. precache_model("models/Knifes_zm/v_knife_zombie_smoker.mdl")
  688. precache_model("models/Knifes_zm/v_nemesis.mdl")
  689. precache_model("models/Knifes_zm/v_radiactivo.mdl")
  690. precache_model("models/Knifes_zm/v_salvador_chainsaw.mdl")
  691. precache_model("models/Knifes_zm/v_siren_fakeclaws.mdl")
  692. precache_model("models/Knifes_zm/v_Spitter_hands.mdl")
  693. precache_model("models/Knifes_zm/v_Splinter_hands.mdl")
  694. precache_model("models/Knifes_zm/v_swarm.mdl")
  695. precache_model("models/v_golden_deagle.mdl")
  696. precache_model("models/p_golden_deagle.mdl")
  697. precache_model("models/[I-E]armasgd/v_deagle_new.mdl")
  698. precache_model("models/[I-E]armasgd/v_infinityex2.mdl")
  699. precache_model("models/[I-E]armasgd/p_infinity.mdl")
  700. precache_model("models/[I-E]armasgd/v_ballesta.mdl")
  701. precache_model("models/[I-E]armasgd/p_ballesta.mdl")
  702. precache_model("models/[I-E]armasgd/v_kingcobra.mdl")
  703. precache_model("models/[I-E]armasgd/v_ddeag.mdl")
  704. precache_model("models/[I-E]armasgd/p_ddeag.mdl")
  705. precache_model("models/[I-E]armasgd/v_cartblue.mdl")
  706. precache_model("models/[I-E]armasgd/p_cartblue.mdl")
  707. precache_model("models/[I-E]armasgd/v_dualmp5.mdl")
  708. precache_model("models/[I-E]armasgd/v_sfgun.mdl")
  709. precache_model("models/[I-E]armasgd/p_sfgun.mdl")
  710. precache_model("models/[I-E]armasgd/v_spas12ex2.mdl")
  711. precache_model("models/[I-E]armasgd/p_spas12ex2.mdl")
  712. precache_model("models/[I-E]armasgd/v_golden_xm1014_new.mdl")
  713. precache_model("models/[I-E]armasgd/v_sf1.mdl")
  714. precache_model("models/[I-E]armasgd/p_sf1.mdl")
  715. precache_model("models/[I-E]armasgd/v_m1887.mdl")
  716. precache_model("models/[I-E]armasgd/p_m1887.mdl")
  717. precache_model("models/[I-E]armasgd/v_usas12.mdl")
  718. precache_model("models/[I-E]armasgd/p_usas12.mdl")
  719. precache_model("models/[I-E]armasgd/v_ak47_ultra.mdl")
  720. precache_model("models/[I-E]armasgd/v_golden_ak47.mdl")
  721. precache_model("models/[I-E]armasgd/p_golden_ak47.mdl")
  722. precache_model("models/[I-E]armasgd/v_m4a1_gold_starter.mdl")
  723. precache_model("models/[I-E]armasgd/p_m4a1_gold_starter.mdl")
  724. precache_model("models/[I-E]armasgd/v_aw50.mdl")
  725. precache_model("models/[I-E]armasgd/p_aw50.mdl")
  726. precache_model("models/[I-E]armasgd/v_mk48.mdl")
  727. precache_model("models/[I-E]armasgd/p_mk48.mdl")
  728. precache_model("models/[I-E]armasgd/v_balrog7.mdl")
  729. precache_model("models/[I-E]armasgd/p_balrog7.mdl")
  730. precache_model("models/[I-E]armasgd/v_dbarrel.mdl")
  731. precache_model("models/[I-E]armasgd/p_dbarrel.mdl")
  732. precache_model("models/[I-E]armasgd/v_salamander.mdl")
  733. precache_model("models/[I-E]armasgd/p_salamander.mdl")
  734. precache_model("models/[I-E]cuchillos/v_knife1.mdl")
  735. precache_model("models/[I-E]cuchillos/v_knife2.mdl")
  736. precache_model("models/[I-E]cuchillos/p_knife2.mdl")
  737. precache_model("models/[I-E]cuchillos/v_knife3.mdl")
  738. precache_model("models/[I-E]cuchillos/v_knife4.mdl")
  739. precache_model("models/[I-E]cuchillos/p_knife4.mdl")
  740. precache_model("models/bc/v_m134_hum.mdl")
  741. precache_model("models/bc/p_m134.mdl")
  742. precache_model("models/bc/w_m134.mdl")
  743. precache_sound("spas12ex-1.wav")
  744. precache_sound("sfgun_shoot1.wav")
  745. precache_sound("kingcobra-1.wav")
  746. precache_sound("balrog7.wav")
  747. precache_sound("subir_nivel1.wav")
  748. precache_sound("sfgun_shoot1.wav")
  749. precache_sound("aw50-1.wav")
  750. precache_sound(RESPAWN_ZM)
  751. /*if ((g_pcvar_no_objectives = get_cvar_pointer(CVAR_NAME))) {
  752. new cvar_val[8]
  753. get_pcvar_string(g_pcvar_no_objectives, cvar_val, sizeof cvar_val - 1)
  754. g_no_objectives = read_flags(cvar_val) & OBJTYPE_ALL
  755. }*/
  756. server_cmd("bb_credits_active 0")
  757.  
  758. register_plugin("Base Builder", VERSION, "Tirant")
  759. register_cvar("base_builder", VERSION, FCVAR_SPONLY|FCVAR_SERVER)
  760. set_cvar_string("base_builder", VERSION)
  761.  
  762. g_pcvar_enabled = register_cvar("bb_enabled", "1")
  763.  
  764. if (!get_pcvar_num(g_pcvar_enabled))
  765. return;
  766.  
  767. new szCache[64], i;
  768.  
  769. g_pcvar_buildtime = register_cvar("bb_buildtime", "150") //Build Time
  770. g_iBuildTime = clamp(get_pcvar_num(g_pcvar_buildtime), 30, 300)
  771. g_pcvar_preptime = register_cvar("bb_preptime", "30") //Prep Time
  772. g_iPrepTime = clamp(get_pcvar_num(g_pcvar_preptime), 0, 60)
  773. g_pcvar_zombietime = register_cvar("bb_zombie_respawn_delay", "3") //Zombie Respawn Delay
  774. g_iZombieTime = clamp(get_pcvar_num(g_pcvar_zombietime), 1, 30)
  775. g_pcvar_infecttime = register_cvar("bb_infection_respawn", "5") //Survivor Respawn Infection Delay
  776. g_iInfectTime = clamp(get_pcvar_num(g_pcvar_infecttime), 0, 30)
  777. g_pcvar_showmovers = register_cvar("bb_showmovers", "1") //Show Movers
  778. g_iShowMovers = clamp(get_pcvar_num(g_pcvar_showmovers), 0, 1)
  779. g_pcvar_lockblocks = register_cvar("bb_lockblocks", "1") //Lock blocks
  780. g_iLockBlocks = clamp(get_pcvar_num(g_pcvar_lockblocks), 0, 1)
  781. g_pcvar_lockmax = register_cvar("bb_lockmax", "10") //Lock max
  782. g_iLockMax = clamp(get_pcvar_num(g_pcvar_lockmax), 0, 50)
  783. g_pcvar_colormode = register_cvar("bb_colormode", "1") //Color mode <0/1/2> Menu, one color per player, random
  784. g_iColorMode = clamp(get_pcvar_num(g_pcvar_colormode), 0, 2)
  785. g_pcvar_entmaxdist = register_cvar("bb_max_move_dist", "768") //Push ceiling
  786. g_fEntMaxDist = get_pcvar_float(g_pcvar_entmaxdist)
  787. g_pcvar_entmindist = register_cvar("bb_min_move_dist", "32") //Pull floor
  788. g_fEntMinDist = get_pcvar_float(g_pcvar_entmindist)
  789. g_pcvar_entsetdist = register_cvar("bb_min_dist_set", "64") //Grab set
  790. g_fEntSetDist = get_pcvar_float(g_pcvar_entsetdist)
  791. g_pcvar_resetent = register_cvar("bb_resetblocks", "1") //Reset blocks on new round
  792. g_iResetEnt = clamp(get_pcvar_num(g_pcvar_resetent), 0, 1)
  793. g_pcvar_supercut = register_cvar("bb_zombie_supercut", "0") //One hit kill for zombies
  794. g_iSupercut = clamp(get_pcvar_num(g_pcvar_supercut), 0, 1)
  795. g_pcvar_gunsmenu = register_cvar("bb_gunsmenu", "1") //Use the internal guns menu
  796. g_iGunsMenu = clamp(get_pcvar_num(g_pcvar_gunsmenu), 0, 1)
  797.  
  798. g_pcvar_givenades = register_cvar("bb_roundnades","h") //Grenades
  799. g_pcvar_allowedweps = register_cvar("bb_weapons","abcdeghijlmnqrstuvwx")
  800.  
  801. get_pcvar_string(g_pcvar_givenades, szCache, sizeof szCache - 1)
  802. for (i=0; i<strlen(szCache);i++)
  803. {
  804. switch(szCache[i])
  805. {
  806. case 'h': g_iGrenadeHE++
  807. case 'f': g_iGrenadeFLASH++
  808. case 's': g_iGrenadeSMOKE++
  809. }
  810. }
  811.  
  812. for (i=0; i<sizeof g_szRoundStart; i++) precache_sound(g_szRoundStart[i])
  813. for (i=0; i<sizeof g_szZombiePain;i++) precache_sound(g_szZombiePain[i])
  814. for (i=0; i<sizeof g_szZombieDie;i++) precache_sound(g_szZombieDie[i])
  815. for (i=0; i<sizeof g_szZombieIdle;i++) precache_sound(g_szZombieIdle[i])
  816. for (i=0; i<sizeof g_szZombieHit;i++) precache_sound(g_szZombieHit[i])
  817. for (i=0; i<sizeof g_szZombieMiss;i++) precache_sound(g_szZombieMiss[i])
  818.  
  819. precache_sound(WIN_ZOMBIES)
  820. precache_sound(WIN_BUILDERS)
  821. precache_sound(PHASE_BUILD)
  822. precache_sound(PHASE_PREP)
  823. precache_sound(LOCK_OBJECT)
  824. precache_sound(LOCK_FAIL)
  825. precache_sound(GRAB_START)
  826. precache_sound(GRAB_STOP)
  827.  
  828. if (g_iInfectTime)
  829. precache_sound(INFECTION)
  830.  
  831. i = create_entity("info_bomb_target");
  832. entity_set_origin(i, Float:{8192.0,8192.0,8192.0})
  833.  
  834. i = create_entity("info_map_parameters");
  835. DispatchKeyValue(i, "buying", "3");
  836. DispatchKeyValue(i, "bombradius", "1");
  837. DispatchSpawn(i);
  838.  
  839. g_zclass_name = ArrayCreate(32, 1)
  840. g_zclass_info = ArrayCreate(32, 1)
  841. g_zclass_modelsstart = ArrayCreate(1, 1)
  842. g_zclass_modelsend = ArrayCreate(1, 1)
  843. g_zclass_playermodel = ArrayCreate(32, 1)
  844. g_zclass_modelindex = ArrayCreate(1, 1)
  845. g_zclass_clawmodel = ArrayCreate(32, 1)
  846. g_zclass_hp = ArrayCreate(1, 1)
  847. g_zclass_spd = ArrayCreate(1, 1)
  848. g_zclass_grav = ArrayCreate(1, 1)
  849. g_zclass_admin = ArrayCreate(1, 1)
  850. g_zclass_credits = ArrayCreate(1, 1)
  851.  
  852. g_zclass2_realname = ArrayCreate(32, 1)
  853. g_zclass2_name = ArrayCreate(32, 1)
  854. g_zclass2_info = ArrayCreate(32, 1)
  855. g_zclass2_modelsstart = ArrayCreate(1, 1)
  856. g_zclass2_modelsend = ArrayCreate(1, 1)
  857. g_zclass2_playermodel = ArrayCreate(32, 1)
  858. g_zclass2_clawmodel = ArrayCreate(32, 1)
  859. g_zclass2_hp = ArrayCreate(1, 1)
  860. g_zclass2_spd = ArrayCreate(1, 1)
  861. g_zclass2_grav = ArrayCreate(1, 1)
  862. g_zclass2_admin = ArrayCreate(1, 1)
  863. g_zclass2_credits = ArrayCreate(1, 1)
  864. g_zclass_new = ArrayCreate(1, 1)
  865.  
  866. g_boolArraysCreated = true
  867.  
  868.  
  869. return;
  870. }
  871. public event_CurWeapon_armas(id) {
  872. if(!is_user_alive(id))
  873. return 1
  874.  
  875. new weaponid = read_data(2)
  876.  
  877. if(g_arma[id] == 1) {
  878. if(weaponid == CSW_DEAGLE) {
  879. set_pev(id, pev_viewmodel2 , "models/v_golden_deagle.mdl", MODEL)
  880. set_pev(id, pev_weaponmodel2, "models/p_golden_deagle.mdl", MODEL)
  881. }
  882. }
  883. if(g_arma[id] == 3) {
  884. if(weaponid == CSW_DEAGLE) {
  885. set_pev(id, pev_viewmodel2 , "models/[I-E]armasgd/v_deagle_new.mdl", MODEL, CARPETA)
  886. //set_pev(id, pev_weaponmodel2, "%s/%s/", MODEL, CARPETA)
  887. }
  888. }
  889. if(g_arma[id] == 4) {
  890. if(weaponid == CSW_ELITE) {
  891. set_pev(id, pev_viewmodel2 , "models/[I-E]armasgd/v_infinityex2.mdl", MODEL, CARPETA)
  892. set_pev(id, pev_weaponmodel2, "models/[I-E]armasgd/p_infinity.mdl", MODEL, CARPETA)
  893. }
  894. }
  895. if(g_arma[id] == 5) {
  896. if(weaponid == CSW_SCOUT) {
  897. set_pev(id, pev_viewmodel2 , "models/[I-E]armasgd/v_ballesta.mdl", MODEL, CARPETA)
  898. set_pev(id, pev_weaponmodel2, "models/[I-E]armasgd/p_ballesta.mdl", MODEL, CARPETA)
  899. }
  900. }
  901. if(g_arma[id] == 6) {
  902. if(weaponid == CSW_DEAGLE) {
  903. set_pev(id, pev_viewmodel2 , "models/[I-E]armasgd/v_kingcobra.mdl", MODEL, CARPETA)
  904. //set_pev(id, pev_weaponmodel2, "%s/%s/", MODEL, CARPETA)
  905. }
  906. }
  907. if(g_arma[id] == 8) {
  908. if(weaponid == CSW_DEAGLE) {
  909. set_pev(id, pev_viewmodel2 , "models/[I-E]armasgd/v_ddeag.mdl", MODEL, CARPETA)
  910. set_pev(id, pev_weaponmodel2, "models/[I-E]armasgd/p_ddeag.mdl", MODEL, CARPETA)
  911. }
  912. }
  913. if(g_arma[id] == 10) {
  914. if(weaponid == CSW_TMP) {
  915. set_pev(id, pev_viewmodel2 , "models/[I-E]armasgd/v_cartblue.mdl", MODEL, CARPETA)
  916. set_pev(id, pev_weaponmodel2, "models/[I-E]armasgd/p_cartblue.mdl", MODEL, CARPETA)
  917. }
  918. }
  919. if(g_arma[id] == 12) {
  920. if(weaponid == CSW_MP5NAVY) {
  921. set_pev(id, pev_viewmodel2 , "models/[I-E]armasgd/v_dualmp5.mdl", MODEL, CARPETA)
  922. //set_pev(id, pev_weaponmodel2, "%s/%s/", MODEL, CARPETA)
  923. }
  924. }
  925. if(g_arma[id] == 13) {
  926. if(weaponid == CSW_P90) {
  927. set_pev(id, pev_viewmodel2 , "models/[I-E]armasgd/v_sfgun.mdl", MODEL, CARPETA)
  928. set_pev(id, pev_weaponmodel2, "models/[I-E]armasgd/p_sfgun.mdl", MODEL, CARPETA)
  929. }
  930. }
  931. if(g_arma[id] == 15) {
  932. if(weaponid == CSW_M3) {
  933. set_pev(id, pev_viewmodel2 , "models/[I-E]armasgd/v_spas12ex2.mdl", MODEL, CARPETA)
  934. set_pev(id, pev_weaponmodel2, "models/[I-E]armasgd/p_spas12ex2.mdl", MODEL, CARPETA)
  935. }
  936. }
  937. if(g_arma[id] == 16) {
  938. if(weaponid == CSW_XM1014) {
  939. set_pev(id, pev_viewmodel2 , "models/[I-E]armasgd/v_golden_xm1014_new.mdl", MODEL, CARPETA)
  940. //set_pev(id, pev_weaponmodel2, "%s/%s/p_golden_xm1014.mdl", MODEL, CARPETA)
  941. }
  942. }
  943. if(g_arma[id] == 18) {
  944. if(weaponid == CSW_UMP45) {
  945. set_pev(id, pev_viewmodel2 , "models/[I-E]armasgd/v_sf1.mdl", MODEL, CARPETA)
  946. set_pev(id, pev_weaponmodel2, "models/[I-E]armasgd/p_sf1.mdl", MODEL, CARPETA)
  947. }
  948. }
  949. if(g_arma[id] == 29) {
  950. if(weaponid == CSW_M3) {
  951. set_pev(id, pev_viewmodel2 , "models/[I-E]armasgd/v_dbarrel.mdl", MODEL, CARPETA)
  952. set_pev(id, pev_weaponmodel2, "models/[I-E]armasgd/p_dbarrel.mdl", MODEL, CARPETA)
  953. }
  954. }
  955. if(g_arma[id] == 20) {
  956. if(weaponid == CSW_M3) {
  957. set_pev(id, pev_viewmodel2 , "models/[I-E]armasgd/v_m1887.mdl", MODEL, CARPETA)
  958. set_pev(id, pev_weaponmodel2, "models/[I-E]armasgd/p_m1887.mdl", MODEL, CARPETA)
  959. }
  960. }
  961. if(g_arma[id] == 21) {
  962. if(weaponid == CSW_M3) {
  963. set_pev(id, pev_viewmodel2 , "models/[I-E]armasgd/v_usas12.mdl", MODEL, CARPETA)
  964. set_pev(id, pev_weaponmodel2, "models/[I-E]armasgd/p_usas12.mdl", MODEL, CARPETA)
  965. }
  966. }
  967. if(g_arma[id] == 23) {
  968. if(weaponid == CSW_AK47) {
  969. set_pev(id, pev_viewmodel2 , "models/[I-E]armasgd/v_ak47_ultra.mdl", MODEL, CARPETA)
  970. }
  971. }
  972. if(g_arma[id] == 24) {
  973. if(weaponid == CSW_AK47) {
  974. set_pev(id, pev_viewmodel2 , "models/[I-E]armasgd/v_golden_ak47.mdl", MODEL, CARPETA)
  975. set_pev(id, pev_weaponmodel2, "models/[I-E]armasgd/p_golden_ak47.mdl", MODEL, CARPETA)
  976. }
  977. }
  978. if(g_arma[id] == 25) {
  979. if(weaponid == CSW_M4A1) {
  980. set_pev(id, pev_viewmodel2 , "models/[I-E]armasgd/v_m4a1_gold_starter.mdl", MODEL, CARPETA)
  981. set_pev(id, pev_weaponmodel2, "models/[I-E]armasgd/p_m4a1_gold_starter.mdl", MODEL, CARPETA)
  982. }
  983. }
  984. if(g_arma[id] == 27) {
  985. if(weaponid == CSW_AWP) {
  986. set_pev(id, pev_viewmodel2 , "models/[I-E]armasgd/v_aw50.mdl", MODEL, CARPETA)
  987. set_pev(id, pev_weaponmodel2, "models/[I-E]armasgd/p_aw50.mdl", MODEL, CARPETA)
  988. }
  989. }
  990. if(g_arma[id] == 32) {
  991. if(weaponid == CSW_M249) {
  992. set_pev(id, pev_viewmodel2 , "models/[I-E]armasgd/v_mk48.mdl", MODEL, CARPETA)
  993. set_pev(id, pev_weaponmodel2, "models/[I-E]armasgd/p_mk48.mdl", MODEL, CARPETA)
  994. }
  995. }
  996. if(g_arma[id] == 33) {
  997. if(weaponid == CSW_M249) {
  998. set_pev(id, pev_viewmodel2 , "models/[I-E]armasgd/v_balrog7.mdl", MODEL, CARPETA)
  999. set_pev(id, pev_weaponmodel2, "models/[I-E]armasgd/p_balrog7.mdl", MODEL, CARPETA)
  1000. }
  1001. }
  1002. if(g_arma[id] == 36) {
  1003. if(weaponid == CSW_M249) {
  1004. set_pev(id, pev_viewmodel2 , "models/bc/v_m134_hum.mdl", MODEL, CARPETA)
  1005. set_pev(id, pev_weaponmodel2, "models/bc/p_m134.mdl", MODEL, CARPETA)
  1006. }
  1007. }
  1008. if(g_arma[id] == 17) {
  1009. if(weaponid == CSW_M249) {
  1010. set_pev(id, pev_viewmodel2 , "models/[I-E]armasgd/v_salamander.mdl", MODEL, CARPETA)
  1011. set_pev(id, pev_weaponmodel2, "models/[I-E]armasgd/p_salamander.mdl", MODEL, CARPETA)
  1012. }
  1013. }
  1014. if(Hm_princ[id]) {
  1015. if(weaponid == CSW_KNIFE) {
  1016. set_pev(id, pev_viewmodel2, "models/[I-E]cuchillos/v_knife1.mdl")
  1017.  
  1018.  
  1019. }
  1020. }
  1021. if(Hm_Sobre[id]) {
  1022. if(weaponid == CSW_KNIFE) {
  1023. set_pev(id, pev_viewmodel2, "models/[I-E]cuchillos/v_knife1.mdl")
  1024.  
  1025. }
  1026. }
  1027. if(Hm_Domin[id]) {
  1028. if(weaponid == CSW_KNIFE) {
  1029. set_pev(id, pev_viewmodel2, "models/[I-E]cuchillos/v_knife2.mdl")
  1030. set_pev(id, pev_weaponmodel2, "models/[I-E]cuchillos/p_knife2.mdl")
  1031.  
  1032. }
  1033. }
  1034. if(Hm_Solda[id]) {
  1035. if(weaponid == CSW_KNIFE) {
  1036. set_pev(id, pev_viewmodel2, "models/[I-E]cuchillos/v_knife2.mdl")
  1037. set_pev(id, pev_weaponmodel2, "models/[I-E]cuchillos/p_knife2.mdl")
  1038.  
  1039. }
  1040. }
  1041. if(Hm_Milit[id]) {
  1042. if(weaponid == CSW_KNIFE) {
  1043. set_pev(id, pev_viewmodel2, "models/[I-E]cuchillos/v_knife3.mdl")
  1044.  
  1045. }
  1046. }
  1047. if(Hm_Assasins[id]) {
  1048. if(weaponid == CSW_KNIFE) {
  1049. set_pev(id, pev_viewmodel2, "models/[I-E]cuchillos/v_knife4.mdl")
  1050. set_pev(id, pev_weaponmodel2, "models/[I-E]cuchillos/p_knife4.mdl")
  1051.  
  1052. }
  1053. }
  1054. if(Hm_Adm[id]) {
  1055. if(weaponid == CSW_KNIFE) {
  1056. set_pev(id, pev_viewmodel2, "models/[I-E]cuchillos/v_knife2.mdl")
  1057. set_pev(id, pev_weaponmodel2, "models/[I-E]cuchillos/p_knife2.mdl")
  1058.  
  1059. }
  1060. }
  1061. return 0
  1062. }
  1063.  
  1064. public make_tracer(id)
  1065. {
  1066. static clip, ammo
  1067. new wpnid = get_user_weapon(id,clip,ammo)
  1068.  
  1069. if(wpnid == menu_death[g_arma[id]][item_id])
  1070. {
  1071. new vec1[3], vec2[3]
  1072. get_user_origin(id, vec1, 1) // origin; your camera point.
  1073. get_user_origin(id, vec2, 3) // termina; where your bullet goes (4 is cs-only)
  1074.  
  1075. message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
  1076. write_byte (0) //TE_BEAMENTPOINTS
  1077. write_coord(vec1[0])
  1078. write_coord(vec1[1])
  1079. write_coord(vec1[2])
  1080. write_coord(vec2[0])
  1081. write_coord(vec2[1])
  1082. write_coord(vec2[2])
  1083. write_short(laser)
  1084. write_byte(1) // framestart
  1085. write_byte(5) // framerate
  1086. write_byte(2) // life
  1087. write_byte(12) // width
  1088. write_byte(0) // noise
  1089. write_byte(menu_death[g_arma[id]][Rojo])
  1090. write_byte(menu_death[g_arma[id]][Verde])
  1091. write_byte(menu_death[g_arma[id]][Azul])
  1092. write_byte(255) // brightness
  1093. write_byte(150) // speed
  1094. message_end()
  1095. }
  1096. }
  1097.  
  1098. public plugin_cfg() {
  1099. for(new i = 1; i <= g_maxplayers; i++)
  1100. Party_Ids[i] = ArrayCreate(1, 1)
  1101.  
  1102. g_boolArraysCreated = false
  1103. }
  1104.  
  1105. public plugin_init() {
  1106. if (!get_pcvar_num(g_pcvar_enabled))
  1107. return;
  1108.  
  1109. nfv_file("Datos_bb", VaultFile, charsmax(VaultFile))
  1110.  
  1111. formatex(g_szModName, charsmax(g_szModName), "Base Builder %s", VERSION)
  1112.  
  1113. register_clcmd("say", "cmdSay");
  1114. register_clcmd("say_team", "cmdSay");
  1115.  
  1116. //Added for old users
  1117. register_clcmd("+grab", "cmdGrabEnt");
  1118. register_clcmd("-grab", "cmdStopEnt");
  1119.  
  1120. register_clcmd("bb_lock", "cmdLockBlock",0, " - Aim at a block to lock it");
  1121. register_clcmd("bb_claim", "cmdLockBlock",0, " - Aim at a block to lock it");
  1122.  
  1123. register_clcmd("bb_buildban", "cmdBuildBan",0, " <player>");
  1124. register_clcmd("bb_unbuildban", "cmdBuildBan",0, " <player>");
  1125. register_clcmd("bb_bban", "cmdBuildBan",0, " <player>");
  1126.  
  1127. register_clcmd("bb_swap", "cmdSwap",0, " <player>");
  1128. register_clcmd("bb_revive", "cmdRevive",0, " <player>");
  1129. if (g_iGunsMenu) register_clcmd("bb_guns", "cmdGuns",0, " <player>");
  1130. register_clcmd("bb_startround", "cmdStartRound",0, " - Starts the round");
  1131.  
  1132. register_logevent("logevent_round_start",2, "1=Round_Start")
  1133. register_logevent("logevent_round_end", 2, "1=Round_End")
  1134.  
  1135. register_message(get_user_msgid("TextMsg"), "msgRoundEnd")
  1136. register_message(get_user_msgid("TextMsg"), "msgSendAudio")
  1137. register_message(get_user_msgid("StatusIcon"), "msgStatusIcon");
  1138. register_message(get_user_msgid("Health"), "msgHealth");
  1139. register_message(get_user_msgid("StatusValue"), "msgStatusValue")
  1140. register_message(get_user_msgid("TeamInfo"), "msgTeamInfo");
  1141.  
  1142. register_menucmd(register_menuid("ColorsSelect"),KEYS_GENERIC,"colors_pushed")
  1143. register_menucmd(register_menuid("ZClassSelect"),KEYS_GENERIC,"zclass_pushed")
  1144. if (g_iGunsMenu)
  1145. {
  1146. register_menucmd(register_menuid("WeaponMethodMenu"),(1<<0)|(1<<1)|(1<<2),"weapon_method_pushed")
  1147. register_menucmd(register_menuid("PrimaryWeaponSelect"),KEYS_GENERIC,"prim_weapons_pushed")
  1148. register_menucmd(register_menuid("SecWeaponSelect"),KEYS_GENERIC,"sec_weapons_pushed")
  1149. }
  1150.  
  1151. register_event("HLTV", "ev_RoundStart", "a", "1=0", "2=0")
  1152. register_event("AmmoX", "ev_AmmoX", "be", "1=1", "1=2", "1=3", "1=4", "1=5", "1=6", "1=7", "1=8", "1=9", "1=10")
  1153. register_event("Health", "ev_Health", "be", "1>0");
  1154. register_event("StatusValue", "ev_SetTeam", "be", "1=1");
  1155. register_event("StatusValue", "ev_ShowStatus", "be", "1=2", "2!0");
  1156. register_event("StatusValue", "ev_HideStatus", "be", "1=1", "2=0");
  1157.  
  1158. RegisterHam(Ham_Touch, "weapon_shield","ham_WeaponCleaner_Post", 1)
  1159. RegisterHam(Ham_Touch, "weaponbox", "ham_WeaponCleaner_Post", 1)
  1160. RegisterHam(Ham_Spawn, "player", "ham_PlayerSpawn_Post", 1)
  1161. RegisterHam(Ham_TakeDamage, "player", "ham_TakeDamage")
  1162. for (new i = 1; i < sizeof g_szWpnEntNames; i++)
  1163. if (g_szWpnEntNames[i][0]) RegisterHam(Ham_Item_Deploy, g_szWpnEntNames[i], "ham_ItemDeploy_Post", 1)
  1164.  
  1165. register_forward(FM_GetGameDescription, "fw_GetGameDescription")
  1166. register_forward(FM_SetClientKeyValue, "fw_SetClientKeyValue")
  1167. register_forward(FM_ClientUserInfoChanged, "fw_ClientUserInfoChanged")
  1168. register_forward(FM_CmdStart, "fw_CmdStart");
  1169. register_forward(FM_PlayerPreThink, "fw_PlayerPreThink")
  1170. register_forward(FM_EmitSound, "fw_EmitSound")
  1171. register_forward(FM_ClientKill, "fw_Suicide")
  1172. if (g_iShowMovers)
  1173. register_forward(FM_TraceLine, "fw_Traceline")
  1174.  
  1175. register_clcmd("buy", "clcmd_buy")
  1176.  
  1177. pico = CreateHudSyncObj()
  1178. party_hud = CreateHudSyncObj()
  1179. //Team Handlers
  1180. register_message(get_user_msgid("ShowMenu"), "message_show_menu")
  1181. register_message(get_user_msgid("VGUIMenu"), "message_vgui_menu")
  1182.  
  1183. set_msg_block(get_user_msgid("ClCorpse"), BLOCK_SET)
  1184.  
  1185. g_iMaxPlayers = get_maxplayers()
  1186. g_HudSync = CreateHudSyncObj();
  1187. g_msgSayText = get_user_msgid("SayText")
  1188. g_msgStatusText = get_user_msgid("StatusText");
  1189.  
  1190. g_iEntBarrier = find_ent_by_tname( -1, "barrier" );
  1191.  
  1192. //Custom Forwards
  1193. g_fwRoundStart = CreateMultiForward("bb_round_started", ET_IGNORE)
  1194. g_fwPrepStarted = CreateMultiForward("bb_prepphase_started", ET_IGNORE)
  1195. g_fwBuildStarted = CreateMultiForward("bb_buildphase_started", ET_IGNORE)
  1196. g_fwClassPicked = CreateMultiForward("bb_zombie_class_picked", ET_IGNORE, FP_CELL, FP_CELL)
  1197. g_fwPushPull = CreateMultiForward("bb_block_pushpull", ET_IGNORE, FP_CELL, FP_CELL, FP_CELL)
  1198. g_fwGrabEnt_Pre = CreateMultiForward("bb_grab_pre", ET_IGNORE, FP_CELL, FP_CELL)
  1199. g_fwGrabEnt_Post = CreateMultiForward("bb_grab_post", ET_IGNORE, FP_CELL, FP_CELL)
  1200. g_fwDropEnt_Pre = CreateMultiForward("bb_drop_pre", ET_IGNORE, FP_CELL, FP_CELL)
  1201. g_fwDropEnt_Post = CreateMultiForward("bb_drop_post", ET_IGNORE, FP_CELL, FP_CELL)
  1202. g_fwNewColor = CreateMultiForward("bb_new_color", ET_IGNORE, FP_CELL, FP_CELL)
  1203. g_fwLockEnt_Pre = CreateMultiForward("bb_lock_pre", ET_IGNORE, FP_CELL, FP_CELL)
  1204. g_fwLockEnt_Post = CreateMultiForward("bb_lock_post", ET_IGNORE, FP_CELL, FP_CELL)
  1205.  
  1206. register_dictionary("basebuilder.txt");
  1207.  
  1208. //====BB APARTE
  1209. register_concmd("amx_level", "cmd_dar_nivel", ADMIN_RCON, "*Modo de uso amx_egp_level <name> <cantidad>")
  1210. register_concmd("amx_reset", "cmd_dar_reset", ADMIN_RCON, "*Modo de uso amx_egp_level <name> <cantidad>")
  1211. register_concmd("amx_puntos", "cmd_dar_puntos", ADMIN_RCON, "*Modo de uso amx_egp_level <name> <cantidad>")
  1212. register_concmd("amx_bbpacks", "cmd_dar_bbpacks", ADMIN_RCON, "*Modo de uso amx_egp_level <name> <cantidad>")
  1213. register_concmd("amx_exp", "cmd_dar_exp", ADMIN_RCON, "*Modo de uso amx_egp_level <name> <cantidad>")
  1214.  
  1215.  
  1216. RegisterHam(Ham_Spawn, "player", "fw_spawn_dar_zm", 1)
  1217. RegisterHam(Ham_Spawn, "player", "fw_spawn_dar_ct", 1)
  1218. RegisterHam(Ham_Spawn, "player", "fw_spawn", 1)
  1219. RegisterHam(Ham_Killed, "player", "fw_player_killed")
  1220.  
  1221. register_event("HLTV", "event_round_start_dos", "a", "1=0", "2=0")
  1222.  
  1223. #if defined Hook_Chooseteam
  1224. register_clcmd("chooseteam", "chose")
  1225. register_clcmd("jointeam", "chose")
  1226. #endif
  1227.  
  1228. register_clcmd("say /respawn", "Revivir_XD")
  1229. register_clcmd("Escribe_Tu_Recomendacion", "Consejo_ASD")
  1230.  
  1231. register_menu("Menu_Nvl", KEYSMENU, "handler_nvl_c")
  1232. register_menu("Game Menu", KEYSMENU, "Menu_Reset")
  1233. register_menu("Menu_Vip", KEYSMENU, "Menu_Vip_handler")
  1234. register_menu("Menu_cuenta", KEYSMENU, "handler_cuenta_x")
  1235. register_menu("Menu_plugin", KEYSMENU, "handler_plugin")
  1236. register_clcmd("say", "cmdSay_say")
  1237. register_clcmd("say_team", "cmdSayTeam_say")
  1238. maxplayers = get_maxplayers()
  1239. SaysText = get_user_msgid ("SayText")
  1240. register_message(SaysText, "MsgDuplicate")
  1241.  
  1242. g_msgSayText = get_user_msgid("SayText")
  1243. Hud_Datos = CreateHudSyncObj()
  1244.  
  1245. RegisterHam(Ham_Spawn, "player", "fw_spawn_x", 1)
  1246. //register_forward(FM_PlayerPreThink, "fw_PlayerPreThink_show")
  1247. register_forward(FM_CmdStart, "fwCmdStart");
  1248.  
  1249. RegisterHam(Ham_Spawn, "player", "fwPlayerSpawnPost", 1);
  1250. RegisterHam(Ham_Killed, "player", "fwPlayerKilled");
  1251. RegisterHam(Ham_Weapon_Reload, "weapon_deagle", "fwWeaponReload");
  1252. RegisterHam(Ham_Item_Deploy, "weapon_deagle", "fwItemDeployPost", 1);
  1253.  
  1254. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_m3", "fw_m3_PrimaryAttack_Post", 1)
  1255. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_m249", "fw_m2_PrimaryAttack_Post", 1)
  1256. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_deagle", "fw_deagle_PrimaryAttack_Post", 1)
  1257. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_ump45", "fw_um_PrimaryAttack_Post", 1)
  1258. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_p90", "fw_p90_PrimaryAttack_Post", 1)
  1259. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_awp", "fw_awp_PrimaryAttack_Post", 1)
  1260.  
  1261. //register_forward(FM_SetModel,"fw_SetModel", 1);
  1262. //CUENTAS
  1263.  
  1264. register_forward(FM_ClientUserInfoChanged, "fw_ClientUserInfoChanged")
  1265.  
  1266. register_forward(FM_ClientUserInfoChanged, "NoNameChange")
  1267. register_message(get_user_msgid("ShowMenu"),"message_showmenu")
  1268. register_message(get_user_msgid("VGUIMenu"),"message_vguimenu")
  1269.  
  1270. register_clcmd("INGRESAR_PASSWORD","cmd_password")
  1271. register_clcmd("INGRESAR_NICK","cmd_nick")
  1272.  
  1273. gMsg = CreateHudSyncObj()
  1274.  
  1275. //PARTY
  1276. register_clcmd("say /party", "cmdParty")
  1277. register_clcmd("say_team", "cmdSayTeam")
  1278.  
  1279. cvar_time_acept = register_cvar("party_time_acept","15")
  1280. cvar_max_players = register_cvar("party_max_players","3")
  1281. cvar_allow_bots = register_cvar("party_allow_bots","0")
  1282.  
  1283. g_maxplayers = get_maxplayers()
  1284. g_MsgSayTexts = get_user_msgid("SayText")
  1285.  
  1286. g_MenuCallback[MASTER] = menu_makecallback("check_master")
  1287. g_MenuCallback[USER] = menu_makecallback("check_user")
  1288. }
  1289. public fw_p90_PrimaryAttack_Post(p90) {
  1290. new id = get_pdata_cbase(p90, 41, 4)
  1291. if(is_user_alive(id) && g_arma[id] == 13) {
  1292. emit_sound(id, CHAN_AUTO, "sfgun_shoot1.wav", VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  1293. }
  1294. }
  1295. public fw_awp_PrimaryAttack_Post(awp) {
  1296. new id = get_pdata_cbase(awp, 41, 4)
  1297. if(is_user_alive(id) && g_arma[id] == 27) {
  1298. emit_sound(id, CHAN_AUTO, "aw50-1.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  1299. }
  1300. }
  1301. public fw_m3_PrimaryAttack_Post(m3)
  1302. {
  1303. new id = get_pdata_cbase(m3, 41, 4)
  1304. if(is_user_alive(id) && g_arma[id] == 15)
  1305. {
  1306. emit_sound(id, CHAN_AUTO, "spas12ex-1.wav", VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  1307. set_pdata_float(m3, 46, 0.2, 4)
  1308. set_pdata_float(m3, 46, 0.2, 4)
  1309. set_pdata_float(m3, 46, 0.2, 4)
  1310. }
  1311. }
  1312. public fw_m2_PrimaryAttack_Post(m2) {
  1313. new id = get_pdata_cbase(m2, 41, 4)
  1314. if(is_user_alive(id) && g_arma[id] == 33) {
  1315. emit_sound(id, CHAN_AUTO, "balrog7.wav", VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  1316. }
  1317. }
  1318. public fw_deagle_PrimaryAttack_Post(deagle) {
  1319. new id = get_pdata_cbase(deagle, 41, 4)
  1320. if(is_user_alive(id) && g_arma[id] == 6) {
  1321. emit_sound(id, CHAN_AUTO, "kingcobra-1.wav", VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  1322. }
  1323. if(is_user_alive(id) && g_arma[id] == 1) {
  1324. emit_sound(id, CHAN_AUTO, "kingcobra-1.wav", VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  1325. }
  1326. }
  1327. public fw_um_PrimaryAttack_Post(ump) {
  1328. new id = get_pdata_cbase(ump, 41, 4)
  1329. if(is_user_alive(id) && g_arma[id] == 18) {
  1330. emit_sound(id, CHAN_AUTO, "sfgun_shoot1.wav", VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  1331. }
  1332. }
  1333. public Revivir_XD(id) {
  1334. if(is_user_alive(id)) {
  1335. print_EasyChat(id, "\g%s\nTienes que estar Muerto para revivir", Tag)
  1336. }
  1337. else {
  1338. ExecuteHamB(Ham_CS_RoundRespawn, id)
  1339. }
  1340. }
  1341.  
  1342. new NameEquipo[3][] = {
  1343. "Espectador",
  1344. "Terrorista",
  1345. "Anti-Terrorista"
  1346. }
  1347.  
  1348. public cmdSay_say(id) {
  1349. new Mensaje[192], Name[33], Vivo = is_user_alive(id), Admin = 0
  1350. get_user_name(id, Name, 32)
  1351.  
  1352. if(get_user_flags(id) & ADMIN_IMMUNITY) { //ADM_ROOT
  1353. Admin = 1
  1354. }
  1355. else if(get_user_flags(id) & ADMIN_USER) {
  1356. Admin = 2
  1357. }
  1358.  
  1359. read_args(Mensaje, 191)
  1360. remove_quotes(Mensaje)
  1361. replace_all(Mensaje, charsmax(Mensaje), "%", "")
  1362. if (Mensaje[0] == '@' || Mensaje[0] == '/' || Mensaje[0] == '!' || equal (Mensaje, ""))
  1363. return PLUGIN_CONTINUE
  1364.  
  1365. if(!is_valid_msg(Mensaje)) return PLUGIN_CONTINUE
  1366.  
  1367. switch(Admin) {
  1368. case 2: { format(Mensaje, 191, "^1%s ^4[Player] ^3%s ^4[lvl:%d][Rs:%d]^1: ^1%s", Vivo ? "" : "*Muerto*", Name, g_level[id], g_reset[id], Mensaje);}
  1369. case 1: { format(Mensaje, 191, "^1%s ^4[Admin] ^3%s ^4[lvl:%d][Rs:%d]^1: ^4%s", Vivo ? "" : "*Muerto*", Name, g_level[id], g_reset[id], Mensaje);}
  1370. }
  1371.  
  1372. for(new i = 1; i <= maxplayers; i++) {
  1373. if(!is_user_connected(i))
  1374. continue
  1375.  
  1376. /*if(get_user_team(i) != Equipo)
  1377. continue*/
  1378.  
  1379. if(Vivo && is_user_alive(i) || !Vivo && !is_user_alive(i)) {
  1380. message_begin(MSG_ONE, get_user_msgid("SayText"), {0, 0, 0}, i)
  1381. write_byte(id)
  1382. write_string(Mensaje)
  1383. message_end()
  1384. }
  1385. }
  1386. return PLUGIN_CONTINUE
  1387. }
  1388.  
  1389. public cmdSayTeam_say(id){
  1390. new Mensaje[192], Name[33], Vivo = is_user_alive(id), Equipo = get_user_team(id); get_user_name(id, Name, 32)
  1391.  
  1392. new Admin = 0
  1393. if(get_user_flags(id) & ADMIN_IMMUNITY) //ADM_ROOT
  1394. Admin = 1
  1395.  
  1396. else if(get_user_flags(id) & ADMIN_USER)
  1397. Admin = 2
  1398.  
  1399. read_args(Mensaje, 191)
  1400. remove_quotes(Mensaje)
  1401. replace_all(Mensaje, charsmax(Mensaje), "%", "")
  1402. if (Mensaje[0] == '@' || Mensaje[0] == '/' || equal (Mensaje, ""))
  1403. return PLUGIN_CONTINUE
  1404.  
  1405. if(!is_valid_msg(Mensaje))
  1406. return PLUGIN_CONTINUE
  1407.  
  1408. switch(Admin) {
  1409. case 2: { format(Mensaje, 191, "^1%s(%s) ^4[Player] ^3%s ^4[Lvl:%d]^1: ^1%s", Vivo ? "" : "*Muerto*", NameEquipo[Equipo], Name, g_level[id], Mensaje);}
  1410. case 1: { format(Mensaje, 191, "^1%s(%s) ^4[Admin] ^3%s ^4[Lvl:%d]^1: ^4%s", Vivo ? "" : "*Muerto*", NameEquipo[Equipo], Name, g_level[id], Mensaje);}
  1411. }
  1412. for(new i = 1; i <= maxplayers; i++) {
  1413. if(!is_user_connected(i))
  1414. continue
  1415.  
  1416. if(get_user_team(i) != Equipo)
  1417. continue
  1418.  
  1419. if(Vivo && is_user_alive(i) || !Vivo && !is_user_alive(i)) {
  1420. message_begin(MSG_ONE, get_user_msgid("SayText"), {0, 0, 0}, i)
  1421. write_byte(id)
  1422. write_string(Mensaje)
  1423. message_end()
  1424. }
  1425. }
  1426. return PLUGIN_CONTINUE
  1427. }
  1428.  
  1429. public MsgDuplicate(id){
  1430. return PLUGIN_HANDLED
  1431. }
  1432.  
  1433. bool:is_valid_msg(const Mensaje[]){
  1434. if(!strlen(Mensaje)){
  1435. return false
  1436. }
  1437. return true
  1438. }
  1439. public tienda_zm(id) {
  1440.  
  1441. new menu_zm = menu_create("\r[I-E] base builder 9.5+lvl^n\w[Menu de shop zm]", "handler_tienda_zm")
  1442.  
  1443. menu_additem(menu_zm, (g_bbpacks[id] >= 8)?"\y500 de Vida\r[\yBBPacks : 8\r]":"\d500 de Vida\r[\yBBPacks : 8\r]", "1")
  1444.  
  1445. menu_additem(menu_zm, (g_bbpacks[id] >= 10)?"\yGravedad\w[30 Sgds]\r[\yBBPacks : 10\r]":"\dGravedad\r[\yBBPacks : 10\r]", "2")
  1446.  
  1447. menu_additem(menu_zm, (g_bbpacks[id] >= 10)?"\yVelocidad\w[30 Sgds]\r[\yBBPacks : 10\r]":"\dVelocidad\r[\yBBPacks : 10\r]", "3")
  1448.  
  1449. if(g_level[id] >= 13)
  1450. if(g_bbpacks[id] >= 10)
  1451. menu_additem(menu_zm, "\y1000 de Vida\r[\yBBPacks : 10\r]", "4")
  1452. else
  1453. menu_additem(menu_zm, "\d1000 de Vida\r[\yBBPacks : 10\r]", "4")
  1454. else
  1455. menu_additem(menu_zm, "\d1000 de Vida\r[\yNivel : 13\r]", "4")
  1456.  
  1457. if(g_level[id] >= 16)
  1458. if(g_bbpacks[id] >= 40)
  1459. menu_additem(menu_zm, "\yModo Dios\w[10 Sgds]\r[\yBBPacks : 40\r]", "5")
  1460. else
  1461. menu_additem(menu_zm, "\dModo Dios\r[\yBBPacks : 40\r]", "5")
  1462. else
  1463. menu_additem(menu_zm, "\dModo Dios\r[\yNivel : 16\r]", "5")
  1464.  
  1465.  
  1466.  
  1467. menu_setprop(menu_zm, MPROP_EXITNAME, "\w[SALIR]")
  1468. menu_display(id, menu_zm, 0)
  1469. }
  1470. public handler_tienda_zm(id, menu_zm, item) {
  1471. if(item==MENU_EXIT)
  1472. return
  1473.  
  1474. switch(item) {
  1475. case 0: {
  1476. if(g_bbpacks[id] >= 8) {
  1477. set_user_health(id, get_user_health(id) + 500)
  1478. print_EasyChat(id, "\g%s\nCompraste 500 Vida", Tag)
  1479. g_bbpacks[id] -= 8
  1480.  
  1481.  
  1482. }
  1483. else {
  1484. print_EasyChat(id, "\g%s\nBBPacks insuficiente para comprar este item", Tag)
  1485. tienda_zm(id)
  1486.  
  1487. }
  1488. }
  1489. case 1: {
  1490. if(g_bbpacks[id] >= 10) {
  1491. set_user_gravity(id, 0.5)
  1492. set_task(30.0, "Remover_grab", id)
  1493. print_EasyChat(id, "\g%s\nCompraste Gravedad", Tag)
  1494. g_bbpacks[id] -= 10
  1495.  
  1496.  
  1497. }
  1498. else {
  1499. print_EasyChat(id, "\g%s\nBBPacks insuficiente para comprar este item", Tag)
  1500. tienda_zm(id)
  1501.  
  1502. }
  1503. }
  1504. case 2: {
  1505. if(g_bbpacks[id] >= 10) {
  1506. set_user_maxspeed(id, 400.0)
  1507. set_task(30.0, "Remover_veloc", id)
  1508. print_EasyChat(id, "\g%s\nCompraste Velocidad", Tag)
  1509. g_bbpacks[id] -= 10
  1510.  
  1511.  
  1512. }
  1513. else {
  1514. print_EasyChat(id, "\g%s\nBBPacks insuficiente para comprar este item", Tag)
  1515. tienda_zm(id)
  1516.  
  1517. }
  1518. }
  1519. case 3: {
  1520. if(g_level[id] >= 13) {
  1521. if(g_bbpacks[id] >= 10) {
  1522. set_user_health(id, get_user_health(id) + 1000)
  1523. print_EasyChat(id, "\g%s\nCompraste 1000 Vida", Tag)
  1524. g_bbpacks[id] -= 13
  1525.  
  1526.  
  1527. }
  1528. else {
  1529. print_EasyChat(id, "\g%s\nBBPacks insuficiente para comprar este item", Tag)
  1530. tienda_zm(id)
  1531.  
  1532. }
  1533. }
  1534. else {
  1535. print_EasyChat(id, "\g%s\nNivel insuficiente para comprar este item", Tag)
  1536. tienda_zm(id)
  1537.  
  1538. }
  1539. }
  1540. case 4: {
  1541. if(g_level[id] >= 16) {
  1542. if(g_bbpacks[id] >= 40) {
  1543. set_user_godmode(id, 1)
  1544. Contador(id)
  1545. print_EasyChat(id, "\g%s\nCompraste GodMode", Tag)
  1546. g_bbpacks[id] -= 40
  1547.  
  1548.  
  1549. }
  1550. else {
  1551. print_EasyChat(id, "\g%s\nBBPacks insuficiente para comprar este item", Tag)
  1552. tienda_zm(id)
  1553.  
  1554. }
  1555. }
  1556. else {
  1557. print_EasyChat(id, "\g%s\nNivel insuficiente para comprar este item", Tag)
  1558. tienda_zm(id)
  1559.  
  1560. }
  1561. }
  1562. }
  1563. return
  1564. }
  1565. public Remover_grab(id) {
  1566. set_user_gravity(id, 1.0)
  1567. print_EasyChat(id, "\g%s\nSe te Acabo la Gravedad", Tag)
  1568. }
  1569. public Remover_veloc(id) {
  1570. set_user_maxspeed(id, 250.0)
  1571. print_EasyChat(id, "\g%s\nSe te Acabo la Velocidad", Tag)
  1572. }
  1573.  
  1574. public Contador(id) {
  1575. Tiempo[id] = 10
  1576. set_task(1.0, "Conteo", id)
  1577. }
  1578.  
  1579. public Conteo(id) {
  1580. if(Tiempo[id] <= 1) {
  1581. set_hudmessage(255, 0, 0, -1.0, 0.17, 0, 6.0, 0.1)
  1582. ShowSyncHudMsg(id, pico, "Se te acabo el GodMode")
  1583. set_user_godmode(id, 0)
  1584. }
  1585. else {
  1586. Tiempo[id]--
  1587. set_task(1.0, "Conteo", id)
  1588. set_hudmessage(255, 255, 255, -1.0, 0.22, 0, 6.0, 1.0)
  1589. ShowSyncHudMsg(id, pico, "El GodMode se acabara en %d segundo%s", Tiempo[id], Tiempo[id] == 1 ? "" : "s")
  1590. }
  1591. }
  1592.  
  1593. public plugin_natives()
  1594. {
  1595. register_native("level", "native_level", 1)
  1596. register_native("bbpacks", "native_bbpacks", 1)
  1597.  
  1598. register_native("bb_register_zombie_class","native_register_zombie_class", 1)
  1599.  
  1600. register_native("bb_get_class_cost","native_get_class_cost", 1)
  1601. register_native("bb_get_user_zombie_class","native_get_user_zombie_class", 1)
  1602. register_native("bb_get_user_next_class","native_get_user_next_class", 1)
  1603. register_native("bb_set_user_zombie_class","native_set_user_zombie_class", 1)
  1604.  
  1605.  
  1606. register_native("bb_is_user_zombie","native_is_user_zombie", 1)
  1607. register_native("bb_is_user_banned","native_is_user_banned", 1)
  1608.  
  1609. register_native("bb_is_build_phase","native_bool_buildphase", 1)
  1610. register_native("bb_is_prep_phase","native_bool_prepphase", 1)
  1611.  
  1612. register_native("bb_get_build_time","native_get_build_time", 1)
  1613. register_native("bb_set_build_time","native_set_build_time", 1)
  1614.  
  1615. register_native("bb_get_user_color","native_get_user_color", 1)
  1616. register_native("bb_set_user_color","native_set_user_color", 1)
  1617.  
  1618. register_native("bb_drop_user_block","native_drop_user_block", 1)
  1619. register_native("bb_get_user_block","native_get_user_block", 1)
  1620. register_native("bb_set_user_block","native_set_user_block", 1)
  1621.  
  1622. register_native("bb_is_locked_block","native_is_locked_block", 1)
  1623. register_native("bb_lock_block","native_lock_block", 1)
  1624. register_native("bb_unlock_block","native_unlock_block", 1)
  1625.  
  1626. register_native("bb_release_zombies","native_release_zombies", 1)
  1627.  
  1628. register_native("bb_set_user_primary","native_set_user_primary", 1)
  1629. register_native("bb_get_user_primary","native_get_user_primary", 1)
  1630.  
  1631. register_native("bb_get_flags_build","native_get_flags_build", 1)
  1632. register_native("bb_get_flags_lock","native_get_flags_lock", 1)
  1633. register_native("bb_get_flags_buildban","native_get_flags_buildban", 1)
  1634. register_native("bb_get_flags_swap","native_get_flags_swap", 1)
  1635. register_native("bb_get_flags_revive","native_get_flags_revive", 1)
  1636. register_native("bb_get_flags_guns","native_get_flags_guns", 1)
  1637. register_native("bb_get_flags_release","native_get_flags_release", 1)
  1638. register_native("bb_get_flags_override","native_get_flags_override", 1)
  1639.  
  1640. //register_native("bb_set_user_mult","native_set_user_mult", 1)
  1641.  
  1642. //ZP Natives Converted
  1643. register_native("zp_register_zombie_class","native_register_zombie_class", 1)
  1644. register_native("zp_get_user_zombie_class","native_get_user_zombie_class", 1)
  1645. register_native("zp_get_user_next_class","native_get_user_next_class", 1)
  1646. register_native("zp_set_user_zombie_class","native_set_user_zombie_class", 1)
  1647. register_native("zp_get_user_zombie","native_is_user_zombie", 1)
  1648. }
  1649.  
  1650. public native_level(id) {
  1651. return g_level[id]
  1652. }
  1653.  
  1654. public native_bbpacks(id) {
  1655. return g_bbpacks[id]
  1656. }
  1657.  
  1658. public fw_GetGameDescription()
  1659. {
  1660. forward_return(FMV_STRING, g_szModName)
  1661. return FMRES_SUPERCEDE;
  1662. }
  1663.  
  1664. public client_putinserver(id)
  1665. {
  1666. if (!is_user_connected(id))
  1667. return PLUGIN_HANDLED;
  1668.  
  1669. CargarDatos(id)
  1670.  
  1671. g_isConnected[id] = true
  1672. g_isAlive[id] = false
  1673. g_isZombie[id] = false
  1674. g_isBuildBan[id] = false
  1675. g_isCustomModel[id] = false
  1676. g_boolFirstSpawn[id] = true
  1677. g_boolFirstTeam[id] = false
  1678. g_boolFirstTime[id] = true
  1679. g_boolRepick[id] = true
  1680. g_Password[id][0] = '^0';g_Status[id] = UNREGISTERED
  1681.  
  1682. g_AlredyChanged[id][NAME] = 0;g_AlredyChanged[id][PASSWORD] = 0
  1683.  
  1684. fvault_load(id)
  1685. g_iZombieClass[id] = 0
  1686. g_iNextClass[id] = g_iZombieClass[id]
  1687. //for (new i = 0; i < 3; i++) g_fClassMultiplier[id][i] = 1.0
  1688.  
  1689. show_menu_block(id)
  1690.  
  1691. set_task(7.0,"Respawn_Player",id+TASK_RESPAWN);
  1692.  
  1693. client_cmd(id, "bind e +grab")
  1694. client_cmd(id, "bind c ^"bb_lock^"")
  1695. set_task(1.0, "ShowHUD", id, _, _, "b")
  1696.  
  1697. arma_vip[id] = false
  1698.  
  1699. rojo[id] = 255
  1700. verde[id] = 0
  1701. azul[id] = 0
  1702.  
  1703. Hm_princ[id] = 1
  1704. Hm_Assasins[id] = 0
  1705. Hm_Domin[id] = 0
  1706. Hm_Milit[id] = 0
  1707. Hm_Sobre[id] = 0
  1708. Hm_Solda[id] = 0
  1709.  
  1710. Zclas[id] = 1
  1711. ZRapi[id] = 0
  1712. ZSalt[id] = 0
  1713. ZTank[id] = 0
  1714. ZOxid[id] = 0
  1715. ZSpit[id] = 0
  1716. ZHunt[id] = 0
  1717. ZTerr[id] = 0
  1718. ZCang[id] = 0
  1719. ZSpitd[id] = 0
  1720. ZWitc[id] = 0
  1721. ZPuta[id] = 0
  1722. ZSwar[id] = 0
  1723. ZClot[id] = 0
  1724. ZFeno[id] = 1
  1725. ZPaya[id] = 0
  1726.  
  1727. Zdiab[id] = 0
  1728. ZPois[id] = 0
  1729. ZSant[id] = 0
  1730. ZScra[id] = 0
  1731. ZSire[id] = 0
  1732. ZSmok[id] = 0
  1733. ZStal[id] = 0
  1734. ZHusk[id] = 0
  1735.  
  1736. Zlobo[id] = 0
  1737. ZClass[id] = 0
  1738. Zperr[id] = 0
  1739. ZDocS[id] = 0
  1740. ZSui[id] = 0
  1741. ZDest[id] = 0
  1742. ZJock[id] = 0
  1743. ZNeme[id] = 0
  1744. ZRadia[id] = 0
  1745. ZLeye[id] = 0
  1746.  
  1747. ZChar[id] = 0
  1748. ZCarn[id] = 0
  1749. ZTanke[id] = 0
  1750. ZBull[id] = 0
  1751. return PLUGIN_CONTINUE;
  1752. }
  1753. public client_infochanged(id)
  1754. {
  1755. static szName[32],szOldName[32]
  1756.  
  1757. get_user_name(id,szOldName,31);get_user_info(id,"name",szName,31)
  1758.  
  1759. if(equal(szOldName,szName) || g_CanChange)
  1760. return PLUGIN_CONTINUE
  1761.  
  1762. client_cmd(id,"name %s",szName);set_user_info(id,"name",szName)
  1763.  
  1764. return PLUGIN_HANDLED
  1765. }
  1766. public client_disconnect(id)
  1767. {
  1768. if (g_iOwnedEnt[id])
  1769. cmdStopEnt(id)
  1770.  
  1771. GuardarDatos(id)
  1772.  
  1773.  
  1774. g_isConnected[id] = false
  1775. g_isAlive[id] = false
  1776. g_isZombie[id] = false
  1777. g_isBuildBan[id] = false
  1778. g_isCustomModel[id] = false
  1779. g_boolFirstSpawn[id] = false
  1780. g_boolFirstTeam[id] = false
  1781. g_boolFirstTime[id] = false
  1782. g_boolRepick[id] = false
  1783.  
  1784. g_iZombieClass[id] = 0
  1785. g_iNextClass[id] = 0
  1786. //for (new i = 0; i < 3; i++) g_fClassMultiplier[id][i] = 1.0
  1787.  
  1788. g_iOwnedEntities[id] = 0
  1789.  
  1790. remove_task(id+TASK_RESPAWN)
  1791. remove_task(id+TASK_HEALTH)
  1792. remove_task(id+TASK_IDLESOUND)
  1793.  
  1794. if(g_PartyData[id][In_Party])
  1795. g_PartyData[id][Position] ? g_PartyData[id][Amount_In_Party] == 2 ? destoy_party(id) : remove_party_user(id) : destoy_party(id)
  1796.  
  1797. g_PartyData[id][UserName][0] = 0
  1798. g_PartyData[id][Block_Party] = false
  1799.  
  1800. for (new iEnt = g_iMaxPlayers+1; iEnt < MAXENTS; iEnt++)
  1801. {
  1802. if (is_valid_ent(iEnt) && g_iLockBlocks && BlockLocker(iEnt) == id)
  1803. {
  1804. UnlockBlock(iEnt)
  1805. set_pev(iEnt,pev_rendermode,kRenderNormal)
  1806.  
  1807. UnsetLastMover(iEnt);
  1808. UnsetEntMover(iEnt);
  1809. }
  1810. }
  1811. }
  1812.  
  1813. public ev_RoundStart()
  1814. {
  1815. remove_task(TASK_BUILD)
  1816. remove_task(TASK_PREPTIME)
  1817.  
  1818. arrayset(g_iOwnedEntities, 0, MAXPLAYERS+1)
  1819. arrayset(g_iColor, 0, MAXPLAYERS+1)
  1820. arrayset(g_iColorOwner, 0, MAX_COLORS)
  1821. arrayset(g_boolRepick, true, MAXPLAYERS+1)
  1822.  
  1823. g_boolRoundEnded = false
  1824. g_boolCanBuild = true
  1825. if (g_iResetEnt)
  1826. {
  1827. new szClass[10], szTarget[7];
  1828. for (new iEnt = g_iMaxPlayers+1; iEnt < MAXENTS; iEnt++)
  1829. {
  1830. if (is_valid_ent(iEnt))
  1831. {
  1832. entity_get_string(iEnt, EV_SZ_classname, szClass, 9);
  1833. entity_get_string(iEnt, EV_SZ_targetname, szTarget, 6);
  1834. if (!BlockLocker(iEnt) && iEnt != g_iEntBarrier && equal(szClass, "func_wall") && !equal(szTarget, "ignore"))
  1835. {
  1836. set_pev(iEnt,pev_rendermode,kRenderNormal)
  1837. engfunc( EngFunc_SetOrigin, iEnt, Float:{ 0.0, 0.0, 0.0 } );
  1838.  
  1839. UnsetLastMover(iEnt);
  1840. UnsetEntMover(iEnt);
  1841. }
  1842. else if (g_iLockBlocks && BlockLocker(iEnt))
  1843. {
  1844. UnlockBlock(iEnt)
  1845. set_pev(iEnt,pev_rendermode,kRenderNormal)
  1846. engfunc( EngFunc_SetOrigin, iEnt, Float:{ 0.0, 0.0, 0.0 } );
  1847.  
  1848. UnsetLastMover(iEnt);
  1849. UnsetEntMover(iEnt);
  1850. }
  1851. }
  1852. }
  1853. }
  1854. }
  1855.  
  1856. public ev_AmmoX(id)
  1857. set_pdata_int(id, AMMO_SLOT + read_data(1), 200, 5)
  1858.  
  1859. public ev_Health(taskid)
  1860. {
  1861. if (taskid>g_iMaxPlayers)
  1862. taskid-=TASK_HEALTH
  1863.  
  1864. if (is_user_alive(taskid))
  1865. {
  1866. new szGoal[32]
  1867. //if (is_credits_active())
  1868. #if defined BB_CREDITS
  1869. format(szGoal, 31, "^n%L: %d", LANG_SERVER, "HUD_GOAL", credits_get_user_goal(taskid))
  1870. #endif
  1871.  
  1872. set_hudmessage(255, 255, 255, -1.0, 0.9, 0, 12.0, 12.0, 0.1, 0.2, 4);
  1873. if (g_isZombie[taskid])
  1874. {
  1875. static szCache1[32]
  1876. ArrayGetString(g_zclass_name, g_iZombieClass[taskid], szCache1, charsmax(szCache1))
  1877.  
  1878. show_hudmessage(taskid, "%L: %d^n%L: %s%s", LANG_SERVER, "HUD_HEALTH", pev(taskid, pev_health), LANG_SERVER, "HUD_CLASS", szCache1, szGoal);
  1879. }
  1880. else
  1881. {
  1882. show_hudmessage(taskid, "%L: %d%s", LANG_SERVER, "HUD_HEALTH", pev(taskid, pev_health), szGoal);
  1883. }
  1884. set_task(11.9, "ev_Health", taskid+TASK_HEALTH);
  1885. }
  1886. }
  1887.  
  1888. public msgStatusIcon(const iMsgId, const iMsgDest, const iPlayer)
  1889. {
  1890. if(g_isAlive[iPlayer] && g_isConnected[iPlayer])
  1891. {
  1892. static szMsg[8]
  1893. get_msg_arg_string(2, szMsg, 7)
  1894.  
  1895. if(equal(szMsg, "buyzone"))
  1896. {
  1897. set_pdata_int(iPlayer, OFFSET_BUYZONE, get_pdata_int(iPlayer, OFFSET_BUYZONE) & ~(1<<0))
  1898. return PLUGIN_HANDLED
  1899. }
  1900. }
  1901. return PLUGIN_CONTINUE
  1902. }
  1903.  
  1904. public msgHealth(msgid, dest, id)
  1905. {
  1906. if(!g_isAlive[id])
  1907. return PLUGIN_CONTINUE;
  1908.  
  1909. static hp;
  1910. hp = get_msg_arg_int(1);
  1911.  
  1912. if(hp > 255 && (hp % 256) == 0)
  1913. set_msg_arg_int(1, ARG_BYTE, ++hp);
  1914.  
  1915. return PLUGIN_CONTINUE;
  1916. }
  1917.  
  1918. public msgRoundEnd(const MsgId, const MsgDest, const MsgEntity)
  1919. {
  1920. static Message[192]
  1921. get_msg_arg_string(2, Message, 191)
  1922.  
  1923. if (equal(Message, "#Terrorists_Win"))
  1924. {
  1925. g_boolRoundEnded = true
  1926. set_hudmessage(255, 255, 255, -1.0, 0.40, 0, 6.0, 6.0, 0.1, 0.2, 1)
  1927. show_hudmessage(0, "%L", LANG_SERVER, "WIN_ZOMBIE")
  1928. set_msg_arg_string(2, "")
  1929. client_cmd(0, "spk %s", WIN_ZOMBIES)
  1930.  
  1931. return PLUGIN_HANDLED
  1932. }
  1933. else if (equal(Message, "#Target_Saved") || equal(Message, "#CTs_Win"))
  1934. {
  1935. g_boolRoundEnded = true
  1936. set_hudmessage(255, 255, 255, -1.0, 0.40, 0, 6.0, 6.0, 0.1, 0.2, 1)
  1937. show_hudmessage(0, "%L", LANG_SERVER, "WIN_BUILDER")
  1938. set_msg_arg_string(2, "")
  1939. client_cmd(0, "spk %s", WIN_BUILDERS)
  1940.  
  1941. return PLUGIN_HANDLED
  1942. }
  1943. return PLUGIN_HANDLED
  1944. }
  1945.  
  1946. public msgSendAudio(const MsgId, const MsgDest, const MsgEntity)
  1947. {
  1948. static szSound[17]
  1949. get_msg_arg_string(2,szSound,16)
  1950. if(equal(szSound[7], "terwin") || equal(szSound[7], "ctwin") || equal(szSound[7], "rounddraw")) return PLUGIN_HANDLED
  1951. return PLUGIN_CONTINUE
  1952. }
  1953.  
  1954. public ham_WeaponCleaner_Post(iEnt)
  1955. {
  1956. call_think(iEnt)
  1957. }
  1958.  
  1959. public ham_TakeDamage(victim, inflictor, attacker, Float:damage, damagebits)
  1960. {
  1961. if (!is_valid_ent(victim) || !g_isAlive[victim] || !is_user_connected(attacker))
  1962. return HAM_IGNORED
  1963.  
  1964. if(g_boolCanBuild || g_boolRoundEnded || g_boolPrepTime)
  1965. return HAM_SUPERCEDE;
  1966.  
  1967. if (victim == attacker)
  1968. return HAM_SUPERCEDE;
  1969.  
  1970. if (g_iSupercut)
  1971. {
  1972. damage*=99.0
  1973. }
  1974.  
  1975. SetHamParamFloat(4, damage)
  1976. return HAM_HANDLED
  1977. }
  1978.  
  1979. public ham_ItemDeploy_Post(weapon_ent)
  1980. {
  1981. static owner
  1982. owner = get_pdata_cbase(weapon_ent, OFFSET_WPN_WIN, OFFSET_WPN_LINUX);
  1983.  
  1984. static weaponid
  1985. weaponid = cs_get_weapon_id(weapon_ent)
  1986.  
  1987. if (g_isZombie[owner] && !((1<<weaponid) & ZOMBIE_ALLOWED_WEAPONS_BITSUM))
  1988. {
  1989. engclient_cmd(owner, "weapon_knife")
  1990. }
  1991. if (g_isZombie[owner] && !((1<<weaponid) & ZOMBIE_ALLOWED_WEAPONS_BITSUM_H))
  1992. {
  1993. engclient_cmd(owner, "weapon_hegranade")
  1994. }
  1995. if (g_isZombie[owner] && !((1<<weaponid) & CSW_FLASHBANG))
  1996. {
  1997. engclient_cmd(owner, "weapon_flashbang")
  1998. }
  1999. if (g_isZombie[owner] && !((1<<weaponid) & CSW_SMOKEGRENADE))
  2000. {
  2001. engclient_cmd(owner, "weapon_smokegranade")
  2002. }
  2003. else if (g_boolCanBuild)
  2004. {
  2005. engclient_cmd(owner, "weapon_knife")
  2006. engclient_cmd(owner, "weapon_hegranade")
  2007. engclient_cmd(owner, "weapon_flashbang")
  2008. engclient_cmd(owner, "weapon_smokegranade")
  2009. client_print(owner, print_center, "%L", LANG_SERVER, "FAIL_KNIFE");
  2010. }
  2011. }
  2012.  
  2013. public logevent_round_start()
  2014. {
  2015. set_pev(g_iEntBarrier,pev_solid,SOLID_BSP)
  2016. set_pev(g_iEntBarrier,pev_rendermode,kRenderTransColor)
  2017. set_pev(g_iEntBarrier,pev_rendercolor, Float:{ BARRIER_COLOR })
  2018. set_pev(g_iEntBarrier,pev_renderamt, Float:{ BARRIER_RENDERAMT })
  2019.  
  2020. print_color(0, "^x04 ---[ Base Builder %s ]---", VERSION);
  2021. print_color(0, "^x03 %L", LANG_SERVER, "ROUND_MESSAGE");
  2022.  
  2023. client_cmd(0, "spk %s", PHASE_BUILD)
  2024.  
  2025. remove_task(TASK_BUILD)
  2026. set_task(1.0, "task_CountDown", TASK_BUILD,_, _, "a", g_iBuildTime);
  2027. g_iCountDown = (g_iBuildTime-1);
  2028.  
  2029. ExecuteForward(g_fwBuildStarted, g_fwDummyResult);
  2030. }
  2031.  
  2032. public task_CountDown()
  2033. {
  2034. g_iCountDown--
  2035. new mins = g_iCountDown/60, secs = g_iCountDown%60
  2036. if (g_iCountDown>=0)
  2037. client_print(0, print_center, "%L - %d:%s%d", LANG_SERVER, "BUILD_TIMER", mins, (secs < 10 ? "0" : ""), secs)
  2038. else
  2039. {
  2040. if (g_iPrepTime)
  2041. {
  2042. g_boolCanBuild = false
  2043. g_boolPrepTime = true
  2044. g_iCountDown = g_iPrepTime+1
  2045. set_task(1.0, "task_PrepTime", TASK_PREPTIME,_, _, "a", g_iCountDown);
  2046.  
  2047. set_hudmessage(255, 255, 255, -1.0, 0.45, 0, 1.0, 10.0, 0.1, 0.2, 1)
  2048. show_hudmessage(0, "%L", LANG_SERVER, "PREP_ANNOUNCE");
  2049.  
  2050. new players[32], num
  2051. get_players(players, num)
  2052. for (new i = 0; i < num; i++)
  2053. {
  2054. if (g_isAlive[players[i]] && !g_isZombie[players[i]])
  2055. {
  2056. ExecuteHamB(Ham_CS_RoundRespawn, players[i])
  2057.  
  2058. if (g_iOwnedEnt[players[i]])
  2059. cmdStopEnt(players[i])
  2060. }
  2061. }
  2062. print_color(0, "%s^x04 %L", MODNAME, LANG_SERVER, "PREP_ANNOUNCE")
  2063.  
  2064. client_cmd(0, "spk %s", PHASE_PREP)
  2065.  
  2066. ExecuteForward(g_fwPrepStarted, g_fwDummyResult);
  2067. }
  2068. else
  2069. Release_Zombies()
  2070.  
  2071. remove_task(TASK_BUILD);
  2072. return PLUGIN_HANDLED;
  2073. }
  2074.  
  2075. new szTimer[32]
  2076. if (g_iCountDown>10)
  2077. {
  2078. if (mins && !secs) num_to_word(mins, szTimer, 31)
  2079. else if (!mins && secs == 30) num_to_word(secs, szTimer, 31)
  2080. else return PLUGIN_HANDLED;
  2081.  
  2082. client_cmd(0, "spk ^"fvox/%s %s remaining^"", szTimer, (mins ? "minutes" : "seconds"))
  2083. }
  2084. else
  2085. {
  2086. num_to_word(g_iCountDown, szTimer, 31)
  2087. client_cmd(0, "spk ^"fvox/%s^"", szTimer)
  2088. }
  2089. return PLUGIN_CONTINUE;
  2090. }
  2091.  
  2092. public task_PrepTime()
  2093. {
  2094. g_iCountDown--
  2095.  
  2096. if (g_iCountDown>=0)
  2097. client_print(0, print_center, "%L - 0:%s%d", LANG_SERVER, "PREP_TIMER", (g_iCountDown < 10 ? "0" : ""), g_iCountDown)
  2098.  
  2099. if (0<g_iCountDown<11)
  2100. {
  2101. new szTimer[32]
  2102. num_to_word(g_iCountDown, szTimer, 31)
  2103. client_cmd(0, "spk ^"fvox/%s^"", szTimer)
  2104. }
  2105. else if (g_iCountDown == 0)
  2106. {
  2107. Release_Zombies()
  2108. remove_task(TASK_PREPTIME);
  2109. return PLUGIN_HANDLED
  2110. }
  2111.  
  2112. return PLUGIN_CONTINUE;
  2113. }
  2114.  
  2115. public logevent_round_end()
  2116. {
  2117. if (g_boolRoundEnded)
  2118. {
  2119. new players[32], num, player
  2120. get_players(players, num)
  2121. for (new i = 0; i < num; i++)
  2122. {
  2123. player = players[i]
  2124.  
  2125. if (g_iCurTeam[player] == g_iTeam[player] )
  2126. cs_set_user_team(player, (g_iTeam[player] = (g_iTeam[player] == CS_TEAM_T ? CS_TEAM_CT : CS_TEAM_T)))
  2127. else
  2128. g_iTeam[player] = g_iTeam[player] == CS_TEAM_T ? CS_TEAM_CT : CS_TEAM_T
  2129. }
  2130. print_color(0, "%s^x04 %L", MODNAME, LANG_SERVER, "SWAP_ANNOUNCE")
  2131. }
  2132. remove_task(TASK_BUILD)
  2133. return PLUGIN_HANDLED
  2134. }
  2135.  
  2136. public client_death(g_attacker, g_victim, wpnindex, hitplace, TK)
  2137. {
  2138. if (is_user_alive(g_victim))
  2139. return PLUGIN_HANDLED;
  2140.  
  2141. remove_task(g_victim+TASK_IDLESOUND)
  2142.  
  2143. g_isAlive[g_victim] = false;
  2144.  
  2145. if (TK == 0 && g_attacker != g_victim && g_isZombie[g_attacker])
  2146. {
  2147. client_cmd(0, "spk %s", INFECTION)
  2148. new szPlayerName[32]
  2149. get_user_name(g_victim, szPlayerName, 31)
  2150. set_hudmessage(255, 255, 255, -1.0, 0.45, 0, 1.0, 5.0, 0.1, 0.2, 1)
  2151. show_hudmessage(0, "%L", LANG_SERVER, "INFECT_ANNOUNCE", szPlayerName);
  2152. }
  2153.  
  2154. set_hudmessage(255, 255, 255, -1.0, 0.45, 0, 1.0, 10.0, 0.1, 0.2, 1)
  2155. if (g_isZombie[g_victim])
  2156. {
  2157. show_hudmessage(g_victim, "%L", LANG_SERVER, "DEATH_ZOMBIE", g_iZombieTime);
  2158. set_task(float(g_iZombieTime), "Respawn_Player", g_victim+TASK_RESPAWN)
  2159. }
  2160. else if (g_iInfectTime)
  2161. {
  2162. show_hudmessage(g_victim, "%L", LANG_SERVER, "DEATH_HUMAN", g_iInfectTime);
  2163. cs_set_user_team(g_victim, CS_TEAM_T)
  2164. g_isZombie[g_victim] = true
  2165. set_task(float(g_iInfectTime), "Respawn_Player", g_victim+TASK_RESPAWN)
  2166. }
  2167.  
  2168. return PLUGIN_CONTINUE;
  2169. }
  2170.  
  2171. public Respawn_Player(id)
  2172. {
  2173. id-=TASK_RESPAWN
  2174.  
  2175. if (!is_user_connected(id))
  2176. return PLUGIN_HANDLED
  2177.  
  2178. if (((g_boolCanBuild || g_boolPrepTime) && cs_get_user_team(id) == CS_TEAM_CT) || cs_get_user_team(id) == CS_TEAM_T)
  2179. {
  2180. ExecuteHamB(Ham_CS_RoundRespawn, id)
  2181.  
  2182. //Loop the task until they have successfully spawned
  2183. if (!g_isAlive[id])
  2184. set_task(3.0,"Respawn_Human",id+TASK_RESPAWN)
  2185. }
  2186. return PLUGIN_HANDLED
  2187. }
  2188.  
  2189. public ham_PlayerSpawn_Post(id)
  2190. {
  2191. if (is_user_alive(id))
  2192. {
  2193. g_isAlive[id] = true;
  2194.  
  2195. g_isZombie[id] = (cs_get_user_team(id) == CS_TEAM_T ? true : false)
  2196.  
  2197. remove_task(id + TASK_RESPAWN)
  2198. remove_task(id + TASK_MODELSET)
  2199. remove_task(id + TASK_IDLESOUND)
  2200. if (g_isZombie[id])
  2201. {
  2202. if (g_boolFirstSpawn[id])
  2203. {
  2204. print_color(id, "", VERSION);
  2205. show_zclass_menu(id, 0)
  2206. g_boolFirstSpawn[id] = false
  2207. }
  2208.  
  2209. if (g_iNextClass[id] != g_iZombieClass[id])
  2210. g_iZombieClass[id] = g_iNextClass[id]
  2211.  
  2212. //Handles the knife and claw model
  2213. strip_user_weapons(id)
  2214. give_item(id, "weapon_knife")
  2215.  
  2216. ArrayGetString(g_zclass_name, g_iZombieClass[id], g_szPlayerClass[id], charsmax(g_szPlayerClass[]))
  2217.  
  2218. set_task(random_float(60.0, 360.0), "task_ZombieIdle", id+TASK_IDLESOUND, _, _, "b")
  2219. }
  2220. }
  2221. }
  2222.  
  2223. public task_ZombieIdle(taskid)
  2224. {
  2225. taskid-=TASK_IDLESOUND
  2226. if (g_isAlive[taskid] && g_isConnected[taskid] && !g_isZombie[taskid])
  2227. emit_sound(taskid, CHAN_VOICE, g_szZombieIdle[random(sizeof g_szZombieIdle - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM)
  2228. }
  2229.  
  2230. public fw_SetClientKeyValue(id, const infobuffer[], const key[])
  2231. {
  2232. if (g_isCustomModel[id] && equal(key, "model"))
  2233. return FMRES_SUPERCEDE
  2234. return FMRES_IGNORED
  2235. }
  2236.  
  2237. public fw_ClientUserInfoChanged(id)
  2238. {
  2239. if (!g_isCustomModel[id])
  2240. return FMRES_IGNORED
  2241. static szCurrentModel[32]
  2242. fm_get_user_model(id, szCurrentModel, charsmax(szCurrentModel))
  2243. if (!equal(szCurrentModel, g_szPlayerModel[id]) && !task_exists(id + TASK_MODELSET))
  2244. fm_set_user_model(id + TASK_MODELSET)
  2245. return FMRES_IGNORED
  2246. }
  2247.  
  2248. public fm_user_model_update(taskid)
  2249. {
  2250. static Float:fCurTime
  2251. fCurTime = get_gametime()
  2252.  
  2253. if (fCurTime - g_fModelsTargetTime >= MODELCHANGE_DELAY)
  2254. {
  2255. fm_set_user_model(taskid)
  2256. g_fModelsTargetTime = fCurTime
  2257. }
  2258. else
  2259. {
  2260. set_task((g_fModelsTargetTime + MODELCHANGE_DELAY) - fCurTime, "fm_set_user_model", taskid)
  2261. g_fModelsTargetTime += MODELCHANGE_DELAY
  2262. }
  2263. }
  2264.  
  2265. public fm_set_user_model(player)
  2266. {
  2267. player -= TASK_MODELSET
  2268. engfunc(EngFunc_SetClientKeyValue, player, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", g_szPlayerModel[player])
  2269. g_isCustomModel[player] = true
  2270. }
  2271.  
  2272. stock fm_get_user_model(player, model[], len)
  2273. {
  2274. engfunc(EngFunc_InfoKeyValue, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", model, len)
  2275. }
  2276.  
  2277. stock fm_reset_user_model(player)
  2278. {
  2279. g_isCustomModel[player] = false
  2280. dllfunc(DLLFunc_ClientUserInfoChanged, player, engfunc(EngFunc_GetInfoKeyBuffer, player))
  2281. }
  2282.  
  2283. public message_show_menu(msgid, dest, id)
  2284. {
  2285. if (!(!get_user_team(id) && !is_user_bot(id) && !access(id, ADMIN_IMMUNITY)))
  2286. return PLUGIN_CONTINUE
  2287.  
  2288. static team_select[] = "#Team_Select"
  2289. static menu_text_code[sizeof team_select]
  2290. get_msg_arg_string(4, menu_text_code, sizeof menu_text_code - 1)
  2291. if (!equal(menu_text_code, team_select))
  2292. return PLUGIN_CONTINUE
  2293.  
  2294. static param_menu_msgid[2]
  2295. param_menu_msgid[0] = msgid
  2296. set_task(AUTO_TEAM_JOIN_DELAY, "task_force_team_join", id, param_menu_msgid, sizeof param_menu_msgid)
  2297.  
  2298. return PLUGIN_HANDLED
  2299. }
  2300.  
  2301. public message_vgui_menu(msgid, dest, id)
  2302. {
  2303. if (get_msg_arg_int(1) != TEAM_SELECT_VGUI_MENU_ID || !(!get_user_team(id) && !is_user_bot(id) && !access(id, ADMIN_IMMUNITY)))//
  2304. return PLUGIN_CONTINUE
  2305.  
  2306. static param_menu_msgid[2]
  2307. param_menu_msgid[0] = msgid
  2308. set_task(AUTO_TEAM_JOIN_DELAY, "task_force_team_join", id, param_menu_msgid, sizeof param_menu_msgid)
  2309.  
  2310. return PLUGIN_HANDLED
  2311. }
  2312.  
  2313. public task_force_team_join(menu_msgid[], id)
  2314. {
  2315. if (get_user_team(id))
  2316. return
  2317.  
  2318. static msg_block
  2319. msg_block = get_msg_block(menu_msgid[0])
  2320. set_msg_block(menu_msgid[0], BLOCK_SET)
  2321. engclient_cmd(id, "jointeam", "5")
  2322. engclient_cmd(id, "joinclass", "5")
  2323. set_msg_block(menu_msgid[0], msg_block)
  2324. }
  2325.  
  2326. public msgTeamInfo(msgid, dest)
  2327. {
  2328. if (dest != MSG_ALL && dest != MSG_BROADCAST)
  2329. return;
  2330.  
  2331. static id, team[2]
  2332. id = get_msg_arg_int(1)
  2333.  
  2334. get_msg_arg_string(2, team, charsmax(team))
  2335. switch (team[0])
  2336. {
  2337. case 'T' : // TERRORIST
  2338. {
  2339. g_iCurTeam[id] = CS_TEAM_T;
  2340. }
  2341. case 'C' : // CT
  2342. {
  2343. g_iCurTeam[id] = CS_TEAM_CT;
  2344. }
  2345. case 'S' : // SPECTATOR
  2346. {
  2347. g_iCurTeam[id] = CS_TEAM_SPECTATOR;
  2348. }
  2349. default : g_iCurTeam[id] = CS_TEAM_UNASSIGNED;
  2350. }
  2351. if (!g_boolFirstTeam[id])
  2352. {
  2353. g_boolFirstTeam[id] = true
  2354. g_iTeam[id] = g_iCurTeam[id]
  2355. }
  2356. }
  2357.  
  2358. public clcmd_changeteam(id)
  2359. {
  2360. static CsTeams:team
  2361. team = cs_get_user_team(id)
  2362.  
  2363. if (team == CS_TEAM_SPECTATOR || team == CS_TEAM_UNASSIGNED)
  2364. return PLUGIN_CONTINUE;
  2365.  
  2366. show_zclass_menu(id, 0)
  2367. return PLUGIN_HANDLED;
  2368. }
  2369. public clcmd_buy(id)
  2370. {
  2371. client_print (id, print_center, "%L", LANG_SERVER, "FAIL_BUY")
  2372. return PLUGIN_HANDLED
  2373. }
  2374.  
  2375. public msgStatusValue()
  2376. set_msg_block(g_msgStatusText, BLOCK_SET);
  2377.  
  2378. public ev_SetTeam(id)
  2379. g_iFriend[id] = read_data(2)
  2380.  
  2381. public ev_ShowStatus(id) //called when id looks at someone
  2382. {
  2383. new szName[32], pid = read_data(2);
  2384. get_user_name(pid, szName, 31);
  2385.  
  2386. if (g_iFriend[id] == 1) // friend
  2387. {
  2388. new clip, ammo, wpnid = get_user_weapon(pid, clip, ammo), szWpnName[32];
  2389.  
  2390. if (wpnid)
  2391. xmod_get_wpnname(wpnid, szWpnName, 31);
  2392.  
  2393. set_hudmessage(0, 225, 0, -1.0, HUD_FRIEND_HEIGHT, 1, 0.01, 3.0, 0.01, 0.01);
  2394. new nLen, szStatus[512]
  2395. if (!g_isZombie[pid])
  2396. nLen += format( szStatus[nLen], 511-nLen, "%s^nHealth: %d | Weapon: %s^nColor: %s", szName, pev(pid, pev_health), szWpnName, g_szColorName[g_iColor[pid]]);
  2397. else
  2398. {
  2399. nLen += format( szStatus[nLen], 511-nLen, "%s^nClass: %s^nHealth: %d", szName, g_szPlayerClass[pid], pev(pid, pev_health));
  2400.  
  2401. /*if (is_credits_active())
  2402. nLen += format( szStatus[nLen], 511-nLen, "^n^nClass Multipliers:", szName, g_szPlayerClass[pid], pev(pid, pev_health));
  2403. nLen += format( szStatus[nLen], 511-nLen, "^nHealth: %f", g_fClassMultiplier[pid][ATT_HEALTH]);
  2404. nLen += format( szStatus[nLen], 511-nLen, "^nSpeed: %f", g_fClassMultiplier[pid][ATT_SPEED]);
  2405. nLen += format( szStatus[nLen], 511-nLen, "^nGravity: %f", g_fClassMultiplier[pid][ATT_GRAVITY]);*/
  2406. }
  2407. ShowSyncHudMsg(id, g_HudSync, szStatus);
  2408. }
  2409.  
  2410. if (g_iFriend[id] != 1) //enemy
  2411. {
  2412. set_hudmessage(225, 0, 0, -1.0, HUD_FRIEND_HEIGHT, 1, 0.01, 3.0, 0.01, 0.01);
  2413. if (g_isZombie[pid])
  2414. ShowSyncHudMsg(id, g_HudSync, "%s", szName);
  2415. }
  2416. else {
  2417. ShowSyncHudMsg(id, g_HudSync, "%s^nColor: %s", szName, g_szColorName[g_iColor[pid]]);
  2418. }
  2419. }
  2420.  
  2421. public ev_HideStatus(id)
  2422. ClearSyncHud(id, g_HudSync);
  2423.  
  2424. public cmdSay(id)
  2425. {
  2426. if (!g_isConnected[id])
  2427. return PLUGIN_HANDLED;
  2428.  
  2429. new szMessage[32]
  2430. read_args(szMessage, charsmax(szMessage));
  2431. remove_quotes(szMessage);
  2432.  
  2433. if(szMessage[0] == '/')
  2434. {
  2435. if (equali(szMessage, "/commands") == 1 || equali(szMessage, "/cmd") == 1 )
  2436. {
  2437. print_color(id, "%s /class, /random, /mycolor, %s%s%s", MODNAME, (g_iColorMode ? ", /whois <color>": ""), (g_iColorMode != 2 ? ", /colors":""), (access(id, FLAGS_LOCK) ? ", /lock":"") );
  2438. }
  2439. else if (equali(szMessage, "/class") == 1)
  2440. {
  2441. show_zclass_menu(id, 0)
  2442. }
  2443. else if (equali(szMessage, "/lock") == 1 || equali(szMessage, "/claim") == 1 && g_isAlive[id])
  2444. {
  2445. if (access(id, FLAGS_LOCK))
  2446. cmdLockBlock(id)
  2447. else
  2448. client_print(id, print_center, "%L", LANG_SERVER, "FAIL_ACCESS");
  2449. return PLUGIN_HANDLED;
  2450. }
  2451. else if (equal(szMessage, "/whois",6) && g_iColorMode)
  2452. {
  2453. for ( new i=0; i<MAX_COLORS; i++)
  2454. {
  2455. if (equali(szMessage[7], g_szColorName[i]) == 1)
  2456. {
  2457. if (g_iColorOwner[i])
  2458. {
  2459. new szPlayerName[32]
  2460. get_user_name(g_iColorOwner[i], szPlayerName, 31)
  2461. print_color(id, "%s^x04 %s^x01's color is^x04 %s", MODNAME, szPlayerName, g_szColorName[i]);
  2462. }
  2463. else
  2464. print_color(id, "%s %L^x04 %s", MODNAME, LANG_SERVER, "COLOR_NONE", g_szColorName[i]);
  2465.  
  2466. break;
  2467. }
  2468. }
  2469. }
  2470. else if (equali(szMessage, "/colors") == 1 && !g_isZombie[id] && g_boolCanBuild && g_iColorMode != 2)
  2471. {
  2472. show_colors_menu(id, 0)
  2473. }
  2474. else if (equali(szMessage, "/mycolor") == 1 && !g_isZombie[id])
  2475. {
  2476. print_color(id, "%s^x04 %L:^x01 %s", MODNAME, LANG_SERVER, "COLOR_YOURS", g_szColorName[g_iColor[id]]);
  2477. return PLUGIN_HANDLED
  2478. }
  2479. else if (equali(szMessage, "/random") == 1 && !g_isZombie[id] && g_boolCanBuild)
  2480. {
  2481. new i = random(MAX_COLORS)
  2482. if (g_iColorMode)
  2483. {
  2484. while (g_iColorOwner[i])
  2485. {
  2486. i = random(MAX_COLORS)
  2487. }
  2488. }
  2489. print_color(id, "%s^x04 %L:^x01 %s", MODNAME, LANG_SERVER, "COLOR_RANDOM", g_szColorName[i]);
  2490. g_iColorOwner[g_iColor[id]] = 0
  2491. g_iColor[id] = i
  2492. g_iColorOwner[i] = id
  2493.  
  2494. for (new iEnt = g_iMaxPlayers+1; iEnt < MAXENTS; iEnt++)
  2495. {
  2496. if (is_valid_ent(iEnt) && g_iLockBlocks && BlockLocker(iEnt) == id)
  2497. set_pev(iEnt,pev_rendercolor,g_fColor[g_iColor[id]])
  2498. }
  2499.  
  2500. ExecuteForward(g_fwNewColor, g_fwDummyResult, id, g_iColor[id]);
  2501. }
  2502. else if (equali(szMessage, "x", 5) && g_iGunsMenu)
  2503. {
  2504. if(!g_isAlive[id] || g_isZombie[id])
  2505. return PLUGIN_HANDLED
  2506.  
  2507. if (access(id, FLAGS_GUNS))
  2508. {
  2509. new player = cmd_target(id, szMessage[6], 0)
  2510.  
  2511. if (!player)
  2512. {
  2513. //if (is_credits_active())
  2514. #if defined BB_CREDITS
  2515. credits_show_gunsmenu(id)
  2516. #else
  2517. show_method_menu(id)
  2518. #endif
  2519. return PLUGIN_CONTINUE
  2520. }
  2521.  
  2522. cmdGuns(id, player)
  2523. return PLUGIN_HANDLED;
  2524. }
  2525. else
  2526. {
  2527. if(!g_boolCanBuild || !g_boolRepick[id])
  2528. return PLUGIN_HANDLED
  2529.  
  2530. //if (is_credits_active())
  2531. #if defined BB_CREDITS
  2532. credits_show_gunsmenu(id)
  2533. #else
  2534. show_method_menu(id)
  2535. #endif
  2536. return PLUGIN_HANDLED
  2537. }
  2538. }
  2539. else if (equal(szMessage, "/swap",5) && access(id, FLAGS_SWAP))
  2540. {
  2541. new player = cmd_target(id, szMessage[6], 0)
  2542.  
  2543. if (!player)
  2544. {
  2545. print_color(id, "%s Player^x04 %s^x01 could not be found or targetted", MODNAME, szMessage[6])
  2546. return PLUGIN_CONTINUE
  2547. }
  2548.  
  2549. cmdSwap(id, player)
  2550. }
  2551. else if (equal(szMessage, "/revive",7) && access(id, FLAGS_REVIVE))
  2552. {
  2553. new player = cmd_target(id, szMessage[8], 0)
  2554.  
  2555. if (!player)
  2556. {
  2557. print_color(id, "%s Player^x04 %s^x01 could not be found or targetted", MODNAME, szMessage[6])
  2558. return PLUGIN_CONTINUE
  2559. }
  2560.  
  2561. cmdRevive(id, player)
  2562. }
  2563. else if (equal(szMessage, "/ban",4) && access(id, FLAGS_BUILDBAN))
  2564. {
  2565. new player = cmd_target(id, szMessage[5], 0)
  2566.  
  2567. if (!player)
  2568. {
  2569. print_color(id, "%s Player^x04 %s^x01 could not be found or targetted", MODNAME, szMessage[6])
  2570. return PLUGIN_CONTINUE
  2571. }
  2572.  
  2573. cmdBuildBan(id, player)
  2574. }
  2575. else if (equal(szMessage, "/releasezombies",5) && access(id, FLAGS_RELEASE))
  2576. {
  2577. cmdStartRound(id)
  2578. }
  2579. }
  2580. return PLUGIN_CONTINUE
  2581. }
  2582.  
  2583. public cmdSwap(id, target)
  2584. {
  2585. if (access(id, FLAGS_SWAP))
  2586. {
  2587. new player
  2588.  
  2589. if (target) player = target
  2590. else
  2591. {
  2592. new arg[32]
  2593. read_argv(1, arg, 31)
  2594. player = cmd_target(id, arg, CMDTARGET_ALLOW_SELF)
  2595. }
  2596.  
  2597. if (!player || !is_user_connected(player))
  2598. return client_print(id, print_console, "[Base Builder] %L", LANG_SERVER, "FAIL_NAME");
  2599.  
  2600. cs_set_user_team(player,( g_iTeam[player] = g_iTeam[player] == CS_TEAM_T ? CS_TEAM_CT : CS_TEAM_T))
  2601.  
  2602. if (is_user_alive(player))
  2603. ExecuteHamB(Ham_CS_RoundRespawn, player)
  2604.  
  2605. new szAdminAuthid[32],szAdminName[32],szPlayerName[32],szPlayerID[32]
  2606. get_user_name(id,szAdminName,31)
  2607. get_user_authid (id,szAdminAuthid,31)
  2608. get_user_name(player, szPlayerName, 31)
  2609. get_user_authid (player,szPlayerID,31)
  2610.  
  2611. client_print(id, print_console, "[Base Builder] Player %s was swapped from the %s team to the %s team", szPlayerName, g_iTeam[player] == CS_TEAM_CT ? "zombie":"builder", g_iTeam[player] == CS_TEAM_CT ? "builder":"zombie")
  2612. Log("[SWAP] Admin: %s || SteamID: %s swapped Player: %s || SteamID: %s", szAdminName, szAdminAuthid, szPlayerName, szPlayerID)
  2613.  
  2614. set_hudmessage(255,0, 0, -1.0, 0.45, 0, 1.0, 10.0, 0.1, 0.2, 1)
  2615. show_hudmessage(player, "%L", LANG_SERVER, "ADMIN_SWAP");
  2616.  
  2617. print_color(0, "%s Player^x04 %s^x01 has been^x04 swapped^x01 to the^x04 %s^x01 team", MODNAME, szPlayerName, g_iTeam[player] == CS_TEAM_CT ? "builder":"zombie")
  2618. }
  2619. return PLUGIN_HANDLED
  2620. }
  2621.  
  2622. public cmdRevive(id, target)
  2623. {
  2624. if (access(id, FLAGS_REVIVE))
  2625. {
  2626. new player
  2627. if (target) player = target
  2628. else
  2629. {
  2630. new arg[32]
  2631. read_argv(1, arg, 31)
  2632. player = cmd_target(id, arg, CMDTARGET_ALLOW_SELF)
  2633. }
  2634.  
  2635. if (!player || !is_user_connected(player))
  2636. return client_print(id, print_console, "[Base Builder] %L", LANG_SERVER, "FAIL_NAME");
  2637.  
  2638. ExecuteHamB(Ham_CS_RoundRespawn, player)
  2639.  
  2640. new szAdminAuthid[32],szAdminName[32],szPlayerName[32],szPlayerID[32]
  2641. get_user_name(id,szAdminName,31)
  2642. get_user_authid (id,szAdminAuthid,31)
  2643. get_user_name(player, szPlayerName, 31)
  2644. get_user_authid (player,szPlayerID,31)
  2645.  
  2646. client_print(id, print_console, "[Base Builder] Player %s has been^x04 revived", szPlayerName)
  2647. Log("[REVIVE] Admin: %s || SteamID: %s revived Player: %s || SteamID: %s", szAdminName, szAdminAuthid, szPlayerName, szPlayerID)
  2648.  
  2649. set_hudmessage(255,0, 0, -1.0, 0.45, 0, 1.0, 10.0, 0.1, 0.2, 1)
  2650. show_hudmessage(player, "%L", LANG_SERVER, "ADMIN_REVIVE");
  2651.  
  2652. print_color(0, "%s Player^x04 %s^x01 has been^x04 revived^x01 by an admin", MODNAME, szPlayerName)
  2653. }
  2654. return PLUGIN_HANDLED
  2655. }
  2656.  
  2657. public cmdGuns(id, target)
  2658. {
  2659. if (access(id, FLAGS_GUNS))
  2660. {
  2661. new player
  2662. if (target) player = target
  2663. else
  2664. {
  2665. new arg[32]
  2666. read_argv(1, arg, 31)
  2667. player = cmd_target(id, arg, CMDTARGET_ALLOW_SELF)
  2668. }
  2669.  
  2670. if (!player || !is_user_connected(player))
  2671. {
  2672. client_print(id, print_console, "[Base Builder] %L", LANG_SERVER, "FAIL_NAME");
  2673. return PLUGIN_HANDLED;
  2674. }
  2675.  
  2676. if (g_isZombie[player])
  2677. {
  2678. return PLUGIN_HANDLED;
  2679. }
  2680.  
  2681. if (!g_isAlive[player])
  2682. {
  2683. client_print(id, print_console, "[Base Builder] %L", LANG_SERVER, "FAIL_DEAD");
  2684. return PLUGIN_HANDLED;
  2685. }
  2686.  
  2687. //if (is_credits_active())
  2688. #if defined BB_CREDITS
  2689. credits_show_gunsmenu(player)
  2690. #else
  2691. show_method_menu(player)
  2692. #endif
  2693.  
  2694. new szAdminAuthid[32],szAdminName[32],szPlayerName[32],szPlayerID[32]
  2695. get_user_name(id,szAdminName,31)
  2696. get_user_authid (id,szAdminAuthid,31)
  2697. get_user_name(player, szPlayerName, 31)
  2698. get_user_authid (player,szPlayerID,31)
  2699.  
  2700. client_print(id, print_console, "[Base Builder] Player %s has had his weapons menu re-opened", szPlayerName);
  2701. Log("[GUNS] Admin: %s || SteamID: %s opened the guns menu for Player: %s || SteamID: %s", szAdminName, szAdminAuthid, szPlayerName, szPlayerID);
  2702.  
  2703. set_hudmessage(255,0, 0, -1.0, 0.45, 0, 1.0, 10.0, 0.1, 0.2, 1)
  2704. show_hudmessage(player, "%L", LANG_SERVER, "ADMIN_GUNS");
  2705.  
  2706. print_color(0, "%s Player^x04 %s^x01 has had their^x04 guns^x01 menu^x04 re-opened", MODNAME, szPlayerName)
  2707. }
  2708. return PLUGIN_HANDLED
  2709. }
  2710.  
  2711. public cmdStartRound(id)
  2712. {
  2713. if (access(id, FLAGS_RELEASE))
  2714. {
  2715. native_release_zombies()
  2716. }
  2717. }
  2718.  
  2719. public Release_Zombies()
  2720. {
  2721. g_boolCanBuild = false
  2722. remove_task(TASK_BUILD);
  2723.  
  2724. g_boolPrepTime = false
  2725. remove_task(TASK_PREPTIME);
  2726.  
  2727. new players[32], num, player, szWeapon[32]
  2728. get_players(players, num, "a")
  2729. for(new i = 0; i < num; i++)
  2730. {
  2731. player = players[i]
  2732.  
  2733. if (!g_isZombie[player])
  2734. {
  2735. if (g_iOwnedEnt[player])
  2736. cmdStopEnt(player)
  2737.  
  2738. if(g_iGrenadeHE ) give_item(player,"weapon_hegrenade" ), cs_set_user_bpammo(player,CSW_HEGRENADE, g_iGrenadeHE)
  2739. if(g_iGrenadeFLASH ) give_item(player,"weapon_flashbang" ), cs_set_user_bpammo(player,CSW_FLASHBANG, g_iGrenadeFLASH)
  2740. if(g_iGrenadeSMOKE ) give_item(player,"weapon_smokegrenade" ), cs_set_user_bpammo(player,CSW_SMOKEGRENADE, g_iGrenadeSMOKE)
  2741.  
  2742. if (g_iPrimaryWeapon[player])
  2743. {
  2744. get_weaponname(g_iPrimaryWeapon[player],szWeapon,sizeof szWeapon - 1)
  2745. engclient_cmd(player, szWeapon);
  2746. }
  2747. }
  2748. }
  2749.  
  2750. set_pev(g_iEntBarrier,pev_solid,SOLID_NOT)
  2751. set_pev(g_iEntBarrier,pev_renderamt,Float:{ 0.0 })
  2752.  
  2753. set_hudmessage(255, 255, 255, -1.0, 0.45, 0, 1.0, 10.0, 0.1, 0.2, 1)
  2754. show_hudmessage(0, "%L", LANG_SERVER, "RELEASE_ANNOUNCE");
  2755. client_cmd(0, "spk %s", g_szRoundStart[ random( sizeof g_szRoundStart ) ] )
  2756.  
  2757. ExecuteForward(g_fwRoundStart, g_fwDummyResult);
  2758. }
  2759.  
  2760. public fw_CmdStart( id, uc_handle, randseed )
  2761. {
  2762. if (!g_isConnected[id] || !g_isAlive[id])
  2763. return FMRES_IGNORED
  2764.  
  2765. //new button = pev(id, pev_button)
  2766. new button = get_uc( uc_handle , UC_Buttons );
  2767. new oldbutton = pev(id, pev_oldbuttons)
  2768.  
  2769. if( button & IN_USE && !(oldbutton & IN_USE) && !g_iOwnedEnt[id])
  2770. cmdGrabEnt(id)
  2771. else if( oldbutton & IN_USE && !(button & IN_USE) && g_iOwnedEnt[id])
  2772. cmdStopEnt(id)
  2773.  
  2774. return FMRES_IGNORED;
  2775. }
  2776.  
  2777. public cmdGrabEnt(id)
  2778. {
  2779. if (g_fBuildDelay[id] + BUILD_DELAY > get_gametime())
  2780. {
  2781. g_fBuildDelay[id] = get_gametime()
  2782. client_print (id, print_center, "%L", LANG_SERVER, "BUILD_SPAM")
  2783. return PLUGIN_HANDLED
  2784. }
  2785. else
  2786. g_fBuildDelay[id] = get_gametime()
  2787.  
  2788. if (g_isBuildBan[id])
  2789. {
  2790. client_print (id, print_center, "%L", LANG_SERVER, "BUILD_BANNED")
  2791. client_cmd(id, "spk %s", LOCK_FAIL);
  2792. return PLUGIN_HANDLED;
  2793. }
  2794.  
  2795. if (g_isZombie[id] && !access(id, FLAGS_OVERRIDE))
  2796. return PLUGIN_HANDLED
  2797.  
  2798. if (!g_boolCanBuild && !access(id, FLAGS_BUILD) && !access(id, FLAGS_OVERRIDE))
  2799. {
  2800. client_print (id, print_center, "%L", LANG_SERVER, "BUILD_NOTIME")
  2801. return PLUGIN_HANDLED
  2802. }
  2803.  
  2804. if (g_iOwnedEnt[id] && is_valid_ent(g_iOwnedEnt[id]))
  2805. cmdStopEnt(id)
  2806.  
  2807. new ent, bodypart
  2808. get_user_aiming (id,ent,bodypart)
  2809.  
  2810. if (!is_valid_ent(ent) || ent == g_iEntBarrier || is_user_alive(ent) || IsMovingEnt(ent))
  2811. return PLUGIN_HANDLED;
  2812.  
  2813. if ((BlockLocker(ent) && BlockLocker(ent) != id) || (BlockLocker(ent) && !access(id, FLAGS_OVERRIDE)))
  2814. return PLUGIN_HANDLED;
  2815.  
  2816. new szClass[10], szTarget[7];
  2817. entity_get_string(ent, EV_SZ_classname, szClass, 9);
  2818. entity_get_string(ent, EV_SZ_targetname, szTarget, 6);
  2819.  
  2820. if (/*!equal(szClass, "func_wall") || */equal(szTarget, "ignore"))
  2821. return PLUGIN_HANDLED;
  2822.  
  2823. ExecuteForward(g_fwGrabEnt_Pre, g_fwDummyResult, id, ent);
  2824.  
  2825. new Float:fOrigin[3], iAiming[3], Float:fAiming[3]
  2826.  
  2827. get_user_origin(id, iAiming, 3);
  2828. IVecFVec(iAiming, fAiming);
  2829. entity_get_vector(ent, EV_VEC_origin, fOrigin);
  2830.  
  2831. g_fOffset1[id] = fOrigin[0] - fAiming[0];
  2832. g_fOffset2[id] = fOrigin[1] - fAiming[1];
  2833. g_fOffset3[id] = fOrigin[2] - fAiming[2];
  2834.  
  2835. g_fEntDist[id] = get_user_aiming(id, ent, bodypart);
  2836.  
  2837. if (g_fEntMinDist)
  2838. {
  2839. if (g_fEntDist[id] < g_fEntMinDist)
  2840. g_fEntDist[id] = g_fEntSetDist;
  2841. }
  2842. else if (g_fEntMaxDist)
  2843. {
  2844. if (g_fEntDist[id] > g_fEntMaxDist)
  2845. return PLUGIN_HANDLED
  2846. }
  2847.  
  2848. set_pev(ent,pev_rendermode,kRenderTransColor)
  2849. set_pev(ent,pev_rendercolor, g_fColor[g_iColor[id]] )
  2850. set_pev(ent,pev_renderamt, g_fRenderAmt[g_iColor[id]] )
  2851.  
  2852. MovingEnt(ent);
  2853. SetEntMover(ent, id);
  2854. g_iOwnedEnt[id] = ent
  2855.  
  2856. //Checked after object is successfully grabbed
  2857. if (!g_boolCanBuild && (access(id, FLAGS_BUILD) || access(id, FLAGS_OVERRIDE)))
  2858. {
  2859. new adminauthid[32],adminname[32]
  2860. get_user_authid (id,adminauthid,31)
  2861. get_user_name(id,adminname,31)
  2862. Log("[MOVE] Admin: %s || SteamID: %s moved an entity", adminname, adminauthid)
  2863. }
  2864.  
  2865. client_cmd(id, "spk %s", GRAB_START);
  2866.  
  2867. ExecuteForward(g_fwGrabEnt_Post, g_fwDummyResult, id, ent);
  2868.  
  2869. return PLUGIN_HANDLED
  2870. }
  2871.  
  2872. public cmdStopEnt(id)
  2873. {
  2874. if (!g_iOwnedEnt[id])
  2875. return PLUGIN_HANDLED;
  2876.  
  2877. new ent = g_iOwnedEnt[id]
  2878.  
  2879. ExecuteForward(g_fwDropEnt_Pre, g_fwDummyResult, id, ent);
  2880.  
  2881. if (BlockLocker(ent))
  2882. {
  2883. switch(g_iLockBlocks)
  2884. {
  2885. case 0:
  2886. {
  2887. set_pev(ent,pev_rendermode,kRenderTransColor)
  2888. set_pev(ent,pev_rendercolor, Float:{ LOCKED_COLOR })
  2889. set_pev(ent,pev_renderamt,Float:{ LOCKED_RENDERAMT })
  2890. }
  2891. case 1:
  2892. {
  2893. set_pev(ent,pev_rendermode,kRenderTransColor)
  2894. set_pev(ent,pev_rendercolor, g_fColor[g_iColor[id]])
  2895. set_pev(ent,pev_renderamt,Float:{ LOCKED_RENDERAMT })
  2896. }
  2897. }
  2898. }
  2899. else
  2900. set_pev(ent,pev_rendermode,kRenderNormal)
  2901.  
  2902. UnsetEntMover(ent);
  2903. SetLastMover(ent,id);
  2904. g_iOwnedEnt[id] = 0;
  2905. UnmovingEnt(ent);
  2906.  
  2907. client_cmd(id, "spk %s", GRAB_STOP);
  2908.  
  2909. ExecuteForward(g_fwDropEnt_Post, g_fwDummyResult, id, ent);
  2910.  
  2911. return PLUGIN_HANDLED;
  2912. }
  2913.  
  2914. public cmdLockBlock(id)
  2915. {
  2916. if (!g_boolCanBuild && g_iLockBlocks)
  2917. {
  2918. client_print(id, print_center, "%L", LANG_SERVER, "FAIL_LOCK");
  2919. return PLUGIN_HANDLED;
  2920. }
  2921.  
  2922. if (!access(id, FLAGS_LOCK) || (g_isZombie[id] && !access(id, FLAGS_OVERRIDE)))
  2923. return PLUGIN_HANDLED;
  2924.  
  2925. new ent, bodypart
  2926. get_user_aiming (id,ent,bodypart)
  2927.  
  2928. new szTarget[7], szClass[10];
  2929. entity_get_string(ent, EV_SZ_targetname, szTarget, 6);
  2930. entity_get_string(ent, EV_SZ_classname, szClass, 9);
  2931. if (!ent || !is_valid_ent(ent) || is_user_alive(ent) || ent == g_iEntBarrier || /*!equal(szClass, "func_wall") ||*/ equal(szTarget, "ignore"))
  2932. return PLUGIN_HANDLED;
  2933.  
  2934. ExecuteForward(g_fwLockEnt_Pre, g_fwDummyResult, id, ent);
  2935.  
  2936. switch (g_iLockBlocks)
  2937. {
  2938. case 0:
  2939. {
  2940. if (!BlockLocker(ent) && !IsMovingEnt(ent))
  2941. {
  2942. LockBlock(ent, id);
  2943. set_pev(ent,pev_rendermode,kRenderTransColor)
  2944. set_pev(ent,pev_rendercolor,Float:{LOCKED_COLOR})
  2945. set_pev(ent,pev_renderamt,Float:{LOCKED_RENDERAMT})
  2946. client_cmd(id, "spk %s", LOCK_OBJECT);
  2947. }
  2948. else if (BlockLocker(ent))
  2949. {
  2950. UnlockBlock(ent)
  2951. set_pev(ent,pev_rendermode,kRenderNormal)
  2952. client_cmd(id, "spk %s", LOCK_OBJECT);
  2953. }
  2954. }
  2955. case 1:
  2956. {
  2957. if (!BlockLocker(ent) && !IsMovingEnt(ent))
  2958. {
  2959. if (g_iOwnedEntities[id]<g_iLockMax || !g_iLockMax)
  2960. {
  2961. LockBlock(ent, id)
  2962. g_iOwnedEntities[id]++
  2963. set_pev(ent,pev_rendermode,kRenderTransColor)
  2964. set_pev(ent,pev_rendercolor,g_fColor[g_iColor[id]])
  2965. set_pev(ent,pev_renderamt,Float:{LOCKED_RENDERAMT})
  2966.  
  2967. client_print(id, print_center, "%L [ %d / %d ]", LANG_SERVER, "BUILD_CLAIM_NEW", g_iOwnedEntities[id], g_iLockMax)
  2968. client_cmd(id, "spk %s", LOCK_OBJECT);
  2969. }
  2970. else if (g_iOwnedEntities[id]>=g_iLockMax)
  2971. {
  2972. client_print(id, print_center, "%L", LANG_SERVER, "BUILD_CLAIM_MAX", g_iLockMax)
  2973. client_cmd(id, "spk %s", LOCK_FAIL);
  2974. }
  2975. }
  2976. else if (BlockLocker(ent))
  2977. {
  2978. if (BlockLocker(ent) == id || access(id, FLAGS_OVERRIDE))
  2979. {
  2980. g_iOwnedEntities[BlockLocker(ent)]--
  2981. set_pev(ent,pev_rendermode,kRenderNormal)
  2982.  
  2983. client_print(BlockLocker(ent), print_center, "%L [ %d / %d ]", LANG_SERVER, "BUILD_CLAIM_LOST", g_iOwnedEntities[BlockLocker(ent)], g_iLockMax)
  2984.  
  2985. UnlockBlock(ent)
  2986. client_cmd(id, "spk %s", LOCK_OBJECT);
  2987. }
  2988. else
  2989. {
  2990. client_print(id, print_center, "%L", LANG_SERVER, "BUILD_CLAIM_FAIL")
  2991. client_cmd(id, "spk %s", LOCK_FAIL);
  2992. }
  2993. }
  2994. }
  2995. }
  2996.  
  2997. ExecuteForward(g_fwLockEnt_Post, g_fwDummyResult, id, ent);
  2998.  
  2999. return PLUGIN_HANDLED
  3000. }
  3001.  
  3002. public cmdBuildBan(id, target)
  3003. {
  3004. if (access(id, FLAGS_BUILDBAN))
  3005. {
  3006. new player
  3007. if (target) player = target
  3008. else
  3009. {
  3010. new arg[32]
  3011. read_argv(1, arg, 31)
  3012. player = cmd_target(id, arg, CMDTARGET_OBEY_IMMUNITY)
  3013. }
  3014.  
  3015. if (!player)
  3016. return client_print(id, print_console, "[Base Builder] %L", LANG_SERVER, "FAIL_NAME");
  3017.  
  3018. new szAdminAuthid[32],szAdminName[32],szPlayerName[32],szPlayerID[32]
  3019. get_user_name(id,szAdminName,31)
  3020. get_user_authid (id,szAdminAuthid,31)
  3021. get_user_name(player, szPlayerName, 31)
  3022. get_user_authid (player,szPlayerID,31)
  3023.  
  3024. g_isBuildBan[player] = g_isBuildBan[player] ? false : true
  3025.  
  3026. if (g_isBuildBan[player] && g_iOwnedEnt[player])
  3027. cmdStopEnt(player)
  3028.  
  3029. client_print(id, print_console, "[Base Builder] Player %s was %s from building", szPlayerName, g_isBuildBan[player] ? "banned":"unbanned")
  3030. Log("[MOVE] Admin: %s || SteamID: %s banned Player: %s || SteamID: %s from building", szAdminName, szAdminAuthid, szPlayerName, szPlayerID)
  3031.  
  3032. set_hudmessage(255,0, 0, -1.0, 0.45, 0, 1.0, 10.0, 0.1, 0.2, 1)
  3033. show_hudmessage(player, "%L", LANG_SERVER, "ADMIN_BUILDBAN", g_isBuildBan[player] ? "disabled":"re-enabled");
  3034.  
  3035. print_color(0, "%s Player^x04 %s^x01 has been^x04 %s^x01 from building", MODNAME, szPlayerName, g_isBuildBan[player] ? "banned":"unbanned")
  3036. }
  3037.  
  3038. return PLUGIN_HANDLED;
  3039. }
  3040.  
  3041. public fw_PlayerPreThink(id)
  3042. {
  3043. if (!is_user_connected(id))
  3044. {
  3045. cmdStopEnt(id)
  3046. return PLUGIN_HANDLED
  3047. }
  3048.  
  3049. //if (g_isZombie[id])
  3050. //set_pev(id, pev_maxspeed, g_fPlayerSpeed[id])
  3051.  
  3052. if(get_user_team(id) == 2) {
  3053. set_pev(id, pev_maxspeed, 250 + ammount_speed(g_mejoras[id][1]))
  3054. }
  3055. else {
  3056. if(Zclas[id]) {
  3057. set_pev(id, pev_maxspeed, 270.0)
  3058. }
  3059. else if(ZRapi[id]) {
  3060. set_pev(id, pev_maxspeed, 280.0)
  3061. }
  3062. else if(ZSalt[id]) {
  3063. set_pev(id, pev_maxspeed, 260.0)
  3064. }
  3065. else if(ZTank[id]) {
  3066. set_pev(id, pev_maxspeed, 260.0)
  3067. }
  3068. else if(ZOxid[id]) {
  3069. set_pev(id, pev_maxspeed, 270.0)
  3070. }
  3071. else if(ZSpit[id]) {
  3072. set_pev(id, pev_maxspeed, 270.0)
  3073. }
  3074. else if(ZHunt[id]) {
  3075. set_pev(id, pev_maxspeed, 260.0)
  3076. }
  3077. else if(ZTerr[id]) {
  3078. set_pev(id, pev_maxspeed, 275.0)
  3079. }
  3080. else if(ZCang[id]) {
  3081. set_pev(id, pev_maxspeed, 363.0)
  3082. }
  3083. else if(ZSpitd[id]) {
  3084. set_pev(id, pev_maxspeed, 268.0)
  3085. }
  3086. else if(ZWitc[id]) {
  3087. set_pev(id, pev_maxspeed, 260.0)
  3088. }
  3089. else if(ZPuta[id]) {
  3090. set_pev(id, pev_maxspeed, 290.0)
  3091. }
  3092. else if(ZSwar[id]) {
  3093. set_pev(id, pev_maxspeed, 290.0)
  3094. }
  3095. else if(ZClot[id]) {
  3096. set_pev(id, pev_maxspeed, 280.0)
  3097. }
  3098. else if(ZFeno[id]) {
  3099. set_pev(id, pev_maxspeed, 270.0)
  3100. }
  3101. else if(ZPaya[id]) {
  3102. set_pev(id, pev_maxspeed, 275.0)
  3103. }
  3104. else if(Zdiab[id]) {
  3105. set_pev(id, pev_maxspeed, 280.0)
  3106. }
  3107. else if(ZPois[id]) {
  3108. set_pev(id, pev_maxspeed, 262.0)
  3109. }
  3110. else if(ZSant[id]) {
  3111. set_pev(id, pev_maxspeed, 262.0)
  3112. }
  3113. else if(ZScra[id]) {
  3114. set_pev(id, pev_maxspeed, 265.0)
  3115. }
  3116. else if(ZSire[id]) {
  3117. set_pev(id, pev_maxspeed, 270.0)
  3118. }
  3119. else if(ZSmok[id]) {
  3120. set_pev(id, pev_maxspeed, 270.0)
  3121. }
  3122. else if(ZStal[id]) {
  3123. set_pev(id, pev_maxspeed, 285.0)
  3124.  
  3125. }
  3126. else if(ZHusk[id]) {
  3127. set_pev(id, pev_maxspeed, 290.0)
  3128.  
  3129. }
  3130. else if(Zlobo[id]) {
  3131. set_pev(id, pev_maxspeed, 311.0)
  3132. }
  3133. else if(ZClass[id]) {
  3134. set_pev(id, pev_maxspeed, 270.0)
  3135. }
  3136. else if(Zperr[id]) {
  3137. set_pev(id, pev_maxspeed, 318.0)
  3138. }
  3139. else if(ZDocS[id]) {
  3140. set_pev(id, pev_maxspeed, 304.0)
  3141. }
  3142. else if(ZSui[id]) {
  3143. set_pev(id, pev_maxspeed, 301.0)
  3144. }
  3145. else if(ZDest[id]) {
  3146. set_pev(id, pev_maxspeed, 305.0)
  3147. }
  3148. else if(ZJock[id]) {
  3149. set_pev(id, pev_maxspeed, 311.0)
  3150. }
  3151. else if(ZNeme[id]) {
  3152. set_pev(id, pev_maxspeed, 305.0)
  3153. }
  3154. else if(ZRadia[id]) {
  3155. set_pev(id, pev_maxspeed, 315.0)
  3156. }
  3157. else if(ZLeye[id]) {
  3158. set_pev(id, pev_maxspeed, 320.0)
  3159. }
  3160. else if(ZChar[id]) {
  3161. set_pev(id, pev_maxspeed, 310.0)
  3162. }
  3163. else if(ZCarn[id]) {
  3164. set_user_gravity(id, 0.4)
  3165. set_pev(id, pev_maxspeed, 318.0)
  3166. }
  3167. else if(ZTanke[id]) {
  3168. set_pev(id, pev_maxspeed, 315.0)
  3169. }
  3170. else if(ZBull[id]) {
  3171. set_pev(id, pev_maxspeed, 320.0)
  3172. }
  3173. }
  3174.  
  3175. if (!g_iOwnedEnt[id] || !is_valid_ent(g_iOwnedEnt[id]))
  3176. return FMRES_HANDLED
  3177.  
  3178. new buttons = pev(id, pev_button)
  3179. if (buttons & IN_ATTACK)
  3180. {
  3181. g_fEntDist[id] += OBJECT_PUSHPULLRATE;
  3182.  
  3183. if (g_fEntDist[id] > g_fEntMaxDist)
  3184. {
  3185. g_fEntDist[id] = g_fEntMaxDist
  3186. client_print(id, print_center, "%L", LANG_SERVER, "OBJECT_MAX")
  3187. }
  3188. else
  3189. client_print(id, print_center, "%L", LANG_SERVER, "OBJECT_PUSH")
  3190.  
  3191. ExecuteForward(g_fwPushPull, g_fwDummyResult, id, g_iOwnedEnt[id], 1);
  3192. }
  3193. else if (buttons & IN_ATTACK2)
  3194. {
  3195. g_fEntDist[id] -= OBJECT_PUSHPULLRATE;
  3196.  
  3197. if (g_fEntDist[id] < g_fEntSetDist)
  3198. {
  3199. g_fEntDist[id] = g_fEntSetDist
  3200. client_print(id, print_center, "%L", LANG_SERVER, "OBJECT_MIN")
  3201. }
  3202. else
  3203. client_print(id, print_center, "%L", LANG_SERVER, "OBJECT_PULL")
  3204.  
  3205. ExecuteForward(g_fwPushPull, g_fwDummyResult, id, g_iOwnedEnt[id], 2);
  3206. }
  3207.  
  3208. new iOrigin[3], iLook[3], Float:fOrigin[3], Float:fLook[3], Float:vMoveTo[3], Float:fLength
  3209.  
  3210. get_user_origin(id, iOrigin, 1);
  3211. IVecFVec(iOrigin, fOrigin);
  3212. get_user_origin(id, iLook, 3);
  3213. IVecFVec(iLook, fLook);
  3214.  
  3215. fLength = get_distance_f(fLook, fOrigin);
  3216. if (fLength == 0.0) fLength = 1.0;
  3217.  
  3218. vMoveTo[0] = (fOrigin[0] + (fLook[0] - fOrigin[0]) * g_fEntDist[id] / fLength) + g_fOffset1[id];
  3219. vMoveTo[1] = (fOrigin[1] + (fLook[1] - fOrigin[1]) * g_fEntDist[id] / fLength) + g_fOffset2[id];
  3220. vMoveTo[2] = (fOrigin[2] + (fLook[2] - fOrigin[2]) * g_fEntDist[id] / fLength) + g_fOffset3[id];
  3221. vMoveTo[2] = float(floatround(vMoveTo[2], floatround_floor));
  3222.  
  3223. entity_set_origin(g_iOwnedEnt[id], vMoveTo);
  3224.  
  3225. return FMRES_HANDLED
  3226. }
  3227.  
  3228. public fw_Traceline(Float:start[3], Float:end[3], conditions, id, trace)
  3229. {
  3230. if (!is_user_alive(id))
  3231. return PLUGIN_HANDLED
  3232.  
  3233. new ent = get_tr2(trace, TR_pHit)
  3234.  
  3235. if (is_valid_ent(ent))
  3236. {
  3237. new ent,body
  3238. get_user_aiming(id,ent,body)
  3239.  
  3240. new szClass[10], szTarget[7];
  3241. entity_get_string(ent, EV_SZ_classname, szClass, 9);
  3242. entity_get_string(ent, EV_SZ_targetname, szTarget, 6);
  3243. if (/*equal(szClass, "func_wall") && */!equal(szTarget, "ignore") && ent != g_iEntBarrier && g_iShowMovers == 1)
  3244. {
  3245. if (g_boolCanBuild || access(id, ADMIN_SLAY))
  3246. {
  3247. set_hudmessage(0, 50, 255, -1.0, 0.55, 1, 0.01, 3.0, 0.01, 0.01);
  3248. if (!BlockLocker(ent))
  3249. {
  3250. new szCurMover[32], szLastMover[32]
  3251. if (GetEntMover(ent))
  3252. {
  3253. get_user_name(GetEntMover(ent),szCurMover,31)
  3254. if (!GetLastMover(ent))
  3255. ShowSyncHudMsg(id, g_HudSync, "Moviendolo : %s^nUltima Movida por: Nadie xD", szCurMover);
  3256. }
  3257. if (GetLastMover(ent))
  3258. {
  3259. get_user_name(GetLastMover(ent),szLastMover,31)
  3260. if (!GetEntMover(ent))
  3261. ShowSyncHudMsg(id, g_HudSync, "Moviendolo : Nadie xD ^nUltima Movida por : %s", szLastMover);
  3262. }
  3263. if (GetEntMover(ent) && GetLastMover(ent))
  3264. ShowSyncHudMsg(id, g_HudSync, "Moviendolo : %s^nUltima Movida por: %s", szCurMover, szLastMover);
  3265. else if (!GetEntMover(ent) && !GetLastMover(ent))
  3266. ShowSyncHudMsg(id, g_HudSync, "Este Objeto no a sido Movido");
  3267. }
  3268. else
  3269. {
  3270. new szEntOwner[32]
  3271. get_user_name(BlockLocker(ent),szEntOwner,31)
  3272. ShowSyncHudMsg(id, g_HudSync, "Blockeado por: %s", szEntOwner);
  3273. }
  3274. }
  3275. }
  3276. }
  3277. else ClearSyncHud(id, g_HudSync);
  3278.  
  3279. return PLUGIN_HANDLED
  3280. }
  3281.  
  3282. public fw_EmitSound(id,channel,const sample[],Float:volume,Float:attn,flags,pitch)
  3283. {
  3284. if (!is_user_connected(id) || !g_isZombie[id] || g_boolCanBuild || g_boolPrepTime || g_boolRoundEnded)
  3285. return FMRES_IGNORED;
  3286.  
  3287. if(equal(sample[7], "die", 3) || equal(sample[7], "dea", 3))
  3288. {
  3289. emit_sound(id,channel,g_szZombieDie[random(sizeof g_szZombieDie - 1)],volume,attn,flags,pitch)
  3290. return FMRES_SUPERCEDE
  3291. }
  3292.  
  3293. if(equal(sample[7], "bhit", 4))
  3294. {
  3295. emit_sound(id,channel,g_szZombiePain[random(sizeof g_szZombiePain - 1)],volume,attn,flags,pitch)
  3296. return FMRES_SUPERCEDE
  3297. }
  3298.  
  3299. // Zombie attacks with knife
  3300. if (equal(sample[8], "kni", 3))
  3301. {
  3302. if (equal(sample[14], "sla", 3)) // slash
  3303. {
  3304. emit_sound(id,channel,g_szZombieMiss[random(sizeof g_szZombieMiss - 1)],volume,attn,flags,pitch)
  3305. return FMRES_SUPERCEDE;
  3306. }
  3307. if (equal(sample[14], "hit", 3)) // hit
  3308. {
  3309. if (sample[17] == 'w') // wall
  3310. {
  3311. emit_sound(id,channel,g_szZombieHit[random(sizeof g_szZombieHit - 1)],volume,attn,flags,pitch)
  3312. return FMRES_SUPERCEDE;
  3313. }
  3314. else
  3315. {
  3316. emit_sound(id,channel,g_szZombieHit[random(sizeof g_szZombieHit - 1)],volume,attn,flags,pitch)
  3317. return FMRES_SUPERCEDE;
  3318. }
  3319. }
  3320. if (equal(sample[14], "sta", 3)) // stab
  3321. {
  3322. emit_sound(id,channel,g_szZombieMiss[random(sizeof g_szZombieMiss - 1)],volume,attn,flags,pitch)
  3323. return FMRES_SUPERCEDE;
  3324. }
  3325. }
  3326.  
  3327. return FMRES_IGNORED
  3328. }
  3329.  
  3330. public fw_Suicide(id) return FMRES_SUPERCEDE
  3331.  
  3332. public show_colors_menu(id,offset)
  3333. {
  3334. if(offset<0) offset = 0
  3335.  
  3336. new keys, curnum, menu[2048]
  3337. for(new i=offset;i<MAX_COLORS;i++)
  3338. {
  3339. if (g_iColorMode == 0 || (g_iColorMode == 1 && !g_iColorOwner[i]))
  3340. {
  3341. g_iMenuOptions[id][curnum] = i
  3342. keys += (1<<curnum)
  3343.  
  3344. curnum++
  3345. format(menu,2047,"%s^n%d. %s", menu, curnum, g_szColorName[i])
  3346.  
  3347. if(curnum==8)
  3348. break;
  3349. }
  3350. }
  3351.  
  3352. format(menu,2047,"\ySelect Your Color:^nCurrent: \r%s\w^n^n%s^n", g_szColorName[g_iColor[id]], menu)
  3353. if(curnum==8 && offset<12)
  3354. {
  3355. keys += (1<<8)
  3356. format(menu,2047,"%s^n9. Next",menu)
  3357. }
  3358. if(offset)
  3359. {
  3360. keys += (1<<9)
  3361. format(menu,2047,"%s^n0. Back",menu)
  3362. }
  3363.  
  3364. show_menu(id,keys,menu,-1,"ColorsSelect")
  3365. }
  3366.  
  3367. public colors_pushed(id,key)
  3368. {
  3369. if(key<8)
  3370. {
  3371. g_iColorOwner[g_iMenuOptions[id][key]] = id
  3372. g_iColorOwner[g_iColor[id]] = 0
  3373. g_iColor[id] = g_iMenuOptions[id][key]
  3374. print_color(id, "%s You have picked^x04 %s^x01 as your color", MODNAME, g_szColorName[g_iColor[id]])
  3375. g_iMenuOffset[id] = 0
  3376.  
  3377. ExecuteForward(g_fwNewColor, g_fwDummyResult, id, g_iColor[id]);
  3378. }
  3379. else
  3380. {
  3381. if(key==8)
  3382. g_iMenuOffset[id] += 8
  3383. if(key==9)
  3384. g_iMenuOffset[id] -= 8
  3385. show_colors_menu(id,g_iMenuOffset[id])
  3386. }
  3387.  
  3388. return ;
  3389. }
  3390.  
  3391. public show_zclass_menu(id,offset)
  3392. {
  3393. if(offset<0) offset = 0
  3394.  
  3395. new keys, curnum, menu[512], szCache1[32], szCache2[32], iCache3
  3396. for(new i=offset;i<g_iZClasses;i++)
  3397. {
  3398. ArrayGetString(g_zclass_name, i, szCache1, charsmax(szCache1))
  3399. ArrayGetString(g_zclass_info, i, szCache2, charsmax(szCache2))
  3400. iCache3 = ArrayGetCell(g_zclass_admin, i)
  3401.  
  3402. // Add to menu
  3403. if (i == g_iZombieClass[id])
  3404. format(menu,511,"%s^n\d%d. %s %s \r%s", menu, curnum+1, szCache1, szCache2, iCache3 == ADMIN_ALL ? "" : "(Admin Only)")
  3405. else
  3406. format(menu,511,"%s^n\w%d. %s \y%s \r%s", menu, curnum+1, szCache1, szCache2, iCache3 == ADMIN_ALL ? "" : "(Admin Only)")
  3407.  
  3408. g_iMenuOptions[id][curnum] = i
  3409. keys += (1<<curnum)
  3410.  
  3411. curnum++
  3412.  
  3413. if(curnum==8)
  3414. break;
  3415. }
  3416.  
  3417. format(menu,511,"\ySelect Your Class:^n\w%s^n", menu)
  3418. if(curnum==8 && offset<12)
  3419. {
  3420. keys += (1<<8)
  3421. format(menu,511,"%s^n\w9. Next",menu)
  3422. }
  3423. if(offset)
  3424. {
  3425. keys += (1<<9)
  3426. format(menu,511,"%s^n\w0. Back",menu)
  3427. }
  3428.  
  3429. show_menu(id,keys,menu,-1,"ZClassSelect")
  3430. }
  3431.  
  3432. public zclass_pushed(id,key)
  3433. {
  3434. if(key<8)
  3435. {
  3436. if (g_iMenuOptions[id][key] == g_iZombieClass[id])
  3437. {
  3438. client_cmd(id, "spk %s", LOCK_FAIL);
  3439.  
  3440. print_color(id, "%s %L", MODNAME, LANG_SERVER, "CLASS_CURRENT")
  3441. show_zclass_menu(id,g_iMenuOffset[id])
  3442. return ;
  3443. }
  3444.  
  3445. new iCache3 = ArrayGetCell(g_zclass_admin, g_iMenuOptions[id][key])
  3446.  
  3447. if ((iCache3 != ADMIN_ALL || !iCache3) && !access(id, iCache3))
  3448. {
  3449. print_color(id, "%s %L", MODNAME, LANG_SERVER, "CLASS_NO_ACCESS")
  3450. show_zclass_menu(id,g_iMenuOffset[id])
  3451. return ;
  3452. }
  3453.  
  3454. g_iNextClass[id] = g_iMenuOptions[id][key]
  3455.  
  3456. new szCache1[32]
  3457. ArrayGetString(g_zclass_name, g_iMenuOptions[id][key], szCache1, charsmax(szCache1))
  3458.  
  3459. if (!g_isZombie[id] || (g_isZombie[id] && (g_boolCanBuild || g_boolPrepTime)))
  3460. print_color(id, "%s You have selected^x04 %s^x01 as your next class", MODNAME, szCache1)
  3461. if (!g_isAlive[id])
  3462. print_color(id, "%s %L", MODNAME, LANG_SERVER, "CLASS_RESPAWN")
  3463. g_iMenuOffset[id] = 0
  3464.  
  3465. if (g_isZombie[id] && (g_boolCanBuild || g_boolPrepTime))
  3466. ExecuteHamB(Ham_CS_RoundRespawn, id)
  3467.  
  3468. ExecuteForward(g_fwClassPicked, g_fwDummyResult, id, g_iZombieClass[id]);
  3469. }
  3470. else
  3471. {
  3472. if(key==8)
  3473. g_iMenuOffset[id] += 8
  3474. if(key==9)
  3475. g_iMenuOffset[id] -= 8
  3476. show_zclass_menu(id,g_iMenuOffset[id])
  3477. }
  3478.  
  3479. return ;
  3480. }
  3481.  
  3482. /*------------------------------------------------------------------------------------------------*/
  3483. public show_method_menu(id)
  3484. {
  3485. if(g_boolFirstTime[id])
  3486. {
  3487. g_boolFirstTime[id] = false
  3488. show_primary_menu(id,0)
  3489. }
  3490. else
  3491. {
  3492. g_iMenuOffset[id] = 0
  3493. show_menu(id,(1<<0)|(1<<1),"\yChoose Your Weapon^n^n\y1. \wNew Guns^n\y2. \wLast Guns",-1,"WeaponMethodMenu")
  3494. }
  3495. }
  3496.  
  3497. public weapon_method_pushed(id,key)
  3498. {
  3499. switch(key)
  3500. {
  3501. case 0: show_primary_menu(id,0)
  3502. case 1: give_weapons(id)
  3503. }
  3504. return ;
  3505. }
  3506.  
  3507. public show_primary_menu(id,offset)
  3508. {
  3509. if(offset<0) offset = 0
  3510.  
  3511. new cvar_value[32]
  3512. get_pcvar_string(g_pcvar_allowedweps,cvar_value,31)
  3513. new flags = read_flags(cvar_value)
  3514.  
  3515. new keys, curnum, menu[2048]
  3516. for(new i=offset;i<19;i++)
  3517. {
  3518. if(flags & power(2,i))
  3519. {
  3520. g_iMenuOptions[id][curnum] = i
  3521. keys += (1<<curnum)
  3522.  
  3523. curnum++
  3524. format(menu,2047,"%s^n%d. %s",menu,curnum,szWeaponNames[i])
  3525.  
  3526. if(curnum==8)
  3527. break;
  3528. }
  3529. }
  3530.  
  3531. format(menu,2047,"\yPrimary Weapon:\w^n%s^n",menu)
  3532. if(curnum==8 && offset<12)
  3533. {
  3534. keys += (1<<8)
  3535. format(menu,2047,"%s^n9. Next",menu)
  3536. }
  3537. if(offset)
  3538. {
  3539. keys += (1<<9)
  3540. format(menu,2047,"%s^n0. Back",menu)
  3541. }
  3542.  
  3543. show_menu(id,keys,menu,-1,"PrimaryWeaponSelect")
  3544. }
  3545.  
  3546. public prim_weapons_pushed(id,key)
  3547. {
  3548. if(key<8)
  3549. {
  3550. g_iWeaponPicked[0][id] = g_iMenuOptions[id][key]
  3551. g_iMenuOffset[id] = 0
  3552. show_secondary_menu(id,0)
  3553. }
  3554. else
  3555. {
  3556. if(key==8)
  3557. g_iMenuOffset[id] += 8
  3558. if(key==9)
  3559. g_iMenuOffset[id] -= 8
  3560. show_primary_menu(id,g_iMenuOffset[id])
  3561. }
  3562. return ;
  3563. }
  3564.  
  3565. public show_secondary_menu(id,offset)
  3566. {
  3567. if(offset<0) offset = 0
  3568.  
  3569. new cvar_value[32]
  3570. get_pcvar_string(g_pcvar_allowedweps,cvar_value,31)
  3571. new flags = read_flags(cvar_value)
  3572.  
  3573. new keys, curnum, menu[2048]
  3574. for(new i=18;i<24;i++)
  3575. {
  3576. if(flags & power(2,i))
  3577. {
  3578. g_iMenuOptions[id][curnum] = i
  3579. keys += (1<<curnum)
  3580.  
  3581. curnum++
  3582. format(menu,2047,"%s^n%d. %s",menu,curnum,szWeaponNames[i])
  3583. }
  3584. }
  3585.  
  3586. format(menu,2047,"\ySecondary Weapon:\w^n%s",menu)
  3587.  
  3588. show_menu(id,keys,menu,-1,"SecWeaponSelect")
  3589. }
  3590.  
  3591. public sec_weapons_pushed(id,key)
  3592. {
  3593. if(key<8)
  3594. {
  3595. g_iWeaponPicked[1][id] = g_iMenuOptions[id][key]
  3596. }
  3597. give_weapons(id)
  3598. return ;
  3599. }
  3600.  
  3601. public give_weapons(id)
  3602. {
  3603. strip_user_weapons(id)
  3604. give_item(id,"weapon_knife")
  3605.  
  3606. new szWeapon[32], csw
  3607. csw = csw_contant(g_iWeaponPicked[0][id])
  3608. get_weaponname(csw,szWeapon,31)
  3609. give_item(id,szWeapon)
  3610. cs_set_user_bpammo(id,csw,999)
  3611. g_iPrimaryWeapon[id] = csw
  3612.  
  3613. csw = csw_contant(g_iWeaponPicked[1][id])
  3614. get_weaponname(csw,szWeapon,31)
  3615. give_item(id,szWeapon)
  3616. cs_set_user_bpammo(id,csw,999)
  3617.  
  3618. g_boolRepick[id] = false
  3619. }
  3620.  
  3621. stock csw_contant(weapon)
  3622. {
  3623. new num = 29
  3624. switch(weapon)
  3625. {
  3626. case 0: num = 3
  3627. case 1: num = 5
  3628. case 2: num = 7
  3629. case 3: num = 8
  3630. case 4: num = 12
  3631. case 5: num = 13
  3632. case 6: num = 14
  3633. case 7: num = 15
  3634. case 8: num = 18
  3635. case 9: num = 19
  3636. case 10: num = 20
  3637. case 11: num = 21
  3638. case 12: num = 22
  3639. case 13: num = 23
  3640. case 14: num = 24
  3641. case 15: num = 27
  3642. case 16: num = 28
  3643. case 17: num = 30
  3644. case 18: num = 1
  3645. case 19: num = 10
  3646. case 20: num = 11
  3647. case 21: num = 16
  3648. case 22: num = 17
  3649. case 23: num = 26
  3650. case 24: {
  3651. new s_weapon[32]
  3652.  
  3653. get_pcvar_string(g_pcvar_allowedweps,s_weapon,31)
  3654.  
  3655. new flags = read_flags(s_weapon)
  3656. do
  3657. {
  3658. num = random_num(0,18)
  3659. if(!(num & flags))
  3660. {
  3661. num = -1
  3662. }
  3663. }
  3664. while(num==-1)
  3665. num = csw_contant(num)
  3666. }
  3667. case 25:
  3668. {
  3669. new s_weapon[32]
  3670.  
  3671. get_pcvar_string(g_pcvar_allowedweps,s_weapon,31)
  3672.  
  3673. new flags = read_flags(s_weapon)
  3674. do
  3675. {
  3676. num = random_num(18,23)
  3677. if(!(num & flags))
  3678. {
  3679. num = -1
  3680. }
  3681. }
  3682. while(num==-1)
  3683. num = csw_contant(num)
  3684. }
  3685. }
  3686. return num;
  3687. }
  3688. /*------------------------------------------------------------------------------------------------*/
  3689.  
  3690. Log(const message_fmt[], any:...) {
  3691. static message[256];
  3692. vformat(message, sizeof(message) - 1, message_fmt, 2);
  3693.  
  3694. static filename[96];
  3695. static dir[64];
  3696. if( !dir[0] )
  3697. {
  3698. get_basedir(dir, sizeof(dir) - 1);
  3699. add(dir, sizeof(dir) - 1, "/logs");
  3700. }
  3701.  
  3702. format_time(filename, sizeof(filename) - 1, "%m-%d-%Y");
  3703. format(filename, sizeof(filename) - 1, "%s/BaseBuilder_%s.log", dir, filename);
  3704.  
  3705. log_to_file(filename, "%s", message);
  3706. }
  3707.  
  3708. print_color(target, const message[], any:...) {
  3709. static buffer[512], i, argscount
  3710. argscount = numargs()
  3711.  
  3712. // Send to everyone
  3713. if (!target)
  3714. {
  3715. static player
  3716. for (player = 1; player <= g_iMaxPlayers; player++)
  3717. {
  3718. // Not connected
  3719. if (!g_isConnected[player])
  3720. continue;
  3721.  
  3722. // Remember changed arguments
  3723. static changed[5], changedcount // [5] = max LANG_PLAYER occurencies
  3724. changedcount = 0
  3725.  
  3726. // Replace LANG_PLAYER with player id
  3727. for (i = 2; i < argscount; i++)
  3728. {
  3729. if (getarg(i) == LANG_PLAYER)
  3730. {
  3731. setarg(i, 0, player)
  3732. changed[changedcount] = i
  3733. changedcount++
  3734. }
  3735. }
  3736.  
  3737. // Format message for player
  3738. vformat(buffer, charsmax(buffer), message, 3)
  3739.  
  3740. // Send it
  3741. message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, player)
  3742. write_byte(player)
  3743. write_string(buffer)
  3744. message_end()
  3745.  
  3746. // Replace back player id's with LANG_PLAYER
  3747. for (i = 0; i < changedcount; i++)
  3748. setarg(changed[i], 0, LANG_PLAYER)
  3749. }
  3750. }
  3751. // Send to specific target
  3752. else
  3753. {
  3754. // Format message for player
  3755. vformat(buffer, charsmax(buffer), message, 3)
  3756.  
  3757. // Send it
  3758. message_begin(MSG_ONE, g_msgSayText, _, target)
  3759. write_byte(target)
  3760. write_string(buffer)
  3761. message_end()
  3762. }
  3763. }
  3764.  
  3765. stock fm_cs_get_current_weapon_ent(id)
  3766. return get_pdata_cbase(id, OFFSET_ACTIVE_ITEM, OFFSET_LINUX);
  3767.  
  3768. public native_register_zombie_class(const name[], const info[], const model[], const clawmodel[], hp, speed, Float:gravity, Float:knockback, adminflags, credits)
  3769. {
  3770. if (!g_boolArraysCreated)
  3771. return 0;
  3772.  
  3773. // Strings passed byref
  3774. param_convert(1)
  3775. param_convert(2)
  3776. param_convert(3)
  3777. param_convert(4)
  3778.  
  3779. // Add the class
  3780. ArrayPushString(g_zclass_name, name)
  3781. ArrayPushString(g_zclass_info, info)
  3782.  
  3783. ArrayPushCell(g_zclass_modelsstart, ArraySize(g_zclass_playermodel))
  3784. ArrayPushString(g_zclass_playermodel, model)
  3785. ArrayPushCell(g_zclass_modelsend, ArraySize(g_zclass_playermodel))
  3786. ArrayPushCell(g_zclass_modelindex, -1)
  3787.  
  3788. ArrayPushString(g_zclass_clawmodel, clawmodel)
  3789. ArrayPushCell(g_zclass_hp, hp)
  3790. ArrayPushCell(g_zclass_spd, speed)
  3791. ArrayPushCell(g_zclass_grav, gravity)
  3792. ArrayPushCell(g_zclass_admin, adminflags)
  3793. ArrayPushCell(g_zclass_credits, credits)
  3794.  
  3795. // Set temporary new class flag
  3796. ArrayPushCell(g_zclass_new, 1)
  3797.  
  3798. // Override zombie classes data with our customizations
  3799. new i, k, buffer[32], Float:buffer2, nummodels_custom, nummodels_default, prec_mdl[100], size = ArraySize(g_zclass2_realname)
  3800. for (i = 0; i < size; i++)
  3801. {
  3802. ArrayGetString(g_zclass2_realname, i, buffer, charsmax(buffer))
  3803.  
  3804. // Check if this is the intended class to override
  3805. if (!equal(name, buffer))
  3806. continue;
  3807.  
  3808. // Remove new class flag
  3809. ArraySetCell(g_zclass_new, g_iZClasses, 0)
  3810.  
  3811. // Replace caption
  3812. ArrayGetString(g_zclass2_name, i, buffer, charsmax(buffer))
  3813. ArraySetString(g_zclass_name, g_iZClasses, buffer)
  3814.  
  3815. // Replace info
  3816. ArrayGetString(g_zclass2_info, i, buffer, charsmax(buffer))
  3817. ArraySetString(g_zclass_info, g_iZClasses, buffer)
  3818.  
  3819. nummodels_custom = ArrayGetCell(g_zclass2_modelsend, i) - ArrayGetCell(g_zclass2_modelsstart, i)
  3820. nummodels_default = ArrayGetCell(g_zclass_modelsend, g_iZClasses) - ArrayGetCell(g_zclass_modelsstart, g_iZClasses)
  3821.  
  3822. // Replace each player model and model index
  3823. for (k = 0; k < min(nummodels_custom, nummodels_default); k++)
  3824. {
  3825. ArrayGetString(g_zclass2_playermodel, ArrayGetCell(g_zclass2_modelsstart, i) + k, buffer, charsmax(buffer))
  3826. ArraySetString(g_zclass_playermodel, ArrayGetCell(g_zclass_modelsstart, g_iZClasses) + k, buffer)
  3827.  
  3828. // Precache player model and replace its modelindex with the real one
  3829. formatex(prec_mdl, charsmax(prec_mdl), "models/player/%s/%s.mdl", buffer, buffer)
  3830. ArraySetCell(g_zclass_modelindex, ArrayGetCell(g_zclass_modelsstart, g_iZClasses) + k, engfunc(EngFunc_PrecacheModel, prec_mdl))
  3831. }
  3832.  
  3833. // We have more custom models than what we can accommodate,
  3834. // Let's make some space...
  3835. if (nummodels_custom > nummodels_default)
  3836. {
  3837. for (k = nummodels_default; k < nummodels_custom; k++)
  3838. {
  3839. ArrayGetString(g_zclass2_playermodel, ArrayGetCell(g_zclass2_modelsstart, i) + k, buffer, charsmax(buffer))
  3840. ArrayInsertStringAfter(g_zclass_playermodel, ArrayGetCell(g_zclass_modelsstart, g_iZClasses) + k - 1, buffer)
  3841.  
  3842. // Precache player model and retrieve its modelindex
  3843. formatex(prec_mdl, charsmax(prec_mdl), "models/player/%s/%s.mdl", buffer, buffer)
  3844. ArrayInsertCellAfter(g_zclass_modelindex, ArrayGetCell(g_zclass_modelsstart, g_iZClasses) + k - 1, engfunc(EngFunc_PrecacheModel, prec_mdl))
  3845. }
  3846.  
  3847. // Fix models end index for this class
  3848. ArraySetCell(g_zclass_modelsend, g_iZClasses, ArrayGetCell(g_zclass_modelsend, g_iZClasses) + (nummodels_custom - nummodels_default))
  3849. }
  3850.  
  3851. // Replace clawmodel
  3852. ArrayGetString(g_zclass2_clawmodel, i, buffer, charsmax(buffer))
  3853. ArraySetString(g_zclass_clawmodel, g_iZClasses, buffer)
  3854.  
  3855. // Replace health
  3856. buffer[0] = ArrayGetCell(g_zclass2_hp, i)
  3857. ArraySetCell(g_zclass_hp, g_iZClasses, buffer[0])
  3858.  
  3859. // Replace speed
  3860. buffer[0] = ArrayGetCell(g_zclass2_spd, i)
  3861. ArraySetCell(g_zclass_spd, g_iZClasses, buffer[0])
  3862.  
  3863. // Replace gravity
  3864. buffer2 = Float:ArrayGetCell(g_zclass2_grav, i)
  3865. ArraySetCell(g_zclass_grav, g_iZClasses, buffer2)
  3866.  
  3867. // Replace admin flags
  3868. buffer2 = ArrayGetCell(g_zclass2_admin, i)
  3869. ArraySetCell(g_zclass_admin, g_iZClasses, buffer2)
  3870.  
  3871. // Replace credits
  3872. buffer2 = ArrayGetCell(g_zclass2_credits, i)
  3873. ArraySetCell(g_zclass_credits, g_iZClasses, buffer2)
  3874. }
  3875. g_iZClasses++
  3876.  
  3877. return g_iZClasses-1
  3878. }
  3879.  
  3880. public native_get_class_cost(classid)
  3881. {
  3882. if (classid < 0 || classid >= g_iZClasses)
  3883. return -1;
  3884.  
  3885. return ArrayGetCell(g_zclass_credits, classid)
  3886. }
  3887.  
  3888. public native_get_user_zombie_class(id) return g_iZombieClass[id];
  3889. public native_get_user_next_class(id) return g_iNextClass[id];
  3890. public native_set_user_zombie_class(id, classid)
  3891. {
  3892. if (classid < 0 || classid >= g_iZClasses)
  3893. return 0;
  3894.  
  3895. g_iNextClass[id] = classid
  3896. return 1;
  3897. }
  3898.  
  3899. public native_is_user_zombie(id) return g_isZombie[id]
  3900. public native_is_user_banned(id) return g_isBuildBan[id]
  3901.  
  3902. public native_bool_buildphase() return g_boolCanBuild
  3903. public native_bool_prepphase() return g_boolPrepTime
  3904.  
  3905. public native_get_build_time()
  3906. {
  3907. if (g_boolCanBuild)
  3908. return g_iCountDown
  3909.  
  3910. return 0;
  3911. }
  3912.  
  3913. public native_set_build_time(time)
  3914. {
  3915. if (g_boolCanBuild)
  3916. {
  3917. g_iCountDown = time
  3918. return 1
  3919. }
  3920.  
  3921. return 0;
  3922. }
  3923.  
  3924. public native_get_user_color(id) return g_iColor[id]
  3925. public native_set_user_color(id, color)
  3926. {
  3927. g_iColor[id] = color
  3928. }
  3929.  
  3930. public native_drop_user_block(id)
  3931. {
  3932. cmdStopEnt(id)
  3933. }
  3934. public native_get_user_block(id)
  3935. {
  3936. if (g_iOwnedEnt[id])
  3937. return g_iOwnedEnt[id]
  3938.  
  3939. return 0;
  3940. }
  3941. public native_set_user_block(id, entity)
  3942. {
  3943. if (is_valid_ent(entity) && !is_user_alive(entity) && !MovingEnt(entity))
  3944. g_iOwnedEnt[id] = entity
  3945. }
  3946.  
  3947. public native_is_locked_block(entity)
  3948. {
  3949. if (is_valid_ent(entity) && !is_user_alive(entity))
  3950. return BlockLocker(entity) ? true : false
  3951.  
  3952. return -1;
  3953. }
  3954. public native_lock_block(entity)
  3955. {
  3956. if (is_valid_ent(entity) && !is_user_alive(entity) && !BlockLocker(entity))
  3957. {
  3958. LockBlock(entity, 33);
  3959. set_pev(entity,pev_rendermode,kRenderTransColor)
  3960. set_pev(entity,pev_rendercolor,Float:{LOCKED_COLOR})
  3961. set_pev(entity,pev_renderamt,Float:{LOCKED_RENDERAMT})
  3962. }
  3963. }
  3964. public native_unlock_block(entity)
  3965. {
  3966. if (is_valid_ent(entity) && !is_user_alive(entity) && BlockLocker(entity))
  3967. {
  3968. UnlockBlock(entity)
  3969. set_pev(entity,pev_rendermode,kRenderNormal)
  3970. }
  3971. }
  3972.  
  3973. public native_release_zombies()
  3974. {
  3975. if (g_boolCanBuild || g_boolPrepTime)
  3976. {
  3977. Release_Zombies()
  3978. return 1;
  3979. }
  3980. return 0;
  3981. }
  3982.  
  3983. public native_set_user_primary(id, csw_primary)
  3984. {
  3985. if (CSW_P228<=csw_primary<=CSW_P90)
  3986. {
  3987. g_iPrimaryWeapon[id] = csw_primary
  3988. return g_iPrimaryWeapon[id];
  3989. }
  3990.  
  3991. return -1;
  3992. }
  3993.  
  3994. public native_get_user_primary(id) return g_iPrimaryWeapon[id]
  3995.  
  3996. public native_get_flags_build() return FLAGS_BUILD
  3997. public native_get_flags_lock() return FLAGS_LOCK
  3998. public native_get_flags_buildban() return FLAGS_BUILDBAN
  3999. public native_get_flags_swap() return FLAGS_SWAP
  4000. public native_get_flags_revive() return FLAGS_REVIVE
  4001. public native_get_flags_guns() return FLAGS_GUNS
  4002. public native_get_flags_release() return FLAGS_RELEASE
  4003. public native_get_flags_override() return FLAGS_OVERRIDE
  4004.  
  4005. /*public native_set_user_mult(id, attribute, Float: amount)
  4006. {
  4007. if (attribute < ATT_HEALTH || attribute > ATT_GRAVITY)
  4008. return 0;
  4009.  
  4010. if (amount < 1.0)
  4011. amount = 1.0
  4012.  
  4013. g_fClassMultiplier[id][attribute] = amount
  4014.  
  4015. return 1;
  4016. }*/
  4017. public MenuBlock(id)
  4018. {
  4019. if(g_Status[id] != REGISTERED) { show_menu_block(id);} else { show_menu_block(id);}
  4020. }
  4021. public chose(id) {
  4022. if (g_Status[id] != UNREGISTERED || (g_Status[id] != REGISTERED)) { MenuBlock(id);}
  4023.  
  4024. if (g_Status[id] == LOGGED)
  4025. {
  4026. MenuPrincipal(id)
  4027. }
  4028. return PLUGIN_HANDLED
  4029. }
  4030. //====BB APARTE
  4031. public MenuPrincipal(id) {
  4032. new menu = menu_create("\y[\rM\y]enu Principal", "handler_principal")
  4033.  
  4034. if(get_user_team(id) == 2)
  4035. menu_additem(menu, "\yPack Armas", "1")
  4036. else
  4037. menu_additem(menu, "\dPack Armas", "1")
  4038.  
  4039. menu_additem(menu, "\yTienda", "2")
  4040. menu_additem(menu, "\yClases", "3")
  4041. menu_additem(menu, "\yMenu Reset", "4")
  4042. menu_additem(menu, "\yMenu niveles", "5")
  4043.  
  4044. if(get_user_flags(id) & ADMIN_LEVEL_D)
  4045. menu_additem(menu, "\yMenu Vip", "6")
  4046. else
  4047. menu_additem(menu, "\dMenu Vip", "6")
  4048.  
  4049. menu_additem(menu, "\yVentas de Admin", "7")
  4050. menu_additem(menu, "\yElejir Mejor Admin", "8")
  4051. menu_additem(menu, "\yParty", "9")
  4052. menu_additem(menu, "\yHabilidades", "10")
  4053. menu_additem(menu, "\yReglas", "12")
  4054. menu_additem(menu, "\yConfiguracion de cuenta", "12")
  4055. menu_additem(menu, "\yGuardar Datos", "13")
  4056.  
  4057. /*==========NO QUITAR==========*///agregado por atomiko
  4058. menu_additem(menu, "\rInformacion de Plugin", "14")
  4059. /*==========NO QUITAR==========*/
  4060.  
  4061. menu_setprop(menu, MPROP_EXITNAME, "\r[Salir]")
  4062. menu_setprop(menu , MPROP_BACKNAME,"\yAtras")
  4063. menu_setprop(menu , MPROP_NEXTNAME,"\ySiguiente")
  4064. menu_display(id, menu, 0)
  4065. }
  4066. public handler_principal(id, menu, item) {
  4067. if(item==MENU_EXIT)
  4068. return
  4069.  
  4070. switch(item) {
  4071. case 0: {
  4072. if(get_user_team(id) == 2) {
  4073. Armas_Selec(id)
  4074. }
  4075. else {
  4076. print_EasyChat(id, "\g%s\nNo puedes abrir este Menu", Tag)
  4077. MenuPrincipal(id)
  4078. }
  4079. }
  4080. case 1: {
  4081. if(get_user_team(id) == 2) {
  4082. abrir_tienda_ct(id)
  4083. }
  4084. else {
  4085. tienda_zm(id)
  4086. }
  4087. }
  4088. case 2: {
  4089. clases(id)
  4090. }
  4091. case 3: {
  4092. menu_reset(id)
  4093. }
  4094. case 4: {
  4095. nivel_cuchillo(id)
  4096. }
  4097. case 5: {
  4098. if(get_user_flags(id) & ADMIN_LEVEL_D) {
  4099. menu_vip(id)
  4100. }
  4101. else {
  4102. print_EasyChat(id, "\g%s\nLo sentimos eres Jugador no Vip", Tag)
  4103. MenuPrincipal(id)
  4104. }
  4105. }
  4106. case 6: {
  4107. Venta_menu(id)
  4108. }
  4109. case 7: {
  4110. if(g_level[id] >= 1) {
  4111. mejor_adm(id)
  4112. }
  4113. else {
  4114. print_EasyChat(id, "\g%s\nTienes que aver jugado + para votar por algun admin", Tag)
  4115. MenuPrincipal(id)
  4116. }
  4117. }
  4118. case 8: {
  4119. cmdParty(id)
  4120. }
  4121. case 9: {
  4122. Menu_Mejoras_Hm(id)
  4123. }
  4124. case 10: {
  4125. Reglas_menu(id)
  4126. }
  4127. case 11: {
  4128. config_cuenta(id)
  4129. }
  4130. case 12: {
  4131. Guardar_x(id)
  4132. }
  4133.  
  4134.  
  4135. }
  4136. return
  4137. }
  4138. /*==========NO QUITAR==========*/
  4139. public Guardar_x(id) {
  4140. set_hudmessage(0, 255, 0, -1.0, -1.0, 0, 6.0, 5.0)
  4141. show_hudmessage(id, "[I-E]BaseBuilder^nGuardardando Datos...")
  4142. set_task(5.0, "siguiente", id)
  4143. }
  4144. public siguiente(id) {
  4145. set_hudmessage(0, 255, 0, -1.0, -1.0, 0, 6.0, 8.0)
  4146. show_hudmessage(id, "[I-E]BaseBuilder^nDatos Guardados^n[Reset%s : %d][Nivel : %d]^n[Experiencia : %d]^n[BBpacks : %d][Puntos:%d]",
  4147. g_reset[id], g_level[id], g_exp[id], g_bbpacks[id], g_puntos[id])
  4148.  
  4149. }
  4150. //GUARDAR DATOS
  4151. public mejor_adm(id)
  4152. {
  4153. client_cmd(id, "messagemode Escribe_Tu_Recomendacion")
  4154. print_EasyChat(id, "\g%s\nEscribe tu opinion del mejor admin", Tag)
  4155. set_hudmessage(255, 0, 0, -1.0, -1.0, 0, 6.0, 8.0)
  4156. show_hudmessage(id, "Puedes Dar tu opinion^ndel mejor Admin o Vips")
  4157. return PLUGIN_HANDLED;
  4158. }
  4159.  
  4160. public Consejo_ASD(id)
  4161. {
  4162. static szName[32], szTime[15], szForm[220], szArgs[190];
  4163. read_args(szArgs, charsmax(szArgs))
  4164. remove_quotes(szArgs)
  4165.  
  4166. if(strlen(szArgs) < 3)
  4167. {
  4168. print_EasyChat(id, "\g%s\nTu Opinion tiene que tener minimo \g3 \nLetras", Tag)
  4169. mejor_adm(id)
  4170. return PLUGIN_CONTINUE
  4171. }
  4172.  
  4173. get_time("%H:%M:%S %p", szTime, charsmax(szTime))
  4174. get_user_name(id, szName, charsmax(szName))
  4175. formatex(szForm, charsmax(szForm), "[Hora : %s] [Nombre Consejante: %s]|||[Opinion: %s]", szTime, szName, szArgs)
  4176. log_to_file("Admin_vote.txt", szForm)
  4177. MenuPrincipal(id)
  4178. print_EasyChat(id, "\g%s\nTu recomendacion ha sido enviada Exitosamente", Tag)
  4179. return PLUGIN_HANDLED;
  4180. }
  4181. public config_cuenta(id) {
  4182. static menu[999], len
  4183. len = 0
  4184.  
  4185. new name[32]; get_user_name(id, name, charsmax(name))
  4186.  
  4187. // Title
  4188. len += formatex(menu[len], charsmax(menu) - len, "\r[I-E] base builder 9.5+lvl^n")
  4189. len += formatex(menu[len], charsmax(menu) - len, "\w[Menu Configuracion Cuenta]^n^n")
  4190.  
  4191. len += formatex(menu[len], charsmax(menu) - len, "\y[Nombre \r: \y%s]^n", name)
  4192. len += formatex(menu[len], charsmax(menu) - len, "\y[Contraseña \r: \y%s]^n", g_TempPassword[id])
  4193. len += formatex(menu[len], charsmax(menu) - len, "\y[Nivel \r: \y%d\r/\y20]^n", g_level[id])
  4194. len += formatex(menu[len], charsmax(menu) - len, "\y[Bbpacks \r: \y%d\r/\y1000]^n", g_bbpacks[id])
  4195. len += formatex(menu[len], charsmax(menu) - len, "\y[Resets \r: \y%d\r/\y50]^n", g_reset[id])
  4196. len += formatex(menu[len], charsmax(menu) - len, "\y[Experiencia \r: \y%d\r/\y%d]^n", g_exp[id], LEVELS[g_level[id]])
  4197. len += formatex(menu[len], charsmax(menu) - len, "\y[Puntos \r: \y%d]^n^n", g_puntos[id])
  4198.  
  4199. len += formatex(menu[len], charsmax(menu) - len, "\r1. \yCambiar Contraseña")
  4200.  
  4201. len += formatex(menu[len], charsmax(menu) - len, "^n^n\r0.\y Salir")
  4202.  
  4203. show_menu(id, KEYSMENU, menu, -1, "Menu_cuenta")
  4204. }
  4205. public handler_cuenta_x(id, key) {
  4206. switch(key) {
  4207. case 0: {
  4208. if(g_Status[id] != LOGGED || g_AlredyChanged[id][PASSWORD])
  4209. {
  4210. show_msg(id,"No estas logueado o ya cambiaste tu password durante el mapa...")
  4211. return PLUGIN_HANDLED
  4212. }
  4213.  
  4214. show_msg(id,"Ingresa tu nueva PASSWORD...");client_cmd(id,"messagemode INGRESAR_PASSWORD")
  4215. }
  4216. }
  4217. return PLUGIN_HANDLED
  4218. }
  4219. public nivel_cuchillo(id) {
  4220. static menu[999], len
  4221. len = 0
  4222.  
  4223. // Title
  4224. len += formatex(menu[len], charsmax(menu) - len, "\r[I-E] base builder 9.5+lvl^n^n")
  4225. len += formatex(menu[len], charsmax(menu) - len, "\w[Menu Niveles]^n")
  4226. len += formatex(menu[len], charsmax(menu) - len, "\yNiveles son para desblockear armas, zombies, items extras, etc...^n")
  4227. len += formatex(menu[len], charsmax(menu) - len, "\y[cada 24 de diciembre se dara de regalo 1 reset , 1 rango , 200 bbpack y doble de exp]^n")
  4228. len += formatex(menu[len], charsmax(menu) - len, "\y[al mejor admin de el mes se le regalara 1 reset y 500 bbpack]^n")
  4229. len += formatex(menu[len], charsmax(menu) - len, "\y[al primero del top 20 se le regalara admin golden por 1 mes 1 reset , 10 niveles , 500 bbpack]^n")
  4230. len += formatex(menu[len], charsmax(menu) - len, "\y[tu nivel: %d/20] [tu exp:%d/100]^n^n", g_level[id], g_exp[id])
  4231.  
  4232. len += formatex(menu[len], charsmax(menu) - len, "\r1. \yCanjear 200 bbpack por 1 nivel^n")
  4233. len += formatex(menu[len], charsmax(menu) - len, "\r2. \yCambiar Color de Hud^n")
  4234. len += formatex(menu[len], charsmax(menu) - len, "\r3. \yLista de Niveles^n")
  4235.  
  4236. len += formatex(menu[len], charsmax(menu) - len, "^n^n\r0.\y Salir")
  4237.  
  4238. show_menu(id, KEYSMENU, menu, -1, "Menu_Nvl")
  4239. }
  4240. public handler_nvl_c(id, key) {
  4241. switch(key) {
  4242. case 0: {
  4243. if(g_bbpacks[id] >= 200) {
  4244. g_level[id] += 1
  4245. g_bbpacks[id] -= 200
  4246. print_EasyChat(id, "\g%s\nCanjiaste 200 bbpacks por 1 nivel", Tag)
  4247. }
  4248. else {
  4249. print_EasyChat(id, "\g%s\nBBPacks Insuficiente", Tag)
  4250. nivel_cuchillo(id)
  4251. }
  4252. }
  4253. case 1: color_hud_x(id)
  4254. case 2: Info_exp(id)
  4255. }
  4256. return
  4257. }
  4258. public color_hud_x(id) {
  4259. new menu = menu_create("\r[I-E] base builder 9.5+lvl ^n\w[Menu de color de hud]^n\y[puedes cambiar el color de tu informacion]", "handler_color_hud")
  4260. menu_additem(menu, "\yRojo", "1")
  4261. menu_additem(menu, "\yNaranjo", "2")
  4262. menu_additem(menu, "\yAmarillo", "3")
  4263. menu_additem(menu, "\yVerde", "4")
  4264. menu_additem(menu, "\yAzul", "5")
  4265. menu_additem(menu, "\yRosado", "6")
  4266. menu_additem(menu, "\yMorado", "7")
  4267. menu_additem(menu, "\yPlomo", "8")
  4268. menu_additem(menu, "\yCeleste", "9")
  4269. menu_additem(menu, "\yBlanco", "10")
  4270. menu_additem(menu, "\yCafe", "11")
  4271.  
  4272. menu_setprop(menu, MPROP_EXITNAME, "\r[SALIR]")
  4273. menu_setprop(menu, MPROP_BACKNAME, "\r[ATRAS]")
  4274. menu_setprop(menu, MPROP_NEXTNAME, "\r[SIGIUENTE]")
  4275. menu_display(id, menu, 0)
  4276. }
  4277. public handler_color_hud(id, menu, item) {
  4278. if(item==MENU_EXIT)
  4279. return
  4280. switch(item) {
  4281. case 0: {
  4282. rojo[id] = 255
  4283. verde[id] = 0
  4284. azul[id] = 0
  4285. }
  4286. case 1: {
  4287. rojo[id] = 255
  4288. verde[id] = 127
  4289. azul[id] = 0
  4290. }
  4291. case 2: {
  4292. rojo[id] = 255
  4293. verde[id] = 255
  4294. azul[id] = 0
  4295. }
  4296. case 3: {
  4297. rojo[id] = 0
  4298. verde[id] = 255
  4299. azul[id] = 0
  4300. }
  4301. case 4: {
  4302. rojo[id] = 0
  4303. verde[id] = 0
  4304. azul[id] = 255
  4305. }
  4306. case 5: {
  4307. rojo[id] = 255
  4308. verde[id] = 0
  4309. azul[id] = 170
  4310. }
  4311. case 6: {
  4312. rojo[id] = 255
  4313. verde[id] = 0
  4314. azul[id] = 255
  4315. }
  4316. case 7: {
  4317. rojo[id] = 165
  4318. verde[id] = 165
  4319. azul[id] = 165
  4320. }
  4321. case 8: {
  4322. rojo[id] = 0
  4323. verde[id] = 255
  4324. azul[id] = 255
  4325. }
  4326. case 9: {
  4327. rojo[id] = 255
  4328. verde[id] = 255
  4329. azul[id] = 255
  4330. }
  4331. case 10: {
  4332. rojo[id] = 145
  4333. verde[id] = 94
  4334. azul[id] = 43
  4335. }
  4336. }
  4337. return
  4338. }
  4339. public menu_vip(id) {
  4340. static menu[999], len
  4341. len = 0
  4342.  
  4343. // Title
  4344. len += formatex(menu[len], charsmax(menu) - len, "\r[I-E] base builder 9.5+lvl^n^n")
  4345. len += formatex(menu[len], charsmax(menu) - len, "\w[Menu Vip]^n")
  4346. len += formatex(menu[len], charsmax(menu) - len, "\yBienvenido al menu vip^n")
  4347. len += formatex(menu[len], charsmax(menu) - len, "\ypuedes tener acceso a varias cosas exclucibas^n^n")
  4348.  
  4349. len += formatex(menu[len], charsmax(menu) - len, "\r1. \yArma Gratis^n")
  4350.  
  4351. //=================
  4352. //========ZM-Adm
  4353. if(get_user_team(id) == 1)
  4354. len += formatex(menu[len], charsmax(menu) - len, "\r2. \yZombie Special \r^"Vip^"^n")
  4355. else
  4356. len += formatex(menu[len], charsmax(menu) - len, "\w2. \dZombie Special \r^"Vip^"^n")
  4357.  
  4358. /*************************************/
  4359.  
  4360. if(get_user_team(id) == 2)
  4361. len += formatex(menu[len], charsmax(menu) - len, "\r3. \yHumano Special \r^"Vip^"^n")
  4362. else
  4363. len += formatex(menu[len], charsmax(menu) - len, "\w3. \dHumano Special \r^"Vip^"^n")
  4364. //========CT-Adm
  4365. //=================
  4366.  
  4367.  
  4368. len += formatex(menu[len], charsmax(menu) - len, "\r4. \yBombas Infinitas\r[5 segundos]^n")
  4369.  
  4370. len += formatex(menu[len], charsmax(menu) - len, "^n^n\r0.\y Salir")
  4371.  
  4372. show_menu(id, KEYSMENU, menu, -1, "Menu_Vip")
  4373. }
  4374. public Menu_Vip_handler(id, key)
  4375. {
  4376. switch (key)
  4377. {
  4378. case 0: {
  4379. give_item(id, "weapon_mp5navy")
  4380. arma_vip[id] = true
  4381. cs_set_user_bpammo(id, CSW_MP5NAVY, 999)
  4382. }
  4383. case 1: {
  4384. if(get_user_team(id) == 1) {
  4385. Zclas[id] = 0
  4386. ZRapi[id] = 0
  4387. ZSalt[id] = 0
  4388. ZTank[id] = 0
  4389. ZOxid[id] = 0
  4390. ZSpit[id] = 0
  4391. ZHunt[id] = 0
  4392. ZTerr[id] = 0
  4393. ZCang[id] = 0
  4394. ZSpitd[id] = 0
  4395. ZWitc[id] = 0
  4396. ZPuta[id] = 0
  4397. ZSwar[id] = 0
  4398. ZClot[id] = 0
  4399. ZFeno[id] = 0
  4400. ZPaya[id] = 0
  4401. Zm_Adm[id] = 1
  4402. Zdiab[id] = 0
  4403. ZPois[id] = 0
  4404. ZSant[id] = 0
  4405. ZScra[id] = 0
  4406. ZSire[id] = 0
  4407. ZSmok[id] = 0
  4408. ZStal[id] = 0
  4409. ZHusk[id] = 0
  4410. Zlobo[id] = 0
  4411. ZClass[id] = 0
  4412. Zperr[id] = 0
  4413. ZDocS[id] = 0
  4414. ZSui[id] = 0
  4415. ZDest[id] = 0
  4416. ZJock[id] = 0
  4417. ZNeme[id] = 0
  4418. ZRadia[id] = 0
  4419. ZLeye[id] = 0
  4420. ZChar[id] = 0
  4421. ZCarn[id] = 0
  4422. ZTanke[id] = 0
  4423. ZBull[id] = 0
  4424. }
  4425. else {
  4426. print_EasyChat(id, "\g%s\nEres Ct No Zm", Tag)
  4427. menu_vip(id)
  4428. }
  4429. }
  4430. case 2: {
  4431. if(get_user_team(id) == 2) {
  4432. Hm_Civil[id] = 0
  4433. Hm_princ[id] = 0
  4434. Hm_Sobre[id] = 0
  4435. Hm_Domin[id] = 0
  4436. Hm_Solda[id] = 0
  4437. Hm_Milit[id] = 0
  4438. Hm_Assasins[id] = 0
  4439. Hm_Adm[id] = 1
  4440. }
  4441. else {
  4442. print_EasyChat(id, "\g%s\nEres Zm No Ct", Tag)
  4443. menu_vip(id)
  4444. }
  4445. }
  4446. case 3: {
  4447. set_task(1.0, "dar_he1", id)
  4448. set_task(2.0, "dar_he2", id)
  4449. set_task(3.0, "dar_he3", id)
  4450. set_task(4.0, "dar_he4", id)
  4451. set_task(5.0, "dar_he5", id)
  4452. }
  4453.  
  4454. }
  4455. }
  4456. public dar_he1(id) {
  4457. give_item(id, "weapon_hegrenade")
  4458. }
  4459. public dar_he2(id) {
  4460. give_item(id, "weapon_hegrenade")
  4461. }
  4462. public dar_he3(id) {
  4463. give_item(id, "weapon_hegrenade")
  4464. }
  4465. public dar_he4(id) {
  4466. give_item(id, "weapon_hegrenade")
  4467. }
  4468. public dar_he5(id) {
  4469. give_item(id, "weapon_hegrenade")
  4470. }
  4471. public menu_reset(id) {
  4472. static menu[999], len
  4473. len = 0
  4474.  
  4475. // Title
  4476. len += formatex(menu[len], charsmax(menu) - len, "\r[I-E] base builder 9.5+lvl^n^n")
  4477. len += formatex(menu[len], charsmax(menu) - len, "\w[Menu reset]^n")
  4478. len += formatex(menu[len], charsmax(menu) - len, "\y[reset es : recetear tu cuenta y tus 20 niveles transformarlos en 1 reset]^n")
  4479. len += formatex(menu[len], charsmax(menu) - len, "\y[cada 24 de diciembre se dara de regalo 1 reset , 1 rango , 200 bbpack y doble de exp]^n")
  4480. len += formatex(menu[len], charsmax(menu) - len, "\r[tus resets: %d/50]^n^n", g_reset[id])
  4481.  
  4482. len += formatex(menu[len], charsmax(menu) - len, "\r1. \yResetear cuenta [%d/50]^n", g_reset[id])
  4483. len += formatex(menu[len], charsmax(menu) - len, "\r2. \wAtras^n")
  4484.  
  4485. len += formatex(menu[len], charsmax(menu) - len, "^n^n\r0.\y Salir")
  4486.  
  4487. show_menu(id, KEYSMENU, menu, -1, "Game Menu")
  4488. }
  4489. public Menu_Reset(id, key)
  4490. {
  4491. switch (key)
  4492. {
  4493. case 0: // Buy Weapons
  4494. {
  4495. if(g_level[id] >= 20) {
  4496. g_reset[id] ++
  4497. g_level[id] = 1
  4498. g_exp[id] = 1
  4499. }
  4500. else {
  4501. print_EasyChat(id, "\g%s\nNivel insuficiente para Resetiar", Tag)
  4502. menu_reset(id)
  4503. }
  4504. }
  4505. case 1: {
  4506. MenuPrincipal(id)
  4507. }
  4508. }
  4509. return
  4510. }
  4511. public Reglas_menu(id)
  4512. {
  4513.  
  4514. new len[999] , temp[22], page
  4515.  
  4516. new menu = menu_create("\y[\rR\y]eglas", "handler_reglas")
  4517.  
  4518. for(new i = 0 ; i < sizeof Reglas ; i++) {
  4519. formatex(len , charsmax(len) , "\r%s" , Reglas[i][Nombre])
  4520.  
  4521. num_to_str(i, temp, 2)
  4522. menu_additem(menu, len, temp)
  4523. }
  4524. menu_setprop(menu , MPROP_BACKNAME,"\rAtras")
  4525. menu_setprop(menu , MPROP_NEXTNAME,"\rSiguiente")
  4526. menu_setprop(menu , MPROP_EXITNAME,"\r[Salir]")
  4527. menu_display(id, menu , page)
  4528.  
  4529. return PLUGIN_HANDLED
  4530. }
  4531. public handler_reglas(id, menu, item) {
  4532. if(item==MENU_EXIT)
  4533. return
  4534.  
  4535. Reglas_menu(id)
  4536.  
  4537. return
  4538. }
  4539. public Venta_menu(id)
  4540. {
  4541.  
  4542. new len[999] , temp[22], page
  4543.  
  4544. new menu = menu_create("\y[\rV\y]enta de Admins & Vips", "handler_venta")
  4545.  
  4546. for(new i = 0 ; i < sizeof Tienda_ADM ; i++) {
  4547. formatex(len , charsmax(len) , "%s %s" , Tienda_ADM[i][Nombre], Tienda_ADM[i][Precio])
  4548.  
  4549. num_to_str(i, temp, 2)
  4550. menu_additem(menu, len, temp)
  4551. }
  4552. menu_setprop(menu , MPROP_EXITNAME,"\r[Salir]")
  4553. menu_display(id, menu , page)
  4554.  
  4555. return PLUGIN_HANDLED
  4556. }
  4557. public Info_exp(id) {
  4558. new len[999], temp[22]
  4559.  
  4560. new menu = menu_create("\rI\ynformacion de Experiencia", "handler_info_exp")
  4561.  
  4562. for(new i = 0; i < sizeof EXP_DATA; i++) {
  4563. formatex(len, charsmax(len), "\yEn Nivel \r%s\w,\y Exp sera \r%s", EXP_DATA[i][Nivel_x], EXP_DATA[i][Exp_x])
  4564.  
  4565. num_to_str(i, temp, 2)
  4566. menu_additem(menu, len, temp)
  4567. }
  4568. menu_setprop(menu, MPROP_EXITNAME, "\r[Salir]")
  4569. menu_display(id, menu, 0)
  4570. }
  4571. public handler_info_exp(id, menu, item) {
  4572. if(item==MENU_EXIT)
  4573. return
  4574.  
  4575. Info_exp(id)
  4576.  
  4577. return
  4578. }
  4579. public handler_venta(id, menu, item) {
  4580. if(item==MENU_EXIT)
  4581. return
  4582.  
  4583. Compra_adm(id)
  4584.  
  4585. return
  4586. }
  4587. public Compra_adm(id) {
  4588. new menu = menu_create("\y[\yI\y]nformacion^nContactos : ", "handler_info")
  4589. menu_additem(menu, "\yFaceBook : \rhttps://www.facebook.com/simonantonio.verajorquera", "1")
  4590. menu_additem(menu, "\yYoutube : \rhttps://www.youtube.com/user/felipeexp20", "2")
  4591. menu_additem(menu, "\ySkype : \rfelipe exp 20", "3")
  4592.  
  4593. menu_setprop(menu , MPROP_EXITNAME,"\r[Salir]")
  4594. menu_display(id, menu , 0)
  4595. }
  4596. public handler_info(id, menu, item) {
  4597. if(item==MENU_EXIT)
  4598. return
  4599.  
  4600. switch(item) {
  4601. case 0: {
  4602. Compra_adm(id)
  4603. }
  4604. case 1: {
  4605. Compra_adm(id)
  4606. }
  4607. case 3: {
  4608. Compra_adm(id)
  4609. }
  4610. }
  4611. return
  4612. }
  4613. public fw_spawn(id) {
  4614. if(get_user_team(id) == 2) {
  4615. Armas_Selec(id)
  4616. strip_user_weapons(id)
  4617. give_item(id, "weapon_knife")
  4618. una_vez[id] = false
  4619. una_vez_rr[id] = false
  4620. }
  4621. if(get_user_team(id) == 1) {
  4622. emit_sound(id, CHAN_AUTO, RESPAWN_ZM, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  4623. strip_user_weapons(id)
  4624. give_item(id, "weapon_knife")
  4625. }
  4626.  
  4627. }
  4628. public event_CurWeapon_knife(id)
  4629. {
  4630. if(!is_user_alive(id))
  4631. return 1
  4632. new weaponid = read_data(2)
  4633. if(get_user_team(id) == 1) {
  4634. if(weaponid == CSW_KNIFE) {
  4635. if(get_user_team(id) == 1) {
  4636. if(Zclas[id]) {
  4637. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_clasico.mdl")
  4638. }
  4639. else if(ZRapi[id]) {
  4640. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_bloodyhands.mdl")
  4641. }
  4642. else if(ZSalt[id]) {
  4643. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_bloodyhands.mdl")
  4644. }
  4645. else if(ZTank[id]) {
  4646. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_bloodyhands.mdl")
  4647. }
  4648. else if(ZOxid[id]) {
  4649. set_pev(id, pev_viewmodel2, "models/Knifes_zm/manos_necrofago.mdl")
  4650. }
  4651. else if(ZSpit[id]) {
  4652. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_Spitter_hands.mdl")
  4653. }
  4654. else if(ZHunt[id]) {
  4655. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_hunter.mdl")
  4656. }
  4657. else if(ZTerr[id]) {
  4658. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_bloodyhands.mdl")
  4659. }
  4660. else if(ZCang[id]) {
  4661. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_cangre.mdl")
  4662. }
  4663. else if(ZSpitd[id]) {
  4664. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_Splinter_hands.mdl")
  4665. }
  4666. else if(ZWitc[id]) {
  4667. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_Splinter_hands.mdl")
  4668. }
  4669. else if(ZPuta[id]) {
  4670. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_bloodyhands.mdl")
  4671. }
  4672. else if(ZSwar[id]) {
  4673. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_bloodyhands.mdl")
  4674. }
  4675. else if(ZClot[id]) {
  4676. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_bloodyhands.mdl")
  4677. }
  4678. else if(ZFeno[id]) {
  4679. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_Splinter_hands.mdl")
  4680. }
  4681. else if(ZPaya[id]) {
  4682. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_knife_jockey.mdl")
  4683. }
  4684. else if(Zdiab[id]) {
  4685. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_knife_diablo.mdl")
  4686. }
  4687. else if(ZPois[id]) {
  4688. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_bloodyhands.mdl")
  4689. }
  4690. else if(ZSant[id]) {
  4691. set_pev(id, pev_viewmodel2, "models/Knifes_zm/manos_necrofago.mdl")
  4692. }
  4693. else if(ZScra[id]) {
  4694. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_knife_jockey.mdl")
  4695. }
  4696. else if(ZSire[id]) {
  4697. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_siren_fakeclaws.mdl")
  4698. }
  4699. else if(ZSmok[id]) {
  4700. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_knife_zombie_smoker.mdl")
  4701. }
  4702. else if(ZStal[id]) {
  4703. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_bloodyhands.mdl")
  4704. }
  4705. else if(ZHusk[id]) {
  4706. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_husk_hands.mdl")
  4707. }
  4708. else if(Zlobo[id]) {
  4709. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_doghands.mdl")
  4710. }
  4711. else if(ZClass[id]) {
  4712. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_clasico.mdl")
  4713. }
  4714. else if(Zperr[id]) {
  4715. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_doghands.mdl")
  4716. }
  4717. else if(ZDocS[id]) {
  4718. set_pev(id, pev_viewmodel2, "models/Knifes_zm/knife_scrake.mdl")
  4719. }
  4720. else if(ZSui[id]) {
  4721. set_pev(id, pev_viewmodel2, "models/Knifes_zm/manos_necrofago.mdl")
  4722. }
  4723. else if(ZDest[id]) {
  4724. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_knife_jockey.mdl")
  4725. }
  4726. else if(ZJock[id]) {
  4727. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_knife_jockey.mdl")
  4728. }
  4729. else if(ZNeme[id]) {
  4730. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_nemesis.mdl")
  4731. }
  4732. else if(ZRadia[id]) {
  4733. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_radiactivo.mdl")
  4734. }
  4735. else if(ZLeye[id]) {
  4736. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_Splinter_hands.mdl")
  4737. }
  4738. else if(ZChar[id]) {
  4739. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_charger_claws.mdl")
  4740. }
  4741. else if(ZCarn[id]) {
  4742. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_salvador_chainsaw.mdl")
  4743. }
  4744. else if(ZTanke[id]) {
  4745. set_pev(id, pev_viewmodel2, "models/Knifes_zm/manos_necrofago.mdl")
  4746. }
  4747. else if(ZBull[id]) {
  4748. set_pev(id, pev_viewmodel2, "models/Knifes_zm/v_knife_diablo.mdl")
  4749. }
  4750. else if(Zm_Adm[id]) {
  4751. set_pev(id, pev_viewmodel2, "models/Knifes_zm/manos_necrofago.mdl")
  4752. }
  4753. }
  4754. else {
  4755. set_pev(id, pev_viewmodel2, "models/v_knife.mdl")
  4756. }
  4757. }
  4758. }
  4759. return HAM_IGNORED
  4760. }
  4761. public Armas_Selec(id) {
  4762. if(get_user_team(id) == 2) {
  4763. new menu = menu_create("\r[S]\yeleccion de Armas", "handler_selec")
  4764. menu_additem(menu, "\yPack Armas\r[Niveles]", "1")
  4765. menu_additem(menu, (g_reset[id] >= 1)?"\yPack Armas\r[Resets]":"\dPack Armas\r[Resets]", "2")
  4766.  
  4767. menu_setprop(menu, MPROP_EXITNAME, "\r[Salir]")
  4768. menu_display(id, menu, 0)
  4769. }
  4770. else {
  4771. //
  4772. }
  4773. return PLUGIN_HANDLED;
  4774. }
  4775. public handler_selec(id, menu, item) {
  4776. if(item==MENU_EXIT)
  4777. return
  4778.  
  4779. switch(item) {
  4780. case 0: {
  4781. ArmasPrimarias_lvl(id)
  4782.  
  4783. }
  4784. case 1: {
  4785. if(g_reset[id] >= 1) {
  4786. ArmasReset(id)
  4787.  
  4788. }
  4789. else {
  4790. print_EasyChat(id, "\g%s\nTienes que tener arriva de 1 reset para las Armas", Tag)
  4791. Armas_Selec(id)
  4792.  
  4793. return
  4794. }
  4795. }
  4796. }
  4797. return
  4798. }
  4799. public ArmasReset(id)
  4800. {
  4801.  
  4802. new len[999] , temp[22], page
  4803.  
  4804.  
  4805. menu_armas = menu_create("\y[\rA\y]rmas Resets", "handler_armas_rs")
  4806.  
  4807. for(new i = 0 ; i < sizeof menu_death ; i++) {
  4808. if (g_reset[id]> menu_death[i][item_reset] || g_reset[id] == menu_death[i][item_reset])
  4809. formatex(len , charsmax(len) , "\y%s \r[\yDisponible\r]" , menu_death[i][item_name_v2])
  4810. else
  4811. formatex(len , charsmax(len) , "\d%s \y[Reset:\r%d\y]", menu_death[i][item_name_v2], menu_death[i][item_reset])
  4812. num_to_str(i, temp, 2)
  4813. menu_additem(menu_armas, len, temp)
  4814. }
  4815. menu_setprop(menu_armas , MPROP_BACKNAME,"\rAtras")
  4816. menu_setprop(menu_armas , MPROP_NEXTNAME,"\rSiguiente")
  4817. menu_setprop(menu_armas , MPROP_EXITNAME,"\r[Salir]")
  4818. menu_display(id, menu_armas , page)
  4819.  
  4820. return PLUGIN_HANDLED
  4821. }
  4822. public handler_armas_rs(id, menu, item) {
  4823. if(item==MENU_EXIT)
  4824. return
  4825.  
  4826. if(una_vez_rr[id]) {
  4827. print_EasyChat(id, "\g%s\nYa escogiste una arma con reset", Tag)
  4828. return
  4829. }
  4830. una_vez_rr[id] = true
  4831. if(g_reset[id] == menu_death[item][item_reset] || g_reset[id] > menu_death[item][item_reset]) {
  4832. g_arma[id] = item
  4833. client_cmd(id, menu_death[item][Comando])
  4834. give_item(id, menu_death[item][Weapon_nombre])
  4835. cs_set_user_bpammo(id, menu_death[item][item_id], 999)
  4836.  
  4837. }
  4838. else {
  4839. print_EasyChat(id, "\g%s\nReset Insuficiente para esta arma \g[Reset:%d]", Tag, menu_death[item][item_reset])
  4840. ArmasReset(id)
  4841.  
  4842. return
  4843. }
  4844. return
  4845. }
  4846. public ArmasPrimarias_lvl(id) {
  4847. new menu = menu_create("\r[A]\yrmas Primarias", "handler_primarias_lvl")
  4848.  
  4849. menu_additem(menu, (g_level[id] >= 0)?"\yTmp\r[\yDisponible\r]":"\dTmp\r[\yNivel : 1 \r]", "1")
  4850. menu_additem(menu, (g_level[id] >= 2)?"\yMac10\r[\yDisponible\r]":"\dMac10\r[\yNivel : 2 \r]", "2")
  4851. menu_additem(menu, (g_level[id] >= 4)?"\yMp5\r[\yDisponible\r]":"\dMp5\r[\yNivel : 4 \r]", "3")
  4852. menu_additem(menu, (g_level[id] >= 6)?"\yUmp45\r[\yDisponible\r]":"\dUmp45\r[\yNivel : 6 \r]", "4")
  4853. menu_additem(menu, (g_level[id] >= 7)?"\yP90\r[\yDisponible\r]":"\dP90\r[\yNivel : 7 \r]", "5")
  4854. menu_additem(menu, (g_level[id] >= 8)?"\yXm1014\r[\yDisponible\r]":"\dXm1014\r[\yNivel : 8 \r]", "6")
  4855. menu_additem(menu, (g_level[id] >= 10)?"\yFamas\r[\yDisponible\r]":"\dFamas\r[\yNivel : 10 \r]", "7")
  4856. menu_additem(menu, (g_level[id] >= 12)?"\yGalil\r[\yDisponible\r]":"\dGalil\r[\yNivel : 12 \r]", "8")
  4857. menu_additem(menu, (g_level[id] >= 14)?"\ySg552\r[\yDisponible\r]":"\dSg552\r[\yNivel : 14 \r]", "9")
  4858. menu_additem(menu, (g_level[id] >= 15)?"\yScout\w+\yMp5\r[\yDisponible\r]":"\dScout+Mp5\r[\yNivel : 15 \r]", "10")
  4859. menu_additem(menu, (g_level[id] >= 17)?"\yAwp\w+\yUmp45\r[\yDisponible\r]":"\dAwp+Ump45\r[\yNivel : 17 \r]", "11")
  4860. menu_additem(menu, (g_level[id] >= 18)?"\yM3 Super 90\r[\yDisponible\r]":"\dM3 Super 90\r[\yNivel : 18 \r]", "12")
  4861. menu_additem(menu, (g_level[id] >= 19)?"\yM4a1 Maverik\r[\yDisponible\r]":"\dM4a1 Maverik\r[\yNivel : 19 \r]", "13")
  4862. menu_additem(menu, (g_level[id] >= 20)?"\yAk47\r[\yDisponible\r]":"\dAk47\r[\yNivel : 20 \r]", "14")
  4863.  
  4864. menu_setprop(menu, MPROP_BACKNAME,"\rAtras")
  4865. menu_setprop(menu, MPROP_NEXTNAME,"\rSiguiente")
  4866. menu_setprop(menu, MPROP_EXITNAME,"\r[Salir]")
  4867. menu_display(id, menu, 0)
  4868. }
  4869. public handler_primarias_lvl(id, menu, item) {
  4870. if(item==MENU_EXIT)
  4871. return
  4872.  
  4873. if(una_vez[id]) {
  4874. print_EasyChat(id, "\g%s\nYa escogiste una arma con niveles", Tag)
  4875. return
  4876. }
  4877. una_vez[id] = true
  4878.  
  4879. switch(item) {
  4880. case 0: {
  4881. if(g_level[id] >= 0) {
  4882. give_item(id, "weapon_tmp")
  4883. cs_set_user_bpammo(id, CSW_TMP, 999)
  4884. ArmasSecundarias_lvl(id)
  4885. }
  4886. else {
  4887. ArmasPrimarias_lvl(id)
  4888. }
  4889. }
  4890. case 1: {
  4891. if(g_level[id] >= 2) {
  4892. give_item(id, "weapon_mac10")
  4893. cs_set_user_bpammo(id, CSW_MAC10, 999)
  4894. ArmasSecundarias_lvl(id)
  4895. }
  4896. else {
  4897. ArmasPrimarias_lvl(id)
  4898. }
  4899. }
  4900. case 2: {
  4901. if(g_level[id] >= 4) {
  4902. give_item(id, "weapon_mp5navy")
  4903. cs_set_user_bpammo(id, CSW_MP5NAVY, 999)
  4904. ArmasSecundarias_lvl(id)
  4905. }
  4906. else {
  4907. ArmasPrimarias_lvl(id)
  4908. }
  4909. }
  4910. case 3: {
  4911. if(g_level[id] >= 6) {
  4912. give_item(id, "weapon_ump45")
  4913. cs_set_user_bpammo(id, CSW_UMP45, 999)
  4914. ArmasSecundarias_lvl(id)
  4915. }
  4916. else {
  4917. ArmasPrimarias_lvl(id)
  4918. }
  4919. }
  4920. case 4: {
  4921. if(g_level[id] >= 7) {
  4922. give_item(id, "weapon_p90")
  4923. cs_set_user_bpammo(id, CSW_P90, 999)
  4924. ArmasSecundarias_lvl(id)
  4925. }
  4926. else {
  4927. ArmasPrimarias_lvl(id)
  4928. }
  4929. }
  4930. case 5: {
  4931. if(g_level[id] >= 8) {
  4932. give_item(id, "weapon_xm1014")
  4933. cs_set_user_bpammo(id, CSW_XM1014, 999)
  4934. ArmasSecundarias_lvl(id)
  4935. }
  4936. else {
  4937. ArmasPrimarias_lvl(id)
  4938. }
  4939. }
  4940. case 6: {
  4941. if(g_level[id] >= 10) {
  4942. give_item(id, "weapon_famas")
  4943. cs_set_user_bpammo(id, CSW_FAMAS, 999)
  4944. ArmasSecundarias_lvl(id)
  4945. }
  4946. else {
  4947. ArmasPrimarias_lvl(id)
  4948. }
  4949. }
  4950. case 7: {
  4951. if(g_level[id] >= 12) {
  4952. give_item(id, "weapon_galil")
  4953. cs_set_user_bpammo(id, CSW_GALIL, 999)
  4954. ArmasSecundarias_lvl(id)
  4955. }
  4956. else {
  4957. ArmasPrimarias_lvl(id)
  4958. }
  4959. }
  4960. case 8: {
  4961. if(g_level[id] >= 14) {
  4962. give_item(id, "weapon_sg552")
  4963. cs_set_user_bpammo(id, CSW_SG552, 999)
  4964. ArmasSecundarias_lvl(id)
  4965. }
  4966. else {
  4967. ArmasPrimarias_lvl(id)
  4968. }
  4969. }
  4970. case 9: {
  4971. if(g_level[id] >= 15) {
  4972. give_item(id, "weapon_scout")
  4973. cs_set_user_bpammo(id, CSW_SCOUT, 999)
  4974. give_item(id, "weapon_mp5navy")
  4975. cs_set_user_bpammo(id, CSW_MP5NAVY, 999)
  4976. ArmasSecundarias_lvl(id)
  4977. }
  4978. else {
  4979. ArmasPrimarias_lvl(id)
  4980. }
  4981. }
  4982. case 10: {
  4983. if(g_level[id] >= 17) {
  4984. give_item(id, "weapon_awp")
  4985. cs_set_user_bpammo(id, CSW_AWP, 999)
  4986. give_item(id, "weapon_ump45")
  4987. cs_set_user_bpammo(id, CSW_UMP45, 999)
  4988. ArmasSecundarias_lvl(id)
  4989. }
  4990. else {
  4991. ArmasPrimarias_lvl(id)
  4992. }
  4993. }
  4994. case 11: {
  4995. if(g_level[id] >= 18) {
  4996. give_item(id, "weapon_m3")
  4997. cs_set_user_bpammo(id, CSW_M3, 999)
  4998. ArmasSecundarias_lvl(id)
  4999. }
  5000. else {
  5001. ArmasPrimarias_lvl(id)
  5002. }
  5003. }
  5004. case 12: {
  5005. if(g_level[id] >= 19) {
  5006. give_item(id, "weapon_m4a1")
  5007. cs_set_user_bpammo(id, CSW_M4A1, 999)
  5008. ArmasSecundarias_lvl(id)
  5009. }
  5010. else {
  5011. ArmasPrimarias_lvl(id)
  5012. }
  5013. }
  5014. case 13: {
  5015. if(g_level[id] >= 20) {
  5016. give_item(id, "weapon_ak47")
  5017. cs_set_user_bpammo(id, CSW_AK47, 999)
  5018. ArmasSecundarias_lvl(id)
  5019. }
  5020. else {
  5021. ArmasPrimarias_lvl(id)
  5022. }
  5023. }
  5024. }
  5025. return
  5026. }
  5027. public ArmasSecundarias_lvl(id) {
  5028. new menu = menu_create("\r[A]\yrmas Secundarias", "handler_secundarias_lvl")
  5029.  
  5030. menu_additem(menu, (g_level[id] >= 0)?"\yGlock18\r[\yDisponible\r]":"\dGlock18\r[\yNivel : 1 \r]", "1")
  5031. menu_additem(menu, (g_level[id] >= 2)?"\yUsp\r[\yDisponible\r]":"\dUsp\r[\yNivel : 2 \r]", "2")
  5032. menu_additem(menu, (g_level[id] >= 4)?"\y228 compact\r[\yDisponible\r]":"\d228 compact\r[\yNivel : 4 \r]", "3")
  5033. menu_additem(menu, (g_level[id] >= 5)?"\yFiveSeven\r[\yDisponible\r]":"\dFiveSeven\r[\yNivel : 5 \r]", "4")
  5034. menu_additem(menu, (g_level[id] >= 6)?"\yDeagle\r[\yDisponible\r]":"\dDeagle\r[\yNivel : 6 \r]", "5")
  5035. menu_additem(menu, (g_level[id] >= 8)?"\yDual elite\r[\yDisponible\r]":"\dDual elite\r[\yNivel : 8 \r]", "6")
  5036.  
  5037. menu_setprop(menu, MPROP_EXITNAME,"\r[Salir]")
  5038. menu_display(id, menu, 0)
  5039. }
  5040. public handler_secundarias_lvl(id, menu, item) {
  5041. if(item==MENU_EXIT)
  5042. return
  5043.  
  5044. switch(item) {
  5045. case 0: {
  5046. if(g_level[id] >= 0) {
  5047. give_item(id, "weapon_glock18")
  5048. cs_set_user_bpammo(id, CSW_GLOCK18, 999)
  5049. Bombas(id)
  5050. }
  5051. else {
  5052. ArmasSecundarias_lvl(id)
  5053. }
  5054. }
  5055. case 1: {
  5056. if(g_level[id] >= 2) {
  5057. give_item(id, "weapon_usp")
  5058. cs_set_user_bpammo(id, CSW_USP, 999)
  5059. Bombas(id)
  5060. }
  5061. else {
  5062. ArmasSecundarias_lvl(id)
  5063. }
  5064. }
  5065. case 2: {
  5066. if(g_level[id] >= 4) {
  5067. give_item(id, "weapon_p229")
  5068. cs_set_user_bpammo(id, CSW_P228, 999)
  5069. Bombas(id)
  5070. }
  5071. else {
  5072. ArmasSecundarias_lvl(id)
  5073. }
  5074. }
  5075. case 3: {
  5076. if(g_level[id] >= 5) {
  5077. give_item(id, "weapon_fiveseven")
  5078. cs_set_user_bpammo(id, CSW_FIVESEVEN, 999)
  5079. Bombas(id)
  5080. }
  5081. else {
  5082. ArmasSecundarias_lvl(id)
  5083. }
  5084. }
  5085. case 4: {
  5086. if(g_level[id] >= 6) {
  5087. give_item(id, "weapon_deagle")
  5088. cs_set_user_bpammo(id, CSW_DEAGLE, 999)
  5089. Bombas(id)
  5090. }
  5091. else {
  5092. ArmasSecundarias_lvl(id)
  5093. }
  5094. }
  5095. case 5: {
  5096. if(g_level[id] >= 8) {
  5097. give_item(id, "weapon_elite")
  5098. cs_set_user_bpammo(id, CSW_ELITE, 999)
  5099. Bombas(id)
  5100. }
  5101. else {
  5102. ArmasSecundarias_lvl(id)
  5103. }
  5104. }
  5105. }
  5106. return
  5107. }
  5108. public Bombas(id) {
  5109. new menu = menu_create("\r[G]\yranadas Primarias", "handler_granadas")
  5110. menu_additem(menu, (g_level[id] >= 0)?"\yHe Grenade\r[\yDisponible\r]":"\dHe Grenade\r[\yNivel: 2 \r]", "1")
  5111. menu_additem(menu, (g_level[id] >= 4)?"\yGranada de Fuego\r[\yDisponible\r]":"\dGranada de Fuego\r[\yNivel: 4 \r]", "2")
  5112. menu_additem(menu, (g_level[id] >= 8)?"\ySuper He\r[\yDisponible\r]":"\dSuper He\r[\yNivel: 8 \r]", "3")
  5113. menu_additem(menu, (g_level[id] >= 14)?"\yEspecial c4\r[\yDisponible\r]":"\dEspecial c4\r[\yNivel: 14 \r]", "4")
  5114.  
  5115. menu_setprop(menu , MPROP_EXITNAME,"\r[Salir]")
  5116. menu_display(id, menu, 0)
  5117. }
  5118. public handler_granadas(id, menu, item) {
  5119. if(item==MENU_EXIT)
  5120. return
  5121. switch(item) {
  5122. case 0: {
  5123. if(g_level[id] >= 0) {
  5124. give_item(id, "weapon_hegrenade")
  5125. Bombas2(id)
  5126. }
  5127. else {
  5128. Bombas(id)
  5129. }
  5130. }
  5131. case 1: {
  5132. if(g_level[id] >= 4) {
  5133. granada_fuego(id)
  5134. Bombas2(id)
  5135. }
  5136. else {
  5137. Bombas(id)
  5138. }
  5139. }
  5140. case 2: {
  5141. if(g_level[id] >= 8) {
  5142. client_cmd(id, "---------")
  5143. Bombas2(id)
  5144. }
  5145. else {
  5146. Bombas(id)
  5147. }
  5148. }
  5149. case 3: {
  5150. if(g_level[id] >= 14) {
  5151. client_cmd(id, "---------")
  5152. Bombas2(id)
  5153. }
  5154. else {
  5155. Bombas(id)
  5156. }
  5157. }
  5158. }
  5159. return
  5160. }
  5161. public Bombas2(id) {
  5162. new menu = menu_create("\[G]\yranadas Secundarias", "handler_granadas2")
  5163. menu_additem(menu, (g_level[id] >= 2)?"\yGranada de Hielo\r[\yDisponible\r]":"\dGranada de Hielo\r[\yNivel: 3 \r]", "1")
  5164. menu_additem(menu, (g_level[id] >= 6)?"\yGranada Drogante\r[\yDisponible\r]":"\dGranada Drogante\r[\yNivel: 6 \r]", "2")
  5165. menu_additem(menu, (g_level[id] >= 10)?"\yBomba Electro\r[\yDisponible\r]":"\dBomba invisible\r[\yNivel: 10 \r]", "3")
  5166.  
  5167. menu_setprop(menu, MPROP_EXITNAME,"\r[Salir]")
  5168. menu_display(id, menu, 0)
  5169. }
  5170. public handler_granadas2(id, menu, item)
  5171. {
  5172. if(item==MENU_EXIT)
  5173. return
  5174.  
  5175. switch(item) {
  5176. case 0: {
  5177. if(g_level[id] >= 2) {
  5178. give_item(id, "weapon_smokegrenade")
  5179. }
  5180. else {
  5181. Bombas(id)
  5182. }
  5183. }
  5184. case 1: {
  5185. if(g_level[id] >= 6) {
  5186. }
  5187. else {
  5188. Bombas(id)
  5189. }
  5190. }
  5191. case 2: {
  5192. if(g_level[id] >= 10) {
  5193. give_item(id, "weapon_flashbang")
  5194. }
  5195. else {
  5196. Bombas(id)
  5197. }
  5198. }
  5199. }
  5200. }
  5201. public clases(id) {
  5202. new menu = menu_create("\yClases", "handler_clases_hz")
  5203. menu_additem(menu, "\yClases Humanas", "1")
  5204. menu_additem(menu, "\yClases Zombies", "2")
  5205.  
  5206. menu_setprop(menu, MPROP_EXITNAME, "\r[Salir]")
  5207. menu_display(id, menu, 0)
  5208. }
  5209. public handler_clases_hz(id, menu, item) {
  5210. if(item==MENU_EXIT) {
  5211. MenuPrincipal(id)
  5212. return
  5213. }
  5214. switch(item) {
  5215. case 0: clases_hm(id)
  5216. case 1: clases_zm(id)
  5217. }
  5218. return
  5219. }
  5220. public fw_player_killed(victim, attacker, shouldgib)
  5221. {
  5222. new weaponid = read_data(2)
  5223. if(get_user_team(attacker) == 2 && get_user_team(victim) == 1)
  5224. {
  5225. if(weaponid == CSW_KNIFE) {
  5226. print_EasyChat(attacker, "\g%s\nGanas 50 Exp, 10 BBpacks y 2 Punto por matar con cuchillo", Tag)
  5227. g_exp[attacker] += 50
  5228. g_bbpacks[attacker] += 10
  5229. g_puntos[attacker] += 2
  5230. check_level(attacker)
  5231. client_cmd(victim, "mp3 play ^"%s^"", Matar_zm)
  5232. }
  5233. else {
  5234. print_EasyChat(attacker, "\g%s\nGanas 25 Exp, 5 BBpacks y 1 Punto", Tag)
  5235. g_exp[attacker] += 25
  5236. g_bbpacks[attacker] += 5
  5237. g_puntos[attacker] += 1
  5238. check_level(attacker)
  5239. client_cmd(victim, "mp3 play ^"%s^"", Matar_zm)
  5240. }
  5241. }
  5242. if(get_user_team(attacker) == 1 && get_user_team(victim) == 2)
  5243. {
  5244. print_EasyChat(attacker, "\g%s\nGanas 25 Exp, 5 BbPacks y 1 Punto", Tag)
  5245. g_exp[attacker] += 25
  5246. g_bbpacks[attacker] += 5
  5247. g_puntos[attacker] += 1
  5248. check_level(attacker)
  5249. }
  5250.  
  5251. }
  5252. public check_level(id) {
  5253. if (g_exp[id] > LEVELS[sizeof LEVELS - 1] - 1)
  5254. return PLUGIN_HANDLED
  5255.  
  5256. if (g_exp[id] >= LEVELS[g_level[id]]) {
  5257. g_level[id] ++
  5258. g_exp[id] = 0
  5259. print_EasyChat(id, "\g%s\nFelicidades Por Avanzar de Nivel a \g%d", Tag, g_level[id])
  5260.  
  5261. }
  5262. if(g_level[id] >= 20) {
  5263. g_level[id] = 20
  5264. print_EasyChat(id, "\g%s\gLlegaste al Nivel Maximo, Resetea!", Tag)
  5265. print_EasyChat(id, "\g%s\gLlegaste al Nivel Maximo, Resetea!", Tag)
  5266.  
  5267.  
  5268. }
  5269. if(g_bbpacks[id] >= 1000) {
  5270. g_bbpacks[id] = 1000
  5271. print_EasyChat(id, "\g%s\gLlegaste a los BBPACKS MAXIMOS", Tag)
  5272. print_EasyChat(id, "\g%s\gLlegaste a los BBPACKS MAXIMOS", Tag)
  5273.  
  5274.  
  5275. }
  5276. if(g_reset[id] >= 50) {
  5277. g_reset[id] = 50
  5278. print_EasyChat(id, "\g%s\gLlegaste al Reset MAXIMO", Tag)
  5279. print_EasyChat(id, "\g%s\gLlegaste al Reset MAXIMO", Tag)
  5280.  
  5281.  
  5282. }
  5283. return PLUGIN_HANDLED
  5284. }
  5285. public event_round_start_dos() {
  5286. static g_MPlayers;
  5287. g_MPlayers = get_maxplayers( )
  5288. for( new i = 1; i <= g_MPlayers; i++ ) {
  5289. un_hm[ i ] = false
  5290. un_zm[ i ] = false
  5291. }
  5292. }
  5293. public ShowHUD(id) {
  5294. new target = pev(id, pev_iuser2)
  5295. if(is_user_alive(id)) {
  5296. new name[32]; get_user_name(id, name, charsmax(name))
  5297. set_hudmessage(rojo[id], verde[id], azul[id], 0.96, 0.06, 0, 6.0, 12.0)
  5298. ShowSyncHudMsg(id, Hud_Datos, "[I-E]Base builder 9.5 ^n[Nombre : %s] ^n[Vida : %d | Chaleco : %d] ^n[Nivel : %d/20 | Reset : %d/50] ^n[Experiencia : %d/%d] ^n[BBPacks : %d/1000] ^n[Puntos : %d] ",
  5299. name, get_user_health(id), get_user_armor(id), g_level[id], g_reset[id], g_exp[id], LEVELS[g_level[id]], g_bbpacks[id], g_puntos[id])
  5300. }
  5301. else {
  5302. new name[33]; get_user_name(target, name, charsmax(name))
  5303. set_hudmessage(rojo[id], verde[id], azul[id], 0.96, 0.06, 0, 6.0, 12.0)
  5304. ShowSyncHudMsg(id, Hud_Datos, "[I-E]Base builder 9.5 ^n[Nombre : %s] ^n[Vida : %d | Chaleco : %d] ^n[Nivel : %d/20 | Reset : %d/50] ^n[Experiencia : %d/%d] ^n[BBPacks : %d/1000] ^n[Puntos : %d] ",
  5305. name, get_user_health(target), get_user_armor(target), g_level[target], g_reset[target], g_exp[target], LEVELS[g_level[target]], g_bbpacks[target], g_puntos[target])
  5306. }
  5307. }
  5308. public event_CurWeapon(id)
  5309. {
  5310. if(!is_user_alive(id))
  5311. return 1
  5312.  
  5313. new weaponid = read_data(2)
  5314. if(arma_vip[id]) {
  5315. if(weaponid == CSW_MP5NAVY) {
  5316. set_pev(id , pev_viewmodel2 , "models/v_mp5m203.mdl")
  5317. }
  5318. }
  5319. return 0
  5320. }
  5321.  
  5322. public fw_TakeDamage(victim, inflictor, attacker, Float:damage, bits)
  5323. {
  5324. if ( victim == attacker || !is_user_connected(attacker))
  5325. return HAM_IGNORED
  5326.  
  5327. static g_MPlayers;
  5328. g_MPlayers = get_maxplayers( )
  5329. for( new i = 1; i <= g_MPlayers; i++ ) {
  5330. if(arma_vip[i]) {
  5331. if(get_user_weapon(attacker) == CSW_MP5NAVY) {
  5332. SetHamParamFloat(4 , damage *= 2.0)
  5333. }
  5334. }
  5335. }
  5336. if(get_user_weapon(attacker) == menu_death[g_arma[attacker]][item_id]) {
  5337.  
  5338. SetHamParamFloat(4 , damage *= menu_death[g_arma[attacker]][item_damage])
  5339. }
  5340. return HAM_IGNORED
  5341. }
  5342. public clases_hm(id) {
  5343.  
  5344. new menu = menu_create("\r[I-E] base builder 9.5+lvl^n\y[Menu de clases de humanas]^n\welije tu clase:", "handler_clases_hm")
  5345.  
  5346. menu_additem(menu, (g_reset[id] >= 1)?"\yPrincipiante":"\dPrincipiante\r[\yReset : 1\r]", "1")
  5347. menu_additem(menu, (g_reset[id] >= 2)?"\ySobreviviente":"\dSobreviviente\r[\yReset : 2\r]", "2")
  5348. menu_additem(menu, (g_reset[id] >= 3)?"\yDominante":"\dDominante\r[\yReset : 3\r]", "3")
  5349. menu_additem(menu, (g_reset[id] >= 4)?"\ySoldado":"\dSoldado\r[\yReset : 4\r]", "4")
  5350. menu_additem(menu, (g_reset[id] >= 5)?"\yMilitar":"\dMilitar\r[\yReset : 5\r]", "5")
  5351. menu_additem(menu, (g_reset[id] >= 6)?"\yAsessino":"\dAsessino\r[\yReset : 6\r]", "6")
  5352.  
  5353. menu_setprop(menu, MPROP_EXITNAME, "\y[Salir]")
  5354. menu_display(id, menu, 0)
  5355.  
  5356. return
  5357. }
  5358. public handler_clases_hm(id, menu, item) {
  5359. if(item==MENU_EXIT) {
  5360. menu_destroy(menu)
  5361. return PLUGIN_HANDLED
  5362. }
  5363. switch(item) {
  5364. case 0: {
  5365. if(g_reset[id] >= 1) {
  5366. Hm_Civil[id] = 0
  5367. Hm_princ[id] = 1
  5368. Hm_Sobre[id] = 0
  5369. Hm_Domin[id] = 0
  5370. Hm_Solda[id] = 0
  5371. Hm_Milit[id] = 0
  5372. Hm_Assasins[id] = 0
  5373. Hm_Adm[id] = 0
  5374. }
  5375. else {
  5376. clases_hm(id)
  5377. return PLUGIN_HANDLED
  5378. }
  5379. }
  5380. case 1: {
  5381. if(g_reset[id] >= 2) {
  5382. Hm_Civil[id] = 0
  5383. Hm_princ[id] = 0
  5384. Hm_Sobre[id] = 1
  5385. Hm_Domin[id] = 0
  5386. Hm_Solda[id] = 0
  5387. Hm_Milit[id] = 0
  5388. Hm_Assasins[id] = 0
  5389. Hm_Adm[id] = 0
  5390. }
  5391. else {
  5392. clases_hm(id)
  5393. return PLUGIN_HANDLED
  5394. }
  5395. }
  5396. case 2: {
  5397. if(g_reset[id] >= 3) {
  5398. Hm_Civil[id] = 0
  5399. Hm_princ[id] = 0
  5400. Hm_Sobre[id] = 0
  5401. Hm_Domin[id] = 1
  5402. Hm_Solda[id] = 0
  5403. Hm_Milit[id] = 0
  5404. Hm_Assasins[id] = 0
  5405. Hm_Adm[id] = 0
  5406. }
  5407. else {
  5408. clases_hm(id)
  5409. return PLUGIN_HANDLED
  5410. }
  5411. }
  5412. case 3: {
  5413. if(g_reset[id] >= 4) {
  5414. Hm_Civil[id] = 0
  5415. Hm_princ[id] = 0
  5416. Hm_Sobre[id] = 0
  5417. Hm_Domin[id] = 0
  5418. Hm_Solda[id] = 1
  5419. Hm_Milit[id] = 0
  5420. Hm_Assasins[id] = 0
  5421. Hm_Adm[id] = 0
  5422. }
  5423. else {
  5424. clases_hm(id)
  5425. return PLUGIN_HANDLED
  5426. }
  5427. }
  5428. case 4: {
  5429. if(g_reset[id] >= 5) {
  5430. Hm_Civil[id] = 0
  5431. Hm_princ[id] = 0
  5432. Hm_Sobre[id] = 0
  5433. Hm_Domin[id] = 0
  5434. Hm_Solda[id] = 0
  5435. Hm_Milit[id] = 1
  5436. Hm_Assasins[id] = 0
  5437. Hm_Adm[id] = 0
  5438. }
  5439. else {
  5440. clases_hm(id)
  5441. return PLUGIN_HANDLED
  5442. }
  5443. }
  5444. case 5: {
  5445. if(g_reset[id] >= 6) {
  5446. Hm_Civil[id] = 0
  5447. Hm_princ[id] = 0
  5448. Hm_Sobre[id] = 0
  5449. Hm_Domin[id] = 0
  5450. Hm_Solda[id] = 0
  5451. Hm_Milit[id] = 0
  5452. Hm_Assasins[id] = 1
  5453. Hm_Adm[id] = 0
  5454. }
  5455. else {
  5456. clases_hm(id)
  5457. return PLUGIN_HANDLED
  5458. }
  5459. }
  5460. }
  5461. return PLUGIN_HANDLED
  5462. }
  5463. public clases_zm(id) {
  5464.  
  5465. new menu = menu_create("\r[I-E] base builder 9.5+lvl^n\y[Menu de clases de zombie]^n\welije tu clase:", "handler_clases")
  5466.  
  5467. menu_additem(menu, (g_level[id] >= 1)?"\yZombie Clasico\r[\yhp 1800 GV 0.9 SPD 270\r]":"\dZombie Clasico\r[\yNivel : 1\r]", "1")
  5468. menu_additem(menu, (g_level[id] >= 1)?"\yZombie Rapido\r[\yhp 2200 GV 1.0 SPD 280\r]":"\dZombie Rapido\r[\yNivel : 1\r]", "2")
  5469. menu_additem(menu, (g_level[id] >= 1)?"\yZombie Saltador\r[\yhp 2200 GV 0.7 SPD 260\r]":"\dZombie Saltador\r[\yNivel : 1\r]", "3")
  5470. menu_additem(menu, (g_level[id] >= 1)?"\yZombie Tanker\r[\yhp 3200 GV 1.0 SPD 260\r]":"\dZombie Tanker\r[\yNivel : 1\r]", "4")
  5471. menu_additem(menu, (g_level[id] >= 2)?"\yZombie Oxido\r[\yhp 2400 GV 1.0 SPD 270\r]":"\dZombie Oxido\r[\yNivel : 2\r]", "5")
  5472. menu_additem(menu, (g_level[id] >= 2)?"\yZombie Spiter\r[\yhp 3300 GV 0.8 SPD 270\r]":"\dZombie Spiter\r[\yNivel : 2\r]", "6")
  5473.  
  5474. if(get_user_flags(id) & ADMIN_LEVEL_D)
  5475. menu_additem(menu, (g_level[id] >= 3)?"\yZombie Hunter\r[\yhp 2500 GV 0.6 SPD 260\r]":"\dZombie Hunter\r[\yNivel : 3\r]\w[ADM]", "7")
  5476. else
  5477. menu_additem(menu, (g_level[id] >= 3)?"\dZombie Hunter\r[\yNivel : 3\r]\w[ADM]":"\dZombie Hunter\r[\yNivel : 3\r]\w[ADM]", "7")
  5478.  
  5479. menu_additem(menu, (g_level[id] >= 3)?"\yZombie Terrorista\r[\yhp 3600 GV 0.8.5 SPD 275\r]":"\dZombie Terroristas\r[\yNivel : 3\r]", "8")
  5480. menu_additem(menu, (g_level[id] >= 4)?"\yZombie Cangrejo\r[\yhp 2400 GV 0.7 SPD 363\r]":"\dZombie Cangrejo\r[\yNivel : 4\r]", "9")
  5481. menu_additem(menu, (g_level[id] >= 4)?"\yZombie Splinter 2\r[\yhp 3400 GV 0.7 SPD 268\r]":"\dZombie Splinter 2\r[\yNivel : 4\r]", "10")
  5482. menu_additem(menu, (g_level[id] >= 5)?"\yZombie Witch\r[\yhp 3800 GV 1.0 SPD 260\r]":"\dZombie Witch\r[\yNivel : 5\r]", "11")
  5483.  
  5484. if(get_user_flags(id) & ADMIN_LEVEL_D)
  5485. menu_additem(menu, (g_level[id] >= 5)?"\yZombie Puta\r[\yhp 4000 GV 1.0 SPD 290\r]":"\dZombie Puta\r[\yNivel : 5\r]\w[ADM]", "12")
  5486. else
  5487. menu_additem(menu, (g_level[id] >= 5)?"\dZombie Puta\r[\yNivel : 5\r]\w[ADM]":"\dZombie Puta\r[\yNivel : 5\r]\w[ADM]", "12")
  5488.  
  5489. menu_additem(menu, (g_level[id] >= 6)?"\yZombie Swarm\r[\yhp 4200 GV 0.9 SPD 260\r]":"\dZombie Swarm\r[\yNivel : 6\r]", "13")
  5490. menu_additem(menu, (g_level[id] >= 6)?"\yZombie Clot Circ\r[\yhp 4600 GV 1.0 SPD 280\r]":"\dZombie Clot Circ\r[\yNivel : 6\r]", "14")
  5491. menu_additem(menu, (g_level[id] >= 7)?"\yZombie Fenomeno\r[\yhp 5000 GV 0.9 SPD 270\r]":"\dZombie Fenomeno\r[\yNivel : 7\r]", "15")
  5492. menu_additem(menu, (g_level[id] >= 7)?"\yZombie Payaso\r[\yhp 5200 GV 1.0 SPD 275\r]":"\dZombie Payaso\r[\yNivel : 7\r]", "16")
  5493. menu_additem(menu, (g_level[id] >= 8)?"\yZombie Diablo\r[\yhp 5800 GV 0.9 SPD 280\r]":"\dZombie Diablo\r[\yNivel : 8\r]", "17")
  5494. menu_additem(menu, (g_level[id] >= 8)?"\yZombie Poison\r[\yhp 6200 GV 0.8 SPD 262\r]":"\dZombie Poison\r[\yNivel : 8\r]", "18")
  5495.  
  5496. if(get_user_flags(id) & ADMIN_LEVEL_D)
  5497. menu_additem(menu, (g_level[id] >= 9)?"\yZombie Santa Claus\r[\yhp 7000 GV 1.0 SPD 265\r]":"\dZombie Santa Claus\r[\yNivel : 9\r]\w[ADM]", "19")
  5498. else
  5499. menu_additem(menu, (g_level[id] >= 9)?"\dZombie Santa Claus\r[\yNivel : 9\r]\w[ADM]":"\dZombie Santa Claus\r[\yNivel : 9\r]\w[ADM]", "19")
  5500.  
  5501. menu_additem(menu, (g_level[id] >= 9)?"\yZombie Scrake\r[\yhp 6500 GV 0.9 SPD 265\r]":"\dZombie Scrake\r[\yNivel : 9\r]", "20")
  5502.  
  5503. if(get_user_flags(id) & ADMIN_IMMUNITY)
  5504. menu_additem(menu, (g_level[id] >= 10)?"\yZombie Siren\r[\yhp 6800 GV 0.9 SPD 270\r]":"\dZombie Siren\r[\yNivel : 10\r]\w[ADM]", "21")
  5505. else
  5506. menu_additem(menu, (g_level[id] >= 10)?"dZombie Siren\r[\yNivel : 10\r]\w[ADM]":"\dZombie Siren\r[\yNivel : 10\r]\w[ADM]", "21")
  5507.  
  5508. menu_additem(menu, (g_level[id] >= 10)?"\yZombie Smoker\r[\y[hp 7000 GV 1.0 SPD 270\r]":"\dZombie Smoker\r[\yNivel : 10\r]", "22")
  5509. menu_additem(menu, (g_level[id] >= 11)?"\yZombie Stalker2\r[\yhp 7200 GV 0.9 SPD 285\r]":"\dZombie Stalker2\r[\yNivel : 11\r]", "23")
  5510. menu_additem(menu, (g_level[id] >= 11)?"\yZombie Husk\r[\yhp 7400 GV 0.9 SPD 290\r]":"\dZombie Husk\r[\yNivel : 11\r]", "24")
  5511.  
  5512. menu_additem(menu, (g_level[id] >= 12)?"\yZombie Hombrelobo\r[\yhp 7800 GV 0.9 SPD 311\r]":"\dZombie Hombrelobo\r[\yNivel : 12\r]", "25")
  5513. menu_additem(menu, (g_level[id] >= 13)?"\yZombie Clasico 2\r[\yhp 7500 GV 0.8 SPD 309\r]":"\dZombie Clasico 2\r[\yNivel : 13\r]", "26")
  5514.  
  5515. if(get_user_flags(id) & ADMIN_LEVEL_D)
  5516. menu_additem(menu, (g_level[id] >= 13)?"\yZombie Perro\r[\yhp 8000 GV 0.8 SPD 318\r]":"\dZombie Perro\r[\yNivel : 13\r]\w[ADM]", "27")
  5517. else
  5518. menu_additem(menu, (g_level[id] >= 13)?"\dZombie Perro\r[\yNivel : 13\r]\w[ADM]":"\dZombie Perro\r[\yNivel : 13\r]\w[ADM]", "27")
  5519.  
  5520. menu_additem(menu, (g_level[id] >= 14)?"\yZombie Dr.Salvador\r[\yhp 11200 GV 0.7 SPD 304\r]":"\dZombie Dr.Salvador\r[\yNivel : 14\r]", "28")
  5521. menu_additem(menu, (g_level[id] >= 14)?"\yZombie Suicide\r[\yhp 9000 GV 0.7 SPD 301\r]":"\dZombie Suicide\r[\yNivel : 14\r]", "29")
  5522. menu_additem(menu, (g_level[id] >= 15)?"\yZombie Destripador\r[\yhp 10000 GV 0.6 SPD 305\r]":"\dZombie Destripador\r[\yNivel : 15\r]", "30")
  5523. menu_additem(menu, (g_level[id] >= 15)?"\yZombie Jockey\r[\yhp 9500 GV 0.5 SPD 311\r]":"\dZombie Jockey\r[\yNivel : 15\r]", "31")
  5524. menu_additem(menu, (g_level[id] >= 16)?"\yZombie Nemesis\r[\yhp 10500 GV 0.7 SPD 305\r]":"\dZombie Nemesis\r[\yNivel : 16\r]", "32")
  5525. menu_additem(menu, (g_level[id] >= 16)?"\yZombie Radiactivo\r[\yhp 13200 GV 0.7 SPD 315\r]":"\dZombie Radiactivo\r[\yNivel : 16\r]", "33")
  5526. menu_additem(menu, (g_level[id] >= 17)?"\yZombie^"Soy Leyenda^"\r[\yhp 12000 GV 0.6 SPD 320\r]":"\dZombie^"Soy Leyenda^"\r[\yNivel : 17\r]", "34")
  5527. menu_additem(menu, (g_level[id] >= 18)?"\yZombie Charger\r[\yhp 12000 GV 0.6 SPD 310\r]":"\dZombie Charger\r[\yNivel : 18\r]", "35")
  5528.  
  5529. if(get_user_flags(id) & ADMIN_IMMUNITY)
  5530. menu_additem(menu, (g_level[id] >= 18)?"\yZombie Carnicero\r[\yhp 13500 GV 0.4 SPD 318\r]":"\dZombie Carnicero\r[\yNivel : 18\r]\w[ADM]", "36")
  5531. else
  5532. menu_additem(menu, (g_level[id] >= 18)?"\dZombie Carnicero\r[\yNivel : 18\r]\w[ADM]":"\dZombie Carnicero\r[\yNivel : 18\r]\w[ADM]", "36")
  5533.  
  5534. menu_additem(menu, (g_level[id] >= 19)?"\yZombie Tank\r[\yhp 14000 GV 0.5 SPD 315\r]":"\dZombie Tank\r[\yNivel : 19\r]", "37")
  5535.  
  5536. if(get_user_flags(id) & ADMIN_IMMUNITY)
  5537. menu_additem(menu, (g_level[id] >= 20)?"\yZombie Bull\r[\yhp 15000 GV 0.4 SPD 320\r]":"\dZombie Bull\r[\yNivel : 20\r]\w[ADM]", "38")
  5538. else
  5539. menu_additem(menu, (g_level[id] >= 20)?"\dZombie Bull\r[\yNivel : 20\r]\w[ADM]":"\dZombie Bull\r[\yNivel : 20\r]\w[ADM]", "38")
  5540.  
  5541. menu_setprop(menu, MPROP_BACKNAME,"\yAtras")
  5542. menu_setprop(menu, MPROP_NEXTNAME,"\ySiguiente")
  5543. menu_setprop(menu, MPROP_EXITNAME, "\r[Salir]")
  5544. menu_display(id, menu, 0)
  5545.  
  5546. return
  5547. }
  5548. public handler_clases(id, menu, item) {
  5549. if(item==MENU_EXIT) {
  5550. menu_destroy(menu)
  5551. return PLUGIN_HANDLED
  5552. }
  5553. switch(item) {
  5554. case 0: {
  5555. Zclas[id] = 1; ZSalt[id] = 0; ZTank[id] = 0; ZOxid[id] = 0; ZSpit[id] = 0; ZHunt[id] = 0; ZTerr[id] = 0; ZCang[id] = 0; ZSpitd[id] = 0; ZWitc[id] = 0; ZPuta[id] = 0; ZSwar[id] = 0; ZClot[id] = 0; ZFeno[id] = 0; ZPaya[id] = 0; Zm_Adm[id] = 0
  5556. Zdiab[id] = 0; ZPois[id] = 0; ZSant[id] = 0; ZScra[id] = 0; ZSire[id] = 0; ZSmok[id] = 0; ZStal[id] = 0; ZHusk[id] = 0; Zlobo[id] = 0; ZClass[id] = 0; Zperr[id] = 0; ZDocS[id] = 0; ZSui[id] = 0; ZDest[id] = 0; ZJock[id] = 0; ZNeme[id] = 0; ZRadia[id] = 0; ZLeye[id] = 0; ZChar[id] = 0; ZCarn[id] = 0; ZTanke[id] = 0; ZBull[id] = 0
  5557. }
  5558. case 1: {
  5559. if(g_level[id] >= 1) {
  5560. Zclas[id] = 0; ZRapi[id] = 1; ZSalt[id] = 0; ZTank[id] = 0; ZOxid[id] = 0; ZSpit[id] = 0; ZHunt[id] = 0; ZTerr[id] = 0; ZCang[id] = 0; ZSpitd[id] = 0; ZWitc[id] = 0; ZPuta[id] = 0; ZSwar[id] = 0; ZClot[id] = 0; ZFeno[id] = 0; ZPaya[id] = 0;Zm_Adm[id] = 0
  5561. Zdiab[id] = 0; ZPois[id] = 0; ZSant[id] = 0; ZScra[id] = 0; ZSire[id] = 0; ZSmok[id] = 0; ZStal[id] = 0; ZHusk[id] = 0; Zlobo[id] = 0; ZClass[id] = 0; Zperr[id] = 0; ZDocS[id] = 0; ZSui[id] = 0; ZDest[id] = 0; ZJock[id] = 0; ZNeme[id] = 0; ZRadia[id] = 0; ZLeye[id] = 0; ZChar[id] = 0; ZCarn[id] = 0; ZTanke[id] = 0; ZBull[id] = 0
  5562. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE RAPIDO \n|\g HP 2200 \n| \gGRAVEDAD 1.0 \n|\g VELOCIDAD 270\n|", Tag)
  5563.  
  5564. }
  5565. else {
  5566.  
  5567. clases_zm(id)
  5568. return PLUGIN_HANDLED
  5569. }
  5570. }
  5571. case 2: {
  5572. if(g_level[id] >= 1) {
  5573. Zclas[id] = 0
  5574. ZRapi[id] = 0
  5575. ZSalt[id] = 1
  5576. ZTank[id] = 0
  5577. ZOxid[id] = 0
  5578. ZSpit[id] = 0
  5579. ZHunt[id] = 0
  5580. ZTerr[id] = 0
  5581. ZCang[id] = 0
  5582. ZSpitd[id] = 0
  5583. ZWitc[id] = 0
  5584. ZPuta[id] = 0
  5585. ZSwar[id] = 0
  5586. ZClot[id] = 0
  5587. ZFeno[id] = 0
  5588. ZPaya[id] = 0
  5589. Zm_Adm[id] = 0
  5590. Zdiab[id] = 0
  5591. ZPois[id] = 0
  5592. ZSant[id] = 0
  5593. ZScra[id] = 0
  5594. ZSire[id] = 0
  5595. ZSmok[id] = 0
  5596. ZStal[id] = 0
  5597. ZHusk[id] = 0
  5598. Zlobo[id] = 0
  5599. ZClass[id] = 0
  5600. Zperr[id] = 0
  5601. ZDocS[id] = 0
  5602. ZSui[id] = 0
  5603. ZDest[id] = 0
  5604. ZJock[id] = 0
  5605. ZNeme[id] = 0
  5606. ZRadia[id] = 0
  5607. ZLeye[id] = 0
  5608. ZChar[id] = 0
  5609. ZCarn[id] = 0
  5610. ZTanke[id] = 0
  5611. ZBull[id] = 0
  5612. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE SALTADOR \n|\g HP 2200 \n| \gGRAVEDAD 0.7 \n|\g VELOCIDAD 260\n|", Tag)
  5613. }
  5614. else {
  5615. clases_zm(id)
  5616. return PLUGIN_HANDLED
  5617. }
  5618. }
  5619. case 3: {
  5620. if(g_level[id] >= 1) {
  5621. Zclas[id] = 0
  5622. ZRapi[id] = 0
  5623. ZSalt[id] = 0
  5624. ZTank[id] = 1
  5625. ZOxid[id] = 0
  5626. ZSpit[id] = 0
  5627. ZHunt[id] = 0
  5628. ZTerr[id] = 0
  5629. ZCang[id] = 0
  5630. ZSpitd[id] = 0
  5631. ZWitc[id] = 0
  5632. ZPuta[id] = 0
  5633. ZSwar[id] = 0
  5634. ZClot[id] = 0
  5635. ZFeno[id] = 0
  5636. ZPaya[id] = 0
  5637. Zm_Adm[id] = 0
  5638. Zdiab[id] = 0
  5639. ZPois[id] = 0
  5640. ZSant[id] = 0
  5641. ZScra[id] = 0
  5642. ZSire[id] = 0
  5643. ZSmok[id] = 0
  5644. ZStal[id] = 0
  5645. ZHusk[id] = 0
  5646. Zlobo[id] = 0
  5647. ZClass[id] = 0
  5648. Zperr[id] = 0
  5649. ZDocS[id] = 0
  5650. ZSui[id] = 0
  5651. ZDest[id] = 0
  5652. ZJock[id] = 0
  5653. ZNeme[id] = 0
  5654. ZRadia[id] = 0
  5655. ZLeye[id] = 0
  5656. ZChar[id] = 0
  5657. ZCarn[id] = 0
  5658. ZTanke[id] = 0
  5659. ZBull[id] = 0
  5660. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE TANKER\n|\g HP 3200 \n| \gGRAVEDAD 1.0 \n|\g VELOCIDAD 260\n|", Tag)
  5661. }
  5662. else {
  5663. clases_zm(id)
  5664. return PLUGIN_HANDLED
  5665. }
  5666. }
  5667. case 4: {
  5668. if(g_level[id] >= 2) {
  5669. Zclas[id] = 0
  5670. ZRapi[id] = 0
  5671. ZSalt[id] = 0
  5672. ZTank[id] = 0
  5673. ZOxid[id] = 1
  5674. ZSpit[id] = 0
  5675. ZHunt[id] = 0
  5676. ZTerr[id] = 0
  5677. ZCang[id] = 0
  5678. ZSpitd[id] = 0
  5679. ZWitc[id] = 0
  5680. ZPuta[id] = 0
  5681. ZSwar[id] = 0
  5682. ZClot[id] = 0
  5683. ZFeno[id] = 0
  5684. ZPaya[id] = 0
  5685. Zm_Adm[id] = 0
  5686. Zdiab[id] = 0
  5687. ZPois[id] = 0
  5688. ZSant[id] = 0
  5689. ZScra[id] = 0
  5690. ZSire[id] = 0
  5691. ZSmok[id] = 0
  5692. ZStal[id] = 0
  5693. ZHusk[id] = 0
  5694. Zlobo[id] = 0
  5695. ZClass[id] = 0
  5696. Zperr[id] = 0
  5697. ZDocS[id] = 0
  5698. ZSui[id] = 0
  5699. ZDest[id] = 0
  5700. ZJock[id] = 0
  5701. ZNeme[id] = 0
  5702. ZRadia[id] = 0
  5703. ZLeye[id] = 0
  5704. ZChar[id] = 0
  5705. ZCarn[id] = 0
  5706. ZTanke[id] = 0
  5707. ZBull[id] = 0
  5708. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE OXIDO \n|\g HP 2400 \n| \gGRAVEDAD 1.0 \n|\g VELOCIDAD 270\n|", Tag)
  5709. }
  5710. else {
  5711. print_EasyChat(id, "\g%s\nNecesitas \gnivel 2 \npara adquirir esta clase zombie", Tag)
  5712. clases_zm(id)
  5713. return PLUGIN_HANDLED
  5714. }
  5715. }
  5716. case 5: {
  5717. if(g_level[id] >= 2) {
  5718. Zclas[id] = 0
  5719. ZRapi[id] = 0
  5720. ZSalt[id] = 0
  5721. ZTank[id] = 0
  5722. ZOxid[id] = 0
  5723. ZSpit[id] = 1
  5724. ZHunt[id] = 0
  5725. ZTerr[id] = 0
  5726. ZCang[id] = 0
  5727. ZSpitd[id] = 0
  5728. ZWitc[id] = 0
  5729. ZPuta[id] = 0
  5730. ZSwar[id] = 0
  5731. ZClot[id] = 0
  5732. ZFeno[id] = 0
  5733. ZPaya[id] = 0
  5734. Zm_Adm[id] = 0
  5735. Zdiab[id] = 0
  5736. ZPois[id] = 0
  5737. ZSant[id] = 0
  5738. ZScra[id] = 0
  5739. ZSire[id] = 0
  5740. ZSmok[id] = 0
  5741. ZStal[id] = 0
  5742. ZHusk[id] = 0
  5743. Zlobo[id] = 0
  5744. ZClass[id] = 0
  5745. Zperr[id] = 0
  5746. ZDocS[id] = 0
  5747. ZSui[id] = 0
  5748. ZDest[id] = 0
  5749. ZJock[id] = 0
  5750. ZNeme[id] = 0
  5751. ZRadia[id] = 0
  5752. ZLeye[id] = 0
  5753. ZChar[id] = 0
  5754. ZCarn[id] = 0
  5755. ZTanke[id] = 0
  5756. ZBull[id] = 0
  5757. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE SPITER \n|\g HP 3300 \n| \gGRAVEDAD 0.8 \n|\g VELOCIDAD 270\n|", Tag)
  5758. }
  5759. else {
  5760. print_EasyChat(id, "\g%s\nNecesitas \gnivel 2 \npara adquirir esta clase zombie", Tag)
  5761. clases_zm(id)
  5762. return PLUGIN_HANDLED
  5763. }
  5764. }
  5765. case 6: {
  5766. if(get_user_flags(id) & ADMIN_LEVEL_D) {
  5767. if(g_level[id] >= 3) {
  5768. Zclas[id] = 0
  5769. ZRapi[id] = 0
  5770. ZSalt[id] = 0
  5771. ZTank[id] = 0
  5772. ZOxid[id] = 0
  5773. ZSalt[id] = 0
  5774. ZHunt[id] = 1
  5775. ZTerr[id] = 0
  5776. ZCang[id] = 0
  5777. ZSpitd[id] = 0
  5778. ZWitc[id] = 0
  5779. ZPuta[id] = 0
  5780. ZSwar[id] = 0
  5781. ZClot[id] = 0
  5782. ZFeno[id] = 0
  5783. ZPaya[id] = 0
  5784. Zm_Adm[id] = 0
  5785. Zdiab[id] = 0
  5786. ZPois[id] = 0
  5787. ZSant[id] = 0
  5788. ZScra[id] = 0
  5789. ZSire[id] = 0
  5790. ZSmok[id] = 0
  5791. ZStal[id] = 0
  5792. ZHusk[id] = 0
  5793. Zlobo[id] = 0
  5794. ZClass[id] = 0
  5795. Zperr[id] = 0
  5796. ZDocS[id] = 0
  5797. ZSui[id] = 0
  5798. ZDest[id] = 0
  5799. ZJock[id] = 0
  5800. ZNeme[id] = 0
  5801. ZRadia[id] = 0
  5802. ZLeye[id] = 0
  5803. ZChar[id] = 0
  5804. ZCarn[id] = 0
  5805. ZTanke[id] = 0
  5806. ZBull[id] = 0
  5807. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE HUNTER \n|\g HP 2500 \n| \gGRAVEDAD 0.6 \n|\g VELOCIDAD 260\n|", Tag)
  5808. }
  5809. else {
  5810. print_EasyChat(id, "\g%s\nNo eres admin", Tag)
  5811. clases_zm(id)
  5812. return PLUGIN_HANDLED
  5813. }
  5814. }
  5815. else {
  5816. print_EasyChat(id, "\g%s\nNecesitas \gnivel 3 \npara adquirir esta clase zombie", Tag)
  5817. clases_zm(id)
  5818. return PLUGIN_HANDLED
  5819. }
  5820. }
  5821. case 7: {
  5822. if(g_level[id] >= 3) {
  5823. Zclas[id] = 0
  5824. ZRapi[id] = 0
  5825. ZSalt[id] = 0
  5826. ZTank[id] = 0
  5827. ZOxid[id] = 0
  5828. ZSpit[id] = 0
  5829. ZHunt[id] = 0
  5830. ZTerr[id] = 1
  5831. ZCang[id] = 0
  5832. ZSpitd[id] = 0
  5833. ZWitc[id] = 0
  5834. ZPuta[id] = 0
  5835. ZSwar[id] = 0
  5836. ZClot[id] = 0
  5837. ZFeno[id] = 0
  5838. ZPaya[id] = 0
  5839. Zm_Adm[id] = 0
  5840. Zdiab[id] = 0
  5841. ZPois[id] = 0
  5842. ZSant[id] = 0
  5843. ZScra[id] = 0
  5844. ZSire[id] = 0
  5845. ZSmok[id] = 0
  5846. ZStal[id] = 0
  5847. ZHusk[id] = 0
  5848. Zlobo[id] = 0
  5849. ZClass[id] = 0
  5850. Zperr[id] = 0
  5851. ZDocS[id] = 0
  5852. ZSui[id] = 0
  5853. ZDest[id] = 0
  5854. ZJock[id] = 0
  5855. ZNeme[id] = 0
  5856. ZRadia[id] = 0
  5857. ZLeye[id] = 0
  5858. ZChar[id] = 0
  5859. ZCarn[id] = 0
  5860. ZTanke[id] = 0
  5861. ZBull[id] = 0
  5862. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE TERRORISTA \n|\g HP 3600 \n| \gGRAVEDAD 0.8.5 \n|\g VELOCIDAD 275\n|", Tag)
  5863. }
  5864. else {
  5865. print_EasyChat(id, "\g%s\nNecesitas \gnivel 3 \npara adquirir esta clase zombie", Tag)
  5866. clases_zm(id)
  5867. return PLUGIN_HANDLED
  5868. }
  5869. }
  5870. case 8: {
  5871. if(g_level[id] >= 4) {
  5872. Zclas[id] = 0
  5873. ZRapi[id] = 0
  5874. ZSalt[id] = 0
  5875. ZTank[id] = 0
  5876. ZOxid[id] = 0
  5877. ZSpit[id] = 0
  5878. ZHunt[id] = 0
  5879. ZTerr[id] = 0
  5880. ZCang[id] = 1
  5881. ZSpitd[id] = 0
  5882. ZWitc[id] = 0
  5883. ZPuta[id] = 0
  5884. ZSwar[id] = 0
  5885. ZClot[id] = 0
  5886. ZFeno[id] = 0
  5887. ZPaya[id] = 0
  5888. Zm_Adm[id] = 0
  5889. Zdiab[id] = 0
  5890. ZPois[id] = 0
  5891. ZSant[id] = 0
  5892. ZScra[id] = 0
  5893. ZSire[id] = 0
  5894. ZSmok[id] = 0
  5895. ZStal[id] = 0
  5896. ZHusk[id] = 0
  5897. Zlobo[id] = 0
  5898. ZClass[id] = 0
  5899. Zperr[id] = 0
  5900. ZDocS[id] = 0
  5901. ZSui[id] = 0
  5902. ZDest[id] = 0
  5903. ZJock[id] = 0
  5904. ZNeme[id] = 0
  5905. ZRadia[id] = 0
  5906. ZLeye[id] = 0
  5907. ZChar[id] = 0
  5908. ZCarn[id] = 0
  5909. ZTanke[id] = 0
  5910. ZBull[id] = 0
  5911. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE CANGREJO\n|\g HP 2400 \n| \gGRAVEDAD 0.7 \n|\g VELOCIDAD 363\n|", Tag)
  5912. }
  5913. else {
  5914. print_EasyChat(id, "\g%s\nNecesitas \gnivel 4 \npara adquirir esta clase zombie", Tag)
  5915. clases_zm(id)
  5916. return PLUGIN_HANDLED
  5917. }
  5918. }
  5919. case 9: {
  5920. if(g_level[id] >= 4) {
  5921. Zclas[id] = 0
  5922. ZRapi[id] = 0
  5923. ZSalt[id] = 0
  5924. ZTank[id] = 0
  5925. ZOxid[id] = 0
  5926. ZSpit[id] = 0
  5927. ZHunt[id] = 0
  5928. ZTerr[id] = 0
  5929. ZCang[id] = 0
  5930. ZSpitd[id] = 1
  5931. ZWitc[id] = 0
  5932. ZPuta[id] = 0
  5933. ZSwar[id] = 0
  5934. ZClot[id] = 0
  5935. ZFeno[id] = 0
  5936. ZPaya[id] = 0
  5937.  
  5938. Zdiab[id] = 0
  5939. ZPois[id] = 0
  5940. ZSant[id] = 0
  5941. ZScra[id] = 0
  5942. ZSire[id] = 0
  5943. ZSmok[id] = 0
  5944. ZStal[id] = 0
  5945. ZHusk[id] = 0
  5946. Zlobo[id] = 0
  5947. ZClass[id] = 0
  5948. Zperr[id] = 0
  5949. ZDocS[id] = 0
  5950. ZSui[id] = 0
  5951. ZDest[id] = 0
  5952. ZJock[id] = 0
  5953. ZNeme[id] = 0
  5954. ZRadia[id] = 0
  5955. ZLeye[id] = 0
  5956. Zm_Adm[id] = 0
  5957. ZChar[id] = 0
  5958. ZCarn[id] = 0
  5959. ZTanke[id] = 0
  5960. ZBull[id] = 0
  5961. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE SPLINTER 2 \n|\g HP 3400 \n| \gGRAVEDAD 0.7 \n|\g VELOCIDAD 268\n|", Tag)
  5962. }
  5963. else {
  5964. print_EasyChat(id, "\g%s\nNecesitas \gnivel 4 \npara adquirir esta clase zombie", Tag)
  5965. clases_zm(id)
  5966. return PLUGIN_HANDLED
  5967. }
  5968. }
  5969. case 10: {
  5970. if(g_level[id] >= 5) {
  5971. Zclas[id] = 0
  5972. ZRapi[id] = 0
  5973. ZSalt[id] = 0
  5974. ZTank[id] = 0
  5975. ZOxid[id] = 0
  5976. ZSpit[id] = 0
  5977. ZHunt[id] = 0
  5978. ZTerr[id] = 0
  5979. ZCang[id] = 0
  5980. ZSpitd[id] = 0
  5981. ZWitc[id] = 1
  5982. ZPuta[id] = 0
  5983. ZSwar[id] = 0
  5984. ZClot[id] = 0
  5985. ZFeno[id] = 0
  5986. ZPaya[id] = 0
  5987.  
  5988. Zdiab[id] = 0
  5989. ZPois[id] = 0
  5990. ZSant[id] = 0
  5991. ZScra[id] = 0
  5992. ZSire[id] = 0
  5993. ZSmok[id] = 0
  5994. ZStal[id] = 0
  5995. ZHusk[id] = 0
  5996.  
  5997. Zlobo[id] = 0
  5998. ZClass[id] = 0
  5999. Zperr[id] = 0
  6000. ZDocS[id] = 0
  6001. ZSui[id] = 0
  6002. ZDest[id] = 0
  6003. ZJock[id] = 0
  6004. ZNeme[id] = 0
  6005. ZRadia[id] = 0
  6006. ZLeye[id] = 0
  6007. Zm_Adm[id] = 0
  6008. ZChar[id] = 0
  6009. ZCarn[id] = 0
  6010. ZTanke[id] = 0
  6011. ZBull[id] = 0
  6012. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE WITCH \n|\g HP 3800 \n| \gGRAVEDAD 1.0 \n|\g VELOCIDAD 260\n|", Tag)
  6013. }
  6014. else {
  6015. print_EasyChat(id, "\g%s\nNecesitas \gnivel 5 \npara adquirir esta clase zombie", Tag)
  6016. clases_zm(id)
  6017. return PLUGIN_HANDLED
  6018. }
  6019. }
  6020. case 11: {
  6021. if(get_user_flags(id) & ADMIN_LEVEL_D) {
  6022. if(g_level[id] >= 3) {
  6023. Zclas[id] = 0
  6024. ZRapi[id] = 0
  6025. ZSalt[id] = 0
  6026. ZTank[id] = 0
  6027. ZOxid[id] = 0
  6028. ZSalt[id] = 0
  6029. ZHunt[id] = 0
  6030. ZTerr[id] = 0
  6031. ZCang[id] = 0
  6032. ZSpitd[id] = 0
  6033. ZWitc[id] = 0
  6034. ZPuta[id] = 1
  6035. ZSwar[id] = 0
  6036. ZClot[id] = 0
  6037. ZFeno[id] = 0
  6038. ZPaya[id] = 0
  6039.  
  6040. Zdiab[id] = 0
  6041. ZPois[id] = 0
  6042. ZSant[id] = 0
  6043. ZScra[id] = 0
  6044. ZSire[id] = 0
  6045. ZSmok[id] = 0
  6046. ZStal[id] = 0
  6047. ZHusk[id] = 0
  6048.  
  6049. Zlobo[id] = 0
  6050. ZClass[id] = 0
  6051. Zperr[id] = 0
  6052. ZDocS[id] = 0
  6053. ZSui[id] = 0
  6054. ZDest[id] = 0
  6055. ZJock[id] = 0
  6056. ZNeme[id] = 0
  6057. ZRadia[id] = 0
  6058. ZLeye[id] = 0
  6059. Zm_Adm[id] = 0
  6060. ZChar[id] = 0
  6061. ZCarn[id] = 0
  6062. ZTanke[id] = 0
  6063. ZBull[id] = 0
  6064. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE PUTA \n|\g HP 4000 \n| \gGRAVEDAD 1.0 \n|\g VELOCIDAD 290\n|", Tag)
  6065. }
  6066. else {
  6067. print_EasyChat(id, "\g%s\nNo eres admin", Tag)
  6068. clases_zm(id)
  6069. return PLUGIN_HANDLED
  6070. }
  6071. }
  6072. else {
  6073. print_EasyChat(id, "\g%s\nNecesitas \gnivel 3 \npara adquirir esta clase zombie", Tag)
  6074. clases_zm(id)
  6075. return PLUGIN_HANDLED
  6076. }
  6077. }
  6078. case 12: {
  6079. if(g_level[id] >= 6) {
  6080. Zclas[id] = 0
  6081. ZRapi[id] = 0
  6082. ZSalt[id] = 0
  6083. ZTank[id] = 0
  6084. ZOxid[id] = 0
  6085. ZSpit[id] = 0
  6086. ZHunt[id] = 0
  6087. ZTerr[id] = 0
  6088. ZCang[id] = 0
  6089. ZSpitd[id] = 0
  6090. ZWitc[id] = 0
  6091. ZPuta[id] = 0
  6092. ZSwar[id] = 1
  6093. ZClot[id] = 0
  6094. ZFeno[id] = 0
  6095. ZPaya[id] = 0
  6096.  
  6097. Zdiab[id] = 0
  6098. ZPois[id] = 0
  6099. ZSant[id] = 0
  6100. ZScra[id] = 0
  6101. ZSire[id] = 0
  6102. ZSmok[id] = 0
  6103. ZStal[id] = 0
  6104. ZHusk[id] = 0
  6105.  
  6106. Zlobo[id] = 0
  6107. ZClass[id] = 0
  6108. Zperr[id] = 0
  6109. ZDocS[id] = 0
  6110. ZSui[id] = 0
  6111. ZDest[id] = 0
  6112. ZJock[id] = 0
  6113. ZNeme[id] = 0
  6114. ZRadia[id] = 0
  6115. ZLeye[id] = 0
  6116. Zm_Adm[id] = 0
  6117. ZChar[id] = 0
  6118. ZCarn[id] = 0
  6119. ZTanke[id] = 0
  6120. ZBull[id] = 0
  6121. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE SWARM \n|\g HP 4200 \n| \gGRAVEDAD 0.9 \n|\g VELOCIDAD 260\n|", Tag)
  6122. }
  6123. else {
  6124. print_EasyChat(id, "\g%s\nNecesitas \gnivel 6 \npara adquirir esta clase zombie", Tag)
  6125. clases_zm(id)
  6126. return PLUGIN_HANDLED
  6127. }
  6128. }
  6129. case 13: {
  6130. if(g_level[id] >= 6) {
  6131. Zclas[id] = 0
  6132. ZRapi[id] = 0
  6133. ZSalt[id] = 0
  6134. ZTank[id] = 0
  6135. ZOxid[id] = 0
  6136. ZSpit[id] = 0
  6137. ZHunt[id] = 0
  6138. ZTerr[id] = 0
  6139. ZCang[id] = 0
  6140. ZSpitd[id] = 0
  6141. ZWitc[id] = 0
  6142. ZPuta[id] = 0
  6143. ZSwar[id] = 0
  6144. ZClot[id] = 1
  6145. ZFeno[id] = 0
  6146. ZPaya[id] = 0
  6147.  
  6148. Zdiab[id] = 0
  6149. ZPois[id] = 0
  6150. ZSant[id] = 0
  6151. ZScra[id] = 0
  6152. ZSire[id] = 0
  6153. ZSmok[id] = 0
  6154. ZStal[id] = 0
  6155. ZHusk[id] = 0
  6156. Zm_Adm[id] = 0
  6157. Zlobo[id] = 0
  6158. ZClass[id] = 0
  6159. Zperr[id] = 0
  6160. ZDocS[id] = 0
  6161. ZSui[id] = 0
  6162. ZDest[id] = 0
  6163. ZJock[id] = 0
  6164. ZNeme[id] = 0
  6165. ZRadia[id] = 0
  6166. ZLeye[id] = 0
  6167.  
  6168. ZChar[id] = 0
  6169. ZCarn[id] = 0
  6170. ZTanke[id] = 0
  6171. ZBull[id] = 0
  6172. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE CLOT CIRC \n|\g HP 4600 \n| \gGRAVEDAD 1.0 \n|\g VELOCIDAD 280\n|", Tag)
  6173. }
  6174. else {
  6175. print_EasyChat(id, "\g%s\nNecesitas \gnivel 6 \npara adquirir esta clase zombie", Tag)
  6176. clases_zm(id)
  6177. return PLUGIN_HANDLED
  6178. }
  6179. }
  6180. case 14: {
  6181. if(g_level[id] >= 7) {
  6182. Zclas[id] = 0
  6183. ZRapi[id] = 0
  6184. ZSalt[id] = 0
  6185. ZTank[id] = 0
  6186. ZOxid[id] = 0
  6187. ZSpit[id] = 0
  6188. ZHunt[id] = 0
  6189. ZTerr[id] = 0
  6190. ZCang[id] = 0
  6191. ZSpitd[id] = 0
  6192. ZWitc[id] = 0
  6193. ZPuta[id] = 0
  6194. ZSwar[id] = 0
  6195. ZClot[id] = 0
  6196. ZFeno[id] = 1
  6197. ZPaya[id] = 0
  6198.  
  6199. Zdiab[id] = 0
  6200. ZPois[id] = 0
  6201. ZSant[id] = 0
  6202. ZScra[id] = 0
  6203. ZSire[id] = 0
  6204. ZSmok[id] = 0
  6205. ZStal[id] = 0
  6206. ZHusk[id] = 0
  6207.  
  6208. Zlobo[id] = 0
  6209. ZClass[id] = 0
  6210. Zperr[id] = 0
  6211. ZDocS[id] = 0
  6212. ZSui[id] = 0
  6213. ZDest[id] = 0
  6214. ZJock[id] = 0
  6215. ZNeme[id] = 0
  6216. ZRadia[id] = 0
  6217. ZLeye[id] = 0
  6218. Zm_Adm[id] = 0
  6219. ZChar[id] = 0
  6220. ZCarn[id] = 0
  6221. ZTanke[id] = 0
  6222. ZBull[id] = 0
  6223. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE FENOMENO \n|\g HP 5000 \n| \gGRAVEDAD 0.9 \n|\g VELOCIDAD 270\n|", Tag)
  6224. }
  6225. else {
  6226. print_EasyChat(id, "\g%s\nNecesitas \gnivel 7 \npara adquirir esta clase zombie", Tag)
  6227. clases_zm(id)
  6228. return PLUGIN_HANDLED
  6229. }
  6230. }
  6231. case 15: {
  6232. if(g_level[id] >= 7) {
  6233. Zclas[id] = 0
  6234. ZRapi[id] = 0
  6235. ZSalt[id] = 0
  6236. ZTank[id] = 0
  6237. ZOxid[id] = 0
  6238. ZSpit[id] = 0
  6239. ZHunt[id] = 0
  6240. ZTerr[id] = 0
  6241. ZCang[id] = 0
  6242. ZSpitd[id] = 0
  6243. ZWitc[id] = 0
  6244. ZPuta[id] = 0
  6245. ZSwar[id] = 0
  6246. ZClot[id] = 0
  6247. ZFeno[id] = 0
  6248. ZPaya[id] = 1
  6249.  
  6250. Zdiab[id] = 0
  6251. ZPois[id] = 0
  6252. ZSant[id] = 0
  6253. ZScra[id] = 0
  6254. ZSire[id] = 0
  6255. ZSmok[id] = 0
  6256. ZStal[id] = 0
  6257. ZHusk[id] = 0
  6258.  
  6259. Zlobo[id] = 0
  6260. ZClass[id] = 0
  6261. Zperr[id] = 0
  6262. ZDocS[id] = 0
  6263. ZSui[id] = 0
  6264. ZDest[id] = 0
  6265. ZJock[id] = 0
  6266. ZNeme[id] = 0
  6267. ZRadia[id] = 0
  6268. ZLeye[id] = 0
  6269. Zm_Adm[id] = 0
  6270. ZChar[id] = 0
  6271. ZCarn[id] = 0
  6272. ZTanke[id] = 0
  6273. ZBull[id] = 0
  6274. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE PAYASO \n|\g HP 5200 \n| \gGRAVEDAD 1.0 \n|\g VELOCIDAD 275\n|", Tag)
  6275. }
  6276. else {
  6277. print_EasyChat(id, "\g%s\nNecesitas \gnivel 7 \npara adquirir esta clase zombie", Tag)
  6278. clases_zm(id)
  6279. return PLUGIN_HANDLED
  6280. }
  6281. }
  6282. case 16: {
  6283. if(g_level[id] >= 8) {
  6284. Zclas[id] = 0
  6285. ZRapi[id] = 0
  6286. ZSalt[id] = 0
  6287. ZTank[id] = 0
  6288. ZOxid[id] = 0
  6289. ZSpit[id] = 0
  6290. ZHunt[id] = 0
  6291. ZTerr[id] = 0
  6292. ZCang[id] = 0
  6293. ZSpitd[id] = 0
  6294. ZWitc[id] = 0
  6295. ZPuta[id] = 0
  6296. ZSwar[id] = 0
  6297. ZClot[id] = 0
  6298. ZFeno[id] = 0
  6299. ZPaya[id] = 0
  6300.  
  6301. Zdiab[id] = 1
  6302. ZPois[id] = 0
  6303. ZSant[id] = 0
  6304. ZScra[id] = 0
  6305. ZSire[id] = 0
  6306. ZSmok[id] = 0
  6307. ZStal[id] = 0
  6308. ZHusk[id] = 0
  6309. Zm_Adm[id] = 0
  6310. Zlobo[id] = 0
  6311. ZClass[id] = 0
  6312. Zperr[id] = 0
  6313. ZDocS[id] = 0
  6314. ZSui[id] = 0
  6315. ZDest[id] = 0
  6316. ZJock[id] = 0
  6317. ZNeme[id] = 0
  6318. ZRadia[id] = 0
  6319. ZLeye[id] = 0
  6320.  
  6321. ZChar[id] = 0
  6322. ZCarn[id] = 0
  6323. ZTanke[id] = 0
  6324. ZBull[id] = 0
  6325. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE DIABLO \n|\g HP 5800 \n| \gGRAVEDAD 0.9 \n|\g VELOCIDAD 280\n|", Tag)
  6326. }
  6327. else {
  6328. print_EasyChat(id, "\g%s\nNecesitas \gnivel 8 \npara adquirir esta clase zombie", Tag)
  6329. clases_zm(id)
  6330. return PLUGIN_HANDLED
  6331. }
  6332. }
  6333. case 17: {
  6334. if(g_level[id] >= 8) {
  6335. Zclas[id] = 0
  6336. ZRapi[id] = 0
  6337. ZSalt[id] = 0
  6338. ZTank[id] = 0
  6339. ZOxid[id] = 0
  6340. ZSpit[id] = 0
  6341. ZHunt[id] = 0
  6342. ZTerr[id] = 0
  6343. ZCang[id] = 0
  6344. ZSpitd[id] = 0
  6345. ZWitc[id] = 0
  6346. ZPuta[id] = 0
  6347. ZSwar[id] = 0
  6348. ZClot[id] = 0
  6349. ZFeno[id] = 0
  6350. ZPaya[id] = 0
  6351.  
  6352. Zdiab[id] = 0
  6353. ZPois[id] = 1
  6354. ZSant[id] = 0
  6355. ZScra[id] = 0
  6356. ZSire[id] = 0
  6357. ZSmok[id] = 0
  6358. ZStal[id] = 0
  6359. ZHusk[id] = 0
  6360. Zm_Adm[id] = 0
  6361. Zlobo[id] = 0
  6362. ZClass[id] = 0
  6363. Zperr[id] = 0
  6364. ZDocS[id] = 0
  6365. ZSui[id] = 0
  6366. ZDest[id] = 0
  6367. ZJock[id] = 0
  6368. ZNeme[id] = 0
  6369. ZRadia[id] = 0
  6370. ZLeye[id] = 0
  6371.  
  6372. ZChar[id] = 0
  6373. ZCarn[id] = 0
  6374. ZTanke[id] = 0
  6375. ZBull[id] = 0
  6376. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE POISON \n|\g HP 6200 \n| \gGRAVEDAD 0.8 \n|\g VELOCIDAD 262\n|", Tag)
  6377. }
  6378. else {
  6379. print_EasyChat(id, "\g%s\nNecesitas \gnivel 8 \npara adquirir esta clase zombie", Tag)
  6380. clases_zm(id)
  6381. return PLUGIN_HANDLED
  6382. }
  6383. }
  6384. case 18: {
  6385. if(get_user_flags(id) & ADMIN_LEVEL_D) {
  6386. if(g_level[id] >= 9) {
  6387. Zclas[id] = 0
  6388. ZRapi[id] = 0
  6389. ZSalt[id] = 0
  6390. ZTank[id] = 0
  6391. ZOxid[id] = 0
  6392. ZSalt[id] = 0
  6393. ZHunt[id] = 0
  6394. ZTerr[id] = 0
  6395. ZCang[id] = 0
  6396. ZSpitd[id] = 0
  6397. ZWitc[id] = 0
  6398. ZPuta[id] = 0
  6399. ZSwar[id] = 0
  6400. ZClot[id] = 0
  6401. ZFeno[id] = 0
  6402. ZPaya[id] = 0
  6403.  
  6404. Zdiab[id] = 0
  6405. ZPois[id] = 0
  6406. ZSant[id] = 1
  6407. ZScra[id] = 0
  6408. ZSire[id] = 0
  6409. ZSmok[id] = 0
  6410. ZStal[id] = 0
  6411. ZHusk[id] = 0
  6412.  
  6413. Zlobo[id] = 0
  6414. ZClass[id] = 0
  6415. Zperr[id] = 0
  6416. ZDocS[id] = 0
  6417. ZSui[id] = 0
  6418. ZDest[id] = 0
  6419. ZJock[id] = 0
  6420. ZNeme[id] = 0
  6421. ZRadia[id] = 0
  6422. ZLeye[id] = 0
  6423. Zm_Adm[id] = 0
  6424. ZChar[id] = 0
  6425. ZCarn[id] = 0
  6426. ZTanke[id] = 0
  6427. ZBull[id] = 0
  6428. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE SANTA CLAUS \n|\g HP 7000 \n| \gGRAVEDAD 1.0 \n|\g VELOCIDAD 265\n|", Tag)
  6429. }
  6430. else {
  6431. print_EasyChat(id, "\g%s\nNo eres admin", Tag)
  6432. clases_zm(id)
  6433. return PLUGIN_HANDLED
  6434. }
  6435. }
  6436. else {
  6437. print_EasyChat(id, "\g%s\nNecesitas \gnivel 9 \npara adquirir esta clase zombie", Tag)
  6438. clases_zm(id)
  6439. return PLUGIN_HANDLED
  6440. }
  6441. }
  6442. case 19: {
  6443. if(g_level[id] >= 9) {
  6444. Zclas[id] = 0
  6445. ZRapi[id] = 0
  6446. ZSalt[id] = 0
  6447. ZTank[id] = 0
  6448. ZOxid[id] = 0
  6449. ZSpit[id] = 0
  6450. ZHunt[id] = 0
  6451. ZTerr[id] = 0
  6452. ZCang[id] = 0
  6453. ZSpitd[id] = 0
  6454. ZWitc[id] = 0
  6455. ZPuta[id] = 0
  6456. ZSwar[id] = 0
  6457. ZClot[id] = 0
  6458. ZFeno[id] = 0
  6459. ZPaya[id] = 0
  6460.  
  6461. Zdiab[id] = 0
  6462. ZPois[id] = 0
  6463. ZSant[id] = 0
  6464. ZScra[id] = 1
  6465. ZSire[id] = 0
  6466. ZSmok[id] = 0
  6467. ZStal[id] = 0
  6468. ZHusk[id] = 0
  6469.  
  6470. Zlobo[id] = 0
  6471. ZClass[id] = 0
  6472. Zperr[id] = 0
  6473. ZDocS[id] = 0
  6474. ZSui[id] = 0
  6475. ZDest[id] = 0
  6476. ZJock[id] = 0
  6477. ZNeme[id] = 0
  6478. ZRadia[id] = 0
  6479. ZLeye[id] = 0
  6480. Zm_Adm[id] = 0
  6481. ZChar[id] = 0
  6482. ZCarn[id] = 0
  6483. ZTanke[id] = 0
  6484. ZBull[id] = 0
  6485. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE SCRAKE \n|\g HP 6500 \n| \gGRAVEDAD 0.9 \n|\g VELOCIDAD 265\n|", Tag)
  6486. }
  6487. else {
  6488. print_EasyChat(id, "\g%s\nNecesitas \gnivel 9 \npara adquirir esta clase zombie", Tag)
  6489. clases_zm(id)
  6490. return PLUGIN_HANDLED
  6491. }
  6492. }
  6493. case 20: {
  6494. if(get_user_flags(id) & ADMIN_IMMUNITY) {
  6495. if(g_level[id] >= 10) {
  6496. Zclas[id] = 0
  6497. ZRapi[id] = 0
  6498. ZSalt[id] = 0
  6499. ZTank[id] = 0
  6500. ZOxid[id] = 0
  6501. ZSalt[id] = 0
  6502. ZHunt[id] = 0
  6503. ZTerr[id] = 0
  6504. ZCang[id] = 0
  6505. ZSpitd[id] = 0
  6506. ZWitc[id] = 0
  6507. ZPuta[id] = 0
  6508. ZSwar[id] = 0
  6509. ZClot[id] = 0
  6510. ZFeno[id] = 0
  6511. ZPaya[id] = 0
  6512.  
  6513. Zdiab[id] = 0
  6514. ZPois[id] = 0
  6515. ZSant[id] = 0
  6516. ZScra[id] = 0
  6517. ZSire[id] = 1
  6518. ZSmok[id] = 0
  6519. ZStal[id] = 0
  6520. ZHusk[id] = 0
  6521.  
  6522. Zlobo[id] = 0
  6523. ZClass[id] = 0
  6524. Zperr[id] = 0
  6525. ZDocS[id] = 0
  6526. ZSui[id] = 0
  6527. ZDest[id] = 0
  6528. ZJock[id] = 0
  6529. ZNeme[id] = 0
  6530. ZRadia[id] = 0
  6531. ZLeye[id] = 0
  6532. Zm_Adm[id] = 0
  6533. ZChar[id] = 0
  6534. ZCarn[id] = 0
  6535. ZTanke[id] = 0
  6536. ZBull[id] = 0
  6537. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE SIREN \n|\g HP 6800 \n| \gGRAVEDAD 0.9 \n|\g VELOCIDAD 270\n|", Tag)
  6538. }
  6539. else {
  6540. print_EasyChat(id, "\g%s\nNo eres admin", Tag)
  6541. clases_zm(id)
  6542. return PLUGIN_HANDLED
  6543. }
  6544. }
  6545. else {
  6546. print_EasyChat(id, "\g%s\nNecesitas \gnivel 10 \npara adquirir esta clase zombie", Tag)
  6547. clases_zm(id)
  6548. return PLUGIN_HANDLED
  6549. }
  6550. }
  6551. case 21: {
  6552. if(g_level[id] >= 10) {
  6553. Zclas[id] = 0
  6554. ZRapi[id] = 0
  6555. ZSalt[id] = 0
  6556. ZTank[id] = 0
  6557. ZOxid[id] = 0
  6558. ZSpit[id] = 0
  6559. ZHunt[id] = 0
  6560. ZTerr[id] = 0
  6561. ZCang[id] = 0
  6562. ZSpitd[id] = 0
  6563. ZWitc[id] = 0
  6564. ZPuta[id] = 0
  6565. ZSwar[id] = 0
  6566. ZClot[id] = 0
  6567. ZFeno[id] = 0
  6568. ZPaya[id] = 0
  6569.  
  6570. Zdiab[id] = 0
  6571. ZPois[id] = 0
  6572. ZSant[id] = 0
  6573. ZScra[id] = 0
  6574. ZSire[id] = 0
  6575. ZSmok[id] = 1
  6576. ZStal[id] = 0
  6577. ZHusk[id] = 0
  6578.  
  6579. Zlobo[id] = 0
  6580. ZClass[id] = 0
  6581. Zperr[id] = 0
  6582. ZDocS[id] = 0
  6583. ZSui[id] = 0
  6584. ZDest[id] = 0
  6585. ZJock[id] = 0
  6586. ZNeme[id] = 0
  6587. ZRadia[id] = 0
  6588. ZLeye[id] = 0
  6589. Zm_Adm[id] = 0
  6590. ZChar[id] = 0
  6591. ZCarn[id] = 0
  6592. ZTanke[id] = 0
  6593. ZBull[id] = 0
  6594. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE SMOKER \n|\g HP 7000 \n| \gGRAVEDAD 1.0 \n|\g VELOCIDAD 270\n|", Tag)
  6595. }
  6596. else {
  6597. print_EasyChat(id, "\g%s\nNecesitas \gnivel 10 \npara adquirir esta clase zombie", Tag)
  6598. clases_zm(id)
  6599. return PLUGIN_HANDLED
  6600. }
  6601. }
  6602. case 22: {
  6603. if(g_level[id] >= 11) {
  6604. Zclas[id] = 0
  6605. ZRapi[id] = 0
  6606. ZSalt[id] = 0
  6607. ZTank[id] = 0
  6608. ZOxid[id] = 0
  6609. ZSpit[id] = 0
  6610. ZHunt[id] = 0
  6611. ZTerr[id] = 0
  6612. ZCang[id] = 0
  6613. ZSpitd[id] = 0
  6614. ZWitc[id] = 0
  6615. ZPuta[id] = 0
  6616. ZSwar[id] = 0
  6617. ZClot[id] = 0
  6618. ZFeno[id] = 0
  6619. ZPaya[id] = 0
  6620.  
  6621. Zdiab[id] = 0
  6622. ZPois[id] = 0
  6623. ZSant[id] = 0
  6624. ZScra[id] = 0
  6625. ZSire[id] = 0
  6626. ZSmok[id] = 0
  6627. ZStal[id] = 1
  6628. ZHusk[id] = 0
  6629.  
  6630. Zlobo[id] = 0
  6631. ZClass[id] = 0
  6632. Zperr[id] = 0
  6633. ZDocS[id] = 0
  6634. ZSui[id] = 0
  6635. ZDest[id] = 0
  6636. ZJock[id] = 0
  6637. ZNeme[id] = 0
  6638. ZRadia[id] = 0
  6639. ZLeye[id] = 0
  6640. Zm_Adm[id] = 0
  6641. ZChar[id] = 0
  6642. ZCarn[id] = 0
  6643. ZTanke[id] = 0
  6644. ZBull[id] = 0
  6645. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE STALKER 2 \n|\g HP 7200 \n| \gGRAVEDAD 0.9 \n|\g VELOCIDAD 285\n|", Tag)
  6646. }
  6647. else {
  6648. print_EasyChat(id, "\g%s\nNecesitas \gnivel 11 \npara adquirir esta clase zombie", Tag)
  6649. clases_zm(id)
  6650. return PLUGIN_HANDLED
  6651. }
  6652. }
  6653. case 23: {
  6654. if(g_level[id] >= 11) {
  6655. Zclas[id] = 0
  6656. ZRapi[id] = 0
  6657. ZSalt[id] = 0
  6658. ZTank[id] = 0
  6659. ZOxid[id] = 0
  6660. ZSpit[id] = 0
  6661. ZHunt[id] = 0
  6662. ZTerr[id] = 0
  6663. ZCang[id] = 0
  6664. ZSpitd[id] = 0
  6665. ZWitc[id] = 0
  6666. ZPuta[id] = 0
  6667. ZSwar[id] = 0
  6668. ZClot[id] = 0
  6669. ZFeno[id] = 0
  6670. ZPaya[id] = 0
  6671.  
  6672. Zdiab[id] = 0
  6673. ZPois[id] = 0
  6674. ZSant[id] = 0
  6675. ZScra[id] = 0
  6676. ZSire[id] = 0
  6677. ZSmok[id] = 0
  6678. ZStal[id] = 0
  6679. ZHusk[id] = 1
  6680. Zm_Adm[id] = 0
  6681. Zlobo[id] = 0
  6682. ZClass[id] = 0
  6683. Zperr[id] = 0
  6684. ZDocS[id] = 0
  6685. ZSui[id] = 0
  6686. ZDest[id] = 0
  6687. ZJock[id] = 0
  6688. ZNeme[id] = 0
  6689. ZRadia[id] = 0
  6690. ZLeye[id] = 0
  6691.  
  6692. ZChar[id] = 0
  6693. ZCarn[id] = 0
  6694. ZTanke[id] = 0
  6695. ZBull[id] = 0
  6696. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE HUSK \n|\g HP 7400 \n| \gGRAVEDAD 0.9 \n|\g VELOCIDAD 290\n|", Tag)
  6697. }
  6698. else {
  6699. print_EasyChat(id, "\g%s\nNecesitas \gnivel 11 \npara adquirir esta clase zombie", Tag)
  6700. clases_zm(id)
  6701. return PLUGIN_HANDLED
  6702. }
  6703. }
  6704. case 24: {
  6705. if(g_level[id] >= 12) {
  6706. Zclas[id] = 0
  6707. ZRapi[id] = 0
  6708. ZSalt[id] = 0
  6709. ZTank[id] = 0
  6710. ZOxid[id] = 0
  6711. ZSpit[id] = 0
  6712. ZHunt[id] = 0
  6713. ZTerr[id] = 0
  6714. ZCang[id] = 0
  6715. ZSpitd[id] = 0
  6716. ZWitc[id] = 0
  6717. ZPuta[id] = 0
  6718. ZSwar[id] = 0
  6719. ZClot[id] = 0
  6720. ZFeno[id] = 0
  6721. ZPaya[id] = 0
  6722.  
  6723. Zdiab[id] = 0
  6724. ZPois[id] = 0
  6725. ZSant[id] = 0
  6726. ZScra[id] = 0
  6727. ZSire[id] = 0
  6728. ZSmok[id] = 0
  6729. ZStal[id] = 0
  6730. ZHusk[id] = 0
  6731.  
  6732. Zlobo[id] = 1
  6733. ZClass[id] = 0
  6734. Zperr[id] = 0
  6735. ZDocS[id] = 0
  6736. ZSui[id] = 0
  6737. ZDest[id] = 0
  6738. ZJock[id] = 0
  6739. ZNeme[id] = 0
  6740. ZRadia[id] = 0
  6741. ZLeye[id] = 0
  6742. Zm_Adm[id] = 0
  6743. ZChar[id] = 0
  6744. ZCarn[id] = 0
  6745. ZTanke[id] = 0
  6746. ZBull[id] = 0
  6747. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE HOMBRELOBO \n|\g HP 7800 \n| \gGRAVEDAD 0.9 \n|\g VELOCIDAD 311\n|", Tag)
  6748. }
  6749. else {
  6750. print_EasyChat(id, "\g%s\nNecesitas \gnivel 12 \npara adquirir esta clase zombie", Tag)
  6751. clases_zm(id)
  6752. return PLUGIN_HANDLED
  6753. }
  6754. }
  6755. case 25: {
  6756. if(g_level[id] >= 13) {
  6757. Zclas[id] = 0
  6758. ZRapi[id] = 0
  6759. ZSalt[id] = 0
  6760. ZTank[id] = 0
  6761. ZOxid[id] = 0
  6762. ZSpit[id] = 0
  6763. ZHunt[id] = 0
  6764. ZTerr[id] = 0
  6765. ZCang[id] = 0
  6766. ZSpitd[id] = 0
  6767. ZWitc[id] = 0
  6768. ZPuta[id] = 0
  6769. ZSwar[id] = 0
  6770. ZClot[id] = 0
  6771. ZFeno[id] = 0
  6772. ZPaya[id] = 0
  6773.  
  6774. Zdiab[id] = 0
  6775. ZPois[id] = 0
  6776. ZSant[id] = 0
  6777. ZScra[id] = 0
  6778. ZSire[id] = 0
  6779. ZSmok[id] = 0
  6780. ZStal[id] = 0
  6781. ZHusk[id] = 0
  6782.  
  6783. Zlobo[id] = 0
  6784. ZClass[id] = 1
  6785. Zperr[id] = 0
  6786. ZDocS[id] = 0
  6787. ZSui[id] = 0
  6788. ZDest[id] = 0
  6789. ZJock[id] = 0
  6790. ZNeme[id] = 0
  6791. ZRadia[id] = 0
  6792. ZLeye[id] = 0
  6793. Zm_Adm[id] = 0
  6794. ZChar[id] = 0
  6795. ZCarn[id] = 0
  6796. ZTanke[id] = 0
  6797. ZBull[id] = 0
  6798. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE CLASICO 2 \n|\g HP 7500 \n| \gGRAVEDAD 0.8 \n|\g VELOCIDAD 309\n|", Tag)
  6799. }
  6800. else {
  6801. print_EasyChat(id, "\g%s\nNecesitas \gnivel 13 \npara adquirir esta clase zombie", Tag)
  6802. clases_zm(id)
  6803. return PLUGIN_HANDLED
  6804. }
  6805. }
  6806. case 26: {
  6807. if(get_user_flags(id) & ADMIN_IMMUNITY) {
  6808. if(g_level[id] >= 12) {
  6809. Zclas[id] = 0
  6810. ZRapi[id] = 0
  6811. ZSalt[id] = 0
  6812. ZTank[id] = 0
  6813. ZOxid[id] = 0
  6814. ZSalt[id] = 0
  6815. ZHunt[id] = 0
  6816. ZTerr[id] = 0
  6817. ZCang[id] = 0
  6818. ZSpitd[id] = 0
  6819. ZWitc[id] = 0
  6820. ZPuta[id] = 0
  6821. ZSwar[id] = 0
  6822. ZClot[id] = 0
  6823. ZFeno[id] = 0
  6824. ZPaya[id] = 0
  6825.  
  6826. Zdiab[id] = 0
  6827. ZPois[id] = 0
  6828. ZSant[id] = 0
  6829. ZScra[id] = 0
  6830. ZSire[id] = 0
  6831. ZSmok[id] = 0
  6832. ZStal[id] = 0
  6833. ZHusk[id] = 0
  6834.  
  6835. Zlobo[id] = 0
  6836. ZClass[id] = 0
  6837. Zperr[id] = 1
  6838. ZDocS[id] = 0
  6839. ZSui[id] = 0
  6840. ZDest[id] = 0
  6841. ZJock[id] = 0
  6842. ZNeme[id] = 0
  6843. ZRadia[id] = 0
  6844. ZLeye[id] = 0
  6845. Zm_Adm[id] = 0
  6846. ZChar[id] = 0
  6847. ZCarn[id] = 0
  6848. ZTanke[id] = 0
  6849. ZBull[id] = 0
  6850. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE PERRO \n|\g HP 8000 \n| \gGRAVEDAD 0.8 \n|\g VELOCIDAD 318\n|", Tag)
  6851. }
  6852. else {
  6853. print_EasyChat(id, "\g%s\nNo eres admin", Tag)
  6854. clases_zm(id)
  6855. return PLUGIN_HANDLED
  6856. }
  6857. }
  6858. else {
  6859. print_EasyChat(id, "\g%s\nNecesitas \gnivel 12 \npara adquirir esta clase zombie", Tag)
  6860. clases_zm(id)
  6861. return PLUGIN_HANDLED
  6862. }
  6863. }
  6864. case 27: {
  6865. if(g_level[id] >= 14) {
  6866. Zclas[id] = 0
  6867. ZRapi[id] = 0
  6868. ZSalt[id] = 0
  6869. ZTank[id] = 0
  6870. ZOxid[id] = 0
  6871. ZSpit[id] = 0
  6872. ZHunt[id] = 0
  6873. ZTerr[id] = 0
  6874. ZCang[id] = 0
  6875. ZSpitd[id] = 0
  6876. ZWitc[id] = 0
  6877. ZPuta[id] = 0
  6878. ZSwar[id] = 0
  6879. ZClot[id] = 0
  6880. ZFeno[id] = 0
  6881. ZPaya[id] = 0
  6882.  
  6883. Zdiab[id] = 0
  6884. ZPois[id] = 0
  6885. ZSant[id] = 0
  6886. ZScra[id] = 0
  6887. ZSire[id] = 0
  6888. ZSmok[id] = 0
  6889. ZStal[id] = 0
  6890. ZHusk[id] = 0
  6891.  
  6892. Zlobo[id] = 0
  6893. ZClass[id] = 0
  6894. Zperr[id] = 0
  6895. ZDocS[id] = 1
  6896. ZSui[id] = 0
  6897. ZDest[id] = 0
  6898. ZJock[id] = 0
  6899. ZNeme[id] = 0
  6900. ZRadia[id] = 0
  6901. ZLeye[id] = 0
  6902. Zm_Adm[id] = 0
  6903. ZChar[id] = 0
  6904. ZCarn[id] = 0
  6905. ZTanke[id] = 0
  6906. ZBull[id] = 0
  6907. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE DR.SALVADOR \n|\g HP 11200 \n| \gGRAVEDAD 0.7 \n|\g VELOCIDAD 301\n|", Tag)
  6908. }
  6909. else {
  6910. print_EasyChat(id, "\g%s\nNecesitas \gnivel 14 \npara adquirir esta clase zombie", Tag)
  6911. clases_zm(id)
  6912. return PLUGIN_HANDLED
  6913. }
  6914. }
  6915. case 28: {
  6916. if(g_level[id] >= 14) {
  6917. Zclas[id] = 0
  6918. ZRapi[id] = 0
  6919. ZSalt[id] = 0
  6920. ZTank[id] = 0
  6921. ZOxid[id] = 0
  6922. ZSpit[id] = 0
  6923. ZHunt[id] = 0
  6924. ZTerr[id] = 0
  6925. ZCang[id] = 0
  6926. ZSpitd[id] = 0
  6927. ZWitc[id] = 0
  6928. ZPuta[id] = 0
  6929. ZSwar[id] = 0
  6930. ZClot[id] = 0
  6931. ZFeno[id] = 0
  6932. ZPaya[id] = 0
  6933.  
  6934. Zdiab[id] = 0
  6935. ZPois[id] = 0
  6936. ZSant[id] = 0
  6937. ZScra[id] = 0
  6938. ZSire[id] = 0
  6939. ZSmok[id] = 0
  6940. ZStal[id] = 0
  6941. ZHusk[id] = 0
  6942.  
  6943. Zlobo[id] = 0
  6944. ZClass[id] = 0
  6945. Zperr[id] = 0
  6946. ZDocS[id] = 0
  6947. ZSui[id] = 1
  6948. ZDest[id] = 0
  6949. ZJock[id] = 0
  6950. ZNeme[id] = 0
  6951. ZRadia[id] = 0
  6952. ZLeye[id] = 0
  6953. Zm_Adm[id] = 0
  6954. ZChar[id] = 0
  6955. ZCarn[id] = 0
  6956. ZTanke[id] = 0
  6957. ZBull[id] = 0
  6958. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE SUICIDE \n|\g HP 9000 \n| \gGRAVEDAD 0.7 \n|\g VELOCIDAD 301\n|", Tag)
  6959. }
  6960. else {
  6961. print_EasyChat(id, "\g%s\nNecesitas \gnivel 14 \npara adquirir esta clase zombie", Tag)
  6962. clases_zm(id)
  6963. return PLUGIN_HANDLED
  6964. }
  6965. }
  6966. case 29: {
  6967. if(g_level[id] >= 15) {
  6968. Zclas[id] = 0
  6969. ZRapi[id] = 0
  6970. ZSalt[id] = 0
  6971. ZTank[id] = 0
  6972. ZOxid[id] = 0
  6973. ZSpit[id] = 0
  6974. ZHunt[id] = 0
  6975. ZTerr[id] = 0
  6976. ZCang[id] = 0
  6977. ZSpitd[id] = 0
  6978. ZWitc[id] = 0
  6979. ZPuta[id] = 0
  6980. ZSwar[id] = 0
  6981. ZClot[id] = 0
  6982. ZFeno[id] = 0
  6983. ZPaya[id] = 0
  6984.  
  6985. Zdiab[id] = 0
  6986. ZPois[id] = 0
  6987. ZSant[id] = 0
  6988. ZScra[id] = 0
  6989. ZSire[id] = 0
  6990. ZSmok[id] = 0
  6991. ZStal[id] = 0
  6992. ZHusk[id] = 0
  6993.  
  6994. Zlobo[id] = 0
  6995. ZClass[id] = 0
  6996. Zperr[id] = 0
  6997. ZDocS[id] = 0
  6998. ZSui[id] = 0
  6999. ZDest[id] = 1
  7000. ZJock[id] = 0
  7001. ZNeme[id] = 0
  7002. ZRadia[id] = 0
  7003. ZLeye[id] = 0
  7004. Zm_Adm[id] = 0
  7005. ZChar[id] = 0
  7006. ZCarn[id] = 0
  7007. ZTanke[id] = 0
  7008. ZBull[id] = 0
  7009. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE DESTRIPADOR \n|\g HP 10000 \n| \gGRAVEDAD 0.6 \n|\g VELOCIDAD 305\n|", Tag)
  7010. }
  7011. else {
  7012. print_EasyChat(id, "\g%s\nNecesitas \gnivel 15 \npara adquirir esta clase zombie", Tag)
  7013. clases_zm(id)
  7014. return PLUGIN_HANDLED
  7015. }
  7016. }
  7017. case 30: {
  7018. if(g_level[id] >= 15) {
  7019. Zclas[id] = 0
  7020. ZRapi[id] = 0
  7021. ZSalt[id] = 0
  7022. ZTank[id] = 0
  7023. ZOxid[id] = 0
  7024. ZSpit[id] = 0
  7025. ZHunt[id] = 0
  7026. ZTerr[id] = 0
  7027. ZCang[id] = 0
  7028. ZSpitd[id] = 0
  7029. ZWitc[id] = 0
  7030. ZPuta[id] = 0
  7031. ZSwar[id] = 0
  7032. ZClot[id] = 0
  7033. ZFeno[id] = 0
  7034. ZPaya[id] = 0
  7035.  
  7036. Zdiab[id] = 0
  7037. ZPois[id] = 0
  7038. ZSant[id] = 0
  7039. ZScra[id] = 0
  7040. ZSire[id] = 0
  7041. ZSmok[id] = 0
  7042. ZStal[id] = 0
  7043. ZHusk[id] = 0
  7044.  
  7045. Zlobo[id] = 0
  7046. ZClass[id] = 0
  7047. Zperr[id] = 0
  7048. ZDocS[id] = 0
  7049. ZSui[id] = 0
  7050. ZDest[id] = 0
  7051. ZJock[id] = 1
  7052. ZNeme[id] = 0
  7053. ZRadia[id] = 0
  7054. ZLeye[id] = 0
  7055. Zm_Adm[id] = 0
  7056. ZChar[id] = 0
  7057. ZCarn[id] = 0
  7058. ZTanke[id] = 0
  7059. ZBull[id] = 0
  7060. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE JOCKEy \n|\g HP 9500 \n| \gGRAVEDAD 0.5 \n|\g VELOCIDAD 311\n|", Tag)
  7061. }
  7062. else {
  7063. print_EasyChat(id, "\g%s\nNecesitas \gnivel 15 \npara adquirir esta clase zombie", Tag)
  7064. clases_zm(id)
  7065. return PLUGIN_HANDLED
  7066. }
  7067. }
  7068. case 31: {
  7069. if(g_level[id] >= 16) {
  7070. Zclas[id] = 0
  7071. ZRapi[id] = 0
  7072. ZSalt[id] = 0
  7073. ZTank[id] = 0
  7074. ZOxid[id] = 0
  7075. ZSpit[id] = 0
  7076. ZHunt[id] = 0
  7077. ZTerr[id] = 0
  7078. ZCang[id] = 0
  7079. ZSpitd[id] = 0
  7080. ZWitc[id] = 0
  7081. ZPuta[id] = 0
  7082. ZSwar[id] = 0
  7083. ZClot[id] = 0
  7084. ZFeno[id] = 0
  7085. ZPaya[id] = 0
  7086.  
  7087. Zdiab[id] = 0
  7088. ZPois[id] = 0
  7089. ZSant[id] = 0
  7090. ZScra[id] = 0
  7091. ZSire[id] = 0
  7092. ZSmok[id] = 0
  7093. ZStal[id] = 0
  7094. ZHusk[id] = 0
  7095.  
  7096. Zlobo[id] = 0
  7097. ZClass[id] = 0
  7098. Zperr[id] = 0
  7099. ZDocS[id] = 0
  7100. ZSui[id] = 0
  7101. ZDest[id] = 0
  7102. ZJock[id] = 0
  7103. ZNeme[id] = 1
  7104. ZRadia[id] = 0
  7105. ZLeye[id] = 0
  7106. Zm_Adm[id] = 0
  7107. ZChar[id] = 0
  7108. ZCarn[id] = 0
  7109. ZTanke[id] = 0
  7110. ZBull[id] = 0
  7111. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE NEMESIS \n|\g HP 10500 \n| \gGRAVEDAD 0.7 \n|\g VELOCIDAD 305\n|", Tag)
  7112. }
  7113. else {
  7114. print_EasyChat(id, "\g%s\nNecesitas \gnivel 16 \npara adquirir esta clase zombie", Tag)
  7115. clases_zm(id)
  7116. return PLUGIN_HANDLED
  7117. }
  7118. }
  7119. case 32: {
  7120. if(g_level[id] >= 16) {
  7121. Zclas[id] = 0
  7122. ZRapi[id] = 0
  7123. ZSalt[id] = 0
  7124. ZTank[id] = 0
  7125. ZOxid[id] = 0
  7126. ZSpit[id] = 0
  7127. ZHunt[id] = 0
  7128. ZTerr[id] = 0
  7129. ZCang[id] = 0
  7130. ZSpitd[id] = 0
  7131. ZWitc[id] = 0
  7132. ZPuta[id] = 0
  7133. ZSwar[id] = 0
  7134. ZClot[id] = 0
  7135. ZFeno[id] = 0
  7136. ZPaya[id] = 0
  7137.  
  7138. Zdiab[id] = 0
  7139. ZPois[id] = 0
  7140. ZSant[id] = 0
  7141. ZScra[id] = 0
  7142. ZSire[id] = 0
  7143. ZSmok[id] = 0
  7144. ZStal[id] = 0
  7145. ZHusk[id] = 0
  7146.  
  7147. Zlobo[id] = 0
  7148. ZClass[id] = 0
  7149. Zperr[id] = 0
  7150. ZDocS[id] = 0
  7151. ZSui[id] = 0
  7152. ZDest[id] = 0
  7153. ZJock[id] = 0
  7154. ZNeme[id] = 0
  7155. ZRadia[id] = 1
  7156. ZLeye[id] = 0
  7157. Zm_Adm[id] = 0
  7158. ZChar[id] = 0
  7159. ZCarn[id] = 0
  7160. ZTanke[id] = 0
  7161. ZBull[id] = 0
  7162. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE RADIOACTIVO \n|\g HP 13200 \n| \gGRAVEDAD 0.7 \n|\g VELOCIDAD 315\n|", Tag)
  7163. }
  7164. else {
  7165. print_EasyChat(id, "\g%s\nNecesitas \gnivel 16 \npara adquirir esta clase zombie", Tag)
  7166. clases_zm(id)
  7167. return PLUGIN_HANDLED
  7168. }
  7169. }
  7170. case 33: {
  7171. if(g_level[id] >= 17) {
  7172. Zclas[id] = 0
  7173. ZRapi[id] = 0
  7174. ZSalt[id] = 0
  7175. ZTank[id] = 0
  7176. ZOxid[id] = 0
  7177. ZSpit[id] = 0
  7178. ZHunt[id] = 0
  7179. ZTerr[id] = 0
  7180. ZCang[id] = 0
  7181. ZSpitd[id] = 0
  7182. ZWitc[id] = 0
  7183. ZPuta[id] = 0
  7184. ZSwar[id] = 0
  7185. ZClot[id] = 0
  7186. ZFeno[id] = 0
  7187. ZPaya[id] = 0
  7188.  
  7189. Zdiab[id] = 0
  7190. ZPois[id] = 0
  7191. ZSant[id] = 0
  7192. ZScra[id] = 0
  7193. ZSire[id] = 0
  7194. ZSmok[id] = 0
  7195. ZStal[id] = 0
  7196. ZHusk[id] = 0
  7197.  
  7198. Zlobo[id] = 0
  7199. ZClass[id] = 0
  7200. Zperr[id] = 0
  7201. ZDocS[id] = 0
  7202. ZSui[id] = 0
  7203. ZDest[id] = 0
  7204. ZJock[id] = 0
  7205. ZNeme[id] = 0
  7206. ZRadia[id] = 0
  7207. ZLeye[id] = 1
  7208. Zm_Adm[id] = 0
  7209. ZChar[id] = 0
  7210. ZCarn[id] = 0
  7211. ZTanke[id] = 0
  7212. ZBull[id] = 0
  7213. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE SOY LEYENDA \n|\g HP 12000 \n| \gGRAVEDAD 0.6 \n|\g VELOCIDAD 320\n|", Tag)
  7214. }
  7215. else {
  7216. print_EasyChat(id, "\g%s\nNecesitas \gnivel 17 \npara adquirir esta clase zombie", Tag)
  7217. clases_zm(id)
  7218. return PLUGIN_HANDLED
  7219. }
  7220. }
  7221. case 34: {
  7222. if(g_level[id] >= 18) {
  7223. Zclas[id] = 0
  7224. ZRapi[id] = 0
  7225. ZSalt[id] = 0
  7226. ZTank[id] = 0
  7227. ZOxid[id] = 0
  7228. ZSpit[id] = 0
  7229. ZHunt[id] = 0
  7230. ZTerr[id] = 0
  7231. ZCang[id] = 0
  7232. ZSpitd[id] = 0
  7233. ZWitc[id] = 0
  7234. ZPuta[id] = 0
  7235. ZSwar[id] = 0
  7236. ZClot[id] = 0
  7237. ZFeno[id] = 0
  7238. ZPaya[id] = 0
  7239.  
  7240. Zdiab[id] = 0
  7241. ZPois[id] = 0
  7242. ZSant[id] = 0
  7243. ZScra[id] = 0
  7244. ZSire[id] = 0
  7245. ZSmok[id] = 0
  7246. ZStal[id] = 0
  7247. ZHusk[id] = 0
  7248.  
  7249. Zlobo[id] = 0
  7250. ZClass[id] = 0
  7251. Zperr[id] = 0
  7252. ZDocS[id] = 0
  7253. ZSui[id] = 0
  7254. ZDest[id] = 0
  7255. ZJock[id] = 0
  7256. ZNeme[id] = 0
  7257. ZRadia[id] = 0
  7258. ZLeye[id] = 0
  7259. Zm_Adm[id] = 0
  7260. ZChar[id] = 1
  7261. ZCarn[id] = 0
  7262. ZTanke[id] = 0
  7263. ZBull[id] = 0
  7264. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE CHARGER \n|\g HP 12000 \n| \gGRAVEDAD 0.6 \n|\g VELOCIDAD 310\n|", Tag)
  7265. }
  7266. else {
  7267. print_EasyChat(id, "\g%s\nNecesitas \gnivel 18 \npara adquirir esta clase zombie", Tag)
  7268. clases_zm(id)
  7269. return PLUGIN_HANDLED
  7270. }
  7271. }
  7272. case 35: {
  7273. if(get_user_flags(id) & ADMIN_IMMUNITY) {
  7274. if(g_level[id] >= 18) {
  7275. Zclas[id] = 0
  7276. ZRapi[id] = 0
  7277. ZSalt[id] = 0
  7278. ZTank[id] = 0
  7279. ZOxid[id] = 0
  7280. ZSalt[id] = 0
  7281. ZHunt[id] = 0
  7282. ZTerr[id] = 0
  7283. ZCang[id] = 0
  7284. ZSpitd[id] = 0
  7285. ZWitc[id] = 0
  7286. ZPuta[id] = 0
  7287. ZSwar[id] = 0
  7288. ZClot[id] = 0
  7289. ZFeno[id] = 0
  7290. ZPaya[id] = 0
  7291.  
  7292. Zdiab[id] = 0
  7293. ZPois[id] = 0
  7294. ZSant[id] = 0
  7295. ZScra[id] = 0
  7296. ZSire[id] = 0
  7297. ZSmok[id] = 0
  7298. ZStal[id] = 0
  7299. ZHusk[id] = 0
  7300.  
  7301. Zlobo[id] = 0
  7302. ZClass[id] = 0
  7303. Zperr[id] = 0
  7304. ZDocS[id] = 0
  7305. ZSui[id] = 0
  7306. ZDest[id] = 0
  7307. ZJock[id] = 0
  7308. ZNeme[id] = 0
  7309. ZRadia[id] = 0
  7310. ZLeye[id] = 0
  7311. Zm_Adm[id] = 0
  7312. ZChar[id] = 0
  7313. ZCarn[id] = 1
  7314. ZTanke[id] = 0
  7315. ZBull[id] = 0
  7316. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE CARNICERO \n|\g HP 13500 \n| \gGRAVEDAD 0.4 \n|\g VELOCIDAD 318\n|", Tag)
  7317. }
  7318. else {
  7319. print_EasyChat(id, "\g%s\nNo eres admin", Tag)
  7320. clases_zm(id)
  7321. return PLUGIN_HANDLED
  7322. }
  7323. }
  7324. else {
  7325. print_EasyChat(id, "\g%s\nNecesitas \gnivel 18 \npara adquirir esta clase zombie", Tag)
  7326. clases_zm(id)
  7327. return PLUGIN_HANDLED
  7328. }
  7329. }
  7330. case 36: {
  7331. if(g_level[id] >= 19) {
  7332. Zclas[id] = 0
  7333. ZRapi[id] = 0
  7334. ZSalt[id] = 0
  7335. ZTank[id] = 0
  7336. ZOxid[id] = 0
  7337. ZSpit[id] = 0
  7338. ZHunt[id] = 0
  7339. ZTerr[id] = 0
  7340. ZCang[id] = 0
  7341. ZSpitd[id] = 0
  7342. ZWitc[id] = 0
  7343. ZPuta[id] = 0
  7344. ZSwar[id] = 0
  7345. ZClot[id] = 0
  7346. ZFeno[id] = 0
  7347. ZPaya[id] = 0
  7348.  
  7349. Zdiab[id] = 0
  7350. ZPois[id] = 0
  7351. ZSant[id] = 0
  7352. ZScra[id] = 0
  7353. ZSire[id] = 0
  7354. ZSmok[id] = 0
  7355. ZStal[id] = 0
  7356. ZHusk[id] = 0
  7357.  
  7358. Zlobo[id] = 0
  7359. ZClass[id] = 0
  7360. Zperr[id] = 0
  7361. ZDocS[id] = 0
  7362. ZSui[id] = 0
  7363. ZDest[id] = 0
  7364. ZJock[id] = 0
  7365. ZNeme[id] = 0
  7366. ZRadia[id] = 0
  7367. ZLeye[id] = 0
  7368. Zm_Adm[id] = 0
  7369. ZChar[id] = 0
  7370. ZCarn[id] = 0
  7371. ZTanke[id] = 1
  7372. ZBull[id] = 0
  7373. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE TANK \n|\g HP 14000 \n| \gGRAVEDAD 0.5 \n|\g VELOCIDAD 315\n|", Tag)
  7374. }
  7375. else {
  7376. print_EasyChat(id, "\g%s\nNecesitas \gnivel 19 \npara adquirir esta clase zombie", Tag)
  7377. clases_zm(id)
  7378. return PLUGIN_HANDLED
  7379. }
  7380. }
  7381. case 37: {
  7382. if(get_user_flags(id) & ADMIN_IMMUNITY) {
  7383. if(g_level[id] >= 20) {
  7384. Zclas[id] = 0
  7385. ZRapi[id] = 0
  7386. ZSalt[id] = 0
  7387. ZTank[id] = 0
  7388. ZOxid[id] = 0
  7389. ZSalt[id] = 0
  7390. ZHunt[id] = 0
  7391. ZTerr[id] = 0
  7392. ZCang[id] = 0
  7393. ZSpitd[id] = 0
  7394. ZWitc[id] = 0
  7395. ZPuta[id] = 0
  7396. ZSwar[id] = 0
  7397. ZClot[id] = 0
  7398. ZFeno[id] = 0
  7399. ZPaya[id] = 0
  7400.  
  7401. Zdiab[id] = 0
  7402. ZPois[id] = 0
  7403. ZSant[id] = 0
  7404. ZScra[id] = 0
  7405. ZSire[id] = 0
  7406. ZSmok[id] = 0
  7407. ZStal[id] = 0
  7408. ZHusk[id] = 0
  7409.  
  7410. Zlobo[id] = 0
  7411. ZClass[id] = 0
  7412. Zperr[id] = 0
  7413. ZDocS[id] = 0
  7414. ZSui[id] = 0
  7415. ZDest[id] = 0
  7416. ZJock[id] = 0
  7417. ZNeme[id] = 0
  7418. ZRadia[id] = 0
  7419. ZLeye[id] = 0
  7420.  
  7421. ZChar[id] = 0
  7422. ZCarn[id] = 0
  7423. ZTanke[id] = 0
  7424. ZBull[id] = 1
  7425. Zm_Adm[id] = 0
  7426. print_EasyChat(id, "\g%s\nTu proxima clase sera \gZOMBIE BULL \n|\g HP 15000 \n| \gGRAVEDAD 0.4 \n|\g VELOCIDAD 320\n|", Tag)
  7427. }
  7428. else {
  7429. print_EasyChat(id, "\g%s\nNo eres admin", Tag)
  7430. clases_zm(id)
  7431. return PLUGIN_HANDLED
  7432. }
  7433. }
  7434. else {
  7435. print_EasyChat(id, "\g%s\nNecesitas \gnivel 20 \npara adquirir esta clase zombie", Tag)
  7436. clases_zm(id)
  7437. return PLUGIN_HANDLED
  7438. }
  7439. }
  7440. }
  7441. return PLUGIN_HANDLED
  7442. }
  7443. public fw_spawn_dar_ct(id) {
  7444. if(get_user_team(id) == 2) {
  7445. if(Hm_princ[id]) {
  7446. set_user_health(id, 100)
  7447. cs_set_user_model(id, "Principiante")
  7448. }
  7449. else if(Hm_Sobre[id]) {
  7450. set_user_health(id, 120)
  7451. cs_set_user_model(id, "Sobreviviente")
  7452. }
  7453. else if(Hm_Domin[id]) {
  7454. set_user_health(id, 140)
  7455. cs_set_user_model(id, "Dominante")
  7456. }
  7457. else if(Hm_Solda[id]) {
  7458. set_user_health(id, 160)
  7459. cs_set_user_model(id, "Soldado")
  7460. }
  7461. else if(Hm_Milit[id]) {
  7462. set_user_health(id, 180)
  7463. cs_set_user_model(id, "Militar")
  7464. }
  7465. else if(Hm_Assasins[id]) {
  7466. set_user_health(id, 200)
  7467. cs_set_user_model(id, "Asesino")
  7468. }
  7469. }
  7470. }
  7471. public fw_spawn_dar_zm(id) {
  7472. if(get_user_team(id) == 1) {
  7473. if(Zclas[id]) {
  7474. set_user_health(id, 1800)
  7475. set_user_gravity(id, 0.9)
  7476. set_pev(id, pev_maxspeed, 270.0)
  7477. cs_set_user_model(id, "Clasico")
  7478. }
  7479. else if(ZRapi[id]) {
  7480. set_user_health(id, 2200)
  7481. set_user_gravity(id, 1.0)
  7482. set_pev(id, pev_maxspeed, 280.0)
  7483. cs_set_user_model(id, "Rapido")
  7484. }
  7485. else if(ZSalt[id]) {
  7486. set_user_health(id, 2200)
  7487. set_user_gravity(id, 0.7)
  7488. set_pev(id, pev_maxspeed, 260.0)
  7489. cs_set_user_model(id, "Saltador")
  7490. }
  7491. else if(ZTank[id]) {
  7492. set_user_health(id, 3200)
  7493. set_user_gravity(id, 1.0)
  7494. set_pev(id, pev_maxspeed, 260.0)
  7495. cs_set_user_model(id, "Tankee")
  7496. }
  7497. else if(ZOxid[id]) {
  7498. set_user_health(id, 2400)
  7499. set_user_gravity(id, 1.0)
  7500. set_pev(id, pev_maxspeed, 270.0)
  7501. cs_set_user_model(id, "Oxido")
  7502. }
  7503. else if(ZSpit[id]) {
  7504. set_user_health(id, 3300)
  7505. set_user_gravity(id, 0.8)
  7506. set_pev(id, pev_maxspeed, 270.0)
  7507. cs_set_user_model(id, "Spiter")
  7508. }
  7509. else if(ZHunt[id]) {
  7510. set_user_health(id, 2500)
  7511. set_user_gravity(id, 0.6)
  7512. set_pev(id, pev_maxspeed, 260.0)
  7513. cs_set_user_model(id, "Hunter")
  7514. }
  7515. else if(ZTerr[id]) {
  7516. set_user_health(id, 3600)
  7517. set_user_gravity(id, 1.0)
  7518. set_pev(id, pev_maxspeed, 275.0)
  7519. cs_set_user_model(id, "Terrorista")
  7520. }
  7521. else if(ZCang[id]) {
  7522. set_user_health(id, 2400)
  7523. set_user_gravity(id, 0.5)
  7524. set_pev(id, pev_maxspeed, 363.0)
  7525. cs_set_user_model(id, "Cangrejo")
  7526. }
  7527. else if(ZSpitd[id]) {
  7528. set_user_health(id, 3400)
  7529. set_user_gravity(id, 0.7)
  7530. set_pev(id, pev_maxspeed, 268.0)
  7531. cs_set_user_model(id, "Splinter")
  7532. }
  7533. else if(ZWitc[id]) {
  7534. set_user_health(id, 3800)
  7535. set_user_gravity(id, 1.0)
  7536. set_pev(id, pev_maxspeed, 260.0)
  7537. cs_set_user_model(id, "Witch")
  7538. }
  7539. else if(ZPuta[id]) {
  7540. set_user_health(id, 4000)
  7541. set_user_gravity(id, 1.0)
  7542. set_pev(id, pev_maxspeed, 290.0)
  7543. cs_set_user_model(id, "Puta")
  7544. }
  7545. else if(ZSwar[id]) {
  7546. set_user_health(id, 4000)
  7547. set_user_gravity(id, 1.0)
  7548. set_pev(id, pev_maxspeed, 290.0)
  7549. cs_set_user_model(id, "Swarm")
  7550. }
  7551. else if(ZClot[id]) {
  7552. set_user_health(id, 4600)
  7553. set_user_gravity(id, 1.0)
  7554. set_pev(id, pev_maxspeed, 280.0)
  7555. cs_set_user_model(id, "Clot_Circ")
  7556. }
  7557. else if(ZFeno[id]) {
  7558. set_user_health(id, 5000)
  7559. set_user_gravity(id, 0.9)
  7560. set_pev(id, pev_maxspeed, 270.0)
  7561. cs_set_user_model(id, "Fenomeno")
  7562. }
  7563. else if(ZPaya[id]) {
  7564. set_user_health(id, 5200)
  7565. set_user_gravity(id, 1.0)
  7566. set_pev(id, pev_maxspeed, 275.0)
  7567. cs_set_user_model(id, "Payaso")
  7568. }
  7569. else if(Zdiab[id]) {
  7570. set_user_health(id, 5800)
  7571. set_user_gravity(id, 0.9)
  7572. set_pev(id, pev_maxspeed, 280.0)
  7573. cs_set_user_model(id, "diablo")
  7574. }
  7575. else if(ZPois[id]) {
  7576. set_user_health(id, 6200)
  7577. set_user_gravity(id, 0.8)
  7578. set_pev(id, pev_maxspeed, 262.0)
  7579. cs_set_user_model(id, "poison")
  7580. }
  7581. else if(ZSant[id]) {
  7582. set_user_health(id, 7000)
  7583. set_user_gravity(id, 1.0)
  7584. set_pev(id, pev_maxspeed, 262.0)
  7585. cs_set_user_model(id, "santa")
  7586. }
  7587. else if(ZScra[id]) {
  7588. set_user_health(id, 6500)
  7589. set_user_gravity(id, 0.9)
  7590. set_pev(id, pev_maxspeed, 265.0)
  7591. cs_set_user_model(id, "scrake")
  7592. }
  7593. else if(ZSire[id]) {
  7594. set_user_health(id, 6800)
  7595. set_user_gravity(id, 0.9)
  7596. set_pev(id, pev_maxspeed, 270.0)
  7597. cs_set_user_model(id, "siren")
  7598. }
  7599. else if(ZSmok[id]) {
  7600. set_user_health(id, 7000)
  7601. set_user_gravity(id, 1.0)
  7602. set_pev(id, pev_maxspeed, 270.0)
  7603. cs_set_user_model(id, "smoker")
  7604. }
  7605. else if(ZStal[id]) {
  7606. set_user_health(id, 7200)
  7607. set_user_gravity(id, 0.9)
  7608. set_pev(id, pev_maxspeed, 285.0)
  7609. cs_set_user_model(id, "stalker2")
  7610.  
  7611. }
  7612. else if(ZHusk[id]) {
  7613. set_user_health(id, 7400)
  7614. set_user_gravity(id, 0.9)
  7615. set_pev(id, pev_maxspeed, 290.0)
  7616. cs_set_user_model(id, "husk")
  7617.  
  7618. }
  7619. else if(Zlobo[id]) {
  7620. set_user_health(id, 7800)
  7621. set_user_gravity(id, 0.9)
  7622. set_pev(id, pev_maxspeed, 311.0)
  7623. cs_set_user_model(id, "hombrelobo")
  7624. }
  7625. else if(ZClass[id]) {
  7626. set_user_health(id, 7500)
  7627. set_user_gravity(id, 0.8)
  7628. set_pev(id, pev_maxspeed, 270.0)
  7629. cs_set_user_model(id, "clasico2")
  7630. }
  7631. else if(Zperr[id]) {
  7632. set_user_health(id, 8000)
  7633. set_user_gravity(id, 0.9)
  7634. set_pev(id, pev_maxspeed, 318.0)
  7635. cs_set_user_model(id, "perro")
  7636. }
  7637. else if(ZDocS[id]) {
  7638. set_user_health(id, 11200)
  7639. set_user_gravity(id, 0.7)
  7640. set_pev(id, pev_maxspeed, 304.0)
  7641. cs_set_user_model(id, "salvador")
  7642. }
  7643. else if(ZSui[id]) {
  7644. set_user_health(id, 9000)
  7645. set_user_gravity(id, 0.7)
  7646. set_pev(id, pev_maxspeed, 301.0)
  7647. cs_set_user_model(id, "suicide")
  7648. }
  7649. else if(ZDest[id]) {
  7650. set_user_health(id, 10000)
  7651. set_user_gravity(id, 0.6)
  7652. set_pev(id, pev_maxspeed, 305.0)
  7653. cs_set_user_model(id, "destripador")
  7654. }
  7655. else if(ZJock[id]) {
  7656. set_user_health(id, 9500)
  7657. set_user_gravity(id, 0.5)
  7658. set_pev(id, pev_maxspeed, 311.0)
  7659. cs_set_user_model(id, "jockey")
  7660. }
  7661. else if(ZNeme[id]) {
  7662. set_user_health(id, 10500)
  7663. set_user_gravity(id, 0.7)
  7664. set_pev(id, pev_maxspeed, 305.0)
  7665. cs_set_user_model(id, "nemesis")
  7666. }
  7667. else if(ZRadia[id]) {
  7668. set_user_health(id, 13200)
  7669. set_user_gravity(id, 0.7)
  7670. set_pev(id, pev_maxspeed, 315.0)
  7671. cs_set_user_model(id, "radiactivo")
  7672. }
  7673. else if(ZLeye[id]) {
  7674. set_user_health(id, 12000)
  7675. set_user_gravity(id, 0.6)
  7676. set_pev(id, pev_maxspeed, 320.0)
  7677. cs_set_user_model(id, "leyenda")
  7678. }
  7679. else if(ZChar[id]) {
  7680. set_user_health(id, 12000)
  7681. set_user_gravity(id, 0.6)
  7682. set_pev(id, pev_maxspeed, 310.0)
  7683. cs_set_user_model(id, "charger")
  7684. }
  7685. else if(ZCarn[id]) {
  7686. set_user_health(id, 13500)
  7687. set_user_gravity(id, 0.4)
  7688. set_pev(id, pev_maxspeed, 318.0)
  7689. cs_set_user_model(id, "carnicero")
  7690. }
  7691. else if(ZTanke[id]) {
  7692. set_user_health(id, 14000)
  7693. set_user_gravity(id, 0.5)
  7694. set_pev(id, pev_maxspeed, 315.0)
  7695. cs_set_user_model(id, "tanke")
  7696. }
  7697. else if(ZBull[id]) {
  7698. set_user_health(id, 15000)
  7699. set_user_gravity(id, 0.4)
  7700. set_pev(id, pev_maxspeed, 320.0)
  7701. cs_set_user_model(id, "bull")
  7702. }
  7703. else if(Zm_Adm[id]) {
  7704. set_user_health(id, 6000)
  7705. set_user_gravity(id, 0.8)
  7706. cs_set_user_model(id, "zm_vip")
  7707. }
  7708. }
  7709. else {
  7710. if(Hm_princ[id]) {
  7711. set_user_health(id, 100)
  7712. cs_set_user_model(id, "Principiante")
  7713. }
  7714. else if(Hm_Sobre[id]) {
  7715. set_user_health(id, 120)
  7716. cs_set_user_model(id, "Sobreviviente")
  7717. }
  7718. else if(Hm_Domin[id]) {
  7719. set_user_health(id, 140)
  7720. cs_set_user_model(id, "Dominante")
  7721. }
  7722. else if(Hm_Solda[id]) {
  7723. set_user_health(id, 160)
  7724. cs_set_user_model(id, "Soldado")
  7725. }
  7726. else if(Hm_Milit[id]) {
  7727. set_user_health(id, 180)
  7728. cs_set_user_model(id, "Militar")
  7729. }
  7730. else if(Hm_Assasins[id]) {
  7731. set_user_health(id, 200)
  7732. cs_set_user_model(id, "Asesino")
  7733. }
  7734. }
  7735. }
  7736. public fw_spawn_x(id) {
  7737.  
  7738. if(get_user_team(id) == 2) {
  7739. fm_set_user_health(id, 100 + ammount_health(g_mejoras[id][0]))
  7740. fm_set_user_armor(id, 50 + ammount_armor(g_mejoras[id][2]))
  7741. set_pev(id, pev_gravity, 1.0 - ammount_gravity(g_mejoras[id][3]))
  7742. }
  7743. }
  7744. public Menu_Mejoras_Hm(id)
  7745. {
  7746. new len[99] , temp[2]
  7747.  
  7748. new menu2 = menu_create("\r[I-E] base builder 9.5+lvl^n\w[Menu de havilidades]", "Menu_Mejoras_Hm_Cases")
  7749.  
  7750. for(new i = 0; i < sizeof gMejoras; i++)
  7751. {
  7752. if(g_mejoras[id][i] <= gMejoras[i][MEJORA_MAX])
  7753. {
  7754. if(g_puntos[id] >= costo(g_mejoras[id][i]))
  7755. formatex(len , charsmax(len) , "\yAumentar \r%s \w[\r%d\y/\r%d\w]\w[\r%d\y Punto%s\w]", gMejoras[i][MEJORA_NAME],g_mejoras[id][i], gMejoras[i][MEJORA_MAX], costo(g_mejoras[id][i]), costo(g_mejoras[id][i]) == 1 ? "" : "s")
  7756. else
  7757. formatex(len , charsmax(len) , "\dAumentar \r%s \w[\r%d\y/\r%d\w]\w[\r%d\y Punto%s\w]", gMejoras[i][MEJORA_NAME], g_mejoras[id][i], gMejoras[i][MEJORA_MAX], costo(g_mejoras[id][i]), costo(g_mejoras[id][i]) == 1 ? "" : "s")
  7758. }
  7759. num_to_str(i,temp, 2)
  7760. menu_additem(menu2 , len , temp)
  7761. }
  7762.  
  7763. menu_setprop(menu2 , MPROP_BACKNAME,"\yAtras")
  7764. menu_setprop(menu2 , MPROP_NEXTNAME,"\ySiguiente")
  7765. menu_setprop(menu2 , MPROP_EXITNAME,"\ySalir")
  7766. menu_display(id, menu2 , 0)
  7767. return PLUGIN_HANDLED
  7768. }
  7769.  
  7770.  
  7771. public Menu_Mejoras_Hm_Cases(id, menu, item)
  7772. {
  7773. if (item == MENU_EXIT)
  7774. {
  7775. menu_destroy(menu)
  7776. return
  7777. }
  7778.  
  7779. if(g_puntos[id] < costo(g_mejoras[id][item]))
  7780. {
  7781. print_EasyChat(id, "\g%s\nNesecitas \g%d \nPuntos para mejorar \g%s", Tag, costo(g_mejoras[id][item]), gMejoras[item][MEJORA_NAME])
  7782. Menu_Mejoras_Hm(id)
  7783.  
  7784. return
  7785. }
  7786.  
  7787. if(g_mejoras[id][item] >= gMejoras[item][MEJORA_MAX])
  7788. {
  7789. print_EasyChat(id, "\g%s\nSubistes el maximo de puntos para la mejora:\g%s", Tag, gMejoras[item][MEJORA_NAME])
  7790. Menu_Mejoras_Hm(id)
  7791.  
  7792. return
  7793. }
  7794.  
  7795. g_puntos[id] -= costo(g_mejoras[id][item])
  7796. g_mejoras[id][item]++
  7797. print_EasyChat(id, "\g%s\nSubiste la mejora \g%s \n, Ahora tienes \g%s \t/ \g%s\nCompleto de ella", Tag, gMejoras[item][MEJORA_NAME], g_mejoras[id][item], gMejoras[item][MEJORA_MAX])
  7798. Menu_Mejoras_Hm(id)
  7799. }
  7800. public cmd_password(id)
  7801. {
  7802. static szName[32],szArgs[64];read_args(szArgs,63)
  7803. remove_quotes(szArgs);trim(szArgs)
  7804.  
  7805. get_user_name(id,szName,31)
  7806.  
  7807. if(containi(szArgs," ") != -1 || equal(szArgs,"")) {
  7808. show_msg(id,"Tu password contiene errores...")
  7809. return PLUGIN_HANDLED
  7810. }
  7811. switch(g_Status[id])
  7812. {
  7813. case UNREGISTERED: {
  7814. show_msg(id,"Confirma tu password para proseguir...");copy(g_TempPassword[id],31,szArgs)
  7815. show_menu_confirm(id)
  7816. }
  7817. case REGISTERED: {
  7818. if(!equal(g_Password[id],szArgs)) {
  7819. show_msg(id,"La password ingresada no coincide con la de la cuenta...")
  7820. return PLUGIN_HANDLED
  7821. }
  7822.  
  7823. g_Status[id] = LOGGED;fvault_save(id)// To save the date
  7824. show_msg(id,"Te logueaste satisfactoriamente en tu cuenta...");change_team(id)
  7825. }
  7826. case LOGGED: {
  7827. if(g_AlredyChanged[id][PASSWORD]) {
  7828. show_msg(id,"Ya cambiaste tu password en este mapa...")
  7829. return PLUGIN_HANDLED
  7830. }
  7831.  
  7832. show_msg(id,"Confirma tu password para cambiarla...");copy(g_TempPassword[id],31,szArgs)
  7833. show_menu_confirm(id)
  7834. }
  7835. }
  7836.  
  7837. return PLUGIN_HANDLED
  7838. }
  7839.  
  7840. public cmd_nick(id)
  7841. {
  7842. if(g_Status[id] != LOGGED || g_AlredyChanged[id][NAME])
  7843. return PLUGIN_HANDLED
  7844.  
  7845. static args[32];read_args(args,31)
  7846. remove_quotes(args);trim(args)
  7847.  
  7848. if(containi(args," ") != -1 || !args[1])
  7849. return PLUGIN_HANDLED
  7850.  
  7851. if(change_name(id,args))
  7852. show_msg(id,"Tu nombre se ha cambiado con exito!")
  7853.  
  7854. return PLUGIN_HANDLED
  7855. }
  7856.  
  7857. /*==================================================================================================
  7858. * BLOCK CHANGE TEAM *
  7859. ==================================================================================================*/
  7860.  
  7861. public message_showmenu(msgid,dest,id)
  7862. {
  7863. static szMsg[16];get_msg_arg_string(4,szMsg,15)
  7864.  
  7865. for(new i;i < sizeof g_MsgArgs;i++)
  7866. {
  7867. if(equal(szMsg,g_MsgArgs[i]))
  7868. {
  7869. show_menu_block(id)
  7870. return PLUGIN_HANDLED
  7871. }
  7872. }
  7873. return PLUGIN_CONTINUE
  7874. }
  7875.  
  7876. public message_vguimenu(msgid,dest,id)
  7877. {
  7878. if(get_msg_arg_int(1) != 2)
  7879. return PLUGIN_CONTINUE
  7880.  
  7881. show_menu_block(id)
  7882.  
  7883. return PLUGIN_HANDLED
  7884. }
  7885.  
  7886. #if defined Hook_Chooseteam
  7887. public cmd_block(id) {
  7888. show_menu_block(id)
  7889. return PLUGIN_HANDLED
  7890. }
  7891. #endif
  7892.  
  7893. /*==================================================================================================
  7894. * MENUs *
  7895. ==================================================================================================*/
  7896. public show_menu_block(id)
  7897. {
  7898. static szMenu[128],szName[32]
  7899. get_user_name(id,szName,31);formatex(szMenu,127,"REGISTRO \r- \yBaseBuilder \r[\wI\r-\wE\r]^n\wESTADO ACTUAL: \y[ \r%s \y]\w^n^n%s%s",g_szStatus[g_Status[id]],g_Status[id] == LOGGED ? "Ultima vez que entraste \r":(g_Status[id] == REGISTERED ? "\yEstas registrado como \r":""),g_Status[id] == LOGGED ? g_Date[id]:(g_Status[id] == REGISTERED ? szName:""))
  7900.  
  7901. new Menu = menu_create(szMenu,"handler_menu_block")
  7902.  
  7903. formatex(szMenu,63,"%sEntrar",g_Status[id] != REGISTERED ? "\d":"\w")
  7904. menu_additem(Menu,szMenu,"1",0)
  7905.  
  7906. formatex(szMenu,63,"%sRegistrar^n",g_Status[id] != UNREGISTERED ? "\d":"\w")
  7907. menu_additem(Menu,szMenu,"2",0)
  7908.  
  7909. formatex(szMenu,63,"%s%sCambiar PASSWORD",g_Status[id] != LOGGED ? "\d":"\w",g_AlredyChanged[id][PASSWORD] ? "\d":"")
  7910. menu_additem(Menu,szMenu,"3",0)
  7911.  
  7912. menu_setprop(Menu,MPROP_EXITNAME,"Salir")
  7913.  
  7914. menu_display(id,Menu,0)
  7915. }
  7916.  
  7917. public handler_menu_block(id,menu,item)
  7918. {
  7919. if(item == MENU_EXIT)
  7920. {
  7921. menu_destroy(menu)
  7922. return PLUGIN_HANDLED
  7923. }
  7924.  
  7925. switch(item)
  7926. {
  7927. case 0: {
  7928. if(g_Status[id] != REGISTERED)
  7929. {
  7930. show_msg(id,"No puedes elegir esta opcion...")
  7931. return PLUGIN_HANDLED
  7932. }
  7933.  
  7934. show_msg(id,"Ingresa tu PASSWORD para entrar a tu cuenta...");client_cmd(id,"messagemode INGRESAR_PASSWORD")
  7935. }
  7936. case 1: {
  7937. if(g_Status[id] != UNREGISTERED)
  7938. {
  7939. show_msg(id,"No puedes elegir esta opcion...")
  7940. return PLUGIN_HANDLED
  7941. }
  7942.  
  7943. show_msg(id,"Ingresa una PASSWORD para crear una cuenta...");client_cmd(id,"messagemode INGRESAR_PASSWORD")
  7944. }
  7945. case 2: {
  7946. if(g_Status[id] != LOGGED || g_AlredyChanged[id][PASSWORD])
  7947. {
  7948. show_msg(id,"No estas logueado o ya cambiaste tu password durante el mapa...")
  7949. return PLUGIN_HANDLED
  7950. }
  7951.  
  7952. show_msg(id,"Ingresa tu nueva PASSWORD...");client_cmd(id,"messagemode INGRESAR_PASSWORD")
  7953. }
  7954. }
  7955.  
  7956. return PLUGIN_HANDLED
  7957. }
  7958. public show_menu_confirm(id)
  7959. {
  7960. static szTitle[128];formatex(szTitle,127,"\y%sLa Contraseña sera \r%s^n^n\yConfirmar?",g_Status[id] == LOGGED ? "Estas cambiando tu Contraseña^n":"Estas seteando tu password^n",g_TempPassword[id])
  7961.  
  7962. new Menu = menu_create(szTitle,"handler_menu_confirm")
  7963.  
  7964. menu_additem(Menu,"\wSi\w,\y confirmar","1",0)
  7965. menu_additem(Menu,"\wNo\w,\y deseo reescribirla","2",0)
  7966.  
  7967. menu_setprop(Menu,MPROP_EXIT,MEXIT_NEVER)
  7968.  
  7969. menu_display(id,Menu,0)
  7970. }
  7971.  
  7972. public handler_menu_confirm(id,menu,item)
  7973. {
  7974. switch(item)
  7975. {
  7976. case 0: {
  7977. switch(g_Status[id])
  7978. {
  7979. case LOGGED: {
  7980. show_msg(id,"Tu Contraseña ha sido cambiada satisfactoiramente")
  7981. print_EasyChat(id, "\g%s\nTu contraseña ahora es : \g%s", Tag, g_TempPassword[id])
  7982.  
  7983. copy(g_Password[id],31,g_TempPassword[id]);fvault_save(id)
  7984.  
  7985. g_AlredyChanged[id][PASSWORD] = 1
  7986. }
  7987. case UNREGISTERED: {
  7988. show_msg(id,"Tu cuenta ha sido creada satisfactoriamente")
  7989.  
  7990. g_exp[id] = 1
  7991. g_level[id] = 1
  7992. g_reset[id] = 0
  7993. g_bbpacks[id] = 1
  7994. g_puntos[id] = 1
  7995.  
  7996. copy(g_Password[id],31,g_TempPassword[id]);fvault_save(id)
  7997.  
  7998. g_Status[id] = LOGGED;change_team(id)
  7999. }
  8000. }
  8001. }
  8002. case 1: {
  8003. menu_destroy(menu)
  8004.  
  8005. client_cmd(id,"messagemode INGRESAR_PASSWORD")
  8006.  
  8007. g_Status[id] == LOGGED ? show_msg(id,"Ingresa tu nueva Contraseña..."):show_msg(id,"Ingresa la Contraseña para tu nueva cuenta...")
  8008. }
  8009. }
  8010. return PLUGIN_HANDLED
  8011. }
  8012.  
  8013. /*==================================================================================================
  8014. * LOAD | SAVE *
  8015. ==================================================================================================*/
  8016.  
  8017. public fvault_load(id)
  8018. {
  8019. static szName[32],szData[64];get_user_name(id,szName,31)
  8020.  
  8021. if(!fvault_get_data(g_Vault,szName,szData,63))
  8022. g_Status[id] = UNREGISTERED
  8023. else {
  8024. strbreak(szData,g_Password[id],31,g_Date[id],31)
  8025.  
  8026. g_Status[id] = REGISTERED
  8027. }
  8028. }
  8029.  
  8030. public fvault_save(id)
  8031. {
  8032. static szName[32],szData[64];get_user_name(id,szName,31)
  8033.  
  8034. get_time("%c",g_Date[id],31);formatex(szData,63,"%s %s",g_Password[id],g_Date[id])
  8035.  
  8036. fvault_set_data(g_Vault,szName,szData)
  8037. }
  8038.  
  8039. /*==================================================================================================
  8040. * STOCKS *
  8041. ==================================================================================================*/
  8042. public fw_ClientUserInfoChanged2(id, Buffer)
  8043. {
  8044. if(!is_user_connected(id))
  8045. return FMRES_IGNORED
  8046.  
  8047. static NickName[32], NickOld[32]; get_user_name(id, NickOld, 31)
  8048. engfunc(EngFunc_InfoKeyValue, Buffer, "name", NickName, 31)
  8049.  
  8050. if (equal(NickName, NickOld))
  8051. return FMRES_IGNORED
  8052.  
  8053. engfunc(EngFunc_SetClientKeyValue, id, Buffer, "name", NickOld)
  8054.  
  8055. client_cmd(id, "name ^"%s^"; setinfo name ^"%s^"", NickOld, NickOld)
  8056.  
  8057. return FMRES_SUPERCEDE;
  8058. }
  8059. public cmd_dar_nivel(id, level, cid) {
  8060. if (!cmd_access(id, level, cid, 2))
  8061. return PLUGIN_HANDLED;
  8062.  
  8063. static arg[32], arg2[6], player, asd
  8064. read_argv(1, arg, sizeof arg - 1)
  8065. read_argv(2, arg2, sizeof arg2 - 1)
  8066. player = cmd_target(id, arg, CMDTARGET_NO_BOTS | CMDTARGET_ALLOW_SELF)
  8067.  
  8068. if (!player) return PLUGIN_HANDLED;
  8069.  
  8070. asd = (str_to_num(arg2))
  8071.  
  8072. g_level[player] += asd
  8073. return PLUGIN_HANDLED;
  8074. }
  8075. public cmd_dar_reset(id, level, cid) {
  8076. if (!cmd_access(id, level, cid, 2))
  8077. return PLUGIN_HANDLED;
  8078.  
  8079. static arg[32], arg2[6], player, asd
  8080. read_argv(1, arg, sizeof arg - 1)
  8081. read_argv(2, arg2, sizeof arg2 - 1)
  8082. player = cmd_target(id, arg, CMDTARGET_NO_BOTS | CMDTARGET_ALLOW_SELF)
  8083.  
  8084. if (!player) return PLUGIN_HANDLED;
  8085.  
  8086. asd = (str_to_num(arg2))
  8087.  
  8088. g_reset[player] += asd
  8089. return PLUGIN_HANDLED;
  8090. }
  8091. public cmd_dar_puntos(id, level, cid) {
  8092. if (!cmd_access(id, level, cid, 2))
  8093. return PLUGIN_HANDLED;
  8094.  
  8095. static arg[32], arg2[6], player, asd
  8096. read_argv(1, arg, sizeof arg - 1)
  8097. read_argv(2, arg2, sizeof arg2 - 1)
  8098. player = cmd_target(id, arg, CMDTARGET_NO_BOTS | CMDTARGET_ALLOW_SELF)
  8099.  
  8100. if (!player) return PLUGIN_HANDLED;
  8101.  
  8102. asd = (str_to_num(arg2))
  8103. g_puntos[player] += asd
  8104. return PLUGIN_HANDLED;
  8105. }
  8106. public cmd_dar_bbpacks(id, level, cid) {
  8107. if (!cmd_access(id, level, cid, 2))
  8108. return PLUGIN_HANDLED;
  8109.  
  8110. static arg[32], arg2[6], player, asd
  8111. read_argv(1, arg, sizeof arg - 1)
  8112. read_argv(2, arg2, sizeof arg2 - 1)
  8113. player = cmd_target(id, arg, CMDTARGET_NO_BOTS | CMDTARGET_ALLOW_SELF)
  8114.  
  8115. if (!player) return PLUGIN_HANDLED;
  8116.  
  8117. asd = (str_to_num(arg2))
  8118.  
  8119. g_bbpacks[player] += asd
  8120. return PLUGIN_HANDLED;
  8121. }
  8122. public cmd_dar_exp(id, level, cid) {
  8123. if (!cmd_access(id, level, cid, 2))
  8124. return PLUGIN_HANDLED;
  8125.  
  8126. static arg[32], arg2[6], player, asd
  8127. read_argv(1, arg, sizeof arg - 1)
  8128. read_argv(2, arg2, sizeof arg2 - 1)
  8129. player = cmd_target(id, arg, CMDTARGET_NO_BOTS | CMDTARGET_ALLOW_SELF)
  8130.  
  8131. if (!player) return PLUGIN_HANDLED;
  8132.  
  8133. asd = (str_to_num(arg2))
  8134. g_exp[player] += asd
  8135. return PLUGIN_HANDLED;
  8136. }
  8137. stock print_EasyChat(const id, const input[], any:...)
  8138. {
  8139. new iCount = 1, iPlayers[32]
  8140.  
  8141. static szMsg[191]
  8142. vformat(szMsg, charsmax(szMsg), input, 3)
  8143.  
  8144. replace_all(szMsg, 190, "\g", "^4")
  8145. replace_all(szMsg, 190, "\n", "^1")
  8146. replace_all(szMsg, 190, "\t", "^3")
  8147.  
  8148. if(id) iPlayers[0] = id
  8149.  
  8150. else get_players(iPlayers, iCount, "ch")
  8151.  
  8152. for (new i = 0; i < iCount; i++) {
  8153. if (is_user_connected(iPlayers[i])) {
  8154. message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, iPlayers[i])
  8155. write_byte(iPlayers[i])
  8156. write_string(szMsg)
  8157. message_end()
  8158. }
  8159. }
  8160. }
  8161. public fwCmdStart(id, uc_handle, seed)
  8162. {
  8163. if (!gAlive[id]) return FMRES_IGNORED;
  8164.  
  8165. static button, oldbuttons, weapon;
  8166. button = get_uc(uc_handle, UC_Buttons);
  8167. oldbuttons = pev(id, pev_oldbuttons);
  8168. weapon = get_user_weapon(id);
  8169.  
  8170. if ((button & IN_ATTACK2) && !(oldbuttons & IN_ATTACK2))
  8171. {
  8172. if(g_arma[id] == 3 && 6) {
  8173. if (weapon == CSW_DEAGLE) {
  8174. if (!gZoom[id] && !gReloading[id]) {
  8175. gZoom[id] = true;
  8176. set_pdata_int(id, m_iFOV, 35, 5);
  8177. emit_sound(id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100);
  8178. }
  8179. else {
  8180. if (gZoom[id]) {
  8181. gZoom[id] = false;
  8182. set_pdata_int(id, m_iFOV, 90, 5);
  8183. }
  8184. }
  8185. }
  8186. }
  8187. }
  8188. return FMRES_IGNORED
  8189. }
  8190.  
  8191. public fwPlayerSpawnPost(id) if (is_user_alive(id)) gAlive[id] = true;
  8192.  
  8193. public fwPlayerKilled(victim, attacker, shouldgib) gAlive[victim] = false;
  8194.  
  8195. public fwWeaponReload(weapon)
  8196. {
  8197. if (fm_get_weapon_ammo(weapon) != 7)
  8198. {
  8199. static id;
  8200. id = get_pdata_cbase(weapon, m_iPlayer, 4);
  8201.  
  8202. set_pdata_int(id, m_iFOV, 90, 5);
  8203.  
  8204. gReloading[id] = true;
  8205. set_task(2.3, "taskWeaponReloaded", id);
  8206. }
  8207. }
  8208.  
  8209. public taskWeaponReloaded(id)
  8210. gReloading[id] = false;
  8211.  
  8212. public fwItemDeployPost(weapon)
  8213. {
  8214. static id;
  8215. id = get_pdata_cbase(weapon, m_iPlayer, 4);
  8216.  
  8217. set_pev(id, pev_viewmodel2, model_deagle_sniper);
  8218. }
  8219. public cmdParty(id) {
  8220.  
  8221. if(g_PartyData[id][In_Party])
  8222. show_party_info_menu(id)
  8223. else
  8224. show_party_menu(id)
  8225.  
  8226. return PLUGIN_HANDLED
  8227. }
  8228.  
  8229. public show_party_menu(id) {
  8230.  
  8231. new iMenu = menu_create("|BB[i-e]| \rMenu Party:","party_menu"), BlockParty[50]
  8232.  
  8233. menu_additem(iMenu, "\yCrear Party", "0")
  8234.  
  8235. formatex(BlockParty, charsmax(BlockParty), "\yBloquear Invitaciones De Party: \w%s",g_PartyData[id][Block_Party] ? "Si" : "No")
  8236.  
  8237. menu_additem(iMenu, BlockParty, "1")
  8238.  
  8239. menu_setprop(iMenu, MPROP_EXITNAME, "Salir")
  8240. menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL)
  8241.  
  8242. menu_display(id, iMenu, 0)
  8243. }
  8244.  
  8245. public show_party_info_menu(id) {
  8246.  
  8247. new iMenu = menu_create("|BB[i-e]| \rMenu Party:","party_info_menu")
  8248.  
  8249. menu_additem(iMenu, "Agregar Integrante", .callback = g_MenuCallback[MASTER])
  8250. menu_additem(iMenu, "Expulsar Integrande", .callback = g_MenuCallback[MASTER])
  8251. menu_additem(iMenu, "Destruir Party", .callback = g_MenuCallback[MASTER])
  8252. menu_additem(iMenu, "Salir del Party", .callback = g_MenuCallback[USER])
  8253.  
  8254. menu_setprop(iMenu, MPROP_EXITNAME, "Salir")
  8255. menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL)
  8256.  
  8257. menu_display(id, iMenu)
  8258. }
  8259.  
  8260. public show_party_add_menu(id) {
  8261.  
  8262. new iMenu = menu_create(g_PartyData[id][In_Party] ? "\rAgregar Integrante:" : "\rCrear Party:", "party_create_menu"), Poss[3], Name[32]
  8263.  
  8264. for(new i = 1; i <= g_maxplayers; i++) {
  8265.  
  8266. if(!is_available_to_party(i) || id == i)
  8267. continue;
  8268.  
  8269. get_user_name(i, Name, charsmax(Name))
  8270. num_to_str(i, Poss, charsmax(Poss))
  8271. menu_additem(iMenu, Name, Poss)
  8272. }
  8273.  
  8274. menu_setprop(iMenu, MPROP_EXITNAME, "Salir")
  8275. menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL)
  8276.  
  8277. menu_display(id, iMenu)
  8278. }
  8279.  
  8280. public show_party_kick_menu(id) {
  8281.  
  8282. new iMenu = menu_create("\rKick Party Menu:","party_kick_menu"), Players[32], Poss[3], user
  8283.  
  8284. get_party_index(id, Players)
  8285.  
  8286. for(new i; i < g_PartyData[id][Amount_In_Party]; i++) {
  8287. user = Players[i]
  8288. num_to_str(user, Poss, charsmax(Poss))
  8289. menu_additem(iMenu, g_PartyData[user][UserName], Poss)
  8290. }
  8291.  
  8292. menu_setprop(iMenu, MPROP_EXITNAME, "Salir")
  8293.  
  8294. menu_display(id, iMenu)
  8295. }
  8296.  
  8297. public show_party_invite_menu(id2, MasterId) {
  8298.  
  8299. new MenuTitle[128], iMenu, Str_MasterId[3]
  8300.  
  8301. set_player_party_name(MasterId)
  8302. set_player_party_name(id2)
  8303.  
  8304. client_print(MasterId, print_chat, "%s Solicitud enviada a %s", TAG, g_PartyData[id2][UserName])
  8305.  
  8306. formatex(MenuTitle, charsmax(MenuTitle), "%s Te a enviado una solicitud para que te unas a su %s Party", g_PartyData[MasterId][UserName], g_PartyData[MasterId][In_Party] ? "unirte al" : "crear un")
  8307.  
  8308. new UserTaskArgs[3]
  8309.  
  8310. UserTaskArgs[0] = iMenu = menu_create( MenuTitle , "party_invite_menu")
  8311. UserTaskArgs[1] = MasterId
  8312.  
  8313. num_to_str(MasterId, Str_MasterId, charsmax(Str_MasterId))
  8314.  
  8315. menu_additem( iMenu , "Aceptar", Str_MasterId)
  8316. menu_additem( iMenu , "Rechazar", Str_MasterId)
  8317.  
  8318. if(is_user_bot(id2) && get_pcvar_num(cvar_allow_bots)) {
  8319. party_invite_menu(id2, iMenu, 0)
  8320. return
  8321. }
  8322.  
  8323. menu_setprop(iMenu, MPROP_EXIT, MEXIT_NEVER)
  8324.  
  8325. menu_display(id2, iMenu)
  8326.  
  8327. remove_task_acept(id2)
  8328.  
  8329. set_task(get_pcvar_float(cvar_time_acept), "Time_Acept", id2+TASK_ACEPT, UserTaskArgs, 2)
  8330. }
  8331.  
  8332.  
  8333. public party_menu(id, menu, item) {
  8334.  
  8335. if(item == MENU_EXIT) {
  8336. menu_destroy(menu)
  8337. return
  8338. }
  8339.  
  8340. if(item) {
  8341. g_PartyData[id][Block_Party] = g_PartyData[id][Block_Party] ? false : true
  8342. show_party_menu(id)
  8343. }
  8344. else
  8345. show_party_add_menu(id)
  8346.  
  8347. menu_destroy(menu)
  8348.  
  8349. }
  8350.  
  8351. public party_create_menu(id, menu, item) {
  8352.  
  8353. if(item == MENU_EXIT) {
  8354. menu_destroy(menu)
  8355. return
  8356. }
  8357.  
  8358. new iKey[6], iAccess, iCallback, id2
  8359.  
  8360. menu_item_getinfo(menu, item, iAccess, iKey, charsmax(iKey), _, _, iCallback)
  8361.  
  8362. id2 = str_to_num(iKey)
  8363.  
  8364. if(!is_available_to_party(id2))
  8365. return
  8366.  
  8367. show_party_invite_menu(id2, id)
  8368.  
  8369. menu_destroy(menu)
  8370. }
  8371.  
  8372. public party_invite_menu(id, menu, item) {
  8373.  
  8374. if(item == MENU_EXIT) {
  8375. menu_destroy(menu)
  8376. remove_task_acept(id)
  8377. return
  8378. }
  8379.  
  8380. new iKey[6], iAccess, iCallback, id_master
  8381.  
  8382. menu_item_getinfo(menu, item, iAccess, iKey, charsmax(iKey), _, _, iCallback)
  8383.  
  8384. id_master = str_to_num(iKey)
  8385.  
  8386. switch(item) {
  8387. case 0: {
  8388.  
  8389. if(!g_PartyData[id_master][In_Party]) {
  8390. create_party(id_master, id)
  8391. set_task_party_hud(id_master)
  8392. set_task_party_hud(id)
  8393. }
  8394. else {
  8395. if(g_PartyData[id_master][Amount_In_Party] == get_pcvar_num(cvar_max_players)) {
  8396.  
  8397. client_print(id, print_chat, "%s Ya se alcanzo el numero maximo de integrantes en la party", TAG)
  8398. client_print(id_master, print_chat, "%s Ya alcanzaste el numero maximo de integrantes en la party", TAG)
  8399.  
  8400. remove_task_acept(id)
  8401.  
  8402. menu_destroy(menu)
  8403. return
  8404. }
  8405.  
  8406. add_party_user(id_master, id)
  8407. set_task_party_hud(id)
  8408. }
  8409.  
  8410. client_print(id_master, print_chat, "%s %s fue agregado al Party", TAG, g_PartyData[id][UserName])
  8411. }
  8412. case 1: client_print(id_master, print_chat, "%s %s cancelo la invitacion de Party", TAG, g_PartyData[id][UserName])
  8413. }
  8414.  
  8415. remove_task_acept(id)
  8416.  
  8417. menu_destroy(menu)
  8418. }
  8419.  
  8420. public party_kick_menu(id, menu, item) {
  8421.  
  8422. if(item == MENU_EXIT) {
  8423. menu_destroy(menu)
  8424. return
  8425. }
  8426.  
  8427. new iKey[6], iAccess, iCallback, id2
  8428.  
  8429. menu_item_getinfo(menu, item, iAccess, iKey, charsmax(iKey), _, _, iCallback)
  8430.  
  8431. id2 = str_to_num(iKey)
  8432.  
  8433. if(is_user_connected(id2))
  8434. g_PartyData[id][Amount_In_Party] == 2 ? destoy_party(id) : remove_party_user(id2)
  8435.  
  8436. menu_destroy(menu)
  8437. }
  8438.  
  8439. public party_info_menu(id, menu,item) {
  8440.  
  8441. if(item == MENU_EXIT) {
  8442. menu_destroy(menu)
  8443. return
  8444. }
  8445.  
  8446. switch(item) {
  8447. case 0: {
  8448. if(g_PartyData[id][Amount_In_Party] < get_pcvar_num(cvar_max_players))
  8449. show_party_add_menu(id)
  8450. else
  8451. client_print(id, print_chat, "%s Ya alcanzaste el numero maximo de integrantes en la party", TAG)
  8452. }
  8453. case 1: show_party_kick_menu(id)
  8454. case 2: destoy_party(id)
  8455. case 3: remove_party_user(id)
  8456. }
  8457.  
  8458. menu_destroy(menu)
  8459. }
  8460.  
  8461. public PartyHud(taskid) {
  8462.  
  8463. static id
  8464. id = ID_HUD
  8465.  
  8466. if(!is_user_connected(id)) {
  8467. remove_task(taskid)
  8468. return
  8469. }
  8470.  
  8471. static CountParty, PartyMsg[256], Players[32], id2
  8472.  
  8473. CountParty = 0
  8474. PartyMsg[0] = 0
  8475.  
  8476. get_party_index(id, Players)
  8477. for(new i; i < g_PartyData[id][Amount_In_Party]; i++) {
  8478.  
  8479. id2 = Players[i]
  8480.  
  8481. if(CountParty)
  8482. add(PartyMsg, charsmax(PartyMsg), "^n")
  8483.  
  8484. format(PartyMsg, charsmax(PartyMsg), "%s%s", strlen(PartyMsg) ? PartyMsg : "^t^t^tMiembros del Party^n", g_PartyData[id2][UserName])
  8485. CountParty++
  8486. }
  8487.  
  8488. set_hudmessage(255, 255, 255, 0.75, 0.34, 0, 6.0, 1.0);
  8489. ShowSyncHudMsg(id, party_hud, PartyMsg)
  8490. }
  8491. public Time_Acept(UserTaskArgs[], taskid) {
  8492.  
  8493. taskid -= TASK_ACEPT;
  8494.  
  8495. if(!g_PartyData[taskid][In_Party]) {
  8496.  
  8497. client_print(UserTaskArgs[1], print_chat, "%s %s cancelo la invitacion de party", TAG, g_PartyData[taskid][UserName])
  8498. menu_destroy(UserTaskArgs[0])
  8499. show_menu(taskid, 0, "^n", 1)
  8500. }
  8501. }
  8502.  
  8503. stock create_party(master, guest) {
  8504.  
  8505. set_party_member(master, master)
  8506. set_party_member(master, guest)
  8507. set_party_member(guest, master)
  8508. set_party_member(guest, guest)
  8509.  
  8510. set_party_vars(master, Start_Amount)
  8511. set_party_vars(guest, ++g_PartyData[master][Amount_In_Party])
  8512. }
  8513.  
  8514. stock add_party_user(master, guest) {
  8515.  
  8516. new Players[32], member, amount = g_PartyData[master][Amount_In_Party]
  8517.  
  8518. get_party_index(master, Players)
  8519.  
  8520. for(new i; i < amount; i++) {
  8521.  
  8522. member = Players[i]
  8523.  
  8524. set_party_member(guest, member)
  8525. set_party_member(member, guest)
  8526. g_PartyData[member][Amount_In_Party]++
  8527.  
  8528. }
  8529.  
  8530. set_party_member(guest, guest)
  8531. set_party_vars(guest, amount+1)
  8532. }
  8533.  
  8534. stock set_party_member(id, id2)
  8535. ArrayPushCell(Party_Ids[id], id2)
  8536.  
  8537. stock set_party_vars(id, amount) {
  8538.  
  8539. g_PartyData[id][In_Party] = true
  8540. g_PartyData[id][Position] = amount-1
  8541. g_PartyData[id][Amount_In_Party] = amount
  8542.  
  8543. }
  8544.  
  8545. stock destoy_party(id) {
  8546.  
  8547. new Players[32], id2, Amount = g_PartyData[id][Amount_In_Party]
  8548. get_party_index(id, Players)
  8549.  
  8550. for(new i; i < Amount; i++) {
  8551. id2 = Players[i]
  8552. clear_party_user(id2)
  8553. client_print(id2, print_chat, "%s La party fue destruida OMG", TAG)
  8554.  
  8555. }
  8556. }
  8557.  
  8558. stock remove_party_user(user) {
  8559.  
  8560. new Players[32], id, Amount = g_PartyData[user][Amount_In_Party]
  8561.  
  8562. get_party_index(user, Players)
  8563.  
  8564. clear_party_user(user)
  8565.  
  8566. for(new i; i < Amount; i++) {
  8567.  
  8568. id = Players[i]
  8569.  
  8570. if(id != user) {
  8571.  
  8572. ArrayClear(Party_Ids[id])
  8573.  
  8574. for(new z; z < Amount; z++)
  8575. if(Players[z] != user)
  8576. set_party_member(id, Players[z])
  8577.  
  8578. g_PartyData[id][Position] = i
  8579. g_PartyData[id][Amount_In_Party] = Amount-1
  8580. client_print(id, print_chat, "%s %s salio del party te a dejado por otro :c", TAG, g_PartyData[user][UserName])
  8581. }
  8582. }
  8583. }
  8584.  
  8585. stock clear_party_user(id) {
  8586.  
  8587. ArrayClear(Party_Ids[id])
  8588. g_PartyData[id][In_Party] = false
  8589. g_PartyData[id][Position] = NONE
  8590. g_PartyData[id][Amount_In_Party] = NONE
  8591. remove_task_party_hud(id)
  8592.  
  8593. }
  8594.  
  8595. stock set_task_party_hud(id)
  8596. set_task(1.0, "PartyHud", id+TASK_HUD, _, _, "b")
  8597.  
  8598. stock remove_task_party_hud(id)
  8599. remove_task(id+TASK_HUD)
  8600.  
  8601. stock remove_task_acept(id)
  8602. if(task_exists(id+TASK_ACEPT))
  8603. remove_task(id+TASK_ACEPT)
  8604.  
  8605.  
  8606. stock set_player_party_name(id) {
  8607.  
  8608. if(g_PartyData[id][UserName][0])
  8609. return 0
  8610.  
  8611. get_user_name(id, g_PartyData[id][UserName], charsmax(g_PartyData[][UserName]))
  8612.  
  8613. return 1
  8614. }
  8615.  
  8616. stock is_available_to_party(id) {
  8617.  
  8618. if(!is_user_connected(id) || g_PartyData[id][In_Party] || g_PartyData[id][Block_Party])
  8619. return false
  8620.  
  8621. return true
  8622. }
  8623.  
  8624. stock get_party_index(id, players[]) {
  8625.  
  8626. for(new i; i < g_PartyData[id][Amount_In_Party]; i++)
  8627. players[i] = ArrayGetCell(Party_Ids[id], i)
  8628.  
  8629. return players[0] ? 1 : 0
  8630. }
  8631.  
  8632. public check_master(id)
  8633. return g_PartyData[id][Position] ? ITEM_DISABLED : ITEM_ENABLED
  8634.  
  8635. public check_user(id)
  8636. return g_PartyData[id][Position] ? ITEM_ENABLED : ITEM_DISABLED
  8637.  
  8638. public cmdSayTeam(id) {
  8639.  
  8640. static Text[192]
  8641. read_args(Text, charsmax(Text))
  8642. remove_quotes(Text)
  8643.  
  8644. replace_all(Text, charsmax(Text), "%", "")
  8645.  
  8646. if(!ValidMessage(Text) || !g_PartyData[id][In_Party]) {
  8647.  
  8648. client_print(id, print_chat,"%s Tu Mensaje es invalido o no te encuentras en un Party", TAG)
  8649. return PLUGIN_HANDLED;
  8650. }
  8651.  
  8652. static Message[192], Players[32], id2, Amount
  8653. Amount = g_PartyData[id][Amount_In_Party]
  8654.  
  8655. get_party_index(id, Players)
  8656.  
  8657. formatex(Message, charsmax(Message), "^x04%s ^x03%s^x01 : %s", TAG, g_PartyData[id][UserName], Text)
  8658.  
  8659. for(new i; i < Amount; i++) {
  8660.  
  8661. id2 = Players[i]
  8662.  
  8663. message_begin(MSG_ONE_UNRELIABLE, g_MsgSayTexts, _, id2)
  8664. write_byte(id)
  8665. write_string(Message)
  8666. message_end()
  8667. }
  8668.  
  8669. return PLUGIN_HANDLED;
  8670. }
  8671.  
  8672. ValidMessage(text[]) {
  8673. static len, i
  8674. len = strlen(text)
  8675.  
  8676. if(!len)
  8677. return false
  8678.  
  8679. for(i = 0; i < len; i++) {
  8680. if( text[i] != ' ' ) {
  8681. return true
  8682. }
  8683. }
  8684.  
  8685. return false
  8686. }
  8687.  
  8688. // cs_to_fm
  8689. stock fm_get_weapon_ammo(weapon)
  8690. return get_pdata_int(weapon, m_iClipAmmo, is_linux_server() ? m_iExtraOffsetLinux : m_iExtraOffsetWindows);
  8691. stock change_name(const id, const string[])
  8692. {
  8693. static szName[32],szData[64];get_user_name(id,szName,31)
  8694.  
  8695. if(equal(szName,string))
  8696. return 0
  8697.  
  8698. if(fvault_get_data(g_Vault,string,szData,63))
  8699. return 0
  8700.  
  8701. g_CanChange = 1;set_user_info(id,"name",string)
  8702. g_CanChange = 0
  8703.  
  8704. fvault_remove_key(g_Vault,szName)
  8705.  
  8706. set_task(1.0,"fvault_save",id)
  8707.  
  8708. g_AlredyChanged[id][NAME] = 1
  8709.  
  8710. return 1
  8711. }
  8712.  
  8713. stock change_team(const id)
  8714. {
  8715. engclient_cmd(id,"jointeam","5")
  8716.  
  8717. engclient_cmd(id,"joinclass","5")
  8718. }
  8719.  
  8720. stock show_msg(const id, const string[])
  8721. {
  8722. set_hudmessage(0, 255, 0, 0.15, 0.10, 1, 2.0, 10.0)
  8723. ShowSyncHudMsg(id,gMsg,"%s",string)
  8724. }
  8725. GuardarDatos(id) {
  8726. new gName[32]
  8727. get_user_name(id, gName, charsmax(gName))
  8728. formatex(szKey, charsmax(szKey), "database") // No cambiar
  8729.  
  8730. formatex(szData, charsmax(szData), "%d %d %d %d %d %d %d %d %d", g_exp[id], g_level[id], g_reset[id], g_bbpacks[id], g_puntos[id], g_mejoras[id][0], g_mejoras[id][1], g_mejoras[id][2], g_mejoras[id][3])
  8731.  
  8732. nfv_set_data(VaultFile, szKey, gName, szData)
  8733. }
  8734.  
  8735. CargarDatos(id) {
  8736. new gName[32], g_Load_Exp[25], g_Load_Level[25], g_Load_Reset[25], g_Load_BBPacks[25], g_Load_Puntos[25], g_Load_Mejora1[25], g_Load_Mejora2[25], g_Load_Mejora3[25], g_Load_Mejora4[25]
  8737.  
  8738. get_user_name(id, gName, charsmax(gName))
  8739.  
  8740. formatex(szKey, charsmax(szKey), "database") // No cambiar
  8741.  
  8742. if(!nfv_get_data(VaultFile, szKey, gName, szData, sizeof(szData) - 1)) return
  8743.  
  8744. parse(szData, g_Load_Exp, charsmax(g_Load_Exp), g_Load_Level, charsmax(g_Load_Level), g_Load_Reset, charsmax(g_Load_Reset), g_Load_BBPacks, charsmax(g_Load_BBPacks), g_Load_Puntos, charsmax(g_Load_Puntos), g_Load_Mejora1, charsmax(g_Load_Mejora1), g_Load_Mejora2, charsmax(g_Load_Mejora2), g_Load_Mejora3, charsmax(g_Load_Mejora3), g_Load_Mejora4, charsmax(g_Load_Mejora4))
  8745.  
  8746. g_exp[id] = str_to_num(g_Load_Exp)
  8747. g_level[id] = str_to_num(g_Load_Level)
  8748. g_reset[id] = str_to_num(g_Load_Reset)
  8749. g_puntos[id] = str_to_num(g_Load_Puntos)
  8750. g_bbpacks[id] = str_to_num(g_Load_BBPacks)
  8751.  
  8752. g_mejoras[id][0] = str_to_num(g_Load_Mejora1)
  8753. g_mejoras[id][1] = str_to_num(g_Load_Mejora2)
  8754. g_mejoras[id][2] = str_to_num(g_Load_Mejora3)
  8755. g_mejoras[id][3] = str_to_num(g_Load_Mejora4)
  8756. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement