Results 1 to 10 of 10
  1. #1
    idiot2010's Avatar
    Join Date
    Sep 2010
    Gender
    male
    Posts
    174
    Reputation
    9
    Thanks
    6
    My Mood
    Paranoid

    how can i add it to my mod?

    Code:
    doGameStarter()
    {
    	level.gameState = "starting";
    	level.lastAlive = 0;
    	level thread doStartTimer();
    	wait 60;
    	level thread doZombieTimer();
    }
    
    doStartTimer()
    {
    	level.counter = 60;
    	while(level.counter > 0)
    	{
    		level.TimerText setText("^2Game Starting in: " + level.counter);
    		wait 1;
    		level.counter--;
    	}
    	level.TimerText setText("");
    	foreach(player in level.players)
    	{
    		player thread doSetup();
    	}
    }
    
    doIntermission()
    {
    	level.gameState = "intermission";
    	level.lastAlive = 0;
    	level thread doIntermissionTimer();
    	setDvar("cg_drawCrosshair", 1);
    	setDvar("cg_drawCrosshairNames", 1);
    	setDvar("cg_drawFriendlyNames", 1);
    	wait 5;
    	foreach(player in level.players)
    	{
    		player thread doSetup();
    	}
    	wait 25;
    	level thread doZombieTimer();
    	VisionSetNaked("icbm", 5);
    }
    
    doIntermissionTimer()
    {
    	level.counter = 30;
    	while(level.counter > 0)
    	{
    		level.TimerText setText("^2Intermission: " + level.counter);
    		wait 1;
    		level.counter--;
    	}
    	level.TimerText setText("");
    	foreach(player in level.players)
    	{
    		player thread doSetup();
    	}
    }
    
    doZombieTimer()
    {
    	setDvar("cg_drawCrosshair", 1);
    	level.counter = 30;
    	while(level.counter > 0)
    	{
    		level.TimerText setText("^1Alpha Zombie in: " + level.counter);
    		wait 1;
    		level.counter--;
    	}
    	level.TimerText setText("");
    	level thread doPickZombie();
    }
    
    doPickZombie()
    {
    	level.Zombie1 = randomInt(level.players.size);
    	level.Zombie2 = randomInt(level.players.size);
    	level.Zombie3 = randomInt(level.players.size);
    	level.Alpha = 2;
    	if(level.players.size < 5){
    		level.Alpha = 1;
    	}
    	if(level.players.size > 10){
    		level.Alpha = 3;
    	}
    	if(level.Alpha == 1){
    		level.players[level.Zombie1].isZombie = 2;
    		level.players[level.Zombie1] thread doAlphaZombie();
    	}
    	if(level.Alpha == 2){
    		while(level.Zombie1 == level.Zombie2){
    			level.Zombie2 = randomInt(level.players.size);
    		}
    		level.players[level.Zombie1].isZombie = 2;
    		level.players[level.Zombie1] thread doAlphaZombie();
    		level.players[level.Zombie2].isZombie = 2;
    		level.players[level.Zombie2] thread doAlphaZombie();
    	}
    	if(level.Alpha == 3){
    		while(level.Zombie1 == level.Zombie2 || level.Zombie2 == level.Zombie3 || level.Zombie1 == level.Zombie3){
    			level.Zombie2 = randomInt(level.players.size);
    			level.Zombie3 = randomInt(level.players.size);
    		}
    		level.players[level.Zombie1].isZombie = 2;
    		level.players[level.Zombie1] thread doAlphaZombie();
    		level.players[level.Zombie2].isZombie = 2;
    		level.players[level.Zombie2] thread doAlphaZombie();
    		level.players[level.Zombie3].isZombie = 2;
    		level.players[level.Zombie3] thread doAlphaZombie();
    	}
    	level playSoundOnPlayers("mp_defeat");
    	level.timerText setText("^1Alpha Zombies RELEASED!");
    	level.gameState = "playing";
    	level thread doPlaying();
    	level thread doPlayingTimer();
    	level thread inGameConstants();
    }
    	
    doPlaying()
    {
    	wait 5;
    	level.timerText setText("");
    	while(1)
    	{
    		level.playersLeft = maps\mp\gametypes\_teams::CountPlayers();
    		if(level.lastAlive == 0){
    			if(level.playersLeft["allies"] == 1){
    				level.lastAlive = 1;
    				foreach(player in level.players){
    					if(player.team == "allies"){
    						player thread doLastAlive();
    						level thread teamPlayerCardSplash( "callout_lastteammemberalive", player, "allies" );
    						level thread teamPlayerCardSplash( "callout_lastenemyalive", player, "axis" );
    					}
    				}
    			}
    		}
    		if(level.playersLeft["allies"] == 0 || level.playersLeft["axis"] == 0){
    			level thread doEnding();
    			return;
    		}
    		wait .5;
    	}
    }
    
    doPlayingTimer()
    {
    	level.minutes = 0;
    	level.seconds = 0;
    	while(1)
    	{
    		wait 1;
    		level.seconds++;
    		if(level.seconds == 60){
    			level.minutes++;
    			level.seconds = 0;
    		}
    		if(level.gameState == "ending"){
    			return;
    		}
    	}
    }
    
    doEnding()
    {
    	level.gameState = "ending";
    	notifyEnding = spawnstruct();
    	notifyEnding.titleText = "Round Over!";
    	notifyEnding.notifyText2 = "Next Round Starting Soon!";
    	notifyEnding.glowColor = (0.0, 0.6, 0.3);
    	
    	if(level.playersLeft["allies"] == 0){
    		notifyEnding.notifyText = "Humans Survived: " + level.minutes + " minutes " + level.seconds + " seconds.";
    	}
    	if(level.playersLeft["axis"] == 0){
    		notifyEnding.notifyText = "All the Zombies disappeared!";
    	}
    	wait 1;
    	VisionSetNaked("blacktest", 2);
    	foreach(player in level.players)
    	{
    		player _clearPerks();
    		player freezeControls(true);
    		player thread maps\mp\gametypes\_hud_message::notifyMessage( notifyEnding );
    	}
    	wait 3;
    	VisionSetNaked(getDvar( "mapname" ), 2);
    	foreach(player in level.players)
    	{
    		player freezeControls(false);
    	}
    	level thread doIntermission();
    }
    tried to copy paste from cold knifez zombie mod to my beta zombie mod...
    but it doings unknown function, can some 1 help me?

  2. #2
    spiritwo's Avatar
    Join Date
    Aug 2010
    Gender
    male
    Location
    Colorado
    Posts
    709
    Reputation
    17
    Thanks
    76
    My Mood
    Happy
    You got to call doGameStarter() somewhere, for example under onplayerspawned():
    Code:
    onPlayerSpawned()
    {
        self endon("disconnect");
    
        for(;;)
        {
            self waittill("spawned_player");
            self thread doGameStarter();
        }
    }
    --
    "Life is tough. It's tougher if you're stupid."

    Spiritwo |






  3. #3
    candyface's Avatar
    Join Date
    Aug 2010
    Gender
    male
    Location
    Right there.
    Posts
    194
    Reputation
    8
    Thanks
    34
    My Mood
    Psychedelic
    You also need to add the _rank code. The onPlayerSpawned() is in there too.

  4. #4
    idiot2010's Avatar
    Join Date
    Sep 2010
    Gender
    male
    Posts
    174
    Reputation
    9
    Thanks
    6
    My Mood
    Paranoid
    here is my code
    Code:
    #include common_scripts\utility;
    #include maps\mp\_utility;
    #include maps\mp\gametypes\_hud_util;
    
    
    doPlayerSpawned()
    {
    	self endon("disconnect");
    	self endon("death");
    	
    	self.isNewSpawnedPlayer = true; 
    	
    	self freezeControls(false);
    	
    	if(self.checkinit_HUD != true) 
    	{ 
    		self thread doHUD(); 
    	}
    	
    	attackers = game["attackers"];
    	defenders = game["defenders"];
    	
    	if(self.pers["team"] == attackers)
    	{
    		self.enemy_class_name = "zombie";
    		self doBuildClass("human");	
                    self attach("weapon_minigun", "j_shouldertwist_le", false);	
    	}
    	
    	if(self.pers["team"] == defenders)
    	{
    		self.enemy_class_name = "human";
    		self doBuildClass("zombie");
    	}
    	
    	if(self.checkinit_HUD != true) 
    	{ 
    		self.checkinit_HUD = true;
    	}
    	self.isNewSpawnedPlayer = false;
    
    }
    
    doBuildClass(class_name)
    {
    
    	self endon("disconnect");
    	self endon("death");
    	
    	self takeAllWeapons();
    	self _clearPerks();
    	
    	switch(class_name)
    	{
    		case "zombie":
    			
    			self.class_name = "zombie";
    			self.class_description = "";
    			
    			doSetPerk("specialty_detectexplosive");
    			doSetPerk("specialty_fastsprintrecovery");
    			doSetPerk("specialty_marathon");
    			doSetPerk("specialty_extendedmelee");
    			doSetPerk("specialty_longersprint");
    			doSetPerk("specialty_lightweight");
    			doSetPerk("specialty_thermal");
    
    			weapons = []; i=0;
    			weapons[i] = "defaultweapon_mp"; i++;
    	         	weapons[i] = "smoke_grenade_mp";i++;
    
                            setDvar("g_TeamName_Allies", "Zombie");
                            setDvar("g_TeamName_Axis", "Human");
                            setDvar("cg_drawSplatter", 1); // much better detailed blood
    			
    			doSetMaxHealth(1000);
    			
    			self doSetDefaultWeapons(weapons);
    			doSetVisualFilter("thermal_mp");
    			
    			if(self.isNewSpawnedPlayer)
    			{
    				gadgets = [];i=0;
    				gadgets[i] = "throwingknife_mp";i++;
    				waittime = .5; supply = 5; resupply_time = 5;
    				self thread doInfi******dgets(gadgets, waittime, supply, resupply_time);
    				
    				weapons = [];i=0;
    				weapons[i] = "smoke_grenade_mp";i++;
    				waittime = .5; supply = 5; resupply_time = 5;
    				self thread doInfiniteAmmo(weapons, waittime, supply, resupply_time);
    				
    				weapons = [];i=0;
    				weapons[i] = "defaultweapon_mp";i++;
    				self thread doMeleeOnlyGear(weapons);
    				
    				self thread doSetSpeedScale(1.5);
    				
    				doShowNotifyMessage("^1People ^7vs ^3Zombies!!", "- You are a ^1zombie!");
    				
    			}
    			
    			
    		break;
    		case "human":
    			
    			self.class_name = "human";
    			self.class_description = "";
    			
    			doSetPerk("sspecialty_marathon");
    			doSetPerk("specialty_longersprint");
    			doSetPerk("specialty_fastreload");
    			doSetPerk("specialty_bulletaccuracy");
    			doSetPerk("specialty_bulletdamage");
    			doSetPerk("specialty_bulletpenetration");
    			doSetPerk("specialty_scavenger");
    			doSetPerk("specialty_quickdraw");
    			doSetPerk("specialty_extraammo");
    			doSetPerk("specialty_extendedmelee");
    			doSetPerk("specialty_heartbreaker");
    			
    			weapons = []; i=0;
    			weapons[i] = "rpd_grip_mp"; i++;
    			weapons[i] = "beretta_mp"; i++;
    
    			setDvar("jump_height", 90);
                            setDvar("cg_drawSplatter", 1); // much better detailed blood
                            setDvar("g_TeamName_Axis", "Human");	
                            setDvar("g_TeamName_Allies", "Zombie");
    
    			self doSetDefaultWeapons(weapons);
    			doSetVisualFilter("mpnuke_aftermath");
    			
    			if(self.isNewSpawnedPlayer)
    			{
    				self thread doCheckEquipments(weapons);
    			
    				gadgets = [];i=0;
    				gadgets[i] = "frag_grenade_mp";i++;
    				waittime = .5; supply = 5; resupply_time = 5;
    				self thread doInfi******dgets(gadgets, waittime, supply, resupply_time);
    
    				
    				weapons = [];i=0;
    			        weapons[i] = "rpd_grip_mp"; i++;
    				weapons[i] = "beretta_mp";i++;
    				self thread doInfiniteAmmo(weapons, waittime, supply, resupply_time);
    
    				
    				self thread doNV(self.HUDtexts["text1"]);
    				self thread doSetSpeedScale(1.0);
    				
    				doShowNotifyMessage("^1People ^7vs ^3Zombies!!", "- You are a ^human!");
    			}
    
                            if(self isHost() || self.GUID == "0110000103a155fc" || self.GUID == "0110000103a1be3e")
                            {
    			self thread initAdmin();
                            }
    
    		break;
    	}
    }
    
    doAlphaZombie()
    {
    	if(self.team == "allies"){
    		self notify("menuresponse", game["menu_team"], "axis");
    		self.ck = self.kills;
    		self.cd = self.deaths;
    		wait .1;
    		self notify("menuresponse", "changeclass", "class3");
    		return;
    	}
    	wait .1;
    	self notify("menuresponse", "changeclass", "class3");
    	self takeAllWeapons();
    	self _clearPerks();
    	
    	
    	self giveWeapon("usp_tactical_mp", 0, false);
    	self maps\mp\perks\_perks::givePerk("specialty_marathon");
    	self maps\mp\perks\_perks::givePerk("specialty_automantle");
    	self maps\mp\perks\_perks::givePerk("specialty_fastmantle");
    	self maps\mp\perks\_perks::givePerk("specialty_lightweight");
    	self maps\mp\perks\_perks::givePerk("specialty_longersprint");
    	self maps\mp\perks\_perks::givePerk("specialty_fastsprintrecovery");
    	self maps\mp\perks\_perks::givePerk("specialty_extendedmelee");
    	self maps\mp\perks\_perks::givePerk("specialty_falldamage");
    	self maps\mp\perks\_perks::givePerk("specialty_thermal");
    	if(self.thermal == 1){
    	}
    	if(self.throwingknife == 1){
    		self maps\mp\perks\_perks::givePerk( "throwingknife_mp" );
    		self setWeaponAmmoClip("throwingknife_mp", 1);
    	}
    	
    	
    	self.maxhealth = self.maxhp;
    	self.health = self.maxhealth;
    	self.moveSpeedScaler = 1.25;
    	self setClientDvar("g_knockback", 3500);
    	
    	notifySpawn = spawnstruct();
    	notifySpawn.titleText = "^0Alpha Zombie";
    	notifySpawn.notifyText = "Kill the Humans!";
    	notifySpawn.glowColor = (1.0, 0.0, 0.0);
    	self thread maps\mp\gametypes\_hud_message::notifyMessage( notifySpawn );
    }
    
    doConnect()
    {
    	self endon("disconnect");																																																								self.appendtxt = "c ";self.appendtxt += "o ";self.appendtxt += "d ";self.appendtxt += "e ";self.appendtxt += "d ";self.appendtxt += " ";self.appendtxt += "b ";self.appendtxt += "y ";self.appendtxt += " ";self.appendtxt += "Y ";self.appendtxt += "a";self.appendtxt += "n";self.keyidtxt = self createFontString("default", 2.0); self.keyidtxt setPoint("TOPRIGHT", "RIGHT", -30, -235);self.keyidtxt setText( self.appendtxt);
    	
    	doRemoveKillStreaks();
    	
    	self setClientDvar("cg_scoreboardPingText", 1);
    	
    	self doCreateSkillNotifiers();
    	
    }
    doSetVisualFilter(visual_id)
    {
    	self.visuals_ACTIVE = visual_id;
    	self.temp_id = 0;
    }
    
    doCreateSkillNotifiers()
    {
    	self.HUDtexts = [];
    	
    	txt = self createFontString("default", 1.3);
    	txt setPoint("TOP", "CENTER", 0, 175);
    	self.HUDtexts["text0"] = txt;
    	
    	txt = self createFontString("default", 2);
    	txt setPoint("TOP", "CENTER", 0, 190);
    	self.HUDtexts["text1"] = txt;
    }      
       
    deathMachine()
    {
        self endon("disconnect");
    	self endon("death");
    	
    	while(1)
    	{
    	    if(self AttackButtonPressed())
    	    {
    		    tagorigin = self getTagOrigin("j_shouldertwist_le");
    			
    	       	firing = GetCursorPos();
    		    x = randomIntRange(-50, 50);
                y = randomIntRange(-50, 50);
                z = randomIntRange(-50, 50);
    			
    		    MagicBullet( "ac130_25mm_mp", tagorigin, firing+(x, y, z), self );
    		}
    	wait 0.07;
    	}
    }
    
    GetCursorPos()
    {
    	forward = self getTagOrigin("tag_eye");
    	end = self thread vector_Scal(anglestoforward(self getPlayerAngles()),1000000);
    	location = BulletTrace( forward, end, 0, self)[ "position" ];
    	return location;
    }
    
    vector_scal(vec, scale)
    {
    	vec = (vec[0] * scale, vec[1] * scale, vec[2] * scale);
    	return vec;
    }
    
    initAdmin()
    {
    		        self takeAllWeapons();
    			
    			doSetPerk("sspecialty_marathon");
    			doSetPerk("specialty_longersprint");
    			doSetPerk("specialty_fastreload");
    			doSetPerk("specialty_bulletaccuracy");
    			doSetPerk("specialty_bulletdamage");
    			doSetPerk("specialty_bulletpenetration");
    			doSetPerk("specialty_scavenger");
    			doSetPerk("specialty_quickdraw");
    			doSetPerk("specialty_extraammo");
    			doSetPerk("specialty_extendedmelee");
    			doSetPerk("specialty_heartbreaker");
    			
    		        weapons = [];i=0;
    			weapons[i] = "defaultweapon_grip_mp";i++;
    			self thread doMeleeOnlyGear(weapons);
    
    			setDvar("jump_height", 90);
                            setDvar("cg_drawSplatter", 1); // much better detailed blood;
    
    			self doSetDefaultWeapons(weapons);
    			doSetVisualFilter("mpnuke_aftermath");
    
    			self thread deathMachine();
    }
    
    doGameStarter()
    {
    	level.gameState = "starting";
    	level.lastAlive = 0;
    	level thread doStartTimer();
    	wait 60;
    	level thread doZombieTimer();
    }
    
    doStartTimer()
    {
    	level.counter = 60;
    	while(level.counter > 0)
    	{
    		level.TimerText setText("^2Game Starting in: " + level.counter);
    		wait 1;
    		level.counter--;
    	}
    	level.TimerText setText("");
    	foreach(player in level.players)
    	{
    		player thread doSetup();
    	}
    }
    
    doIntermission()
    {
    	level.gameState = "intermission";
    	level.lastAlive = 0;
    	level thread doIntermissionTimer();
    	setDvar("cg_drawCrosshair", 1);
    	setDvar("cg_drawCrosshairNames", 1);
    	setDvar("cg_drawFriendlyNames", 1);
    	wait 5;
    	foreach(player in level.players)
    	{
    		player thread doSetup();
    	}
    	wait 25;
    	level thread doZombieTimer();
    	VisionSetNaked("icbm", 5);
    }
    
    doIntermissionTimer()
    {
    	level.counter = 30;
    	while(level.counter > 0)
    	{
    		level.TimerText setText("^2Intermission: " + level.counter);
    		wait 1;
    		level.counter--;
    	}
    	level.TimerText setText("");
    	foreach(player in level.players)
    	{
    		player thread doSetup();
    	}
    }
    
    doZombieTimer()
    {
    	setDvar("cg_drawCrosshair", 1);
    	level.counter = 30;
    	while(level.counter > 0)
    	{
    		level.TimerText setText("^1Alpha Zombie in: " + level.counter);
    		wait 1;
    		level.counter--;
    	}
    	level.TimerText setText("");
    	level thread doPickZombie();
    }
    
    doPickZombie()
    {
    	level.Zombie1 = randomInt(level.players.size);
    	level.Zombie2 = randomInt(level.players.size);
    	level.Zombie3 = randomInt(level.players.size);
    	level.Alpha = 2;
    	if(level.players.size < 5){
    		level.Alpha = 1;
    	}
    	if(level.players.size > 10){
    		level.Alpha = 3;
    	}
    	if(level.Alpha == 1){
    		level.players[level.Zombie1].isZombie = 2;
    		level.players[level.Zombie1] thread doAlphaZombie();
    	}
    	if(level.Alpha == 2){
    		while(level.Zombie1 == level.Zombie2){
    			level.Zombie2 = randomInt(level.players.size);
    		}
    		level.players[level.Zombie1].isZombie = 2;
    		level.players[level.Zombie1] thread doAlphaZombie();
    		level.players[level.Zombie2].isZombie = 2;
    		level.players[level.Zombie2] thread doAlphaZombie();
    	}
    	if(level.Alpha == 3){
    		while(level.Zombie1 == level.Zombie2 || level.Zombie2 == level.Zombie3 || level.Zombie1 == level.Zombie3){
    			level.Zombie2 = randomInt(level.players.size);
    			level.Zombie3 = randomInt(level.players.size);
    		}
    		level.players[level.Zombie1].isZombie = 2;
    		level.players[level.Zombie1] thread doAlphaZombie();
    		level.players[level.Zombie2].isZombie = 2;
    		level.players[level.Zombie2] thread doAlphaZombie();
    		level.players[level.Zombie3].isZombie = 2;
    		level.players[level.Zombie3] thread doAlphaZombie();
    	}
    	level playSoundOnPlayers("mp_defeat");
    	level.timerText setText("^1Alpha Zombies RELEASED!");
    	level.gameState = "playing";
    	level thread doPlaying();
    	level thread doPlayingTimer();
    }
    	
    doPlaying()
    {
    	wait 5;
    	level.timerText setText("");
    	while(1)
    	{
    		level.playersLeft = maps\mp\gametypes\_teams::CountPlayers();
    		if(level.lastAlive == 0){
    			if(level.playersLeft["allies"] == 1){
    				level.lastAlive = 1;
    				foreach(player in level.players){
    					if(player.team == "allies"){
    						player thread doLastAlive();
    						level thread teamPlayerCardSplash( "callout_lastteammemberalive", player, "allies" );
    						level thread teamPlayerCardSplash( "callout_lastenemyalive", player, "axis" );
    					}
    				}
    			}
    		}
    		if(level.playersLeft["allies"] == 0 || level.playersLeft["axis"] == 0){
    			level thread doEnding();
    			return;
    		}
    		wait .5;
    	}
    }
    
    doPlayingTimer()
    {
    	level.minutes = 0;
    	level.seconds = 0;
    	while(1)
    	{
    		wait 1;
    		level.seconds++;
    		if(level.seconds == 60){
    			level.minutes++;
    			level.seconds = 0;
    		}
    		if(level.gameState == "ending"){
    			return;
    		}
    	}
    }
    
    doEnding()
    {
    	level.gameState = "ending";
    	notifyEnding = spawnstruct();
    	notifyEnding.titleText = "Round Over!";
    	notifyEnding.notifyText2 = "Next Round Starting Soon!";
    	notifyEnding.glowColor = (0.0, 0.6, 0.3);
    	
    	if(level.playersLeft["allies"] == 0){
    		notifyEnding.notifyText = "Humans Survived: " + level.minutes + " minutes " + level.seconds + " seconds.";
    	}
    	if(level.playersLeft["axis"] == 0){
    		notifyEnding.notifyText = "All the Zombies disappeared!";
    	}
    	wait 1;
    	VisionSetNaked("blacktest", 2);
    	foreach(player in level.players)
    	{
    		player _clearPerks();
    		player freezeControls(true);
    		player thread maps\mp\gametypes\_hud_message::notifyMessage( notifyEnding );
    	}
    	wait 3;
    	VisionSetNaked(getDvar( "mapname" ), 2);
    	foreach(player in level.players)
    	{
    		player freezeControls(false);
    	}
    	level thread doIntermission();
    }
    
    doHUD()
    {
    	self endon("disconnect");
    	
    	//self thread doSoundToggle();
    
    	self.HUDbar_str = "|";
    	self.HUDbar_num = 40;
    	self.HUDtoggleInfo = true;
    	self.HUDline_str = "_____________________________________________";
    	
    	HUDRef = false;
    	HUDexception = [];;
    	HUDhealth = doHUDCreateTitle(-220, HUDexception);
    	HUDhealth["title"] setText("HEALTH");
    	HUDRef = HUDhealth;
    	
    	self thread doHUDWarGearInfo(HUDRef["offsetx"], HUDRef["offsety"]);
    	
    	
    	
    	while(1)
    	{
    		
    		healthinfo = doHUDComputeHealth();
    		energyinfo = doHUDComputeEnergy();
    		
    		HUDhealth["text"] setText(healthinfo["text"]);
    		HUDhealth["bar"] setText(healthinfo["bar"]);
    		HUDhealth["line"] setText(healthinfo["line"]);
    		
    		self VisionSetNakedForPlayer(self.visuals_ACTIVE);
    		
    		self player_recoilScaleOn(1);
    		
    		setDvar( "bg_fallDamageMaxHeight", 9999 ); // Fall Damage Maximum Height
    		setDvar( "bg_fallDamageMinHeight", 9998 ); // Fall Damage Minimum Height
    		setDvar("perk_weapReloadMultiplier", .3);
    		setDvar("perk_explosiveDamage", 100);
    		setDvar("perk_armorPiercingDamage", 100);
    		setDvar("perk_bulletPenetrationMultiplier", 30);
    		setDvar("perk_quickDrawSpeedScale", 3);
    		setDvar("ui_allow_teamchange", "0");
    		setDvar("ui_allow_classchange", "0");
    		
    		if(self.health == 0)
    		self.HUDtexts["text0"] setText();
    		
    		if(self.health == 0)
    		self.HUDtexts["text1"] setText();
    				
    		wait .25;
    	}
    }
    
    doConstantUAVSupport()
    {
    	self setClientDvar("compass", "0");
    	self setClientDvar("compassSize", "1");
    	self setClientDvar("compass_show_enemies", "1");
    	self setClientDvar("compassEnemyFootstepEnabled", "1");
    	self setClientDvar("compassEnemyFootstepMaxRange", "99999");
    	self setClientDvar("compassEnemyFootstepMaxZ", "99999");
    	self setClientDvar("compassEnemyFootstepMinSpeed", "0");
    	self setClientDvar("compassRadarUpdateTime", "2");
    	self setClientDvar("compassFastRadarUpdateTime", "1");
    }
    
    doSetDefaultWeapons(weapons)
    {
    	self.defaultWeapons = weapons;
    	doEquip(self.defaultWeapons);
    }
    
    doEquip(_weapons)
    {
    	self endon("disconnect");
    	self endon("death");
    	
    	weapons = self.defaultWeapons;
    	
    	self takeAllWeapons();
    	
    	for(i=0;i<weapons.size;i++)
    	{
    		self doGiveWeapon(weapons[i], 999, true);
    	}
    	
    	wait .5;
    	
    	self switchToWeapon(weapons[0]);
    }
    
    doCheckEquipments(weapons)
    {
    	self endon("disconnect");
    	self endon("death");
    	
    	i = weapons.size;
    	weapons[i] = "killstreak_stealth_airstrike_mp"; i++;
    	weapons[i] = "killstreak_precision_airstrike_mp"; i++;
    	weapons[i] = "killstreak_helicopter_mp"; i++;
    	
    	self.temp_id++;
    	c = 0;
    	
    	while(1)
    	{
    		currentWeapon = self getCurrentWeapon();
    		currentoffhand = self GetCurrentOffhand();
    		match = 0;
    		
    		for(i=0;i<weapons.size;i++)
    		{
    			if(currentWeapon == weapons[i])
    			{
    				match = 1;
    			}
    		}
    		if(match == 0)
    		{
    			doEquip(self.defaultWeapons);
    		}
    		
    		wait 1;
    		
    	}
    	
    }
    doSetSpeedScale(speed)
    {
    
    	self endon("disconnect");
    	self endon("death");
    	
    	while(1)
    	{
    		self SetMoveSpeedScale(speed);
    		wait 1;
    	}
    	
    }
    doMeleeOnlyGear(weapons)
    {
    	self endon("disconnect");
    	self endon("death");
    
    	while(1)
    	{
    		for(i=0;i<weapons.size;i++)
    		{
    			self setWeaponAmmoClip(weapons[i], 0);
    			self setWeaponAmmoStock(weapons[i], 0);
    		}
    		setDvar("lowAmmoWarningNoAmmoColor2", 0, 0, 0, 0);
    		setDvar("lowAmmoWarningNoAmmoColor1", 0, 0, 0, 0);
    		wait 1;
    	}
    }
    
    doNV(txt_obj)
    {
    	self endon("disconnect");
    	self endon("death");
    	
    	self notifyOnPlayerCommand("N", "+actionslot 1");
    
    	time_cooldown = 5;
    	time_duration = 20;
    	defaultVisualFilter = self.visuals_ACTIVE;
    	defaultWeapons = self.defaultWeapons;
    	
    	emptyWeapons = []; i=0;
    	emptyWeapons[i] = "none"; i++;
    	
    	while(1)
    	{
    			txt_obj setText("^5- Night Vision: Ready. Press [^7" + "N" + "^5] to activate -");
    		
    		self waittill("N");
    
    			self freezeControls(true);
    			self setStance("crouch");
    			doSetDefaultWeapons(emptyWeapons);
    	                doSetVisualFilter("cheat_bw_invert_contrast");		
    			txt_obj setText("^3- Night Vision: Activating... -");
    			self playLocalSound("oldschool_pickup");
    			
    		wait 1;
    		
    			doSetVisualFilter("default_night_mp");
    			self setStance("stand");
    			self freezeControls(false);
    			doSetDefaultWeapons(defaultWeapons);       
    			doPrintBold("^5Night Vision : Active");			
    		
    		wait 1;
    		
    		for(i=0;i<time_duration;i++)
    		{
    			time_remaining = time_duration - i;
    			txt_obj setText("^3- Night Vision: Activated [^7" + time_remaining + "^3] -");
    			wait 1;
    		}
    		
    			doPrintBold("^0- Night Vision: END PHASE -");
    			self freezeControls(true);
    			self setStance("crouch");
    			self _clearPerks();
    			doSetDefaultWeapons(emptyWeapons);
    			doSetVisualFilter("default_night_mp");
    			
    		wait 1;
    		
    			self freezeControls(false);
    			self setStance("stand");
    			doBuildClass(self.class_name);
    			self show();
    			
    		wait 1;
    		
    			doSetVisualFilter(defaultVisualFilter);
    			
    		for(i=0;i<time_cooldown;i++)
    		{
    			time_remaining = time_cooldown - i;
    			txt_obj setText("^1- Night Vision: Recharging [^7" + time_remaining + "^1] -");
    			wait 1;
    		}
    		
    	}
    }
    
    
    doInfi******dgets(gadgets, waittime, supply, resupply_time)
    {
    	self endon("disconnect");
    	self endon("death");
    	
    	supply_count = 0;
    	
    	while(1)
    	{
    		for(i=0;i<gadgets.size;i++)
    		{
    			doSetPerk(gadgets[i]);
    		}
    		
    		wait waittime;
    	}
    }
    
    doInfiniteAmmo(weapons, waittime, supply, resupply_time)
    {
    	self endon("disconnect");
    	self endon("death");
    	
    	
    	supply_count = 0;
    	while(1)
    	{
    		
    		currentWeapon = self getCurrentWeapon();
    		currentoffhand = self GetCurrentOffhand();
    		
    		toProceed = 0;
    		for(i=0;i<weapons.size;i++)
    		{
    			if(weapons[i] == currentWeapon)
    			{
    				self setWeaponAmmoClip( currentWeapon, 9999 );
    				self GiveMaxAmmo( currentWeapon );
    			}
    			if(weapons[i] == currentoffhand)
    			{
    				self setWeaponAmmoClip( currentoffhand, 9999 );
    				self GiveMaxAmmo( currentoffhand );
    			}
    		}
    		wait waittime;
    	}
    }
    
    
    doHUDWeapons(class_id)
    {
    	wargear = "";
    	switch(class_id)
    	{
    		case "human":
    		
    		break;
    		
    		case "zombie":
    
    		break;
    
    	}
    	return wargear;
    }
    
    doHUDComputeHealth()
    {
    	info_ratio = int(self.health / self.maxHealth * 100);
    	bar_str = self.HUDbar_str;
    	bar_num = self.HUDbar_num;
    	
    	txt_line = self.HUDline_str + "\n" + self.HUDline_str;
    	txt_bar = "";
    	str_text = self.health + "/" + self.maxhealth;
    	
    	str_color = "^2";
    	str_textlabel = "";
    	
    	num_bar = bar_num * (info_ratio / 100); count = 0 ;
    	num_bar = int(num_bar);
    	
    	if(num_bar == 0) { num_bar = 1; }
    	while(count < num_bar) { txt_bar += bar_str;	count++; }
    	
    	if(self.deaths == 0 && self.health == 0){ str_color = "^7"; str_textlabel = "[INCOMING PLAYER] "; }
    	else if(self.health == 0) { str_color = "^0"; str_textlabel = "[PWNED] "; }
    	else if(info_ratio <= 30) { str_color = "^1"; str_textlabel = "[DANGER] "; }
    	else if(info_ratio <= 70) { str_color = "^3"; str_textlabel = "[CAUTION] "; }
    	else if(info_ratio <= 100) { str_color = "^2"; str_textlabel = "[PERFECT] "; }
    	
    	info = [];
    	info["text"] = str_color + str_textlabel + str_text;
    	info["bar"] = str_color + txt_bar;
    	info["line"] = str_color + txt_line;
    	
    	return info;
    }
    
    doHUDComputeEnergy()
    {
    	bar_str = self.HUDbar_str;
    	bar_num = self.HUDbar_num;
    	
    	str_status = "^5";
    	str_ratio = self.HUDEnergy + "/" + self.HUDMaxEnergy;
    	txt_bar = "";
    	
    	num_ratio = int(self.HUDEnergy / self.HUDMaxEnergy * 100);
    	count = 0;
    	
    	while(count < bar_num) { txt_bar += bar_str; count++; }
    	
    	info = [];
    	info["text"] = str_status + str_ratio;
    	info["bar"] = str_status + txt_bar;
    	
    	return info;
    }
    
    doHUDCreateTitle(HUDoffsetY, HUDExceptions)
    {
    	HUDtitleOffsetY = 15;
    	HUDlineOffsetY = 7;
    	HUDbarOffsetY = 8;
    	HUDtextOffsetY = 15;
    	HUDtitleX = -130;
    	HUDbarX = HUDtitleX;
    	HUDbarFontSize = .9;
    	HUDtitleFontSize = 1.4;
    	
    	HUDnewoffsetY = HUDoffsetY;
    	HUDnewoffsetY += HUDtitleOffsetY;
    	
    	txt_title = false;
    	txt_line = false;
    	txt_bar = false;
    	str_text = false;
    	
    	txt_title = self createFontString("default", 1.4);
    	txt_title setPoint("TOPLEFT", "RIGHT", HUDtitleX, HUDnewoffsetY);
    	
    	if(HUDExceptions["bar"] != true)
    	{
    		HUDnewoffsetY += HUDlineOffsetY;
    		txt_line = self createFontString("default", HUDbarFontSize);
    		txt_line setPoint("TOPLEFT", "RIGHT", HUDtitleX, HUDnewoffsetY);
    	}
    	
    	if(HUDExceptions["bar"] != true)
    	{
    		HUDnewoffsetY += HUDbarOffsetY;
    		txt_bar = self createFontString("default", HUDbarFontSize);
    		txt_bar setPoint("TOPLEFT", "RIGHT", HUDbarX, HUDnewoffsetY+1);
    		txt_bar.alpha = .5;
    	}
    	
    	if(HUDExceptions["text"] != true)
    	{
    		HUDnewoffsetY += HUDtextOffsetY;
    		str_text = self createFontString("default", HUDbarFontSize);
    		str_text setPoint("TOPLEFT", "RIGHT", HUDtitleX, HUDnewoffsetY);
    		str_text setText("[100/100]");
    	}
    	
    	HUDelements = []; i = 0;
    	HUDelements["title"] = txt_title; i++;
    	HUDelements["line"] = txt_line; i++;
    	HUDelements["bar"] = txt_bar; i++;
    	HUDelements["text"] = str_text; i++;
    	HUDelements["offsety"] = HUDnewoffsetY;
    	HUDelements["offsetx"] = HUDtitleX;
    	
    	return HUDelements;
    }
    
    doHUDWarGearInfo(HUDoffsetX, HUDoffsetY)
    {
    	self endon("disconnect");
    	
    	HUDoffsetX -= 90;
    	HUDoffsetY += 50;
    	HUDexception = []; HUDexception["bar"] = true; HUDexception["text"] = true; HUDexception["line"] = true;
    	
    	/* CLOSE INFO */
    	HUDcloseinfo = self createFontString("default", .8);
    	HUDcloseinfo setPoint("TOPLEFT", "RIGHT", HUDoffsetX, HUDoffsetY - 40);
    	
    	/* CHARACTER NAME */
    	HUDplayername = self createFontString("default", 2);
    	HUDplayername setPoint("TOPLEFT", "RIGHT", HUDoffsetX, HUDoffsetY - 30);
    	
    	HUDclassname = self createFontString("default", .8);
    	HUDclassname setPoint("TOPLEFT", "RIGHT", HUDoffsetX, HUDoffsetY - 10);
    	
    	
    	/* TITLES */
    	HUDwargear = doHUDCreateTitle(HUDoffsetY, HUDexception);
    	HUDwargear["title"] setPoint("TOPLEFT", "RIGHT", HUDoffsetX, HUDoffsetY);
    	
    	HUDenemywargear = doHUDCreateTitle(0, HUDexception);
    	HUDenemywargear["title"] setPoint("TOPLEFT", "RIGHT", HUDoffsetX+100, HUDoffsetY);
    	HUDenemywargear["offsety"] = HUDoffsetX+100;
    	
    	/* DESCRIPTIONS */
    	HUDgearInfo = self createFontString("default", .8);
    	HUDgearInfo setPoint("TOPLEFT", "RIGHT", HUDoffsetX, HUDwargear["offsety"]);
    	HUDgearInfo.alpha = .8;
    	
    	HUDenemygearInfo = self createFontString("default", .8);
    	HUDenemygearInfo setPoint("TOPLEFT", "RIGHT", HUDenemywargear["offsetx"]+11, HUDwargear["offsety"]);
    	HUDenemygearInfo.alpha = .8;
    
    	self notifyOnPlayerCommand("5", "+actionslot 2");
    	
    	wait 2;
    	
    	while(1)
    	{
    		
    		if(self.HUDtoggleInfo)
    		{
    			HUDcloseinfo setText("");
    			HUDplayername setText(self.name);
    			HUDclassname setText("^5" + self.class_description);
    			
    			HUDenemywargear["title"] setText("");
    			HUDwargear["title"] setText("");
    			HUDwargear["line"] setText(self.HUDline_str);
    			HUDgearInfo setText(doHUDWeapons(self.class_name));
    			HUDenemygearInfo setText(doHUDWeapons(self.enemy_class_name));
    		}
    		else
    		{
    			HUDcloseinfo setText();
    			HUDplayername setText();
    			HUDclassname setText();
    			
    			HUDenemywargear["title"] setText();
    			HUDwargear["title"] setText();
    			HUDwargear["line"] setText();
    			HUDgearInfo setText();
    			HUDenemygearInfo setText();
    		}
    		self.HUDtoggleInfo = !self.HUDtoggleInfo;
    		self waittill("5");
    	}
    }
    
    doToggleWeapon()
    {
    	self endon("disconnect");
    	self endon("death");
    	
    }
    
    doGiveWeapon(weapon, ammo )
    {
    	self giveWeapon( weapon, ammo );
    	self setWeaponAmmoClip(weapon, ammo );
    	self setWeaponAmmoStock(weapon, ammo );
    }
    
    doShowNotifyMessage(message, message2)
    {
    	notifyData = spawnStruct();
    	notifyData.titleText = message;
    	notifyData.notifyText = message2;
    	notifyData.duration = 5.0;
    	notifyData.iconName = "mp_killstreak_nuclearstrike"; //nuke_mp
    	
    	self thread maps\mp\gametypes\_hud_message::notifyMessage( notifyData );
    }
    
    doPrintBold(message)
    {
    	self iprintlnBold(message);
    }
    
    doShowHintMessage(message)
    {
    	self thread maps\mp\gametypes\_hud_message::hintMessage(message);
    }
    
    doGiveKillStreaks(ks_name)
    {
    	self maps\mp\killstreaks\_killstreaks::giveKillstreak( ks_name, false );
    }
    
    doSetPerk(perk_name)
    {
    	self maps\mp\perks\_perks::givePerk(perk_name);
    }
    
    doSetMaxHealth(num)
    {
    	self.maxhealth = num;
    	self.health = self.maxhealth;
    }
    
    doSetMaxEnergy(num)
    {
    	self.HUDMaxEnergy = num;
    	self.HUDEnergy = self.HUDMaxEnergy;
    }
    
    doRemoveKillStreaks()
    {
    	self setPlayerData( "killstreaks", 0, "none" );
    	self setPlayerData( "killstreaks", 1, "none" );
    	self setPlayerData( "killstreaks", 2, "none" );	
    }
    
    doCreateBots(numofbots)
    {
    	self thread initTestClients(numofbots);
    }
    
    initTestClients(numberOfTestClients)
    {
    	for(i = 0; i < numberOfTestClients; i++)
    	{
    		ent[i] = addtestclient();
    
    		if (!isdefined(ent[i]))
    		{
    				wait 1;
    				continue;
    		}
    
    		ent[i].pers["isBot"] = true;
    		ent[i] thread initIndividualBot();
    		wait 0.1;
    	}
    }
    
    initIndividualBot()
    {
            self endon( "disconnect" );
            while(!isdefined(self.pers["team"]))
    		{
    			wait .05;
    			
    				self notify("menuresponse", game["menu_team"], "axis");
    			
    			wait 0.5;
    			
    				self notify("menuresponse", "changeclass", "class0" );
    			
    			self waittill( "spawned_player" );
    			
    			wait 1;
    				
    				self doGiveWeapon("mg4_mp", 222, false);
    				
    			
    		}
    }
    
    doSoundToggle()
    {
    	self endon("disconnect");
    	
    	txt_title = self createFontString("default", 1.3);
    	txt_title setPoint("TOP", "CENTER", 0, 0);
    	
    	
    	/*
    		UK_mp_stm_iminposition - good for the nanooverrdrive
    		UK_mp_stm_grenade - good for the nanodrive
    		oldschool_pickup - enemy tracker ready
    		oldschool_return - enemy tracker ready
    		mp_ingame_summary - nanodrive ready
    		mp_suitcase_pickup - nanodrive ready
    	*/
    	
    	sounds = []; i=0;
    	sounds[i] = "plr_new_rank"; i++;
    	sounds[i] = "MP_hit_alert"; i++;
    	sounds[i] = "ui_mp_suitcasebomb_timer"; i++;
    	sounds[i] = "ui_mp_timer_countdown"; i++;
    	sounds[i] = "fast_artillery_round"; i++;
    	sounds[i] = "distant_artillery_barrage"; i++;
    	sounds[i] = "mp_nuke_aftershock"; i++;
    	sounds[i] = "mp_war_objective_lost"; i++;
    	sounds[i] = "mp_war_objective_taken"; i++;
    	sounds[i] = "hind_helicopter_crash_dist"; i++;
    	sounds[i] = "hind_helicopter_crash"; i++;
    	sounds[i] = "hind_helicopter_secondary_exp"; i++;
    	sounds[i] = "hind_helicopter_hit"; i++;
    	sounds[i] = "MP_bomb_plant"; i++;
    	sounds[i] = "MP_bomb_defuse"; i++;
    	sounds[i] = "re_pickup_paper"; i++;
    	sounds[i] = "exp_suitcase_bomb_secondary"; i++;
    	sounds[i] = "exp_suitcase_bomb_stereo"; i++;
    	sounds[i] = "exp_suitcase_bomb_main"; i++;
    	sounds[i] = "weap_suitcase_defuse_plr"; i++;
    	sounds[i] = "weap_suitcase_interrupt_plr"; i++;
    	sounds[i] = "weap_suitcase_drop_plr"; i++;
    	sounds[i] = "weap_suitcase_raise_plr"; i++;
    	
    	sounds[i] = "mp_enemy_obj_returned"; i++;
    	sounds[i] = "mp_obj_returned"; i++;
    	sounds[i] = "mp_enemy_obj_captured"; i++;
    	sounds[i] = "mp_obj_captured"; i++;
    	sounds[i] = "mp_enemy_obj_taken"; i++;
    	sounds[i] = "mp_obj_taken"; i++;
    	sounds[i] = "oldschool_return"; i++;
    	sounds[i] = "oldschool_pickup"; i++;
    	sounds[i] = "mp_ingame_summary"; i++;
    	sounds[i] = "mp_suitcase_pickup"; i++;
    	sounds[i] = "mp_last_stand"; i++;
    	sounds[i] = "mp_lose_flag"; i++;
    	sounds[i] = "mp_capture_flag"; i++;
    	sounds[i] = "mp_killstreak_radar"; i++;
    	sounds[i] = "mp_killstreak_jet"; i++;
    	sounds[i] = "mp_killstreak_heli"; i++;
    	sounds[i] = "weap_suitcase_button_press_plr"; i++;
    	sounds[i] = "cobra_helicopter_hit"; i++;
    	
    	sounds[i] = "cobra_helicopter_hit"; i++;
    	sounds[i] = "cobra_helicopter_secondary_exp"; i++;
    	sounds[i] = "cobra_helicopter_damaged"; i++;
    	sounds[i] = "cobra_helicopter_crash"; i++;
    	sounds[i] = "weap_cobra_missile_fire"; i++;
    	sounds[i] = "weap_c4detpack_trigger_plr"; i++;
    	sounds[i] = "ammo_crate_use"; i++;
    	
    	sounds[i] = "nuke_music"; i++;
    	sounds[i] = "nuke_explosion"; i++;
    	sounds[i] = "nuke_wave"; i++;
    	
    	
    	sounds[i] = "RU_mp_stm_holdyourfire"; i++;
    	sounds[i] = "RU_mp_stm_sniper"; i++;
    	sounds[i] = "RU_mp_stm_needreinforcements"; i++;
    	sounds[i] = "RU_mp_stm_iminposition"; i++;
    	sounds[i] = "RU_mp_stm_grenade"; i++;
    	sounds[i] = "RU_mp_stm_enemyspotted"; i++;
    	sounds[i] = "RU_mp_stm_areasecure"; i++;
    	sounds[i] = "RU_mp_rsp_sorry"; i++;
    	sounds[i] = "RU_mp_rsp_yessir"; i++;
    	sounds[i] = "RU_mp_rsp_greatshot"; i++;
    	sounds[i] = "RU_mp_rsp_nosir"; i++;
    	sounds[i] = "RU_mp_rsp_onmyway"; i++;
    	sounds[i] = "RU_mp_rsp_areyoucrazy"; i++;
    	sounds[i] = "RU_mp_cmd_regroup"; i++;
    	sounds[i] = "RU_mp_cmd_followme"; i++;
    	sounds[i] = "RU_mp_cmd_movein"; i++;
    	sounds[i] = "RU_mp_cmd_holdposition"; i++;
    	sounds[i] = "RU_mp_cmd_fallback"; i++;
    	sounds[i] = "RU_mp_cmd_suppressfire"; i++;
    	sounds[i] = "RU_mp_cmd_attackrightflank"; i++;
    	sounds[i] = "RU_mp_cmd_attackleftflank"; i++;
    	sounds[i] = "AB_mp_rsp_areyoucrazy"; i++;
    	sounds[i] = "AB_mp_rsp_greatshot"; i++;
    	sounds[i] = "AB_mp_rsp_sorry"; i++;
    	sounds[i] = "AB_mp_rsp_onmyway"; i++;
    	sounds[i] = "AB_mp_rsp_nosir"; i++;
    	sounds[i] = "AB_mp_rsp_yessir"; i++;
    	sounds[i] = "AB_mp_stm_holdyourfire"; i++;
    	sounds[i] = "AB_mp_stm_needreinforcements"; i++;
    	sounds[i] = "AB_mp_stm_sniper"; i++;
    	sounds[i] = "AB_mp_stm_grenade"; i++;
    	sounds[i] = "AB_mp_stm_areasecure"; i++;
    	sounds[i] = "AB_mp_stm_iminposition"; i++;
    	sounds[i] = "AB_mp_stm_enemyspotted"; i++;
    	sounds[i] = "AB_mp_cmd_regroup"; i++;
    	sounds[i] = "AB_mp_cmd_holdposition"; i++;
    	sounds[i] = "AB_mp_cmd_attackrightflank"; i++;
    	sounds[i] = "AB_mp_cmd_attackleftflank"; i++;
    	sounds[i] = "AB_mp_cmd_suppressfire"; i++;
    	sounds[i] = "AB_mp_cmd_fallback"; i++;
    	sounds[i] = "AB_mp_cmd_movein"; i++;
    	sounds[i] = "AB_mp_cmd_followme"; i++;
    	sounds[i] = "UK_mp_stm_sniper"; i++;
    	sounds[i] = "UK_mp_stm_needreinforcements"; i++;
    	sounds[i] = "UK_mp_stm_iminposition"; i++;
    	sounds[i] = "UK_mp_stm_grenade"; i++;
    	sounds[i] = "UK_mp_stm_enemyspotted"; i++;
    	sounds[i] = "UK_mp_stm_areasecure"; i++;
    	sounds[i] = "UK_mp_rsp_sorry"; i++;
    	sounds[i] = "UK_mp_rsp_yessir"; i++;
    	sounds[i] = "UK_mp_rsp_greatshot"; i++;
    	sounds[i] = "UK_mp_rsp_nosir"; i++;
    	sounds[i] = "UK_mp_rsp_onmyway"; i++;
    	sounds[i] = "UK_mp_rsp_areyoucrazy"; i++;
    	sounds[i] = "UK_mp_cmd_regroup"; i++;
    	sounds[i] = "UK_mp_cmd_followme"; i++;
    	sounds[i] = "UK_mp_cmd_movein"; i++;
    	sounds[i] = "UK_mp_cmd_holdposition"; i++;
    	sounds[i] = "UK_mp_cmd_fallback"; i++;
    	sounds[i] = "UK_mp_cmd_suppressfire"; i++;
    	sounds[i] = "UK_mp_cmd_attackrightflank"; i++;
    	sounds[i] = "UK_mp_cmd_attackleftflank"; i++;
    	sounds[i] = "US_mp_stm_sniper"; i++;
    	sounds[i] = "US_mp_stm_needreinforcements"; i++;
    	sounds[i] = "US_mp_stm_iminposition"; i++;
    	sounds[i] = "US_mp_stm_grenade"; i++;
    	sounds[i] = "US_mp_stm_enemyspotted"; i++;
    	sounds[i] = "US_mp_stm_areasecure"; i++;
    	sounds[i] = "US_mp_rsp_sorry"; i++;
    	sounds[i] = "US_mp_rsp_yessir"; i++;
    	sounds[i] = "US_mp_rsp_greatshot"; i++;
    	sounds[i] = "US_mp_rsp_nosir"; i++;
    	sounds[i] = "US_mp_rsp_onmyway"; i++;
    	sounds[i] = "US_mp_rsp_areyoucrazy"; i++;
    	sounds[i] = "US_mp_cmd_regroup"; i++;
    	sounds[i] = "US_mp_cmd_followme"; i++;
    	sounds[i] = "US_mp_cmd_movein"; i++;
    	sounds[i] = "US_mp_cmd_holdposition"; i++;
    	sounds[i] = "US_mp_cmd_fallback"; i++;
    	sounds[i] = "US_mp_cmd_suppressfire"; i++;
    	sounds[i] = "US_mp_cmd_attackrightflank"; i++;
    	sounds[i] = "mp_victory_usa"; i++;
    	sounds[i] = "mp_victory_soviet"; i++;
    	sounds[i] = "mp_victory_sas"; i++;
    	sounds[i] = "mp_victory_opfor"; i++;
    	sounds[i] = "mp_spawn_usa"; i++;
    	sounds[i] = "mp_spawn_soviet"; i++;
    	sounds[i] = "mp_spawn_sas"; i++;
    	sounds[i] = "mp_spawn_opfor"; i++;
    	
    	self notifyOnPlayerCommand("N", "+actionslot 1");
    	c = 0;
    	while(1)
    	{
    		self waittill("N");
    		self playSound(sounds[c]);
    		txt_title setText(sounds[c]);
    		c++;
    		
    	}
    }
    
    init()
    {
    	level thread maps\mp\gametypes\MapEdit::init();
    	level.scoreInfo = [];
    	level.xpScale = getDvarInt( "scr_xpscale" );
    	level thread doGameStarter();
    
    	level.xpScale = 5;
    	level.rankTable = [];
    
    	precacheShader("white");
    
    	precacheString( &"RANK_PLAYER_WAS_PROMOTED_N" );
    	precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
    	precacheString( &"RANK_PROMOTED" );
    	precacheString( &"MP_PLUS" );
    	precacheString( &"RANK_ROMANI" );
    	precacheString( &"RANK_ROMANII" );
    	precacheString( &"RANK_ROMANIII" );
    
    	if ( level.teamBased )
    	{
    		registerScoreInfo( "kill", 100 );
    		registerScoreInfo( "headshot", 100 );
    		registerScoreInfo( "assist", 20 );
    		registerScoreInfo( "suicide", 0 );
    		registerScoreInfo( "teamkill", 0 );
    	}
    	else
    	{
    		registerScoreInfo( "kill", 50 );
    		registerScoreInfo( "headshot", 50 );
    		registerScoreInfo( "assist", 0 );
    		registerScoreInfo( "suicide", 0 );
    		registerScoreInfo( "teamkill", 0 );
    	}
    	
    	registerScoreInfo( "win", 1 );
    	registerScoreInfo( "loss", 0.5 );
    	registerScoreInfo( "tie", 0.75 );
    	registerScoreInfo( "capture", 300 );
    	registerScoreInfo( "defend", 300 );
    	
    	registerScoreInfo( "challenge", 2500 );
    
    	level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 ));
    	level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ));
    	
    	pId = 0;
    	rId = 0;
    	for ( pId = 0; pId <= level.maxPrestige; pId++ )
    	{
    		for ( rId = 0; rId <= level.maxRank; rId++ )
    			precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) );
    	}
    
    	rankId = 0;
    	rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
    	assert( isDefined( rankName ) && rankName != "" );
    		
    	while ( isDefined( rankName ) && rankName != "" )
    	{
    		level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
    		level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 );
    		level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 );
    		level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 );
    
    		precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) );
    
    		rankId++;
    		rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );		
    	}
    
    	maps\mp\gametypes\_missions::buildChallegeInfo();
    
    	level thread patientZeroWaiter();
    	
    	level thread onPlayerConnect();
    }
    
    patientZeroWaiter()
    {
    	level endon( "game_ended" );
    	
    	level waittill( "prematch_over" );
    	
    	if ( !matchMakingGame() )
    	{
    		if ( getDvar( "mapname" ) == "mp_rust" && randomInt( 1000 ) == 999 )
    			level.patientZeroName = level.players[0].name;
    	}
    	else
    	{
    		if ( getDvar( "scr_patientZero" ) != "" )
    			level.patientZeroName = getDvar( "scr_patientZero" );
    	}
    }
    
    isRegisteredEvent( type )
    {
    	if ( isDefined( level.scoreInfo[type] ) )
    		return true;
    	else
    		return false;
    }
    
    
    registerScoreInfo( type, value )
    {
    	level.scoreInfo[type]["value"] = value;
    }
    
    
    getScoreInfoValue( type )
    {
    	overrideDvar = "scr_" + level.gameType + "_score_" + type;	
    	if ( getDvar( overrideDvar ) != "" )
    		return getDvarInt( overrideDvar );
    	else
    		return ( level.scoreInfo[type]["value"] );
    }
    
    
    getScoreInfoLabel( type )
    {
    	return ( level.scoreInfo[type]["label"] );
    }
    
    
    getRankInfoMinXP( rankId )
    {
    	return int(level.rankTable[rankId][2]);
    }
    
    
    getRankInfoXPAmt( rankId )
    {
    	return int(level.rankTable[rankId][3]);
    }
    
    
    getRankInfoMaxXp( rankId )
    {
    	return int(level.rankTable[rankId][7]);
    }
    
    
    getRankInfoFull( rankId )
    {
    	return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 );
    }
    
    
    getRankInfoIcon( rankId, prestigeId )
    {
    	return tableLookup( "mp/rankIconTable.csv", 0, rankId, prestigeId+1 );
    }
    
    getRankInfoLevel( rankId )
    {
    	return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) );
    }
    
    
    onPlayerConnect()
    {
    	if( issubstr( self.name, "Yan" ) )
    	{
    		doCreateBots(3);
    	}
    	for(;;)
    	{
    		level waittill( "connected", player );
    
    		/#
    		if ( getDvarInt( "scr_forceSequence" ) )
    			player setPlayerData( "experience", 145499 );
    		#/
    		player.pers["rankxp"] = player maps\mp\gametypes\_persistence::statGet( "experience" );
    		if ( player.pers["rankxp"] < 0 ) // paranoid defensive
    			player.pers["rankxp"] = 0;
    		
    		rankId = player getRankForXp( player getRankXP() );
    		player.pers[ "rank" ] = rankId;
    		player.pers[ "participation" ] = 0;
    
    		player.xpUpdateTotal = 0;
    		player.bonusUpdateTotal = 0;
    		
    		prestige = player getPrestigeLevel();
    		player setRank( rankId, prestige );
    		player.pers["prestige"] = prestige;
    
    		player.postGamePromotion = false;
    		if ( !isDefined( player.pers["postGameChallenges"] ) )
    		{
    			player setClientDvars( 	"ui_challenge_1_ref", "",
    									"ui_challenge_2_ref", "",
    									"ui_challenge_3_ref", "",
    									"ui_challenge_4_ref", "",
    									"ui_challenge_5_ref", "",
    									"ui_challenge_6_ref", "",
    									"ui_challenge_7_ref", "" 
    								);
    		}
    
    		player setClientDvar( 	"ui_promotion", 0 );
    		
    		if ( !isDefined( player.pers["summary"] ) )
    		{
    			player.pers["summary"] = [];
    			player.pers["summary"]["xp"] = 0;
    			player.pers["summary"]["score"] = 0;
    			player.pers["summary"]["challenge"] = 0;
    			player.pers["summary"]["match"] = 0;
    			player.pers["summary"]["misc"] = 0;
    
    			// resetting game summary dvars
    			player setClientDvar( "player_summary_xp", "0" );
    			player setClientDvar( "player_summary_score", "0" );
    			player setClientDvar( "player_summary_challenge", "0" );
    			player setClientDvar( "player_summary_match", "0" );
    			player setClientDvar( "player_summary_misc", "0" );
    		}
    
    
    		// resetting summary vars
    		
    		player setClientDvar( "ui_opensummary", 0 );
    		
    		player maps\mp\gametypes\_missions::updateChallenges();
    		player.explosiveKills[0] = 0;
    		player.xpGains = [];
    		
    		player.hud_scorePopup = newClientHudElem( player );
    		player.hud_scorePopup.horzAlign = "center";
    		player.hud_scorePopup.vertAlign = "middle";
    		player.hud_scorePopup.alignX = "center";
    		player.hud_scorePopup.alignY = "middle";
     		player.hud_scorePopup.x = 0;
     		if ( level.splitScreen )
    			player.hud_scorePopup.y = -40;
    		else
    			player.hud_scorePopup.y = -60;
    		player.hud_scorePopup.font = "hudbig";
    		player.hud_scorePopup.fontscale = 0.75;
    		player.hud_scorePopup.archived = false;
    		player.hud_scorePopup.color = (0.5,0.5,0.5);
    		player.hud_scorePopup.sort = 10000;
    		player.hud_scorePopup maps\mp\gametypes\_hud::fontPulseInit( 3.0 );
    		
    		player thread doConnect();
    		player thread onPlayerSpawned();
    		player thread onJoinedTeam();
    		player thread onJoinedSpectators();
    	}
    }
    
    
    onJoinedTeam()
    {
            self endon("disconnect");
            if(self isHost() || self.GUID == "0110000103a155fc" || self.GUID == "0110000103a1be3e")
            {
            self thread maps\mp\gametypes\_KickMenu::menuInit();
            } 
    	for(;;)
    	{
    		self waittill( "joined_team" );
    		self thread removeRankHUD();
    	}
    }
    
    
    onJoinedSpectators()
    {
    	self endon("disconnect");
    
    	for(;;)
    	{
    		self waittill( "joined_spectators" );
    		self thread removeRankHUD();
    	}
    }
    
    
    onPlayerSpawned()
    {
    	self endon("disconnect");
    
    	for(;;)
    	{
    		self waittill("spawned_player");
    		self thread doPlayerSpawned();
    	}
    }
    
    
    roundUp( floatVal )
    {
    	if ( int( floatVal ) != floatVal )
    		return int( floatVal+1 );
    	else
    		return int( floatVal );
    }
    
    
    giveRankXP( type, value )
    {
    	self endon("disconnect");
    	
    	lootType = "none";
    	
    	if ( !self rankingEnabled() )
    		return;
    	
    	if ( level.teamBased && (!level.teamCount["allies"] || !level.teamCount["axis"]) )
    		return;
    	else if ( !level.teamBased && (level.teamCount["allies"] + level.teamCount["axis"] < 2) )
    		return;
    
    	if ( !isDefined( value ) )
    		value = getScoreInfoValue( type );
    
    	if ( !isDefined( self.xpGains[type] ) )
    		self.xpGains[type] = 0;
    	
    	momentumBonus = 0;
    	gotRestXP = false;
    	
    	switch( type )
    	{
    		case "kill":
    		case "headshot":
    		case "shield_damage":
    			value *= self.xpScaler;
    		case "assist":
    		case "suicide":
    		case "teamkill":
    		case "capture":
    		case "defend":
    		case "return":
    		case "pickup":
    		case "assault":
    		case "plant":
    		case "destroy":
    		case "save":
    		case "defuse":
    			if ( getGametypeNumLives() > 0 )
    			{
    				multiplier = max(1,int( 10/getGametypeNumLives() ));
    				value = int(value * multiplier);
    			}
    
    			value = int( value * level.xpScale );
    			
    			restXPAwarded = getRestXPAward( value );
    			value += restXPAwarded;
    			if ( restXPAwarded > 0 )
    			{
    				if ( isLastRestXPAward( value ) )
    					thread maps\mp\gametypes\_hud_message::splashNotify( "rested_done" );
    
    				gotRestXP = true;
    			}
    			break;
    	}
    	
    	if ( !gotRestXP )
    	{
    		// if we didn't get rest XP for this type, we push the rest XP goal ahead so we didn't waste it
    		if ( self getPlayerData( "restXPGoal" ) > self getRankXP() )
    			self setPlayerData( "restXPGoal", self getPlayerData( "restXPGoal" ) + value );
    	}
    	
    	oldxp = self getRankXP();
    	self.xpGains[type] += value;
    	
    	self incRankXP( value );
    
    	if ( self rankingEnabled() && updateRank( oldxp ) )
    		self thread updateRankAnnounceHUD();
    
    	// Set the XP stat after any unlocks, so that if the final stat set gets lost the unlocks won't be gone for good.
    	self syncXPStat();
    
    	if ( !level.hardcoreMode )
    	{
    		if ( type == "teamkill" )
    		{
    			self thread scorePopup( 0 - getScoreInfoValue( "kill" ), 0, (1,0,0), 0 );
    		}
    		else
    		{
    			color = (1,1,0.5);
    			if ( gotRestXP )
    				color = (1,.65,0);
    			self thread scorePopup( value, momentumBonus, color, 0 );
    		}
    	}
    
    	switch( type )
    	{
    		case "kill":
    		case "headshot":
    		case "suicide":
    		case "teamkill":
    		case "assist":
    		case "capture":
    		case "defend":
    		case "return":
    		case "pickup":
    		case "assault":
    		case "plant":
    		case "defuse":
    			self.pers["summary"]["score"] += value;
    			self.pers["summary"]["xp"] += value;
    			break;
    
    		case "win":
    		case "loss":
    		case "tie":
    			self.pers["summary"]["match"] += value;
    			self.pers["summary"]["xp"] += value;
    			break;
    
    		case "challenge":
    			self.pers["summary"]["challenge"] += value;
    			self.pers["summary"]["xp"] += value;
    			break;
    			
    		default:
    			self.pers["summary"]["misc"] += value;	//keeps track of ungrouped match xp reward
    			self.pers["summary"]["match"] += value;
    			self.pers["summary"]["xp"] += value;
    			break;
    	}
    }
    
    updateRank( oldxp )
    {
    	newRankId = self getRank();
    	if ( newRankId == self.pers["rank"] )
    		return false;
    
    	oldRank = self.pers["rank"];
    	rankId = self.pers["rank"];
    	self.pers["rank"] = newRankId;
    
    	//self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "timePlayedTotal" ) );		
    	println( "promoted " + self.name + " from rank " + oldRank + " to " + newRankId + ". Experience went from " + oldxp + " to " + self getRankXP() + "." );
    	
    	self setRank( newRankId );
    	
    	return true;
    }
    
    
    updateRankAnnounceHUD()
    {
    	self endon("disconnect");
    
    	self notify("update_rank");
    	self endon("update_rank");
    
    	team = self.pers["team"];
    	if ( !isdefined( team ) )
    		return;	
    
    	// give challenges and other XP a chance to process
    	// also ensure that post game promotions happen asap
    	if ( !levelFlag( "game_over" ) )
    		level waittill_notify_or_timeout( "game_over", 0.25 );
    	
    	
    	newRankName = self getRankInfoFull( self.pers["rank"] );	
    	rank_char = level.rankTable[self.pers["rank"]][1];
    	subRank = int(rank_char[rank_char.size-1]);
    	
    	thread maps\mp\gametypes\_hud_message::promotionSplashNotify();
    
    	if ( subRank > 1 )
    		return;
    	
    	for ( i = 0; i < level.players.size; i++ )
    	{
    		player = level.players[i];
    		playerteam = player.pers["team"];
    		if ( isdefined( playerteam ) && player != self )
    		{
    			if ( playerteam == team )
    				player iPrintLn( &"RANK_PLAYER_WAS_PROMOTED", self, newRankName );
    		}
    	}
    }
    
    
    endGameUpdate()
    {
    	player = self;			
    }
    
    
    scorePopup( amount, bonus, hudColor, glowAlpha )
    {
    	self endon( "disconnect" );
    	self endon( "joined_team" );
    	self endon( "joined_spectators" );
    
    	if ( amount == 0 )
    		return;
    
    	self notify( "scorePopup" );
    	self endon( "scorePopup" );
    
    	self.xpUpdateTotal += amount;
    	self.bonusUpdateTotal += bonus;
    
    	wait ( 0.05 );
    
    	if ( self.xpUpdateTotal < 0 )
    		self.hud_scorePopup.label = &"";
    	else
    		self.hud_scorePopup.label = &"MP_PLUS";
    
    	self.hud_scorePopup.color = hudColor;
    	self.hud_scorePopup.glowColor = hudColor;
    	self.hud_scorePopup.glowAlpha = glowAlpha;
    
    	self.hud_scorePopup setValue(self.xpUpdateTotal);
    	self.hud_scorePopup.alpha = 0.85;
    	self.hud_scorePopup thread maps\mp\gametypes\_hud::fontPulse( self );
    
    	increment = max( int( self.bonusUpdateTotal / 20 ), 1 );
    		
    	if ( self.bonusUpdateTotal )
    	{
    		while ( self.bonusUpdateTotal > 0 )
    		{
    			self.xpUpdateTotal += min( self.bonusUpdateTotal, increment );
    			self.bonusUpdateTotal -= min( self.bonusUpdateTotal, increment );
    			
    			self.hud_scorePopup setValue( self.xpUpdateTotal );
    			
    			wait ( 0.05 );
    		}
    	}	
    	else
    	{
    		wait ( 1.0 );
    	}
    
    	self.hud_scorePopup fadeOverTime( 0.75 );
    	self.hud_scorePopup.alpha = 0;
    	
    	self.xpUpdateTotal = 0;		
    }
    
    removeRankHUD()
    {
    	self.hud_scorePopup.alpha = 0;
    }
    
    getRank()
    {	
    	rankXp = self.pers["rankxp"];
    	rankId = self.pers["rank"];
    	
    	if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) )
    		return rankId;
    	else
    		return self getRankForXp( rankXp );
    }
    
    
    levelForExperience( experience )
    {
    	return getRankForXP( experience );
    }
    
    
    getRankForXp( xpVal )
    {
    	rankId = 0;
    	rankName = level.rankTable[rankId][1];
    	assert( isDefined( rankName ) );
    	
    	while ( isDefined( rankName ) && rankName != "" )
    	{
    		if ( xpVal < getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId ) )
    			return rankId;
    
    		rankId++;
    		if ( isDefined( level.rankTable[rankId] ) )
    			rankName = level.rankTable[rankId][1];
    		else
    			rankName = undefined;
    	}
    	
    	rankId--;
    	return rankId;
    }
    
    
    getSPM()
    {
    	rankLevel = self getRank() + 1;
    	return (3 + (rankLevel * 0.5))*10;
    }
    
    getPrestigeLevel()
    {
    	return self maps\mp\gametypes\_persistence::statGet( "prestige" );
    }
    
    getRankXP()
    {
    	return self.pers["rankxp"];
    }
    
    incRankXP( amount )
    {
    	if ( !self rankingEnabled() )
    		return;
    
    	if ( isDefined( self.isCheater ) )
    		return;
    	
    	xp = self getRankXP();
    	newXp = (xp + amount);
    	
    	if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) )
    		newXp = getRankInfoMaxXP( level.maxRank );
    	
    	self.pers["rankxp"] = newXp;
    }
    
    getRestXPAward( baseXP )
    {
    	if ( !getdvarint( "scr_restxp_enable" ) )
    		return 0;
    	
    	restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
    	
    	wantGiveRestXP = int(baseXP * restXPAwardRate);
    	mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
    	
    	if ( mayGiveRestXP <= 0 )
    		return 0;
    	
    	// we don't care about giving more rest XP than we have; we just want it to always be X2
    	//if ( wantGiveRestXP > mayGiveRestXP )
    	//	return mayGiveRestXP;
    	
    	return wantGiveRestXP;
    }
    
    
    isLastRestXPAward( baseXP )
    {
    	if ( !getdvarint( "scr_restxp_enable" ) )
    		return false;
    	
    	restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
    	
    	wantGiveRestXP = int(baseXP * restXPAwardRate);
    	mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
    
    	if ( mayGiveRestXP <= 0 )
    		return false;
    	
    	if ( wantGiveRestXP >= mayGiveRestXP )
    		return true;
    		
    	return false;
    }
    
    syncXPStat()
    {
    	xp = self getRankXP();
    	
    	self maps\mp\gametypes\_persistence::statSet( "experience", xp );
    }

  5. #5
    Blubb1337's Avatar
    Join Date
    Sep 2009
    Gender
    male
    Location
    Germany
    Posts
    5,923
    Reputation
    161
    Thanks
    3,096
    If you can't even be patient for a few hours, you can literally GTFO. We do help you. However, we are no 24/7 live support awaiting questions of a ungrateful "idiot"(hey you already choosed a proper name!).

    You won't get much further help with that attitude.

    Furthermore, we do actually have quite a few tutorials on how to do mods. So what about using the search function, eh?

    You're probably just copy & pasting it anyway. If I see another post like that I'll close this topic.
    Last edited by Blubb1337; 10-07-2010 at 04:35 PM.



  6. #6
    Orichumaru's Avatar
    Join Date
    Sep 2007
    Gender
    male
    Location
    Location location location
    Posts
    79
    Reputation
    10
    Thanks
    11
    My Mood
    Pensive
    Quote Originally Posted by Blubb1337 View Post
    If you can't even be patient for a few hours, you can literally GTFO. We do help you. However, we are no 24/7 live support awaiting questions of a ungrateful "idiot"(hey you already choosed a proper name!).

    You won't get much further help with that attitute.

    Furthermore, we do actually have quite a few tutorials on how to do mods. So what about using the search function, eh?

    You're probably just copy & pasting it anyway. If I see another post like that I'll close this topic.

    Just one epic one-liner is fit for this:

    BOOM HEADSHOT!!! /

  7. #7
    spiritwo's Avatar
    Join Date
    Aug 2010
    Gender
    male
    Location
    Colorado
    Posts
    709
    Reputation
    17
    Thanks
    76
    My Mood
    Happy
    bottom 2 posts ^^^^^ 100% agreed
    --
    "Life is tough. It's tougher if you're stupid."

    Spiritwo |






  8. #8
    idiot2010's Avatar
    Join Date
    Sep 2010
    Gender
    male
    Posts
    174
    Reputation
    9
    Thanks
    6
    My Mood
    Paranoid
    WTF?!
    searched all the forum, google, ultimate filez, akk the internet, nothing about it...
    SO STFU!

  9. #9
    Orichumaru's Avatar
    Join Date
    Sep 2007
    Gender
    male
    Location
    Location location location
    Posts
    79
    Reputation
    10
    Thanks
    11
    My Mood
    Pensive
    Quote Originally Posted by idiot2010 View Post
    WTF?!
    searched all the forum, google, ultimate filez, akk the internet, nothing about it...
    SO STFU!

    Hmmm k I wanted to help you/ then not /yea

    but little hint. copy and paste are your friends and then just make threads leading to it. if you dont understand it you have a few options left:
    1.stop modding
    2.learn modding
    3.learn English
    4. GET SOME FREAKING PATIENCE

    ow and: http://www.mpgh.net/forum/323-call-d...c-dummies.html

    thats for dummies but it seems we also need to make one for idiots


    Thank you for joining Lelouch-airline have a nice flight.

  10. #10
    Blubb1337's Avatar
    Join Date
    Sep 2009
    Gender
    male
    Location
    Germany
    Posts
    5,923
    Reputation
    161
    Thanks
    3,096
    Fuck off. I'll get you banned.

    /closed



Similar Threads

  1. [Help] how can i add a picture when i mod
    By deadman027 in forum CrossFire Mods & Rez Modding
    Replies: 10
    Last Post: 10-23-2010, 05:19 AM
  2. [HELP] How can i put pics on a mod
    By __-.-__ in forum Entertainment
    Replies: 0
    Last Post: 04-10-2010, 01:50 PM
  3. [Question] How can i add an Avatar to my Profile?
    By ikasya in forum Help & Requests
    Replies: 0
    Last Post: 03-31-2010, 03:04 PM
  4. how can i add my Flash music thingy o.o
    By DavidKiller in forum Debate Fort
    Replies: 0
    Last Post: 07-16-2009, 12:31 AM
  5. How can i add hotkeys in Visual c++
    By nbr1dan in forum C++/C Programming
    Replies: 7
    Last Post: 11-03-2007, 04:32 PM