Advertisement
Guest User

Untitled

a guest
Jan 21st, 2019
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 58.53 KB | None | 0 0
  1. /* Sublime AMXX Editor v2.2 */
  2.  
  3. #include <amxmodx>
  4. #include <amxmisc>
  5. #include <fakemeta>
  6. #include <celltrie>
  7. #include <cstrike>
  8. #include <fun>
  9. #include <hamsandwich>
  10. #include <jctf2>
  11. #include <adv_vault>
  12.  
  13. #define MAX_RANGO 19
  14. #define Max_Models 4
  15. #define MAX_FRAGS 40000
  16. #define FLAG_LOAD ADMIN_CFG
  17. #define MAX_PREFIXES 33
  18. #define MAX_BAD_PREFIXES 100
  19. #define MAX_CAJAS 3
  20.  
  21. new g_vault, q, w, e, v, z, c, re, rt
  22. new GayHUD
  23. const Task = 2323
  24. #define VEO_EL_HUD (taskid-Task)
  25. new numberhp[33]
  26. new g_nombre[33][32];
  27. new g_Cajas[33];
  28. new g_bad_prefix, g_listen, g_listen_flag, g_custom, g_custom_flag, g_say_characters, g_prefix_characters;
  29. new pre_ips_count = 0, pre_names_count = 0, pre_steamids_count, pre_flags_count = 0, bad_prefix_count = 0, i, temp_cvar[2];
  30. new configs_dir[64], file_prefixes[128], file_bad_prefixes[128], text[128], prefix[32], type[2], key[32], length, line = 0, error[256];
  31. new g_teaminfo, g_saytxt, g_maxplayers, CsTeams:g_team;
  32. new g_typed[192], g_message[192], g_name[32];
  33. new Trie:pre_ips_collect, Trie:pre_names_collect, Trie:pre_steamids_collect, Trie:pre_flags_collect, Trie:bad_prefixes_collect, Trie:client_prefix;
  34. new str_id[16], temp_key[35], temp_prefix[32], temp_value;
  35. new bool:g_toggle[33];
  36. new bool:is_admin;
  37.  
  38. new const say_team_info[2][CsTeams][] =
  39. {
  40. {"*SPEC* ", "*DEAD* ", "*DEAD* ", "*SPEC* "},
  41. {"", "", "", ""}
  42. }
  43.  
  44. new const sayteam_team_info[2][CsTeams][] =
  45. {
  46. {"(Spectator) ", "*DEAD*(Terrorist) ", "*DEAD*(Counter-Terrorist) ", "(Spectator) "},
  47. {"(Spectator) ", "(Terrorist) ", "(Counter-Terrorist) ", "(Spectator) "}
  48. }
  49.  
  50. new const forbidden_say_symbols[] = {
  51. "/",
  52. "!",
  53. "%",
  54. "$"
  55. }
  56.  
  57. new const forbidden_prefixes_symbols[] = {
  58. "/",
  59. "\",
  60. "%",
  61. "$",
  62. ".",
  63. ":",
  64. "?",
  65. "!",
  66. "@",
  67. "#",
  68. "%"
  69. }
  70.  
  71. new const separator[] = "************************************************"
  72. new const in_prefix[] = "[AdminPrefixes]"
  73.  
  74. new const g_team_names[CsTeams][] = {
  75. "",
  76. "TERRORIST",
  77. "CT",
  78. "SPECTATOR"
  79. }
  80. enum _:DATA_RANGO
  81. {
  82. NAME[70],
  83. FRAGS
  84. }
  85.  
  86. enum _:SKINS_DATA
  87. {
  88. ITEM[32],
  89. MODEL[120],
  90. NIVEL,
  91. PUNTOS,
  92. CSW_WEAPON,
  93. Weapon[50]
  94. }
  95.  
  96. new const PLUGIN [] = "Rango + CS:GO"
  97. new const VERSION[] = "1.0"
  98. new const AUTHOR [] = "Ale-."
  99. new const g_TAG [] = "^4l|^3SG^4|l^1"
  100.  
  101. new const RANGOS[MAX_RANGO][DATA_RANGO]=
  102. {
  103. {"Sin Rango", 100 },
  104. {"Silver I", 250 },
  105. {"Silver II", 500 },
  106. {"Silver III", 1000 },
  107. {"Silver IV", 1300 },
  108. {"Silver Elite", 1500 },
  109. {"Silver Elite Master", 2000 },
  110. {"Gold Nova I", 2500 },
  111. {"Gold Nova II", 3000 },
  112. {"Gold Nova III", 4000 },
  113. {"Gold Nova Master", 5000 },
  114. {"Master Guardian I", 6500 },
  115. {"Master Guardian II", 8000 },
  116. {"Master Guardian Elite", 9500 },
  117. {"Distinguished Master Guardian", 11000 },
  118. {"Legendary Eagle", 15000 },
  119. {"Legendary Eagle Master", 20000 },
  120. {"Supreme Master First Class", 30000 },
  121. {"The Global Elite", MAX_FRAGS }
  122. }
  123.  
  124. new const iModels[Max_Models][]=
  125. {
  126. "// ====[ |Sivernetico Gaming| ]==== \\^n\
  127. -.Frags: [%d] - Frags Restante: [%d]^n\
  128. -.Rango: [%s]^n\
  129. -.Nivel: [%d] - Puntos: [%d]^n\
  130. \\ ====[ |Sivernetico Gaming| ]==== //", //Default
  131.  
  132. "Frags: [%d] - Frags Restantes: [%d]^n Rango: [%s] - Nivel: [%d] - Puntos: [%d]",
  133.  
  134. "Frags: [%d] - Frags Restantes: [%d]^n Rango: [%s] - Nivel: [%d] - Puntos: [%d]",
  135.  
  136. "Frags: [%d]^nFrangs Restantes: [%d]^nRango: [%s]^nNivel: [%d]^nPuntos: [%d]"
  137. }
  138.  
  139. new const EfectName[][]={"Normal", "Parpadeo"}
  140.  
  141. enum DataPosicion
  142. {
  143. Float:x,
  144. Float:y
  145. }
  146.  
  147. new const iModelsPosicion[][DataPosicion]=
  148. {
  149. {0.02, 0.15}, //Default
  150. {-1.0, 0.90},
  151. {-1.0, 0.01},
  152. {0.0, 0.18}
  153. }
  154.  
  155. enum DataColor
  156. {
  157. name[32],
  158. r,
  159. g,
  160. b
  161. }
  162. new const iColorhud[][DataColor]=
  163. {
  164. { "Verde", 0, 255, 0 },
  165. { "Blanco", 255, 255, 255 },
  166. { "Amarillo", 255, 255, 0 },
  167. { "Rojo", 255, 0, 0 },
  168. { "Azul SG", 33, 154, 184 },
  169. { "Morado", 216, 0, 255 },
  170. { "Rosado", 247, 0, 146 },
  171. { "Verde Claro",247, 225, 175 },
  172. { "Naranja", 245, 148, 0 }
  173. }
  174.  
  175. new iModel_Select[33], Hudid[33],
  176. iColor_Select[33], Efecto[33], iModel[33];
  177.  
  178. new const ARMAS[][SKINS_DATA]=
  179. {
  180. { "AK47 FRONTSIDE", "models/SG-GO/CSGO/v_ak47.mdl", 1, 500, CSW_AK47},
  181. { "AUG CORTEX", "models/SG-GO/CSGO/v_aug.mdl", 2, 500, CSW_AUG},
  182. { "AWP NOIR SKULL", "models/SG-GO/CSGO/v_awp.mdl", 4, 700, CSW_AWP},
  183. { "M4A1 BLUE MASTER", "models/SG-GO/CSGO/v_m4a1.mdl", 5, 500, CSW_M4A1},
  184. { "DEAGLE ASSAULT", "models/SG-GO/CSGO/v_deagle.mdl", 6, 500, CSW_DEAGLE},
  185. { "ELITE ALL STATS", "models/SG-GO/CSGO/v_elite.mdl", 7, 500, CSW_ELITE},
  186. { "FAMAS VALENCE", "models/SG-GO/CSGO/v_famas.mdl", 8, 700, CSW_FAMAS},
  187. { "FIVESEN VOLATIC", "models/SG-GO/CSGO/v_fiveseven.mdl", 8, 500, CSW_FIVESEVEN},
  188. { "G3SG1 URBAN STYLE", "models/SG-GO/CSGO/v_g3sg1.mdl", 8, 500, CSW_G3SG1},
  189. { "GALIL COUP", "models/SG-GO/CSGO/v_galil.mdl", 8, 500, CSW_GALIL},
  190. { "GLOCK 18 WASTELAND", "models/SG-GO/CSGO/v_glock18.mdl", 9, 700, CSW_GLOCK18},
  191. { "HEGRENADE DEMONY", "models/SG-GO/CSGO/v_hegrenade.mdl", 9, 500, CSW_HEGRENADE},
  192. { "KNIFE KARAMBIT REAL RUBY", "models/SG-GO/CSGO/v_knife.mdl", 9, 500, CSW_KNIFE},
  193. { "M3 NOVA ZALETY", "models/SG-GO/CSGO/v_m3.mdl", 9, 500, CSW_M3},
  194. { "M249 DANGER FAR", "models/SG-GO/CSGO/v_m249.mdl", 9, 700, CSW_M249},
  195. { "MAC10 DEMONY", "models/SG-GO/CSGO/v_mac10.mdl", 9, 500, CSW_MAC10},
  196. { "MP5 UPGROUND", "models/SG-GO/CSGO/v_mp5.mdl", 10, 500, CSW_MP5NAVY},
  197. { "P90 ASSIMOV", "models/SG-GO/CSGO/v_p90.mdl", 10, 500, CSW_P90},
  198. { "P228 STEAL", "models/SG-GO/CSGO/v_p228.mdl", 10, 700, CSW_P228},
  199. { "SCOUT CYREX SKULL", "models/SG-GO/CSGO/v_scout.mdl", 11, 500, CSW_SCOUT},
  200. { "SG550 SCAR CT-POWER", "models/SG-GO/CSGO/v_sg550.mdl", 11, 500, CSW_SG550},
  201. { "SG552 MOMENTUM", "models/SG-GO/CSGO/v_sg552.mdl", 11, 500, CSW_SG552},
  202. { "TMP 475 CRACK", "models/SG-GO/CSGO/v_tmp.mdl", 14, 700, CSW_TMP},
  203. { "UMP45 STATTRAK", "models/SG-GO/CSGO/v_ump45.mdl", 15, 500, CSW_UMP45},
  204. { "USP CYAN STEEL", "models/SG-GO/CSGO/v_usp.mdl", 15, 700, CSW_USP},
  205. { "XM1014 ELECTRO BLUE", "models/SG-GO/CSGO/v_xm1014.mdl", 17, 500, CSW_XM1014}
  206. }
  207.  
  208. enum _:DATAARMAS
  209. {
  210. AK47,
  211. AUG,
  212. AWP,
  213. M4A1,
  214. DEAGLE,
  215. ELITE,
  216. FAMAS,
  217. FIVESEN,
  218. G3SG1,
  219. GALIL,
  220. GLOCK_18,
  221. HEGRENADE,
  222. KNIFE,
  223. M3,
  224. M249,
  225. MAC10,
  226. MP5,
  227. P90,
  228. P228,
  229. SCOUT,
  230. SG550,
  231. SG552,
  232. TMP,
  233. UMP45,
  234. USP,
  235. XM1014
  236. }
  237.  
  238. new g_Rango[33], g_Frags[33], g_Puntos[33],
  239. g_Select[33], i_Lock[33][DATAARMAS], iEquip[33][DATAARMAS],
  240. g_ActCam[33]
  241.  
  242. new RankSound[]="rankUP.mp3";
  243.  
  244. enum _:MODEL_DT
  245. {
  246. Nombre[32],
  247. CTMODEL[64],
  248. TMODEL[64]
  249. }
  250.  
  251. new const Models[][MODEL_DT]=
  252. {
  253. {"HOMBRE", "CSGO_HOMBRECT", "CSGO_HOMBRET"},
  254. {"MUJER", "CSGO_MUJERCT", "CSGO_MUJERT"},
  255. {"ADMIN", "CSGO_ADMINCT", "CSGO_ADMINT"}
  256. }
  257. new a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,
  258. a11, a12, a13, a14, a15, a16, a17, a18, a19,
  259. a20, a21, a22, a23, a24, a25, a26, a27, a28,
  260. a29, a30, a31, a32, a33, a34, a35, a36, a37,
  261. a38, a39, a40, a41, a42, a43, a44, a45, a46,
  262. a47, a48, a49, a50, cajas, hp, Model;
  263.  
  264. public plugin_init()
  265. {
  266. register_plugin(PLUGIN, VERSION, AUTHOR)
  267. register_clcmd("nightvision", "fw_menu_principal")
  268. register_clcmd("say /stats", "Stats")
  269. register_clcmd("say /Shop", "fw_menu_skins")
  270. register_clcmd("say /armas", "UnLock")
  271. register_clcmd("say /hud", "Menu_HudConfig")
  272. register_clcmd("say /cajas", "fw_Menu_Cajas")
  273. register_clcmd("say /rangos", "fw_ranks")
  274. register_clcmd("say rs", "fw_ResetScore")
  275. register_concmd("amx_frags", "get_Frags", ADMIN_CVAR, "<Nombre> <Frags>")
  276. register_concmd("amx_puntos", "get_Points", ADMIN_CVAR, "<Nombre> <Puntos>")
  277. register_concmd("amx_caja", "get_box", ADMIN_CVAR, "<Nombre>")
  278.  
  279. register_event("DeathMsg", "fw_DeathEvento", "a")
  280. register_event("CurWeapon", "Event_CurWeapon", "be","1=1")
  281. g_bad_prefix = register_cvar("ap_bad_prefixes", "1")
  282. g_listen = register_cvar("ap_listen", "1")
  283. g_listen_flag = register_cvar("ap_listen_flag", "a")
  284. g_custom = register_cvar("ap_custom_current", "1")
  285. g_custom_flag = register_cvar("ap_custom_current_flag", "b")
  286. g_say_characters = register_cvar("ap_say_characters", "1")
  287. g_prefix_characters = register_cvar("ap_prefix_characters", "1")
  288. RegisterHam( Ham_Spawn,"player","Spawn",1 )
  289.  
  290. g_teaminfo = get_user_msgid("TeamInfo")
  291. g_saytxt = get_user_msgid ("SayText")
  292. g_maxplayers = get_maxplayers()
  293.  
  294. register_concmd("ap_reload_prefixes", "LoadPrefixes")
  295. register_concmd("ap_reload_badprefixes", "LoadBadPrefixes")
  296. register_concmd("ap_put", "SetPlayerPrefix")
  297. register_clcmd("say", "HookSay")
  298. register_clcmd("say_team", "HookSayTeam")
  299.  
  300. pre_ips_collect = TrieCreate()
  301. pre_names_collect = TrieCreate()
  302. pre_steamids_collect = TrieCreate()
  303. pre_flags_collect = TrieCreate()
  304. bad_prefixes_collect = TrieCreate()
  305. client_prefix = TrieCreate()
  306.  
  307. register_dictionary("admin_prefixes.txt")
  308.  
  309. get_configsdir(configs_dir, charsmax(configs_dir))
  310. formatex(file_prefixes, charsmax(file_prefixes), "%s/ap_prefixes.ini", configs_dir)
  311. formatex(file_bad_prefixes, charsmax(file_bad_prefixes), "%s/ap_bad_prefixes.ini", configs_dir)
  312.  
  313. LoadPrefixes(0)
  314. LoadBadPrefixes(0)
  315. GayHUD = CreateHudSyncObj()
  316.  
  317. g_vault = adv_vault_open("CSGO-SG", false),
  318. q = adv_vault_register_field(g_vault, "RANGO", DATATYPE_ARRAY, 5);
  319. w = adv_vault_register_field(g_vault, "FRAGS", DATATYPE_ARRAY, 5);
  320. e = adv_vault_register_field(g_vault, "PUNTOS", DATATYPE_ARRAY, 5);
  321.  
  322. v = adv_vault_register_field(g_vault, "COLOR", DATATYPE_ARRAY, 5);
  323. z = adv_vault_register_field(g_vault, "EFECTO", DATATYPE_ARRAY, 5);
  324. c = adv_vault_register_field(g_vault, "MODELO", DATATYPE_ARRAY, 5);
  325.  
  326. hp = adv_vault_register_field(g_vault, "HP", DATATYPE_ARRAY, 5);
  327. cajas = adv_vault_register_field(g_vault, "CAJAS", DATATYPE_ARRAY, 5);
  328. Model = adv_vault_register_field(g_vault, "MODEL", DATATYPE_ARRAY, 5);
  329.  
  330. re = adv_vault_register_field(g_vault, "LOCK-AK", DATATYPE_ARRAY, 5);
  331. rt = adv_vault_register_field(g_vault, "EQUIP-AK", DATATYPE_ARRAY, 5);
  332.  
  333. a1 = adv_vault_register_field(g_vault, "LOCK-AUG", DATATYPE_ARRAY, 5);
  334. a2 = adv_vault_register_field(g_vault, "EQUIP-AUG", DATATYPE_ARRAY, 5);
  335.  
  336. a3 = adv_vault_register_field(g_vault, "LOCK-AWP", DATATYPE_ARRAY, 5);
  337. a4 = adv_vault_register_field(g_vault, "EQUIP-AWP", DATATYPE_ARRAY, 5);
  338.  
  339. a5 = adv_vault_register_field(g_vault, "LOCK-M4A1", DATATYPE_ARRAY, 5);
  340. a6 = adv_vault_register_field(g_vault, "EQUIP-M4A1", DATATYPE_ARRAY, 5);
  341.  
  342. a7 = adv_vault_register_field(g_vault, "LOCK-DEAGLE", DATATYPE_ARRAY, 5);
  343. a8 = adv_vault_register_field(g_vault, "EQUIP-DEAGLE", DATATYPE_ARRAY, 5);
  344.  
  345. a9 = adv_vault_register_field(g_vault, "LOCK-ELITE", DATATYPE_ARRAY, 5);
  346. a10 = adv_vault_register_field(g_vault, "EQUIP-ELITE", DATATYPE_ARRAY, 5);
  347.  
  348. a11 = adv_vault_register_field(g_vault, "LOCK-FAMAS", DATATYPE_ARRAY, 5);
  349. a12 = adv_vault_register_field(g_vault, "EQUIP-FAMAS", DATATYPE_ARRAY, 5);
  350.  
  351. a13 = adv_vault_register_field(g_vault, "LOCK-FIVESEN", DATATYPE_ARRAY, 5);
  352. a14 = adv_vault_register_field(g_vault, "EQUIP-FIVESEN", DATATYPE_ARRAY, 5);
  353.  
  354. a15 = adv_vault_register_field(g_vault, "LOCK-G3SG1", DATATYPE_ARRAY, 5);
  355. a16 = adv_vault_register_field(g_vault, "EQUIP-G3SG1", DATATYPE_ARRAY, 5);
  356.  
  357. a17 = adv_vault_register_field(g_vault, "LOCK-GALIL", DATATYPE_ARRAY, 5);
  358. a18 = adv_vault_register_field(g_vault, "EQUIP-GALIL", DATATYPE_ARRAY, 5);
  359.  
  360. a19 = adv_vault_register_field(g_vault, "LOCK-GLOCK", DATATYPE_ARRAY, 5);
  361. a20 = adv_vault_register_field(g_vault, "EQUIP-GLOCK", DATATYPE_ARRAY, 5);
  362.  
  363. a21 = adv_vault_register_field(g_vault, "LOCK-HEGRENADE", DATATYPE_ARRAY, 5);
  364. a22 = adv_vault_register_field(g_vault, "EQUIP-HEGRENADE", DATATYPE_ARRAY, 5);
  365.  
  366. a23 = adv_vault_register_field(g_vault, "LOCK-KNIFE", DATATYPE_ARRAY, 5);
  367. a24 = adv_vault_register_field(g_vault, "EQUIP-KNIFE", DATATYPE_ARRAY, 5);
  368.  
  369. a25 = adv_vault_register_field(g_vault, "LOCK-M3", DATATYPE_ARRAY, 5);
  370. a26 = adv_vault_register_field(g_vault, "EQUIP-M3", DATATYPE_ARRAY, 5);
  371.  
  372. a27 = adv_vault_register_field(g_vault, "LOCK-M249", DATATYPE_ARRAY, 5);
  373. a28 = adv_vault_register_field(g_vault, "EQUIP-M249", DATATYPE_ARRAY, 5);
  374.  
  375. a29 = adv_vault_register_field(g_vault, "LOCK-MAC10", DATATYPE_ARRAY, 5);
  376. a30 = adv_vault_register_field(g_vault, "EQUIP-MAC10", DATATYPE_ARRAY, 5);
  377.  
  378. a31 = adv_vault_register_field(g_vault, "LOCK-MP5", DATATYPE_ARRAY, 5);
  379. a32 = adv_vault_register_field(g_vault, "EQUIP-MP5", DATATYPE_ARRAY, 5);
  380.  
  381. a33 = adv_vault_register_field(g_vault, "LOCK-P90", DATATYPE_ARRAY, 5);
  382. a34 = adv_vault_register_field(g_vault, "EQUIP-P90", DATATYPE_ARRAY, 5);
  383.  
  384. a35 = adv_vault_register_field(g_vault, "LOCK-P228", DATATYPE_ARRAY, 5);
  385. a36 = adv_vault_register_field(g_vault, "EQUIP-P228", DATATYPE_ARRAY, 5);
  386.  
  387. a37 = adv_vault_register_field(g_vault, "LOCK-SCOUT", DATATYPE_ARRAY, 5);
  388. a38 = adv_vault_register_field(g_vault, "EQUIP-SCOUT", DATATYPE_ARRAY, 5);
  389.  
  390. a39 = adv_vault_register_field(g_vault, "LOCK-SG550", DATATYPE_ARRAY, 5);
  391. a40 = adv_vault_register_field(g_vault, "EQUIP-SG550", DATATYPE_ARRAY, 5);
  392.  
  393. a41 = adv_vault_register_field(g_vault, "LOCK-SG552", DATATYPE_ARRAY, 5);
  394. a42 = adv_vault_register_field(g_vault, "EQUIP-SG552", DATATYPE_ARRAY, 5);
  395.  
  396. a43 = adv_vault_register_field(g_vault, "LOCK-TMP", DATATYPE_ARRAY, 5);
  397. a44 = adv_vault_register_field(g_vault, "EQUIP-TMP", DATATYPE_ARRAY, 5);
  398.  
  399. a45 = adv_vault_register_field(g_vault, "LOCK-UMP45", DATATYPE_ARRAY, 5);
  400. a46 = adv_vault_register_field(g_vault, "EQUIP-UMP45", DATATYPE_ARRAY, 5);
  401.  
  402. a47 = adv_vault_register_field(g_vault, "LOCK-USP", DATATYPE_ARRAY, 5);
  403. a48 = adv_vault_register_field(g_vault, "EQUIP-USP", DATATYPE_ARRAY, 5);
  404.  
  405. a49 = adv_vault_register_field(g_vault, "LOCK-XM1014", DATATYPE_ARRAY, 5);
  406. a50 = adv_vault_register_field(g_vault, "EQUIP-XM1014", DATATYPE_ARRAY, 5);
  407.  
  408. adv_vault_init(g_vault)
  409. }
  410.  
  411. public fw_ranks(id)
  412. {
  413. client_print_color(id, print_team_default, "%s Se imprimieron los rangos en tu consola", g_TAG)
  414.  
  415. console_print(id, "/*********************\")
  416. for(new i = 0; i <sizeof RANGOS; i++)
  417. if(g_Rango[id] == i)
  418. {
  419. console_print(id, "-.%s [ ACTUAL ]", RANGOS[i][NAME])
  420. }
  421. else console_print(id, "-.%s", RANGOS[i][NAME])
  422. console_print(id, "\*********************/")
  423. }
  424.  
  425. public Guardar(id)
  426. {
  427. if( !is_user_connected(id))
  428. return;
  429.  
  430.  
  431. adv_vault_set_start(g_vault);
  432.  
  433. adv_vault_set_field(g_vault, q, g_Rango[id]);
  434. adv_vault_set_field(g_vault, w, g_Frags[id]);
  435. adv_vault_set_field(g_vault, e, g_Puntos[id]);
  436.  
  437. adv_vault_set_field(g_vault, v, iColor_Select[id]);
  438. adv_vault_set_field(g_vault, z, Efecto[id]);
  439. adv_vault_set_field(g_vault, c, iModel_Select[id]);
  440.  
  441. adv_vault_set_field(g_vault, Model, iModel[id]);
  442.  
  443. adv_vault_set_field(g_vault, hp, numberhp[id]);
  444. adv_vault_set_field(g_vault, cajas, g_Cajas[id]);
  445.  
  446.  
  447. adv_vault_set_field(g_vault, re, i_Lock[id][AK47]);
  448. adv_vault_set_field(g_vault, rt, iEquip[id][AK47]);
  449.  
  450. adv_vault_set_field(g_vault, a1, i_Lock[id][AUG]);
  451. adv_vault_set_field(g_vault, a2, iEquip[id][AUG]);
  452.  
  453. adv_vault_set_field(g_vault, a3, i_Lock[id][AWP]);
  454. adv_vault_set_field(g_vault, a4, iEquip[id][AWP]);
  455.  
  456. adv_vault_set_field(g_vault, a5, i_Lock[id][M4A1]);
  457. adv_vault_set_field(g_vault, a6, iEquip[id][M4A1]);
  458.  
  459. adv_vault_set_field(g_vault, a7, i_Lock[id][DEAGLE]);
  460. adv_vault_set_field(g_vault, a8, iEquip[id][DEAGLE]);
  461.  
  462. adv_vault_set_field(g_vault, a9, i_Lock[id][ELITE]);
  463. adv_vault_set_field(g_vault, a10, iEquip[id][ELITE]);
  464.  
  465. adv_vault_set_field(g_vault, a11, i_Lock[id][FAMAS]);
  466. adv_vault_set_field(g_vault, a12, iEquip[id][FAMAS]);
  467.  
  468. adv_vault_set_field(g_vault, a13, i_Lock[id][FIVESEN]);
  469. adv_vault_set_field(g_vault, a14, iEquip[id][FIVESEN]);
  470.  
  471. adv_vault_set_field(g_vault, a15, i_Lock[id][G3SG1]);
  472. adv_vault_set_field(g_vault, a16, iEquip[id][G3SG1]);
  473.  
  474. adv_vault_set_field(g_vault, a17, i_Lock[id][GALIL]);
  475. adv_vault_set_field(g_vault, a18, iEquip[id][GALIL]);
  476.  
  477. adv_vault_set_field(g_vault, a19, i_Lock[id][GLOCK_18]);
  478. adv_vault_set_field(g_vault, a20, iEquip[id][GLOCK_18]);
  479.  
  480. adv_vault_set_field(g_vault, a21, i_Lock[id][HEGRENADE]);
  481. adv_vault_set_field(g_vault, a22, iEquip[id][HEGRENADE]);
  482.  
  483. adv_vault_set_field(g_vault, a23, i_Lock[id][KNIFE]);
  484. adv_vault_set_field(g_vault, a24, iEquip[id][KNIFE]);
  485.  
  486. adv_vault_set_field(g_vault, a25, i_Lock[id][M3]);
  487. adv_vault_set_field(g_vault, a26, iEquip[id][M3]);
  488.  
  489. adv_vault_set_field(g_vault, a27, i_Lock[id][M249]);
  490. adv_vault_set_field(g_vault, a28, iEquip[id][M249]);
  491.  
  492. adv_vault_set_field(g_vault, a29, i_Lock[id][MAC10]);
  493. adv_vault_set_field(g_vault, a30, iEquip[id][MAC10]);
  494.  
  495. adv_vault_set_field(g_vault, a31, i_Lock[id][MP5]);
  496. adv_vault_set_field(g_vault, a32, iEquip[id][MP5]);
  497.  
  498. adv_vault_set_field(g_vault, a33, i_Lock[id][P90]);
  499. adv_vault_set_field(g_vault, a34, iEquip[id][P90]);
  500.  
  501. adv_vault_set_field(g_vault, a35, i_Lock[id][P228]);
  502. adv_vault_set_field(g_vault, a36, iEquip[id][P228]);
  503.  
  504. adv_vault_set_field(g_vault, a37, i_Lock[id][SCOUT]);
  505. adv_vault_set_field(g_vault, a38, iEquip[id][SCOUT]);
  506.  
  507. adv_vault_set_field(g_vault, a39, i_Lock[id][SG550]);
  508. adv_vault_set_field(g_vault, a40, iEquip[id][SG550]);
  509.  
  510. adv_vault_set_field(g_vault, a41, i_Lock[id][SG552]);
  511. adv_vault_set_field(g_vault, a42, iEquip[id][SG552]);
  512.  
  513. adv_vault_set_field(g_vault, a43, i_Lock[id][TMP]);
  514. adv_vault_set_field(g_vault, a44, iEquip[id][TMP]);
  515.  
  516. adv_vault_set_field(g_vault, a45, i_Lock[id][UMP45]);
  517. adv_vault_set_field(g_vault, a46, iEquip[id][UMP45]);
  518.  
  519. adv_vault_set_field(g_vault, a47, i_Lock[id][USP]);
  520. adv_vault_set_field(g_vault, a48, iEquip[id][USP]);
  521.  
  522. adv_vault_set_field(g_vault, a49, i_Lock[id][XM1014]);
  523. adv_vault_set_field(g_vault, a50, iEquip[id][XM1014]);
  524.  
  525. adv_vault_set_end(g_vault, 0, g_nombre[id])
  526. }
  527.  
  528. public Cargar(id)
  529. {
  530. if(!adv_vault_get_prepare(g_vault, _, g_nombre[id]))
  531. return;
  532.  
  533. adv_vault_get_field(g_vault, q, g_Rango[id], sizeof iColor_Select[]);
  534. adv_vault_get_field(g_vault, w, g_Frags[id], sizeof g_Frags[]);
  535. adv_vault_get_field(g_vault, e, g_Puntos[id], sizeof g_Puntos[]);
  536.  
  537. adv_vault_get_field(g_vault, v, iColor_Select[id], sizeof iColor_Select[]);
  538. adv_vault_get_field(g_vault, z, Efecto[id], sizeof Efecto[]);
  539. adv_vault_get_field(g_vault, c, iModel_Select[id], sizeof iModel_Select[]);
  540.  
  541. adv_vault_get_field(g_vault, hp, numberhp[id], sizeof numberhp[]);
  542. adv_vault_get_field(g_vault, cajas, g_Cajas[id], sizeof g_Cajas[]);
  543.  
  544. adv_vault_get_field(g_vault, Model, iModel[id], sizeof iModel[]);
  545.  
  546. adv_vault_get_field(g_vault, re, i_Lock[id][AK47], sizeof i_Lock[][AK47]);
  547. adv_vault_get_field(g_vault, rt, iEquip[id][AK47], sizeof iEquip[][AK47]);
  548.  
  549. adv_vault_get_field(g_vault, a1, i_Lock[id][AUG], sizeof i_Lock[][AUG]);
  550. adv_vault_get_field(g_vault, a2, iEquip[id][AUG], sizeof iEquip[][AUG]);
  551.  
  552. adv_vault_get_field(g_vault, a3, i_Lock[id][AWP], sizeof i_Lock[][AWP]);
  553. adv_vault_get_field(g_vault, a4, iEquip[id][AWP], sizeof iEquip[][AWP]);
  554.  
  555. adv_vault_get_field(g_vault, a5, i_Lock[id][M4A1], sizeof i_Lock[][M4A1]);
  556. adv_vault_get_field(g_vault, a6, iEquip[id][M4A1], sizeof iEquip[][M4A1]);
  557.  
  558. adv_vault_get_field(g_vault, a7, i_Lock[id][DEAGLE], sizeof i_Lock[][DEAGLE]);
  559. adv_vault_get_field(g_vault, a8, iEquip[id][DEAGLE], sizeof iEquip[][DEAGLE]);
  560.  
  561. adv_vault_get_field(g_vault, a9, i_Lock[id][ELITE], sizeof i_Lock[][ELITE]);
  562. adv_vault_get_field(g_vault, a10, iEquip[id][ELITE], sizeof iEquip[][ELITE]);
  563.  
  564. adv_vault_get_field(g_vault, a11, i_Lock[id][FAMAS], sizeof i_Lock[][FAMAS]);
  565. adv_vault_get_field(g_vault, a12, iEquip[id][FAMAS], sizeof iEquip[][FAMAS]);
  566.  
  567. adv_vault_get_field(g_vault, a13, i_Lock[id][FIVESEN], sizeof i_Lock[][FIVESEN]);
  568. adv_vault_get_field(g_vault, a14, iEquip[id][FIVESEN], sizeof iEquip[][FIVESEN]);
  569.  
  570. adv_vault_get_field(g_vault, a15, i_Lock[id][G3SG1], sizeof i_Lock[][G3SG1]);
  571. adv_vault_get_field(g_vault, a16, iEquip[id][G3SG1], sizeof iEquip[][G3SG1]);
  572.  
  573. adv_vault_get_field(g_vault, a17, i_Lock[id][GALIL], sizeof i_Lock[][GALIL]);
  574. adv_vault_get_field(g_vault, a18, iEquip[id][GALIL], sizeof iEquip[][GALIL]);
  575.  
  576. adv_vault_get_field(g_vault, a19, i_Lock[id][GLOCK_18], sizeof i_Lock[][GLOCK_18]);
  577. adv_vault_get_field(g_vault, a20, iEquip[id][GLOCK_18], sizeof i_Lock[][GLOCK_18]);
  578.  
  579. adv_vault_get_field(g_vault, a21, i_Lock[id][HEGRENADE], sizeof i_Lock[][HEGRENADE]);
  580. adv_vault_get_field(g_vault, a22, iEquip[id][HEGRENADE], sizeof iEquip[][HEGRENADE]);
  581.  
  582. adv_vault_get_field(g_vault, a23, i_Lock[id][KNIFE], sizeof i_Lock[][KNIFE]);
  583. adv_vault_get_field(g_vault, a24, iEquip[id][KNIFE], sizeof iEquip[][KNIFE]);
  584.  
  585. adv_vault_get_field(g_vault, a25, i_Lock[id][M3], sizeof i_Lock[][M3]);
  586. adv_vault_get_field(g_vault, a26, iEquip[id][M3], sizeof iEquip[][M3]);
  587.  
  588. adv_vault_get_field(g_vault, a27, i_Lock[id][M249], sizeof i_Lock[][M249]);
  589. adv_vault_get_field(g_vault, a28, iEquip[id][M249], sizeof iEquip[][M249]);
  590.  
  591. adv_vault_get_field(g_vault, a29, i_Lock[id][MAC10], sizeof i_Lock[][MAC10]);
  592. adv_vault_get_field(g_vault, a30, iEquip[id][MAC10], sizeof iEquip[][MAC10]);
  593.  
  594. adv_vault_get_field(g_vault, a31, i_Lock[id][MP5], sizeof i_Lock[][MP5]);
  595. adv_vault_get_field(g_vault, a32, iEquip[id][MP5], sizeof iEquip[][MP5]);
  596.  
  597. adv_vault_get_field(g_vault, a33, i_Lock[id][P90], sizeof i_Lock[][P90]);
  598. adv_vault_get_field(g_vault, a34, iEquip[id][P90], sizeof iEquip[][P90]);
  599.  
  600. adv_vault_get_field(g_vault, a35, i_Lock[id][P228], sizeof i_Lock[][P228]);
  601. adv_vault_get_field(g_vault, a36, iEquip[id][P228], sizeof iEquip[][P228]);
  602.  
  603. adv_vault_get_field(g_vault, a37, i_Lock[id][SCOUT], sizeof i_Lock[][SCOUT]);
  604. adv_vault_get_field(g_vault, a38, iEquip[id][SCOUT], sizeof iEquip[][SCOUT]);
  605.  
  606. adv_vault_get_field(g_vault, a39, i_Lock[id][SG550], sizeof i_Lock[][SG550]);
  607. adv_vault_get_field(g_vault, a40, iEquip[id][SG550], sizeof iEquip[][SG550]);
  608.  
  609. adv_vault_get_field(g_vault, a41, i_Lock[id][SG552], sizeof i_Lock[][SG552]);
  610. adv_vault_get_field(g_vault, a42, iEquip[id][SG552], sizeof iEquip[][SG552]);
  611.  
  612. adv_vault_get_field(g_vault, a43, i_Lock[id][TMP], sizeof i_Lock[][TMP]);
  613. adv_vault_get_field(g_vault, a44, iEquip[id][TMP], sizeof iEquip[][TMP]);
  614.  
  615. adv_vault_get_field(g_vault, a45, i_Lock[id][UMP45], sizeof i_Lock[][UMP45]);
  616. adv_vault_get_field(g_vault, a46, iEquip[id][UMP45], sizeof iEquip[][UMP45]);
  617.  
  618. adv_vault_get_field(g_vault, a47, i_Lock[id][USP], sizeof i_Lock[][USP]);
  619. adv_vault_get_field(g_vault, a48, iEquip[id][USP], sizeof iEquip[][USP]);
  620.  
  621. adv_vault_get_field(g_vault, a49, i_Lock[id][XM1014], sizeof i_Lock[][XM1014]);
  622. adv_vault_get_field(g_vault, a50, iEquip[id][XM1014], sizeof iEquip[][XM1014]);
  623. }
  624.  
  625. public jctf_flag(event, id, flagteam){
  626.  
  627. if(!is_user_connected(id)) return
  628.  
  629. switch(event) {
  630.  
  631. case FLAG_RETURNED: g_Frags[id]++;
  632. case FLAG_CAPTURED: g_Frags[id]++;
  633. }
  634. Aumento(id)
  635. }
  636.  
  637. public fw_ResetScore(id)
  638. {
  639. cs_set_user_deaths(id, 0)
  640. set_user_frags(id, 0)
  641. cs_set_user_deaths(id, 0)
  642. set_user_frags(id, 0)
  643. new namer[32];
  644. get_user_name(id, namer, charsmax(namer))
  645. client_print_color(id, print_team_default, "%s Reinicio score ^3(^4%s^3)", g_TAG, namer)
  646. }
  647.  
  648. public fw_menu_principal(id)
  649. {
  650. new title[1000];
  651. formatex(title, charsmax(title), "\r- \w* MENU PRINCIPAL^n\r- \w* LVL [\y%d\w] \r- \wAD [\y%d\w]^n\r-\w * PT [\y%d\w]", g_Rango[id], get_user_adrenaline(id), g_Puntos[id])
  652. new menu = menu_create(title, "hand_Principalmenu")
  653. new item1[300]
  654. formatex(item1, charsmax(item1), "* %s", g_Cajas[id] > 0 ? "ABRIR CAJAS" : "MENU DE CAJAS")
  655. menu_additem(menu, item1)
  656. menu_additem(menu, "* SHOP DE ARMAS")
  657. if(get_user_adrenaline(id) >= 100) menu_additem(menu, "* \yUSAR ADRENALINA^n")
  658. else menu_additem(menu, "* \wUSAR ADRENALINA^n")
  659. menu_additem(menu, "* IMPRIMIR ESTADISTICAS")
  660. menu_additem(menu, "* IMPRIMIR SKINES^n")
  661. menu_additem(menu, "* CONFIGURACION DE \rHUD")
  662. menu_additem(menu, "* CONFIGURACION DE \rCUENTA")
  663. menu_setprop(menu, MPROP_EXITNAME, "* SALIR^n \d||SG|| Sivernetico Gaming")
  664. menu_display(id, menu, 0)
  665. }
  666.  
  667. public hand_Principalmenu(id, menu, item)
  668. {
  669. if(item == MENU_EXIT)
  670. {
  671. menu_destroy(menu)
  672. return PLUGIN_HANDLED;
  673. }
  674.  
  675. switch(item)
  676. {
  677. case 0: fw_Menu_Cajas(id);
  678. case 1: fw_menu_skins(id);
  679. case 2: client_cmd(id, "say /adrenaline");
  680. case 3: Stats(id);
  681. case 4: UnLock(id);
  682. case 5: Menu_HudConfig(id);
  683. case 6: fw_Cuenta_Config(id);
  684. }
  685. return PLUGIN_HANDLED;
  686. }
  687.  
  688. public fw_Cuenta_Config(id)
  689. {
  690. new title[1000];
  691. formatex(title, charsmax(title), "\r- \w* CONFIGURACION DE CUENTA^n^n")
  692. new menu = menu_create(title, "hand_Cuenta")
  693. menu_additem(menu, "* RESETEAR CUENTA")
  694. new formate[400];
  695. formatex(formate, charsmax(formate),"* TIPO DE MODELO ( \y%s\w )^n", Models[iModel[id]][Nombre])
  696. menu_additem(menu, formate)
  697. new mata[400];
  698. formatex(mata, charsmax(mata), "* ACTIVAR DEATHCAM\y CS:GO \r[\y%s\r]", g_ActCam[id] ? "DESACTIVO" : "ACTIVO")
  699. menu_additem(menu, mata)
  700. menu_setprop(menu, MPROP_EXITNAME, "* SALIR^n \d||SG|| Sivernetico Gaming")
  701. menu_display(id, menu, 0)
  702. }
  703.  
  704. public hand_Cuenta(id, menu, item)
  705. {
  706. if(item == MENU_EXIT)
  707. {
  708. menu_destroy(menu)
  709. return PLUGIN_HANDLED;
  710. }
  711.  
  712. switch(item)
  713. {
  714. case 0: Reseteo(id);
  715. case 1:
  716. {
  717. switch(iModel[id])
  718. {
  719. case 0:iModel[id]++;
  720. case 1:if(is_user_admin(id))iModel[id]++
  721. else iModel[id]=0;
  722. case 2:if(is_user_admin(id)) iModel[id]=0;
  723. }
  724. fw_Cuenta_Config(id)
  725. client_print_color(id, print_team_default, "%s Cambaiste tu skins ah:^4 %s", Models[iModel[id]][Nombre])
  726. }
  727. case 2:
  728. {
  729. if(g_ActCam[id]) g_ActCam[id]=false
  730. else g_ActCam[id]=true
  731. client_cmd(id, "say /dcam")
  732. client_print_color(id, print_team_default, "%s ^4%s ^1la camara de muerte tipo ^4CS:GO", g_TAG, g_ActCam[id] ? "DESACTIVASTE" : "ACTIVASTE")
  733. }
  734. }
  735. return PLUGIN_HANDLED;
  736. }
  737.  
  738. public Reseteo(id)
  739. {
  740. new title[1000];
  741. formatex(title, charsmax(title), "\r- \w* ¿ ESTAS SEGURO QUE QUIERES^n RESETEAR TU CUENTA?^n^n")
  742. new menu = menu_create(title, "Hand_Reset")
  743. menu_additem(menu, "* \ySI")
  744. menu_additem(menu, "* \yNO\w, VOLVER^n^n\yNOTA:\w SI RESETEAS LA CUENTA^nCOMENZARAS DE 0 EN TODO^nLVL:0,PT:0,RANGO:0, ETC^nLAS ARMAS TAMBIEN SE BLOQUEAN")
  745. menu_setprop(menu, MPROP_EXITNAME, "* SALIR^n \d||SG|| Sivernetico Gaming")
  746. menu_display(id, menu, 0)
  747. }
  748.  
  749. public Hand_Reset(id, menu, item)
  750. {
  751. if(item == MENU_EXIT)
  752. {
  753. menu_destroy(menu)
  754. return PLUGIN_HANDLED;
  755. }
  756.  
  757. switch(item)
  758. {
  759. case 0: {
  760. for(new i = 0; i <sizeof ARMAS; i++){
  761. i_Lock[id][i] = true
  762. iEquip[id][i] = false
  763. }
  764. numberhp[id]=0
  765. g_Cajas[id]=0
  766. g_Rango[id]=0
  767. g_Frags[id]=0
  768. g_Puntos[id]=0
  769. g_Select[id]=0
  770. Hudid[id]=true
  771. iModel_Select[id] = 0
  772. iColor_Select[id] = 0
  773. Efecto[id] = 0;
  774. numberhp[id] = 0;
  775. client_print_color(id, print_team_default, "%s Has reseteado tu cuenta, ahora comenzaras de^4 0", g_TAG)
  776. }
  777. case 1: fw_Cuenta_Config(id);
  778. }
  779. return PLUGIN_HANDLED;
  780. }
  781. public Spawn(id)
  782. {
  783. if(!is_user_alive(id))
  784. return PLUGIN_HANDLED;
  785.  
  786. set_user_health(id, get_user_health(id)+numberhp[id])
  787.  
  788. new CsTeams:userTeam = cs_get_user_team(id)
  789.  
  790. if(userTeam == CS_TEAM_T)
  791. {
  792. cs_set_user_model(id, Models[iModel[id]][TMODEL])
  793. }
  794. else if(userTeam == CS_TEAM_CT) {
  795. cs_set_user_model(id, Models[iModel[id]][CTMODEL])
  796. }
  797. else {
  798. cs_reset_user_model(id)
  799. }
  800.  
  801. return PLUGIN_HANDLED;
  802. }
  803.  
  804. stock PrecachePlayerModel(const g_szModelName[]) {
  805. static g_szName[128]
  806. formatex(g_szName, charsmax(g_szName), "models/player/%s/%s.mdl", g_szModelName, g_szModelName)
  807.  
  808. precache_model(g_szName)
  809.  
  810. copy(g_szName[strlen(g_szName)-4], charsmax(g_szName) - (strlen(g_szName)-4), "T.mdl")
  811.  
  812. if(file_exists(g_szName))
  813. precache_model(g_szName)
  814. }
  815.  
  816. public get_Frags (id, level, cid)
  817. {
  818. if (!cmd_access(id, level, cid, 3))
  819. return PLUGIN_HANDLED;
  820.  
  821. new arg[33], arg2[10];
  822. read_argv(1, arg, charsmax(arg))
  823. read_argv(2, arg2, charsmax(arg2))
  824. new frags = str_to_num(arg2)
  825. static iNameAdmin[ 33 ];
  826. get_user_name( id, iNameAdmin, charsmax(iNameAdmin));
  827.  
  828. new Player = cmd_target(id, arg,0)
  829.  
  830. if (!Player)
  831. {
  832. client_print_color(id, print_team_default, "%s Jugador no encontrado", g_TAG)
  833. return PLUGIN_HANDLED;
  834. }
  835.  
  836. if(g_Frags[Player] >= MAX_FRAGS )
  837. {
  838. client_print_color(id, print_team_default, "%s El jugador llego a la cantidad maxima de rangos", g_TAG)
  839. return PLUGIN_HANDLED;
  840. }
  841.  
  842. if(frags > MAX_FRAGS - g_Frags[Player] - 1)
  843. {
  844. client_print_color(id, print_team_default, "%s Selecciona una cantidad validad de frags", g_TAG)
  845. return PLUGIN_HANDLED;
  846. }
  847.  
  848. client_print_color(Player, print_team_default, "%s el administrador ^4( ^1%s ^4) ^1te dio ^4(^3 %d ^4) ^3Frags", g_TAG, iNameAdmin, frags)
  849. client_print_color(id, print_team_red, "%s Le diste ah ^4( ^1%s ^4) ^1Frags:^4 %d", g_TAG, arg, frags)
  850. g_Frags[Player] += frags
  851. Aumento(Player)
  852. return PLUGIN_HANDLED;
  853. }
  854.  
  855. public get_Points (id, level, cid)
  856. {
  857. if (!cmd_access(id, level, cid, 3))
  858. return PLUGIN_HANDLED;
  859.  
  860. new arg[33], arg2[10];
  861. read_argv(1, arg, charsmax(arg))
  862. read_argv(2, arg2, charsmax(arg2))
  863. new frags = str_to_num(arg2)
  864. static iNameAdmin[ 33 ];
  865. get_user_name( id, iNameAdmin, charsmax(iNameAdmin));
  866.  
  867. new Player = cmd_target(id, arg,0)
  868.  
  869. if (!Player)
  870. {
  871. client_print_color(id, print_team_default, "%s Jugador no encontrado", g_TAG)
  872. return PLUGIN_HANDLED;
  873. }
  874.  
  875. client_print_color(Player, print_team_default, "%s el administrador ^4( ^1%s ^4) ^1te dio ^4(^3 %d ^4) ^3Puntos", g_TAG, iNameAdmin, frags)
  876. client_print_color(id, print_team_default, "%s Le diste ah ^4( ^1%s ^4) ^1Puntos:^4 %d", g_TAG, arg, frags)
  877. g_Puntos[Player] += frags
  878. return PLUGIN_HANDLED;
  879. }
  880.  
  881. public get_box (id, level, cid)
  882. {
  883. if (!cmd_access(id, level, cid, 3))
  884. return PLUGIN_HANDLED;
  885.  
  886. new arg[33], arg2[10];
  887. read_argv(1, arg, charsmax(arg))
  888. read_argv(2, arg2, charsmax(arg2))
  889. static iNameAdmin[ 33 ];
  890. get_user_name( id, iNameAdmin, charsmax(iNameAdmin));
  891.  
  892. new Player = cmd_target(id, arg,0)
  893.  
  894. if (!Player)
  895. {
  896. client_print_color(id, print_team_default, "%s Jugador no encontrado", g_TAG)
  897. return PLUGIN_HANDLED;
  898. }
  899.  
  900. g_Cajas[Player] += str_to_num(arg2)
  901. client_print_color(Player, print_team_default, "%s el administrador ^4( ^1%s ^4) ^1te dio^4 %d ^3CAJA", g_TAG, arg, str_to_num(arg2), iNameAdmin)
  902. client_print_color(id, print_team_default, "%s Le diste ah ^4( ^1%s ^4)^4 %d^1 caja", g_TAG, arg, str_to_num(arg2))
  903. return PLUGIN_HANDLED;
  904. }
  905.  
  906. public Menu_HudConfig(id)
  907. {
  908. new Title[700];
  909. formatex(Title, charsmax(Title), "\
  910. \r*\w CONFIGURACIONES DE \dHUD^n\
  911. \r*\y HUD: %s^n\w\", Hudid[id] ? "\r( \yACTIVADO\r )" : "\r( \dDESACTIVADO\r )")
  912. new menu = menu_create(Title,"hand_fw_config_hud")
  913.  
  914. new HudACt[150], HudModel[150],
  915. HudEfect[150], HudColor[150];
  916. formatex(HudACt, charsmax(HudACt), "\r-.\w %s", Hudid[id] ? "\rDESACTIVAR" : "\yACTIVAR")
  917. formatex(HudModel, charsmax(HudModel), "\r-.\w MODELO \r( \y%d\r )", iModel_Select[id])
  918. formatex(HudEfect, charsmax(HudEfect), "\r-.\w EFECTO \r( \y%s\r )", EfectName[Efecto[id]])
  919. formatex(HudColor, charsmax(HudColor),"\r-.\w COLOR \r( \y%s\r )^n^n\yNOTA:\w DESDE ESTE MENU^nPUEDES EDITAR^nEL HUD EN GENERAL", iColorhud[iColor_Select[id]][name])
  920. menu_additem(menu, HudACt)
  921. menu_additem(menu, HudModel,_,_,menu_makecallback("Callback2"))
  922. menu_additem(menu, HudEfect,_,_,menu_makecallback("Callback2"))
  923. menu_additem(menu, HudColor,_,_,menu_makecallback("Callback2"))
  924.  
  925. menu_setprop(menu, MPROP_EXITNAME, "VOLVER^n \d||SG|| Sivernetico Gaming")
  926.  
  927. menu_display(id, menu, 0)
  928. }
  929.  
  930. public Callback2(id, menu, item)
  931. {
  932. if(Hudid[id])
  933. return ITEM_ENABLED;
  934. return ITEM_DISABLED;
  935. }
  936.  
  937. public hand_fw_config_hud(id, menu, item)
  938. {
  939. if(item == MENU_EXIT)
  940. {
  941. fw_menu_principal(id)
  942. return PLUGIN_HANDLED;
  943. }
  944.  
  945. switch(item)
  946. {
  947. case 0:
  948. {
  949. if(Hudid[id]) Hudid[id]=false;
  950. else Hudid[id]=true;
  951. client_print_color(id, print_team_red, "%s el hud fue:^4 %s", g_TAG, Hudid[id] ? "ACTIVADO" : "DESACTIVADO")
  952. Menu_HudConfig(id)
  953. }
  954. case 1:
  955. {
  956. switch(iModel_Select[id])
  957. {
  958. case 0, 1, 2: iModel_Select[id]++;
  959. case 3: iModel_Select[id]=0;
  960. }
  961.  
  962. client_print_color(id, print_team_red, "%s Activaste el modelo:^4 %d", g_TAG, iModel_Select[id])
  963. }
  964. case 2:
  965. {
  966. switch(Efecto[id])
  967. {
  968. case 0: Efecto[id]++;
  969. case 1: Efecto[id]--;
  970. }
  971. client_print_color(id, print_team_red, "%s Activaste el efecto:^4 %s", g_TAG, EfectName[Efecto[id]])
  972. }
  973. case 3:
  974. {
  975. switch(iColor_Select[id])
  976. {
  977. case 0, 1, 2, 3, 4, 5, 6, 7: iColor_Select[id]++;
  978. case 8: iColor_Select[id]=0;
  979. }
  980. client_print_color(id, print_team_red, "%s Activaste el color:^4 %s", g_TAG, iColorhud[iColor_Select[id]])
  981. }
  982. }
  983.  
  984. Menu_HudConfig(id)
  985. return PLUGIN_HANDLED;
  986. }
  987.  
  988. public plugin_precache( )
  989. {
  990. for(new i = 0; i < sizeof ARMAS; i++)
  991. precache_model(ARMAS [ i ] [ MODEL ])
  992. for(new i = 0; i < sizeof Models; i++){
  993. PrecachePlayerModel(Models[i][CTMODEL])
  994. PrecachePlayerModel(Models[i][TMODEL])
  995. }
  996.  
  997. precache_sound(RankSound)
  998. }
  999.  
  1000. public client_putinserver(id)
  1001. {
  1002. for(new i = 0; i <sizeof ARMAS; i++){
  1003. i_Lock[id][i] = true
  1004. iEquip[id][i] = false
  1005. }
  1006.  
  1007. iModel[id]=0
  1008. g_Rango[id]=0
  1009. g_Frags[id]=0
  1010. g_Puntos[id]=0
  1011. g_Select[id]=0
  1012. Hudid[id]=true
  1013. iModel_Select[id] = 0
  1014. iColor_Select[id] = 0
  1015. Efecto[id] = 0;
  1016. numberhp[id] = 0;
  1017. g_toggle[id] = true
  1018.  
  1019. get_user_name(id, g_nombre[id], 31)
  1020. Cargar(id)
  1021.  
  1022. num_to_str(id, str_id, charsmax(str_id))
  1023. TrieSetString(client_prefix, str_id, "")
  1024. PutPrefix(id)
  1025. set_task(1.0, "HudCentral", id + Task, _, _, "b")
  1026. get_user_name(id, g_nombre[id], 31)
  1027. client_cmd(0, "spk buttons/bell1.wav")
  1028. client_print_color(0, print_team_default, "%s Se ah conectado ^4[^3%n^4]^1 su rango es^4 %s", g_TAG, id, RANGOS[g_Rango[id]][NAME])
  1029. }
  1030.  
  1031. public client_disconnected(id)
  1032. {
  1033. remove_task(id+Task)
  1034. client_cmd(0, "spk fvox/blip.wav")
  1035. client_print_color(0, print_team_default, "%s Se ah desconectado ^4[^3%n^4]^1 su rango es^4 %s", g_TAG, id, RANGOS[g_Rango[id]][NAME])
  1036. Guardar(id)
  1037. }
  1038.  
  1039. public HudCentral(taskid)
  1040. {
  1041. new id = VEO_EL_HUD
  1042. new nombre[32];
  1043. if(Hudid[id])
  1044. {
  1045. if(!is_user_alive(id)) {
  1046. id = pev(id, pev_iuser2)
  1047. if (!is_user_alive(id)) return;
  1048. }
  1049. if(id != VEO_EL_HUD) {
  1050. get_user_name(id, nombre, charsmax(nombre));
  1051. set_hudmessage(255, 255, 255, 0.60, 0.67, 1, 6.0, 1.0)
  1052. ShowSyncHudMsg(VEO_EL_HUD, GayHUD, "Nombre: %s || Frags: %d || Rango: %s", nombre, g_Frags[id], RANGOS[g_Rango[id]][NAME])
  1053. }
  1054. else {
  1055. set_hudmessage(iColorhud[iColor_Select[id]][r], iColorhud[iColor_Select[id]][g], iColorhud[iColor_Select[id]][b], iModelsPosicion[iModel_Select[id]][x], iModelsPosicion[iModel_Select[id]][y], Efecto[id], 6.0, 1.1, 0.0, 0.0)
  1056. ShowSyncHudMsg(VEO_EL_HUD, GayHUD, iModels[iModel_Select[id]], g_Frags[id], RANGOS[g_Rango[id]][FRAGS] - g_Frags[id], RANGOS[g_Rango[id]][NAME], g_Rango[id], g_Puntos[id])
  1057. }
  1058. }
  1059. }
  1060.  
  1061. public Stats(id)
  1062. {
  1063. client_print_color(id, print_team_default, "%s Se imprimieron las estadisticas en tu consola", g_TAG)
  1064. console_print(id, "/*********************\")
  1065. console_print(id, "-.Nivel: %d", g_Rango[id])
  1066. console_print(id, "-.Rango: %s", RANGOS[g_Rango[id]][NAME])
  1067. console_print(id, "-.Frags: %d", g_Frags[id])
  1068. console_print(id, "-.Puntos: %d", g_Puntos[id])
  1069. console_print(id, "\*********************/")
  1070. }
  1071.  
  1072. public UnLock(id)
  1073. {
  1074. client_print_color(id, print_team_default, "%s Se imprimieron las skins, en tu consola", g_TAG)
  1075.  
  1076. console_print(id, "/*********************\")
  1077. for(new i = 0; i <sizeof ARMAS; i++)
  1078. console_print(id, "-.%s [%s]", ARMAS[i][ITEM], i_Lock[id][i] ? "BLOQUEADA" : "DESBLOQUEADA")
  1079. console_print(id, "\*********************/")
  1080. }
  1081.  
  1082. public fw_DeathEvento()
  1083. {
  1084. new A = read_data(1)
  1085. new V = read_data(2)
  1086.  
  1087. if(A == V || !is_user_connected(A) || !is_user_connected(V) || g_Frags[A] >= MAX_FRAGS)
  1088. return PLUGIN_HANDLED;
  1089.  
  1090. new number = random_num(5, 50)
  1091. new random_caja = random_num(0, 500)
  1092.  
  1093. if(random_caja == 234){
  1094. if(get_user_health(A) >= 200)return PLUGIN_HANDLED;
  1095. g_Cajas[A]++
  1096. fw_Menu_Cajas(A)
  1097. client_print_color(A, print_team_default, "%s Felicidades encontraste una caja tienes ^4%d^1/^4%d", g_TAG, g_Cajas[A], MAX_CAJAS)
  1098. }
  1099.  
  1100. g_Puntos[A] += number
  1101. g_Frags[A]++
  1102. Aumento(A)
  1103. return PLUGIN_HANDLED;
  1104. }
  1105.  
  1106. public fw_Menu_Cajas(id)
  1107. {
  1108. new title[1000];
  1109. formatex(title, charsmax(title), "\r* \wMENU DE CAJAS^n\r* \wTUS CAJAS \w(\y%d\w)", g_Cajas[id]);
  1110.  
  1111. new menu = menu_create(title, "HandCajas")
  1112. new form[300];
  1113. if(!g_Cajas[id]) formatex(form, charsmax(form), "NO TIENES CAJAS^n^n\yNOTA:\wPUEDES GANAR CAJAS^n MATANDO")
  1114. else formatex(form, charsmax(form), "ABRIR CAJA%s \r(\d%d\r)^n^n\yNOTA: \wPUEDES GANAR CAJAS^n MATANDO", g_Cajas[id] > 1 ? "S" : "", g_Cajas[id])
  1115. menu_additem(menu, form, _, _, menu_makecallback("CajasCall"))
  1116.  
  1117. menu_setprop(menu, MPROP_EXITNAME, "VOLVER^n \d||SG|| Sivernetico Gaming")
  1118. menu_display(id, menu, 0)
  1119. }
  1120.  
  1121. public CajasCall(id, menu, item)
  1122. {
  1123. if(g_Cajas[id])
  1124. return ITEM_ENABLED;
  1125. return ITEM_DISABLED
  1126. }
  1127.  
  1128. public HandCajas(id, menu, item)
  1129. {
  1130. if(item == MENU_EXIT)
  1131. {
  1132. fw_menu_principal(id)
  1133. return PLUGIN_HANDLED;
  1134. }
  1135.  
  1136. new number = random_num(0, charsmax(ARMAS))
  1137. if(i_Lock[id][number])
  1138. {
  1139. g_Cajas[id]--
  1140. i_Lock[id][number] = false
  1141. client_print_color(id, print_team_default, "%s Abriste una caja y obtuviste:^4 %s", g_TAG, ARMAS[number][ITEM])
  1142. }
  1143. else {
  1144. if(get_user_health(id) < 200){
  1145. g_Cajas[id]--
  1146. new number = random_num(1, 10);
  1147. numberhp[id] += number;
  1148.  
  1149. if(number > 200 - get_user_health(id))
  1150. {
  1151. console_print(id, "La cantidad que recibiste de hp es mayor a 200")
  1152. }
  1153.  
  1154. set_user_health(id, get_user_health(id)+numberhp[id])
  1155. client_print_color(id, print_team_default, "%s Abriste una caja y obtuviste:^4 +%dHP^1 Permanente", g_TAG, number)
  1156. }
  1157. }
  1158.  
  1159. fw_Menu_Cajas(id)
  1160. return PLUGIN_HANDLED;
  1161. }
  1162.  
  1163. Aumento(id)
  1164. {
  1165. if(g_Rango[id] >= MAX_RANGO-1)
  1166. return;
  1167.  
  1168. while(g_Frags[id] >= RANGOS[g_Rango[id]][FRAGS])
  1169. {
  1170. g_Rango[id]++
  1171. client_print_color(id, print_team_default, "%s Felicidades subiste al rango:^4 %s", g_TAG, RANGOS[g_Rango[id]][NAME])
  1172. client_cmd(id, "spk sound/%s", RankSound)
  1173. }
  1174.  
  1175. }
  1176.  
  1177. public fw_menu_skins(id)
  1178. {
  1179. new menu = menu_create("\wMENU DE SKINES:\y^n^n\yNOTA: \wLAS ARMAS SE DESBLOQUEAN^nCON PUNTOS Y NIVELES^nPAGINA \y", "Hand1")
  1180. for(new i = 0; i <sizeof ARMAS; i++){
  1181.  
  1182. new forat[400];
  1183. if(iEquip[id][i]) formatex(forat, charsmax(forat), "%s [\yEQUIPADA\w]", ARMAS[i][ITEM])
  1184. else if(i_Lock[id][i]) formatex(forat, charsmax(forat), "%s \r[\dBLOQUEADA\r]", ARMAS[i][ITEM])
  1185. else formatex(forat, charsmax(forat), "%s [\yDESBLOQUEADA\w]", ARMAS[i][ITEM])
  1186.  
  1187. menu_additem(menu, forat)
  1188. }
  1189. menu_setprop(menu, MPROP_NEXTNAME, "SIGUIENTE")
  1190. menu_setprop(menu, MPROP_BACKNAME, "ANTERIOR")
  1191. menu_setprop(menu, MPROP_EXITNAME, "SALIR^n \d||SG|| Sivernetico Gaming")
  1192. menu_display(id, menu, 0)
  1193. }
  1194.  
  1195. public Hand1(id, menu, item)
  1196. {
  1197. if(item == MENU_EXIT)
  1198. {
  1199. menu_destroy(menu)
  1200. return PLUGIN_HANDLED;
  1201. }
  1202.  
  1203. g_Select[id]=item
  1204. fw_skin_select(id)
  1205. return PLUGIN_HANDLED;
  1206. }
  1207.  
  1208. public fw_skin_select(id)
  1209. {
  1210. new title[150]
  1211. formatex(title, charsmax(title), "\
  1212. \wTUS PUNTOS: (\y%d\w)^n\
  1213. TU NIVEL: (\y%d\w)^n^n\
  1214. REQUISITOS: \y%s^n\
  1215. \wNIVEL:\r %d \y|\w PUNTOS:\r %d\w", g_Puntos[id], g_Rango[id],ARMAS[g_Select[id]][ITEM], ARMAS[g_Select[id]][NIVEL], ARMAS[g_Select[id]][PUNTOS])
  1216. new menu = menu_create(title, "Hand2")
  1217. if(i_Lock[id][g_Select[id]]) menu_additem(menu, "DESBLOQUEAR^n", _, _, menu_makecallback("Callback"))
  1218. else if(iEquip[id][g_Select[id]])menu_additem(menu, "DESEQUIPAR^n")
  1219. else menu_additem(menu, "EQUIPAR^n")
  1220. menu_additem(menu, "\wNO, GRACIAS.^n\r*- \wVOLVER AL MENU ANTERIOR^n^n\yNOTA:\wAL COMPRAR UN^nARMA SOLO TE^nRESTARA PUNTOS")
  1221. menu_setprop(menu, MPROP_EXITNAME, "VOLVER^n \d||SG|| Sivernetico Gaming")
  1222. menu_display(id, menu, 0)
  1223. }
  1224.  
  1225. public Callback(id, menu, item)
  1226. {
  1227. if(g_Puntos[id] < ARMAS[g_Select[id]][PUNTOS] || g_Rango[id] < ARMAS[g_Select[id]][NIVEL])
  1228. return ITEM_DISABLED;
  1229. return ITEM_ENABLED;
  1230. }
  1231.  
  1232. public Hand2(id, menu, item)
  1233. {
  1234. if(item == MENU_EXIT)
  1235. {
  1236. fw_menu_skins(id)
  1237. return PLUGIN_HANDLED;
  1238. }
  1239.  
  1240. switch(item)
  1241. {
  1242. case 0:
  1243. {
  1244. if(i_Lock[id][g_Select[id]])
  1245. {
  1246. i_Lock[id][g_Select[id]]=false
  1247. g_Puntos[id]-=ARMAS[g_Select[id]][PUNTOS]
  1248. fw_skin_select(id)
  1249. client_print_color(id, print_team_default, "%s Desbloqueaste el arma:^4 %s", g_TAG, ARMAS[g_Select[id]][ITEM])
  1250. }
  1251. else if(iEquip[id][g_Select[id]])
  1252. {
  1253. iEquip[id][g_Select[id]]=false
  1254. client_print_color(id, print_team_default, "%s Desequipaste el arma:^4 %s", g_TAG, ARMAS[g_Select[id]][ITEM])
  1255. }
  1256. else
  1257. {
  1258. iEquip[id][g_Select[id]]=true
  1259. client_print_color(id, print_team_default, "%s Equipaste el arma:^4 %s", g_TAG, ARMAS[g_Select[id]][ITEM])
  1260. }
  1261. }
  1262. case 1: fw_menu_skins(id);
  1263. }
  1264.  
  1265. return PLUGIN_HANDLED;
  1266. }
  1267.  
  1268. public Event_CurWeapon(id)
  1269. {
  1270. new weaponID = read_data(2)
  1271.  
  1272. for(new i = 0; i <sizeof ARMAS; i++)
  1273. {
  1274. if(weaponID == ARMAS[i][CSW_WEAPON])
  1275. {
  1276. if(iEquip[id][i])
  1277. set_pev(id, pev_viewmodel2, ARMAS[i][MODEL])
  1278. }
  1279. }
  1280.  
  1281. return PLUGIN_CONTINUE
  1282. }
  1283.  
  1284. public LoadPrefixes(id)
  1285. {
  1286. if(!(get_user_flags(id) & FLAG_LOAD))
  1287. {
  1288. console_print(id, "%L", LANG_SERVER, "PREFIX_PERMISSION", in_prefix)
  1289. return PLUGIN_HANDLED
  1290. }
  1291.  
  1292. TrieClear(pre_ips_collect)
  1293. TrieClear(pre_names_collect)
  1294. TrieClear(pre_steamids_collect)
  1295. TrieClear(pre_flags_collect)
  1296.  
  1297. line = 0, length = 0, pre_flags_count = 0, pre_ips_count = 0, pre_names_count = 0;
  1298.  
  1299. if(!file_exists(file_prefixes))
  1300. {
  1301. formatex(error, charsmax(error), "%L", LANG_SERVER, "PREFIX_NOT_FOUND", in_prefix, file_prefixes)
  1302. set_fail_state(error)
  1303. }
  1304.  
  1305. server_print(separator)
  1306.  
  1307. while(read_file(file_prefixes, line++ , text, charsmax(text), length) && (pre_ips_count + pre_names_count + pre_steamids_count + pre_flags_count) <= MAX_PREFIXES)
  1308. {
  1309. if(!text[0] || text[0] == '^n' || text[0] == ';' || (text[0] == '/' && text[1] == '/'))
  1310. continue
  1311.  
  1312. parse(text, type, charsmax(type), key, charsmax(key), prefix, charsmax(prefix))
  1313. trim(prefix)
  1314.  
  1315. if(!type[0] || !prefix[0] || !key[0])
  1316. continue
  1317.  
  1318. replace_all(prefix, charsmax(prefix), "!g", "^x04")
  1319. replace_all(prefix, charsmax(prefix), "!t", "^x03")
  1320. replace_all(prefix, charsmax(prefix), "!n", "^x01")
  1321.  
  1322. switch(type[0])
  1323. {
  1324. case 'f':
  1325. {
  1326. pre_flags_count++
  1327. TrieSetString(pre_flags_collect, key, prefix)
  1328. server_print("%L", LANG_SERVER, "PREFIX_LOAD_FLAG", in_prefix, prefix, key[0])
  1329. }
  1330. case 'i':
  1331. {
  1332. pre_ips_count++
  1333. TrieSetString(pre_ips_collect, key, prefix)
  1334. server_print("%L", LANG_SERVER, "PREFIX_LOAD_IP", in_prefix, prefix, key)
  1335. }
  1336. case 's':
  1337. {
  1338. pre_steamids_count++
  1339. TrieSetString(pre_steamids_collect, key, prefix)
  1340. server_print("%L", LANG_SERVER, "PREFIX_LOAD_STEAMID", in_prefix, prefix, key)
  1341. }
  1342. case 'n':
  1343. {
  1344. pre_names_count++
  1345. TrieSetString(pre_names_collect, key, prefix)
  1346. server_print("%L", LANG_SERVER, "PREFIX_LOAD_NAME", in_prefix, prefix, key)
  1347. }
  1348. default:
  1349. {
  1350. continue
  1351. }
  1352. }
  1353. }
  1354.  
  1355. if(pre_flags_count <= 0 && pre_ips_count <= 0 && pre_steamids_count <= 0 && pre_names_count <= 0)
  1356. {
  1357. server_print("%L", LANG_SERVER, "PREFIX_NO", in_prefix)
  1358. }
  1359.  
  1360. get_user_name(id, g_name, charsmax(g_name))
  1361. server_print("%L", LANG_SERVER, "PREFIX_LOADED_BY", in_prefix, g_name)
  1362. console_print(id, "%L", LANG_SERVER, "PREFIX_LOADED", in_prefix)
  1363.  
  1364. server_print(separator)
  1365.  
  1366. for(new i = 1; i <= g_maxplayers; i++)
  1367. {
  1368. num_to_str(i, str_id, charsmax(str_id))
  1369. TrieDeleteKey(client_prefix, str_id)
  1370. PutPrefix(i)
  1371. }
  1372.  
  1373. return PLUGIN_HANDLED
  1374. }
  1375.  
  1376. public LoadBadPrefixes(id)
  1377. {
  1378. if(!get_pcvar_num(g_bad_prefix))
  1379. {
  1380. console_print(id, "%L", LANG_SERVER, "BADP_OFF", in_prefix)
  1381. return PLUGIN_HANDLED
  1382. }
  1383.  
  1384. if(!(get_user_flags(id) & FLAG_LOAD))
  1385. {
  1386. console_print(id, "%L", LANG_SERVER, "BADP_PERMISSION", in_prefix)
  1387. return PLUGIN_HANDLED
  1388. }
  1389.  
  1390. TrieClear(bad_prefixes_collect)
  1391.  
  1392. line = 0, length = 0, bad_prefix_count = 0;
  1393.  
  1394. if(!file_exists(file_bad_prefixes))
  1395. {
  1396. console_print(id, "%L", LANG_SERVER, "BADP_NOT_FOUND", in_prefix, file_bad_prefixes)
  1397. return PLUGIN_HANDLED
  1398. }
  1399.  
  1400. server_print(separator)
  1401.  
  1402. while(read_file(file_bad_prefixes, line++ , text, charsmax(text), length) && bad_prefix_count <= MAX_BAD_PREFIXES)
  1403. {
  1404. if(!text[0] || text[0] == '^n' || text[0] == ';' || (text[0] == '/' && text[1] == '/'))
  1405. continue
  1406.  
  1407. parse(text, prefix, charsmax(prefix))
  1408.  
  1409. if(!prefix[0])
  1410. continue
  1411.  
  1412. bad_prefix_count++
  1413. TrieSetCell(bad_prefixes_collect, prefix, 1)
  1414. server_print("%L", LANG_SERVER, "BADP_LOAD", in_prefix, prefix)
  1415. }
  1416.  
  1417. if(bad_prefix_count <= 0)
  1418. {
  1419. server_print("%L", LANG_SERVER, "BADP_NO", in_prefix)
  1420. }
  1421.  
  1422. get_user_name(id, g_name, charsmax(g_name))
  1423. server_print("%L", LANG_SERVER, "BADP_LOADED_BY", in_prefix, g_name)
  1424. console_print(id, "%L", LANG_SERVER, "BADP_LOADED", in_prefix)
  1425.  
  1426. server_print(separator)
  1427.  
  1428. return PLUGIN_HANDLED
  1429. }
  1430.  
  1431. public HookSay(id)
  1432. {
  1433. read_args(g_typed, charsmax(g_typed))
  1434. remove_quotes(g_typed)
  1435.  
  1436. trim(g_typed)
  1437.  
  1438. if(equal(g_typed, "") || !is_user_connected(id))
  1439. return PLUGIN_HANDLED_MAIN
  1440.  
  1441. if(equal(g_typed, "/prefix"))
  1442. {
  1443. if(g_toggle[id])
  1444. {
  1445. g_toggle[id] = false
  1446. client_print(id, print_chat, "%L", LANG_SERVER, "PREFIX_OFF", in_prefix)
  1447. }
  1448. else
  1449. {
  1450. g_toggle[id] = true
  1451. client_print(id, print_chat, "%L", LANG_SERVER, "PREFIX_ON", in_prefix)
  1452. }
  1453.  
  1454. return PLUGIN_HANDLED_MAIN
  1455. }
  1456.  
  1457. if(!g_toggle[id])
  1458. return PLUGIN_CONTINUE
  1459.  
  1460. num_to_str(id, str_id, charsmax(str_id))
  1461.  
  1462. if((TrieGetString(client_prefix, str_id, temp_prefix, charsmax(temp_prefix)) && get_pcvar_num(g_say_characters) == 1) || (!TrieGetString(client_prefix, str_id, temp_prefix, charsmax(temp_prefix)) && get_pcvar_num(g_say_characters) == 2) || get_pcvar_num(g_say_characters) == 3)
  1463. {
  1464. if(check_say_characters(g_typed))
  1465. return PLUGIN_HANDLED_MAIN
  1466. }
  1467.  
  1468. get_user_name(id, g_name, charsmax(g_name))
  1469.  
  1470. g_team = cs_get_user_team(id)
  1471.  
  1472. if(temp_prefix[0])
  1473. {
  1474. formatex(g_message, charsmax(g_message), "^1%s ^4[^3%d^1-^3%s^4] ^3%s^4 %s :^3 %s", say_team_info[is_user_alive(id)][g_team], g_Rango[id], RANGOS[g_Rango[id]][NAME], temp_prefix, g_name, g_typed)
  1475. is_admin = true
  1476. }
  1477. else
  1478. {
  1479. formatex(g_message, charsmax(g_message), "^1%s ^4[^3%d^1-^3%s^4] ^3%s :^1 %s", say_team_info[is_user_alive(id)][g_team], g_Rango[id], RANGOS[g_Rango[id]][NAME], g_name, g_typed)
  1480. is_admin = false
  1481. }
  1482.  
  1483. get_pcvar_string(g_listen_flag, temp_cvar, charsmax(temp_cvar))
  1484.  
  1485. for(new i = 1; i <= g_maxplayers; i++)
  1486. {
  1487. if(!is_user_connected(i))
  1488. continue
  1489.  
  1490. if(is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i) || get_pcvar_num(g_listen) && get_user_flags(i) & read_flags(temp_cvar))
  1491. {
  1492. if(is_admin)
  1493. {
  1494. g_team = cs_get_user_team(i)
  1495. change_team_info(i, g_team_names[CS_TEAM_SPECTATOR])
  1496. send_message(g_message, i, i)
  1497. change_team_info(i, g_team_names[g_team])
  1498. }
  1499. else
  1500. {
  1501. send_message(g_message, id, i)
  1502. }
  1503. }
  1504. }
  1505.  
  1506. return PLUGIN_HANDLED_MAIN
  1507. }
  1508.  
  1509. public HookSayTeam(id)
  1510. {
  1511. read_args(g_typed, charsmax(g_typed))
  1512. remove_quotes(g_typed)
  1513.  
  1514. trim(g_typed)
  1515.  
  1516. if(equal(g_typed, "") || !is_user_connected(id))
  1517. return PLUGIN_HANDLED_MAIN
  1518.  
  1519. if(equal(g_typed, "/prefix"))
  1520. {
  1521. if(g_toggle[id])
  1522. {
  1523. g_toggle[id] = false
  1524. client_print(id, print_chat, "%L", LANG_SERVER, "PREFIX_OFF", in_prefix)
  1525. }
  1526. else
  1527. {
  1528. g_toggle[id] = true
  1529. client_print(id, print_chat, "%L", LANG_SERVER, "PREFIX_ON", in_prefix)
  1530. }
  1531.  
  1532. return PLUGIN_HANDLED_MAIN
  1533. }
  1534.  
  1535. if(!g_toggle[id])
  1536. return PLUGIN_CONTINUE
  1537.  
  1538. num_to_str(id, str_id, charsmax(str_id))
  1539.  
  1540. if((TrieGetString(client_prefix, str_id, temp_prefix, charsmax(temp_prefix)) && get_pcvar_num(g_say_characters) == 1) || (!TrieGetString(client_prefix, str_id, temp_prefix, charsmax(temp_prefix)) && get_pcvar_num(g_say_characters) == 2) || get_pcvar_num(g_say_characters) == 3)
  1541. {
  1542. if(check_say_characters(g_typed))
  1543. return PLUGIN_HANDLED_MAIN
  1544. }
  1545.  
  1546. get_user_name(id, g_name, charsmax(g_name))
  1547.  
  1548. g_team = cs_get_user_team(id)
  1549.  
  1550. if(temp_prefix[0])
  1551. {
  1552. formatex(g_message, charsmax(g_message), "^1%s ^4[^3%d^1-^3%s^4] ^3%s^4 %s :^3 %s", sayteam_team_info[is_user_alive(id)][g_team], g_Rango[id], RANGOS[g_Rango[id]][NAME], temp_prefix, g_name, g_typed)
  1553. is_admin = true
  1554. }
  1555. else
  1556. {
  1557. formatex(g_message, charsmax(g_message), "^1%s ^4[^3%d^1-^3%s^4] ^3%s :^1 %s", sayteam_team_info[is_user_alive(id)][g_team], g_Rango[id], RANGOS[g_Rango[id]][NAME], g_name, g_typed)
  1558. is_admin = false
  1559. }
  1560.  
  1561. get_pcvar_string(g_listen_flag, temp_cvar, charsmax(temp_cvar))
  1562.  
  1563. for(new i = 1; i <= g_maxplayers; i++)
  1564. {
  1565. if(!is_user_connected(i))
  1566. continue
  1567.  
  1568. if(get_user_team(id) == get_user_team(i) || get_pcvar_num(g_listen) && get_user_flags(i) & read_flags(temp_cvar))
  1569. {
  1570. if(is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i) || get_pcvar_num(g_listen) && get_user_flags(i) & read_flags(temp_cvar))
  1571. {
  1572. if(is_admin)
  1573. {
  1574. g_team = cs_get_user_team(i)
  1575. change_team_info(i, g_team_names[CS_TEAM_SPECTATOR])
  1576. send_message(g_message, i, i)
  1577. change_team_info(i, g_team_names[g_team])
  1578. }
  1579. else
  1580. {
  1581. send_message(g_message, id, i)
  1582. }
  1583. }
  1584. }
  1585. }
  1586.  
  1587. return PLUGIN_HANDLED_MAIN
  1588. }
  1589.  
  1590. public SetPlayerPrefix(id)
  1591. {
  1592. if(!get_pcvar_num(g_custom) || !get_pcvar_string(g_custom_flag, temp_cvar, charsmax(temp_cvar)))
  1593. {
  1594. console_print(id, "%L", LANG_SERVER, "CUSTOM_OFF", in_prefix)
  1595. return PLUGIN_HANDLED
  1596. }
  1597.  
  1598. if(!(get_user_flags(id) & read_flags(temp_cvar)))
  1599. {
  1600. console_print(id, "%L", LANG_SERVER, "CUSTOM_PERMISSION", in_prefix)
  1601. return PLUGIN_HANDLED
  1602. }
  1603.  
  1604. new input[128], target;
  1605. new arg_type[2], arg_prefix[32], arg_key[35];
  1606. new temp_str[16];
  1607.  
  1608. read_args(input, charsmax(input))
  1609. remove_quotes(input)
  1610. parse(input, arg_type, charsmax(arg_type), arg_key, charsmax(arg_key), arg_prefix, charsmax(arg_prefix))
  1611. trim(arg_prefix)
  1612.  
  1613. if(get_pcvar_num(g_bad_prefix) && is_bad_prefix(arg_prefix) && !equali(arg_prefix, ""))
  1614. {
  1615. console_print(id, "%L", LANG_SERVER, "CUSTOM_FORBIDDEN", in_prefix, arg_prefix)
  1616. return PLUGIN_HANDLED
  1617. }
  1618.  
  1619. if(get_pcvar_num(g_prefix_characters) && check_prefix_characters(arg_prefix))
  1620. {
  1621. console_print(id, "%L", LANG_SERVER, "CUSTOM_SYMBOL", in_prefix, arg_prefix, forbidden_prefixes_symbols[i])
  1622. return PLUGIN_HANDLED
  1623. }
  1624.  
  1625. switch(arg_type[0])
  1626. {
  1627. case 'f':
  1628. {
  1629. target = 0
  1630. temp_str = "Flag"
  1631. }
  1632. case 'i':
  1633. {
  1634. target = find_player("d", arg_key)
  1635. temp_str = "IP"
  1636. }
  1637. case 's':
  1638. {
  1639. target = find_player("c", arg_key)
  1640. temp_str = "SteamID"
  1641. }
  1642. case 'n':
  1643. {
  1644. target = find_player("a", arg_key)
  1645. temp_str = "Name"
  1646. }
  1647. default:
  1648. {
  1649. console_print(id, "%L", LANG_SERVER, "CUSTOM_INVALID", in_prefix, arg_type)
  1650. return PLUGIN_HANDLED
  1651. }
  1652. }
  1653.  
  1654. get_user_name(id, g_name, charsmax(g_name))
  1655.  
  1656. if(equali(arg_prefix, ""))
  1657. {
  1658. find_and_delete(arg_type, arg_key)
  1659.  
  1660. if(target)
  1661. {
  1662. PutPrefix(target)
  1663. }
  1664.  
  1665. console_print(id, "%L", LANG_SERVER, "CUSTOM_REMOVE", in_prefix, temp_str, arg_key)
  1666. server_print("%L", LANG_SERVER, "CUSTOM_REMOVE_INFO", in_prefix, g_name, temp_str, arg_key)
  1667. return PLUGIN_HANDLED
  1668. }
  1669.  
  1670. find_and_delete(arg_type, arg_key)
  1671.  
  1672. formatex(text, charsmax(text), "^"%s^" ^"%s^" ^"%s^"", arg_type, arg_key, arg_prefix)
  1673. write_file(file_prefixes, text, -1)
  1674.  
  1675. switch(arg_type[0])
  1676. {
  1677. case 'f':
  1678. {
  1679. TrieSetString(pre_flags_collect, arg_key, arg_prefix)
  1680. }
  1681. case 'i':
  1682. {
  1683. TrieSetString(pre_ips_collect, arg_key, arg_prefix)
  1684. }
  1685. case 's':
  1686. {
  1687. TrieSetString(pre_steamids_collect, arg_key, arg_prefix)
  1688. }
  1689. case 'n':
  1690. {
  1691. TrieSetString(pre_names_collect, arg_key, arg_prefix)
  1692. }
  1693. }
  1694.  
  1695. if(target)
  1696. {
  1697. num_to_str(target, str_id, charsmax(str_id))
  1698. TrieSetString(client_prefix, str_id, arg_prefix)
  1699. }
  1700.  
  1701. console_print(id, "%L", LANG_SERVER, "CUSTOM_CHANGE", in_prefix, temp_str, arg_key, arg_prefix)
  1702. server_print("%L", LANG_SERVER, "CUSTOM_CHANGE_INFO", in_prefix, g_name, temp_str, arg_key, arg_prefix)
  1703.  
  1704. return PLUGIN_HANDLED
  1705. }
  1706.  
  1707.  
  1708. public client_infochanged(id)
  1709. {
  1710. if(!is_user_connected(id))
  1711. return PLUGIN_CONTINUE
  1712.  
  1713. new g_old_name[32];
  1714.  
  1715. get_user_info(id, "name", g_name, charsmax(g_name))
  1716. get_user_name(id, g_old_name, charsmax(g_old_name))
  1717.  
  1718. if(!equal(g_name, g_old_name))
  1719. {
  1720. num_to_str(id, str_id, charsmax(str_id))
  1721. TrieSetString(client_prefix, str_id, "")
  1722. set_task(0.5, "PutPrefix", id)
  1723. return PLUGIN_HANDLED
  1724. }
  1725.  
  1726. return PLUGIN_CONTINUE
  1727. }
  1728.  
  1729. public PutPrefix(id)
  1730. {
  1731. num_to_str(id, str_id, charsmax(str_id))
  1732. TrieSetString(client_prefix, str_id, "")
  1733.  
  1734. new sflags[32], temp_flag[2];
  1735. get_flags(get_user_flags(id), sflags, charsmax(sflags))
  1736.  
  1737. for(new i = 0; i <= charsmax(sflags); i++)
  1738. {
  1739. formatex(temp_flag, charsmax(temp_flag), "%c", sflags[i])
  1740.  
  1741. if(TrieGetString(pre_flags_collect, temp_flag, temp_prefix, charsmax(temp_prefix)))
  1742. {
  1743. TrieSetString(client_prefix, str_id, temp_prefix)
  1744. }
  1745. }
  1746.  
  1747. get_user_ip(id, temp_key, charsmax(temp_key), 1)
  1748.  
  1749. if(TrieGetString(pre_ips_collect, temp_key, temp_prefix, charsmax(temp_prefix)))
  1750. {
  1751. TrieSetString(client_prefix, str_id, temp_prefix)
  1752. }
  1753.  
  1754. get_user_authid(id, temp_key, charsmax(temp_key))
  1755.  
  1756. if(TrieGetString(pre_steamids_collect, temp_key, temp_prefix, charsmax(temp_prefix)))
  1757. {
  1758. TrieSetString(client_prefix, str_id, temp_prefix)
  1759. }
  1760.  
  1761. get_user_name(id, temp_key, charsmax(temp_key))
  1762.  
  1763. if(TrieGetString(pre_names_collect, temp_key, temp_prefix, charsmax(temp_prefix)))
  1764. {
  1765. TrieSetString(client_prefix, str_id, temp_prefix)
  1766. }
  1767.  
  1768. return PLUGIN_HANDLED
  1769. }
  1770.  
  1771. send_message(const message[], const id, const i)
  1772. {
  1773. message_begin(MSG_ONE, g_saytxt, {0, 0, 0}, i)
  1774. write_byte(id)
  1775. write_string(message)
  1776. message_end()
  1777. }
  1778.  
  1779. change_team_info(const id, const team[])
  1780. {
  1781. message_begin(MSG_ONE, g_teaminfo,_, id)
  1782. write_byte(id)
  1783. write_string(team)
  1784. message_end()
  1785. }
  1786.  
  1787. bool:check_say_characters(const check_message[])
  1788. {
  1789. for(new i = 0; i < charsmax(forbidden_say_symbols); i++)
  1790. {
  1791. if(check_message[0] == forbidden_say_symbols[i])
  1792. {
  1793. return true
  1794. }
  1795. }
  1796. return false
  1797. }
  1798.  
  1799. bool:check_prefix_characters(const check_prefix[])
  1800. {
  1801. for(i = 0; i < charsmax(forbidden_prefixes_symbols); i++)
  1802. {
  1803. if(containi(check_prefix, forbidden_prefixes_symbols[i]) != -1)
  1804. {
  1805. return true
  1806. }
  1807. }
  1808. return false
  1809. }
  1810.  
  1811. bool:is_bad_prefix(const check_prefix[])
  1812. {
  1813. if(TrieGetCell(bad_prefixes_collect, check_prefix, temp_value))
  1814. {
  1815. return true
  1816. }
  1817. return false
  1818. }
  1819.  
  1820. find_and_delete(const arg_type[], const arg_key[])
  1821. {
  1822. line = 0, length = 0;
  1823.  
  1824. while(read_file(file_prefixes, line++ , text, charsmax(text), length))
  1825. {
  1826. if(!text[0] || text[0] == '^n' || text[0] == ';' || (text[0] == '/' && text[1] == '/'))
  1827. continue
  1828.  
  1829. parse(text, type, charsmax(type), key, charsmax(key), prefix, charsmax(prefix))
  1830. trim(prefix)
  1831.  
  1832. if(!type[0] || !prefix[0] || !key[0])
  1833. continue
  1834.  
  1835. if(!equal(arg_type, type) || !equal(arg_key, key))
  1836. continue
  1837.  
  1838. write_file(file_prefixes, "", line - 1)
  1839. }
  1840.  
  1841. switch(arg_type[0])
  1842. {
  1843. case 'f':
  1844. {
  1845. TrieDeleteKey(pre_flags_collect, arg_key)
  1846. }
  1847. case 'i':
  1848. {
  1849. TrieDeleteKey(pre_ips_collect, arg_key)
  1850. }
  1851. case 's':
  1852. {
  1853. TrieDeleteKey(pre_steamids_collect, arg_key)
  1854. }
  1855. case 'n':
  1856. {
  1857. TrieDeleteKey(pre_names_collect, arg_key)
  1858. }
  1859. }
  1860. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement