// This script will atempt to even teams // V 1.1 block cfg { // NOTE: If you don't want to use the option set it to "0" // Time in seconds when teams are checked. es_xset timer 420 // Every X rounds check teams es_xset rounds 0 // Spawn bonus is, after a swap if you spawn in the next 10 seconds you get a bounus // Allow Spawn bonus? 1 = yes 0 = no es_xset allowspawnbonus 1 // Give Kevlar+Helm? es_xset kevlarhelm 1 // Spawn bonus armor ammount es_xset bonusarmor 150 // Spawn bonus health ammount es_xset bonushealth 150 /////////// // DO NOT EDIT BELOW THIS LINE!!!!!!! ///// } block load { es_xset spawnbonus 0 es_xdoblock eventeams/cfg es_xkeygroupcreate eventeams es_xkeygroupcreate eventeamsrank es_xkeygroupcreate eventeamsswitch es_xset currentround 0 } block unload { //deletes all es_xkeygroupdelete eventeams es_xkeygroupdelete eventeamsrank es_xkeygroupdelete eventeamsswitch } event es_map_start { // Loads the timer if (server_var(timer) > 0) then es_delayed server_var(timer) es_doblock eventeams/main } event round_end { es_xmath currentround + 1 if (server_var(currentround) = server_var(rounds)) do { es_set currentround server_var(timer) es_xset timer 0 es_xdoblock eventeams/main es_set timer server_var(currentround) es_xset currentround 0 } } event player_spawn { // Resently swaped players will get a bonus +50 hp and ap for 10 seconds if(server_var(spawnbonus) = 1) do { es_xset tmp 0 es_exists tmp key eventeams event_var(userid) if(server_var(tmp) = 1) do { if(server_var(kevlarhelm) > 0) then es_give event_var(userid) item_assaultsuit es playerset armor event_var(userid) server_var(bonusarmor) es playerset health event_var(userid) server_var(bonushealth) } } } block main { es_xkeygroupdelete eventeams es_xkeygroupcreate eventeams //Tests to see if there are more then 2 players es_xset Ts 0 es_xset CTs 0 es_xgetplayercount Ts 2 es_xgetplayercount CTs 3 es_set Total server_var(Ts) es_math Total + server_var(CTs) if (server_var(Total) > 2) do { //Ranks players es_xset tempid 0 es_xset tmp 0 es_xset tmp2 0 foreach player tempid #t "es_xdoblock eventeams/fillkeygroup" foreach player tempid #ct "es_xdoblock eventeams/fillkeygroup" es_xset Ts 0 es_xset Cts 0 es_xkeygroupdelete eventeamsrank es_xkeygroupcreate eventeamsrank es_xset tempid2 0 es_xset mykdr 0 es_xset theirkdr 0 es_xforeachkey tempid in eventeams "es_xdoblock eventeams/ranks" //Even test es_xmathparse tmp "abs(Ts - CTs)" if (server_var(tmp) > 1) do { //Even players es_xkeygroupdelete eventeamsswitch es_xkeygroupcreate eventeamsswitch es_xdoblock eventeams/teamscheck //Swap uneven players if (server_var(timer) > 0) do { es_xset tmp 10 es_xdoblock eventeams/switchtimer } else do { es_set Ts server_var(mp_autoteambalance) es_set CTs server_var(mp_limitteams) es_xforcevalue mp_autoteambalance 0 es_xforcevalue mp_limitteams 0 es_xkeygroupdelete eventeams es_xkeygroupcreate eventeams es_xforeachkey myrank in eventeamsswitch "es_xdoblock eventeams/switch" es_forcevalue mp_autoteambalance server_var(Ts) es_forcevalue mp_limitteams server_var(Cts) es_set spawnbonus server_var(allowspawnbonus) es_xdelayed 10 es_xset spawnbonus 0 } } } if (server_var(timer) > 0) then es_delayed server_var(timer) es_doblock eventeams/main } block switch { es_keygetvalue tmp eventeamsswitch server_var(myrank) id es_keygetvalue tmp2 eventeamsswitch server_var(myrank) team es_changeteam server_var(tmp) 1 es_changeteam server_var(tmp) server_var(tmp2) es_keycreate eventeams server_var(tmp) if (server_var(tmp2) = 2) do { es_centertell server_var(tmp) Your a T now! es_getplayername tmp2 server_var(tmp) es_msg server_var(tmp2) was switched to Terrorists for balancing reasons. es_tell server_var(tmp) #green You are now on Terrorists!!! } else do { es_centertell server_var(tmp) Your a CT now! es_getplayername tmp2 server_var(tmp) es_msg server_var(tmp2) was switched to Counter-Terrorists for balancing reasons. es_tell server_var(tmp) #green You are now on Counter-Terrorists!!! } } block switchtimer { if (server_var(tmp) = 10) then es_xcentermsg Team Balance in 10 Seconds! if (server_var(tmp) = 5) then es_xcentermsg Team Balance in 5 Seconds! es_msg Team Balance in server_var(tmp) Seconds! es_xmath tmp - 1 if (server_var(tmp) = 0) do { es_set Ts server_var(mp_autoteambalance) es_set CTs server_var(mp_limitteams) es_xforcevalue mp_autoteambalance 0 es_xforcevalue mp_limitteams 0 es_xkeygroupdelete eventeams es_xkeygroupcreate eventeams es_xforeachkey myrank in eventeamsswitch "es_xdoblock eventeams/switch" es_forcevalue mp_autoteambalance server_var(Ts) es_forcevalue mp_limitteams server_var(Cts) es_set spawnbonus server_var(allowspawnbonus) es_xdelayed 10 es_xset spawnbonus 0 } else do { es_xdelayed 1 es_xdoblock eventeams/switchtimer } } block fillkeygroup { //Innputs the players info into the keygroup es_keycreate eventeams server_var(tempid) es_getplayerteam tmp server_var(tempid) es_keysetvalue eventeams server_var(tempid) team server_var(tmp) es getplayerinfo tmp server_var(tempid) kills es getplayerinfo tmp2 server_var(tempid) deaths es_xmath tmp2 + 1 es_xmathparse tmp "tmp / tmp2" es_keysetvalue eventeams server_var(tempid) kdr server_var(tmp) } block ranks { // Ranks players es_set myrank server_var(Total) es_keygetvalue mykdr eventeams server_var(tempid) kdr es_xforeachkey tempid2 in eventeams "es_xdoblock eventeams/rankcomp" es_xdoblock eventeams/rankcheck es_keycreate eventeamsrank server_var(myrank) es_keysetvalue eventeamsrank server_var(myrank) id server_var(tempid) es_keygetvalue tmp eventeams server_var(tempid) team es_keysetvalue eventeamsrank server_var(myrank) team server_var(tmp) if (server_var(tmp) = 2) do { es_math Ts + server_var(myrank) } else do { es_math CTs + server_var(myrank) } } block rankcomp { if (server_var(tempid) != server_var(tempid2)) do { es_keygetvalue theirkdr eventeams server_var(tempid2) kdr if (server_var(mykdr) < server_var(theirkdr)) do { es_xmath myrank - 1 } } } block rankcheck { es_xset tmp 0 es_exists tmp key eventeamsrank server_var(myrank) if (server_var(tmp) = 1) do { es_xmath myrank - 1 es_xdoblock eventeams/rankcheck } } block teamscheck { es_keygetvalue tmp eventeamsrank server_var(Total) team es_xmath Total - 1 es_keygetvalue tmp2 eventeamsrank server_var(Total) team if (server_var(tmp) = server_var(tmp2)) do { es_keycreate eventeamsswitch server_var(Total) es_keygetvalue tmp eventeamsrank server_var(Total) id es_keysetvalue eventeamsswitch server_var(Total) id server_var(tmp) if(server_var(tmp2) = 2) do { es_keysetvalue eventeamsswitch server_var(Total) team 3 } else do { es_keysetvalue eventeamsswitch server_var(Total) team 2 } } if (server_var(Total) > 2) do { es_xmath Total - 1 es_xdoblock eventeams/teamscheck } }