Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- init()
- {
- thread onPlayerConnect();
- }
- onPlayerConnect()
- {
- for(;;)
- {
- level waittill("connected", player);
- player thread onPlayerSpec();
- player thread onPlayerSpawned();
- }
- }
- onPlayerSpec()
- {
- for(;;)
- {
- self waittill("joined_spectators");
- }
- }
- onPlayerSpawned()
- {
- self endon("disconnect");
- self endon("joined_spectators");
- self endon("killed_player");
- level thread initmod();
- for(;;)
- {
- self waittill("spawned_player");
- if(self.team == "allies")
- self thread watchFirstBlood();
- }
- }
- initmod()
- {
- //level endon( "disconnect" ); // level can't disconnect
- level endon ( "game_ended" );
- if( !isDefined( game[ 'mod_initialized' ] ) )
- {
- level thread levelseekerleft();
- }
- level thread watchIfNotSeeker();
- }
- levelseekerleft()
- {
- level endon ( "game_ended" );
- game['mod_initialized'] = true;
- while(1)
- {
- players = maps\mp\gametypes\_teams::CountPlayers();
- if(players["axis"] == 0 && level.players.size > 0)
- {
- level selectseeker();
- }
- wait 0.05;
- }
- }
- selectseeker()
- {
- if(!isDefined(game['mod_next_seeker']) || game['mod_next_seeker'] == false)
- game['mod_next_seeker'] = level.players[randomint(65535) % level.players.size];
- level.Seeker = game['mod_next_seeker'];
- level thread watchSeekerDisconnect();
- level.Seeker thread doSeeker();
- }
- doSeeker()
- {
- self endon( "disconnect" );
- self waittill("spawned_player");
- self thread Seeker();
- level.Seeker freezeControls(true);
- level.Seeker blind();
- iPrintlnBold( self.name + " ist Sucher!");
- wait 30;
- iPrintlnBold( "Noch 90 Sekunden!" );
- wait 30;
- iPrintlnBold( "Noch 60 Sekunden!" );
- wait 30;
- iPrintlnBold( "Noch 30 Sekunden!" );
- wait 15;
- iPrintlnBold( "Noch 15 Sekunden!" );
- wait 10;
- iPrintlnBold( "Noch 5 Sekunden!" );
- wait 5;
- iPrintlnBold( "Auf gehts!" );
- level.Seeker.blind destroy();
- level.Seeker freezeControls(false);
- }
- Seeker()
- {
- self endon("disconnect");
- self takeAllWeapons();
- self clearPerks();
- self giveWeapon("deserteaglegold_mp");
- self switchToWeapon("deserteaglegold_mp");
- self setWeaponAmmoClip("frag_grenade_mp", 0);
- }
- blind()
- {
- self.blind = newClientHudElem(self);
- self.blind.x = 0;
- self.blind.y = 0;
- self.blind setshader ("white", 640, 480);
- self.blind.alignX = "left";
- self.blind.alignY = "top";
- self.blind.horzAlign = "fullscreen";
- self.blind.vertAlign = "fullscreen";
- self.blind.color = (0, 0, 0);
- self.blind.alpha = 1.0;
- }
- watchFirstBlood()
- {
- level endon("first_blood_done");
- self waittill("death");
- game['mod_next_seeker'] = self;
- level thread watchSeekerDisconnect();
- level notify("first_blood_done");
- }
- watchIfNotSeeker()
- {
- level notify("fuck_i_only_want_one_instance");
- level endon("fuck_i_only_want_one_instance");
- while( true )
- {
- foreach( p in level.players )
- {
- if(p != level.seeker)
- {
- if(p.team != "allies")
- p maps\mp\gametypes\_menus::addToTeam( "allies", true );
- level.players[ p getPlayersIndex() ].seeker = 0;
- }
- else
- {
- if(p.team != "axis")
- p maps\mp\gametypes\_menus::addToTeam( "axis", true );
- level.players[ p getPlayersIndex() ].seeker = 1;
- }
- }
- wait (0.1);
- }
- }
- watchNextSeekerDisconnect()
- {
- level notify("fuck_i_also_only_want_one_instance2");
- level endon("fuck_i_also_only_want_one_instance2");
- game['mod_next_seeker'] waittill("disconnect");
- game['mod_next_seeker'] = false;
- }
- watchSeekerDisconnect()
- {
- level notify("fuck_i_also_only_want_one_instance");
- level endon("fuck_i_also_only_want_one_instance");
- level thread watchNextSeekerDisconnect();
- level.Seeker waittill("disconnect");
- //Do stuff - maybe end the round or select a new seeker
- }
- getPlayersIndex()
- {
- for(i=0;i<level.players.size;i++)
- {
- if(self == level.players[i])
- return i;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement