Advertisement
Guest User

Untitled

a guest
Dec 10th, 2019
248
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 30.93 KB | None | 0 0
  1. /* Plugin generated by AMXX-Studio */
  2.  
  3. #include < amxmodx >
  4. #include < adv_vault >
  5. #include < hamsandwich >
  6. #include < cstrike >
  7. #include < amxmisc >
  8. #include < engine >
  9. #include < fun >
  10. #include < dhudmessage >
  11. #include < fakemeta_util >
  12. #include < geoip >
  13. #include < jctf >
  14. #include < colorchat >
  15.  
  16. native cso_balrog3(id);
  17. native cso_rockguitar(id);
  18. native cso_thanatos7(id);
  19. native tienda_Paladin(id);
  20.  
  21. new g_iPlugins[][] =
  22. {
  23. "rangos | evento | otras cosas",
  24. "Cs Apure Community",
  25. "1.0"
  26. }
  27.  
  28. enum
  29. {
  30. CAMPO_RANGOS,
  31. CAMPO_FRAGS,
  32. CAMPO_DIAS,
  33. CAMPO_HORAS,
  34. CAMPO_MINUTOS,
  35. CAMPO_SEGUNDOS,
  36. CAMPO_MAX
  37. }
  38.  
  39. new const g_hours[] =
  40. {
  41. // 9 PM a 6 AM
  42. 20, 21, 22, 23, 00, 01, 02, 03, 04, 05, 06, 07, 08
  43. }
  44.  
  45. enum _:DATA
  46. {
  47. NOMBRE[33],
  48. FRAGS
  49. }
  50.  
  51. new const RANGOS[][DATA] =
  52. {
  53. { "Ninguno",1 },
  54. { "Novato", 50 },
  55. { "Principiante",250 },
  56. { "Recluta", 1000 },
  57. { "Cabo", 2500 },
  58. { "Sub-Cabo", 5000 },
  59. { "Cabo-Mayor", 10000 },
  60. { "Teniente", 15000 },
  61. { "Sub-Teniente", 30000 },
  62. { "Capitan", 50000 },
  63. { "General en Jefe", 100000 },
  64. { "Mercenario Asesino", 250000 },
  65. { "Global Sentinel", 500000 }
  66. }
  67.  
  68. enum _:DATA_TIENDA
  69. {
  70. NOMBRE[20],
  71. PRECIO,
  72. ADRENALINA,
  73. LIMIT
  74. }
  75.  
  76. new const ItemsTienda[][DATA_TIENDA] =
  77. {
  78. { "Balrog III", 15000, 80, 2},
  79. { "Rock Guitar", 16000, 100, 3},
  80. { "Thanatos VII", 14000, 100, 3},
  81. { "AK-47 Paladin", 16000, 60, 2}
  82. }
  83.  
  84. new const g_iMaps[][] = {
  85. "$2000$",
  86. "35hp_2_css",
  87. "aim_porno",
  88. "crossfire_ctf_cs",
  89. "de_crossfire",
  90. "aim_arena",
  91. "aim_ak-colk-cyber",
  92. "aim_ak-colk3",
  93. "aim_headshot",
  94. "awp_india2",
  95. "awp_india_2012",
  96. "cs_max",
  97. "de_dust",
  98. "de_dust2_2x2",
  99. "de_dust2_3x3",
  100. "de_bose",
  101. "de_c4",
  102. "fy_snow2009",
  103. "fy_snow_orange",
  104. "fy_hot_pool_day",
  105. "fy_new_pool_day2",
  106. "fy_pool_day",
  107. "fy_spring"
  108. }
  109.  
  110. new g_iRangos[33], g_iFrags[33];
  111. new g_iMaxPlayers
  112. new g_iPlayerName[33][32]
  113. new g_iPlayerAuth[33][32]
  114. new g_iPlayerIP[33][32]
  115. new g_iPlayerCountry[33][64]
  116. new g_iPlayerTime[33][4]
  117. //new g_iLast_Played[33][64];
  118. new g_iEvents[33]
  119. new g_iEventHealth[33]
  120. new g_iLimit_Items[10]
  121.  
  122. new SyncHUD, SyncHUD2
  123. new bool:g_happytime
  124. new g_currentmap[100]
  125.  
  126. new g_iVault, g_iVault2, g_iCampos[CAMPO_MAX], g_iSort
  127. new motd[1536]
  128.  
  129.  
  130. enum (+= 100)
  131. {
  132. TASK_SHOWHUD,
  133. TASK_TIME
  134. }
  135.  
  136. #define ID_SHOWHUD (taskid - TASK_SHOWHUD)
  137. #define ID_TIME (taskid - TASK_TIME)
  138.  
  139. #define is_valid_player(%0) is_user_connected(%0) || !is_user_bot(%0) || !is_user_hltv(%0)
  140.  
  141. new cvar_kill_hp, cvar_kill_hp_max, // regeneracion
  142. cvar_event_hp, cvar_event_frags_reward
  143.  
  144. public plugin_init()
  145. {
  146. register_plugin(g_iPlugins[0], g_iPlugins[1], g_iPlugins[2])
  147.  
  148. RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
  149. RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
  150. register_logevent("logevent_round_end", 2, "1=Round_End")
  151. register_forward(FM_ClientDisconnect, "fw_ClientDisconnect")
  152.  
  153. register_concmd("ctf_poner_frags", "set_frags", _, "<jugador <frags> - Poner una cantidad especifica de frag's a un jugador", 0)
  154. register_concmd("ctf_dar_frags", "set_frags", _, "<jugador> <frags> - Darle frag's a un jugador", 0)
  155. register_concmd("ctf_dar_vida", "cmd_vida", _, "<jugador> <vida> - Dar vida a un jugador", 0)
  156. register_concmd("ctf_evento", "cmd_start_event", _, "<jugador> - Comenzar un evento con X jugador.", 0)
  157. register_concmd("ctf_evento_random", "cmd_start_random_event", _, "- Comenzar un evento con un jugador al azar")
  158.  
  159. register_clcmd("say", "clcmd_say")
  160. register_clcmd("say_team", "clcmd_teamsay")
  161.  
  162. register_clcmd("say /hf", "clcmd_sayhf")
  163. register_clcmd("say /tiempo", "clcmd_saytime")
  164. register_clcmd("say /toptime", "top_time")
  165. register_clcmd("say /Apespecial", "show_special_menu")
  166. register_clcmd("radio1", "show_special_menu")
  167.  
  168. // regeneracion
  169. cvar_kill_hp = register_cvar("ctf_kill_hp", "30")
  170. cvar_kill_hp_max = register_cvar("ctf_kill_hp_max", "100")
  171. // evento
  172. cvar_event_hp = register_cvar("ctf_event_hp", "10000")
  173. cvar_event_frags_reward = register_cvar("ctf_event_frags_reward", "1000")
  174.  
  175. SyncHUD = CreateHudSyncObj();
  176. SyncHUD2 = CreateHudSyncObj();
  177. g_iMaxPlayers = get_maxplayers();
  178.  
  179. get_mapname(g_currentmap, charsmax(g_currentmap))
  180.  
  181. g_iVault = adv_vault_open("Cs-Apure-RANGOS", false)
  182. g_iCampos[CAMPO_RANGOS] = adv_vault_register_field(g_iVault, "RANGOS")
  183. g_iCampos[CAMPO_FRAGS] = adv_vault_register_field(g_iVault, "FRAGS")
  184. adv_vault_init(g_iVault)
  185.  
  186. g_iVault2 = adv_vault_open("Cs-Apure-HORAS", false)
  187. g_iCampos[CAMPO_DIAS] = adv_vault_register_field(g_iVault2, "DIAS")
  188. g_iCampos[CAMPO_HORAS] = adv_vault_register_field(g_iVault2, "HORAS")
  189. g_iCampos[CAMPO_MINUTOS] = adv_vault_register_field(g_iVault2, "MINUTOS")
  190. g_iCampos[CAMPO_SEGUNDOS] = adv_vault_register_field(g_iVault2, "SEGUNDOS")
  191. adv_vault_init(g_iVault2)
  192.  
  193. g_iSort = adv_vault_sort_create(g_iVault2, ORDER_DESC, 0, 0, g_iCampos[CAMPO_DIAS], g_iCampos[CAMPO_HORAS], g_iCampos[CAMPO_MINUTOS], g_iCampos[CAMPO_SEGUNDOS])
  194. }
  195.  
  196. public plugin_cfg()
  197. {
  198. set_task(0.1, "happy_hour")
  199. }
  200.  
  201. public plugin_end()
  202. {
  203. static id
  204. for (id = 1; id < g_iMaxPlayers; id++)
  205. {
  206. // Player disconnected?
  207. if (!is_user_connected(id))
  208. return;
  209.  
  210. GuardarR(id)
  211. GuardarT(id)
  212. }
  213. }
  214.  
  215. public logevent_round_end() {
  216. static id
  217. for (id = 1; id < g_iMaxPlayers ; id++)
  218. {
  219. // Player disconnected?
  220. if (!is_user_connected(id))
  221. return;
  222.  
  223. g_iEvents[id] = false
  224.  
  225. fm_set_rendering(id)
  226.  
  227. GuardarR(id)
  228. GuardarT(id)
  229. adv_vault_sort_update(g_iVault, g_iSort)
  230. }
  231. }
  232.  
  233. public client_putinserver(id)
  234. {
  235. get_user_name(id, g_iPlayerName[id], charsmax(g_iPlayerName[]))
  236.  
  237. get_user_authid(id, g_iPlayerAuth[id], charsmax(g_iPlayerAuth[]))
  238.  
  239. reset_vars(id, 1)
  240.  
  241. CargarR(id)
  242. CargarT(id)
  243.  
  244. client_info(id)
  245.  
  246. new steam = (contain(g_iPlayerAuth[id], "STEAM_0:1:") != -1 || contain(g_iPlayerAuth[id], "STEAM_0:0:") != -1)
  247.  
  248. if(g_iFrags[id] == 0)
  249. {
  250. ColorChat(0, TEAM_COLOR, "^4Cs-Apure | ^1El Jugador:^3 %s^1 Se Ha Conectado Desde:^4 %s^1. ¡Bienvenido A^4 Cs-Apure^1! [^4%s^1]",
  251. g_iPlayerName[id], g_iPlayerCountry[id], steam ? "STEAM" : "ID LAN")
  252. }
  253. else
  254. {
  255. ColorChat(0, TEAM_COLOR, "^4Cs-Apure | ^1El Jugador:^3 %s^1 Se Ha Conectado Desde:^4 %s^1. (Rango:^4 %s^1) [^4%s^1]", g_iPlayerName[id], g_iPlayerCountry[id], RANGOS[g_iRangos[id]][NOMBRE], steam ? "STEAM" : "ID LAN")
  256. }
  257.  
  258. if (!is_user_bot(id))
  259. {
  260. set_task(1.0, "check_time", id+TASK_TIME, _, _, "b")
  261. set_task(1.0, "ShowHUD", id+TASK_SHOWHUD, _, _, "b");
  262. }
  263. }
  264.  
  265. public client_info(id)
  266. {
  267. get_user_ip(id, g_iPlayerIP[id], charsmax(g_iPlayerIP[]), 1)
  268.  
  269. geoip_country(g_iPlayerIP[id], g_iPlayerCountry[id])
  270.  
  271. if (equal(g_iPlayerCountry[id], "error"))
  272. {
  273. if (contain(g_iPlayerIP[id],"192.168.") == 0 || equal(g_iPlayerIP[id],"127.0.0.1") || contain(g_iPlayerIP[id],"10.") == 0 || contain(g_iPlayerIP[id],"172.") == 0)
  274. {
  275. g_iPlayerCountry[id] = "LAN"
  276. }
  277. if (equal(g_iPlayerIP[id],"loopback"))
  278. {
  279. g_iPlayerCountry[id] = "ListenServer User"
  280. }
  281. else
  282. {
  283. g_iPlayerCountry[id] = "Pais desconocido"
  284. }
  285. }
  286. }
  287.  
  288. public reset_vars(id, resetall)
  289. {
  290. if(resetall)
  291. {
  292. g_iRangos[id] = 0
  293. g_iFrags[id] = 0
  294. g_iEvents[id] = false
  295. g_iEventHealth[id] = false
  296. for(new i = 0; i < 4; i++) g_iPlayerTime[id][i] = 0
  297. }
  298. }
  299.  
  300. public fw_ClientDisconnect(id)
  301. {
  302. GuardarR(id)
  303. GuardarT(id)
  304.  
  305. g_iEvents[id] = false
  306. g_iEventHealth[id] = false
  307.  
  308. remove_task(id+TASK_SHOWHUD)
  309. remove_task(id+TASK_TIME)
  310.  
  311. fm_set_rendering(id)
  312.  
  313. if(task_exists(id))
  314. remove_task(id)
  315. }
  316.  
  317. public ShowHUD(taskid)
  318. {
  319. new id = ID_SHOWHUD;
  320.  
  321. if(!is_user_alive(id))
  322. {
  323. id = pev(id, pev_iuser2);
  324. }
  325.  
  326. if(id != ID_SHOWHUD)
  327. {
  328. set_hudmessage(255, 130, 0, 0.02, 0.15, 0, 6.0, 1.0)
  329. ShowSyncHudMsg(ID_SHOWHUD, SyncHUD2, "| Nombre: %s |^n| Vida: %d |^n| Chaleco: %d |^n| Adrenalina: %d/100 |^n| Rango: %s |^n| Frags: %s |^n| Desde: %s |", g_iPlayerName[id], pev(id, pev_health), pev(id, pev_armorvalue), jctf_get_adrenaline(id), RANGOS[g_iRangos[id]][NOMBRE], add_point(g_iFrags[id]), g_iPlayerCountry[id])
  330. }
  331. else
  332. {
  333. set_hudmessage(255, 130, 0, 0.00, 0.15, 0, 6.0, 1.0)
  334. ShowSyncHudMsg(ID_SHOWHUD, SyncHUD, "| Vida: %d |^n| Chaleco: %d |^n| Adrenalina: %d/100|^n| Rango: %s |^n| Frags: %s/%s |^n| Hora Furia: %s |", pev(ID_SHOWHUD, pev_health), pev(ID_SHOWHUD, pev_armorvalue), jctf_get_adrenaline(ID_SHOWHUD), RANGOS[g_iRangos[ID_SHOWHUD]][NOMBRE], add_point(g_iFrags[ID_SHOWHUD]), add_point(RANGOS[g_iRangos[ID_SHOWHUD]][FRAGS]), g_happytime == true ? "ON" : "OFF")
  335. }
  336. }
  337.  
  338. public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
  339. {
  340. if (!is_user_connected(attacker))
  341. return HAM_IGNORED;
  342.  
  343. if (g_iEvents[attacker] && g_iEvents[victim])
  344. return HAM_IGNORED;
  345.  
  346. if(g_iEvents[victim] && (get_user_team(victim) == get_user_team(attacker)))
  347. return HAM_IGNORED;
  348.  
  349. return HAM_IGNORED; // stop here
  350. }
  351.  
  352. public fw_PlayerKilled(victim, attacker, shouldgib)
  353. {
  354. // Player disconnected?
  355. if(!is_user_connected(victim) || !is_user_connected(attacker))
  356. return;
  357.  
  358. if(attacker == victim)
  359. return;
  360.  
  361. //admin
  362. if(is_user_admin(attacker))
  363. {
  364. // activado modo furia
  365. if(g_happytime)
  366. {
  367. // por ser admin 2 + x2 del furia es 4 :u
  368. set_pev(attacker, pev_frags, float(pev(attacker, pev_frags)) + 3)
  369. g_iFrags[attacker] += 4
  370. }
  371. // desactivado modo furia
  372. else
  373. {
  374. // por ser admin 2
  375. set_pev(attacker, pev_frags, float(pev(attacker, pev_frags)) + 1)
  376. g_iFrags[attacker] += 2
  377. }
  378. }
  379. // no admin
  380. else
  381. {
  382. if(g_happytime)
  383. {
  384. // por usuario 1 + x2 del furia es 2 :u
  385. set_pev(attacker, pev_frags, float(pev(attacker, pev_frags)) + 1)
  386. g_iFrags[attacker] += 2
  387. }
  388. else
  389. {
  390. g_iFrags[attacker]++
  391. }
  392. }
  393.  
  394. if(is_user_admin(victim))
  395. {
  396. if(g_happytime)
  397. {
  398. g_iFrags[attacker] += 4
  399. ColorChat(attacker, TEAM_COLOR, "^4Cs-Apure |^1 Ganas^3 '+4 Frags'^1 Por Matar Al Admin:^4 %s^1 En La^3 Hora Furia.", g_iPlayerName[victim])
  400. }
  401. else
  402. {
  403. g_iFrags[attacker] += 2
  404. ColorChat(attacker, TEAM_COLOR, "^4Cs-Apure |^1 Ganas^3 '+2 Frags'^1 Por Matar Al Admin:^4 %s^1.", g_iPlayerName[victim])
  405. }
  406. }
  407.  
  408. if (g_iEvents[victim])
  409. {
  410. g_iFrags[attacker] += get_pcvar_num(cvar_event_frags_reward)
  411.  
  412. ColorChat(attacker, TEAM_COLOR, "^4Cs-Apure |^1 ¡^3En Hora Buena^1! Has Ganado:^3 '+%s Frags'^1 Por Ganar El ^4Evento^1.", add_point(get_pcvar_num(cvar_event_frags_reward)))
  413. ColorChat(0, TEAM_COLOR, "^4Cs-Apure |^1 El Ganador Del Evento Es:^4 %s^1 Gano:^3 '+%s Frags'^1.", g_iPlayerName[attacker], add_point(get_pcvar_num(cvar_event_frags_reward)))
  414. ColorChat(0, TEAM_COLOR, "^4Cs-Apure |^1 El Ganador Del Evento Es:^4 %s^1 Gano:^3 '+%s Frags'^1.", g_iPlayerName[attacker], add_point(get_pcvar_num(cvar_event_frags_reward)))
  415. ColorChat(0, TEAM_COLOR, "^4Cs-Apure |^1 El Ganador Del Evento Es:^4 %s^1 Gano:^3 '+%s Frags'^1.", g_iPlayerName[attacker], add_point(get_pcvar_num(cvar_event_frags_reward)))
  416.  
  417. set_hudmessage(255, 255, 0, -1.0, -1.0, 0, 0.0, 3.0, 5.0, 2.0)
  418. show_hudmessage(0, "El Ganador Del Evento Es: %s^nSu Ganancia: '+%s Frags'.", g_iPlayerName[attacker], add_point(get_pcvar_num(cvar_event_frags_reward)))
  419.  
  420. g_iEvents[victim] = false
  421.  
  422. SetHamParamInteger(3, 2)
  423. }
  424.  
  425. g_iEventHealth[victim] = false
  426.  
  427. check_range(attacker)
  428. GuardarR(attacker)
  429.  
  430. if(!g_iEvents[attacker] && !g_iEventHealth[attacker])
  431. {
  432. new g_iAttackerHp = get_user_health(attacker)
  433.  
  434. g_iAttackerHp += get_pcvar_num(cvar_kill_hp)
  435.  
  436. if (g_iAttackerHp >= get_pcvar_num(cvar_kill_hp_max))
  437. g_iAttackerHp = get_pcvar_num(cvar_kill_hp_max)
  438.  
  439. set_user_health(attacker, g_iAttackerHp)
  440.  
  441. set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
  442. show_hudmessage(attacker, "¡Obtienes +%d De Vida!", get_pcvar_num(cvar_kill_hp))
  443.  
  444. show_screenfade_kill(attacker, 0, 255, 0)
  445. }
  446.  
  447. fm_set_rendering(victim)
  448. }
  449.  
  450. public check_range(id)
  451. {
  452. new g_rangeup = false
  453.  
  454. while (g_iFrags[id] >= RANGOS[g_iRangos[id]][FRAGS])
  455. {
  456. g_iRangos[id]++
  457. g_rangeup = true
  458. }
  459.  
  460. if (g_rangeup)
  461. {
  462. ColorChat(id, TEAM_COLOR, "^4Cs-Apure |^1 ¡^3En Hora Buena^1! Has Subido De Rango: ^4%s^1.", RANGOS[g_iRangos[id]][NOMBRE])
  463. ColorChat(id, TEAM_COLOR, "^4Cs-Apure |^1 ¡^3En Hora Buena^1! Has Subido De Rango: ^4%s^1.", RANGOS[g_iRangos[id]][NOMBRE])
  464. ColorChat(id, TEAM_COLOR, "^4Cs-Apure |^1 ¡^3En Hora Buena^1! Has Subido De Rango: ^4%s^1.", RANGOS[g_iRangos[id]][NOMBRE])
  465.  
  466. g_rangeup = false
  467. }
  468. }
  469.  
  470. public check_time(taskid)
  471. {
  472. // Seconds and minutes
  473. if (g_iPlayerTime[ID_TIME][3] > 59)
  474. {
  475. g_iPlayerTime[ID_TIME][3] = 0
  476. g_iPlayerTime[ID_TIME][2]++
  477. }
  478. else
  479. g_iPlayerTime[ID_TIME][3]++
  480.  
  481. // Hours
  482. if (g_iPlayerTime[ID_TIME][2] > 59)
  483. {
  484. g_iPlayerTime[ID_TIME][2] = 0
  485. g_iPlayerTime[ID_TIME][1]++
  486. }
  487.  
  488. // Days
  489. if (g_iPlayerTime[ID_TIME][1] > 23)
  490. {
  491. g_iPlayerTime[ID_TIME][1] = 0
  492. g_iPlayerTime[ID_TIME][0]++
  493. }
  494.  
  495.  
  496. GuardarT(ID_TIME)
  497. }
  498.  
  499. public clcmd_say(index)
  500. {
  501. new id = index
  502. static said[191]
  503. read_args(said, charsmax(said))
  504. remove_quotes(said)
  505.  
  506. if (!is_user_connected(id))
  507. return PLUGIN_HANDLED;
  508.  
  509. if (!ValidMessage(said, 1))
  510. return PLUGIN_CONTINUE;
  511.  
  512. static color[11]
  513. get_user_team(index, color, charsmax(color))
  514.  
  515. new g_iFlags = get_user_flags(id)
  516.  
  517. if(is_user_admin(index))
  518. {
  519. format(said, charsmax(said), "%s^x03[^x04*%s*^x03][^x04%s^x03] %s^01:^x04 %s",
  520. (cs_get_user_team(index) == CS_TEAM_SPECTATOR ? "^x01*SPEC* " : is_user_alive(index) ? "" : "^x01*DEAD* "), RANGOS[g_iRangos[id]][NOMBRE], g_iFlags & ADMIN_RCON ? "Fundador" : g_iFlags & ADMIN_LEVEL_B ? "Staff" : g_iFlags & ADMIN_LEVEL_C ? "Girl" : g_iFlags & ADMIN_LEVEL_F ? "Encargado" : g_iFlags & ADMIN_LEVEL_H ? "Socio" : g_iFlags & ADMIN_KICK ? "Admin" : "Vip", g_iPlayerName[index], said)
  521. }
  522. else
  523. {
  524. format(said, charsmax(said), "%s^x03[^x04*%s*^x03] %s^01: %s", (cs_get_user_team(index) == CS_TEAM_SPECTATOR ? "^x01*SPEC* " : is_user_alive(index) ? "" : "^x01*DEAD* "), RANGOS[g_iRangos[id]][NOMBRE], g_iPlayerName[index], said)
  525. }
  526.  
  527. static i, team[11];
  528.  
  529. for (i = 1; i <= g_iMaxPlayers; i++)
  530. {
  531. // Player disconnected?
  532. if (!is_user_connected(i)) continue;
  533.  
  534. get_user_team(i, team, charsmax(team))
  535. changeTeamInfo(i, color)
  536. writeMessage(i, said)
  537. changeTeamInfo(i, team)
  538. }
  539.  
  540. return PLUGIN_HANDLED_MAIN;
  541. }
  542.  
  543. public clcmd_teamsay(index)
  544. {
  545. new id = index
  546. static said[191]
  547. read_args(said, charsmax(said))
  548. remove_quotes(said)
  549.  
  550. if (!ValidMessage(said, 1))
  551. return PLUGIN_CONTINUE;
  552.  
  553. static playerTeam, teamname[19];
  554. playerTeam = get_user_team(index);
  555.  
  556. new g_iFlags = get_user_flags(id)
  557.  
  558.  
  559. switch (playerTeam)
  560. {
  561. case 1: formatex( teamname, 18, " ^x01(*Rojos*) ");
  562. case 2: formatex( teamname, 18, " ^x01(*Azules*) ");
  563. default: formatex( teamname, 18, " ^x01(*Espectador*) ");
  564. }
  565.  
  566. static color[11]
  567.  
  568. if(is_user_admin(index))
  569. {
  570. get_user_team (index, color, charsmax(color));
  571. format(said, charsmax(said), "%s%s ^x03[^x04*%s*^x03][^x04%s^x03] %s^01:^x04 %s",
  572. is_user_alive( index ) ? "^x01" : "^x01*DEAD* ", teamname, RANGOS[g_iRangos[id]][NOMBRE], g_iFlags & ADMIN_RCON ? "Fundador" : g_iFlags & ADMIN_LEVEL_B ? "Staff" : g_iFlags & ADMIN_LEVEL_C ? "Girl" : g_iFlags & ADMIN_LEVEL_F ? "Encargado" : g_iFlags & ADMIN_LEVEL_H ? "Socio" : g_iFlags & ADMIN_KICK ? "Admin" : "Vip", g_iPlayerName[index], said)
  573. }
  574. else
  575. {
  576. get_user_team (index, color, charsmax(color));
  577. format(said, charsmax(said), "%s%s^x03[^x04*%s*^x03] %s^01: %s",
  578. is_user_alive( index ) ? "^x01" : "^x01*DEAD* ", teamname, RANGOS[g_iRangos[id]][NOMBRE], g_iPlayerName[index], said)
  579. }
  580.  
  581. static i, team[11];
  582. for (i = 1; i <= g_iMaxPlayers; i++)
  583. {
  584. if (!is_user_connected(i)) continue;
  585.  
  586. if (get_user_team(i) == playerTeam)
  587. {
  588. get_user_team(i, team, charsmax(team))
  589. changeTeamInfo(i, color)
  590. writeMessage(i, said)
  591. changeTeamInfo(i, team)
  592. }
  593. }
  594.  
  595. return PLUGIN_HANDLED_MAIN;
  596. }
  597.  
  598. public changeTeamInfo(player, team[])
  599. {
  600. message_begin(MSG_ONE, get_user_msgid( "TeamInfo" ), _, player)
  601. write_byte(player)
  602. write_string(team)
  603. message_end()
  604. }
  605.  
  606. public writeMessage(player, message[])
  607. {
  608. message_begin(MSG_ONE, get_user_msgid( "SayText" ), {0, 0, 0}, player)
  609. write_byte(player)
  610. write_string(message)
  611. message_end()
  612. }
  613.  
  614. public clcmd_sayhf(id)
  615. {
  616. ColorChat(id, TEAM_COLOR, "^4Cs-Apure |^1 La^4 'Hora Furia'^1 está:^4 %sACTIVADA", g_happytime == true ? "" : "DES")
  617. ColorChat(id, TEAM_COLOR, "^4Cs-Apure |^1 La^4 'Hora Furia'^1 %s", g_happytime == true ? "termina a las^4 6:00^1 (Hora^4 VEN^1)" : "empieza a las^4 21:00^1 (Hora^4 VEN^1)")
  618. ColorChat(id, TEAM_COLOR, "^4Cs-Apure |^1 La^4 'Hora Furia'^1 sirve para obtener el doble de^4 FRAGS!")
  619.  
  620. return PLUGIN_HANDLED;
  621. }
  622.  
  623. public clcmd_saytime(id)
  624. {
  625. ColorChat(id, TEAM_COLOR, "^4Cs-Apure |^1 Tiempo Jugado En Total En El Server:")
  626. ColorChat(id, TEAM_COLOR, "^4Cs-Apure | ^3%i ^1Día%s, ^3%i ^1Hora%s, ^3%i ^1Minuto%s y ^3%i ^1Segundo%s", g_iPlayerTime[id][0], (g_iPlayerTime[id][0] == 1 ? "" : "s"), g_iPlayerTime[id][1], (g_iPlayerTime[id][1] == 1 ? "" : "s"), g_iPlayerTime[id][2], (g_iPlayerTime[id][2] == 1 ? "" : "s"), g_iPlayerTime[id][3], (g_iPlayerTime[id][3] == 1 ? "" : "s"))
  627.  
  628. return PLUGIN_HANDLED;
  629. }
  630.  
  631. public show_special_menu(id)
  632. {
  633. for(new i = 0; i < sizeof(g_iMaps); i++)
  634. {
  635. if (equal(g_currentmap, g_iMaps[i]))
  636. {
  637. ColorChat(id, TEAM_COLOR, "^4Cs-Apure |^1 No Puedes Comprar ^4Armas ^1En Esté ^3Mapa^1." )
  638. return PLUGIN_HANDLED;
  639. }
  640. }
  641.  
  642. new menu, Buffer[150], text[1024];
  643.  
  644. formatex(Buffer, charsmax(Buffer), "\rCs-Apure | \wARMAS ESPECIALES^n\r* \yLas Armas Tienen Limite De Uso \r*^n\wPlata: \r%d\d, \wADRNL: \r%d", cs_get_user_money(id), jctf_get_adrenaline(id))
  645.  
  646. menu = menu_create(Buffer, "handler_show_special_menu")
  647.  
  648. for(new i = 0; i < sizeof(ItemsTienda); i++)
  649. {
  650. if(g_iLimit_Items[i] >= ItemsTienda[i][LIMIT] ) {
  651. formatex(text, charsmax(text), "\d%s \r[LIMITADO]", ItemsTienda[i][NOMBRE])
  652. } else if(jctf_get_adrenaline(id) < ItemsTienda[i][ADRENALINA]) {
  653. formatex(text, charsmax(text), "\d%s $%d ADRNL: %d \r[%d|%d]", ItemsTienda[i][NOMBRE], ItemsTienda[i][PRECIO], ItemsTienda[i][ADRENALINA], g_iLimit_Items[i], ItemsTienda[i][LIMIT])
  654. } else if(cs_get_user_money(id) < ItemsTienda[i][PRECIO]) {
  655. formatex(text, charsmax(text), "\d%s $%d ADRNL: %d \r[%d|%d]", ItemsTienda[i][NOMBRE], ItemsTienda[i][PRECIO], ItemsTienda[i][ADRENALINA], g_iLimit_Items[i], ItemsTienda[i][LIMIT])
  656. } else {
  657. formatex(text, charsmax(text), "\w%s \y$\w%d \yADRNL: \w%d \r[%d|%d]", ItemsTienda[i][NOMBRE], ItemsTienda[i][PRECIO], ItemsTienda[i][ADRENALINA], g_iLimit_Items[i], ItemsTienda[i][LIMIT])
  658. }
  659.  
  660. menu_additem(menu, text, _, _, menu_makecallback("callback_special_menu"))
  661. }
  662.  
  663. menu_setprop(menu, MPROP_EXITNAME, "Salir")
  664. menu_display(id, menu, 0)
  665.  
  666. return PLUGIN_HANDLED;
  667. }
  668.  
  669. public callback_special_menu(id, menu, item)
  670. {
  671. if(jctf_get_adrenaline(id) < ItemsTienda[item][ADRENALINA])
  672. return ITEM_DISABLED;
  673.  
  674. if(cs_get_user_money(id) < ItemsTienda[item][PRECIO])
  675. return ITEM_DISABLED;
  676.  
  677. if(g_iLimit_Items[item] >= ItemsTienda[item][LIMIT])
  678. return ITEM_DISABLED;
  679.  
  680. return ITEM_ENABLED;
  681. }
  682.  
  683. public handler_show_special_menu(id, menu, item)
  684. {
  685. if (!is_user_alive(id))
  686. return PLUGIN_HANDLED;
  687.  
  688. if (item == MENU_EXIT)
  689. {
  690. menu_destroy(menu)
  691. return PLUGIN_HANDLED;
  692. }
  693.  
  694. for(new i = 0; i < sizeof(g_iMaps); i++)
  695. {
  696. if (equal(g_currentmap, g_iMaps[i]))
  697. {
  698. ColorChat(id, TEAM_COLOR, "^4Cs-Apure |^1 No Puedes Comprar ^4Armas ^1En Esté ^3Mapa^1." )
  699. return PLUGIN_HANDLED;
  700. }
  701. }
  702.  
  703. switch(item)
  704. {
  705. case 0: cso_balrog3(id);
  706. case 1: cso_rockguitar(id);
  707. case 2: cso_thanatos7(id);
  708. case 3: tienda_Paladin(id);
  709. }
  710.  
  711. jctf_add_adrenaline(id, - ItemsTienda[item][ADRENALINA])
  712. cs_set_user_money(id, cs_get_user_money(id) - ItemsTienda[item][PRECIO], 1)
  713. g_iLimit_Items[item]++
  714. ColorChat(id, TEAM_COLOR, "^4Cs-Apure |^1 Has Comprado:^4 %s^1 Por:^3 $ %d^1 y ADRNL:^3 %s^1.", ItemsTienda[item][NOMBRE], ItemsTienda[item][PRECIO], ItemsTienda[item][ADRENALINA])
  715.  
  716. return PLUGIN_HANDLED;
  717. }
  718.  
  719. public GuardarR(id)
  720. {
  721. adv_vault_set_start(g_iVault)
  722.  
  723. adv_vault_set_field(g_iVault, g_iCampos[CAMPO_RANGOS], g_iRangos[id])
  724. adv_vault_set_field(g_iVault, g_iCampos[CAMPO_FRAGS], g_iFrags[id])
  725.  
  726. adv_vault_set_end(g_iVault, 0, g_iPlayerName[id])
  727. }
  728.  
  729. public GuardarT(id)
  730. {
  731. adv_vault_set_start(g_iVault2)
  732.  
  733. adv_vault_set_field(g_iVault2, g_iCampos[CAMPO_DIAS], g_iPlayerTime[id][0])
  734. adv_vault_set_field(g_iVault2, g_iCampos[CAMPO_HORAS], g_iPlayerTime[id][1])
  735. adv_vault_set_field(g_iVault2, g_iCampos[CAMPO_MINUTOS], g_iPlayerTime[id][2])
  736. adv_vault_set_field(g_iVault2, g_iCampos[CAMPO_SEGUNDOS], g_iPlayerTime[id][3])
  737.  
  738. adv_vault_set_end(g_iVault2, 0, g_iPlayerName[id])
  739. }
  740.  
  741. public CargarR(id)
  742. {
  743. if(!adv_vault_get_prepare(g_iVault, _, g_iPlayerName[id]))
  744. return;
  745.  
  746. g_iRangos[id] = adv_vault_get_field(g_iVault, g_iCampos[CAMPO_RANGOS])
  747. g_iFrags[id] = adv_vault_get_field(g_iVault, g_iCampos[CAMPO_FRAGS])
  748. }
  749.  
  750. public CargarT(id)
  751. {
  752. if(!adv_vault_get_prepare(g_iVault2, _, g_iPlayerName[id]))
  753. return;
  754.  
  755. g_iPlayerTime[id][0] = adv_vault_get_field(g_iVault2, g_iCampos[CAMPO_DIAS])
  756. g_iPlayerTime[id][1] = adv_vault_get_field(g_iVault2, g_iCampos[CAMPO_HORAS])
  757. g_iPlayerTime[id][2] = adv_vault_get_field(g_iVault2, g_iCampos[CAMPO_MINUTOS])
  758. g_iPlayerTime[id][3] = adv_vault_get_field(g_iVault2, g_iCampos[CAMPO_SEGUNDOS])
  759. }
  760.  
  761. // Happy hour
  762. public happy_hour()
  763. {
  764. new time_data[12]
  765. get_time("%H", time_data, 12)
  766. new g_time = str_to_num(time_data)
  767.  
  768. // Time function
  769. for(new i = 0; i <= sizeof(g_hours)- 1; i++)
  770. {
  771. // Hour isn't the same?
  772. if(g_time != g_hours[i]) continue;
  773.  
  774. // Enable happy time
  775. g_happytime = true
  776.  
  777. break;
  778. }
  779. }
  780.  
  781. public set_frags(id, level, cid)
  782. {
  783. if (!cmd_access(id, ADMIN_RCON, cid, 2))
  784. return PLUGIN_HANDLED;
  785.  
  786. static arg[32], arg2[6], g_amount
  787.  
  788. // ARG'v functions
  789. read_argv(1, arg, sizeof arg -1)
  790. read_argv(2, arg2, sizeof arg2 - 1)
  791.  
  792. new g_player = cmd_target(id, arg, CMDTARGET_NO_BOTS | CMDTARGET_ALLOW_SELF)
  793.  
  794. if (!g_player)
  795. return PLUGIN_HANDLED;
  796.  
  797. g_amount = (str_to_num(arg2))
  798.  
  799. ColorChat(0, TEAM_COLOR, "^4Cs-Apure |^1 El Admin:^4 %s^1 Le Ha Dado:^3 '+%s Frags'^1 A:^4 %s^1.", g_iPlayerName[id], add_point(g_amount), g_iPlayerName[g_player])
  800. g_iFrags[g_player] += g_amount
  801.  
  802. check_range(g_player)
  803. GuardarR(g_player)
  804.  
  805. Log("Admin: %s Le Ha Dado: %d Frags A: %s",
  806. g_iPlayerName[id], g_amount, g_iPlayerName[g_player])
  807.  
  808. return PLUGIN_HANDLED;
  809. }
  810.  
  811. // ctf_evento <jugador>
  812. public cmd_start_event(id, level, cid)
  813. {
  814. // Check for access flag - Start event
  815. if (!cmd_access(id, ADMIN_RCON, cid, 2))
  816. return PLUGIN_HANDLED;
  817.  
  818. static arg[32], g_target
  819.  
  820. // ARG'v functions
  821. read_argv(1, arg, charsmax(arg))
  822.  
  823. g_target = cmd_target(id, arg, CMDTARGET_NO_BOTS | CMDTARGET_ALLOW_SELF | CMDTARGET_ONLY_ALIVE)
  824.  
  825. // Player was not found
  826. if (!g_target)
  827. return PLUGIN_HANDLED;
  828.  
  829. // Enough players per event
  830. if (fnGetEvents() > 3)
  831. {
  832. client_print(id, print_console, "Cs-Apure | Solo esta permitido 4 personas por evento.")
  833. return PLUGIN_HANDLED;
  834. }
  835.  
  836. // Already on event
  837. if (g_iEvents[g_target])
  838. {
  839. client_print(id, print_console, "Cs-Apure | Esta persona ya esta en evento.")
  840. return PLUGIN_HANDLED;
  841. }
  842.  
  843. // Print on the chat
  844. ColorChat(0, TEAM_COLOR, "^4Cs-Apure |^1 El Admin:^4 %s^1 Ha Iniciado Un Evento Con:^3 %s^1.", g_iPlayerName[id], g_iPlayerName[g_target])
  845.  
  846. // Set health, armor and render
  847. g_iEvents[g_target] = true
  848. set_user_health(g_target, get_pcvar_num(cvar_event_hp))
  849. set_user_armor(g_target, 999)
  850. set_user_rendering(g_target, kRenderFxGlowShell, 212, 255, 0, kRenderNormal, 100)
  851.  
  852. /*for (new i = 1; i < g_iMaxPlayers; i++)
  853. {
  854. if(!is_user_connected(i) || (cs_get_user_team(i) != CS_TEAM_T && cs_get_user_team(i) != CS_TEAM_CT))
  855. continue;
  856.  
  857. server_cmd("mp_autoteambalance ^"0^"") // desactiva el auto balance
  858. server_cmd("mp_round_infinite ^"0^"") // la ronda infinita para evitar drogas xd
  859. server_cmd("sv_restart ^"1^"") // no lo se dime tu :u
  860. user_kill(i)
  861.  
  862. if(g_iEvents[i] && cs_get_user_team(i) != CS_TEAM_T)
  863. engclient_cmd(i, "jointeam", "1")
  864. else
  865. engclient_cmd(i, "jointeam", "2")
  866. }*/
  867.  
  868. // Show message on screen
  869. set_dhudmessage(255, 255, 255, -1.0, -1.0, 0, 0.0, 3.0, 5.0, 2.0)
  870. show_dhudmessage(0, "¡EVENTO INICIADO!^nMATA A %s Y Gana %s Frags", g_iPlayerName[g_target], add_point(get_pcvar_num(cvar_event_frags_reward)))
  871.  
  872. Log("ADMIN <%s> ha iniciado un evento con <%s>", g_iPlayerName[id], g_iPlayerName[g_target])
  873.  
  874. return PLUGIN_HANDLED; // stop here
  875. }
  876.  
  877. // ctf_evento <jugador>
  878. public cmd_start_random_event(id, level, cid)
  879. {
  880. // Check for access flag - Start event
  881. if (!cmd_access(id, ADMIN_RCON, cid, 2))
  882. return PLUGIN_HANDLED;
  883.  
  884. static g_target, iPlayersnum
  885. iPlayersnum = fnGetAlive()
  886.  
  887. // Choose any random player
  888. g_target = fnGetRandomAlive(random_num(1, iPlayersnum))
  889.  
  890. // Enough players per event
  891. if (fnGetEvents() > 3)
  892. {
  893. client_print(id, print_console, "Cs-Apure | Solo esta permitido 4 personas por evento.")
  894. return PLUGIN_HANDLED;
  895. }
  896.  
  897. // Already on event
  898. if (g_iEvents[g_target])
  899. {
  900. client_print(id, print_console, "Cs-Apure | Esta persona ya esta en evento.")
  901. return PLUGIN_HANDLED;
  902. }
  903.  
  904. // Print on the chat
  905. ColorChat(0, TEAM_COLOR, "^4Cs-Apure |^1 El Admin:^3 %s^1 Ha Iniciado Un ^4Evento Randon^1.", g_iPlayerName[id])
  906.  
  907. // Set health, armor and render
  908. g_iEvents[g_target] = true
  909. set_user_health(g_target, get_pcvar_num(cvar_event_hp))
  910. set_user_armor(g_target, 999)
  911.  
  912. set_user_rendering(g_target, kRenderFxGlowShell, 212, 255, 0, kRenderNormal, 100)
  913.  
  914. // Show message on screen
  915. set_hudmessage(255, 255, 0, -1.0, -1.0, 0, 0.0, 3.0, 5.0, 2.0)
  916. show_hudmessage(0, "¡EVENTO AL AZAR INICIADO!^nMATA A %s Y Gana %s Frags", g_iPlayerName[g_target], add_point(get_pcvar_num(cvar_event_frags_reward)))
  917.  
  918. Log("ADMIN <%s> ha iniciado un evento random.", g_iPlayerName[id])
  919.  
  920. return PLUGIN_HANDLED; // stop here
  921. }
  922.  
  923. public cmd_vida(id, level, cid)
  924. {
  925. if(!cmd_access(id, ADMIN_IMMUNITY, cid, 2))
  926. return PLUGIN_HANDLED;
  927.  
  928. static arg[32], arg2[6], g_vida
  929. read_argv(1, arg, sizeof arg - 1)
  930. read_argv(2, arg2, sizeof arg2 - 1)
  931.  
  932. new g_player = cmd_target(id, arg, CMDTARGET_NO_BOTS | CMDTARGET_ALLOW_SELF)
  933.  
  934. if(!g_player)
  935. return PLUGIN_HANDLED;
  936.  
  937. if (fnGetEvents() > 1)
  938. {
  939. client_print(id, print_console, "Cs-Apure | Solo se permite 2 persona con extra de vida")
  940. return PLUGIN_HANDLED;
  941. }
  942.  
  943. // Already on event
  944. if (g_iEvents[g_player])
  945. {
  946. client_print(id, print_console, "Cs-Apure | Ya le diste vida a estar persona")
  947. return PLUGIN_HANDLED;
  948. }
  949.  
  950. g_iEventHealth[g_player] = true
  951. g_vida = (str_to_num(arg2))
  952.  
  953. ColorChat(id, TEAM_COLOR, "^4Cs-Apure |^1 Le Diste ^3'+%d De Vida'^1 A:^4 %s^1.", g_vida, g_iPlayerName[g_player])
  954. ColorChat(g_player, TEAM_COLOR, "^4Cs-Apure |^1 El Admin:^4 %s^1 Te Ha Dado:^3 '+%d De Vida'^1.", g_iPlayerName[id], g_vida)
  955. set_user_health(g_player, get_user_health(g_player) + g_vida)
  956.  
  957. Log("ADMIN <%s> le dio vida a <%s>", g_iPlayerName[id], g_iPlayerName[g_player])
  958.  
  959. return PLUGIN_HANDLED;
  960. }
  961.  
  962. stock ValidMessage(text[], maxcount)
  963. {
  964. static len, i, count;
  965. len = strlen(text);
  966. count = 0;
  967.  
  968. if (!len)
  969. return false;
  970.  
  971. for (i = 0; i < len; i++)
  972. {
  973. if (text[i] != ' ')
  974. {
  975. count++
  976. if (count >= maxcount)
  977. return true;
  978. }
  979. }
  980.  
  981. return false;
  982. }
  983.  
  984. public top_time(id)
  985. {
  986. new KeyIndex;
  987. static len
  988.  
  989. len = 0
  990.  
  991. new toploop = min(adv_vault_sort_numresult(g_iVault2, g_iSort), 10);
  992.  
  993. len += formatex(motd[len], sizeof motd-len,"<STYLE>body{background-color: rgba(255, 0, 0, 0.699);}table{background-color:rgba(0, 0, 0, 0.616);text-align:center;border-collapse:collapse;}th,td{color:rgb(255, 255, 255);padding:3px;}thead{color:white;background-color: rgb(255, 0, 0);border-bottom:3px solid rgb(255, 255, 255);}tr:nth-child(even){background-color:rgba(0, 0, 0, 0.548);}</STYLE>");
  994. len += formatex(motd[len], sizeof motd-len,"<body><table><thead><body style=^"background: #0d007e url('https://i.imgur.com/bIbUiKD.jpg') no-repeat;^"><tr><th width=5%% > Rank <th width=22%%> TAG <th width=20%%> Días <th width=20%%> Horas <th width=20%%> Minutos <th width=20%%> Segundos</tr></thead>");
  995.  
  996. for(new Posicion = 1; Posicion <= toploop; Posicion++)
  997. {
  998. KeyIndex = adv_vault_sort_position(g_iVault2, g_iSort, Posicion);
  999.  
  1000. if(!adv_vault_get_prepare(g_iVault2, KeyIndex))
  1001. continue;
  1002.  
  1003. new DIAS = adv_vault_get_field(g_iVault2, g_iCampos[CAMPO_DIAS])
  1004. new HORAS = adv_vault_get_field(g_iVault2, g_iCampos[CAMPO_HORAS])
  1005. new MINUTOS = adv_vault_get_field(g_iVault2, g_iCampos[CAMPO_MINUTOS])
  1006. new SEGUNDOS = adv_vault_get_field(g_iVault2, g_iCampos[CAMPO_SEGUNDOS])
  1007.  
  1008. adv_vault_get_keyname(g_iVault2, KeyIndex, g_iPlayerName[id], 31 );
  1009.  
  1010. len += formatex(motd[len], sizeof motd-len, "<tr>");
  1011. len += formatex(motd[len], sizeof motd-len, "<td> %d. ", Posicion);
  1012. len += formatex(motd[len], sizeof motd-len, "<td> %s ", g_iPlayerName[id]);
  1013. len += formatex(motd[len], sizeof motd-len, "<td> %i ", DIAS);
  1014. len += formatex(motd[len], sizeof motd-len, "<td> %i ", HORAS);
  1015. len += formatex(motd[len], sizeof motd-len, "<td> %i ", MINUTOS);
  1016. len += formatex(motd[len], sizeof motd-len, "<td> %i ", SEGUNDOS);
  1017. }
  1018.  
  1019. len += formatex(motd[len], sizeof motd-len, "</table></body>");
  1020.  
  1021. show_motd( id, motd, "Cs-Apure | 10 Top Horas.");
  1022. }
  1023.  
  1024. stock add_point(number)
  1025. {
  1026. new count, i, str[29], str2[35], len
  1027. num_to_str(number, str, charsmax(str))
  1028. len = strlen(str)
  1029.  
  1030. for (i = 0; i < len; i++)
  1031. {
  1032. if (i != 0 && ((len - i) %3 == 0))
  1033. {
  1034. add(str2, charsmax(str2), ".", 1)
  1035. count++
  1036. add(str2[i+count], 1, str[i], 1)
  1037. }
  1038. else
  1039. add(str2[i+count], 1, str[i], 1)
  1040. }
  1041.  
  1042. return str2;
  1043. }
  1044.  
  1045. Log(const msg_format[], any:...)
  1046. {
  1047. static message[256]
  1048. vformat(message, sizeof(message) - 1, msg_format, 2)
  1049.  
  1050. // Set direction
  1051. static dir[64], filename[98]
  1052.  
  1053. if (!dir[0])
  1054. {
  1055. get_basedir(dir, sizeof(dir)-1)
  1056. add(dir, sizeof(dir)-1, "/logs")
  1057. }
  1058.  
  1059. format_time(filename, charsmax(filename), "%m%d%Y")
  1060. format(filename, sizeof(filename)-1, "%s/ACCIONES_%s.log", dir, filename)
  1061.  
  1062. log_amx("%s", message)
  1063. log_to_file(filename, "%s", message)
  1064. }
  1065.  
  1066. public show_screenfade_kill(id, red, green, blue)
  1067. {
  1068. // Screen fading
  1069. message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, id)
  1070. write_short(1<<10)
  1071. write_short(1<<10)
  1072. write_short(0x0000)
  1073. write_byte(red) // r
  1074. write_byte(green) // g
  1075. write_byte(blue) // b
  1076. write_byte(75)
  1077. message_end()
  1078. }
  1079.  
  1080. fnGetAlive()
  1081. {
  1082. static iAlive, id
  1083. iAlive = 0
  1084.  
  1085. for (id = 1; id <= g_iMaxPlayers; id++)
  1086. {
  1087. if (is_user_alive(id))
  1088. iAlive++
  1089. }
  1090.  
  1091. return iAlive;
  1092. }
  1093.  
  1094. fnGetRandomAlive(n)
  1095. {
  1096. static iAlive, id
  1097. iAlive = 0
  1098.  
  1099. for (id = 1; id <= g_iMaxPlayers; id++)
  1100. {
  1101. if (is_user_alive(id))
  1102. iAlive++
  1103.  
  1104. if (iAlive == n)
  1105. return id;
  1106. }
  1107.  
  1108. return -1;
  1109. }
  1110.  
  1111. fnGetEvents()
  1112. {
  1113. static iEvents, id
  1114. iEvents = 0
  1115.  
  1116. for (id = 1; id <= g_iMaxPlayers; id++)
  1117. {
  1118. if (is_user_alive(id) && g_iEvents[id])
  1119. iEvents++
  1120. }
  1121.  
  1122. return iEvents;
  1123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement