P1xeL

Untitled

Jun 27th, 2012
296
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 132.31 KB | None | 0 0
  1. /* Plugin generated by AMXX-Studio */
  2.  
  3. #include <amxmodx>
  4. #include <amxmisc>
  5. #include <cstrike>
  6. #include <engine>
  7. #include <fun>
  8. #include <fakemeta>
  9. #include <fvault>
  10. #include <hamsandwich>
  11. #include <csx>
  12.  
  13. #define PLUGIN "Auto-Mix"
  14. #define VERSION "1.1.3"
  15. #define AUTHOR "p1Mp"
  16.  
  17. #pragma dynamic 32768
  18. #define PREFIX "^4[Auto-Mix]3"
  19. #define TIME_MAX 150
  20.  
  21. #define PLAYER 5
  22. #define MenuCode 205
  23. #define PDActiveItem 373
  24.  
  25. #define cs_get_user_menu(%0)    get_pdata_int(%0, MenuCode, PLAYER)
  26.  
  27. new SET_CONST_TASKID
  28. new gPlayersLeft
  29. new gMaxPlayers
  30. new gPug_ini_file[64]
  31. new gCptT
  32. new gCptCT
  33. new g_iScore[2]
  34. new g_iLastTeamScore[2]
  35. new gNotRdy[400] = "Not Ready:^n"
  36. new gRdy[400] = "Ready:^n"
  37. new bool:g_bIsReady[33]
  38. new Float:gTypedCommand[33]
  39. new g_LeftKills[33]
  40. new g_LeftVotes[33]
  41. new g_iTimeLeft[33]
  42. new g_KillsAce[33]
  43. new g_TotalKills[33]
  44. new g_TotalDeaths[33]
  45. new g_BombPlants[33]
  46. new g_BombDefusions[33]
  47. new gPoints[33]
  48. new g_PugLeaves
  49. new bool:g_IsStarted
  50. new bool:g_AfterRdy
  51. new bool:g_KnifeRound
  52. new bool:g_MapChanged
  53. new bool:g_Twon
  54. new bool:g_VoteProg
  55. new bool:g_bStop
  56. new bool:g_bStop2
  57. new bool:g_Restart
  58. new bool:g_givenChance[33]
  59. new g_givenChanceSteamIDs[33][64]
  60. new g_givenTimes
  61. new g_pVote
  62. new g_MsgSync
  63. new g_MsgSync3
  64. new g_MsgSync2
  65. new g_MsgSync4
  66. new g_MsgSync5
  67. new g_MsgSync6
  68. new g_MsgSync7
  69. new g_MsgSync8
  70. new g_szTeamName[2]
  71. new g_iTeam
  72. new g_iAltScore
  73. new g_iScoreOffset
  74. new bool:g_CustomGame
  75. new g_bVotes[2]
  76. new g_Menu
  77. new g_PlayersMenu
  78. new g_abMenu
  79. new g_switchmenu
  80. new g_switchVotes[2]
  81. new bool:g_bDidScore
  82. new bool:g_bFFoff
  83. new bool:g_bFFTKStop
  84. new bool:g_bDidVoteFF
  85. new bool:g_bSecondHalf
  86. new bool:g_bCpt
  87. new bool:gDidPlayUntilEnd[33]
  88. new g_NotBalanced
  89. new g_DidWaitEnough
  90. new gPointsVault[] = "Points"
  91. new gChanging, gChangerID
  92. new gChanging2, gChangerID2
  93. new gLeftSteamIDs[33][128], gLastTime[33]
  94. new gLeftTimes
  95.  
  96. /* Cvars */
  97.  
  98. new cvar_FFvote
  99. new cvar_KnifeRound
  100. new cvar_pLeft
  101. new cvar_pLeftMethod
  102. new cvar_DetectTK
  103. new cvar_MuteMenu
  104. new cvar_AllowShield
  105. new cvar_MapVote
  106. new cvar_Rankings
  107. new cvar_TimeLeft
  108. new cvar_TeamTag
  109. new cvar_AceHud
  110. new cvar_AFKKick
  111. new cvar_ReadyXPos, cvar_ReadyYPos
  112. new cvar_NotReadyXPos, cvar_NotReadyYPos
  113. new cvar_KillPoints, cvar_KnifePoints, cvar_WinsMatchPoints
  114. new cvar_LeavesMatchPoints, cvar_LeavesMatchTime, cvar_PlaysUntilEndPoints
  115. new cvar_TeamKillPoints, cvar_BombPlantPoints, cvar_BombDefusePoints
  116. new cvar_KillLosePoints, cvar_KnifeLosePoints, cvar_LosesMatchPoints
  117. new cvar_RanksSystem, cvar_RanksSystemMessages
  118. new cvar_BeginnerPoints, cvar_RegularPoints, cvar_VeteranPoints
  119. new cvar_ProPoints, cvar_HardCorePoints
  120. new cvar_mp_friendlyfire
  121. new cvar_mp_freezetime
  122. new cvar_mp_roundtime
  123. new cvar_mp_buytime
  124. new cvar_sv_restart
  125. new cvar_sv_password
  126. new cvar_humans_join_team
  127.  
  128. /* Cvars */
  129.  
  130. /* Mute menu */
  131.  
  132. #define MAX_PLAYERS 32
  133.  
  134. new bool:g_mute[MAX_PLAYERS+1][MAX_PLAYERS+1]
  135. new g_menuposition[MAX_PLAYERS+1]
  136. new g_menuplayers[MAX_PLAYERS+1][32]
  137. new g_playersnum[MAX_PLAYERS+1]
  138. new cvar_alltalk
  139. new g_maxclients
  140.  
  141. /* Mute menu */
  142.  
  143. /* AFK Kicker */
  144.  
  145. #define MIN_AFK_TIME 30  // I use this incase stupid admins accidentally set mp_afktime to something silly.
  146. #define WARNING_TIME 15  // Start warning the user this many seconds before they are about to be kicked.
  147. #define CHECK_FREQ 5        // This is also the warning message frequency.
  148.  
  149. new g_oldangles[33][3]
  150. new g_afktime[33]
  151. new bool:g_spawned[33] = {true, ...}
  152.  
  153. /* AFK Kicker */
  154.  
  155. /* Map & Votes variables */
  156. new g_gVoteMenu
  157. new g_gVotes[5]
  158. new g_rVoteMenu
  159. new g_rVotes[3]
  160. new g_fVoteMenu
  161. new g_fVotes[2]
  162. new g_Maps_Ini_File[64]
  163. new g_MapsCounter
  164. new g_MapsAvailable[30][20]
  165. new g_MapsChosen[4][20]
  166. new g_DoneMaps
  167. new g_ChangeMapTo
  168. new g_LeftBans[24][124]
  169. new g_LeftBansIPs[24][64]
  170. new g_RoundsLeft[24] = {-1, ...}
  171.  /* Map & Votes variables */
  172.  
  173.  enum {
  174.     T_WIN = 0,
  175.     CT_WIN = 1
  176. }
  177.  
  178. public plugin_init() {
  179.     register_plugin(PLUGIN, VERSION, AUTHOR)
  180.    
  181.     cvar_FFvote = register_cvar("pug_ffvote", "1", FCVAR_ARCHIVE|FCVAR_SERVER)
  182.     cvar_KnifeRound = register_cvar("pug_kniferound", "1", FCVAR_ARCHIVE|FCVAR_SERVER)
  183.     cvar_pLeft = register_cvar("pug_players", "10", FCVAR_ARCHIVE|FCVAR_SERVER)
  184.     cvar_pLeftMethod = register_cvar("pug_playersmethod", "0", FCVAR_ARCHIVE|FCVAR_SERVER)
  185.     cvar_DetectTK = register_cvar("pug_detecttk", "1", FCVAR_ARCHIVE|FCVAR_SERVER)
  186.     cvar_MuteMenu = register_cvar("mutemenu", "1", FCVAR_SPONLY|FCVAR_SERVER)
  187.     cvar_AllowShield = register_cvar("pug_allowshield", "1", FCVAR_ARCHIVE|FCVAR_SERVER)
  188.     cvar_MapVote = register_cvar("pug_mapvote", "1", FCVAR_ARCHIVE|FCVAR_SERVER)
  189.     cvar_Rankings = register_cvar("pug_ranking", "1", FCVAR_ARCHIVE|FCVAR_SERVER)
  190.     cvar_TimeLeft = register_cvar("pug_timeleft", "120", FCVAR_ARCHIVE|FCVAR_SERVER)
  191.     cvar_TeamTag = register_cvar("pug_teamtag", "1", FCVAR_ARCHIVE|FCVAR_SERVER)
  192.     cvar_AceHud = register_cvar("pug_acehud", "1", FCVAR_ARCHIVE|FCVAR_SERVER)
  193.     cvar_AFKKick = register_cvar("pug_afkkick", "1", FCVAR_ARCHIVE|FCVAR_SERVER)
  194.     cvar_ReadyXPos = register_cvar("pug_readyxpos", "0.72", FCVAR_ARCHIVE|FCVAR_SERVER)
  195.     cvar_ReadyYPos = register_cvar("pug_readyypos", "0.19", FCVAR_ARCHIVE|FCVAR_SERVER)
  196.     cvar_NotReadyXPos = register_cvar("pug_notreadyxpos", "0.02", FCVAR_ARCHIVE|FCVAR_SERVER)
  197.     cvar_NotReadyYPos = register_cvar("pug_notreadyypos", "0.19", FCVAR_ARCHIVE|FCVAR_SERVER)
  198.     cvar_RanksSystem = register_cvar("pug_rankssystem", "1", FCVAR_ARCHIVE|FCVAR_SERVER)
  199.     cvar_RanksSystemMessages = register_cvar("pug_rankssystemmessages", "1", FCVAR_ARCHIVE|FCVAR_SERVER)
  200.     cvar_KillPoints = register_cvar("pug_killpoints", "4", FCVAR_ARCHIVE|FCVAR_SERVER)
  201.     cvar_KillLosePoints = register_cvar("pug_killosepoints", "1", FCVAR_ARCHIVE|FCVAR_SERVER)
  202.     cvar_KnifePoints = register_cvar("pug_knifepoints", "10", FCVAR_ARCHIVE|FCVAR_SERVER)
  203.     cvar_KnifeLosePoints = register_cvar("pug_knifelosespoints", "4", FCVAR_ARCHIVE|FCVAR_SERVER)
  204.     cvar_WinsMatchPoints = register_cvar("pug_winsmatchpoints", "15", FCVAR_ARCHIVE|FCVAR_SERVER)
  205.     cvar_LosesMatchPoints = register_cvar("pug_losesmatchpoints", "10", FCVAR_ARCHIVE|FCVAR_SERVER)
  206.     cvar_LeavesMatchPoints = register_cvar("pug_leavesmatchpoints", "20", FCVAR_ARCHIVE|FCVAR_SERVER)
  207.     cvar_LeavesMatchTime = register_cvar("pug_leavesmatchtime", "360", FCVAR_ARCHIVE|FCVAR_SERVER)
  208.     cvar_PlaysUntilEndPoints = register_cvar("pug_playsuntilendpoints", "30", FCVAR_ARCHIVE|FCVAR_SERVER)
  209.     cvar_TeamKillPoints = register_cvar("pug_teamkillpoints", "8", FCVAR_ARCHIVE|FCVAR_SERVER)
  210.     cvar_BombPlantPoints = register_cvar("pug_bombplantpoints", "3", FCVAR_ARCHIVE|FCVAR_SERVER)
  211.     cvar_BombDefusePoints = register_cvar("pug_bombdefusepoints", "5", FCVAR_ARCHIVE|FCVAR_SERVER)
  212.     cvar_BeginnerPoints = register_cvar("pug_beginner", "200", FCVAR_ARCHIVE|FCVAR_SERVER)
  213.     cvar_RegularPoints = register_cvar("pug_regular", "500", FCVAR_ARCHIVE|FCVAR_SERVER)
  214.     cvar_VeteranPoints = register_cvar("pug_veteran", "900", FCVAR_ARCHIVE|FCVAR_SERVER)
  215.     cvar_ProPoints = register_cvar("pug_pro", "1400", FCVAR_ARCHIVE|FCVAR_SERVER)
  216.     cvar_HardCorePoints = register_cvar("pug_hardcore", "1900", FCVAR_ARCHIVE|FCVAR_SERVER)
  217.  
  218.     register_forward(FM_Voice_SetClientListening, "fwd_voice_setclientlistening")
  219.     register_menucmd(register_menuid("mute menu"), 1023, "action_mutemenu")
  220.     register_menucmd(register_menuid("ranks info"), 1023, "ranks_showInfo")
  221.     register_menucmd(register_menuid("setprices menu"), 1023, "menuHandler")
  222.    
  223.     cvar_alltalk = get_cvar_pointer("sv_alltalk")
  224.     g_maxclients = global_get(glb_maxClients)
  225.     register_cvar("afk_version", "1.0b", FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_SPONLY)
  226.  
  227.     register_cvar("mp_afktime", "40")  // Kick people AFK longer than this time
  228.     register_cvar("mp_afkminplayers", "0")  // Only kick AFKs when there is atleast this many players on the server
  229.     set_task(float(CHECK_FREQ),"checkPlayers",_,_,_,"b")
  230.     register_event("ResetHUD", "playerSpawned", "be")
  231.    
  232.     g_MsgSync = CreateHudSyncObj()
  233.     g_MsgSync3 = CreateHudSyncObj()
  234.     g_MsgSync4 = CreateHudSyncObj()
  235.     g_MsgSync5 = CreateHudSyncObj()
  236.     g_MsgSync6 = CreateHudSyncObj()
  237.     g_MsgSync7 = CreateHudSyncObj()
  238.     g_MsgSync8 = CreateHudSyncObj()
  239.     g_MsgSync2 = CreateHudSyncObj()
  240.    
  241.     cvar_mp_friendlyfire = get_cvar_pointer("mp_friendlyfire")
  242.     cvar_mp_freezetime = get_cvar_pointer("mp_freezetime")
  243.     cvar_mp_roundtime = get_cvar_pointer("mp_roundtime")
  244.     cvar_mp_buytime = get_cvar_pointer("mp_buytime")
  245.     cvar_sv_restart = get_cvar_pointer("sv_restart")
  246.     cvar_sv_password = get_cvar_pointer("sv_password")
  247.     cvar_humans_join_team = get_cvar_pointer("humans_join_team")
  248.    
  249.     gPlayersLeft = get_pcvar_num(cvar_pLeft)
  250.    
  251.     get_configsdir(gPug_ini_file, 63);
  252.     format(gPug_ini_file, 63, "%s/pug.ini", gPug_ini_file);
  253.     get_configsdir(g_Maps_Ini_File, 63);
  254.     format(g_Maps_Ini_File, 63, "%s/maps.ini", g_Maps_Ini_File);
  255.     gMaxPlayers = get_maxplayers()
  256.     SET_CONST_TASKID = scanForTaskID()
  257.    
  258.     register_clcmd("say !rr", "Restart")
  259.     register_clcmd("say !restart", "RestartS")
  260.     register_clcmd("say !add", "Prepare")
  261.     register_clcmd("say !unadd", "unPrepare")
  262.     register_clcmd("say !credit", "credits")
  263.     register_clcmd("say !credits", "credits")
  264.     register_clcmd("say !ranks", "showRanks")
  265.     register_clcmd("say !startmatch", "forcedStart_AdminCmd")
  266.     register_clcmd("say !stopmatch", "forcedStop_AdminCmd")
  267.     register_clcmd("say /ranks", "showRanks")
  268.     register_clcmd("say /xp", "showRanks")
  269.     register_clcmd("say /shop", "showRanks")
  270.     register_clcmd("say /level", "showRanks")
  271.     register_clcmd("say !ranks", "showRanks")
  272.     register_clcmd("say !xp", "showRanks")
  273.     register_clcmd("say !shop", "showRanks")
  274.     register_clcmd("say !level", "showRanks")
  275.     register_clcmd("say !cmd", "cmds")
  276.     register_clcmd("say !cmds", "cmds")
  277.     register_clcmd("say !commands", "cmds")
  278.     register_clcmd("say !menu", "player")
  279.     register_clcmd("chooseteam", "handled")
  280.     register_clcmd("jointeam", "handled")
  281.     register_clcmd("say !voteban", "voteban")
  282.     register_clcmd("say_team !voteban", "voteban")
  283.     register_clcmd("say !score", "showscore")
  284.     register_clcmd("say_team !score", "showscore")
  285.     register_clcmd("buy", "blockbuy")
  286.     register_clcmd("say", "clcmd_say")
  287.     register_clcmd("say_team", "clcmd_say")
  288.     register_concmd("amx_automix_settings", "openSettingsMenu")
  289.     register_clcmd("menuselect 8", "blockShield")
  290.     register_clcmd("shield", "blockShield_ConsoleCommand")
  291.     register_logevent("round_end", 2, "1=Round_End")  
  292.     register_event("TeamScore", "Event_TeamScore", "a")
  293.     register_event("DeathMsg", "Event_DeathMsg_Knife", "a", "1>0")
  294.     register_event("CurWeapon", "Event_CurWeapon_NotKnife", "be", "1=1", "2!29")  
  295.     register_forward(FM_ClientUserInfoChanged, "infochanged")
  296.     register_forward(FM_GetGameDescription, "Change" );
  297.     register_forward(FM_PrecacheModel, "blockShieldPrecache")
  298.     RegisterHam(Ham_Touch, "weapon_shield", "fwNoShield", 1)
  299. }
  300.  
  301. public Change() {    
  302.     forward_return(FMV_STRING, "Auto-Mix By p1Mp");
  303.     return FMRES_SUPERCEDE;
  304. }
  305.  
  306.  
  307. public blockbuy(id) {  
  308.     if (g_bCpt)
  309.         client_print(id, print_chat, "%s .תווצה קיסמ ךלהמב קשנ תונקל לוכי אל התא", PREFIX)
  310.    
  311.     else if (g_KnifeRound)
  312.         client_print(id, print_chat, "%s .םיניכס בוביס ךלהמב קשנ תונקל לוכי אל התא", PREFIX)
  313.    
  314.     return PLUGIN_CONTINUE
  315. }
  316.  
  317. public Event_CurWeapon_NotKnife(id) {
  318.     if ( g_Restart || !g_KnifeRound )
  319.         return
  320.  
  321.     if( !user_has_weapon(id, CSW_KNIFE ) )
  322.         give_item(id, "weapon_knife")
  323.     engclient_cmd(id, "weapon_knife")
  324. }
  325.  
  326. public Restart(id) {
  327.    
  328.     if (is_user_admin(id))
  329.         server_cmd("sv_restart 1")
  330.     else
  331.         client_print(id, print_chat, "%s ! ןימדא אל התא", PREFIX)
  332. }
  333.  
  334. public RestartS(id) {
  335.    
  336.     if (is_user_admin(id))
  337.         server_cmd("restart")
  338.    
  339.     else
  340.         client_print(id, print_chat, "%s ! ןימדא אל התא", PREFIX)
  341. }
  342.  
  343. public showscore(id) {
  344.     if ( !get_pcvar_num(cvar_TeamTag) && g_IsStarted)
  345.     {
  346.         CrashAttempt(id)
  347.         client_print(0, print_chat, ":ןויצ (םילבחמ) %d - %d (םירטוש)", g_iScore[0], g_iScore[1])
  348.         return PLUGIN_CONTINUE;
  349.     }
  350.            
  351.     if (g_IsStarted)
  352.     {
  353.         if (g_Twon)
  354.         {
  355.             if (g_bSecondHalf)
  356.                 client_print(0, print_chat, ":ןויצ ('א הצובק) %d - %d ('ב הצובק)", g_iScore[0], g_iScore[1])
  357.        
  358.             else
  359.                 client_print(0, print_chat, ":ןויצ ('א הצובק) %d - %d ('ב הצובק)", g_iScore[1], g_iScore[0])
  360.         }
  361.          
  362.         else
  363.         {
  364.             if (g_bSecondHalf)
  365.                 client_print(0, print_chat, ":ןויצ ('א הצובק) %d - %d ('ב הצובק)", g_iScore[1], g_iScore[0])
  366.             else
  367.                 client_print(0, print_chat, ":ןויצ ('א הצובק) %d - %d ('ב הצובק)", g_iScore[0], g_iScore[1])
  368.         }
  369.     }
  370.    
  371.     else
  372.     {
  373.         client_print(id, print_chat, "%s !הליחתה אל דוע קחשמה", PREFIX)
  374.     }
  375.     return PLUGIN_CONTINUE
  376. }
  377.  
  378. public Event_DeathMsg_Knife()
  379. {
  380.     if ( g_Restart || !g_IsStarted )
  381.             return
  382.          
  383.     new attacker = read_data(1)
  384.     new victim = read_data(2)
  385.    
  386.     if ( !( 1 <= attacker <= gMaxPlayers ) || !( 1 <= victim <= gMaxPlayers) )
  387.         return;
  388.    
  389.     if ( cs_get_user_team(attacker) == cs_get_user_team(victim) && attacker != victim )
  390.     {
  391.         client_print(attacker, print_chat, "%s תדביא %d .הצובקה תגירה לע תודוקנ", PREFIX, get_pcvar_num(cvar_TeamKillPoints))
  392.         gPoints[attacker] -= get_pcvar_num(cvar_TeamKillPoints)
  393.         SaveStats(attacker)
  394.     }
  395.    
  396.     if( victim != attacker && cs_get_user_team(attacker) != cs_get_user_team(victim))
  397.     {
  398.         new weap[7]
  399.  
  400.         if( read_data(4, weap, charsmax(weap)) == 5 && equal(weap, "knife") )
  401.         {
  402.             new nameA[32]
  403.             new nameV[32]
  404.          
  405.             get_user_name(attacker, nameA, 31)
  406.             get_user_name(victim, nameV, 31)
  407.                      
  408.             set_hudmessage(255, 255, 255, 0.04, 0.63, 0, 6.0, 12.0)
  409.             ShowSyncHudMsg(0, g_MsgSync5, "%s תא ןיכסב גרה %s!", nameA, nameV)
  410.             gPoints[attacker] += get_pcvar_num(cvar_KnifePoints)
  411.             gPoints[victim] -= get_pcvar_num(cvar_KnifeLosePoints)
  412.             SaveStats(attacker)
  413.             SaveStats(victim)
  414.            
  415.             if ( get_pcvar_num(cvar_RanksSystemMessages) && get_pcvar_num(cvar_KnifePoints))
  416.                 client_print(attacker, print_chat, "%s םתשכר %d !ןיכסב גורהל תודוקנ", PREFIX, get_pcvar_num(cvar_KnifePoints))
  417.             if ( get_pcvar_num(cvar_RanksSystemMessages) && get_pcvar_num(cvar_KnifeLosePoints) )
  418.                 client_print(victim, print_chat, "%s תדביא %d !ןיכסב תומל תודוקנ", PREFIX, get_pcvar_num(cvar_KnifeLosePoints))
  419.         }
  420.        
  421.         else
  422.         {
  423.             gPoints[attacker] += get_pcvar_num(cvar_KillPoints)
  424.             gPoints[victim] -= get_pcvar_num(cvar_KillLosePoints)
  425.             SaveStats(attacker)
  426.             SaveStats(victim)
  427.            
  428.             if ( get_pcvar_num(cvar_RanksSystemMessages) && get_pcvar_num(cvar_KillPoints) )
  429.                 client_print(attacker, print_chat, "%s םתשכר %d !גורהל תודוקנ", PREFIX, get_pcvar_num(cvar_KillPoints))
  430.             if ( get_pcvar_num(cvar_RanksSystemMessages) && get_pcvar_num(cvar_KillLosePoints) )
  431.                 client_print(victim, print_chat, "%s תדביא %d !גורהל תודוקנ", PREFIX, get_pcvar_num(cvar_KillLosePoints))
  432.         }
  433.        
  434.         g_KillsAce[attacker]++
  435.         g_TotalKills[attacker]++
  436.         g_TotalDeaths[victim]++
  437.     }
  438. }
  439.  
  440. public bomb_planted( planter )
  441. {
  442.     if ( g_IsStarted )
  443.     {
  444.         g_BombPlants[planter]++
  445.         client_print(planter, print_chat, "%s םתשכר %d .הצצפ תליתש רובע תודוקנ", PREFIX, get_pcvar_num(cvar_BombPlantPoints))
  446.         gPoints[planter] += get_pcvar_num(cvar_BombPlantPoints)
  447.         SaveStats(planter)
  448.     }
  449. }
  450.  
  451. public bomb_defused( defuser )
  452. {
  453.     if ( g_IsStarted )
  454.     {
  455.         g_KillsAce[defuser] -= 3
  456.         g_BombDefusions[defuser]++
  457.         client_print(defuser, print_chat, "%s םתשכר %d .הצצפ לורטנ רובע תודוקנ", PREFIX, get_pcvar_num(cvar_BombPlantPoints))
  458.         gPoints[defuser] += get_pcvar_num(cvar_BombDefusePoints)
  459.         SaveStats(defuser)
  460.     }
  461. }
  462.    
  463. public fwNoShield(ent)
  464. {
  465.     new id = pev(ent, pev_owner)
  466.    
  467.     if( is_user_alive(id) )
  468.     {
  469.         No_Shield_Message(id)
  470.         remove_shield(id)
  471.         return HAM_SUPERCEDE
  472.     }
  473.    
  474.     return HAM_IGNORED
  475. }
  476.    
  477. public blockShield(id)
  478. {
  479.     if( !get_pcvar_num(cvar_AllowShield) && is_user_alive(id) && cs_get_user_menu(id) == 10 && cs_get_user_team(id) == CS_TEAM_CT )
  480.     {
  481.         No_Shield_Message(id)
  482.         return PLUGIN_HANDLED_MAIN
  483.     }
  484.    
  485.     return PLUGIN_CONTINUE
  486. }
  487.  
  488. public blockShield_ConsoleCommand(id)
  489. {
  490.     if( !get_pcvar_num(cvar_AllowShield) && is_user_alive(id) &&  cs_get_user_team(id) == CS_TEAM_CT )
  491.     {
  492.         No_Shield_Message(id)
  493.         return PLUGIN_HANDLED
  494.     }
  495.    
  496.     return PLUGIN_CONTINUE
  497. }
  498.  
  499. public client_command(id)
  500. {
  501.     static szCommand[8]
  502.  
  503.     if( read_argv(0, szCommand, charsmax(szCommand)) == 6 && equali(szCommand, "shield") && ( !get_pcvar_num(cvar_AllowShield) || g_KnifeRound ) )
  504.     {
  505.         No_Shield_Message(id)
  506.         return PLUGIN_HANDLED
  507.     }
  508.     return PLUGIN_CONTINUE
  509. }
  510.  
  511. public CS_InternalCommand(id, const szCommand[])
  512. {
  513.     if( equali(szCommand, "shield") && ( !get_pcvar_num(cvar_AllowShield) || g_KnifeRound ) )
  514.     {
  515.         No_Shield_Message(id)
  516.         return PLUGIN_HANDLED
  517.     }
  518.     return PLUGIN_CONTINUE
  519. }
  520.  
  521. No_Shield_Message(id)
  522. {
  523.     if ( !get_pcvar_num(cvar_AllowShield) || g_KnifeRound )
  524.     {
  525.         if ( g_KnifeRound )
  526.             client_print(id, print_center, "!םיניכס בוביסב ןגמ תונקל לוכי אל התא")
  527.         else
  528.             client_print(id, print_center, "!הז תרשב ןימז רבכ ןגמ")
  529.        
  530.     }
  531. }
  532.  
  533. public client_damage(attacker, victim, damage, wpnindex, hitplace, TA) {
  534.     if (!get_pcvar_num(cvar_DetectTK))
  535.         return PLUGIN_CONTINUE
  536.        
  537.     if (attacker == victim)
  538.     {
  539.         damage = 0
  540.     }
  541.    
  542.     if (g_IsStarted)
  543.     {
  544.         if (TA == 1)
  545.         {
  546.             g_LeftKills[attacker] += damage
  547.            
  548.            
  549.             if (g_LeftKills[attacker] >= 100)
  550.             {
  551.                 new nameofp[50]
  552.                
  553.                 get_user_name(attacker, nameofp, 49)
  554.                    
  555.                 server_cmd("amx_banip #%d 10 ^"%s !םתרהזוה ואר (גרוה תווצ)^"", get_user_userid(attacker), PREFIX)
  556.                 set_hudmessage(255, 0, 0, 0.32, 0.70, 0, 6.0, 12.0)
  557.                 show_hudmessage(0, "%s אסור לתת יריות בין קבוצה!", nameofp)
  558.                 client_print(0, print_chat, "%s !האבה םעפב ןאב ךל איבהל לוכי םינימדאה תווצ .ינמז ןפואב לרטונמ תיתודידי שא", PREFIX)
  559.                 set_pcvar_num(cvar_mp_friendlyfire, 0)
  560.                
  561.                 new players[32], pnum, tempid;
  562.  
  563.                 get_players(players, pnum, "ch")
  564.  
  565.                 for (new i ; i<pnum ; i++)
  566.                 {
  567.                     tempid = players[i]
  568.                     g_LeftKills[tempid] = 0
  569.                 }
  570.                
  571.                 new taskId = scanForTaskID()
  572.                
  573.                 set_task(100.0, "TurnItBackOn", taskId)
  574.                 return PLUGIN_HANDLED
  575.             }
  576.    
  577.            
  578.             if (g_LeftKills[attacker] - damage > 40)
  579.                 return PLUGIN_HANDLED
  580.            
  581.             else
  582.             {
  583.            
  584.                 if (g_LeftKills[attacker] < 40)
  585.                 {
  586.                     client_print(attacker, print_chat, "%s ..תרשהמ ןאב ךל איבהל לוכי ךלש תווצה ירבח תפיקת !הרהזא", PREFIX)
  587.                 }
  588.                
  589.                 if ( g_LeftKills[attacker] >= 40 && !g_givenChance[attacker] )
  590.                 {
  591.                     g_givenChance[attacker] = true
  592.                     client_print(attacker, print_chat, "%s .עדומ תויהל , ןאב ךל איבהל לוכי ךלש תווצה ירבח תפיקת !קיפסמ םתרהזוה ואר", PREFIX)
  593.                     g_LeftKills[attacker] = 0
  594.                     set_hudmessage(255, 0, 0, 0.19, 0.35, 0, 6.0, 12.0)
  595.                     show_hudmessage(attacker, "!ןאב ךל איבהל לוכי גרוהה תווצ !הרהזא")
  596.                     client_print(0, print_chat, "%s .אבה בוביסה דע תקספומ היהת וישכע תיתודידי שא", PREFIX)
  597.                     set_pcvar_num(cvar_mp_friendlyfire, 0)
  598.                     g_bFFTKStop = true
  599.                    
  600.                 }
  601.            
  602.                 else if (g_LeftKills[attacker] >= 40)
  603.                 {
  604.                     new nameofp[50]
  605.                
  606.                     get_user_name(attacker, nameofp, 49)
  607.                    
  608.                     new pplayers[32], ppnum, ptempid;
  609.    
  610.                     get_players(pplayers, ppnum, "ch");
  611.  
  612.                     for( new i; i<ppnum; i++ )
  613.                     {
  614.                         ptempid = pplayers[i]
  615.            
  616.                         if (ptempid != attacker)
  617.                         {
  618.                             client_print(ptempid, print_chat ,"%s םא %s voteban! האבה הדוקפב שמתשה ,תנבצעמ תויהל ידכ קר הלש הצובקה ירבחב הרוי תרחבנה", PREFIX, nameofp)
  619.                             set_hudmessage(255, 0, 0, 0.32, 0.70, 0, 6.0, 12.0)
  620.                             show_hudmessage(ptempid, "אוה %s voteban! !וישכע בותכ ?ןבצעמ", nameofp)
  621.                             client_print(ptempid, print_chat, "%s אש ידידותית עכשיו תהיה מופסקת עד הסיבוב הבא.", PREFIX)
  622.                            
  623.                         }  
  624.                     }
  625.                    
  626.                     set_pcvar_num(cvar_mp_friendlyfire, 0)
  627.                     g_bFFTKStop = true
  628.                 }
  629.             }
  630.         }
  631.     }
  632.    
  633.     return PLUGIN_CONTINUE
  634. }
  635.  
  636. public infochanged(id, buffer)  {
  637.     if ( ( g_IsStarted || g_KnifeRound ) && get_pcvar_num(cvar_TeamTag) )
  638.     {
  639.         if( is_user_connected(id) )
  640.         {
  641.             new name[32]
  642.             new val[32]
  643.            
  644.             get_user_name(id, name, 31)
  645.             engfunc(EngFunc_InfoKeyValue, buffer, "name", val, 31)
  646.            
  647.             new posA = contain(name, "(Team-A)")
  648.             new posB = contain(name, "(Team-B)")
  649.            
  650.             if (g_bSecondHalf)
  651.             {
  652.                 if (cs_get_user_team(id) == CS_TEAM_T)
  653.                 {
  654.                     if (posB == 0)
  655.                     {
  656.                         engfunc(EngFunc_SetClientKeyValue, id, buffer, "name", name)
  657.                         return FMRES_SUPERCEDE
  658.                     }
  659.                 }
  660.            
  661.                 else if (cs_get_user_team(id) == CS_TEAM_CT)
  662.                 {
  663.                     if (posA == 0)
  664.                     {
  665.                         engfunc(EngFunc_SetClientKeyValue, id, buffer, "name", name)
  666.                         return FMRES_SUPERCEDE
  667.                     }
  668.                 }
  669.             }
  670.            
  671.             else
  672.             {
  673.                 if (cs_get_user_team(id) == CS_TEAM_T)
  674.                 {
  675.                     if (posA == 0)
  676.                     {
  677.                         engfunc(EngFunc_SetClientKeyValue, id, buffer, "name", name)
  678.                         return FMRES_SUPERCEDE
  679.                     }
  680.  
  681.                 }
  682.            
  683.                 else if (cs_get_user_team(id) == CS_TEAM_CT)
  684.                 {
  685.                     if (posB == 0)
  686.                     {
  687.                         engfunc(EngFunc_SetClientKeyValue, id, buffer, "name", name)
  688.                         return FMRES_SUPERCEDE
  689.                     }
  690.  
  691.                 }
  692.             }
  693.            
  694.             if (((contain(val, "(Team-A)") == 0) && (contain(name, "(Team-A") == -1)) || ((contain(val, "(Team-B)") == 0) && (contain(name, "(Team-B") == -1)))
  695.             {
  696.                 return FMRES_IGNORED
  697.             }
  698.            
  699.             if (((contain(val, "(Team-B)") == 0) && (contain(name, "(Team-A") == 0)) || ((contain(val, "(Team-A)") == 0) && (contain(name, "(Team-B") == 0)))
  700.             {
  701.                 return FMRES_IGNORED
  702.             }
  703.            
  704.             if (equal(val, name))
  705.             {
  706.                 return FMRES_IGNORED
  707.             }
  708.  
  709.             engfunc(EngFunc_SetClientKeyValue, id, buffer, "name", name)
  710.             return FMRES_SUPERCEDE
  711.         }
  712.     }
  713.  
  714.     return FMRES_IGNORED
  715. }
  716.    
  717.  
  718. public TurnItBackOn() {
  719.     set_pcvar_num(cvar_mp_friendlyfire, 1)
  720.     client_print(0, print_chat, "%s !ןאב ךל איבהל לוכי םירבח ןיב שא :הרהזא !הרזח םירבח ןיב תוירי", PREFIX)
  721.     return PLUGIN_HANDLED
  722. }
  723.                
  724. public voteban(id) {
  725.    
  726.     if (g_LeftVotes[id] >= 1)
  727.     {
  728.         client_print(id, print_chat, "%s !הזה קחשמה לע רתוי עיבצהל לוכי אל התא", PREFIX)
  729.         return PLUGIN_HANDLED
  730.     }
  731.    
  732.     else if (g_VoteProg)
  733.     {
  734.         client_print(id, print_chat, "%s !ועיבצה רבכ תולוקה לכ", PREFIX)
  735.         return PLUGIN_HANDLED
  736.     }
  737.    
  738.     g_Menu = menu_create("Choose a Player to vote for a ban: ", "voteban_menu");
  739.     new players[32], pnum, tempid;
  740.     new szName[32], szTempid[10];
  741.     new added
  742.  
  743.     get_players(players, pnum, "ch");
  744.        
  745.     for( new i; i<pnum; i++ )
  746.     {
  747.         tempid = players[i];
  748.        
  749.         if (g_LeftKills[tempid] >= 40)
  750.         {
  751.             get_user_name(tempid, szName, 31);
  752.             num_to_str(tempid, szTempid, 9);
  753.             menu_additem(g_Menu, szName, szTempid, 0);
  754.             added++
  755.         }
  756.     }
  757.    
  758.     for ( new i ; i < sizeof(g_LeftBans) ; i++ )
  759.     {
  760.         if ( g_LeftBans[i][0] && g_RoundsLeft[i] != -1 )
  761.         {
  762.             num_to_str(i+32, szTempid, 9)
  763.             menu_additem(g_Menu, g_LeftBans[i], szTempid, 0)
  764.             added++
  765.         }
  766.     }
  767.    
  768.     if ( !added )
  769.     {
  770.         client_print(id, print_chat, "%s !םיללעתמה ומכ והוז אל םינקחש", PREFIX)
  771.         return PLUGIN_HANDLED
  772.     }
  773.  
  774.     menu_display(id, g_Menu);
  775.     return PLUGIN_HANDLED;
  776. }
  777.  
  778. public voteban_menu(id, menu, item)  {
  779.     if( item == MENU_EXIT )
  780.     {
  781.         menu_destroy(menu);
  782.         return PLUGIN_HANDLED;
  783.     }
  784.    
  785.     else if (g_VoteProg)
  786.     {
  787.         client_print(id, print_chat, "%s !ועיבצה רבכ תולוקה לכ", PREFIX)
  788.         return PLUGIN_HANDLED
  789.     }
  790.    
  791.     g_LeftVotes[id]++
  792.     new data[6], iName[64];
  793.     new access, callback;
  794.     menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
  795.  
  796.     new tempid = str_to_num(data);
  797.     new name[50]
  798.    
  799.     if ( tempid < 32 && !is_user_connected(tempid) )
  800.         return PLUGIN_HANDLED
  801.        
  802.     get_user_name(tempid, name, 49)
  803.    
  804.     votebanonplayer(tempid)
  805.    
  806.     menu_destroy(menu);
  807.     return PLUGIN_HANDLED
  808. }
  809.  
  810. public votebanonplayer(id) {
  811.     g_VoteProg = true
  812.     new nameofplayer[52]
  813.     new banline[128] = "Ban "
  814.    
  815.     if ( id >= 32 )
  816.     {
  817.         id -= 32
  818.         add(banline, 127, g_LeftBans[id])
  819.         id += 32
  820.     }
  821.    
  822.     else
  823.     {
  824.         get_user_name(id, nameofplayer, 51)
  825.         add(banline, 127, nameofplayer)
  826.     }
  827.     add(banline, 127, "?")
  828.    
  829.     g_abMenu = menu_create(banline, "votebanonplayer_menu");
  830.     menu_additem(g_abMenu, "Yes", "0", 0)
  831.     menu_additem(g_abMenu, "No", "1", 0)
  832.    
  833.     new pplayers[32], ppnum, ptempid;
  834.    
  835.     if ( 1 <= id <= gMaxPlayers )
  836.     {
  837.         switch( cs_get_user_team(id) )
  838.         {
  839.             case CS_TEAM_CT: get_players(pplayers, ppnum, "che", "CT");
  840.             case CS_TEAM_T: get_players(pplayers, ppnum, "che", "TERRORIST");
  841.         }
  842.     }
  843.    
  844.     else
  845.         get_players(pplayers, ppnum, "ch");
  846.    
  847.  
  848.     for( new i; i<ppnum; i++ )
  849.     {
  850.         ptempid = pplayers[i]
  851.        
  852.         if (ptempid != id)
  853.         {
  854.  
  855.             menu_display(ptempid, g_abMenu, 0)
  856.         }  
  857.     }
  858.    
  859.  
  860.     set_task(7.0, "EndBanVote", id)
  861.    
  862.     return PLUGIN_HANDLED
  863. }
  864.  
  865. public EndBanVote(id)  {
  866.     g_VoteProg = false
  867.     show_menu(0, 0, "^n", 1);
  868.     if(g_bVotes[0] >= g_bVotes[1])
  869.     {
  870.         client_print(0, print_chat, "%s .רתוי עיבצהל רוסא", PREFIX)
  871.         set_hudmessage(255, 0, 0, 0.32, 0.70, 0, 6.0, 12.0)
  872.        
  873.         if ( id < 32 )
  874.         {
  875.             server_cmd("amx_banip #%d 5 ^"%s .תרשב הערל שומיש לע רוסאל הטילחה הצובקה^"", get_user_userid(id), PREFIX)
  876.            
  877.             new nameofp[50]
  878.                    
  879.             get_user_name(id, nameofp, 49)
  880.             ShowSyncHudMsg(0, g_MsgSync6, "%s !ןאבב תויהל רחבנ", nameofp)
  881.         }
  882.        
  883.         else
  884.         {
  885.             server_cmd("amx_banip ^"%s^" 15", g_LeftBansIPs[id-32])
  886.             ShowSyncHudMsg(0, g_MsgSync6, "%s !ןאבב תויהל רחבנ", g_LeftBans[id-32])
  887.             copy(g_LeftBans[id-32], charsmax(g_LeftBans[]), "")
  888.             copy(g_LeftBansIPs[id-32], charsmax(g_LeftBansIPs[]), "")
  889.             g_RoundsLeft[id-32] = -1
  890.         }
  891.        
  892.        
  893.            
  894.         g_bVotes[0] = 0
  895.         g_bVotes[1] = 0
  896.         return PLUGIN_HANDLED
  897.     }
  898.    
  899.     else
  900.     {
  901.         client_print(0, print_chat, "%s .לשכנ ןאבב העבצהה", PREFIX)  
  902.        
  903.         if ( id >= 32 )
  904.         {
  905.             copy(g_LeftBans[id-32], charsmax(g_LeftBans[]), "")
  906.             copy(g_LeftBansIPs[id-32], charsmax(g_LeftBansIPs[]), "")
  907.             g_RoundsLeft[id-32] = -1
  908.         }
  909.        
  910.         else
  911.         {
  912.             g_bVotes[0] = 0
  913.             g_bVotes[1] = 0
  914.             g_LeftKills[id] = 0
  915.         }
  916.         return PLUGIN_HANDLED
  917.     }
  918.    
  919.     return PLUGIN_HANDLED
  920. }
  921.  
  922. public votebanonplayer_menu(id, menu, item) {
  923.     if( item == MENU_EXIT )
  924.     {
  925.         menu_display(id, g_abMenu);
  926.         return PLUGIN_HANDLED;
  927.     }
  928.    
  929.     new data[6], szName[64];
  930.     new access, callback;
  931.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  932.    
  933.     new voteid = str_to_num(data);
  934.     g_bVotes[voteid]++;
  935.     return PLUGIN_HANDLED;
  936. }
  937.  
  938. public handled(id) {
  939.     if ( !is_user_connected(id) )
  940.         return PLUGIN_HANDLED
  941.        
  942.     if ( cs_get_user_team(id) == CS_TEAM_UNASSIGNED )
  943.         return PLUGIN_CONTINUE
  944.        
  945.     player(id)
  946.     return PLUGIN_HANDLED
  947. }
  948.  
  949. public openSettingsMenu(id)
  950.     settingsMenu(id, 0)
  951.    
  952. public settingsMenu(id, page)
  953. {
  954.     if ( !is_user_admin(id) )
  955.     {
  956.         console_print(id, ".תורדגהה טירפתל תשגל םילוכי םילהנמ קר")
  957.         return PLUGIN_HANDLED
  958.     }
  959.    
  960.     new menu = menu_create("\r[Auto-Mix]\w :םינימדאל טירפתה תורדגה", "settingsHandler")
  961.    
  962.     new item1[79] = "\wםינקחש 'סמ [\y%d\w]"
  963.     new item2[79] = "רתונש ןמזה (!add) [\y%d\w seconds]"
  964.     new item3[79] = "םינקחש תמישר [\y%s\w]"
  965.     new item4[79] = "עבצה תיתודידי שא [%s]"
  966.     new item5[79] = "םיניכס בוביס [%s]"
  967.     new item6[79] = "םירבח ןיב תוירי תכרעמ [%s]"
  968.     new item7[79] = "םינקחש תקתשהל טירפת [%s]"
  969.     new item8[79] = "ןגמ רשפא [%s]"
  970.     new item9[79] = "תופמ לע עבצה [%s]"
  971.     new item10[79] = "םינקחש גוריד תמאתה [%s]"
  972.     new item11[79] = "\wתיגת יתווצ [%s]"
  973.     new item12[79] = "זירכהל סייא ינימ [%s]"
  974.     new item13[79] = "קיק יקפא [%s]"
  975.     new item14[79] = "עצוממ [\yתורדגה\w]"
  976.     new item15[79] = "עצוממה ןכומ אל [\yתורדגה\w]"
  977.     new item16[79] = "תכרעמה תוגרד [%s]"
  978.     new item17[79] = "תועדוהה תכרעמ תוגרד [%s]"
  979.     new item18[79] = "םיכרע תודוקנ [\yתורדגה\w]"
  980.     new item19[79] = "םיריחמ תוגרד תודוקנ [\yתורדגה\w]"
  981.    
  982.     switch ( get_pcvar_num(cvar_pLeftMethod) )
  983.     {
  984.         case 0: format(item3, charsmax(item3), item3, "Not Ready")
  985.         case 1: format(item3, charsmax(item3), item3, "Ready")
  986.         case 2: format(item3, charsmax(item3), item3, "Both")
  987.     }
  988.    
  989.     format(item1, charsmax(item1), item1, get_pcvar_num(cvar_pLeft) )
  990.     format(item2, charsmax(item2), item2, get_pcvar_num(cvar_TimeLeft) )
  991.     format(item4, charsmax(item4), item4, get_pcvar_num(cvar_FFvote) ? "\yלעפומ\w" : "\rהבוכמ\w")
  992.     format(item5, charsmax(item5), item5, get_pcvar_num(cvar_KnifeRound) ? "\yלעפומ\w" : "\rהבוכמ\w")
  993.     format(item6, charsmax(item6), item6, get_pcvar_num(cvar_DetectTK) ? "\yלעפומ\w" : "\rהבוכמ\w")
  994.     format(item7, charsmax(item7), item7, get_pcvar_num(cvar_MuteMenu) ? "\yלעפומ\w" : "\rהבוכמ\w")
  995.     format(item8, charsmax(item8), item8, get_pcvar_num(cvar_AllowShield) ? "\yלעפומ\w" : "\rהבוכמ\w")
  996.     format(item9, charsmax(item9), item9, get_pcvar_num(cvar_MapVote) ? "\yלעפומ\w" : "\rהבוכמ\w")
  997.     format(item10, charsmax(item10), item10, get_pcvar_num(cvar_Rankings) ? "\yלעפומ\w" : "\rהבוכמ\w")
  998.     format(item11, charsmax(item11), item11, get_pcvar_num(cvar_TeamTag) ? "\yלעפומ\w" : "\rהבוכמ\w")
  999.     format(item12, charsmax(item12), item12, get_pcvar_num(cvar_AceHud) ? "\yלעפומ\w" : "\rהבוכמ\w")
  1000.     format(item13, charsmax(item13), item13, get_pcvar_num(cvar_AFKKick) ? "\yלעפומ\w" : "\rהבוכמ\w")
  1001.     format(item16, charsmax(item16), item16, get_pcvar_num(cvar_RanksSystem) ? "\yלעפומ\w" : "\rהבוכמ\w")
  1002.     format(item17, charsmax(item17), item17, ( get_pcvar_num(cvar_RanksSystem) && get_pcvar_num(cvar_RanksSystemMessages) ) ? "\yלעפומ\w" : "\rהבוכמ\w")
  1003.    
  1004.     menu_additem(menu, item1, "0", g_IsStarted ? ADMIN_USER : 0 )
  1005.     menu_additem(menu, item2, "1")
  1006.     menu_additem(menu, item3, "2")
  1007.     menu_additem(menu, item4, "3")
  1008.     menu_additem(menu, item5, "4")
  1009.     menu_additem(menu, item6, "5")
  1010.     menu_additem(menu, item7, "6")
  1011.     menu_additem(menu, item8, "7")
  1012.     menu_additem(menu, item9, "8")
  1013.     menu_additem(menu, item10, "9")
  1014.     menu_additem(menu, item11, "10", g_IsStarted ? ADMIN_USER : 0 )
  1015.     menu_additem(menu, item12, "11")
  1016.     menu_additem(menu, item13, "12")
  1017.     menu_additem(menu, item14, "13")
  1018.     menu_additem(menu, item15, "14")
  1019.     menu_additem(menu, item16, "15")
  1020.     menu_additem(menu, item17, "16")
  1021.     menu_additem(menu, item18, "17", gChanging ? ADMIN_USER : 0)
  1022.     menu_additem(menu, item19, "18", gChanging2 ? ADMIN_USER : 0)
  1023.    
  1024.     menu_display(id, menu, page)
  1025.     return PLUGIN_HANDLED
  1026. }
  1027.  
  1028. public settingsHandler(id, menu, item)  {
  1029.     if( item == MENU_EXIT )
  1030.     {
  1031.         menu_destroy(menu);
  1032.         return PLUGIN_HANDLED;
  1033.     }
  1034.    
  1035.     new data[6], iName[64];
  1036.     new access, callback;
  1037.     menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
  1038.  
  1039.     new menuOption = str_to_num(data)
  1040.     new currentCvarNum
  1041.    
  1042.     switch ( menuOption )
  1043.     {
  1044.         case 0:
  1045.         {
  1046.             new playersReady = -1
  1047.            
  1048.             if ( !( g_AfterRdy || g_IsStarted || g_MapChanged ) )
  1049.             {
  1050.                 playersReady = 0
  1051.                
  1052.                 for ( new i ; i < gMaxPlayers ; i++ )
  1053.                 {
  1054.                     if ( !is_user_connected(i) )
  1055.                         continue;
  1056.                    
  1057.                     if ( g_bIsReady[i] )
  1058.                         playersReady++
  1059.                 }
  1060.             }
  1061.             currentCvarNum = get_pcvar_num(cvar_pLeft)
  1062.            
  1063.             if ( playersReady == -1 )
  1064.             {
  1065.                 if ( currentCvarNum + 2 <= gMaxPlayers )
  1066.                     currentCvarNum += 2
  1067.                 else
  1068.                     currentCvarNum = 2
  1069.             }
  1070.            
  1071.             else
  1072.             {
  1073.                 if ( currentCvarNum + 2 <= gMaxPlayers )
  1074.                     currentCvarNum += 2
  1075.                 else
  1076.                 {
  1077.                     new setToNum = 2
  1078.                    
  1079.                     while ( setToNum - playersReady <= 0)
  1080.                         setToNum += 2
  1081.                     currentCvarNum = setToNum
  1082.                 }
  1083.             }
  1084.            
  1085.             set_pcvar_num(cvar_pLeft, currentCvarNum)
  1086.             gPlayersLeft = currentCvarNum
  1087.            
  1088.             if ( !( g_AfterRdy || g_IsStarted || g_MapChanged ) )
  1089.             {
  1090.                 for ( new i ; i < gMaxPlayers ; i++ )
  1091.                 {
  1092.                     if ( !is_user_connected(i) )
  1093.                         continue;
  1094.                    
  1095.                     if ( g_bIsReady[i] )
  1096.                         gPlayersLeft--
  1097.                 }
  1098.             }
  1099.         }
  1100.        
  1101.         case 1:
  1102.         {
  1103.             currentCvarNum = get_pcvar_num(cvar_TimeLeft)
  1104.            
  1105.             if ( currentCvarNum + 5 <= TIME_MAX )
  1106.                 currentCvarNum += 5
  1107.             else
  1108.                 currentCvarNum = 30
  1109.            
  1110.             set_pcvar_num(cvar_TimeLeft, currentCvarNum)
  1111.         }
  1112.        
  1113.         case 2:
  1114.         {
  1115.             currentCvarNum = get_pcvar_num(cvar_pLeftMethod)
  1116.            
  1117.             if ( currentCvarNum != 2 )
  1118.                 currentCvarNum++
  1119.             else
  1120.                 currentCvarNum = 0
  1121.            
  1122.             set_pcvar_num(cvar_pLeftMethod, currentCvarNum)
  1123.         }
  1124.        
  1125.         case 3:
  1126.         {
  1127.             currentCvarNum = get_pcvar_num(cvar_FFvote)
  1128.            
  1129.             if ( currentCvarNum )
  1130.                 currentCvarNum = 0
  1131.             else
  1132.                 currentCvarNum = 1
  1133.            
  1134.             set_pcvar_num(cvar_FFvote, currentCvarNum)
  1135.         }
  1136.        
  1137.         case 4:
  1138.         {
  1139.             currentCvarNum = get_pcvar_num(cvar_KnifeRound)
  1140.            
  1141.             if ( currentCvarNum )
  1142.                 currentCvarNum = 0
  1143.             else
  1144.                 currentCvarNum = 1
  1145.                
  1146.             set_pcvar_num(cvar_KnifeRound, currentCvarNum)
  1147.         }
  1148.        
  1149.         case 5:
  1150.         {
  1151.             currentCvarNum = get_pcvar_num(cvar_DetectTK)
  1152.            
  1153.             if ( currentCvarNum )
  1154.                 currentCvarNum = 0
  1155.             else
  1156.                 currentCvarNum = 1
  1157.                
  1158.             set_pcvar_num(cvar_DetectTK, currentCvarNum)
  1159.         }
  1160.        
  1161.         case 6:
  1162.         {
  1163.             currentCvarNum = get_pcvar_num(cvar_MuteMenu)
  1164.            
  1165.             if ( currentCvarNum )
  1166.                 currentCvarNum = 0
  1167.             else
  1168.                 currentCvarNum = 1
  1169.                
  1170.             set_pcvar_num(cvar_MuteMenu, currentCvarNum)
  1171.         }
  1172.        
  1173.         case 7:
  1174.         {
  1175.             currentCvarNum = get_pcvar_num(cvar_AllowShield)
  1176.            
  1177.             if ( currentCvarNum )
  1178.                 currentCvarNum = 0
  1179.             else
  1180.                 currentCvarNum = 1
  1181.                
  1182.             if ( !currentCvarNum )
  1183.             {
  1184.                 new players[32], pnum, tempid
  1185.                 get_players(players, pnum, "ch")
  1186.                
  1187.                 for ( new i ; i < pnum ; i++ )
  1188.                 {
  1189.                     tempid = players[i]
  1190.                     remove_shield( tempid )
  1191.                 }
  1192.             }
  1193.                
  1194.             set_pcvar_num(cvar_AllowShield, currentCvarNum)
  1195.         }
  1196.        
  1197.         case 8:
  1198.         {
  1199.             currentCvarNum = get_pcvar_num(cvar_MapVote)
  1200.            
  1201.             if ( currentCvarNum )
  1202.                 currentCvarNum = 0
  1203.             else
  1204.                 currentCvarNum = 1
  1205.                
  1206.             set_pcvar_num(cvar_MapVote, currentCvarNum)
  1207.         }
  1208.        
  1209.         case 9:
  1210.         {
  1211.             currentCvarNum = get_pcvar_num(cvar_Rankings)
  1212.            
  1213.             if ( currentCvarNum )
  1214.                 currentCvarNum = 0
  1215.             else
  1216.                 currentCvarNum = 1
  1217.                
  1218.             set_pcvar_num(cvar_Rankings, currentCvarNum)
  1219.         }
  1220.        
  1221.         case 10:
  1222.         {
  1223.             currentCvarNum = get_pcvar_num(cvar_TeamTag)
  1224.            
  1225.             if ( currentCvarNum )
  1226.                 currentCvarNum = 0
  1227.             else
  1228.                 currentCvarNum = 1
  1229.                
  1230.             set_pcvar_num(cvar_TeamTag, currentCvarNum)
  1231.         }
  1232.        
  1233.         case 11:
  1234.         {
  1235.             currentCvarNum = get_pcvar_num(cvar_AceHud)
  1236.            
  1237.             if ( currentCvarNum )
  1238.                 currentCvarNum = 0
  1239.             else
  1240.                 currentCvarNum = 1
  1241.                
  1242.             set_pcvar_num(cvar_AceHud, currentCvarNum)
  1243.         }
  1244.        
  1245.         case 12:
  1246.         {
  1247.             currentCvarNum = get_pcvar_num(cvar_AFKKick)
  1248.            
  1249.             if ( currentCvarNum )
  1250.                 currentCvarNum = 0
  1251.             else
  1252.                 currentCvarNum = 1
  1253.                
  1254.             set_pcvar_num(cvar_AFKKick, currentCvarNum)
  1255.         }
  1256.        
  1257.         case 13: ReadyPosMenu(id)
  1258.         case 14: NotReadyPosMenu(id)
  1259.        
  1260.         case 15:
  1261.         {
  1262.             currentCvarNum = get_pcvar_num(cvar_RanksSystem)
  1263.            
  1264.             if ( currentCvarNum )
  1265.                 currentCvarNum = 0
  1266.             else
  1267.                 currentCvarNum = 1
  1268.            
  1269.             if ( !currentCvarNum )
  1270.                 set_pcvar_num(cvar_RanksSystemMessages, 0)
  1271.             else
  1272.                 set_pcvar_num(cvar_RanksSystemMessages, 1)
  1273.             set_pcvar_num(cvar_RanksSystem, currentCvarNum)
  1274.         }
  1275.        
  1276.         case 16:
  1277.         {
  1278.             currentCvarNum = get_pcvar_num(cvar_RanksSystemMessages)
  1279.            
  1280.             if ( currentCvarNum )
  1281.                 currentCvarNum = 0
  1282.             else
  1283.                 currentCvarNum = 1
  1284.                
  1285.             set_pcvar_num(cvar_RanksSystemMessages, currentCvarNum)
  1286.            
  1287.             if ( !get_pcvar_num(cvar_RanksSystem) )
  1288.                 set_pcvar_num(cvar_RanksSystemMessages, 0)
  1289.         }
  1290.        
  1291.         case 17: PointsPricesMenu(id)
  1292.         case 18: RanksPricesMenu(id)
  1293.            
  1294.            
  1295.     }
  1296.    
  1297.     if ( menuOption == 13 || menuOption == 14 || menuOption == 17 || menuOption == 18 )
  1298.         return PLUGIN_HANDLED
  1299.        
  1300.     if ( menuOption >= 7 && menuOption <= 13 )
  1301.         settingsMenu(id, 1)
  1302.     else if ( menuOption >= 14 && menuOption <= 20 )
  1303.         settingsMenu(id, 2)
  1304.     else
  1305.         settingsMenu(id, 0)
  1306.     return PLUGIN_HANDLED
  1307. }
  1308.  
  1309. public ReadyPosMenu(id)
  1310. {
  1311.     if ( !is_user_connected(id) )
  1312.         return;
  1313.        
  1314.     new Title[125] = "\y[Auto-Mix]\w:תורדגה עצוממ ןכומ^n\dX :עצוממ %f^nY :עצוממ %f\w"
  1315.     format(Title, charsmax(Title), Title, get_pcvar_float(cvar_ReadyXPos), get_pcvar_float(cvar_ReadyYPos))
  1316.     new rPosMenu = menu_create(Title, "ReadyPosHandler")
  1317.    
  1318.     menu_additem(rPosMenu, "הלעמל", "0")
  1319.     menu_additem(rPosMenu, "הטמ", "1")
  1320.     menu_additem(rPosMenu, "ןוכנ", "2")
  1321.     menu_additem(rPosMenu, "ובזע", "3")
  1322.    
  1323.     menu_setprop(rPosMenu, MPROP_EXITNAME, "הרזחב")
  1324.     menu_display(id, rPosMenu)
  1325. }
  1326.  
  1327. public ReadyPosHandler(id, menu, item)  {
  1328.     if( item == MENU_EXIT )
  1329.     {
  1330.         settingsMenu(id, 1)
  1331.         return PLUGIN_HANDLED;
  1332.     }
  1333.    
  1334.     new data[6], iName[64];
  1335.     new access, callback;
  1336.     menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
  1337.  
  1338.     new menuOption = str_to_num(data)
  1339.     new Float:setCvarNum
  1340.    
  1341.     switch ( menuOption )
  1342.     {
  1343.         case 0: setCvarNum = get_pcvar_float(cvar_ReadyYPos) - 0.01
  1344.         case 1: setCvarNum = get_pcvar_float(cvar_ReadyYPos) + 0.01
  1345.         case 2: setCvarNum = get_pcvar_float(cvar_ReadyXPos) + 0.01
  1346.         case 3: setCvarNum = get_pcvar_float(cvar_ReadyXPos) - 0.01
  1347.     }
  1348.    
  1349.     if ( !menuOption || menuOption == 1 )
  1350.         set_pcvar_float(cvar_ReadyYPos, setCvarNum)
  1351.     else
  1352.         set_pcvar_float(cvar_ReadyXPos, setCvarNum)
  1353.    
  1354.     ReadyPosMenu(id)
  1355.     return PLUGIN_HANDLED
  1356. }
  1357.  
  1358. public NotReadyPosMenu(id)
  1359. {
  1360.     if ( !is_user_connected(id) )
  1361.         return;
  1362.        
  1363.     new Title[125] = "\y[Auto-Mix]\w:תורדגה הפוק ןכומ אל^n\dX :עצוממ %f^nY :עצוממ %f\w"
  1364.     format(Title, charsmax(Title), Title, get_pcvar_float(cvar_NotReadyXPos), get_pcvar_float(cvar_NotReadyYPos))
  1365.     new rPosMenu = menu_create(Title, "NotReadyPosHandler")
  1366.    
  1367.     menu_additem(rPosMenu, "למעלה", "0")
  1368.     menu_additem(rPosMenu, "הטמ", "1")
  1369.     menu_additem(rPosMenu, "ןוכנ", "2")
  1370.     menu_additem(rPosMenu, "ובזע", "3")
  1371.    
  1372.     menu_display(id, rPosMenu)
  1373. }
  1374.  
  1375. public NotReadyPosHandler(id, menu, item)  {
  1376.     if( item == MENU_EXIT )
  1377.     {
  1378.         settingsMenu(id, 2)
  1379.         return PLUGIN_HANDLED;
  1380.     }
  1381.    
  1382.     new data[6], iName[64];
  1383.     new access, callback;
  1384.     menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
  1385.  
  1386.     new menuOption = str_to_num(data)
  1387.     new Float:setCvarNum
  1388.    
  1389.     switch ( menuOption )
  1390.     {
  1391.         case 0: setCvarNum = get_pcvar_float(cvar_NotReadyYPos) - 0.01
  1392.         case 1: setCvarNum = get_pcvar_float(cvar_NotReadyYPos) + 0.01
  1393.         case 2: setCvarNum = get_pcvar_float(cvar_NotReadyXPos) + 0.01
  1394.         case 3: setCvarNum = get_pcvar_float(cvar_NotReadyXPos) - 0.01
  1395.     }
  1396.    
  1397.     if ( !menuOption || menuOption == 1 )
  1398.         set_pcvar_float(cvar_NotReadyYPos, setCvarNum)
  1399.     else
  1400.         set_pcvar_float(cvar_NotReadyXPos, setCvarNum)
  1401.    
  1402.     NotReadyPosMenu(id)
  1403.     return PLUGIN_HANDLED
  1404. }
  1405.  
  1406. public PointsPricesMenu(id)
  1407. {
  1408.     if ( !is_user_connected(id) )
  1409.         return;
  1410.    
  1411.     new pointsMenu = menu_create("\y[Auto-Mix]\w :תודוקנ םידספה / םיחוורה^n\d.תחקל / תתל אל 0 רדגומ", "pointsHandler")
  1412.    
  1413.     new item1[79] = "גרוהה [\y%d\w]"
  1414.     new item2[79] = "גרוהה w/ ןיכס [\y%d\w]"
  1415.     new item3[79] = "קחשמ חצנל [\y%d\w]"
  1416.     new item4[79] = "ףוס דע קחשמ [\y%d\w]"
  1417.     new item5[79] = "יוצא משחק\d (דספה)\w [\y%d\w]"
  1418.     new item6[79] = "תודוקנ רוזחל ידכ תוינש [\y%d\w]"
  1419.     new item7[79] = "גורהל תווצ\d (דספה)\w [\y%d\w]"
  1420.     new item8[79] = "חמצה הצצפ [\y%d\w]"
  1421.     new item9[79] = "לרטנלו ץיצפהל [\y%d\w]"
  1422.     new item10[79] = "תמ\d (דספה)\w [\y%d\w]"
  1423.     new item11[79] = "ןיכס ידי לע םיתמ\d (דספה)\w [\y%d\w]"
  1424.     new item12[79] = "קחשמה תא דבאל \d(דספה)\w [\y%d\w]"
  1425.    
  1426.     format(item1, charsmax(item1), item1, get_pcvar_num(cvar_KillPoints))
  1427.     format(item2, charsmax(item2), item2, get_pcvar_num(cvar_KnifePoints))
  1428.     format(item3, charsmax(item3), item3, get_pcvar_num(cvar_WinsMatchPoints))
  1429.     format(item4, charsmax(item4), item4, get_pcvar_num(cvar_PlaysUntilEndPoints))
  1430.     format(item5, charsmax(item5), item5, get_pcvar_num(cvar_LeavesMatchPoints))
  1431.     format(item6, charsmax(item6), item6, get_pcvar_num(cvar_LeavesMatchTime))
  1432.     format(item7, charsmax(item7), item7, get_pcvar_num(cvar_TeamKillPoints))
  1433.     format(item8, charsmax(item8), item8, get_pcvar_num(cvar_BombPlantPoints))
  1434.     format(item9, charsmax(item9), item9, get_pcvar_num(cvar_BombDefusePoints))
  1435.     format(item10, charsmax(item10), item10, get_pcvar_num(cvar_KillLosePoints))
  1436.     format(item11, charsmax(item11), item11, get_pcvar_num(cvar_KnifeLosePoints))
  1437.     format(item12, charsmax(item12), item12, get_pcvar_num(cvar_LosesMatchPoints))
  1438.    
  1439.     menu_additem(pointsMenu, item1, "1")
  1440.     menu_additem(pointsMenu, item2, "2")
  1441.     menu_additem(pointsMenu, item3, "3")
  1442.     menu_additem(pointsMenu, item4, "4")
  1443.     menu_additem(pointsMenu, item5, "5")
  1444.     menu_additem(pointsMenu, item6, "6")
  1445.     menu_additem(pointsMenu, item7, "7")
  1446.     menu_additem(pointsMenu, item8, "8")
  1447.     menu_additem(pointsMenu, item9, "9")
  1448.     menu_additem(pointsMenu, item10, "10")
  1449.     menu_additem(pointsMenu, item11, "11")
  1450.     menu_additem(pointsMenu, item12, "12")
  1451.    
  1452.     menu_setprop(pointsMenu, MPROP_EXITNAME, "Back")
  1453.     menu_display(id, pointsMenu)
  1454. }
  1455.    
  1456. public pointsHandler(id, menu, item)  {
  1457.     if( item == MENU_EXIT )
  1458.     {
  1459.         settingsMenu(id, 2)
  1460.         return PLUGIN_HANDLED;
  1461.     }
  1462.    
  1463.     new data[6], iName[64];
  1464.     new access, callback;
  1465.     menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
  1466.  
  1467.     new menuOption = str_to_num(data)
  1468.     gChanging = menuOption
  1469.     gChangerID = id
  1470.     if ( menuOption == 6 )
  1471.         show_menu(id, MENU_KEY_0, "טא'צב סנכה אנא\y ךרע\w לש^nהמכ\r תוינש\w לבקל לוכי ןקחשש דע ^nהרזחב ולש תודוקנ, .לאמש קחשמה םא^n^nתונותיעה תא לטבל ידכ '\r0\w'.", -1, "setprices menu")
  1472.     else
  1473.         show_menu(id, MENU_KEY_0, "טא'צב סנכה אנא\y ךרע\w לש^nםירה טושפ התא תורשפא...^n^nתונותיעה תא לטבל ידכ '\r0\w'.", -1, "setprices menu")
  1474.     return PLUGIN_HANDLED
  1475. }
  1476.  
  1477. public RanksPricesMenu(id)
  1478. {
  1479.     if ( !is_user_connected(id) )
  1480.         return;
  1481.    
  1482.     new pointsMenu = menu_create("\y[Auto-Mix]\w :תודוקנ םיריחמ תוגרד^n\d.ןיוצש תגרד היהת הלא םיכרע דע", "ranksHandler")
  1483.    
  1484.     new item1[79] = "ליחתמ [\y%d\w]"
  1485.     new item2[79] = "עובק [\y%d\w]"
  1486.     new item3[79] = "קיתו [\y%d\w]"
  1487.     new item4[79] = "יעוצקמ [\y%d\w]"
  1488.     new item5[79] = "רוקדראה [\y%d\w]"
  1489.    
  1490.     format(item1, charsmax(item1), item1, get_pcvar_num(cvar_BeginnerPoints))
  1491.     format(item2, charsmax(item2), item2, get_pcvar_num(cvar_RegularPoints))
  1492.     format(item3, charsmax(item3), item3, get_pcvar_num(cvar_VeteranPoints))
  1493.     format(item4, charsmax(item4), item4, get_pcvar_num(cvar_ProPoints))
  1494.     format(item5, charsmax(item5), item5, get_pcvar_num(cvar_HardCorePoints))
  1495.    
  1496.     menu_additem(pointsMenu, item1, "1")
  1497.     menu_additem(pointsMenu, item2, "2")
  1498.     menu_additem(pointsMenu, item3, "3")
  1499.     menu_additem(pointsMenu, item4, "4")
  1500.     menu_additem(pointsMenu, item5, "5")
  1501.    
  1502.     menu_setprop(pointsMenu, MPROP_EXITNAME, "הרזחב")
  1503.     menu_display(id, pointsMenu)
  1504. }
  1505.    
  1506. public ranksHandler(id, menu, item)  {
  1507.     if( item == MENU_EXIT )
  1508.     {
  1509.         settingsMenu(id, 2)
  1510.         return PLUGIN_HANDLED;
  1511.     }
  1512.    
  1513.     new data[6], iName[64];
  1514.     new access, callback;
  1515.     menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
  1516.  
  1517.     new menuOption = str_to_num(data)
  1518.     gChanging2 = menuOption
  1519.     gChangerID2 = id
  1520.     show_menu(id, MENU_KEY_0, "טא'צב סנכה אנא\y ךרע\w לש^nםירה טושפ התא תורשפא...^n^nתונותיעה תא לטבל ידכ '\r0\w'.", -1, "setprices menu")
  1521.     return PLUGIN_HANDLED
  1522. }
  1523.  
  1524.  
  1525. public menuHandler(id, key)
  1526. {
  1527.     gChanging = 0
  1528.     gChanging2 = 0
  1529.     gChangerID = 0
  1530.     gChangerID2 = 0
  1531.     return PLUGIN_HANDLED
  1532. }
  1533.    
  1534. public plugin_cfg() {
  1535.     SetCheckFilled()
  1536.     server_cmd("exec practice.cfg")
  1537.     DisplayCommands()
  1538.     set_pcvar_string(cvar_humans_join_team, "")
  1539.    
  1540.     if (!file_exists(gPug_ini_file))
  1541.     {
  1542.         client_print(0, print_chat, "%s .אצמנ אל Pug.ini ץבוק !האיגש", PREFIX)
  1543.         return PLUGIN_HANDLED
  1544.     }
  1545.    
  1546.     switch ( get_pug_state() )
  1547.     {
  1548.         case 0:
  1549.         {
  1550.             new taskId = scanForTaskID()
  1551.             set_task(10.0, "ShowLeft", taskId)
  1552.             return PLUGIN_HANDLED
  1553.         }
  1554.        
  1555.         case 1:
  1556.         {
  1557.             g_MapChanged = true
  1558.             new taskId = scanForTaskID()
  1559.             set_task(20.0, "TeamsVote", taskId)
  1560.         }
  1561.        
  1562.         case 2:
  1563.         {
  1564.             g_MapChanged = true
  1565.             g_CustomGame = true
  1566.             set_pug_state(1)
  1567.             new taskId = scanForTaskID()
  1568.             set_task(20.0, "TeamsVote", taskId)
  1569.         }
  1570.     }
  1571.    
  1572.     return PLUGIN_CONTINUE
  1573. }
  1574.  
  1575. public SetCheckFilled() {
  1576.     new taskId = scanForTaskID()
  1577.     set_task(5.0, "CheckFilled", taskId)
  1578. }
  1579.  
  1580. public CheckFilled() {
  1581.    
  1582.     new players = get_playersnum()
  1583.    
  1584.     for ( new i ; i < gMaxPlayers ; i++ )
  1585.     {
  1586.         if ( !is_user_connected(i) )
  1587.             continue;
  1588.        
  1589.         if ( is_user_hltv(i) || is_user_bot(i) )
  1590.             players--
  1591.     }
  1592.    
  1593.     if (players >= get_pcvar_num(cvar_pLeft))
  1594.     {
  1595.         new rnd = random_num(99, 9999)
  1596.         new pass[10]
  1597.        
  1598.         num_to_str(rnd, pass, 9)
  1599.        
  1600.         set_pcvar_string(cvar_sv_password, pass)
  1601.         client_print(0, print_chat, "%s המסיסב ןגומ תעכ תרשה", PREFIX)
  1602.        
  1603.         new tokick = players - get_pcvar_num(cvar_pLeft)
  1604.        
  1605.         for (new kick; kick<tokick ; kick++)
  1606.         {
  1607.             new playeract = random(get_pcvar_num(cvar_pLeft))
  1608.            
  1609.             while ( !is_user_connected(playeract) || !is_user_bot(playeract) || !is_user_hltv(playeract) )
  1610.             {
  1611.                 playeract = random(get_pcvar_num(cvar_pLeft))
  1612.             }
  1613.            
  1614.             server_cmd("kick %d %s !אלמ תרש", get_user_userid(playeract), PREFIX)
  1615.         }
  1616.        
  1617.     }
  1618.    
  1619.     return PLUGIN_CONTINUE
  1620. }
  1621.  
  1622.  
  1623. public DisplayCommands() {
  1624.     client_print(0, print_chat, "%s קודב !cmds תודוקפ רובע, .ןקחשה לש טירפתה תא גיצהל ידכ M לע ץחל וא", PREFIX)
  1625.     client_print(0, print_chat, "%s .ןקחש קיתשהלו !דילקהל םג ןתינ", PREFIX)
  1626.     new taskId = scanForTaskID()
  1627.     set_task(g_IsStarted ? 50.0 : 300.0, "DisplayCommands", taskId)
  1628. }
  1629.  
  1630. public round_end() {
  1631.     if ( g_Restart )
  1632.         return PLUGIN_HANDLED
  1633.        
  1634.     TKRoundsLeft()
  1635.    
  1636.     if ( g_bFFTKStop )
  1637.     {
  1638.         g_bFFTKStop = false
  1639.         set_pcvar_num(cvar_mp_friendlyfire, 1)
  1640.         client_print(0, print_chat, "%s .תלעופ וישכע םירבח ןיב תוירי", PREFIX)
  1641.     }
  1642.        
  1643.     if (g_KnifeRound)
  1644.     {
  1645.         new Players[32], pNum, ptn, pctn;
  1646.         get_players(Players, pNum, "ch")
  1647.         for ( new i ; i < pNum ; i++ ) {
  1648.             new tempid = Players[i]
  1649.             if ( !is_user_alive(tempid) )
  1650.                 continue;
  1651.             else if ( cs_get_user_team(tempid) == CS_TEAM_T )
  1652.                 ptn++;
  1653.             else if ( cs_get_user_team(tempid) == CS_TEAM_CT )
  1654.                 pctn++;
  1655.         }
  1656.        
  1657.         new WinningTeam
  1658.        
  1659.         if (ptn > pctn)
  1660.         {
  1661.             client_print(0, print_chat, "%s %s !םיניכס בוביסב הכז", PREFIX, ( get_pcvar_num(cvar_TeamTag) ? "'א הצובק" : "Terrorists" ))
  1662.             set_hudmessage(255, 0, 0, 0.40, 0.71, 0, 6.0, 12.0)
  1663.             ShowSyncHudMsg(0, g_MsgSync6, "%s - םיניכסה בוביסב הכוז.", ( get_pcvar_num(cvar_TeamTag) ? "'א הצובק" : "Terrorists" ))
  1664.    
  1665.             g_Twon = true
  1666.             WinningTeam = T_WIN
  1667.         }
  1668.        
  1669.         else if (pctn > ptn)
  1670.         {      
  1671.             client_print(0, print_chat, "%s %s !םיניכס בוביסב הכז", PREFIX, ( get_pcvar_num(cvar_TeamTag) ? "'ב הצובק" : "Counter-Terrorists" ))
  1672.             set_hudmessage(255, 0, 0, 0.40, 0.71, 0, 6.0, 12.0)
  1673.             ShowSyncHudMsg(0, g_MsgSync6, "%s - .םיניכסה בוביסב הכוז", ( get_pcvar_num(cvar_TeamTag) ? "'ב הצובק" : "Counter-Terrorists" ))
  1674.             WinningTeam = CT_WIN       
  1675.         }
  1676.        
  1677.         else
  1678.         {
  1679.             client_print(0, print_chat, "%s .החצינ אל הצובקה !לטוב םיניכסה בוביס", PREFIX)
  1680.             set_hudmessage(255, 0, 0, 0.40, 0.71, 0, 6.0, 12.0)
  1681.             ShowSyncHudMsg(0, g_MsgSync6, ".תכשמנ המאתה - הכישמ")
  1682.             new taskId = scanForTaskID()
  1683.             set_task(3.0, "SettingsAfter", taskId)
  1684.             return PLUGIN_CONTINUE
  1685.         }
  1686.         KnifeSwitch(WinningTeam)
  1687.         return PLUGIN_CONTINUE
  1688.     }          
  1689.                    
  1690.     if (g_IsStarted)
  1691.     {
  1692.         new players[32], pnum, tempid;
  1693.    
  1694.         new numTt, numCtt;
  1695.        
  1696.         get_players(players, pnum, "ch")
  1697.        
  1698.         if ( !( (get_playersnum() != get_pcvar_num(cvar_pLeft)) || (get_pcvar_num(cvar_pLeft) != 10) ) )
  1699.         {
  1700.             for ( new i ; i < pnum ; i++ )
  1701.             {
  1702.                 tempid = players[i]
  1703.                
  1704.                 switch ( cs_get_user_team(tempid) )
  1705.                 {
  1706.                     case CS_TEAM_T: numTt++
  1707.                     case CS_TEAM_CT: numCtt++
  1708.                 }
  1709.             }
  1710.            
  1711.             for (new i ; i < pnum ; i++)
  1712.             {
  1713.                 tempid = players[i]
  1714.                 g_LeftKills[tempid] = (g_LeftKills[tempid]/3)*2
  1715.                
  1716.                 if ( g_KillsAce[tempid] < 4 || get_playersnum() != 10 || !get_pcvar_num(cvar_AceHud) )
  1717.                 {
  1718.                     g_KillsAce[tempid] = 0
  1719.                     continue;
  1720.                 }
  1721.            
  1722.                 if (cs_get_user_team(tempid) == CS_TEAM_CT)
  1723.                 {
  1724.                     if (g_KillsAce[tempid] == 4)
  1725.                     {
  1726.                         new name[32]
  1727.                         get_user_name(tempid, name, 31)
  1728.                    
  1729.                         set_hudmessage(255, 255, 255, 0.07, 0.69, 0, 6.0, 12.0)
  1730.                         show_hudmessage(0, "%s ACE! ינימ השע", name)
  1731.                     }
  1732.                
  1733.                     else if (g_KillsAce[tempid] == 5)
  1734.                     {
  1735.                         new name[32]
  1736.                         get_user_name(tempid, name, 31)
  1737.                    
  1738.                         set_hudmessage(255, 255, 255, 0.07, 0.69, 0, 6.0, 12.0)
  1739.                         show_hudmessage(0, "%s ACE! השע", name)
  1740.                     }
  1741.                 }
  1742.            
  1743.                 else if (cs_get_user_team(tempid) == CS_TEAM_T)
  1744.                 {
  1745.                     if (g_KillsAce[tempid] == 4)
  1746.                     {
  1747.                         new name[32]
  1748.                         get_user_name(tempid, name, 31)
  1749.                    
  1750.                         set_hudmessage(255, 255, 255, 0.07, 0.69, 0, 6.0, 12.0)
  1751.                         show_hudmessage(0, "%s ACE! ינימ השע", name)
  1752.                     }
  1753.                
  1754.                     else if (g_KillsAce[tempid] == 5)
  1755.                     {
  1756.                         new name[32]
  1757.                         get_user_name(tempid, name, 31)
  1758.                    
  1759.                         set_hudmessage(255, 255, 255, 0.07, 0.69, 0, 6.0, 12.0)
  1760.                         show_hudmessage(0, "%s ACE! השע", name)
  1761.                     }
  1762.                 }
  1763.                 g_KillsAce[tempid] = 0
  1764.             }
  1765.         }
  1766.     }
  1767.    
  1768.     if ( !g_CustomGame )
  1769.     {
  1770.         if (g_IsStarted)
  1771.         {
  1772.             new playersT[32], playersCt[32], numT, numCt;
  1773.        
  1774.             get_players( playersT , numT , "che" , "TERRORIST" )
  1775.             get_players( playersCt , numCt , "che" , "CT" )
  1776.            
  1777.             if ( numT <= (get_pcvar_num(cvar_pLeft)/2) - 2 || numCt <= (get_pcvar_num(cvar_pLeft)/2) - 2 )
  1778.             {
  1779.                 switch (g_NotBalanced)
  1780.                 {
  1781.                     case 0:
  1782.                     {
  1783.                         client_print(0, print_chat, "%s שי תוצובקה תחא %d !תוחפ וא תווצה ירבח", PREFIX, get_pcvar_num(cvar_pLeft) )
  1784.                         client_print(0, print_chat, "%s .חצנל יטמוטוא ןפואב םירחא תווצ ,םיבוביס 2 ךותב הרזחב הלש תווצה ירבח ולבקי אל הצובקה םא", PREFIX)
  1785.                         g_NotBalanced++
  1786.                     }
  1787.                    
  1788.                     case 1:
  1789.                     {
  1790.                         client_print(0, print_chat, "%s שי תוצובקה תחא %d !תוחפ וא תווצה ירבח", PREFIX)
  1791.                         client_print(0, print_chat, "%s .חצנל יטמוטוא ןפואב םירחא תווצ ,אבה בוביסל ךותב הרזחב הלש תווצה ירבח ולבקי אל הצובקה םא", PREFIX, get_pcvar_num(cvar_pLeft) )
  1792.                         g_NotBalanced++
  1793.                     }
  1794.                    
  1795.                     case 2:
  1796.                     {
  1797.                         if (numT > numCt)
  1798.                             client_print(0, print_chat, "%s .הביריה הצובקה לע תווצה ירבח רסוח לשב יטמוטוא ןפואב התכז םילבחמ תווצ", PREFIX)
  1799.                        
  1800.                         else if (numCt > numT)
  1801.                             client_print(0, print_chat, "%s .הביריה הצובקה לע תווצה ירבח רסוח לשב יטמוטוא ןפואב התכז תווצ םילבחמ דגנה תא", PREFIX)
  1802.  
  1803.                         else if (numCt == numT)
  1804.                             client_print(0, print_chat, "%s .לטוב קחשמה !םיווש יתווצ", PREFIX)
  1805.                            
  1806.                         client_print(0, print_chat, "%s תוינש 5 ב קחשמה םויס...", PREFIX)
  1807.                         new taskId = scanForTaskID()
  1808.                         set_task(5.0, "EndMatch", taskId)
  1809.                         g_NotBalanced = 0
  1810.                     }
  1811.                    
  1812.                 }
  1813.             }
  1814.            
  1815.             else
  1816.             {
  1817.                 g_NotBalanced = 0;
  1818.                 return PLUGIN_HANDLED
  1819.             }
  1820.         }
  1821.     }
  1822.                            
  1823.     return PLUGIN_HANDLED          
  1824.    
  1825. }
  1826.  
  1827. public TKRoundsLeft()
  1828. {
  1829.     for ( new i ; i < sizeof(g_RoundsLeft) ; i++ )
  1830.     {
  1831.         if ( g_RoundsLeft[i] != -1 )
  1832.             g_RoundsLeft[i]--
  1833.     }
  1834. }
  1835.  
  1836. public LR() {
  1837.     set_hudmessage(255, 255, 255, 0.07, 0.69, 0, 6.0, 12.0)
  1838.     ShowSyncHudMsg(0, g_MsgSync6, "ליחתה רבכ ןורחאה בוביסה")
  1839. }
  1840.  
  1841. public scndhalf() {
  1842.     server_cmd("sv_restart 1")
  1843.     new taskId = scanForTaskID()
  1844.     set_task(3.0, "showscnd", taskId)
  1845. }
  1846.  
  1847. public showscnd() {
  1848.     set_hudmessage(255, 255, 255, 0.07, 0.69, 0, 6.0, 18.0)
  1849.     ShowSyncHudMsg(0, g_MsgSync3, "םיחדקא בוביס .הליחתמ 2 תיצחמ...")
  1850.     return PLUGIN_HANDLED
  1851. }
  1852.    
  1853.    
  1854.        
  1855. public Event_TeamScore() {
  1856.     if ( g_Restart )
  1857.         return PLUGIN_HANDLED
  1858.        
  1859.     if (g_IsStarted)
  1860.     {
  1861.         read_data(1, g_szTeamName, 1)
  1862.    
  1863.         g_iTeam = (g_szTeamName[0] == 'T') ? 0 : 1
  1864.         g_iAltScore = read_data(2)
  1865.         g_iScoreOffset = g_iAltScore - g_iLastTeamScore[g_iTeam]
  1866.    
  1867.         if(g_iScoreOffset > 0)
  1868.         {
  1869.             g_iScore[g_iTeam] += g_iScoreOffset
  1870.         }
  1871.    
  1872.         g_iLastTeamScore[g_iTeam] = g_iAltScore
  1873.        
  1874.         if (g_iScore[0] + g_iScore[1] == 14)
  1875.         {
  1876.             new taskId = scanForTaskID()
  1877.             set_task(10.0, "LR", taskId)
  1878.         }
  1879.        
  1880.         else if (g_iScore[0] + g_iScore[1] == 15)
  1881.         {
  1882.             if (g_bStop2)
  1883.             {
  1884.                 return PLUGIN_HANDLED;
  1885.             }
  1886.            
  1887.             g_bStop2 = true
  1888.             SwitchTeams()
  1889.             client_print(0, print_chat, "%s !תוצובק תפלחה ,ופלח םיבוביס 15", PREFIX)
  1890.             new taskId = scanForTaskID()
  1891.             set_task(10.0, "scndhalf", taskId)
  1892.         }
  1893.        
  1894.         else if ((g_iScore[0] == 16) || (g_iScore[1] == 16))
  1895.         {
  1896.             if (g_bStop)
  1897.             {
  1898.                 return PLUGIN_HANDLED
  1899.             }
  1900.            
  1901.             g_bStop = true
  1902.             EndMatch()
  1903.             return PLUGIN_HANDLED
  1904.         }
  1905.        
  1906.         else if ((g_iScore[0] == 15) || (g_iScore[1] == 15))
  1907.         {
  1908.             new taskId = scanForTaskID()
  1909.             set_task(10.0, "LRFif", taskId)
  1910.             return PLUGIN_HANDLED
  1911.         }
  1912.        
  1913.        
  1914.         ClientCommand_SayScore()
  1915.     }
  1916.  
  1917.     return PLUGIN_HANDLED
  1918. }
  1919.  
  1920. public LRFif() {
  1921.     if ((g_iScore[1] == 16) || (g_iScore[0] == 16))
  1922.         return PLUGIN_HANDLED
  1923.    
  1924.     set_hudmessage(255, 255, 255, 0.06, 0.62, 0, 6.0, 12.0)
  1925.    
  1926.     if ( g_Twon )
  1927.         ShowSyncHudMsg(0, g_MsgSync6, ".ליחתה רבכ ןורחאה בוביסה (%s) %d - %d (%s)", ( get_pcvar_num(cvar_TeamTag) ? "'א הצובק" : "םירטוש" ), g_iScore[0], g_iScore[1], ( get_pcvar_num(cvar_TeamTag) ? "'ב הצובק" : "םילבחמ" ) )
  1928.     else
  1929.         ShowSyncHudMsg(0, g_MsgSync6, ".ליחתה רבכ ןורחאה בוביסה. (%s) %d - %d (%s)", ( get_pcvar_num(cvar_TeamTag) ? "'א הצובק" : "םירטוש" ), g_iScore[1], g_iScore[0], ( get_pcvar_num(cvar_TeamTag) ? "'ב הצובק" : "םילבחמ" ) )
  1930.     return PLUGIN_HANDLED
  1931. }
  1932.  
  1933. public ClientCommand_SayScore() {
  1934.     if (g_Twon)
  1935.     {
  1936.         if (g_bSecondHalf)
  1937.         {
  1938.             if (g_bDidScore)
  1939.             {
  1940.                 showscore(0)
  1941.                 g_bDidScore = false
  1942.             }
  1943.             else
  1944.                 g_bDidScore = true
  1945.         }
  1946.    
  1947.         else
  1948.         {
  1949.             if (g_bDidScore)
  1950.             {
  1951.                 showscore(0)
  1952.                 g_bDidScore = false
  1953.             }
  1954.             else
  1955.                 g_bDidScore = true
  1956.         }
  1957.     }
  1958.    
  1959.     else
  1960.     {
  1961.        
  1962.         if (g_bSecondHalf)
  1963.         {
  1964.             if (g_bDidScore)
  1965.             {
  1966.                 showscore(0)
  1967.                 g_bDidScore = false
  1968.             }
  1969.             else
  1970.                 g_bDidScore = true
  1971.         }
  1972.    
  1973.         else
  1974.         {
  1975.             if (g_bDidScore)
  1976.             {
  1977.                 showscore(0)
  1978.                 g_bDidScore = false
  1979.             }
  1980.             else
  1981.                 g_bDidScore = true
  1982.         }
  1983.     }
  1984.    
  1985.     return PLUGIN_HANDLED
  1986.    
  1987. }
  1988.  
  1989. public client_disconnect(id) {
  1990.     if ( is_user_bot(id) || is_user_hltv(id) || !( 1 <= id <= gMaxPlayers ) )
  1991.         return PLUGIN_HANDLED
  1992.        
  1993.     if ( id == gChangerID )
  1994.     {
  1995.         gChangerID = 0
  1996.         gChanging = 0
  1997.     }
  1998.    
  1999.     else if ( id == gChangerID2 )
  2000.     {
  2001.         gChangerID2 = 0
  2002.         gChanging2 = 0
  2003.     }
  2004.    
  2005.     if ( g_IsStarted )
  2006.     {
  2007.         g_PugLeaves++
  2008.         DidTK(id)
  2009.        
  2010.         if ( get_pcvar_num(cvar_RanksSystem) )
  2011.         {
  2012.             gPoints[id] -= get_pcvar_num(cvar_LeavesMatchPoints)
  2013.             enterLeaveRecord(id)
  2014.         }
  2015.     }
  2016.        
  2017.     CheckEmpty()
  2018.     clear_list(id)
  2019.     gDidPlayUntilEnd[id] = false
  2020.     g_LeftVotes[id] = 0
  2021.     g_TotalKills[id] = 0
  2022.     g_TotalDeaths[id] = 0
  2023.     g_BombPlants[id] = 0
  2024.     g_BombDefusions[id] = 0
  2025.    
  2026.     if ( g_givenChance[id] )
  2027.         get_user_authid(id, g_givenChanceSteamIDs[g_givenTimes++], charsmax(g_givenChanceSteamIDs[]))
  2028.     g_givenChance[id] = false
  2029.    
  2030.     if (g_bIsReady[id])
  2031.     {
  2032.         gPlayersLeft++
  2033.     }
  2034.    
  2035.     g_bIsReady[id] = false
  2036.     remove_task(id)
  2037.     remove_task(id+SET_CONST_TASKID)
  2038.    
  2039.     return PLUGIN_HANDLED
  2040. }
  2041.        
  2042. public client_connect(id) {
  2043.     if ( is_user_bot(id) || is_user_hltv(id) || (!is_user_connected(id) && !is_user_connecting(id)) || !( 1 <= id <= gMaxPlayers ) )
  2044.         return PLUGIN_HANDLED;
  2045.    
  2046.     g_afktime[id] = 0
  2047.     g_LeftVotes[id] = 0
  2048.     gTypedCommand[id] = 0.0
  2049.    
  2050.     if (!file_exists(gPug_ini_file))
  2051.     {
  2052.         client_print(0, print_chat, "%s .אצמנ אל Pug.ini ץבוק !האיגש", PREFIX)
  2053.         return PLUGIN_HANDLED
  2054.     }
  2055.        
  2056.     if (get_pug_state() == 1)
  2057.     {
  2058.         g_LeftKills[id] = 0
  2059.         return PLUGIN_HANDLED
  2060.     }
  2061.    
  2062.     if (g_bCpt)
  2063.     {
  2064.         if (cs_get_user_team(id) != CS_TEAM_UNASSIGNED)
  2065.         {
  2066.             cs_set_user_team(id, CS_TEAM_SPECTATOR)
  2067.             return PLUGIN_HANDLED
  2068.         }
  2069.        
  2070.         else
  2071.             set_task(1.0, "client_connect", id)
  2072.         return PLUGIN_HANDLED
  2073.     }
  2074.    
  2075.     if ( !( g_AfterRdy || g_IsStarted ) )
  2076.     {
  2077.         g_KillsAce[id] = 0
  2078.         g_bIsReady[id] = false
  2079.         remove_task(id)
  2080.         g_iTimeLeft[id] = get_pcvar_num(cvar_TimeLeft)
  2081.         g_LeftKills[id] = 0
  2082.         ToSetTaskToInfo(id)
  2083.     }
  2084.    
  2085.     return PLUGIN_HANDLED
  2086. }
  2087.  
  2088. public client_authorized(id)
  2089. {
  2090.     if ( is_user_hltv(id) || is_user_bot(id) )
  2091.         return;
  2092.        
  2093.     LoadStats(id)
  2094.    
  2095.     new authID[64]
  2096.     get_user_authid(id, authID, charsmax(authID))
  2097.    
  2098.     for ( new i ; i < g_givenTimes ; i++ )
  2099.     {
  2100.         if ( equal(authID, g_givenChanceSteamIDs[i]) )
  2101.         {
  2102.             for ( new z ; z < sizeof(g_givenChanceSteamIDs[]) ; z++ )
  2103.                 g_givenChanceSteamIDs[i][z] = 0
  2104.            
  2105.             for ( new z = i ; z < g_givenTimes ; z++ )
  2106.                 copy(g_givenChanceSteamIDs[z], charsmax(g_givenChanceSteamIDs[]), g_givenChanceSteamIDs[z+1])
  2107.            
  2108.             for ( new z ; z < sizeof(g_givenChanceSteamIDs[]) ; z++ )
  2109.                 g_givenChanceSteamIDs[g_givenTimes][z] = 0
  2110.            
  2111.             g_givenTimes--
  2112.             g_givenChance[id] = true
  2113.         }
  2114.     }
  2115.    
  2116.     if ( g_IsStarted )
  2117.         set_task(0.1, "returnPointsIfDeserves", id)
  2118. }
  2119.  
  2120. public DidTK(id)
  2121. {
  2122.     if ( g_LeftKills[id] >= 40 )
  2123.     {
  2124.         new ip[64], name[64], szAdd[128]
  2125.         get_user_ip(id, ip, charsmax(ip), 1)
  2126.         get_user_name(id, name, charsmax(name))
  2127.        
  2128.         for ( new i ; i < sizeof(g_LeftBans) ; i++ )
  2129.         {
  2130.             if ( equali(g_LeftBansIPs[i], ip) )
  2131.                 break;
  2132.                
  2133.             else if ( !g_LeftBans[i][0] && !g_LeftBansIPs[i][0] )
  2134.             {
  2135.                 format(szAdd, charsmax(szAdd), "%s - [\rקתונמ\w]", name)
  2136.                 copy(g_LeftBans[i], charsmax(g_LeftBans[]), szAdd)
  2137.                 copy(g_LeftBansIPs[i], charsmax(g_LeftBansIPs[]), ip)
  2138.                 g_RoundsLeft[id] = 3
  2139.             }
  2140.         }
  2141.     }
  2142. }  
  2143.  
  2144. public enterLeaveRecord(id)
  2145. {
  2146.     get_user_authid(id, gLeftSteamIDs[gLeftTimes], charsmax(gLeftSteamIDs[]))
  2147.     gLastTime[gLeftTimes++] = get_systime()
  2148. }
  2149.    
  2150. public returnPointsIfDeserves(id)
  2151. {
  2152.     new authid[64]
  2153.     get_user_authid(id, authid, charsmax(authid))
  2154.     for ( new i ; i < gLeftTimes ; i++ )
  2155.     {
  2156.         if ( equali(authid, gLeftSteamIDs[i]) )
  2157.         {      
  2158.             if ( get_systime() - gLastTime[i] <= get_pcvar_num(cvar_LeavesMatchTime) )
  2159.             {
  2160.                 gPoints[id] += get_pcvar_num(cvar_LeavesMatchPoints)
  2161.                 SaveStats(id)
  2162.             }
  2163.            
  2164.             for ( new z ; z < sizeof(gLeftSteamIDs[]) ; z++ )
  2165.                 gLeftSteamIDs[i][z] = 0
  2166.            
  2167.             for ( new z = i ; z < gLeftTimes ; z++ )
  2168.                 copy(gLeftSteamIDs[z], charsmax(gLeftSteamIDs[]), gLeftSteamIDs[z+1])
  2169.            
  2170.             for ( new z ; z < sizeof(gLeftSteamIDs[]) ; z++ )
  2171.                 gLeftSteamIDs[gLeftTimes][z] = 0
  2172.            
  2173.             for ( new z = i ; z < sizeof(gLastTime) ; z++ )
  2174.                 gLastTime[z] = gLastTime[z+1]
  2175.                
  2176.             gLastTime[gLeftTimes--] = 0
  2177.         }
  2178.     }
  2179. }  
  2180.    
  2181. public CheckEmpty() {
  2182.     if (get_maxplayers() == get_pcvar_num(cvar_pLeft))
  2183.         return PLUGIN_HANDLED
  2184.        
  2185.     new players[32], pnum
  2186.     get_players(players, pnum, "ch")
  2187.        
  2188.     if (pnum == get_pcvar_num(cvar_pLeft))
  2189.     {
  2190.         set_pcvar_string(cvar_sv_password, "")
  2191.         client_print(0, print_chat, "%s הרסוה תרשבש תמסיס", PREFIX)
  2192.     }
  2193.    
  2194.     return PLUGIN_CONTINUE
  2195. }
  2196.  
  2197. public CheckFull(id) {
  2198.     if (get_maxplayers() == get_pcvar_num(cvar_pLeft))
  2199.         return PLUGIN_HANDLED
  2200.        
  2201.     new players[32], pnum
  2202.     get_players(players, pnum, "ch")
  2203.    
  2204.     if ( pnum == get_pcvar_num(cvar_pLeft) && get_playersnum() != get_maxplayers() )
  2205.     {
  2206.         new rnd = random_num(99, 9999)
  2207.         new pass[10]
  2208.        
  2209.         num_to_str(rnd, pass, 9)
  2210.        
  2211.         set_pcvar_string(cvar_sv_password, pass)
  2212.         client_print(0, print_chat, "%s המסיסב ןגומ תעכ תרש", PREFIX)
  2213.        
  2214.         new players[32], pnum, tempid;
  2215.        
  2216.         get_players(players, pnum, "ch")
  2217.        
  2218.         for (new full; full<pnum ; full++)
  2219.         {
  2220.             players[full] = tempid
  2221.            
  2222.             if (is_user_connecting(tempid))
  2223.                 server_cmd("kick # %d %s !אלמ תרש", get_user_userid(tempid), PREFIX)
  2224.                
  2225.         }
  2226.                
  2227.     }
  2228.    
  2229.     else if (pnum > get_pcvar_num(cvar_pLeft))
  2230.     {
  2231.         server_cmd("kick # %d %s !אלמ תרש", get_user_userid(id), PREFIX)
  2232.     }
  2233.    
  2234.     return PLUGIN_HANDLED
  2235. }
  2236.  
  2237. public CheckNow() {
  2238.     client_print(0, print_console, "get_playersnum() == %d", get_playersnum())
  2239.     if (get_playersnum() < get_pcvar_num(cvar_pLeft))
  2240.     {
  2241.         set_pcvar_string(cvar_sv_password, "")
  2242.         return PLUGIN_HANDLED
  2243.     }
  2244.    
  2245.     else if (get_playersnum() > get_pcvar_num(cvar_pLeft))
  2246.     {
  2247.         new tokick = get_playersnum() - get_pcvar_num(cvar_pLeft)
  2248.        
  2249.         for (new kick; kick<tokick ; kick++)
  2250.         {
  2251.             new playeract = random(get_pcvar_num(cvar_pLeft))
  2252.            
  2253.             while (!is_user_connected(playeract))
  2254.             {
  2255.                 playeract = random(get_pcvar_num(cvar_pLeft))
  2256.             }
  2257.            
  2258.             server_cmd("kick %d %s !אלמ תרש", get_user_userid(playeract), PREFIX)
  2259.         }
  2260.     }
  2261.    
  2262.     new rnd = random_num(99, 9999)
  2263.     new pass[10]
  2264.        
  2265.     num_to_str(rnd, pass, 9)
  2266.        
  2267.     set_pcvar_string(cvar_sv_password, pass)
  2268.     return PLUGIN_CONTINUE
  2269. }
  2270.        
  2271. public DoAgain(id) {
  2272.    
  2273.     if ( !is_user_connected(id) || !( 1 <= id <= gMaxPlayers ) )
  2274.         return PLUGIN_HANDLED
  2275.     if (!file_exists(gPug_ini_file))
  2276.     {
  2277.         client_print(0, print_chat, "%s .אצמנ אל Pug.ini ץבוק !האיגש", PREFIX)
  2278.         return PLUGIN_HANDLED
  2279.     }
  2280.        
  2281.     if (get_pug_state() == 1)
  2282.     {
  2283.         g_LeftKills[id] = 0
  2284.         return PLUGIN_HANDLED
  2285.     }
  2286.    
  2287.     if ( !g_AfterRdy && !g_IsStarted)
  2288.     {
  2289.         g_KillsAce[id] = 0
  2290.         g_bIsReady[id] = false
  2291.         remove_task(id)
  2292.         g_iTimeLeft[id] = get_pcvar_num(cvar_TimeLeft)
  2293.         g_LeftKills[id] = 0
  2294.         ToSetTaskToInfo(id)
  2295.     }
  2296.    
  2297.     return PLUGIN_HANDLED
  2298. }
  2299.  
  2300. public client_putinserver(id) {
  2301.     g_afktime[id] = 0
  2302.    
  2303.     if (is_user_bot(id) || is_user_hltv(id))
  2304.         return PLUGIN_HANDLED;
  2305.        
  2306.     CheckFull(id)  
  2307.     clear_list(id)
  2308.    
  2309.     if (g_IsStarted || g_AfterRdy || g_KnifeRound)
  2310.     {
  2311.         g_LeftKills[id] = 0
  2312.         MoveFromSpec(id)
  2313.         return PLUGIN_HANDLED
  2314.     }  
  2315.    
  2316.     set_task(30.0, "CheckUnAssigned", id)
  2317.     return PLUGIN_HANDLED
  2318. }
  2319.  
  2320. public CheckUnAssigned(id) {
  2321.     if ( !is_user_connected(id) )
  2322.         return PLUGIN_HANDLED
  2323.        
  2324.     if (cs_get_user_team(id) == CS_TEAM_UNASSIGNED)
  2325.     {
  2326.         new name[50]
  2327.        
  2328.         get_user_name(id, name, 49)
  2329.        
  2330.         server_cmd("kick # %d %s AFK.", get_user_userid(id), PREFIX)
  2331.         client_print(0, print_chat, "%s %s AFK לע קיק תלביק", PREFIX, name)
  2332.     }
  2333.    
  2334.     return PLUGIN_HANDLED
  2335. }
  2336.  
  2337. public ShowInfo(id) {
  2338.     id -= SET_CONST_TASKID
  2339.    
  2340.     if ( !is_user_connected(id) || !( 1 <= id <= gMaxPlayers ) )
  2341.         return PLUGIN_HANDLED
  2342.    
  2343.     new hostname[64]
  2344.    
  2345.     get_cvar_string("hostname", hostname, 63)
  2346.    
  2347.     if (g_bIsReady[id] || g_IsStarted || g_AfterRdy || g_iTimeLeft[id] < 0 )
  2348.     {
  2349.         remove_task(id+SET_CONST_TASKID)
  2350.         remove_task(id)
  2351.         return PLUGIN_HANDLED
  2352.     }
  2353.    
  2354.     set_hudmessage(255, 255, 255, 0.23, 0.265, 0, 6.0, 1.0)
  2355.     ShowSyncHudMsg(id, g_MsgSync4, "------------------------------------------^nםיאבה םיכורב%s^n^n!add טאצב בותכ ,קחשמה תא ליעפהל ידכ^nלע וצחל 'M' רותפכ ('chooseteam') בותכתש וא !menu .טירפתה תא חותפל ידכ^nךל שי %d םויסל תוינש יטמוטוא קיק לבקת !add טאצב בותכת אל םע^n^np1Mp ידי לע רצונ דומה^n------------------------------------------",
  2356.     hostname, g_iTimeLeft[id])
  2357.     return PLUGIN_CONTINUE
  2358. }
  2359.  
  2360. public Continue(id) {
  2361.     if ( !is_user_connected(id) || !( 1 <= id <= gMaxPlayers ) || is_user_bot(id) || is_user_hltv(id) )
  2362.         return PLUGIN_HANDLED
  2363.        
  2364.     if (g_IsStarted || g_AfterRdy)
  2365.     {
  2366.         return PLUGIN_HANDLED
  2367.     }
  2368.    
  2369.     if (g_bIsReady[id])
  2370.     {
  2371.         return PLUGIN_HANDLED
  2372.     }
  2373.     g_iTimeLeft[id] -= 1
  2374.    
  2375.    
  2376.     switch(g_iTimeLeft[id]) {
  2377.         case 120: client_print(id, print_chat, "%s ךות בותכת אל םע add! טא'צב בותכל אנ %d .קיק ולבקת ! תוינש", PREFIX, g_iTimeLeft[id])
  2378.         case 90: client_print(id, print_chat, "%s ךות בותכת אל םע add! טא'צב בותכל אנ %d .קיק ולבקת ! תוינש", PREFIX, g_iTimeLeft[id])
  2379.         case 60: client_print(id, print_chat, "%s ךות בותכת אל םע add! טא'צב בותכל אנ %d .קיק ולבקת ! תוינש", PREFIX, g_iTimeLeft[id])
  2380.         case 30: {
  2381.             client_print(id, print_chat, "%s ךות בותכת אל םע add! טא'צב בותכל אנ %d .קיק ולבקת ! תוינש", PREFIX, g_iTimeLeft[id])
  2382.             set_hudmessage(42, 127, 255, 0.07, 0.70, 0, 6.0, 12.0)
  2383.             ShowSyncHudMsg(id, g_MsgSync, "add! טא'צב בותכל ! תוינש 30 ךל שי ")
  2384.         }
  2385.         case 10: {
  2386.             client_print(id, print_chat, "%s ךות בותכת אל םע add! טא'צב בותכל אנ %d .קיק ולבקת ! תוינש", PREFIX, g_iTimeLeft[id])
  2387.             set_hudmessage(42, 127, 255, 0.07, 0.70, 0, 6.0, 12.0)
  2388.             ShowSyncHudMsg(id, g_MsgSync, "add! טא'צב בותכל ! תוינש 10 ךל שי ")
  2389.         }
  2390.         case 0: {
  2391.             if ( is_user_connecting(id) )
  2392.                 DoAgain(id)
  2393.             else {
  2394.                 new playername[32]
  2395.                 get_user_name(id, playername, 31)
  2396.                 server_cmd("amx_banip #%d 1 ^"%s  ךות !add טא'צב תבתכ אלש ךכ לע קיק תלביק %d תוינש.", get_user_userid(id), PREFIX, get_pcvar_num(cvar_TimeLeft))
  2397.                 client_print(0, print_chat, "%s %s  ךות !add טא'צב תבתכ אלש ךכ לע קיק תלביק %d תוינש.", PREFIX, playername, get_pcvar_num(cvar_TimeLeft))
  2398.             }
  2399.         }
  2400.     }
  2401.    
  2402.     return PLUGIN_HANDLED
  2403. }
  2404.  
  2405. public CrashAttempt(id) {
  2406.     if ( !( 1 <= id <= gMaxPlayers ) || !is_user_connected(id) )
  2407.         return
  2408.        
  2409.     if ( get_gametime() - gTypedCommand[id] <= 1.0 ) {
  2410.         gTypedCommand[id] = get_gametime()
  2411.         return
  2412.     }
  2413.    
  2414.     gTypedCommand[id] = get_gametime()
  2415. }
  2416.  
  2417. public Prepare(id) {
  2418.     if (g_AfterRdy || g_IsStarted || g_MapChanged)  {
  2419.         client_print(id, print_chat, "%s !ליחתה רבכ קחשמה", PREFIX)
  2420.         return PLUGIN_HANDLED
  2421.     }  
  2422.     if( g_bIsReady[id] ) {
  2423.         client_print(id, print_chat, "%s !add טא'צב רבכ תבתכ", PREFIX)
  2424.         return PLUGIN_HANDLED
  2425.     }
  2426.     else {
  2427.         CrashAttempt(id)
  2428.            
  2429.         new playername[32]
  2430.         get_user_name(id, playername, 31)
  2431.         g_bIsReady[id] = true
  2432.         client_print(id, print_chat, "%s !ןנוכתת", PREFIX)
  2433.         client_print(0, print_chat, "%s %s !םיליחתמ", PREFIX, playername)
  2434.         gPlayersLeft--
  2435.         remove_task(id)
  2436.     }
  2437.     if (gPlayersLeft != 0)
  2438.         client_print(0, print_chat, "%s %d !קחשמה תא םיליחתמ םינקחש", PREFIX, gPlayersLeft)
  2439.     else {
  2440.         g_AfterRdy = true
  2441.         removeAllTasks()
  2442.         new taskId = scanForTaskID()
  2443.        
  2444.         if ( get_pcvar_num(cvar_MapVote) )
  2445.         {
  2446.             client_print(0, print_chat, "%s בורקב לחת תופמה תעבצה...", PREFIX)
  2447.             client_print(0, print_chat, "%s בורקב לחת תופמה תעבצה...", PREFIX)
  2448.             client_print(0, print_chat, "%s בורקב לחת תופמה תעבצה...", PREFIX)
  2449.             set_task(10.0, "StartVote", taskId)
  2450.         }
  2451.        
  2452.         else
  2453.         {
  2454.             client_print(0, print_chat, "%s בורקב לחת העבצהה יתווצ...", PREFIX)
  2455.             client_print(0, print_chat, "%s בורקב לחת העבצהה יתווצ...", PREFIX)
  2456.             client_print(0, print_chat, "%s בורקב לחת העבצהה יתווצ...", PREFIX)
  2457.             set_task(10.0, "TeamsVote", taskId)
  2458.         }
  2459.     }
  2460.  
  2461.    
  2462.     return PLUGIN_HANDLED
  2463. }
  2464.  
  2465. public forcedStart_AdminCmd(id)
  2466. {
  2467.     if ( !is_user_admin(id) )
  2468.     {
  2469.         client_print(id, print_chat, "%s !הדוקפה תא עצבל םילוכי םינימדא קר", PREFIX)
  2470.         return PLUGIN_HANDLED
  2471.     }
  2472.    
  2473.     new taskId = scanForTaskID()
  2474.     g_AfterRdy = true
  2475.     g_CustomGame = true
  2476.    
  2477.     if ( get_pcvar_num(cvar_MapVote) )
  2478.     {
  2479.         client_print(0, print_chat, "%s בורקב לחת תופמה תעבצה...", PREFIX)
  2480.         client_print(0, print_chat, "%s בורקב לחת תופמה תעבצה...", PREFIX)
  2481.         client_print(0, print_chat, "%s בורקב לחת תופמה תעבצה...", PREFIX)
  2482.         set_task(10.0, "StartVote", taskId)
  2483.     }
  2484.        
  2485.     else
  2486.     {
  2487.         client_print(0, print_chat, "%s בורקב לחת העבצהה יתווצ...", PREFIX)
  2488.         client_print(0, print_chat, "%s בורקב לחת העבצהה יתווצ...", PREFIX)
  2489.         client_print(0, print_chat, "%s בורקב לחת העבצהה יתווצ...", PREFIX)
  2490.         set_task(10.0, "TeamsVote", taskId)
  2491.     }
  2492.    
  2493.     return PLUGIN_CONTINUE
  2494. }
  2495.  
  2496. public forcedStop_AdminCmd(id)
  2497. {
  2498.     if ( !is_user_admin(id) )
  2499.     {
  2500.         client_print(id, print_chat, "%s !הדוקפה תא עצבל םילוכי םינימדא קר", PREFIX)
  2501.         return PLUGIN_HANDLED
  2502.     }
  2503.    
  2504.     new pName[64]
  2505.     get_user_name(id, pName, charsmax(pName))
  2506.     set_hudmessage(255, 0, 0, 0.28, 0.64, 1, 6.0, 12.0)
  2507.     show_hudmessage(id, "קספוה קחשמה ^nןימדא ידי לע %s", pName)
  2508.    
  2509.     set_pug_state(0)
  2510.     EndMatch()
  2511.     return PLUGIN_CONTINUE
  2512. }
  2513.  
  2514. public ToSetTaskToInfo(id)
  2515. {
  2516.     set_task(1.0, "ShowInfo", id+SET_CONST_TASKID, .flags="a", .repeat=130)
  2517.     set_task(1.0, "Continue", id, .flags="a", .repeat=130)
  2518. }
  2519.  
  2520. public unPrepare(id) {
  2521.     if (g_AfterRdy || g_IsStarted || g_MapChanged)  {
  2522.         client_print(id, print_chat, "%s !ליחתה רבכ קחשמה", PREFIX)
  2523.         return PLUGIN_HANDLED
  2524.     }
  2525.    
  2526.     if (g_bIsReady[id]) {
  2527.         CrashAttempt(id)
  2528.        
  2529.         gPlayersLeft++
  2530.         g_bIsReady[id] = false
  2531.         client_print(id, print_chat, "%s !רתוי ןכומ אל התא", PREFIX)
  2532.         g_iTimeLeft[id] = get_pcvar_num(cvar_TimeLeft)
  2533.         client_print(0, print_chat, "%s %d !קחשמה תא ליחתהל ידכ וננוכתה םינקחש", PREFIX, gPlayersLeft)
  2534.         ToSetTaskToInfo(id)
  2535.     }
  2536.    
  2537.     else {
  2538.         client_print(id, print_chat, "%s !add טא'צב תבתכ אל התא", PREFIX)
  2539.     }
  2540.    
  2541.     return PLUGIN_HANDLED
  2542. }
  2543.  
  2544. public ShowLeft() {
  2545.     if ( g_IsStarted || g_AfterRdy )
  2546.         return PLUGIN_HANDLED
  2547.        
  2548.     new players[32], pnum
  2549.     get_players(players, pnum, "ch")
  2550.     new taskId = scanForTaskID()
  2551.    
  2552.     if ( !pnum )
  2553.     {
  2554.         set_task(1.0, "ShowLeft", taskId)
  2555.         return PLUGIN_HANDLED
  2556.     }
  2557.        
  2558.     if ( !get_pcvar_num(cvar_pLeftMethod) || get_pcvar_num(cvar_pLeftMethod) == 2 )
  2559.         showNotReady()
  2560.     if ( get_pcvar_num(cvar_pLeftMethod) )
  2561.         showReady()
  2562.        
  2563.     set_task(1.0, "ShowLeft", taskId)
  2564.     return PLUGIN_HANDLED
  2565. }
  2566.  
  2567. public showNotReady()
  2568. {
  2569.     if (gPlayersLeft != 0)
  2570.     {
  2571.         new players[32], pnum, tempid;  
  2572.         get_players(players, pnum, "ch");
  2573.        
  2574.         for( new i; i<pnum; i++ )  {  
  2575.             tempid = players[i];  
  2576.             if (g_bIsReady[tempid] == false) {
  2577.                 new playername[32]
  2578.                 get_user_name(tempid, playername, 31)
  2579.                 add( gNotRdy, charsmax( gNotRdy ), "^n" );
  2580.                 add( gNotRdy, charsmax( gNotRdy ), playername );
  2581.             }
  2582.         }
  2583.              
  2584.     }
  2585.        
  2586.     else
  2587.         return;
  2588.        
  2589.     new playersl[2]
  2590.     num_to_str(gPlayersLeft, playersl, 2)
  2591.     trim(playersl)
  2592.     add(gNotRdy, charsmax(gNotRdy), "^n^n")
  2593.     add(gNotRdy, charsmax(gNotRdy), playersl)
  2594.     add(gNotRdy, charsmax(gNotRdy), " Players left. Type !add.")
  2595.     set_hudmessage(255, 255, 255, get_pcvar_float(cvar_NotReadyXPos), get_pcvar_float(cvar_NotReadyYPos), 0, 6.0, 1.0, _, _, 1)
  2596.     show_hudmessage(0, gNotRdy)
  2597.     gNotRdy = "Not Ready:^n"
  2598. }
  2599.  
  2600. public showReady()
  2601. {
  2602.     new readyPlayers
  2603.    
  2604.     if (gPlayersLeft != 0)
  2605.     {
  2606.         new players[32], pnum, tempid;  
  2607.         get_players(players, pnum, "ch");
  2608.        
  2609.         for( new i; i<pnum; i++ )  {  
  2610.             tempid = players[i];  
  2611.             if ( g_bIsReady[tempid] ) {
  2612.                 new playername[32]
  2613.                 readyPlayers++
  2614.                 get_user_name(tempid, playername, 31)
  2615.                 add( gRdy, charsmax( gRdy ), "^n" );
  2616.                 add( gRdy, charsmax( gRdy ), playername );
  2617.             }
  2618.         }
  2619.              
  2620.     }
  2621.        
  2622.     else
  2623.         return;
  2624.    
  2625.     new playersl[2]
  2626.     num_to_str(readyPlayers, playersl, 2)
  2627.     add(gRdy, charsmax(gNotRdy), "^n^n")
  2628.     add(gRdy, charsmax(gNotRdy), playersl)
  2629.     add(gRdy, charsmax(gNotRdy), " Players are Ready.")
  2630.     set_hudmessage(255, 255, 255, get_pcvar_float(cvar_ReadyXPos), get_pcvar_float(cvar_ReadyYPos), 0, 6.0, 1.0, _, _, 2)
  2631.     show_hudmessage(0, gRdy)
  2632.     gRdy = "Ready:^n"
  2633. }
  2634.  
  2635. public credits(id) {
  2636.     client_print(id, print_chat, "p1Mp ידי לע רצונ דומה")
  2637.     client_print(id, print_chat, "diegork759 : פייקס - רשק רוצ")
  2638.     return PLUGIN_CONTINUE
  2639. }
  2640.  
  2641. public cmds(id) {
  2642.     client_print(id, print_chat, "%s Commands: !menu (Press M), !ranks, !cmds, !score", PREFIX)
  2643.     client_print(id, print_chat, "%s !mute, !credits, (Admin Console) amx_automix_settings.", PREFIX)
  2644.     client_print(id, print_chat, "%s !startmatch (ןימדא), !stopmatch (ןימדא)", PREFIX)
  2645.     client_print(id, print_chat, "הסרג - p1Mp : ידי לע רצונ Auto-Mix %s", VERSION)
  2646.     return PLUGIN_HANDLED
  2647. }
  2648.  
  2649. public StartVote()  {  
  2650.     getmaps()
  2651.     new rnd
  2652.     while (g_DoneMaps != 4 && g_MapsCounter > 0) {
  2653.         rnd = random(g_MapsCounter)
  2654.         copy(g_MapsChosen[g_DoneMaps++], 19, g_MapsAvailable[rnd])
  2655.         g_MapsAvailable[rnd] = g_MapsAvailable[--g_MapsCounter]
  2656.     }        
  2657.    
  2658.     g_gVoteMenu = menu_create("\r?קחשל הצרת אב הפמ רחב", "votemap");
  2659.  
  2660.     new num[11]
  2661.     for(new i = 0; i < g_DoneMaps; i++)  {
  2662.         num_to_str(i, num, 10)
  2663.         menu_additem(g_gVoteMenu, g_MapsChosen[i], num, 0)
  2664.     }
  2665.     menu_additem(g_gVoteMenu, "\nתיחכונה הפמה תא ביחרהל", "4", 0)
  2666.     new players[32], pnum, tempid;
  2667.     get_players(players, pnum, "ch");
  2668.     for( new i; i<pnum; i++ ) {
  2669.         tempid = players[i];
  2670.         client_print(tempid, print_chat, "%s קחשל הצרת אב הפמ דעב עיבצהל אנ.", PREFIX)
  2671.         menu_display(tempid, g_gVoteMenu);
  2672.     }
  2673.     client_cmd(0, "spk ^"get red(e80) ninety(s45) to check(e20) use bay(s18) mass(e42) cap(s50)^"")  
  2674.     new taskId = scanForTaskID()
  2675.     set_task(10.0, "EndVote", taskId);  
  2676.     return PLUGIN_HANDLED;
  2677. }
  2678.  
  2679.  
  2680. public votemap(id, menu, item) {
  2681.     if( item == MENU_EXIT ) {
  2682.         menu_display(id, g_gVoteMenu)
  2683.         return PLUGIN_HANDLED;
  2684.     }
  2685.    
  2686.     new data[6], szName[64];
  2687.     new access, callback;
  2688.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  2689.     new voteid = str_to_num(data);
  2690.     new playerna[32]
  2691.     get_user_name(id, playerna, 31)
  2692.    
  2693.     if (voteid != 4)
  2694.         client_print(0, print_chat, "%s %s !הפמה דעב ועיבצה %s", PREFIX, playerna, g_MapsChosen[voteid])
  2695.     else
  2696.         client_print(0, print_chat, "%s %s .תיחכונה הפמה תא ריאשהל ועיבצה", PREFIX, playerna)
  2697.    
  2698.     g_gVotes[voteid]++;
  2699.     return PLUGIN_HANDLED;
  2700. }
  2701.  
  2702. public getmaps() {
  2703.     new mapsfile = fopen(g_Maps_Ini_File, "r")
  2704.     new linefortest[50]
  2705.    
  2706.     while (g_MapsCounter < sizeof(g_MapsAvailable) && !feof(mapsfile)) {
  2707.         fgets(mapsfile, linefortest, 49)
  2708.         trim(linefortest)
  2709.        
  2710.         new getcurrentmap[32]
  2711.         get_mapname(getcurrentmap, 31)
  2712.        
  2713.         if ((is_map_valid(linefortest)) && (!equali(linefortest, getcurrentmap)))
  2714.             copy(g_MapsAvailable[g_MapsCounter++], 24, linefortest)  
  2715.     }
  2716.    
  2717.     fclose(mapsfile)
  2718. }  
  2719.  
  2720. public EndVote() {
  2721.     show_menu(0, 0, "^n", 1);
  2722.     new best = 0;
  2723.     for(new i = 1; i < sizeof(g_gVotes); i++) {
  2724.         if(g_gVotes[i] > g_gVotes[best])
  2725.         best = i;
  2726.     }
  2727.    
  2728.     g_gVotes[0] = 0
  2729.     g_gVotes[1] = 0
  2730.     g_gVotes[2] = 0
  2731.     g_gVotes[3] = 0
  2732.     g_gVotes[4] = 0
  2733.    
  2734.     if(best == 4) {
  2735.         client_print(0, print_chat, "%s .הזה קחשמל ראשית תיחכונה הפמה", PREFIX);
  2736.         TeamsVote()
  2737.     }
  2738.     else {
  2739.         client_print(0, print_chat, "%s תוינש 10 ךות הנתשת הפמה. הרחבנש הפמה: %s.", PREFIX, g_MapsChosen[best]);
  2740.         g_ChangeMapTo = best;
  2741.        
  2742.         if ( g_CustomGame )
  2743.             set_pug_state(2)
  2744.         else
  2745.             set_pug_state(1)
  2746.            
  2747.         set_pcvar_string(cvar_sv_password, "")
  2748.         new taskId = scanForTaskID()
  2749.         set_task(10.0, "ChangeMap", taskId);
  2750.     }
  2751.    
  2752.     return PLUGIN_HANDLED
  2753. }  
  2754.  
  2755. public ChangeMap() {
  2756.     new maptochangeto[25]
  2757.    
  2758.     copy(maptochangeto, 24, g_MapsChosen[g_ChangeMapTo])
  2759.     server_cmd("changelevel %s", maptochangeto)
  2760.     return PLUGIN_CONTINUE
  2761. }
  2762.  
  2763. public FriendlyFire() {
  2764.     g_fVoteMenu = menu_create("\rFriendly Fire?", "voteFF");
  2765.    
  2766.    
  2767.     menu_additem(g_fVoteMenu, "On", "0", 0)
  2768.     menu_additem(g_fVoteMenu, "Off", "1", 0)
  2769.    
  2770.     new pplayers[32], ppnum, ptempid;
  2771.    
  2772.     get_players(pplayers, ppnum, "ch");
  2773.  
  2774.     for( new i; i<ppnum; i++ ){
  2775.         ptempid = pplayers[i]
  2776.         client_print(ptempid, print_chat, "%s )יוביכ / הלעפה( FriendlyFire? הצור תייה המ", PREFIX)
  2777.         menu_display(ptempid, g_fVoteMenu, 0)
  2778.     }
  2779.     new taskId = scanForTaskID()
  2780.     set_task(10.0, "EndFFVote", taskId)
  2781.     return PLUGIN_HANDLED
  2782. }
  2783.  
  2784. public voteFF(id, menu, item) {
  2785.     if( item == MENU_EXIT ) {
  2786.         menu_display(id, g_fVoteMenu)
  2787.         return PLUGIN_HANDLED;
  2788.     }
  2789.    
  2790.     new data[6], szName[64];
  2791.     new access, callback;
  2792.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  2793.    
  2794.     new voteid = str_to_num(data);
  2795.     new playername[32]
  2796.     get_user_name(id, playername, 31)
  2797.    
  2798.     switch(voteid) {
  2799.         case 0: client_print(0, print_chat, "%s %s הלעפהב : תויהל FriendlyFire דעב ועיבצה", PREFIX, playername)
  2800.         case 1: client_print(0, print_chat, "%s %s יוביכב : תויהל FriendlyFire דעב ועיבצה", PREFIX, playername)
  2801.     }
  2802.    
  2803.     g_fVotes[voteid]++;
  2804.     return PLUGIN_HANDLED;
  2805. }
  2806.  
  2807. public EndFFVote() {
  2808.     show_menu(0, 0, "^n", 1);
  2809.     new best = 0;
  2810.     for(new i = 1; i < sizeof(g_fVotes); i++) {
  2811.         if(g_fVotes[i] > g_fVotes[best])
  2812.             best = i;
  2813.     }
  2814.     g_fVotes[0] = 0
  2815.     g_fVotes[1] = 0
  2816.    
  2817.     switch(best){
  2818.         case 0: client_print(0, print_chat, "%s !תלעפומ היהת FriendlyFire", PREFIX)
  2819.         case 1: {
  2820.             client_print(0, print_chat, "%s !הבוכמ היהת FriendlyFire", PREFIX)
  2821.             g_bFFoff = true
  2822.         }
  2823.     }
  2824.     new taskId = scanForTaskID()
  2825.     set_task(5.0, "StartMatch", taskId)
  2826.     return PLUGIN_HANDLED
  2827. }
  2828.  
  2829.  
  2830. public TeamsVote() {   
  2831.     client_print(0, print_chat, "%s .תוינש 10 ךותב ולעפוי ןוגראהו העבצהה יתווצ", PREFIX)
  2832.     new taskId = scanForTaskID()
  2833.     set_task(10.0, "TeamsVote2", taskId)
  2834. }
  2835.  
  2836. public TeamsVote2() {  
  2837.     if ( !g_CustomGame ) {
  2838.         if (get_playersnum() < get_pcvar_num(cvar_pLeft) - 2) {
  2839.             if (g_DidWaitEnough == 16) {
  2840.                 client_print(0, print_chat, "%s רמגנ קחשמ !םיפרטצמ אל םינקחש...", PREFIX)
  2841.                 set_pug_state(0)
  2842.                 g_IsStarted = false
  2843.                 g_AfterRdy = false
  2844.                 new taskId = scanForTaskID()
  2845.                 set_task(3.0, "MatchIsOver", taskId)
  2846.                 return PLUGIN_HANDLED
  2847.             }
  2848.            
  2849.             new sum
  2850.             sum = g_DidWaitEnough * 15
  2851.             sum = 300 - sum
  2852.             client_print(0, print_chat, "%s .םייתנב ופרטצה םלוכש דע תוינש 15 דועב בכועי ןוגראו העבצהה יתווצ", PREFIX)
  2853.             set_hudmessage(255, 0, 0, 0.35, 0.66, 0, 6.0, 12.0)
  2854.             ShowSyncHudMsg(0, g_MsgSync6, "תיהשומ העבצהה יתווצ - דועב קחשמ לש שדחמ הלעפה %d תוינש", sum)
  2855.             g_DidWaitEnough++
  2856.             new taskId = scanForTaskID()
  2857.             set_task(15.0, "TeamsVote2", taskId)
  2858.             return PLUGIN_HANDLED
  2859.         }
  2860.            
  2861.     }
  2862.    
  2863.     set_pug_state(0)
  2864.     g_MapChanged = false
  2865.     g_AfterRdy = true
  2866.     g_DidWaitEnough = 0
  2867.     g_rVoteMenu = menu_create("\r?ונגראתה תוצובקהש הצור התא ךיא", "voteteams");
  2868.     menu_additem(g_rVoteMenu, ".תרשב עגרכ שיש ומכ תוצובק", "0", 0)
  2869.     menu_additem(g_rVoteMenu, ".םינטפק תריחב", "1", 0)
  2870.     menu_additem(g_rVoteMenu, ".תויארקא תוצובק", "2", 0)
  2871.    
  2872.     new pplayers[32], ppnum, ptempid;
  2873.     get_players(pplayers, ppnum, "ch");
  2874.  
  2875.     for( new i; i<ppnum; i++ ) {
  2876.         ptempid = pplayers[i]
  2877.         client_print(ptempid, print_chat, "%s .תונגרואמ ויה תוצובקהש הצור התא הב ךרדה תא רוחבל אנ", PREFIX)
  2878.         menu_display(ptempid, g_rVoteMenu, 0)
  2879.     }
  2880.  
  2881.     client_cmd(0, "spk Gman/Gman_Choose1")
  2882.     new taskId = scanForTaskID()
  2883.     set_task(10.0, "EndTeamsVote", taskId)
  2884.     return PLUGIN_HANDLED
  2885. }
  2886.  
  2887. public voteteams(id, menu, item) {
  2888.     if( item == MENU_EXIT ) {
  2889.         menu_display(id, menu)
  2890.         return PLUGIN_HANDLED;
  2891.     }
  2892.    
  2893.     new players[32], pnum, tempid
  2894.     new bool:IsThereBot
  2895.     get_players(players, pnum, "h")
  2896.    
  2897.     for ( new i ; i < pnum ; i++ )
  2898.     {
  2899.         tempid = players[i]
  2900.        
  2901.         if ( is_user_bot(tempid) )
  2902.             IsThereBot = true
  2903.     }
  2904.    
  2905.     new data[6], szName[64];
  2906.     new access, callback;
  2907.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  2908.     new voteid = str_to_num(data);
  2909.     new playername[32]
  2910.     get_user_name(id, playername, 31)
  2911.    
  2912.     if ( IsThereBot && voteid == 1 )
  2913.     {
  2914.         client_print(id, print_chat, "%s !טנרטניאב םיטוב שי רשאכ הנימז הניא וז הנוכת יכ", PREFIX)
  2915.         menu_display(id, menu)
  2916.         return PLUGIN_HANDLED
  2917.     }
  2918.    
  2919.     switch(voteid) {
  2920.         case 0: client_print(0, print_chat, "%s %s ועיבצה: .תרשב עגרכ שיש ומכ תוצובק", PREFIX, playername)
  2921.         case 1: client_print(0, print_chat, "%s %s ועיבצה: .םינטפק תריחב", PREFIX, playername)
  2922.         case 2: client_print(0, print_chat, "%s %s ועיבצה: .תויארקא תוצובק", PREFIX, playername)
  2923.     }
  2924.     g_rVotes[voteid]++;
  2925.     return PLUGIN_HANDLED;
  2926. }
  2927.    
  2928. public EndTeamsVote() {
  2929.     show_menu(0, 0, "^n", 1);
  2930.     new best = 0;
  2931.     for(new i = 1; i < sizeof(g_rVotes); i++) {
  2932.         if(g_rVotes[i] > g_rVotes[best])
  2933.             best = i;
  2934.     }
  2935.    
  2936.     switch(best) {
  2937.         case 0:
  2938.         {
  2939.             new playersT[32] , numT , playersCt[32] , numCt
  2940.             get_players( playersT , numT , "che" , "TERRORIST" )
  2941.             get_players( playersCt , numCt , "che" , "CT" )
  2942.             g_rVotes[0] = 0
  2943.             g_rVotes[1] = 0
  2944.             g_rVotes[2] = 0
  2945.            
  2946.             if (numT != numCt)
  2947.             {
  2948.                 client_print(0, print_chat, "%s .תוינש 10 ךות ,תרשב עגרכ שיש ומכ יארקא ןפואב םיתווצ", PREFIX)
  2949.                 new taskId = scanForTaskID()
  2950.                 set_task(10.0, "RandomTeams", taskId)
  2951.                 return PLUGIN_HANDLED
  2952.             }
  2953.            
  2954.             client_print(0, print_chat, "%s .תוינש 10 דועב ליחתי ,קחשמ ותואב וראשי תוצובקה", PREFIX)
  2955.             new taskId = scanForTaskID()
  2956.             set_task(10.0, "CurrentTeams", taskId)
  2957.         }
  2958.         case 1:
  2959.         {
  2960.             g_rVotes[0] = 0
  2961.             g_rVotes[1] = 0
  2962.             g_rVotes[2] = 0
  2963.             client_print(0, print_chat, "%s תוינש 10 דועב וליחתי ,םינטפק תריחב", PREFIX)
  2964.             new taskId = scanForTaskID()
  2965.             set_task(10.0, "RandomCpt", taskId)
  2966.         }
  2967.         case 2:
  2968.         {
  2969.             g_rVotes[0] = 0
  2970.             g_rVotes[1] = 0
  2971.             g_rVotes[2] = 0
  2972.             client_print(0, print_chat, "%s .תוינש 10 דועב ,תויארקא תוצובק", PREFIX)
  2973.             new taskId = scanForTaskID()
  2974.             set_task(10.0, "RandomTeams", taskId)
  2975.         }
  2976.     }
  2977.    
  2978.     return PLUGIN_HANDLED
  2979. }
  2980.  
  2981. public CurrentTeams() {
  2982.     new players[32], pnum, tempid;
  2983.     get_players(players, pnum, "ch");
  2984.        
  2985.     for( new i; i<pnum; i++ ) {  
  2986.         tempid = players[i]
  2987.         if (cs_get_user_team(tempid) == CS_TEAM_SPECTATOR)
  2988.             set_task(1.0, "MoveFromSpec", tempid)
  2989.     }
  2990.     StartMatch()
  2991. }
  2992.  
  2993.  
  2994. public MoveFromSpec(id) {
  2995.     new playersT[ 32 ] , numT , playersCt[ 32 ] , numCt
  2996.     get_players( playersT , numT , "che" , "TERRORIST" )
  2997.     get_players( playersCt , numCt , "che" , "CT" )
  2998.    
  2999.     if (g_Twon) {
  3000.         if (g_bSecondHalf) {
  3001.             if( numT > numCt )
  3002.             {
  3003.                 set_pcvar_string(cvar_humans_join_team, "CT")
  3004.                 client_cmd(id, "slot1")
  3005.                 ChangeTagB(id)
  3006.             }
  3007.  
  3008.             else
  3009.             {
  3010.                 set_pcvar_string(cvar_humans_join_team, "T")
  3011.                 client_cmd(id, "slot1")
  3012.                 ChangeTagA(id)
  3013.             }
  3014.         }
  3015.        
  3016.         else
  3017.         {
  3018.             if( numT > numCt )
  3019.             {
  3020.                 set_pcvar_string(cvar_humans_join_team, "CT")
  3021.                 client_cmd(id, "slot1")
  3022.                 ChangeTagA(id)
  3023.             }
  3024.  
  3025.             else
  3026.             {
  3027.                 set_pcvar_string(cvar_humans_join_team, "T")
  3028.                 client_cmd(id, "slot1")
  3029.                 ChangeTagB(id)
  3030.             }  
  3031.         }
  3032.     }
  3033.    
  3034.     else
  3035.     {
  3036.         if (g_bSecondHalf)
  3037.         {
  3038.             if( numT > numCt )
  3039.             {
  3040.                 set_pcvar_string(cvar_humans_join_team, "CT")
  3041.                 client_cmd(id, "slot1")
  3042.                 ChangeTagA(id)
  3043.             }
  3044.  
  3045.             else
  3046.             {
  3047.                 set_pcvar_string(cvar_humans_join_team, "T")
  3048.                 client_cmd(id, "slot1")
  3049.                 ChangeTagB(id)
  3050.             }
  3051.         }
  3052.        
  3053.         else
  3054.         {
  3055.             if( numT > numCt )
  3056.             {
  3057.                 set_pcvar_string(cvar_humans_join_team, "CT")
  3058.                 client_cmd(id, "slot1")
  3059.                 ChangeTagB(id)
  3060.             }
  3061.  
  3062.             else
  3063.             {
  3064.                 set_pcvar_string(cvar_humans_join_team, "T")
  3065.                 client_cmd(id, "slot1")
  3066.                 ChangeTagA(id)
  3067.             }  
  3068.         }
  3069.     }
  3070.    
  3071.     if (g_bCpt) {
  3072.         client_cmd(id, "kill")
  3073.         cs_set_user_team(id, CS_TEAM_SPECTATOR)
  3074.     }
  3075.    
  3076.     return PLUGIN_CONTINUE
  3077. }
  3078.  
  3079. public RandomCpt() {
  3080.     set_pcvar_num(cvar_mp_freezetime, 9999)
  3081.     new players[32], pnum, tempid;
  3082.     get_players(players, pnum, "ch");
  3083.     new specialCount
  3084.  
  3085.     for( new i; i<pnum; i++ ) {
  3086.         tempid = players[i];
  3087.         client_cmd(tempid, "kill")
  3088.        
  3089.         if ( cs_get_user_team(tempid) != CS_TEAM_UNASSIGNED )
  3090.         {
  3091.             specialCount++
  3092.             cs_set_user_team(tempid, CS_TEAM_SPECTATOR)
  3093.         }
  3094.            
  3095.     }
  3096.    
  3097.     if (specialCount < 2) {
  3098.         if (g_CustomGame) {
  3099.             client_print(0, print_chat, "%s תישיא םאתומ קחשמ ... תוצובק ,יארקא ןפואב .םינקחש 2 תחקל לוכי אל ,םינקחש 2 מ תוחפ שי", PREFIX)
  3100.             new taskId = scanForTaskID()
  3101.             set_task(3.0, "RandomTeams", taskId)
  3102.         }
  3103.        
  3104.         else {
  3105.             client_print(0, print_chat, "%s שדחמ ליחתמ קחשמה ,םינקחש 2 מ תוחפ שי...", PREFIX)
  3106.             new taskId = scanForTaskID()
  3107.             set_task(5.0, "EndMatch", taskId)
  3108.         }
  3109.         return;
  3110.     }
  3111.        
  3112.     new z = random(pnum)
  3113.     while (cs_get_user_team(players[z]) == CS_TEAM_UNASSIGNED)
  3114.         z = random(pnum)
  3115.     cs_set_user_team(players[z], CS_TEAM_T)
  3116.     gCptT = players[z]
  3117.    
  3118.     new q = random(pnum)
  3119.     while ( (q == z) || cs_get_user_team(players[q]) == CS_TEAM_UNASSIGNED )
  3120.         q = random(pnum)
  3121.     cs_set_user_team(players[q], CS_TEAM_CT)
  3122.     gCptCT = players[q]
  3123.     client_print(0, print_chat, "%s .םהלש תווצה ירבח תא רוחבל אנ , תעכ רחבנ םינטפקה תריחב", PREFIX)
  3124.     client_print(0, print_chat, "%s 1. רחב ,םילבחמ ןטפק", PREFIX)
  3125.     g_bCpt = true
  3126.     moveT()
  3127.     return;
  3128. }
  3129.  
  3130. public kickhimout(id) {
  3131.     client_print(0, print_chat, "%s יארקא ןפואב תוצובק AFK! אוה ןטפקה...", PREFIX)
  3132.     set_hudmessage(255, 0, 0, 0.40, 0.32, 0, 6.0, 12.0)
  3133.     ShowSyncHudMsg(0, g_MsgSync2, "AFK! אוה ןטפקה^nתוינש 5 ךות ,יארקא ןפואב םיתווצל הרזח...")
  3134.     show_menu(0, 0, "^n", 1);
  3135.     g_bCpt = false
  3136.     new taskId = scanForTaskID()
  3137.     set_task(5.0, "RandomTeams", taskId)
  3138.     return PLUGIN_HANDLED
  3139. }
  3140.    
  3141.  
  3142. public moveT() {
  3143.     TeamsInfo()
  3144.    
  3145.     g_PlayersMenu = menu_create(" :ךלש תווצה רובעל ןקחש רוחבל", "moveT_menu");
  3146.     new players[32], pnum, tempid;
  3147.     new Tplayers[32], Tpnum;
  3148.     new szName[32], szTempid[10];
  3149.     new pickisdone, check
  3150.     get_players(players, pnum, "ch");
  3151.     get_players(Tplayers, Tpnum, "che", "TERRORIST");
  3152.        
  3153.     for( new i; i<pnum; i++ )
  3154.     {
  3155.         tempid = players[i];
  3156.        
  3157.         if ((tempid == gCptT) || (tempid == gCptCT))
  3158.             check++
  3159.        
  3160.         if (cs_get_user_team(tempid) == CS_TEAM_UNASSIGNED)
  3161.             continue;
  3162.        
  3163.         else if (cs_get_user_team(tempid) == CS_TEAM_SPECTATOR) {
  3164.             get_user_name(tempid, szName, 31);
  3165.             num_to_str(tempid, szTempid, 9);
  3166.             menu_additem(g_PlayersMenu, szName, szTempid, 0);
  3167.             pickisdone++
  3168.         }
  3169.     }
  3170.    
  3171.     if (check != 2) {
  3172.         client_print(0, print_chat, "%s יארקא ןפואב םיתווצ !קתונ םינקחשהמ דחא...", PREFIX)
  3173.         g_bCpt = false
  3174.         removeAllTasks()
  3175.         new taskId = scanForTaskID()
  3176.         set_task(3.0, "RandomTeams", taskId)
  3177.         return PLUGIN_HANDLED
  3178.     }
  3179.    
  3180.     if (pickisdone == 0) {
  3181.         client_print(0, print_chat, "%s תוינש 10 דועב ליחתי קחשמה !ועבקנ םיתווצה לכ...", PREFIX)
  3182.         g_bCpt = false
  3183.         removeAllTasks()
  3184.         new taskId = scanForTaskID()
  3185.         set_task(10.0, "StartMatch", taskId)
  3186.         return PLUGIN_HANDLED
  3187.     }
  3188.    
  3189.     if (Tpnum >= get_pcvar_num(cvar_pLeft)/2 ) {
  3190.         client_print(0, print_chat, "%s .ןטפקל םירזוח םירטוש  !האלמ איה םילבחמה תווצ", PREFIX)
  3191.         moveCT()
  3192.         return PLUGIN_HANDLED
  3193.     }
  3194.  
  3195.     menu_display(gCptT, g_PlayersMenu)
  3196.     set_task(25.0, "kickhimout", gCptT)
  3197.     return PLUGIN_HANDLED;
  3198. }
  3199.  
  3200. public moveT_menu(id, g_PlayersMenu, item) {
  3201.     if( item == MENU_EXIT )
  3202.     {
  3203.         menu_display(id, g_PlayersMenu)
  3204.         return PLUGIN_HANDLED;
  3205.     }
  3206.  
  3207.     remove_task(gCptT)
  3208.     new data[6], iName[64];
  3209.     new access, callback;
  3210.     menu_item_getinfo(g_PlayersMenu, item, access, data,5, iName, 63, callback);
  3211.     new tempid = str_to_num(data);
  3212.     new name[32]
  3213.     new g_bCptNm[64]
  3214.     get_user_name(gCptT, g_bCptNm, 63)
  3215.     get_user_name(tempid, name, 31)
  3216.     cs_set_user_team(tempid, CS_TEAM_T)
  3217.     client_print(0, print_chat, "%s %s  ידי לע םילבחמ תווצ תויהל רחבנ %s ןטפקה.", PREFIX, name, g_bCptNm)
  3218.     menu_destroy(g_PlayersMenu);
  3219.     remove_task(gCptT);
  3220.     moveCT()
  3221.     return PLUGIN_HANDLED
  3222. }
  3223.  
  3224.  
  3225. public moveCT() {
  3226.     g_PlayersMenu = menu_create(" :ךלש תווצה רובעל ןקחש רוחבל", "moveCT_menu");
  3227.     new players[32], pnum, tempid;
  3228.     new CTplayers[32], CTpnum;
  3229.     new szName[32], szTempid[10];
  3230.     new pickisdone, check
  3231.     get_players(players, pnum, "ch");
  3232.     get_players(CTplayers, CTpnum, "che", "CT");
  3233.        
  3234.     for( new i; i<pnum; i++ )
  3235.     {
  3236.         tempid = players[i];
  3237.        
  3238.         if ((tempid == gCptT) || (tempid == gCptCT))
  3239.             check++
  3240.        
  3241.         if (cs_get_user_team(tempid) == CS_TEAM_UNASSIGNED)
  3242.             continue;
  3243.        
  3244.         else if (cs_get_user_team(tempid) == CS_TEAM_SPECTATOR) {
  3245.             get_user_name(tempid, szName, 31);
  3246.             num_to_str(tempid, szTempid, 9);
  3247.             menu_additem(g_PlayersMenu, szName, szTempid, 0);
  3248.             pickisdone++
  3249.         }
  3250.     }
  3251.    
  3252.     if (check != 2) {
  3253.         client_print(0, print_chat, "%s יארקא ןפואב םיתווצ !קתונ םינקחשהמ דחא...", PREFIX)
  3254.         g_bCpt = false
  3255.         new taskId = scanForTaskID()
  3256.         set_task(3.0, "RandomTeams", taskId)
  3257.         return PLUGIN_HANDLED
  3258.     }
  3259.    
  3260.     if (pickisdone == 0) {
  3261.         client_print(0, print_chat, "%s תוינש 10 דועב ליחתי קחשמ ! ועבקנ םיתווצה לכ...", PREFIX)
  3262.         g_bCpt = false
  3263.         new taskId = scanForTaskID()
  3264.         set_task(10.0, "StartMatch", taskId)
  3265.         return PLUGIN_HANDLED
  3266.     }
  3267.    
  3268.     if (CTpnum >= get_pcvar_num(cvar_pLeft)/2 ) {
  3269.         client_print(0, print_chat, "%s ןטפקל םירזוח םילבחמ !אלמ אוה םירטוש תווצ.", PREFIX)
  3270.         moveT()
  3271.         return PLUGIN_HANDLED
  3272.     }
  3273.  
  3274.     menu_display(gCptCT, g_PlayersMenu)
  3275.     set_task(20.0, "kickhimout", gCptCT)
  3276.     return PLUGIN_HANDLED;
  3277. }
  3278.  
  3279. public moveCT_menu(id, g_PlayersMenu, item) {
  3280.     if( item == MENU_EXIT )  {
  3281.         menu_display(id, g_PlayersMenu)
  3282.         return PLUGIN_HANDLED;
  3283.     }
  3284.    
  3285.     remove_task(gCptCT)
  3286.     new data[6], iName[64];
  3287.     new access, callback;
  3288.     menu_item_getinfo(g_PlayersMenu, item, access, data,5, iName, 63, callback);
  3289.     new tempid = str_to_num(data);
  3290.     new name[32]
  3291.     new g_bCptNm[64]
  3292.     get_user_name(gCptCT, g_bCptNm, 63)
  3293.     get_user_name(tempid, name, 31)
  3294.     cs_set_user_team(tempid, CS_TEAM_CT)
  3295.     client_print(0, print_chat, "%s %s wידי לע םירטוש תווצ תויהל רחבנ %s ןטפקה.", PREFIX, name, g_bCptNm)
  3296.     menu_destroy(g_PlayersMenu);
  3297.     remove_task(gCptCT);
  3298.     moveT()
  3299.     return PLUGIN_HANDLED
  3300. }
  3301.  
  3302. public TeamsInfo() {
  3303.     if (g_bCpt) {
  3304.         new nameCT[70], nameT[70]
  3305.         new infoT[500]
  3306.         new infoCT[500]
  3307.         new players[32], pnum, tempid;
  3308.         new toapprove
  3309.        
  3310.         get_players(players, pnum, "ch")
  3311.         get_user_name(gCptT, nameT, 69)
  3312.         get_user_name(gCptCT, nameCT, 69)
  3313.         format(infoT, 499, "%s^n-------------^:ןטפק %s^n^:תווצה ירבח^n^n", ( get_pcvar_num(cvar_TeamTag) ? "'א הצובק" : "Terrorists" ), nameT)
  3314.         format(infoCT, 499, "%s^n-------------^n :ןטפק %s^n^n :תווצה ירבח^n^n", ( get_pcvar_num(cvar_TeamTag) ? "'ב הצובק" : "Counter-Terrorists" ), nameCT)
  3315.        
  3316.         for (new i ; i < pnum ; i++)
  3317.         {
  3318.             tempid = players[i]
  3319.            
  3320.             if ((cs_get_user_team(tempid) == CS_TEAM_T) && (tempid != gCptT))
  3321.             {
  3322.                 new nameofp[70]
  3323.                
  3324.                 get_user_name(tempid, nameofp, 69)
  3325.                 add(infoT, 499, nameofp)
  3326.                 add(infoT, 499, "^n")
  3327.             }
  3328.            
  3329.             else if ((cs_get_user_team(tempid) == CS_TEAM_CT) && (tempid != gCptCT))
  3330.             {
  3331.                 new nameofCTp[70]
  3332.                
  3333.                 get_user_name(tempid, nameofCTp, 69)
  3334.                 add(infoCT, 499, nameofCTp)
  3335.                 add(infoCT, 499, "^n")
  3336.             }
  3337.            
  3338.             if ((cs_get_user_team(tempid) == CS_TEAM_T) && (tempid == gCptT))
  3339.                 toapprove++
  3340.            
  3341.             else if ((cs_get_user_team(tempid) == CS_TEAM_CT) && (tempid == gCptCT))
  3342.             {
  3343.                 toapprove++
  3344.             }
  3345.         }
  3346.        
  3347.         if (toapprove != 2) {
  3348.             set_hudmessage(255, 0, 0, 0.40, 0.32, 0, 6.0, 12.0)
  3349.             ShowSyncHudMsg(0, g_MsgSync2, "!קתנתמ אל יניצקמ דחא^nתוינש 5 ךותב םיתווצ ,יארקא ןפואב...")
  3350.             new taskId = scanForTaskID()
  3351.             set_task(5.0, "RandomTeams", taskId)
  3352.             return PLUGIN_HANDLED
  3353.         }
  3354.        
  3355.         set_hudmessage(27, 162, 229, 0.28, 0.32, 0, 6.0, 1.0)
  3356.         ShowSyncHudMsg(0, g_MsgSync8, infoT)
  3357.        
  3358.         set_hudmessage(27, 162, 229, 0.58, 0.32, 0, 6.0, 1.0)
  3359.         ShowSyncHudMsg(0, g_MsgSync2, infoCT)
  3360.         new taskId = scanForTaskID()
  3361.         set_task(1.0, "TeamsInfo", taskId)
  3362.     }
  3363.    
  3364.     else
  3365.     {
  3366.         set_hudmessage(0, 255, 0, 0.40, 0.32, 0, 6.0, 12.0)
  3367.         ShowSyncHudMsg(0, g_MsgSync2, "! ועבקנ םיתווצה לכ")
  3368.         return PLUGIN_CONTINUE
  3369.     }
  3370.    
  3371.     return PLUGIN_CONTINUE
  3372. }
  3373.  
  3374.  
  3375. public RandomTeams()
  3376. {
  3377.     new players[32], pnum, tempid;
  3378.    
  3379.     get_players(players, pnum, "ch");
  3380.  
  3381.     for( new i; i<pnum; i++ ) {
  3382.         tempid = players[i];
  3383.         client_cmd(tempid, "kill")
  3384.        
  3385.         if (cs_get_user_team(tempid) == CS_TEAM_UNASSIGNED)
  3386.             continue;
  3387.         cs_set_user_team(tempid, CS_TEAM_SPECTATOR)
  3388.     }
  3389.    
  3390.     new topick, idop
  3391.    
  3392.     while (AnyoneInSpec()) {
  3393.         if (cs_get_user_team(players[idop]) == CS_TEAM_UNASSIGNED)
  3394.         {
  3395.             idop++
  3396.             continue;
  3397.         }
  3398.        
  3399.         topick = random(2)
  3400.        
  3401.         if (topick == 1)
  3402.         {
  3403.             cs_set_user_team(players[idop], CS_TEAM_T)
  3404.         }
  3405.        
  3406.         else
  3407.         {
  3408.             cs_set_user_team(players[idop], CS_TEAM_CT)
  3409.         }
  3410.        
  3411.         new pplayers[32], ppnum, tempid;
  3412.         new ppplayers[32], pppnum;
  3413.         new temppnum
  3414.        
  3415.         get_players(players, pnum, "ch");
  3416.         get_players(pplayers, ppnum, "che", "CT")
  3417.         get_players(ppplayers, pppnum, "che", "TERRORIST")
  3418.        
  3419.         if (ppnum == pnum/2)
  3420.         {
  3421.             get_players(players, temppnum, "ch");
  3422.            
  3423.             for( new i; i<temppnum; i++ )
  3424.             {
  3425.                 tempid = players[i];
  3426.                
  3427.                 if (cs_get_user_team(tempid) == CS_TEAM_SPECTATOR)
  3428.                 {
  3429.                     cs_set_user_team(tempid, CS_TEAM_T)
  3430.                 }
  3431.             }
  3432.         }
  3433.        
  3434.         else if (pppnum == pnum/2)
  3435.         {
  3436.             get_players(players, temppnum, "ch");
  3437.            
  3438.             for( new i; i<temppnum; i++ )
  3439.             {
  3440.                 tempid = players[i];
  3441.                
  3442.                 if (cs_get_user_team(tempid) == CS_TEAM_SPECTATOR)
  3443.                 {
  3444.                     cs_set_user_team(tempid, CS_TEAM_CT)
  3445.                 }
  3446.             }
  3447.         }
  3448.        
  3449.         idop++
  3450.     }
  3451.     new taskId = scanForTaskID()
  3452.     client_print(0, print_chat, "%s תוינש 5 דועב לחי קחשמה !תויארקא רבכ תוצובקה...", PREFIX)
  3453.     set_task(5.0, "StartMatch", taskId)
  3454. }
  3455.  
  3456. public AnyoneInSpec() {
  3457.     new players[32], pnum, tempid;
  3458.     get_players(players, pnum, "ch");
  3459.  
  3460.     for( new i; i<pnum; i++ )
  3461.     {
  3462.         tempid = players[i];
  3463.        
  3464.         if (cs_get_user_team(tempid) == CS_TEAM_SPECTATOR)
  3465.             return true
  3466.     }
  3467.    
  3468.     return false
  3469. }
  3470.  
  3471.  
  3472. public StartMatch() {
  3473.     if(get_pcvar_num(cvar_FFvote) && (g_bDidVoteFF == false))
  3474.     {
  3475.         g_bDidVoteFF = true
  3476.         client_print(0, print_chat, "%s Friendly Fire וישכע לחת העבצהה...", PREFIX)
  3477.         new taskId = scanForTaskID()
  3478.         set_task(5.0, "FriendlyFire", taskId)
  3479.         return PLUGIN_HANDLED
  3480.     }
  3481.    
  3482.     new players[32], pnum, tempid;
  3483.    
  3484.     get_players(players, pnum, "ch")
  3485.    
  3486.     if (pnum < get_pcvar_num(cvar_pLeft) - 2)
  3487.     {
  3488.         if ( !g_CustomGame )
  3489.         {
  3490.             if (g_DidWaitEnough < 8)
  3491.             {
  3492.                 client_print(0, print_chat, "%s .םומינימ םינקחש 8 .תוינש 15 דועב בכעות המאתה", PREFIX)
  3493.                 g_DidWaitEnough++
  3494.                 new taskId = scanForTaskID()
  3495.                 set_task(15.0, "StartMatch", taskId)
  3496.                 return PLUGIN_HANDLED
  3497.             }
  3498.            
  3499.             set_pcvar_string(cvar_humans_join_team, "")
  3500.             g_iScore[0] = 0
  3501.             g_iScore[1] = 0
  3502.             g_AfterRdy = false
  3503.             g_IsStarted = false
  3504.             g_bDidVoteFF = false
  3505.             g_DidWaitEnough = 0
  3506.             gPlayersLeft = get_maxplayers()
  3507.            
  3508.             client_print(0, print_chat, "%s .שדחמ ליחתמ קחשמ .םינקחש 10 דוע שי", PREFIX)
  3509.             client_print(0, print_chat, "%s ןתמה אנא .וישכע םינעטנ תורדגהב קחשמה ינפל...", PREFIX)
  3510.             ShowLeft()
  3511.             server_cmd("exec practice.cfg")
  3512.             server_exec()
  3513.            
  3514.             for( new i; i<pnum; i++ )   {
  3515.                 tempid = players[i];
  3516.                 g_bIsReady[tempid] = false
  3517.                 remove_task(tempid)
  3518.                 g_iTimeLeft[tempid] = get_pcvar_num(cvar_TimeLeft)
  3519.                 g_LeftKills[tempid] = 0
  3520.                 g_bSecondHalf = false
  3521.                 ToSetTaskToInfo(tempid)
  3522.             }
  3523.             return PLUGIN_HANDLED
  3524.         }
  3525.     }
  3526.        
  3527.     for (new x ; x<pnum ; x++)
  3528.     {
  3529.         tempid = players[x]
  3530.        
  3531.         switch( cs_get_user_team(tempid) ) {
  3532.             case CS_TEAM_UNASSIGNED: continue;
  3533.             case CS_TEAM_SPECTATOR: server_cmd("kick # %d", get_user_userid(tempid))
  3534.             case CS_TEAM_T: ChangeTagA(tempid)
  3535.             case CS_TEAM_CT: ChangeTagB(tempid)
  3536.         }
  3537.     }
  3538.  
  3539.     client_print(0, print_chat, "%s ןתמה אנא .וישכע םינעטנ םיבברעמ תורדגה...", PREFIX)
  3540.     client_print(0, print_chat, "%s ןתמה אנא .וישכע םינעטנ םיבברעמ תורדגה...", PREFIX)
  3541.     client_print(0, print_chat, "%s ןתמה אנא .וישכע םינעטנ םיבברעמ תורדגה...", PREFIX)
  3542.     new taskId = scanForTaskID()
  3543.     set_task(4.0, "Settings", taskId)
  3544.    
  3545.     return PLUGIN_HANDLED
  3546. }
  3547.  
  3548. public ChangeTagA(id) {
  3549.     if ( !is_user_connected(id) || !( 1 <= id <= gMaxPlayers ) || !get_pcvar_num(cvar_TeamTag) )
  3550.         return;
  3551.        
  3552.     new pname[100]
  3553.     new newname[70]
  3554.     get_user_info(id, "name", pname, 49)       
  3555.     pname = RemoveOldTag(pname)    
  3556.     format(newname, 69, "(Team-A) %s", pname)
  3557.     set_user_info(id, "name", newname)
  3558. }
  3559.  
  3560. public ChangeTagB(id) {
  3561.     if ( !is_user_connected(id) || !( 1 <= id <= gMaxPlayers ) || !get_pcvar_num(cvar_TeamTag) )
  3562.         return;
  3563.        
  3564.     new pname[100]
  3565.     new newname[70]
  3566.     get_user_info(id, "name", pname, 49)       
  3567.     pname = RemoveOldTag(pname)    
  3568.     format(newname, 69, "(Team-B) %s", pname)
  3569.     set_user_info(id, "name", newname)
  3570. }
  3571.  
  3572. public RemoveOldTag(pname[100]) {
  3573.     replace_all(pname, 69, "(Team-B)", "")
  3574.     replace_all(pname, 69, "(Team-A)", "")
  3575.     replace_all(pname, 69, "(Team-B )", "")
  3576.     replace_all(pname, 69, "(Team-A )", "")
  3577.     replace_all(pname, 69, "( Team-B)", "")
  3578.     replace_all(pname, 69, "( Team-A)", "")
  3579.     replace_all(pname, 69, "( Team-B )", "")
  3580.     replace_all(pname, 69, "( Team-A )", "")
  3581.     replace_all(pname, 69, "(Tema-B)", "")
  3582.     replace_all(pname, 69, "(Tema-A)", "")
  3583.     replace_all(pname, 69, "(Taem-B)", "")
  3584.     replace_all(pname, 69, "(Taem-A)", "")
  3585.     replace_all(pname, 69, "(Tame-B)", "")
  3586.     replace_all(pname, 69, "(Tame-A)", "")
  3587.     replace_all(pname, 69, "[Team-B]", "")
  3588.     replace_all(pname, 69, "[Team-A]", "")
  3589.     replace_all(pname, 69, "[Team-B ]", "")
  3590.     replace_all(pname, 69, "[Team-A ]", "")
  3591.     replace_all(pname, 69, "[ Team-B]", "")
  3592.     replace_all(pname, 69, "[ Team-A]", "")
  3593.     replace_all(pname, 69, "[ Team-B ]", "")
  3594.     replace_all(pname, 69, "[ Team-A ]", "")
  3595.     replace_all(pname, 69, "(Team B)", "")
  3596.     replace_all(pname, 69, "(Team A)", "")
  3597.     replace_all(pname, 69, "[Team B]", "")
  3598.     replace_all(pname, 69, "[Team A]", "")
  3599.     replace_all(pname, 69, "(Team B )", "")
  3600.     replace_all(pname, 69, "(Team A )", "")
  3601.     replace_all(pname, 69, "[Team B ]", "")
  3602.     replace_all(pname, 69, "[Team A ]", "")
  3603.     replace_all(pname, 69, "( Team B)", "")
  3604.     replace_all(pname, 69, "( Team A)", "")
  3605.     replace_all(pname, 69, "[ Team B]", "")
  3606.     replace_all(pname, 69, "[ Team A]", "")
  3607.     replace_all(pname, 69, "( Team B )", "")
  3608.     replace_all(pname, 69, "( Team A )", "")
  3609.     replace_all(pname, 69, "[ Team B ]", "")
  3610.     replace_all(pname, 69, "[ Team A ]", "")
  3611.     replace_all(pname, 69, "{Team-B}", "")
  3612.     replace_all(pname, 69, "{Team-A}", "")
  3613.     replace_all(pname, 69, "{Team-B }", "")
  3614.     replace_all(pname, 69, "{Team-A }", "")
  3615.     replace_all(pname, 69, "{ Team-B}", "")
  3616.     replace_all(pname, 69, "{ Team-A}", "")
  3617.     replace_all(pname, 69, "{ Team-B }", "")
  3618.     replace_all(pname, 69, "{ Team-A }", "")
  3619.     trim(pname)
  3620.     return pname
  3621. }
  3622.  
  3623. public SwitchTeams() {
  3624.     new supportvariable
  3625.    
  3626.     supportvariable = g_iScore[0]
  3627.     g_iScore[0] = g_iScore[1]
  3628.     g_iScore[1] = supportvariable
  3629.    
  3630.     new players[32], pnum, tempid;
  3631.     get_players(players, pnum, "ch");
  3632.  
  3633.     for( new i; i<pnum; i++ ) {
  3634.         tempid = players[i];
  3635.         switch( cs_get_user_team(tempid) ) {
  3636.             case CS_TEAM_T: cs_set_user_team(tempid, CS_TEAM_CT)
  3637.             case CS_TEAM_CT: cs_set_user_team(tempid, CS_TEAM_T)
  3638.         }
  3639.     }
  3640.    
  3641.     g_bSecondHalf = true
  3642.     return PLUGIN_HANDLED
  3643. }
  3644.  
  3645. public KnifeSwitch(WinningTeam) {  
  3646.     new players[32], pnum;
  3647.    
  3648.     switch ( WinningTeam ) {
  3649.         case T_WIN: get_players(players, pnum, "che", "TERRORIST")
  3650.         case CT_WIN: get_players(players, pnum, "che", "CT")
  3651.     }
  3652.    
  3653.     g_switchmenu = menu_create("\y[Auto-Mix]\w ?תוצובק ףילחהל הצור התא םאה", "handleSwitch")
  3654.     menu_additem(g_switchmenu, "ראשהל", "0", 0)
  3655.     menu_additem(g_switchmenu, "ףילחהל", "1", 0)
  3656.     for ( new i ; i < pnum ; i++ )
  3657.         menu_display(players[i], g_switchmenu)
  3658.     new intParam[1]
  3659.     new taskId = scanForTaskID()
  3660.     intParam[0] = WinningTeam
  3661.     set_task(8.0, "declareSwitch", taskId, intParam, 1)
  3662. }
  3663.  
  3664. public handleSwitch(id, menu, item) {
  3665.     if( item == MENU_EXIT ) {
  3666.         menu_display(id, g_switchmenu)
  3667.         return PLUGIN_HANDLED;
  3668.     }
  3669.    
  3670.     new data[6], szName[64];
  3671.     new access, callback;
  3672.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  3673.     g_switchVotes[str_to_num(data)]++
  3674.     switch ( str_to_num(data) ) {
  3675.         case 0: client_print(id, 3, "%s  :ל העיבצמ ינא ראשהל.", PREFIX)
  3676.         case 1: client_print(id, 3, "%s  :ל העיבצמ ינא ףילחהל.", PREFIX)
  3677.     }
  3678.     return PLUGIN_CONTINUE
  3679. }
  3680.  
  3681. public declareSwitch(recvParam[], prevTaskId) {
  3682.     new taskId = scanForTaskID()
  3683.    
  3684.     if ( g_switchVotes[0] > g_switchVotes[1] ) {
  3685.         client_print(0, 3, "%s תוצובק תפלחה איה האצותה ---> ראשהל.", PREFIX)
  3686.         g_Twon = false
  3687.         set_task(3.0, "SettingsAfter", taskId)
  3688.         return PLUGIN_HANDLED
  3689.     }
  3690.     else
  3691.         client_print(0, 3, "%s תוצובק תפלחה איה האצותה ---> ףילחהל.", PREFIX)
  3692.    
  3693.     g_Twon = true
  3694.    
  3695.     new playersT[32], pnumT, playersCT[32], pnumCT;
  3696.    
  3697.     get_players(playersT, pnumT, "che", "TERRORIST")
  3698.     get_players(playersCT, pnumCT, "che", "CT")
  3699.     for ( new i ; i < pnumT ; i++ )
  3700.         cs_set_user_team(playersT[i], CS_TEAM_CT)
  3701.     for ( new i ; i < pnumCT ; i++ )
  3702.         cs_set_user_team(playersCT[i], CS_TEAM_T)
  3703.     set_task(3.0, "SettingsAfter", taskId)
  3704.     return PLUGIN_CONTINUE
  3705. }
  3706.  
  3707.  
  3708. public Settings() {
  3709.     if (get_pcvar_num(cvar_KnifeRound)) {
  3710.         g_KnifeRound = true
  3711.         set_pcvar_float(cvar_mp_roundtime, 1.75)
  3712.         set_pcvar_num(cvar_mp_freezetime, 7)
  3713.         set_pcvar_float(cvar_mp_buytime, 0.1)
  3714.         client_print(0, print_chat, "%s תעכ ליחתמ םיניכס בוביס...", PREFIX)
  3715.         client_print(0, print_chat, "%s תעכ ליחתמ םיניכס בוביס...", PREFIX)
  3716.         client_print(0, print_chat, "%s תעכ ליחתמ םיניכס בוביס...", PREFIX)
  3717.         set_pcvar_num(cvar_sv_restart, 3)
  3718.         new taskId = scanForTaskID()
  3719.         set_task(4.0, "TSAYKnife", taskId)
  3720.     }
  3721.    
  3722.     else
  3723.     {
  3724.         g_KnifeRound = false
  3725.         server_cmd("exec pug.cfg")
  3726.         client_print(0, print_chat, "%s ליחתה רבכ קחשמה...", PREFIX)
  3727.         client_print(0, print_chat, "%s ליחתה רבכ קחשמה...", PREFIX)
  3728.         client_print(0, print_chat, "%s ליחתה רבכ קחשמה...", PREFIX)
  3729.         server_cmd("sv_restart 1")
  3730.         new taskId = scanForTaskID()
  3731.         set_task(2.0, "Started", taskId)
  3732.     }
  3733.    
  3734. }
  3735.  
  3736. public TSAYKnife() {
  3737.     client_cmd(0, "drop")
  3738.     set_hudmessage(255, 255, 255, 0.10, 0.68, 0, 6.0, 15.0)
  3739.     ShowSyncHudMsg(0, g_MsgSync7, "וישכע הלחה םיניכסה בוביס !בל ומיש.")
  3740. }
  3741.  
  3742. public SettingsAfter() {
  3743.     g_KnifeRound = false
  3744.     g_bCpt = false
  3745.     server_cmd("exec pug.cfg")
  3746.     client_print(0, print_chat, "%s ליחתה רבכ קחשמה...", PREFIX)
  3747.     client_print(0, print_chat, "%s ליחתה רבכ קחשמה...", PREFIX)
  3748.     client_print(0, print_chat, "%s ליחתה רבכ קחשמה...", PREFIX)
  3749.     set_pcvar_num(cvar_sv_restart, 1)
  3750.     new taskId = scanForTaskID()
  3751.     set_task(5.0, "Started", taskId)
  3752. }
  3753.  
  3754. public Started() {
  3755.     if (g_bFFoff)
  3756.         set_pcvar_num(cvar_mp_friendlyfire, 0)
  3757.     else
  3758.         set_pcvar_num(cvar_mp_friendlyfire, 1)
  3759.     set_hudmessage(255, 255, 255, 0.07, 0.69, 0, 6.0, 20.0)
  3760.     ShowSyncHudMsg(0, g_MsgSync3, "םיחדקא בוביס .וישכע ליחתמ יצחו 1 בוביס...")
  3761.    
  3762.     for ( new i ; i < gMaxPlayers ; i++ )
  3763.     {
  3764.         if ( is_user_connected(i) && cs_get_user_team(i) != CS_TEAM_SPECTATOR && !is_user_hltv(i) && !is_user_bot(i) )
  3765.             gDidPlayUntilEnd[i] = true
  3766.     }
  3767.    
  3768.     g_IsStarted = true
  3769.     g_AfterRdy = false
  3770. }
  3771.  
  3772.  
  3773. public EndMatch() {
  3774.     set_hudmessage(255, 255, 255, 0.07, 0.59, 0, 6.0, 15.0)
  3775.     ShowSyncHudMsg(0, g_MsgSync3, "!רמגנ קחשמ (%d - %d)", g_iScore[0], g_iScore[1])
  3776.     client_print(0, print_chat, "%s .תוינש 10 דועב לחי שדחה קחשמה !רמגנ קחשמ", PREFIX)
  3777.     client_print(0, print_chat, "%s !add בוש תושעלו !תדלקמה ידי לע אבה קחשמל שדחמ ףרטצהל לוכי התא", PREFIX)
  3778.     client_print(0, print_chat, "%s .תוינש 10 ךותב שדחמ לעפוי ףסות", PREFIX)
  3779.     g_Restart = true
  3780.    
  3781.     sortPoints()
  3782.    
  3783.     if ( get_pcvar_num(cvar_Rankings) )
  3784.         doRankings()
  3785.        
  3786.     new taskId = scanForTaskID()
  3787.     set_task(15.0, "MatchIsOver", taskId)
  3788. }
  3789.  
  3790. public sortPoints()
  3791. {
  3792.     for ( new i ; i < gMaxPlayers ; i++ )
  3793.     {
  3794.         if ( !is_user_connected(i) || ( g_iScore[0] != 16 && g_iScore[1] != 16 ) )
  3795.             continue;
  3796.        
  3797.         if ( gDidPlayUntilEnd[i] )
  3798.         {
  3799.             if ( get_pcvar_num(cvar_RanksSystemMessages) && get_pcvar_num(cvar_PlaysUntilEndPoints) )
  3800.                 client_print(i, print_chat, "%s םתשכר %d האלמ המאתה קחשמ תודוקנ.", PREFIX, get_pcvar_num(cvar_PlaysUntilEndPoints))
  3801.             gPoints[i] += get_pcvar_num(cvar_PlaysUntilEndPoints)
  3802.         }
  3803.            
  3804.         switch ( get_pcvar_num(cvar_TeamTag) )
  3805.         {
  3806.             case 0:
  3807.             {
  3808.                 if ( g_iScore[0] > g_iScore[1] && cs_get_user_team(i) == CS_TEAM_T )
  3809.                 {
  3810.                     if ( get_pcvar_num(cvar_RanksSystemMessages) && get_pcvar_num(cvar_WinsMatchPoints) )
  3811.                         client_print(i, print_chat, "%s םתשכר %d ןוחצינ רובע תודוקנ!", PREFIX, get_pcvar_num(cvar_WinsMatchPoints))
  3812.                     gPoints[i] += get_pcvar_num(cvar_WinsMatchPoints)
  3813.                    
  3814.                 }
  3815.                
  3816.                 else if ( g_iScore[1] > g_iScore[0] && cs_get_user_team(i) == CS_TEAM_CT )
  3817.                 {
  3818.                     if ( get_pcvar_num(cvar_RanksSystemMessages) && get_pcvar_num(cvar_WinsMatchPoints) )
  3819.                         client_print(i, print_chat, "%s םתשכר %d ןוחצינ רובע תודוקנ!", PREFIX, get_pcvar_num(cvar_WinsMatchPoints))
  3820.                     gPoints[i] += get_pcvar_num(cvar_WinsMatchPoints)
  3821.                 }
  3822.             }
  3823.            
  3824.             case 1:
  3825.             {
  3826.                 new CsTeams:team
  3827.                
  3828.                 switch ( g_Twon )
  3829.                 {
  3830.                     case 1:
  3831.                     {
  3832.                         if ( g_iScore[0] > g_iScore[1] )
  3833.                             team = CS_TEAM_T
  3834.                         else
  3835.                             team = CS_TEAM_CT
  3836.                     }
  3837.                    
  3838.                     case 0:
  3839.                     {
  3840.                         if ( g_iScore[1] > g_iScore[0] )
  3841.                             team = CS_TEAM_CT
  3842.                         else
  3843.                             team = CS_TEAM_T
  3844.                     }
  3845.                 }
  3846.                
  3847.                 if ( cs_get_user_team(i) == team )
  3848.                 {
  3849.                     if ( get_pcvar_num(cvar_RanksSystemMessages) && get_pcvar_num(cvar_WinsMatchPoints) )
  3850.                         client_print(i, print_chat, "%s םתשכר %d ןוחצינ רובע תודוקנ!", PREFIX, get_pcvar_num(cvar_WinsMatchPoints))
  3851.                     gPoints[i] += get_pcvar_num(cvar_WinsMatchPoints)
  3852.                 }
  3853.                
  3854.                 else
  3855.                 {
  3856.                     if ( get_pcvar_num(cvar_RanksSystemMessages) && get_pcvar_num(cvar_LosesMatchPoints) )
  3857.                         client_print(i, print_chat, "%s תדביא %d דספה רובע תודוקנ!", PREFIX, get_pcvar_num(cvar_LosesMatchPoints))
  3858.                     gPoints[i] -= get_pcvar_num(cvar_LosesMatchPoints)
  3859.                 }
  3860.             }
  3861.         }
  3862.        
  3863.         SaveStats(i)
  3864.     }
  3865. }      
  3866.  
  3867. public doRankings()
  3868. {
  3869.     new KillerName[256], DeathsName[256], BombPName[256], BombDName[256]
  3870.     new players[32], pnum, tempid
  3871.     new topKillerID, topDeathsID, topBombPID, topBombDID
  3872.     new topKills, topDeaths, topBombP, topBombD
  3873.     new winningTeam[65]
  3874.     get_players(players, pnum, "ch")
  3875.    
  3876.     switch ( get_pcvar_num(cvar_TeamTag) )
  3877.     {
  3878.         case 0:
  3879.         {
  3880.             if ( g_iScore[0] > g_iScore[1] )
  3881.                 format(winningTeam, charsmax(winningTeam), "The Terrorists Team")
  3882.             else
  3883.                 format(winningTeam, charsmax(winningTeam), "The CT Team")
  3884.         }
  3885.        
  3886.         case 1:
  3887.         {
  3888.             switch ( g_Twon )
  3889.             {
  3890.                 case 1:
  3891.                 {
  3892.                     if ( g_iScore[g_bSecondHalf ? 0 : 1] > g_iScore[g_bSecondHalf ? 1 : 0] )
  3893.                         format(winningTeam, charsmax(winningTeam), "Team A")
  3894.                     else
  3895.                         format(winningTeam, charsmax(winningTeam), "Team B")
  3896.                 }
  3897.                
  3898.                 case 0:
  3899.                 {
  3900.                     if ( g_iScore[g_bSecondHalf ? 1 : 0] > g_iScore[g_bSecondHalf ? 0 : 1] )
  3901.                         format(winningTeam, charsmax(winningTeam), "Team A")
  3902.                     else
  3903.                         format(winningTeam, charsmax(winningTeam), "Team B")
  3904.                 }
  3905.             }
  3906.         }
  3907.     }
  3908.                
  3909.            
  3910.     for ( new i ; i < pnum ; i++ )
  3911.     {
  3912.         tempid = players[i]
  3913.        
  3914.         if ( g_TotalKills[tempid] >= topKills && g_TotalKills[tempid] )
  3915.         {
  3916.             topKills = g_TotalKills[tempid]
  3917.             topKillerID = tempid
  3918.         }
  3919.        
  3920.         if ( g_TotalDeaths[tempid] >= topDeaths && g_TotalDeaths[tempid] )
  3921.         {
  3922.             topDeaths = g_TotalDeaths[tempid]
  3923.             topDeathsID = tempid
  3924.         }
  3925.        
  3926.         if ( g_BombPlants[tempid] >= topBombP && g_BombPlants[tempid] )
  3927.         {
  3928.             topBombP = g_BombPlants[tempid]
  3929.             topBombPID = tempid
  3930.         }
  3931.        
  3932.         if ( g_BombDefusions[tempid] >= topBombD && g_BombDefusions[tempid] )
  3933.         {
  3934.             topBombD = g_BombDefusions[tempid]
  3935.             topBombDID = tempid
  3936.         }
  3937.     }
  3938.    
  3939.     if ( 1 <= topKillerID <= gMaxPlayers )
  3940.         get_user_name(topKillerID, KillerName, charsmax(KillerName))
  3941.     if ( 1 <= topDeathsID <= gMaxPlayers )
  3942.         get_user_name(topDeathsID, DeathsName, charsmax(DeathsName))
  3943.     if ( 1 <= topBombPID <= gMaxPlayers )
  3944.         get_user_name(topBombPID, BombPName, charsmax(BombPName))
  3945.     if ( 1 <= topBombDID <= gMaxPlayers )
  3946.         get_user_name(topBombDID, BombDName, charsmax(BombDName))
  3947.    
  3948.     for ( new i ; i < pnum ; i++ )
  3949.     {
  3950.         tempid = players[i]
  3951.        
  3952.         if ( g_TotalKills[tempid] == topKills && tempid != topKillerID && g_TotalKills[tempid]  )
  3953.         {
  3954.             new lineToAdd[65] = ", "
  3955.             new pName[64]
  3956.             get_user_name(tempid, pName, charsmax(pName))
  3957.             add(lineToAdd, charsmax(lineToAdd), pName)
  3958.             add(KillerName, charsmax(KillerName) - strlen(BombDName) , lineToAdd)
  3959.         }
  3960.        
  3961.         if ( g_TotalDeaths[tempid] == topDeaths && tempid != topDeathsID && g_TotalDeaths[tempid]  )
  3962.         {
  3963.             new lineToAdd[65] = ", "
  3964.             new pName[64]
  3965.             get_user_name(tempid, pName, charsmax(pName))
  3966.             add(lineToAdd, charsmax(lineToAdd), pName)
  3967.             add(DeathsName, charsmax(DeathsName) - strlen(DeathsName) , lineToAdd)
  3968.         }
  3969.        
  3970.         if ( g_BombPlants[tempid] == topBombP && tempid != topBombPID && g_BombPlants[tempid]  )
  3971.         {
  3972.             new lineToAdd[65] = ", "
  3973.             new pName[64]
  3974.             get_user_name(tempid, pName, charsmax(pName))
  3975.             add(lineToAdd, charsmax(lineToAdd), pName)
  3976.             add(BombPName, charsmax(BombPName) - strlen(BombPName) , lineToAdd)
  3977.         }
  3978.        
  3979.         if ( g_BombDefusions[tempid] == topBombD && tempid != topBombDID && g_BombDefusions[tempid]  )
  3980.         {
  3981.             new lineToAdd[65] = ", "
  3982.             new pName[64]
  3983.             get_user_name(tempid, pName, charsmax(pName))
  3984.             add(lineToAdd, charsmax(lineToAdd), pName)
  3985.             add(BombDName, charsmax(BombDName) - strlen(BombDName) , lineToAdd)
  3986.         }
  3987.     }
  3988.    
  3989.    
  3990.     new msgToDisplay[456] = "גוריד ןקחש םאתה^n-----------------------------^n^n%s !קחשמ הכז^n^nתוגירה הלעמל - %s [%d גרוה]^nתוומ הלעמל - %s [%d תוומ ירקמ]^nהלעמל םיחמצ הצצפ - %s [%d םיחמצ הצצפ]^nDefusion הלעמל הצצפ - %s [%d Defusion הצצפ]^nםילע גאפ - %d"
  3991.     format(msgToDisplay, charsmax(msgToDisplay), msgToDisplay, winningTeam, strlen(KillerName) ? KillerName : "NONE", topKills, strlen(DeathsName) ? DeathsName : "NONE", topDeaths,
  3992.             strlen(BombPName) ? BombPName : "NONE", topBombP, strlen(BombDName) ? BombDName : "NONE", topBombD, g_PugLeaves)
  3993.            
  3994.     new taskId = scanForTaskID()
  3995.     set_task(1.0, "displayRankingTable", taskId, msgToDisplay, strlen(msgToDisplay), "b")
  3996. }
  3997.  
  3998. public displayRankingTable(msgToDisplay[], taskId)
  3999. {
  4000.     set_hudmessage(135, 135, 135, 0.35, 0.21, 1, 6.0, 1.0)
  4001.     show_hudmessage(0, msgToDisplay)
  4002. }
  4003.  
  4004. public MatchIsOver()
  4005.     server_cmd("restart")
  4006.    
  4007. public player(id) {
  4008.     if (g_bCpt) {
  4009.         client_print(id, print_chat, "%s !וישכע טירפתה תא חותפל לוכי אל התא", PREFIX)
  4010.         return PLUGIN_HANDLED
  4011.     }
  4012.    
  4013.     g_pVote = menu_create("\r :םינקחש טירפת", "pmenu")
  4014.    
  4015.     menu_additem(g_pVote, "תודוקפ תגצה", "1", 0)
  4016.    
  4017.     if (g_IsStarted) {
  4018.         menu_additem(g_pVote, "\dBe Ready", "2", 0)
  4019.         menu_additem(g_pVote, "\dUn Ready", "3", 0)
  4020.     }
  4021.    
  4022.     else if (g_bIsReady[id]) {
  4023.         menu_additem(g_pVote, "\dBe Ready", "2", 0)
  4024.         menu_additem(g_pVote, "Un Ready", "3", 0)
  4025.     }
  4026.    
  4027.     else {
  4028.         menu_additem(g_pVote, "Be Ready", "2", 0)
  4029.         menu_additem(g_pVote, "\dUn Ready", "3", 0)
  4030.     }
  4031.    
  4032.     menu_additem(g_pVote, "ןקחשה תא קיתשהל", "4", 0 )
  4033.     menu_additem(g_pVote, "םינקחשה לש תוגרדה תמישר", "5", 0)
  4034.     menu_additem(g_pVote, "\yדומה רצוי", "6", 0)   
  4035.     menu_display(id, g_pVote)
  4036.     return PLUGIN_CONTINUE
  4037. }
  4038.  
  4039. public pmenu(id, menu, item) {
  4040.     if( item == MENU_EXIT )
  4041.         return PLUGIN_HANDLED;
  4042.  
  4043.     new data[6], iName[64];
  4044.     new access, callback;
  4045.     menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
  4046.     new key = str_to_num(data)
  4047.     new playername[32]
  4048.     get_user_name(id, playername, 31)
  4049.    
  4050.     switch(key) {
  4051.         case 1: cmds(id)
  4052.         case 2: {
  4053.             if (g_IsStarted || g_bIsReady[id]) {
  4054.                 client_print(id, print_chat, "%s !הנימז הניא וז תורשפא", PREFIX)
  4055.                 player(id)
  4056.                 return PLUGIN_HANDLED
  4057.             }
  4058.            
  4059.             else {
  4060.                 Prepare(id)
  4061.                 return PLUGIN_HANDLED
  4062.             }
  4063.            
  4064.         }
  4065.        
  4066.         case 3: {
  4067.             if (g_bIsReady[id])
  4068.             {
  4069.                 if (g_IsStarted)
  4070.                 {
  4071.                     client_print(id, print_chat, "%s !הנימז הניא וז תורשפא", PREFIX)
  4072.                     menu_display(id, g_pVote)
  4073.                     return PLUGIN_HANDLED
  4074.                 }
  4075.                
  4076.                 unPrepare(id)
  4077.                 return PLUGIN_HANDLED
  4078.             }
  4079.                
  4080.             client_print(id, print_chat, "%s !הנימז הניא וז תורשפא", PREFIX)
  4081.             player(id)
  4082.             return PLUGIN_HANDLED
  4083.         }
  4084.        
  4085.         case 4: {
  4086.             display_mutemenu(id, g_menuposition[id] = 0)
  4087.             return PLUGIN_HANDLED
  4088.         }
  4089.        
  4090.         case 5:
  4091.         {
  4092.             if ( !get_pcvar_num(cvar_RanksSystem) )
  4093.             {
  4094.                 client_print(id, print_chat, "%s !הז תרשב ןימז רבכ תכרעמה גרדמ הנוכת", PREFIX)
  4095.                 player(id)
  4096.                 return PLUGIN_HANDLED
  4097.             }
  4098.             showRanks(id)
  4099.             return PLUGIN_HANDLED
  4100.         }
  4101.        
  4102.         case 6: credits(id)
  4103.     }
  4104.            
  4105.     player(id) 
  4106.     return PLUGIN_HANDLED
  4107. }
  4108.  
  4109. public get_pug_state() {
  4110.         new file = fopen(gPug_ini_file, "r")
  4111.         fseek(file, -1, SEEK_END)
  4112.         new getchar = fgetc(file)
  4113.         fclose(file)
  4114.         return getchar - '0'
  4115. }
  4116.  
  4117. public set_pug_state(iState) {
  4118.         new file = fopen(gPug_ini_file, "w")
  4119.         fseek(file, -1, SEEK_END)
  4120.         fputc(file, iState + '0')
  4121.         fclose(file)
  4122. }
  4123.  
  4124.  
  4125. stock replace_it(string[], len, const what[], const with[])  {
  4126.     new pos = 0;
  4127.      
  4128.     if ((pos = contain(string, what)) == -1)
  4129.     {
  4130.         return 0;
  4131.     }
  4132.      
  4133.     new total = 0;
  4134.     new with_len = strlen(with);
  4135.     new diff = strlen(what) - with_len;
  4136.     new total_len = strlen(string);
  4137.     new temp_pos = 0;
  4138.      
  4139.     while (replace(string[pos], len - pos, what, with) != 0)
  4140.     {
  4141.         total++;
  4142.         pos += with_len;  
  4143.         total_len -= diff;
  4144.          
  4145.         if (pos >= total_len)
  4146.             break;
  4147.         temp_pos = contain(string[pos], what);
  4148.          
  4149.         if (temp_pos == -1)
  4150.             break;
  4151.         pos += temp_pos;
  4152.     }
  4153.     return total;
  4154. }
  4155.  
  4156. clear_list(id) {
  4157.     for(new i = 0; i <= g_maxclients; ++i)
  4158.         g_mute[id][i] = false
  4159. }
  4160.  
  4161. public clcmd_say(id) {
  4162.     static say_args[10]
  4163.     read_args(say_args, 9)
  4164.     remove_quotes(say_args)
  4165.    
  4166.     if ( gChanging && 1 <= gChangerID <= gMaxPlayers && id == gChangerID )
  4167.     {
  4168.         new enteredValue = str_to_num(say_args)
  4169.        
  4170.         if ( enteredValue < 0 )
  4171.         {
  4172.             client_print(id, print_chat, "%s !יבויח ךרע ןיזהל ךילע", PREFIX)
  4173.             return PLUGIN_HANDLED
  4174.         }
  4175.        
  4176.         switch ( gChanging )
  4177.         {
  4178.             case 1: set_pcvar_num(cvar_KillPoints, enteredValue)
  4179.             case 2: set_pcvar_num(cvar_KnifePoints, enteredValue)
  4180.             case 3: set_pcvar_num(cvar_WinsMatchPoints, enteredValue)
  4181.             case 4: set_pcvar_num(cvar_PlaysUntilEndPoints, enteredValue)
  4182.             case 5: set_pcvar_num(cvar_LeavesMatchPoints, enteredValue)
  4183.             case 6: set_pcvar_num(cvar_LeavesMatchTime, enteredValue)
  4184.             case 7: set_pcvar_num(cvar_TeamKillPoints, enteredValue)
  4185.             case 8: set_pcvar_num(cvar_BombPlantPoints, enteredValue)
  4186.             case 9: set_pcvar_num(cvar_BombDefusePoints, enteredValue)
  4187.             case 10: set_pcvar_num(cvar_KillLosePoints, enteredValue)
  4188.             case 11: set_pcvar_num(cvar_KnifeLosePoints, enteredValue)
  4189.             case 12: set_pcvar_num(cvar_LosesMatchPoints, enteredValue)
  4190.         }
  4191.        
  4192.         show_menu(id, 0, "^n", 0)
  4193.         gChanging = 0
  4194.         gChangerID = 0
  4195.         PointsPricesMenu(id)
  4196.         return PLUGIN_HANDLED
  4197.     }
  4198.    
  4199.     else if ( gChanging2 && 1 <= gChangerID2 <= gMaxPlayers && id == gChangerID2 )
  4200.     {
  4201.         new enteredValue = str_to_num(say_args)
  4202.        
  4203.         if ( enteredValue < 0 )
  4204.         {
  4205.             client_print(id, print_chat, "%s !יבויח ךרע ןיזהל ךילע", PREFIX)
  4206.             return PLUGIN_HANDLED
  4207.         }
  4208.        
  4209.         switch ( gChanging )
  4210.         {
  4211.             case 1: set_pcvar_num(cvar_BeginnerPoints, enteredValue)
  4212.             case 2: set_pcvar_num(cvar_RegularPoints, enteredValue)
  4213.             case 3: set_pcvar_num(cvar_VeteranPoints, enteredValue)
  4214.             case 4: set_pcvar_num(cvar_ProPoints, enteredValue)
  4215.             case 5: set_pcvar_num(cvar_HardCorePoints, enteredValue)
  4216.         }
  4217.        
  4218.         show_menu(id, 0, "^n", 0)
  4219.         gChanging2 = 0
  4220.         gChangerID2 = 0
  4221.         RanksPricesMenu(id)
  4222.         return PLUGIN_HANDLED
  4223.     }
  4224.    
  4225.     if(say_args[0] == '!' && containi(say_args, "mute") != -1)
  4226.     {
  4227.         if ( !get_pcvar_num(cvar_MuteMenu) )
  4228.         {
  4229.             client_print(id, print_chat, "%s !תלטובמ םליא טירפתה תורשפא", PREFIX)
  4230.             return PLUGIN_HANDLED
  4231.         }
  4232.        
  4233.         display_mutemenu(id, g_menuposition[id] = 0)
  4234.         return PLUGIN_HANDLED_MAIN
  4235.     }
  4236.     return PLUGIN_CONTINUE
  4237. }
  4238.  
  4239. public fwd_voice_setclientlistening(receiver, sender, listen)
  4240. {
  4241.     if(receiver == sender)
  4242.         return FMRES_IGNORED
  4243.        
  4244.     if(g_mute[receiver][sender]) {
  4245.         engfunc(EngFunc_SetClientListening, receiver, sender, 0)
  4246.         return FMRES_SUPERCEDE
  4247.     }
  4248.     return FMRES_IGNORED
  4249. }
  4250.  
  4251. display_mutemenu(id, pos)  {
  4252.     if(pos < 0)  
  4253.         return
  4254.        
  4255.     static team[11]
  4256.     get_user_team(id, team, 10)
  4257.    
  4258.     new at = get_pcvar_num(cvar_alltalk)
  4259.     get_players(g_menuplayers[id], g_playersnum[id],
  4260.     at ? "c" : "ce", at ? "" : team)
  4261.  
  4262.     new start = pos * 8
  4263.     if(start >= g_playersnum[id])
  4264.             start = pos = g_menuposition[id]
  4265.  
  4266.     new end = start + 8
  4267.     if(end > g_playersnum[id])
  4268.             end = g_playersnum[id]
  4269.    
  4270.     static menubody[512]   
  4271.     set_hudmessage(0, 255, 0, -1.0, -1.0)
  4272.     show_hudmessage(id, "<Hudmessage>")
  4273.     new len = format(menubody, 511, "\r%s \wטירפתה קתשה^n^n", PREFIX)
  4274.  
  4275.     static name[32]
  4276.    
  4277.     new b = 0, i
  4278.     new keys = MENU_KEY_0
  4279.    
  4280.     for(new a = start; a < end; ++a)
  4281.     {
  4282.             i = g_menuplayers[id][a]
  4283.             get_user_name(i, name, 31)
  4284.        
  4285.         if(i == id)
  4286.         {
  4287.             ++b
  4288.             len += format(menubody[len], 511 - len, "\d# Auto-Mix ידי לע p1Mp\w^n")
  4289.         }
  4290.         else
  4291.         {
  4292.             keys |= (1<<b)
  4293.             len += format(menubody[len], 511 - len, "\w%d. %s %s\w^n", ++b, name, g_mute[id][i] ? "\r(קתשומ)" : "")
  4294.         }
  4295.     }
  4296.  
  4297.     if(end != g_playersnum[id])
  4298.     {
  4299.             format(menubody[len], 511 - len, "^n9. %s...^n0. %s", "רתוי", pos ? "הרזחב" : "האיצי")
  4300.             keys |= MENU_KEY_9
  4301.     }
  4302.     else
  4303.         format(menubody[len], 511-len, "^n0. %s", pos ? "הרזחב" : "האיצי")
  4304.    
  4305.     show_menu(id, keys, menubody, -1, "mute menu")
  4306. }
  4307.  
  4308. public action_mutemenu(id, key)
  4309. {
  4310.     switch(key)
  4311.     {
  4312.             case 8: display_mutemenu(id, ++g_menuposition[id])
  4313.         case 9: display_mutemenu(id, --g_menuposition[id])
  4314.             default:
  4315.         {
  4316.             new player = g_menuplayers[id][g_menuposition[id] * 8 + key]
  4317.            
  4318.             g_mute[id][player] = g_mute[id][player] ? false : true
  4319.             display_mutemenu(id, g_menuposition[id])
  4320.            
  4321.             static name[32]
  4322.             get_user_name(player, name, 31)
  4323.             client_print(id, print_chat, "ךל שי %sקתשומ %s", g_mute[id][player] ? "" : "un", name)
  4324.             }
  4325.     }
  4326.     return PLUGIN_HANDLED
  4327. }
  4328.  
  4329. public showRanks(id)
  4330. {
  4331.     if ( !is_user_connected(id) || is_user_bot(id) || is_user_hltv(id) )
  4332.         return PLUGIN_HANDLED
  4333.        
  4334.     if ( !get_pcvar_num(cvar_RanksSystem) )
  4335.     {
  4336.         client_print(id, print_chat, "%s !הז תרשב ןימז רבכ תכרעמה גרדמ הנוכת")
  4337.         return PLUGIN_HANDLED
  4338.     }
  4339.        
  4340.     new menu = menu_create("\y[Auto-Mix]\w  :תוגרד תמישר םינקחשה", "ranksMenuHandler")
  4341.    
  4342.     new players[32], pnum, tempid
  4343.     get_players(players, pnum, "ch")
  4344.    
  4345.     for ( new i ; i < pnum ; i++ )
  4346.     {
  4347.         tempid = players[i]
  4348.        
  4349.         new szId[5]
  4350.         new pName[64], lineToDisplay[128] = "%s -\r "
  4351.         num_to_str(tempid, szId, charsmax(szId))
  4352.         get_user_name(tempid, pName, charsmax(pName))
  4353.         format(lineToDisplay, charsmax(lineToDisplay), lineToDisplay, pName)
  4354.        
  4355.         if ( gPoints[tempid] < get_pcvar_num(cvar_BeginnerPoints) )
  4356.             add(lineToDisplay, charsmax(lineToDisplay), "Beginner\w")
  4357.         else if ( gPoints[tempid] < get_pcvar_num(cvar_RegularPoints) )
  4358.             add(lineToDisplay, charsmax(lineToDisplay), "Regular\w")
  4359.         else if ( gPoints[tempid] < get_pcvar_num(cvar_VeteranPoints) )
  4360.             add(lineToDisplay, charsmax(lineToDisplay), "Veteran\w")
  4361.         else if ( gPoints[tempid] < get_pcvar_num(cvar_ProPoints) )
  4362.             add(lineToDisplay, charsmax(lineToDisplay), "Professional\w")
  4363.         else if ( gPoints[tempid] < get_pcvar_num(cvar_HardCorePoints) )
  4364.             add(lineToDisplay, charsmax(lineToDisplay), "Hardcore\w")
  4365.         else
  4366.             add(lineToDisplay, charsmax(lineToDisplay), "Champion\w")
  4367.        
  4368.         menu_additem(menu, lineToDisplay, szId, 0)
  4369.     }
  4370.    
  4371.     menu_display(id, menu)
  4372.     return PLUGIN_HANDLED
  4373. }  
  4374.  
  4375. public ranksMenuHandler(id, menu, item)  {
  4376.     if( item == MENU_EXIT )
  4377.         return PLUGIN_HANDLED
  4378.    
  4379.     new data[6], iName[64]
  4380.     new access, callback
  4381.     menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
  4382.     new pickedId = str_to_num(data)
  4383.    
  4384.     if ( !is_user_connected(pickedId) )
  4385.         return PLUGIN_HANDLED
  4386.        
  4387.     new pName[64]
  4388.     get_user_name(pickedId, pName, charsmax(pName))
  4389.     new menuToDisplay[248] = "\y[Auto-Mix]\r %s\w's  :הקיטסיטטס^n^n:תודוקנ %s^n:גרדל:\r %s\w (\r%s\w)^n^n^n\r0.\w הרזחב"
  4390.     new lineToAdd[32]
  4391.     new keys = MENU_KEY_0
  4392.    
  4393.     if ( gPoints[pickedId] < get_pcvar_num(cvar_BeginnerPoints) )
  4394.         format(lineToAdd, charsmax(lineToAdd), "%d\r /\w %d", gPoints[pickedId], get_pcvar_num(cvar_BeginnerPoints))
  4395.     else if ( gPoints[pickedId] < get_pcvar_num(cvar_RegularPoints) )
  4396.         format(lineToAdd, charsmax(lineToAdd), "%d\r /\w %d", gPoints[pickedId], get_pcvar_num(cvar_RegularPoints))
  4397.     else if ( gPoints[pickedId] < get_pcvar_num(cvar_VeteranPoints) )
  4398.         format(lineToAdd, charsmax(lineToAdd), "%d\r /\w %d", gPoints[pickedId], get_pcvar_num(cvar_VeteranPoints))
  4399.     else if ( gPoints[pickedId] < get_pcvar_num(cvar_ProPoints) )
  4400.         format(lineToAdd, charsmax(lineToAdd), "%d\r /\w %d", gPoints[pickedId], get_pcvar_num(cvar_ProPoints))
  4401.     else if ( gPoints[pickedId] < get_pcvar_num(cvar_HardCorePoints) )
  4402.         format(lineToAdd, charsmax(lineToAdd), "%d\r /\w %d", gPoints[pickedId], get_pcvar_num(cvar_HardCorePoints))
  4403.     else
  4404.         format(lineToAdd, charsmax(lineToAdd), "%d", gPoints[pickedId])
  4405.    
  4406.     if ( gPoints[pickedId] < get_pcvar_num(cvar_BeginnerPoints) )
  4407.         format(menuToDisplay, charsmax(menuToDisplay), menuToDisplay, pName, lineToAdd, "Beginner", "1")
  4408.     else if ( gPoints[pickedId] < get_pcvar_num(cvar_RegularPoints) )
  4409.         format(menuToDisplay, charsmax(menuToDisplay), menuToDisplay, pName, lineToAdd, "Regular", "2")
  4410.     else if ( gPoints[pickedId] < get_pcvar_num(cvar_VeteranPoints) )
  4411.         format(menuToDisplay, charsmax(menuToDisplay), menuToDisplay, pName, lineToAdd, "Veteran", "3")
  4412.     else if ( gPoints[pickedId] < get_pcvar_num(cvar_ProPoints) )
  4413.         format(menuToDisplay, charsmax(menuToDisplay), menuToDisplay, pName, lineToAdd, "Professional", "4")
  4414.     else if ( gPoints[pickedId] < get_pcvar_num(cvar_HardCorePoints) )
  4415.         format(menuToDisplay, charsmax(menuToDisplay), menuToDisplay, pName, lineToAdd, "Hardcore", "5")
  4416.     else
  4417.         format(menuToDisplay, charsmax(menuToDisplay), menuToDisplay, pName, lineToAdd, "Champion", "MAX")
  4418.    
  4419.     show_menu(id, keys, menuToDisplay, -1, "ranks info")
  4420.     return PLUGIN_HANDLED
  4421. }
  4422.  
  4423. public ranks_showInfo(id, key)
  4424. {
  4425.     showRanks(id)
  4426.     return PLUGIN_HANDLED
  4427. }
  4428.    
  4429. public checkPlayers() {
  4430.     new players[32], pnum
  4431.     get_players(players, pnum, "ch")
  4432.    
  4433.     if ( !pnum )
  4434.         return PLUGIN_HANDLED
  4435.        
  4436.     if (!g_IsStarted || !get_pcvar_num(cvar_AFKKick) )
  4437.     return PLUGIN_HANDLED
  4438.    
  4439.     for (new i = 1; i <= get_maxplayers(); i++) {
  4440.         if (is_user_alive(i) && is_user_connected(i) && !is_user_bot(i) && !is_user_hltv(i) && g_spawned[i]) {
  4441.             new newangle[3]
  4442.             get_user_origin(i, newangle)
  4443.  
  4444.             if ( newangle[0] == g_oldangles[i][0] && newangle[1] == g_oldangles[i][1] && newangle[2] == g_oldangles[i][2] ) {
  4445.                 g_afktime[i] += CHECK_FREQ
  4446.                 check_afktime(i)
  4447.             } else {
  4448.                 g_oldangles[i][0] = newangle[0]
  4449.                 g_oldangles[i][1] = newangle[1]
  4450.                 g_oldangles[i][2] = newangle[2]
  4451.                 g_afktime[i] = 0
  4452.             }
  4453.         }
  4454.     }
  4455.     return PLUGIN_HANDLED
  4456. }
  4457.  
  4458. check_afktime(id) {
  4459.     new numplayers = get_playersnum()
  4460.     new minplayers = get_cvar_num("mp_afkminplayers")
  4461.                    
  4462.     if (numplayers >= minplayers) {
  4463.         new maxafktime = get_cvar_num("mp_afktime")
  4464.         if (maxafktime < MIN_AFK_TIME) {
  4465.             log_amx("cvar mp_afktime %i is too low. Minimum value is %i.", maxafktime, MIN_AFK_TIME)
  4466.             maxafktime = MIN_AFK_TIME
  4467.             set_cvar_num("mp_afktime", MIN_AFK_TIME)
  4468.         }
  4469.  
  4470.         if ( maxafktime-WARNING_TIME <= g_afktime[id] < maxafktime) {
  4471.             new timeleft = maxafktime - g_afktime[id]
  4472.             client_print(id, print_chat, "%s You have %i seconds to move or you will be kicked for being AFK", PREFIX, timeleft)
  4473.         } else if (g_afktime[id] > maxafktime) {
  4474.             new name[32]
  4475.             get_user_name(id, name, 31)
  4476.             client_print(0, print_chat, "%s %s was kicked for being AFK longer than %i seconds", PREFIX, name, maxafktime)
  4477.             log_amx("%s was kicked for being AFK longer than %i seconds", name, maxafktime)
  4478.             server_cmd("kick #%d ^"%s You were kicked for being AFK longer than %i seconds^"", get_user_userid(id), PREFIX, maxafktime)
  4479.         }
  4480.     }
  4481. }
  4482.  
  4483. public playerSpawned(id) {
  4484.     g_spawned[id] = false
  4485.     new sid[1]
  4486.     sid[0] = id
  4487.     set_task(0.75, "delayedSpawn",_, sid, 1)    // Give the player time to drop to the floor when spawning
  4488.     return PLUGIN_HANDLED
  4489. }
  4490.  
  4491. public delayedSpawn(sid[]) {
  4492.     get_user_origin(sid[0], g_oldangles[sid[0]])
  4493.     g_spawned[sid[0]] = true
  4494.     return PLUGIN_HANDLED
  4495. }
  4496.  
  4497. scanForTaskID()
  4498. {
  4499.     for ( new i = 1337 ; i < 1337*2 ; i++ )
  4500.     {
  4501.         if ( !task_exists(i) )
  4502.             return i
  4503.     }
  4504.    
  4505.     log_amx("Auto-Mix Task ID Error! Couldn't find a TASK ID!")
  4506.     return 0
  4507. }
  4508.  
  4509. removeAllTasks()
  4510. {
  4511.     for ( new i = 1337 ; i < 1337*2 ; i++ )
  4512.     {
  4513.         if ( task_exists(i) )
  4514.             remove_task(i)
  4515.     }
  4516. }
  4517.  
  4518. /*============================================================
  4519. ===                Color Chat Include                      ===
  4520. ============================================================*/
  4521.  
  4522. /* ColorChat Support */
  4523. #define NORMAL DontChange
  4524. #define GREEN DontChange
  4525. #define TEAM_COLOR DontChange
  4526. #define RED Red
  4527. #define BLUE Blue
  4528. #define GREY Grey
  4529. #define ColorChat client_print_color
  4530. /* ColorChat Support */
  4531.  
  4532. enum _:Colors {
  4533.     DontChange,
  4534.     Red,
  4535.     Blue,
  4536.     Grey
  4537. }
  4538.  
  4539. stock const g_g_szTeamName[Colors][] =
  4540. {
  4541.     "UNASSIGNED",
  4542.     "TERRORIST",
  4543.     "CT",
  4544.     "SPECTATOR"
  4545. }
  4546.  
  4547. stock client_print_color(id, iColor=DontChange, const szMsg[], any:...)
  4548. {
  4549.     // check if id is different from 0
  4550.     if( id && !is_user_connected(id) )
  4551.     {
  4552.         return 0;
  4553.     }
  4554.  
  4555.     if( iColor > Grey )
  4556.     {
  4557.         iColor = DontChange;
  4558.     }
  4559.  
  4560.     new szMessage[192];
  4561.     if( iColor == DontChange )
  4562.     {
  4563.         szMessage[0] = 0x04;
  4564.     }
  4565.     else
  4566.     {
  4567.         szMessage[0] = 0x03;
  4568.     }
  4569.  
  4570.     new iParams = numargs();
  4571.     // Specific player code
  4572.     if(id)
  4573.     {
  4574.         if( iParams == 3 )
  4575.         {
  4576.             copy(szMessage[1], charsmax(szMessage)-1, szMsg);
  4577.         }
  4578.         else
  4579.         {
  4580.             vformat(szMessage[1], charsmax(szMessage)-1, szMsg, 4);
  4581.         }
  4582.  
  4583.         if( iColor )
  4584.         {
  4585.             new szTeam[11]; // store current team so we can restore it
  4586.             get_user_team(id, szTeam, charsmax(szTeam));
  4587.  
  4588.             // set id TeamInfo in consequence
  4589.             // so SayText msg gonna show the right color
  4590.             Send_TeamInfo(id, id, g_g_szTeamName[iColor]);
  4591.  
  4592.             // Send the message
  4593.             Send_SayText(id, id, szMessage);
  4594.  
  4595.             // restore TeamInfo
  4596.             Send_TeamInfo(id, id, szTeam);
  4597.         }
  4598.         else
  4599.         {
  4600.             Send_SayText(id, id, szMessage);
  4601.         }
  4602.     }
  4603.  
  4604.     // Send message to all players
  4605.     else
  4606.     {
  4607.         // Figure out if at least 1 player is connected
  4608.         // so we don't send useless message if not
  4609.         // and we gonna use that player as team reference (aka SayText message sender) for color change
  4610.         new iPlayers[32], iNum;
  4611.         get_players(iPlayers, iNum, "ch");
  4612.         if( !iNum )
  4613.         {
  4614.             return 0;
  4615.         }
  4616.  
  4617.         new iFool = iPlayers[0];
  4618.  
  4619.         new iMlNumber, i, j;
  4620.         new Array:aStoreML = ArrayCreate();
  4621.         if( iParams >= 5 ) // ML can be used
  4622.         {
  4623.             for(j=4; j<iParams; j++)
  4624.             {
  4625.                 // retrieve original param value and check if it's LANG_PLAYER value
  4626.                 if( getarg(j) == LANG_PLAYER )
  4627.                 {
  4628.                     i=0;
  4629.                     // as LANG_PLAYER == -1, check if next parm string is a registered language translation
  4630.                     while( ( szMessage[ i ] = getarg( j + 1, i++ ) ) ) {}
  4631.                     if( GetLangTransKey(szMessage) != TransKey_Bad )
  4632.                     {
  4633.                         // Store that arg as LANG_PLAYER so we can alter it later
  4634.                         ArrayPushCell(aStoreML, j++);
  4635.  
  4636.                         // Update ML array saire so we'll know 1st if ML is used,
  4637.                         // 2nd how many args we have to alterate
  4638.                         iMlNumber++;
  4639.                     }
  4640.                 }
  4641.             }
  4642.         }
  4643.  
  4644.         // If arraysize == 0, ML is not used
  4645.         // we can only send 1 MSG_BROADCAST message
  4646.         if( !iMlNumber )
  4647.         {
  4648.             if( iParams == 3 )
  4649.             {
  4650.                 copy(szMessage[1], charsmax(szMessage)-1, szMsg);
  4651.             }
  4652.             else
  4653.             {
  4654.                 vformat(szMessage[1], charsmax(szMessage)-1, szMsg, 4);
  4655.             }
  4656.  
  4657.             if( iColor )
  4658.             {
  4659.                 new szTeam[11];
  4660.                 get_user_team(iFool, szTeam, charsmax(szTeam));
  4661.                 Send_TeamInfo(0, iFool, g_g_szTeamName[iColor]);
  4662.                 Send_SayText(0, iFool, szMessage);
  4663.                 Send_TeamInfo(0, iFool, szTeam);
  4664.             }
  4665.             else
  4666.             {
  4667.                 Send_SayText(0, iFool, szMessage);
  4668.             }
  4669.         }
  4670.  
  4671.         // ML is used, we need to loop through all players,
  4672.         // format text and send a MSG_ONE_UNRELIABLE SayText message
  4673.         else
  4674.         {
  4675.             new szTeam[11], szFakeTeam[10];
  4676.            
  4677.             if( iColor )
  4678.             {
  4679.                 get_user_team(iFool, szTeam, charsmax(szTeam));
  4680.                 copy(szFakeTeam, charsmax(szFakeTeam), g_g_szTeamName[iColor]);
  4681.             }
  4682.  
  4683.             for( i = 0; i < iNum; i++ )
  4684.             {
  4685.                 id = iPlayers[i];
  4686.  
  4687.                 for(j=0; j<iMlNumber; j++)
  4688.                 {
  4689.                     // Set all LANG_PLAYER args to player index ( = id )
  4690.                     // so we can format the text for that specific player
  4691.                     setarg(ArrayGetCell(aStoreML, j), _, id);
  4692.                 }
  4693.  
  4694.                 // format string for specific player
  4695.                 vformat(szMessage[1], charsmax(szMessage)-1, szMsg, 4);
  4696.  
  4697.                 if( iColor )
  4698.                 {
  4699.                     Send_TeamInfo(id, iFool, szFakeTeam);
  4700.                     Send_SayText(id, iFool, szMessage);
  4701.                     Send_TeamInfo(id, iFool, szTeam);
  4702.                 }
  4703.                 else
  4704.                 {
  4705.                     Send_SayText(id, iFool, szMessage);
  4706.                 }
  4707.             }
  4708.             ArrayDestroy(aStoreML);
  4709.         }
  4710.     }
  4711.     return 1;
  4712. }
  4713.  
  4714. stock Send_TeamInfo(iReceiver, iPlayerId, szTeam[])
  4715. {
  4716.     static g_iTeamInfo = 0;
  4717.     if( !g_iTeamInfo )
  4718.     {
  4719.         g_iTeamInfo = get_user_msgid("TeamInfo");
  4720.     }
  4721.     message_begin(iReceiver ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, g_iTeamInfo, .player=iReceiver);
  4722.     write_byte(iPlayerId);
  4723.     write_string(szTeam);
  4724.     message_end();
  4725. }
  4726.  
  4727. stock Send_SayText(iReceiver, iPlayerId, szMessage[])
  4728. {
  4729.     static iSayText = 0;
  4730.     if( !iSayText )
  4731.     {
  4732.         iSayText = get_user_msgid("SayText");
  4733.     }
  4734.     message_begin(iReceiver ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, iSayText, .player=iReceiver);
  4735.     write_byte(iPlayerId);
  4736.     write_string(szMessage);
  4737.     message_end();
  4738. }
  4739.  
  4740. stock remove_shield(id)
  4741. {
  4742.     if ( !is_user_alive(id) || !( 1 <= id <= gMaxPlayers) )
  4743.         return 0;
  4744.        
  4745.     const m_iUserPrefs = 510;
  4746.     const USING_SHIELD = (1<<16);
  4747.     const HAS_SHIELD = (1<<24);
  4748.        
  4749.     new prefs = get_pdata_int(id, m_iUserPrefs) & ~USING_SHIELD;
  4750.     new model[64];
  4751.        
  4752.     if(prefs & HAS_SHIELD)
  4753.         pev(id, pev_viewmodel2, model, charsmax(model));
  4754.            
  4755.     if(equal(model, "models/shield/v_shield_", 23))
  4756.     {
  4757.         replace(model, charsmax(model), "shield/v_shield", "v");
  4758.            
  4759.         set_pev(id, pev_viewmodel2, model);
  4760.     }
  4761.            
  4762.     pev(id, pev_weaponmodel2, model, charsmax(model));
  4763.            
  4764.     if(equal(model, "models/shield/p_shield_", 23))
  4765.     {
  4766.         replace(model, charsmax(model), "shield/p_shield", "p");
  4767.            
  4768.         set_pev(id, pev_weaponmodel2, model);
  4769.     }    
  4770.     set_pdata_int(id, m_iUserPrefs, (prefs & ~HAS_SHIELD));
  4771.        
  4772.     return 1;
  4773. }
  4774.  
  4775. LoadStats(id)
  4776. {
  4777.     if ( is_user_hltv(id) || is_user_bot(id) )
  4778.         return;
  4779.        
  4780.     new authid[35]
  4781.     get_user_authid(id, authid, sizeof(authid) - 1)
  4782.    
  4783.     if (equali(authid, "STEAM_ID_LAN"))
  4784.         return
  4785.        
  4786.     new data[16]
  4787.     if( fvault_get_data(gPointsVault, authid, data, sizeof(data) - 1) )
  4788.         gPoints[id] = str_to_num(data)
  4789.     else
  4790.         gPoints[id] = 0
  4791.            
  4792.     return;
  4793. }
  4794.  
  4795. SaveStats(id)
  4796. {
  4797.     if ( is_user_hltv(id) || is_user_bot(id) || !get_pcvar_num(cvar_RanksSystem) )
  4798.         return;
  4799.        
  4800.     new authid[35]
  4801.     get_user_authid(id, authid, sizeof(authid) - 1)
  4802.      
  4803.     if (gPoints[id] < 0)
  4804.         gPoints[id] = 0
  4805.  
  4806.     if (equali(authid, "STEAM_ID_LAN"))
  4807.         return
  4808.    
  4809.     new data[16]
  4810.     num_to_str(gPoints[id], data, sizeof(data) - 1)
  4811.     fvault_set_data(gPointsVault, authid, data)
  4812.      
  4813.     return;
  4814. }
Advertisement
Add Comment
Please, Sign In to add comment