ztavern/t6/scripts/rank_requirements.gsc
2024-10-18 00:19:19 +00:00

134 lines
No EOL
3.5 KiB
Text

#include common_scripts\utility;
init()
{
setdvar("melee_only", "0");
setdvar("first_room_30", "0");
setdvar("oneshot_50", "0");
if (getdvar("net_port") == "30010" || getdvar("net_port") == "30011" || check_for_botb_port() == true)
return;
level thread melee_challenge_watcher();
level thread first_room_challenge_watcher();
level thread round_watcher();
}
first_room_challenge_watcher()
{
for (;;)
{
if (isdefined(level.is_first_room) && level.is_first_room == 1)
{
if (level.round_number >= 30)
{
iprintln("First Room Round 30 ^3successful !");
iprintln("First Room Round 30 ^3successful !");
iprintln("First Room Round 30 ^3successful !");
setdvar("first_room_30", "1");
return;
}
}
wait 1;
}
}
melee_challenge_watcher()
{
melee_round = 30;
start_round = 0;
total_hits_end_round = 0;
for (;;)
{
if (level.round_number >= melee_round)
{
/* if (!isdefined(level.lock))
{
start_round = level.round_number;
level.lock = 1;
}*/
level.players_melee_only = 0;
level.players_hit_only = 0;
if (level.round_number == melee_round)
{
wait 0.1;
continue;
}
foreach(player in level.players)
{
player.total_hits_start_round = player maps\mp\gametypes_zm\_globallogic_score::getpersstat( "hits" );
}
if (isdefined(level.is_game_loaded) && level.is_game_loaded == 1 && !isdefined(level.lock2))
{
level waittill("start_of_round");
level.lock2 = 1;
continue;
}
level waittill("start_of_round");
players = getplayers();
foreach(player in level.players)
{
total_hits_end_round = player maps\mp\gametypes_zm\_globallogic_score::getpersstat( "hits" );
if (total_hits_end_round - player.total_hits_start_round == 0)
level.players_melee_only++;
}
if (level.players_melee_only == level.players.size)
{
iprintln("Melee only round ^3successful !");
iprintln("Melee only round ^3successful !");
iprintln("Melee only round ^3successful !");
setdvar("melee_only", "1");
}
}
wait 1;
}
}
round_watcher()
{
flag_wait("initial_blackscreen_passed");
foreach(player in level.players)
{
player.og = 1;
}
for (;;)
{
str = "";
if (level.round_number >= 50 && (!isdefined(level.is_game_loaded) || level.is_game_loaded == 0))
{
foreach(index, player in level.players)
{
if (isdefined(player.og))
{
str += player getguid();
if (index + 1 < level.players.size)
str += ";";
}
level.r50 = 1;
}
if (isdefined(level.r50))
setdvar("oneshot_50", str);
return;
}
wait 1;
}
}
check_for_botb_port()
{
found = 0;
foreach(port in level.net_port_botb)
{
if (getdvar("net_port") == port)
found = 1;
}
if (found == 0)
return false;
return true;
}