Advertisement
Guest User

mix maker

a guest
Apr 15th, 2020
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 44.90 KB | None | 0 0
  1. /*==========================================================================
  2. * Start Customization. *
  3. ===========================================================================*/
  4.  
  5. //====================[*Configurations*]===========================//
  6.  
  7. new const MixMaker_CFG[] = "Mix_Maker.cfg"
  8. new const MixMaker_Maps_File[] = "MixMaker_Maps.ini"
  9. new const MixMaker_CFG_Public[] = "publico.cfg"
  10. new const MixMaker_CFG_WarmUP[] = "practica.cfg"
  11. new const MixMaker_CFG_Closed[] = "cerrado.cfg"
  12. new const MixMaker_CFG_Rates[] = "rates.cfg"
  13. new const MixMaker_CFG_Live[] = "vale.cfg"
  14.  
  15. //====================[*Access to all admins commands*]===========================//
  16.  
  17. #define ADMIN_ACCESS ADMIN_CFG
  18.  
  19. /*==========================================================================
  20. * Customization ends here! Editing anything beyond *
  21. * here is not officially supported.Proceed at your own risk... *
  22. ===========================================================================*/
  23.  
  24. //====================[*Includes*]===========================//
  25.  
  26. #include <amxmodx>
  27. #include <amxmisc>
  28. #include <fun>
  29. #include <cstrike>
  30. #include <fakemeta>
  31. #include <hamsandwich>
  32.  
  33. //====================[*Define Plugin Version*]===========================//
  34.  
  35. new const MixMaker_Version[] = "10.0"
  36.  
  37. //====================[*Definitions*]===========================//
  38.  
  39. #define valids_teams(%1) (CS_TEAM_T <= cs_get_user_team(%1) <= CS_TEAM_CT)
  40. #define TEAM_SELECT_VGUI_MENU_ID 2
  41. #define MAXMAPS 20
  42. #define MAPLEN 64
  43.  
  44. //====================[*Global Registrations*]===========================//
  45.  
  46. /* pCvars */
  47. new Enable
  48. new ShowExtras
  49. new TVTEnable
  50. new SetToPublic
  51. new MinPlayers
  52. new LiveType
  53. new Sounds
  54. new SoundsType
  55. new Swaper
  56. new RoundsHalf
  57. new RoundsEnd
  58. new defPassword
  59. new PasswordMode
  60. new ShowBestsFraggers
  61. new NoNick
  62. new NoSay
  63. new NoSayType
  64. new TLPrefix
  65.  
  66. /* pCvars Strings */
  67. new GameName
  68. new ChtPrefix
  69.  
  70. /* Strings */
  71. new szGameName[33]
  72. new szPrefix[33]
  73.  
  74. /* Cvars Pointer */
  75. new pRestart
  76. new pAlltalk
  77. new pPassword
  78.  
  79. /* Messages */
  80. new SayText
  81. new TeamScore
  82.  
  83. /* Players */
  84. new MaxPlayers
  85.  
  86. /* Models */
  87. new const CsInternalModel:CTsModels[] =
  88. {
  89. CS_CT_URBAN,
  90. CS_CT_GSG9,
  91. CS_CT_SAS,
  92. CS_CT_GIGN
  93. }
  94.  
  95. new const CsInternalModel:TsModels[] =
  96. {
  97. CS_T_TERROR,
  98. CS_T_LEET,
  99. CS_T_ARCTIC,
  100. CS_T_GUERILLA
  101. }
  102.  
  103. /* Score */
  104. new ScoreCT
  105. new TotalCT
  106. new ScoreT
  107. new TotalT
  108. new FragsHalf
  109. new FragsEnd
  110. new BestFragger1
  111. new BestFragger2
  112.  
  113. /* Sync Hud */
  114. new shCountdown
  115. new Countdown
  116.  
  117. /* Ban Type */
  118. new BanType[33]
  119.  
  120. /* Maps File */
  121. new Maps[MAXMAPS+1][MAPLEN+1]
  122.  
  123. /* Booleans */
  124. new bool:Half
  125. new bool:End
  126. new bool:bChangeteam
  127. new bool:FirstSpawn[33]
  128. new bool:TLCounterTerrorist[33]
  129. new bool:TLTerrorist[33]
  130. new bool:BlockClCorpse[33]
  131. new bool:SetPublic
  132.  
  133. //====================[*Plugin Start*]===========================//
  134.  
  135. public plugin_init()
  136. {
  137. /* Plugin Registration */
  138. register_plugin("Mix Maker",MixMaker_Version,"#8 SickneSS")
  139.  
  140. /* Dictionary */
  141. register_dictionary("common.txt")
  142.  
  143. /* Cvars */
  144. register_cvar("mixm_version","10.0",FCVAR_SPONLY|FCVAR_SERVER)
  145. register_cvar("mixm_author","#8 SickneSS",FCVAR_SPONLY|FCVAR_SERVER)
  146.  
  147. /* pCvars */
  148. Enable = register_cvar("mixm_enable","0")
  149. ShowExtras = register_cvar("mixm_smextras","1")
  150. TVTEnable = register_cvar("mixm_tvtenable","1")
  151. SetToPublic = register_cvar("mixm_set2public","1")
  152. MinPlayers = register_cvar("mixm_minplayers","3")
  153. LiveType = register_cvar("mixm_livetype","0")
  154. Sounds = register_cvar("mixm_sounds","1")
  155. SoundsType = register_cvar("mixm_soundstype","0")
  156. Swaper = register_cvar("mixm_swapteams","1")
  157. RoundsHalf = register_cvar("mixm_rounds2half","15")
  158. RoundsEnd = register_cvar("mixm_rounds2end","16")
  159. defPassword = register_cvar("mixm_defpassword","1337")
  160. PasswordMode = register_cvar("mixm_pshowmode","2")
  161. ShowBestsFraggers = register_cvar("mixm_showbestsfraggers","1")
  162. NoNick = register_cvar("mixm_nonick","0")
  163. NoSay = register_cvar("mixm_nosay","0")
  164. NoSayType = register_cvar("mixm_nosaytype","1")
  165. TLPrefix = register_cvar("mixm_tlprefix","[TL]")
  166.  
  167. /* pCvars Strings */
  168. GameName = register_cvar("mixm_gamename","Mix Maker v10.0")
  169. ChtPrefix = register_cvar("mixm_prefix","!y[!gMix Maker!y]")
  170.  
  171. /* Console Commands */
  172. register_concmd("amx_password","cmdSetPassword",ADMIN_ACCESS,"^"password^"")
  173. register_concmd("amx_alltalk","cmdSetAlltalk",ADMIN_ACCESS,"^n* 1 : Activado^n* 0 : Desactivado")
  174. register_concmd("amx_vale","cmdLive",ADMIN_ACCESS)
  175. register_concmd("amx_live","cmdLive",ADMIN_ACCESS)
  176. register_concmd("amx_nuevo","cmdNew",ADMIN_ACCESS)
  177. register_concmd("amx_new","cmdNew",ADMIN_ACCESS)
  178.  
  179. /* Say Commands */
  180. register_saycmd("on","cmdOn",ADMIN_ACCESS)
  181. register_saycmd("off","cmdOff",ADMIN_ACCESS)
  182. register_saycmd("spec","cmdSpec",ADMIN_ACCESS)
  183. register_saycmd("spect","cmdSpec",ADMIN_ACCESS)
  184. register_saycmd("vale","cmdLive",ADMIN_ACCESS)
  185. register_saycmd("live","cmdLive",ADMIN_ACCESS)
  186. register_saycmd("cfg","MixMenu",ADMIN_ACCESS)
  187. register_saycmd("mix","MixMenu",ADMIN_ACCESS)
  188. register_saycmd("menu","MixMenu",ADMIN_ACCESS)
  189. register_saycmd("map","MapsMenu",ADMIN_ACCESS)
  190. register_saycmd("maps","MapsMenu",ADMIN_ACCESS)
  191. register_saycmd("nonick","cmdNoNick",ADMIN_ACCESS)
  192. register_saycmd("noname","cmdNoNick",ADMIN_ACCESS)
  193. register_saycmd("nosay","cmdNoSay",ADMIN_ACCESS)
  194. register_saycmd("nochat","cmdNoSay",ADMIN_ACCESS)
  195. register_saycmd("block","cmdTeams",ADMIN_ACCESS)
  196.  
  197. /* Hooks & Commands */
  198. register_concmd("chooseteam","HookChangeteam")
  199. register_concmd("jointeam","HookChangeteam")
  200. register_clcmd("say","cmdSayPassOrSayAlltalk")
  201. register_clcmd("say_team","cmdSayPassOrSayAlltalk")
  202. register_clcmd("say","cmdBlock")
  203. register_clcmd("say","cmdSayRestart",ADMIN_ACCESS)
  204.  
  205. /* Forwards */
  206. register_forward(FM_GetGameDescription,"fwdGamename")
  207. register_forward(FM_ClientUserInfoChanged,"fwdClientInfoChanged")
  208.  
  209. /* Ham Registration */
  210. RegisterHam(Ham_Spawn,"player","HamSpawnPlayer",1)
  211.  
  212. /* Messages */
  213. register_message(get_user_msgid("TeamScore"),"MessageTeamScore")
  214. register_message(get_user_msgid("SayText"),"MessageNameChange")
  215. register_message(get_user_msgid("ShowMenu"),"MessageShowMenu")
  216. register_message(get_user_msgid("VGUIMenu"),"MessageVGUIMenu")
  217. register_message(get_user_msgid("ClCorpse"),"MessageClCorpse")
  218.  
  219. /* Events */
  220. register_event("TeamScore","EventTeamScore","a")
  221. register_logevent("LogEventRoundEnd",2,"1=Round_End")
  222. register_event("HLTV","EventHLTV","a","1=0","2=0")
  223. }
  224. //----------------------------------------------------------//
  225. public plugin_cfg()
  226. {
  227. /* Mix Maker Configuration File */
  228. new Path[256]
  229. get_configsdir(Path,255)
  230. format(Path,255,"%s/%s",Path,MixMaker_CFG)
  231.  
  232. if(!file_exists(Path))
  233. log_amx("[AMXX] Configuration file can't be located")
  234. else
  235. server_cmd("exec %s",Path)
  236.  
  237. /* Cvars Pointer */
  238. pRestart = get_cvar_pointer("sv_restart")
  239. pAlltalk = get_cvar_pointer("sv_alltalk")
  240. pPassword = get_cvar_pointer("sv_password")
  241.  
  242. /* Players */
  243. MaxPlayers = get_maxplayers()
  244.  
  245. /* Messages */
  246. SayText = get_user_msgid("SayText")
  247. TeamScore = get_user_msgid("TeamScore")
  248.  
  249. /* Strings */
  250. get_pcvar_string(GameName,szGameName,32)
  251. get_pcvar_string(ChtPrefix,szPrefix,32)
  252.  
  253. /* Continue working with amx_off */
  254. if(is_plugin_loaded("Pause Plugins") != -1)
  255. server_cmd("amx_pausecfg add ^"Mix Maker^"")
  256. }
  257.  
  258. //====================[*Set to Public*]===========================//
  259.  
  260. public EventHLTV()
  261. {
  262. new GetPlayers = get_playersnum(1)
  263. new Players = get_pcvar_num(MinPlayers)
  264.  
  265. if(GetPlayers <= Players && get_pcvar_num(SetToPublic))
  266. {
  267. if(SetPublic)
  268. {
  269. ScoreCT = 0
  270. TotalCT = 0
  271. ScoreT = 0
  272. TotalT = 0
  273. Half = false
  274. End = false
  275. bChangeteam = false
  276. server_cmd("exec %s",MixMaker_CFG_Public)
  277. server_exec()
  278. }
  279. else
  280. {
  281. SetPublic = true
  282. ChatColor(0,"%s !ySe seteara el servidor en modo publico por la cantidad de personas en el servidor",szPrefix)
  283. }
  284.  
  285. }
  286. }
  287.  
  288. //====================[*Game Name*]===========================//
  289.  
  290. public fwdGamename()
  291. {
  292. forward_return(FMV_STRING,szGameName)
  293. return FMRES_SUPERCEDE
  294. }
  295.  
  296. //====================[*Welcome Message*]===========================//
  297.  
  298. public client_putinserver(id)
  299. FirstSpawn[id] = true
  300. //----------------------------------------------------------//
  301. public HamSpawnPlayer(id)
  302. {
  303. if(get_pcvar_num(Enable) && FirstSpawn[id])
  304. {
  305. ChatColor(id,"!yEste servidor usa !tMix Maker v%s !yby !g#8 SickneSS",MixMaker_Version)
  306. FirstSpawn[id] = false
  307. }
  308.  
  309. }
  310. //----------------------------------------------------------//
  311. public client_disconnect(id)
  312. {
  313. if(FirstSpawn[id] || TLCounterTerrorist[id] || TLTerrorist[id] || BlockClCorpse[id])
  314. {
  315. FirstSpawn[id] = false
  316. TLCounterTerrorist[id] = false
  317. TLTerrorist[id] = false
  318. BlockClCorpse[id] = false
  319. }
  320.  
  321. if(BanType[id] > 0)
  322. BanType[id] = 0
  323. }
  324.  
  325. //====================[*AMXX*]===========================//
  326.  
  327. public cmdOn(id,level,cid)
  328. {
  329. if(!cmd_access(id,level,cid,1))
  330. return PLUGIN_HANDLED
  331.  
  332. server_cmd("amx_on")
  333. return PLUGIN_HANDLED
  334. }
  335. //----------------------------------------------------------//
  336. public cmdOff(id,level,cid)
  337. {
  338. if(!cmd_access(id,level,cid,1))
  339. return PLUGIN_HANDLED
  340.  
  341. server_cmd("amx_off")
  342. return PLUGIN_HANDLED
  343. }
  344.  
  345. //====================[*Goto Spectator*]===========================//
  346.  
  347. public cmdSpec(id)
  348. {
  349. if(!valids_teams(id))
  350. ChatColor(id,"%s Ya eres espectador",szPrefix)
  351.  
  352. if(is_user_alive(id))
  353. {
  354. set_pev(id,pev_deadflag,DEAD_DEAD)
  355. cs_set_user_team(id,CS_TEAM_SPECTATOR)
  356.  
  357. BlockClCorpse[id] = true
  358. }
  359. else
  360. ChatColor(id,"%s Debes estar vivo para usar este comando",szPrefix)
  361.  
  362. return PLUGIN_HANDLED
  363. }
  364. //----------------------------------------------------------//
  365. public MessageClCorpse()
  366. {
  367. static id
  368.  
  369. id = get_msg_arg_int(12)
  370.  
  371. if(BlockClCorpse[id])
  372. {
  373. BlockClCorpse[id] = false
  374.  
  375. return PLUGIN_HANDLED
  376. }
  377.  
  378. return PLUGIN_CONTINUE
  379. }
  380.  
  381. //====================[*Live*]===========================//
  382.  
  383. public cmdLive(id,level,cid)
  384. {
  385. if(!cmd_access(id,level,cid,1))
  386. return PLUGIN_HANDLED
  387.  
  388. if(get_pcvar_num(Enable))
  389. {
  390. new name[32]
  391. get_user_name(id,name,31)
  392.  
  393. ChatColor(0,"%s ADMIN %s : Ejecuto el vale",szPrefix,name)
  394.  
  395. if(get_pcvar_num(Swaper))
  396. bChangeteam = true
  397.  
  398. server_cmd("amx_off")
  399.  
  400. new szPassword[64]
  401. get_pcvar_string(pPassword,szPassword,63)
  402.  
  403. new szDefPassword[64]
  404. get_pcvar_string(defPassword,szDefPassword,63)
  405.  
  406. if(!szPassword[0])
  407. set_pcvar_string(pPassword,szDefPassword)
  408.  
  409. if(Half)
  410. {
  411. ScoreCT = 0
  412. ScoreT = 0
  413. }
  414. else
  415. {
  416. ScoreCT = 0
  417. TotalCT = 0
  418. ScoreT = 0
  419. TotalT = 0
  420. End = false
  421. }
  422.  
  423. switch(get_pcvar_num(LiveType))
  424. {
  425. case 0 :
  426. {
  427. Countdown = 5
  428. shCountdown = CreateHudSyncObj()
  429. cmdCountdown()
  430. }
  431.  
  432. case 1 : cmdVale()
  433.  
  434. case 2 :
  435. {
  436. server_cmd("exec %s",MixMaker_CFG_Live)
  437. server_exec()
  438. }
  439. }
  440. }
  441. else
  442. ChatColor(id,"%s Mix Maker desactivado",szPrefix)
  443. return PLUGIN_HANDLED
  444. }
  445. //----------------------------------------------------------//
  446. public cmdCountdown()
  447. {
  448. if(Countdown <= 0)
  449. cmdVale()
  450. else
  451. {
  452. if(get_pcvar_num(Sounds))
  453. {
  454. new szNum[6]
  455. num_to_word(Countdown,szNum,5)
  456.  
  457. client_cmd(0,"spk ^"%s/%s^"",get_pcvar_num(SoundsType) ? "vox" : "fvox",szNum)
  458. }
  459.  
  460. set_hudmessage(255,0,0,-1.0,-1.0,1,6.0,1.0)
  461. ShowSyncHudMsg(0,shCountdown,"[%d]",Countdown)
  462.  
  463. set_task(1.0,"cmdCountdown")
  464.  
  465. if(Countdown == 3)
  466. {
  467. ChatColor(0,"%s Alltalk : %s",szPrefix,get_pcvar_num(pAlltalk) ? "Activado" : "Desactivado")
  468.  
  469. new szPassword[64]
  470. get_pcvar_string(pPassword,szPassword,63)
  471.  
  472. if(szPassword[0])
  473. ChatColor(0,"%s Password : %s",szPrefix,szPassword)
  474.  
  475. }
  476. }
  477. Countdown --
  478. }
  479. //----------------------------------------------------------//
  480. public cmdVale()
  481. {
  482. set_hudmessage(64, 64, 64, -1.0, 0.17, 2, 0.1, 3.0, 0.05, 1.0, 1)
  483. show_hudmessage(0,"Vale al Restart de 3")
  484. set_task(2.0,"cmdRestart")
  485. set_task(5.0,"cmdRestart")
  486. set_task(8.0,"cmdRestart3")
  487. set_task(12.0,"cmdStart")
  488. }
  489. //----------------------------------------------------------//
  490. public cmdRestart()
  491. set_pcvar_num(pRestart,1)
  492. //----------------------------------------------------------//
  493. public cmdRestart3()
  494. set_pcvar_num(pRestart,3)
  495. //----------------------------------------------------------//
  496. public cmdStart()
  497. {
  498. set_hudmessage(44, 156, 122, -1.0, 0.17, 1, 0.1, 3.0, 0.05, 1.0, 1)
  499. show_hudmessage(0,"Comienza el Match^n%s Parte^nGood Luck & Have Fun",Half ? "Segunda" : "Primera")
  500. }
  501.  
  502. //====================[*Score And Swaper]===========================//
  503.  
  504. public EventTeamScore()
  505. {
  506. if(get_pcvar_num(Enable))
  507. {
  508. new szTeam[2]
  509. read_data(1,szTeam,1)
  510.  
  511. switch(szTeam[0])
  512. {
  513. case 'C' : ScoreCT = read_data(2)
  514.  
  515. case 'T' :
  516. {
  517. ScoreT = read_data(2)
  518. LogEventRoundEnd()
  519. }
  520. }
  521. }
  522. }
  523. //----------------------------------------------------------//
  524. public MessageTeamScore(id)
  525. {
  526. if(get_pcvar_num(Enable) && Half)
  527. UpdateTeamScore()
  528. }
  529. //----------------------------------------------------------//
  530. public LogEventRoundEnd()
  531. {
  532. if(get_pcvar_num(Enable))
  533. {
  534. new RoundsH = get_pcvar_num(RoundsHalf)
  535. new RoundsE = get_pcvar_num(RoundsEnd)
  536.  
  537. if(ScoreCT + ScoreT >= RoundsH && (!Half))
  538. {
  539. Half = true
  540.  
  541. FragsHalf = Best_Fraggers()
  542. BestFragger1 = get_user_frags(FragsHalf)
  543.  
  544. if(get_pcvar_num(Swaper))
  545. cmdSwap()
  546.  
  547. TotalCT = ScoreT
  548. TotalT = ScoreCT
  549.  
  550. ScoreCT = 0
  551. ScoreT = 0
  552.  
  553. set_pcvar_num(pRestart,1)
  554. }
  555.  
  556. if(Half)
  557. {
  558. UpdateTeamScore()
  559.  
  560. if(ScoreCT + TotalCT >= RoundsE)
  561. {
  562. set_hudmessage(64, 64, 255, -1.0, -1.0, 1)
  563. show_hudmessage(0,"Game Over^nCounter-Terrrorists Ganan El Mapa")
  564.  
  565. End = true
  566. }
  567.  
  568. if(ScoreT + TotalT >= RoundsE)
  569. {
  570. set_hudmessage(255, 64, 64, -1.0, -1.0, 1)
  571. show_hudmessage(0,"Game Over^nTerrorist Team Ganan El Mapa")
  572.  
  573. End = true
  574. }
  575.  
  576. if(ScoreCT + TotalCT >= RoundsH && ScoreT + TotalT >= RoundsH)
  577. {
  578. set_hudmessage(64, 255, 64, -1.0, -1.0, 1)
  579. show_hudmessage(0,"Game Over^nMapa Empatado")
  580.  
  581. End = true
  582. }
  583. }
  584.  
  585. if(End)
  586. {
  587. FragsEnd = Best_Fraggers()
  588. BestFragger2 = get_user_frags(FragsEnd)
  589.  
  590. End = false
  591. Half = false
  592. bChangeteam = false
  593. set_pcvar_num(Enable,0)
  594.  
  595. server_cmd("exec %s",MixMaker_CFG_WarmUP)
  596.  
  597. if(get_pcvar_num(ShowBestsFraggers))
  598. set_task(5.0,"BestFrgrs")
  599. }
  600. }
  601. }
  602. //----------------------------------------------------------//
  603. public cmdSwap()
  604. {
  605. new Players[32]
  606. new Num
  607. get_players(Players,Num,"ch")
  608.  
  609. new Index
  610. for(new i = 0;i < Num;i++)
  611. {
  612. Index = Players[i]
  613.  
  614. switch(cs_get_user_team(Index))
  615. {
  616. case CS_TEAM_CT : cs_set_user_team(Index,CS_TEAM_T,TsModels[random(sizeof (TsModels))])
  617.  
  618. case CS_TEAM_T : cs_set_user_team(Index,CS_TEAM_CT,CTsModels[random(sizeof (CTsModels))])
  619. }
  620. }
  621. }
  622. //----------------------------------------------------------//
  623. public Best_Fraggers()
  624. {
  625. new Players[32]
  626. new Num
  627. get_players(Players,Num,"ch")
  628.  
  629. new Index
  630. new GetFrags
  631. for(new i = 0;i < Num;i++)
  632. {
  633. Index = Players[i]
  634.  
  635. if(!GetFrags)
  636. GetFrags = Players[0]
  637.  
  638. if(get_user_frags(Index) > get_user_frags(GetFrags))
  639.  
  640. GetFrags = Index
  641. }
  642. return GetFrags
  643. }
  644. //----------------------------------------------------------//
  645. public BestFrgrs()
  646. {
  647. new BestF1[32]
  648. get_user_name(FragsHalf,BestF1,31)
  649.  
  650. new BestF2[32]
  651. get_user_name(FragsEnd,BestF2,31)
  652.  
  653. set_hudmessage(64, 64, 64, -1.0, 0.29, 2, 0.1, 10.0, 0.05, 1.0, 1)
  654. show_hudmessage(0,"Mas Fragger Primera Mitad %s Con %i Frags^nMas Fragger Segunda Mitad %s Con %i Frags",BestF1,BestFragger1,BestF2,BestFragger2)
  655. }
  656.  
  657. //====================[*Data Clear*]===========================//
  658.  
  659. public cmdNew(id,level,cid)
  660. {
  661. if(!cmd_access(id,level,cid,1))
  662. return PLUGIN_HANDLED
  663.  
  664. ScoreCT = 0
  665. TotalCT = 0
  666. ScoreT = 0
  667. TotalT = 0
  668. Half = false
  669. End = false
  670. bChangeteam = false
  671.  
  672. return PLUGIN_HANDLED
  673. }
  674.  
  675. //====================[*Block Change Team*]===========================//
  676.  
  677. public cmdTeams(id,level,cid)
  678. {
  679. if(!cmd_access(id,level,cid,1))
  680. return PLUGIN_HANDLED
  681.  
  682. if(!get_pcvar_num(Enable))
  683. return PLUGIN_HANDLED
  684.  
  685. new name[32]
  686. get_user_name(id,name,31)
  687.  
  688. bChangeteam = !bChangeteam
  689. ChatColor(0,"%s ADMIN %s : %sabilito el cambio de team",szPrefix,name,bChangeteam ? "Desh" : "H")
  690.  
  691. return PLUGIN_HANDLED
  692. }
  693. //----------------------------------------------------------//
  694. public MessageShowMenu(msgid, dest, id)
  695. {
  696. static team_select[] = "#Team_Select"
  697. static menu_text_code[sizeof team_select]
  698.  
  699. get_msg_arg_string(4, menu_text_code, sizeof menu_text_code - 1)
  700.  
  701. if(equal(menu_text_code, team_select))
  702. {
  703. if(get_pcvar_num(Enable) && bChangeteam)
  704. {
  705. ShowMenuTeams(id)
  706. return PLUGIN_HANDLED
  707. }
  708. }
  709.  
  710. return PLUGIN_CONTINUE
  711. }
  712. //----------------------------------------------------------//
  713. public MessageVGUIMenu(msgid, dest, id)
  714. {
  715. if (!(get_msg_arg_int(1) != TEAM_SELECT_VGUI_MENU_ID))
  716. {
  717. if(get_pcvar_num(Enable) && bChangeteam)
  718. {
  719. ShowMenuTeams(id)
  720. return PLUGIN_HANDLED
  721. }
  722. }
  723.  
  724. return PLUGIN_CONTINUE
  725. }
  726. //----------------------------------------------------------//
  727. public HookChangeteam(id)
  728. {
  729. if(get_pcvar_num(Enable) && bChangeteam)
  730. {
  731. if(!valids_teams(id))
  732. ShowMenuTeams(id)
  733. else
  734. ChatColor(id,"%s No puedes cambiarte de team en este momento",szPrefix)
  735.  
  736. return PLUGIN_HANDLED
  737. }
  738.  
  739. return PLUGIN_CONTINUE
  740. }
  741. //----------------------------------------------------------//
  742. public ShowMenuTeams(id)
  743. {
  744. new Menu = menu_create("\r[Mix Maker] \yTeams Menu :","ChangeTeam_Handler")
  745.  
  746. new Players[32]
  747. new Num
  748. get_players(Players,Num,"ceh","TERRORIST")
  749.  
  750. if(Num >= 5)
  751. menu_additem(Menu,"\dTerrorist","1")
  752. else
  753. menu_additem(Menu,"Terrorist","1")
  754.  
  755. new Playersz[32]
  756. new Numz
  757. get_players(Playersz,Numz,"ceh","CT")
  758.  
  759. if(Numz >= 5)
  760. menu_additem(Menu,"\dCounter-Terrorist","2")
  761. else
  762. menu_additem(Menu,"Counter-Terrorist","2")
  763.  
  764. menu_additem(Menu,"Spectator","3")
  765.  
  766. menu_setprop(Menu,MPROP_EXITNAME,"Cerrar")
  767. menu_display(id,Menu)
  768. return PLUGIN_HANDLED
  769. }
  770. //----------------------------------------------------------//
  771. public ChangeTeam_Handler(id,Menu,item)
  772. {
  773. if(item == MENU_EXIT)
  774. {
  775. menu_destroy(Menu)
  776. return PLUGIN_HANDLED
  777. }
  778.  
  779. new iData[6]
  780. new iName[64]
  781. new Access
  782. new Callback
  783. menu_item_getinfo(Menu,item,Access,iData,5,iName,63,Callback)
  784.  
  785. new Item = str_to_num(iData)
  786.  
  787. switch(Item)
  788. {
  789. case 1 :
  790. {
  791. new Players[32]
  792. new Num
  793. get_players(Players,Num,"ceh","TERRORIST")
  794.  
  795. if(Num >= 5)
  796. ChatColor(id,"%s Terrorist Team Full!",szPrefix)
  797. else
  798. engclient_cmd(id,"jointeam","1")
  799. }
  800.  
  801. case 2 :
  802. {
  803. new Players[32]
  804. new Num
  805. get_players(Players,Num,"ceh","CT")
  806.  
  807. if(Num >= 5)
  808. ChatColor(id,"%s Counter-Terrorist Team Full!",szPrefix)
  809. else
  810. engclient_cmd(id,"jointeam","2")
  811. }
  812.  
  813. case 3 : engclient_cmd(id,"jointeam","6")
  814. }
  815. menu_destroy(Menu)
  816. return PLUGIN_HANDLED
  817. }
  818.  
  819. //====================[*Set Password*]===========================//
  820.  
  821. public cmdSetPassword(id,level,cid)
  822. {
  823. if(!cmd_access(id,level,cid,2))
  824. return PLUGIN_HANDLED
  825.  
  826. new szPassword[64]
  827. read_argv(1,szPassword,63)
  828. set_pcvar_string(pPassword,szPassword)
  829. remove_quotes(szPassword)
  830.  
  831. static name[32]
  832. get_user_name(id,name,31)
  833.  
  834. if(szPassword[0])
  835. {
  836. switch(get_pcvar_num(PasswordMode))
  837. {
  838. case 0 : ChatColor(0,"%s ADMIN %s : Cambio el password a ***PROTECTED***",szPrefix,name)
  839.  
  840. case 1 :
  841. {
  842. ChatColor(0,"%s ADMIN %s : Cambio el password a %s",szPrefix,name,szPassword)
  843. client_cmd(0,"password ^"%s^"",szPassword)
  844. }
  845.  
  846. case 2 :
  847. {
  848. for(new i = 1;i <= MaxPlayers;i++)
  849. {
  850. if(get_user_flags(i) & ADMIN_ACCESS)
  851. {
  852. ChatColor(i,"%s ADMIN %s : Cambio el password a %s",szPrefix,name,szPassword)
  853. client_cmd(i,"password ^"%s^"",szPassword)
  854. }
  855. else
  856. ChatColor(i,"%s ADMIN %s : Cambio el password a ***PROTECTED***",szPrefix,name)
  857. }
  858. }
  859. }
  860. }
  861.  
  862. return PLUGIN_HANDLED
  863. }
  864.  
  865. //====================[*Set Alltalk*]===========================//
  866.  
  867. public cmdSetAlltalk(id,level,cid)
  868. {
  869. if(!cmd_access(id,level,cid,2))
  870. return PLUGIN_HANDLED
  871.  
  872. new nAlltalk[2]
  873. read_argv(1,nAlltalk,1)
  874. set_pcvar_num(pAlltalk,str_to_num(nAlltalk))
  875. remove_quotes(nAlltalk)
  876.  
  877. new name[32]
  878. get_user_name(id,name,31)
  879.  
  880. ChatColor(0,"%s ADMIN %s : %sctivo el alltalk",szPrefix,name,get_pcvar_num(pAlltalk) ? "A" : "Desa")
  881.  
  882. return PLUGIN_HANDLED
  883. }
  884.  
  885. //====================[*Say Pass Or Say Alltalk*]===========================//
  886.  
  887. public cmdSayPassOrSayAlltalk(id)
  888. {
  889. new said[192]
  890. read_args(said,191)
  891.  
  892. new ServerIp[25]
  893. get_user_ip(0,ServerIp,24,0)
  894.  
  895. new szPassword[64]
  896. get_pcvar_string(pPassword,szPassword,63)
  897.  
  898. if(containi(said,"alltalk") != -1)
  899. ChatColor(id,"%s Alltalk : %s",szPrefix,get_pcvar_num(pAlltalk) ? "Activado" : "Desactivado")
  900.  
  901. if(containi(said,"pass") != -1
  902. || containi(said,"pw") != -1)
  903. {
  904. if(szPassword[0])
  905. {
  906. ChatColor(id,"%s Password : %s",szPrefix,szPassword)
  907. client_cmd(id,"password ^"%s^"",szPassword)
  908. }
  909. else
  910. ChatColor(id,"%s El servidor no tiene password",szPrefix)
  911. }
  912.  
  913. if(containi(said,"data") != -1
  914. || containi(said,"datos") != -1)
  915. {
  916. if(szPassword[0])
  917. ChatColor(id,"%s connect %s; password %s",szPrefix,ServerIp,szPassword)
  918. else
  919. ChatColor(id,"%s connect %s",szPrefix,ServerIp)
  920. }
  921.  
  922. return PLUGIN_CONTINUE
  923. }
  924.  
  925. //====================[*Name Change Blocker*]===========================//
  926.  
  927. public cmdNoNick(id,level,cid)
  928. {
  929. if(!cmd_access(id,level,cid,1))
  930. return PLUGIN_HANDLED
  931.  
  932. new name[32]
  933. get_user_name(id,name,31)
  934.  
  935. set_pcvar_num(NoNick,get_pcvar_num(NoNick) == 0 ? 1 : 0)
  936. ChatColor(0,"%s ADMIN %s : %sabilito el cambio de nick",szPrefix,name,get_pcvar_num(NoNick) ? "Desh" : "H")
  937.  
  938. return PLUGIN_HANDLED
  939. }
  940. //----------------------------------------------------------//
  941. public fwdClientInfoChanged(id,buffer)
  942. {
  943. if(!get_pcvar_num(NoNick) || is_user_admin(id) || !is_user_connected(id))
  944. return FMRES_IGNORED
  945.  
  946. new name[32]
  947. new newname[32]
  948.  
  949. get_user_name(id,name,31)
  950. engfunc(EngFunc_InfoKeyValue,buffer,"name",newname,31)
  951.  
  952. if(!equal(name,newname))
  953. {
  954. engfunc(EngFunc_SetClientKeyValue,id,buffer,"name",name)
  955. client_cmd(id,"name ^"%s^"",name)
  956.  
  957. ChatColor(id,"%s No puedes cambiarte el nombre en este momento",szPrefix)
  958. }
  959.  
  960. return FMRES_IGNORED
  961. }
  962. //----------------------------------------------------------//
  963. public MessageNameChange(id)
  964. {
  965. if(!get_pcvar_num(NoNick) || !is_user_connected(id))
  966. return PLUGIN_CONTINUE
  967.  
  968. if(is_user_admin(id))
  969. return PLUGIN_CONTINUE
  970.  
  971. new szInfo[64]
  972. get_msg_arg_string(2,szInfo,63)
  973.  
  974. if(equali(szInfo,"#Cstrike_Name_Change"))
  975. return PLUGIN_HANDLED
  976.  
  977. return PLUGIN_CONTINUE
  978. }
  979.  
  980. //====================[*Chat Blocker*]===========================//
  981.  
  982. public cmdNoSay(id,level,cid)
  983. {
  984. if(!cmd_access(id,level,cid,1))
  985. return PLUGIN_HANDLED
  986.  
  987. new name[32]
  988. get_user_name(id,name,31)
  989.  
  990. set_pcvar_num(NoSay,get_pcvar_num(NoSay) == 0 ? 1 : 0)
  991. ChatColor(0,"%s ADMIN %s : %sabilito el say",szPrefix,name,get_pcvar_num(NoSay) ? "Desh" : "H")
  992.  
  993. return PLUGIN_HANDLED
  994. }
  995. //----------------------------------------------------------//
  996. public cmdBlock(id)
  997. {
  998. if(!get_pcvar_num(NoSay))
  999. return PLUGIN_CONTINUE
  1000.  
  1001. if(get_user_flags(id) & ADMIN_ACCESS)
  1002. return PLUGIN_CONTINUE
  1003.  
  1004. if(!valids_teams(id))
  1005. return PLUGIN_HANDLED
  1006.  
  1007. new said[192]
  1008. read_args(said,191)
  1009. remove_quotes(said)
  1010.  
  1011. if(!strlen(said) || said[0] == ' ')
  1012. return PLUGIN_HANDLED
  1013.  
  1014. static name[32]
  1015. get_user_name(id,name,31)
  1016.  
  1017. if(TLCounterTerrorist[id] || TLTerrorist[id] && get_pcvar_num(TVTEnable))
  1018. {
  1019. new szTLPrefix[13]
  1020. get_pcvar_string(TLPrefix,szTLPrefix,12)
  1021.  
  1022. new Msg[192]
  1023. formatex(Msg,191,"%s^x04%s^x03 %s^x01 : %s",is_user_alive(id) ? "" : "^x01*DEAD* ",szTLPrefix,name,said)
  1024.  
  1025. for(new i = 1;i <= MaxPlayers;i++)
  1026. {
  1027. if(is_user_connected(i))
  1028. {
  1029. if(is_user_alive(id) && is_user_alive(i)
  1030. || !is_user_alive(id) && !is_user_alive(i))
  1031. {
  1032. message_begin(MSG_ONE_UNRELIABLE,SayText,_,i)
  1033. write_byte(id)
  1034. write_string(Msg)
  1035. message_end()
  1036. }
  1037. }
  1038. }
  1039. return PLUGIN_HANDLED
  1040. }
  1041.  
  1042. switch(get_pcvar_num(NoSayType))
  1043. {
  1044. case 0 :
  1045. {
  1046. ChatColor(id,"%s Chat bloqueado",szPrefix)
  1047. return PLUGIN_HANDLED
  1048. }
  1049.  
  1050. case 1 :
  1051. {
  1052. new const Chat[][] =
  1053. {
  1054. "/chat","!chat",".chat"
  1055. }
  1056.  
  1057. for(new i = 0;i < sizeof Chat;i++)
  1058. {
  1059. if(containi(said,Chat[i]) != -1)
  1060. {
  1061. ChatColor(0,"%s El jugador %s esta pidiendo que desbloqueen el chat",szPrefix,name)
  1062. return PLUGIN_HANDLED
  1063. }
  1064. else
  1065. {
  1066. ChatColor(id,"%s Chat bloqueado",szPrefix)
  1067. ChatColor(id,"%s Solo puedes escribir /chat para pedir que desbloqueen el chat",szPrefix)
  1068. return PLUGIN_HANDLED
  1069. }
  1070. }
  1071. }
  1072. }
  1073. return PLUGIN_HANDLED
  1074. }
  1075.  
  1076. //====================[*Restart Command*]===========================//
  1077.  
  1078. public cmdSayRestart(id,level,cid)
  1079. {
  1080. new said[192]
  1081. read_args(said,191)
  1082. remove_quotes(said)
  1083.  
  1084. if(!strlen(said) || said[0] == ' ')
  1085. return PLUGIN_HANDLED
  1086.  
  1087. if(!is_user_admin(id))
  1088. return PLUGIN_CONTINUE
  1089.  
  1090. if(cmd_access(id,level,cid,1))
  1091. {
  1092. new name[32]
  1093. get_user_name(id,name,31)
  1094.  
  1095. new Restart[11]
  1096. new Tmp[11]
  1097. strbreak(said,Restart,10,Tmp,10)
  1098.  
  1099. new Value = str_to_num(Tmp)
  1100.  
  1101. new const Restrts[][] =
  1102. {
  1103. "/restart","!restart",".restart",
  1104. "/rr","!rr",".rr",
  1105. "/r","!r",".r"
  1106. }
  1107.  
  1108. for(new i = 0;i < sizeof Restrts;i++)
  1109. {
  1110. if(equali(Restart,Restrts[i]))
  1111. {
  1112. if(!is_str_num(Tmp) || Value > 60)
  1113. Value = 1
  1114.  
  1115. if(Tmp[0])
  1116. set_pcvar_num(pRestart,Value)
  1117. else
  1118. set_pcvar_num(pRestart,1)
  1119.  
  1120. ChatColor(0,"%s ADMIN %s : Restarteo la ronda [%d]",szPrefix,name,Value)
  1121. return PLUGIN_HANDLED
  1122. }
  1123. }
  1124. }
  1125.  
  1126. return PLUGIN_CONTINUE
  1127. }
  1128.  
  1129. //====================[*Mix Menu*]===========================//
  1130.  
  1131. public MixMenu(id,level,cid)
  1132. {
  1133. if(!cmd_access(id,level,cid,1))
  1134. return PLUGIN_HANDLED
  1135.  
  1136. OpenMixMenu(id)
  1137. return PLUGIN_HANDLED
  1138. }
  1139. //----------------------------------------------------------//
  1140. public OpenMixMenu(id)
  1141. {
  1142. new Menu = menu_create("\r[Mix Maker]\y Mix Menu :","MixMenu_Handler")
  1143.  
  1144. menu_additem(Menu,"Publico","1")
  1145. menu_additem(Menu,"Practica","2")
  1146. menu_additem(Menu,"Cerrado","3")
  1147. menu_additem(Menu,"Rates","4")
  1148. menu_additem(Menu,"Vale","5")
  1149. if(get_pcvar_num(ShowExtras))
  1150. menu_additem(Menu,"Extras","6")
  1151.  
  1152. menu_setprop(Menu,MPROP_EXITNAME,"Cerrar")
  1153.  
  1154. menu_display(id,Menu)
  1155. return PLUGIN_HANDLED
  1156. }
  1157. //----------------------------------------------------------//
  1158. public MixMenu_Handler(id,Menu,item)
  1159. {
  1160. if(item == MENU_EXIT)
  1161. {
  1162. menu_destroy(Menu)
  1163. return PLUGIN_HANDLED
  1164. }
  1165.  
  1166. new iData[6]
  1167. new iName[64]
  1168. new Access
  1169. new Callback
  1170.  
  1171. menu_item_getinfo(Menu,item,Access,iData,5,iName,63,Callback)
  1172.  
  1173. new Key = str_to_num(iData)
  1174.  
  1175. static name[32]
  1176. get_user_name(id,name,31)
  1177.  
  1178. switch(Key)
  1179. {
  1180. case 1 :
  1181. {
  1182. set_hudmessage(0, 255, 0, -1.0, 0.31, 2, 0.1, 3.0, 0.05, 1.0, 1)
  1183. show_hudmessage(0,"Server en modo^nPublico")
  1184. server_cmd("exec %s",MixMaker_CFG_Public)
  1185. server_exec()
  1186. set_task(1.5,"cmdRestart")
  1187. ChatColor(0,"%s ADMIN %s : Ejecuto publico.cfg",szPrefix,name)
  1188.  
  1189. if(is_user_connected(id))
  1190. OpenMixMenu(id)
  1191. }
  1192.  
  1193. case 2 :
  1194. {
  1195. set_hudmessage(0, 0, 255, -1.0, 0.31, 2, 0.1, 3.0, 0.05, 1.0, 1)
  1196. show_hudmessage(0,"Server en modo^nPractica")
  1197. server_cmd("exec %s",MixMaker_CFG_WarmUP)
  1198. server_exec()
  1199. set_task(1.5,"cmdRestart")
  1200. ChatColor(0,"%s ADMIN %s : Ejecuto practica.cfg",szPrefix,name)
  1201.  
  1202. if(is_user_connected(id))
  1203. OpenMixMenu(id)
  1204. }
  1205.  
  1206. case 3 :
  1207. {
  1208. set_hudmessage(255, 0, 0, -1.0, 0.31, 2, 0.1, 3.0, 0.05, 1.0, 1)
  1209. show_hudmessage(0,"Server en modo^nCerrado")
  1210. server_cmd("exec %s",MixMaker_CFG_Closed)
  1211. server_exec()
  1212. set_task(1.5,"cmdRestart")
  1213. ChatColor(0,"%s ADMIN %s : Ejecuto cerrado.cfg",szPrefix,name)
  1214.  
  1215. if(is_user_connected(id))
  1216. OpenMixMenu(id)
  1217. }
  1218.  
  1219. case 4 :
  1220. {
  1221. set_hudmessage(128, 128, 128, -1.0, 0.31, 1, 0.1, 3.0, 0.5, 1.0, 1)
  1222. show_hudmessage(0,"Servidor Rateado")
  1223. server_cmd("exec %s",MixMaker_CFG_Rates)
  1224. ChatColor(0,"%s ADMIN %s : Ejecuto rates.cfg",szPrefix,name)
  1225. server_exec()
  1226. client_cmd(id,"say /maps")
  1227. }
  1228.  
  1229. case 5 : client_cmd(id,"amx_vale")
  1230.  
  1231. case 6 :
  1232. {
  1233. if(get_pcvar_num(ShowExtras) && is_user_connected(id))
  1234. Extras(id)
  1235. else
  1236. {
  1237. ChatColor(id,"%s Submenu Extras Desactivado",szPrefix)
  1238.  
  1239. if(is_user_connected(id))
  1240. OpenMixMenu(id)
  1241. }
  1242. }
  1243. }
  1244. menu_destroy(Menu)
  1245. return PLUGIN_HANDLED
  1246. }
  1247.  
  1248. //====================[*Submenu Extras*]===========================//
  1249.  
  1250. Extras(id)
  1251. {
  1252. new Menu = menu_create("\r[Mix Maker]\y Extras :","ExtraStuff_Handler")
  1253.  
  1254. menu_additem(Menu,"Todos a Spec","1")
  1255. menu_additem(Menu,"Kickear Team","2")
  1256. menu_additem(Menu,"Banear Team","3")
  1257. if(get_pcvar_num(ShowExtras) && get_pcvar_num(TVTEnable))
  1258. menu_additem(Menu,"TVT Menu","4")
  1259.  
  1260. menu_setprop(Menu,MPROP_BACKNAME,"Atras")
  1261. menu_setprop(Menu,MPROP_NEXTNAME,"Siguiente")
  1262. menu_setprop(Menu,MPROP_EXITNAME,"\yMix Menu")
  1263.  
  1264. menu_display(id,Menu)
  1265. return PLUGIN_HANDLED
  1266. }
  1267. //----------------------------------------------------------//
  1268. public ExtraStuff_Handler(id,Menu,item)
  1269. {
  1270. if(item == MENU_EXIT)
  1271. {
  1272. if(is_user_connected(id))
  1273. OpenMixMenu(id)
  1274.  
  1275. return PLUGIN_HANDLED
  1276. }
  1277.  
  1278. new iData[6]
  1279. new iName[64]
  1280. new Access
  1281. new Callback
  1282.  
  1283. menu_item_getinfo(Menu,item,Access,iData,5,iName,63,Callback)
  1284.  
  1285. new Key = str_to_num(iData)
  1286.  
  1287. switch(Key)
  1288. {
  1289. case 1 :
  1290. {
  1291. set_hudmessage(64,64,64,-1.0,0.21,1,0.2,5.0,0.01,0.1)
  1292. show_hudmessage(0,"Todos para Spec")
  1293.  
  1294. for(new i = 1;i <= MaxPlayers;i++)
  1295. {
  1296. if(is_user_connected(i))
  1297. {
  1298. set_pev(i,pev_deadflag,DEAD_DEAD)
  1299. cs_set_user_team(i,CS_TEAM_SPECTATOR)
  1300.  
  1301. BlockClCorpse[i] = true
  1302. }
  1303. }
  1304.  
  1305. if(is_user_connected(id))
  1306. Extras(id)
  1307. }
  1308.  
  1309. case 2 :
  1310. {
  1311. if(is_user_connected(id))
  1312. KickMenu(id)
  1313. }
  1314.  
  1315. case 3 :
  1316. {
  1317. if(is_user_connected(id))
  1318. BanMenu(id)
  1319. }
  1320.  
  1321. case 4 :
  1322. {
  1323. if(get_pcvar_num(ShowExtras) && get_pcvar_num(TVTEnable) && is_user_connected(id))
  1324. TVTMenu(id)
  1325. else
  1326. {
  1327. ChatColor(id,"%s TVT Menu Desactivado",szPrefix)
  1328.  
  1329. if(is_user_connected(id))
  1330. Extras(id)
  1331. }
  1332. }
  1333. }
  1334. menu_destroy(Menu)
  1335. return PLUGIN_HANDLED
  1336. }
  1337.  
  1338. //====================[*Kick Menu*]===========================//
  1339.  
  1340. KickMenu(id)
  1341. {
  1342. new Menu = menu_create("\r[Mix Maker]\y Kick Menu :","KickTeamMenu")
  1343. menu_additem(Menu,"Terrorists","1")
  1344. menu_additem(Menu,"Counter-Terrorists","2")
  1345. menu_additem(Menu,"Spectators","3")
  1346.  
  1347. menu_setprop(Menu,MPROP_EXITNAME,"\yExtras")
  1348.  
  1349. menu_display(id,Menu)
  1350. return PLUGIN_HANDLED
  1351. }
  1352. //----------------------------------------------------------//
  1353. public KickTeamMenu(id,Menu,item)
  1354. {
  1355. if(item == MENU_EXIT)
  1356. {
  1357. if(is_user_connected(id))
  1358. Extras(id)
  1359. }
  1360.  
  1361. new iData[6]
  1362. new iName[64]
  1363. new Access
  1364. new Callback
  1365. menu_item_getinfo(Menu,item,Access,iData,5,iName,63,Callback)
  1366.  
  1367. new Key = str_to_num(iData)
  1368.  
  1369. switch(Key)
  1370. {
  1371. case 1 :
  1372. {
  1373. new name[32]
  1374. get_user_name(id,name,31)
  1375.  
  1376. ChatColor(0,"%s ADMIN %s : Kickeo a los del team Terrorist",szPrefix,name)
  1377.  
  1378. for(new i = 1;i <= MaxPlayers;i++)
  1379. {
  1380. new userid = get_user_userid(i)
  1381.  
  1382. if(!is_user_admin(i))
  1383. {
  1384. if(is_user_connected(i) && cs_get_user_team(i) == CS_TEAM_T)
  1385. server_cmd("kick #%d [Mix Maker] Kickeado",userid)
  1386. }
  1387. }
  1388. }
  1389.  
  1390. case 2 :
  1391. {
  1392. new name[32]
  1393. get_user_name(id,name,31)
  1394.  
  1395. ChatColor(0,"%s ADMIN %s : Kickeo a los del team Counter-Terrorist",szPrefix,name)
  1396.  
  1397. for(new i = 1;i <= MaxPlayers;i++)
  1398. {
  1399. new userid = get_user_userid(i)
  1400.  
  1401. if(!is_user_admin(i))
  1402. {
  1403. if(is_user_connected(i) && cs_get_user_team(i) == CS_TEAM_CT)
  1404. server_cmd("kick #%d [Mix Maker] Kickeado",userid)
  1405. }
  1406. }
  1407. }
  1408.  
  1409. case 3 :
  1410. {
  1411. new name[32]
  1412. get_user_name(id,name,31)
  1413.  
  1414. ChatColor(0,"%s ADMIN %s : Kickeo a los del team Spectator",szPrefix,name)
  1415.  
  1416. for(new i = 1;i <= MaxPlayers;i++)
  1417. {
  1418. new userid = get_user_userid(i)
  1419.  
  1420. if(!is_user_admin(i))
  1421. {
  1422. if(is_user_connected(i) && cs_get_user_team(i) == CS_TEAM_SPECTATOR)
  1423. server_cmd("kick #%d [Mix Maker] Kickeado",userid)
  1424. }
  1425. }
  1426. }
  1427. }
  1428. if(is_user_connected(id))
  1429. Extras(id)
  1430.  
  1431. menu_destroy(Menu)
  1432. return PLUGIN_HANDLED
  1433. }
  1434.  
  1435. //====================[*Ban Menu*]===========================//
  1436.  
  1437. BanMenu(id)
  1438. {
  1439. new Menu = menu_create("\r[Mix Maker]\y Ban Menu :","BanTeamMenu")
  1440. menu_additem(Menu,"Terrorists","1")
  1441. menu_additem(Menu,"Counter-Terrorists","2")
  1442. menu_additem(Menu,"Spectators^n","3")
  1443.  
  1444. static temp[256]
  1445. switch(BanType[id])
  1446. {
  1447. case 0 : formatex(temp,255,"Banear : \rPor 30 minutos")
  1448. case 1 : formatex(temp,255,"Banear : \rPor 60 minutos")
  1449. case 2 : formatex(temp,255,"Banear : \rPermanentemente")
  1450. case 3 : formatex(temp,255,"Banear : \rLocalmente")
  1451. }
  1452. menu_additem(Menu,temp,"4")
  1453.  
  1454. menu_setprop(Menu,MPROP_EXITNAME,"\yExtras")
  1455.  
  1456. menu_display(id,Menu)
  1457. return PLUGIN_HANDLED
  1458. }
  1459. //----------------------------------------------------------//
  1460. public BanTeamMenu(id,Menu,item)
  1461. {
  1462. if(item == MENU_EXIT)
  1463. {
  1464. if(is_user_connected(id))
  1465. Extras(id)
  1466.  
  1467. BanType[id] = 0
  1468. }
  1469.  
  1470. new iData[6]
  1471. new iName[64]
  1472. new Access
  1473. new Callback
  1474. menu_item_getinfo(Menu,item,Access,iData,5,iName,63,Callback)
  1475.  
  1476. new Key = str_to_num(iData)
  1477.  
  1478. switch(Key)
  1479. {
  1480. case 1 :
  1481. {
  1482. static name[32]
  1483. get_user_name(id,name,31)
  1484.  
  1485. switch(BanType[id])
  1486. {
  1487. case 0 : ChatColor(id,"%s ADMIN %s : Baneo por 30 minutos a los del team Terrorist",szPrefix,name)
  1488. case 1 : ChatColor(id,"%s ADMIN %s : Baneo por 60 minutos a los del team Terrorist",szPrefix,name)
  1489. case 2 : ChatColor(id,"%s ADMIN %s : Baneo permanentemente a los del team Terrorist",szPrefix,name)
  1490. case 3 : ChatColor(id,"%s ADMIN %s : Baneo localmente a los del team Terrorist",szPrefix,name)
  1491. }
  1492.  
  1493. for(new i = 1;i <= MaxPlayers;i++)
  1494. {
  1495. new userid = get_user_userid(i)
  1496.  
  1497. if(!is_user_admin(i))
  1498. {
  1499. if(is_user_connected(i) && cs_get_user_team(i) == CS_TEAM_T)
  1500. {
  1501. switch(BanType[id])
  1502. {
  1503. case 0 : server_cmd("kick #%d [Mix Maker] Baneado por 30 minutos;wait;banid 30;wait;writeid",userid)
  1504. case 1 : server_cmd("kick #%d [Mix Maker] Baneado por 60 minutos;wait;banid 30;wait;writeid",userid)
  1505. case 2 : server_cmd("kick #%d [Mix Maker] Baneado permanentemente;wait;banid 30;wait;writeid",userid)
  1506. case 3 : server_cmd("sxe_ban #%d",userid)
  1507. }
  1508. }
  1509. }
  1510. }
  1511.  
  1512. if(is_user_connected(id))
  1513. Extras(id)
  1514. }
  1515.  
  1516. case 2 :
  1517. {
  1518. static name[32]
  1519. get_user_name(id,name,31)
  1520.  
  1521. switch(BanType[id])
  1522. {
  1523. case 0 : ChatColor(id,"%s ADMIN %s : Baneo por 30 minutos a los del team Counter-Terrorist",szPrefix,name)
  1524. case 1 : ChatColor(id,"%s ADMIN %s : Baneo por 60 minutos a los del team Counter-Terrorist",szPrefix,name)
  1525. case 2 : ChatColor(id,"%s ADMIN %s : Baneo permanentemente a los del team Counter-Terrorist",szPrefix,name)
  1526. case 3 : ChatColor(id,"%s ADMIN %s : Baneo localmente a los del team Counter-Terrorist",szPrefix,name)
  1527. }
  1528.  
  1529. for(new i = 1;i <= MaxPlayers;i++)
  1530. {
  1531. new userid = get_user_userid(i)
  1532.  
  1533. if(!is_user_admin(i))
  1534. {
  1535. if(is_user_connected(i) && cs_get_user_team(i) == CS_TEAM_CT)
  1536. {
  1537. switch(BanType[id])
  1538. {
  1539. case 0 : server_cmd("kick #%d [Mix Maker] Baneado por 30 minutos;wait;banid 30;wait;writeid",userid)
  1540. case 1 : server_cmd("kick #%d [Mix Maker] Baneado por 60 minutos;wait;banid 30;wait;writeid",userid)
  1541. case 2 : server_cmd("kick #%d [Mix Maker] Baneado permanentemente;wait;banid 30;wait;writeid",userid)
  1542. case 3 : server_cmd("sxe_ban #%d",userid)
  1543. }
  1544. }
  1545. }
  1546. }
  1547.  
  1548. if(is_user_connected(id))
  1549. Extras(id)
  1550. }
  1551.  
  1552. case 3 :
  1553. {
  1554. static name[32]
  1555. get_user_name(id,name,31)
  1556.  
  1557. switch(BanType[id])
  1558. {
  1559. case 0 : ChatColor(id,"%s ADMIN %s : Baneo por 30 minutos a los del team Spectator",szPrefix,name)
  1560. case 1 : ChatColor(id,"%s ADMIN %s : Baneo por 60 minutos a los del team Spectator",szPrefix,name)
  1561. case 2 : ChatColor(id,"%s ADMIN %s : Baneo permanentemente a los del team Spectator",szPrefix,name)
  1562. case 3 : ChatColor(id,"%s ADMIN %s : Baneo localmente a los del team Spectator",szPrefix,name)
  1563. }
  1564.  
  1565. for(new i = 1;i <= MaxPlayers;i++)
  1566. {
  1567. new userid = get_user_userid(i)
  1568.  
  1569. if(!is_user_admin(i))
  1570. {
  1571. if(is_user_connected(i) && cs_get_user_team(i) == CS_TEAM_SPECTATOR)
  1572. {
  1573. switch(BanType[id])
  1574. {
  1575. case 0 : server_cmd("kick #%d [Mix Maker] Baneado por 30 minutos;wait;banid 30;wait;writeid",userid)
  1576. case 1 : server_cmd("kick #%d [Mix Maker] Baneado por 60 minutos;wait;banid 30;wait;writeid",userid)
  1577. case 2 : server_cmd("kick #%d [Mix Maker] Baneado permanentemente;wait;banid 30;wait;writeid",userid)
  1578. case 3 : server_cmd("sxe_ban #%d",userid)
  1579. }
  1580. }
  1581. }
  1582. }
  1583.  
  1584. if(is_user_connected(id))
  1585. Extras(id)
  1586. }
  1587.  
  1588. case 4 :
  1589. {
  1590. switch(BanType[id])
  1591. {
  1592. case 0 : BanType[id] = 1
  1593. case 1 : BanType[id] = 2
  1594. case 2 : BanType[id] = 3
  1595. case 3 : BanType[id] = 0
  1596. }
  1597.  
  1598. if(is_user_connected(id))
  1599. BanMenu(id)
  1600. }
  1601. }
  1602.  
  1603. menu_destroy(Menu)
  1604. return PLUGIN_HANDLED
  1605. }
  1606.  
  1607. //====================[*Team vs Team Menu*]===========================//
  1608.  
  1609. public TVTMenu(id)
  1610. {
  1611. new Menu = menu_create("\r[Mix Maker]\y TVT Menu :","TVTMenu_Handler")
  1612.  
  1613. menu_additem(Menu,"Setear TL Counter-Terrorist","1")
  1614. menu_additem(Menu,"Setear TL Terrorist","2")
  1615.  
  1616. menu_setprop(Menu,MPROP_EXITNAME,"\yExtras")
  1617.  
  1618. menu_display(id,Menu)
  1619. return PLUGIN_HANDLED
  1620. }
  1621.  
  1622. public TVTMenu_Handler(id,Menu,item)
  1623. {
  1624. if(item == MENU_EXIT)
  1625. {
  1626. if(is_user_connected(id))
  1627. Extras(id)
  1628. }
  1629.  
  1630. new iData[6]
  1631. new iName[64]
  1632. new Access
  1633. new Callback
  1634. menu_item_getinfo(Menu,item,Access,iData,5,iName,63,Callback)
  1635.  
  1636. new TvTChoosed = str_to_num(iData)
  1637.  
  1638. switch(TvTChoosed)
  1639. {
  1640. case 1 :
  1641. {
  1642. for(new i = 1;i <= MaxPlayers;i++)
  1643. TLCounterTerrorist[i] = false
  1644.  
  1645. new Players[32]
  1646. new Num
  1647. get_players(Players,Num,"ceh","CT")
  1648.  
  1649. if(Num >= 5)
  1650. {
  1651. if(is_user_connected(id))
  1652. MenuCounterTerrorist(id)
  1653. }
  1654. else
  1655. {
  1656. ChatColor(id,"%s Debe haber por lo menos 5 jugadores en el team Counter-Terrorist",szPrefix)
  1657.  
  1658. if(is_user_connected(id))
  1659. TVTMenu(id)
  1660. }
  1661.  
  1662. }
  1663.  
  1664. case 2 :
  1665. {
  1666. for(new i = 1;i <= MaxPlayers;i++)
  1667. TLTerrorist[i] = false
  1668.  
  1669. new Players[32]
  1670. new Num
  1671. get_players(Players,Num,"ceh","TERRORIST")
  1672.  
  1673. if(Num >= 5)
  1674. {
  1675. if(is_user_connected(id))
  1676. MenuTerrorist(id)
  1677. }
  1678. else
  1679. {
  1680. ChatColor(id,"%s Debe haber por lo menos 5 jugadores en el team Terrorist",szPrefix)
  1681.  
  1682. if(is_user_connected(id))
  1683. TVTMenu(id)
  1684. }
  1685. }
  1686. }
  1687.  
  1688. menu_destroy(Menu)
  1689. return PLUGIN_HANDLED
  1690. }
  1691.  
  1692. //====================[*Team Leaders*]===========================//
  1693.  
  1694. //-------------------------/* Counter-Terrorists */---------------------------------//
  1695. MenuCounterTerrorist(id)
  1696. {
  1697. new Menu = menu_create("\r[Mix Maker]\y Counter-Terrorists :","CTMenu_Handler")
  1698.  
  1699. static name[32]
  1700. static item[32]
  1701.  
  1702. new Players[32]
  1703. new Num
  1704. get_players(Players,Num,"ceh","CT")
  1705.  
  1706. for(new i = 0;i < Num;i++)
  1707. {
  1708. if(is_user_connected(i) && !is_user_admin(i))
  1709. {
  1710. get_user_name(i,name,31)
  1711. num_to_str(i,item,31)
  1712.  
  1713. menu_additem(Menu,name,item)
  1714. }
  1715. }
  1716.  
  1717. menu_setprop(Menu,MPROP_EXITNAME,"\yTVT Menu")
  1718.  
  1719. menu_display(id,Menu)
  1720. return PLUGIN_HANDLED
  1721. }
  1722. //----------------------------------------------------------//
  1723. public CTMenu_Handler(id,Menu,item)
  1724. {
  1725. if(item == MENU_EXIT)
  1726. {
  1727. if(is_user_connected(id))
  1728. Extras(id)
  1729. }
  1730.  
  1731. new iData[6]
  1732. new iName[64]
  1733. new Access
  1734. new Callback
  1735. menu_item_getinfo(Menu,item,Access,iData,5,iName,63,Callback)
  1736.  
  1737. new Target = str_to_num(iData)
  1738.  
  1739. if(Target)
  1740. {
  1741. TLCounterTerrorist[Target] = true
  1742.  
  1743. new name[32]
  1744. get_user_name(id,name,31)
  1745.  
  1746. ChatColor(id,"%s ADMIN %s : Seteo a %s como TL de los Counter-Terrorists",szPrefix,name,iName)
  1747. }
  1748.  
  1749. if(is_user_connected(id))
  1750. Extras(id)
  1751. return PLUGIN_HANDLED
  1752. }
  1753. //-------------------------/* Terrorists */---------------------------------//
  1754. MenuTerrorist(id)
  1755. {
  1756. new Menu = menu_create("\r[Mix Maker]\y Terrorists :","TMenu_Handler")
  1757.  
  1758. static name[32]
  1759. static item[32]
  1760.  
  1761. new Players[32]
  1762. new Num
  1763. get_players(Players,Num,"ceh","TERRORIST")
  1764.  
  1765. for(new i = 0;i < Num;i++)
  1766. {
  1767. if(is_user_connected(i) && !is_user_admin(i))
  1768. {
  1769. get_user_name(i,name,31)
  1770. num_to_str(i,item,31)
  1771.  
  1772. menu_additem(Menu,name,item)
  1773. }
  1774. }
  1775.  
  1776. menu_setprop(Menu,MPROP_EXITNAME,"\yTVT Menu")
  1777.  
  1778. menu_display(id,Menu)
  1779. return PLUGIN_HANDLED
  1780. }
  1781. //----------------------------------------------------------//
  1782. public TMenu_Handler(id,Menu,item)
  1783. {
  1784. if(item == MENU_EXIT)
  1785. {
  1786. if(is_user_connected(id))
  1787. Extras(id)
  1788. }
  1789.  
  1790. new iData[6]
  1791. new iName[64]
  1792. new Access
  1793. new Callback
  1794. menu_item_getinfo(Menu,item,Access,iData,5,iName,63,Callback)
  1795.  
  1796. new Target = str_to_num(iData)
  1797.  
  1798. if(Target)
  1799. {
  1800. TLTerrorist[Target] = true
  1801.  
  1802. new name[32]
  1803. get_user_name(id,name,31)
  1804.  
  1805. ChatColor(id,"%s ADMIN %s : Seteo a %s como TL de los Terrorists",szPrefix,name,iName)
  1806. }
  1807.  
  1808. if(is_user_connected(id))
  1809. Extras(id)
  1810. return PLUGIN_HANDLED
  1811. }
  1812.  
  1813. //====================[*Maps Menu*]===========================//
  1814.  
  1815. public MapsMenu(id,level,cid)
  1816. {
  1817. if(!cmd_access(id,level,cid,1))
  1818. return PLUGIN_HANDLED
  1819.  
  1820. new Menu = menu_create("\r[Mix Maker]\y Maps Menu :","MapsMenu_Handler")
  1821.  
  1822. /* Mix Maker Maps File */
  1823. new Path[256]
  1824. get_configsdir(Path,255)
  1825. format(Path,255,"%s/%s",Path,MixMaker_Maps_File)
  1826.  
  1827. if(!file_exists(Path))
  1828. {
  1829. log_amx("[AMXX] Maps file can't be located")
  1830. ChatColor(id,"%s No se ha encontrado el archivo de mapas",szPrefix)
  1831. client_cmd(id,"amx_mapmenu")
  1832. }
  1833.  
  1834. new f = fopen(Path,"rt")
  1835.  
  1836. new Mapname[MAPLEN+1]
  1837. new Item
  1838.  
  1839. while(!feof(f))
  1840. {
  1841. fgets(f,Mapname,64)
  1842.  
  1843. trim(Mapname)
  1844. strtolower(Mapname)
  1845.  
  1846. if(!Mapname[0] || Mapname[0] == ';'
  1847. || Mapname[0] == '/' && Mapname[1] == '/' ) continue;
  1848.  
  1849. copy(Maps[Item],64,Mapname)
  1850. Item++
  1851.  
  1852. if(Item >= MAXMAPS+1) break;
  1853.  
  1854. menu_additem(Menu,Mapname,Maps[Item])
  1855. }
  1856. fclose(f)
  1857.  
  1858. menu_setprop(Menu,MPROP_BACKNAME,"Atras")
  1859. menu_setprop(Menu,MPROP_NEXTNAME,"Siguiente")
  1860. menu_setprop(Menu,MPROP_EXITNAME,"Cerrar")
  1861.  
  1862. menu_display(id,Menu)
  1863. return PLUGIN_HANDLED
  1864. }
  1865. //----------------------------------------------------------//
  1866. public MapsMenu_Handler(id,Menu,item)
  1867. {
  1868. if(item == MENU_EXIT)
  1869. {
  1870. menu_destroy(Menu)
  1871. return PLUGIN_HANDLED
  1872. }
  1873.  
  1874. new iData[6]
  1875. new iName[64]
  1876. new Access
  1877. new Callback
  1878. menu_item_getinfo(Menu,item,Access,iData,5,iName,63,Callback)
  1879.  
  1880. if(!is_map_valid(iName))
  1881. ChatColor(id,"%s Mapa no encontrado",szPrefix)
  1882. else
  1883. client_cmd(id,"amx_on;amx_map %s",iName)
  1884.  
  1885. menu_destroy(Menu)
  1886. return PLUGIN_HANDLED
  1887. }
  1888.  
  1889. //====================[*Custom Stocks*]===========================//
  1890.  
  1891. stock register_saycmd(const command[],const function[],flag)
  1892. { /* Made by me to register the say commands with the / - ! and . */
  1893. new temp[64]
  1894. formatex(temp,63,"say /%s",command)
  1895. register_clcmd(temp,function,flag)
  1896. formatex(temp,63,"say !%s",command)
  1897. register_clcmd(temp,function,flag)
  1898. formatex(temp,63,"say .%s",command)
  1899. register_clcmd(temp,function,flag)
  1900.  
  1901. }
  1902. //----------------------------------------------------------//
  1903. stock UpdateTeamScore()
  1904. { /* Made by me to update the score in scoreboard */
  1905. /* Counter-Terrorist */
  1906. message_begin(MSG_ALL,TeamScore)
  1907. write_string("CT")
  1908. write_short(ScoreCT+TotalCT)
  1909. message_end()
  1910.  
  1911. /* Terrorist */
  1912. message_begin(MSG_ALL,TeamScore)
  1913. write_string("TERRORIST")
  1914. write_short(ScoreT+TotalT)
  1915. message_end()
  1916. }
  1917.  
  1918. //===================[*Other Stocks*]===========================//
  1919.  
  1920. stock ChatColor(const id, const input[], any:...)
  1921. { /* Used in all chats */
  1922. new count = 1, players[32]
  1923. static msg[191]
  1924. vformat(msg, 190, input, 3)
  1925.  
  1926. replace_all(msg, 190, "!g", "^x04")
  1927. replace_all(msg, 190, "!y", "^x01")
  1928. replace_all(msg, 190, "!t", "^x03")
  1929.  
  1930. if(id)
  1931. players[0] = id
  1932. else
  1933. get_players(players, count, "ch")
  1934. {
  1935. for (new i = 0; i < count; i++)
  1936. {
  1937. if (is_user_connected(players[i]))
  1938. {
  1939. message_begin(MSG_ONE_UNRELIABLE, SayText, _, players[i])
  1940. write_byte(players[i]);
  1941. write_string(msg);
  1942. message_end();
  1943. }
  1944. }
  1945. }
  1946. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement