HelpBots in pvp

Posts 1–10 of 10 · Page 1 of 1
Bots in pvp
i would like that zombies could buy bot that wouldnt be seen in scoremenu.
like zombie buys bot that has same healt as zombie and spawns in front of him.
then bot goes in air line to human and kills in 1 hit. human can kill him.
i tryed compiling with ai mods but failed.
so can any1 help me?
make your story be understandable

you want:
-zombies can buy bots
- the zombie has knife only
- same health as the player has on that current moment
- and it spawn in front of a human

question:
- it must emediatly kill the human? or maybe wait a few sec before killing it
- must it chase the human?
Quote Originally Posted by krijnrien View Post
make your story be understandable

you want:
-zombies can buy bots
- the zombie has knife only
- same health as the player has on that current moment
- and it spawn in front of a human

question:
- it must emediatly kill the human? or maybe wait a few sec before killing it
- must it chase the human?
you want:
-zombies can buy bots
- the bot has knife only
- same health as the zombie-player has on that current moment
- and it spawn in front of a zombie-player

question:
- it must emediatly kill the human? or maybe wait a few sec before killing it good point yea as soon as its 1 unit from human
- must it chase the human? bot should go in air line to closest human so if human move yea



zombies to buy bots lol
Why not? makes game better
still have no idea what you want
i want that zombies could buy bot.
Bot would have same hp as zombie that bought it.
Bot would attack human. It would come to human in fastest way--> including by air.
If bot is close enough to knife he kills human.
so he can fly?? like if a player is in a high position like on top of rust, the bot will just fly to him, not walking to him?
yes the bot will fly to him.
Do u know that it is :
Code:
#include maps\mp\gametypes\_hud_util;
#include maps\mp\_utility;
#include common_scripts\utility;

/////////Zombie Mod Base by Lars0/////////

init()
{
	///////////////////////////////Basic Configuration////////////////////////////////////
	level.scrollinginfo = "Welcome to Zombie Mod by Yamato";
       	level.EndText = "Zombies have eaten the Humans!";
	level.knockback = 500;
	level.fog = 0;
	level.laser = 1;
	level.blur = 0.2;
	level.darkness = -0.1;
	level.fov = 50;
	level.quickmessages = 1;
	level.bloodyzombies = 1;
	level.meleerange = 64;
	level.diehard = 1;
	level.anticamp = 0;
	level thread maps\mp\gametypes\_mapedit::init();   //Play with bunkers, if you dont want bunkers, remove this line.
	//////////////////////////////////////////////////////////////////////////////////////////////

              level.weapons = [];    //Only this weapons are supported in the mod
              level.weapons[0] = "beretta_mp";
              level.weapons[1] = "usp_mp";
              level.weapons[2] = "deserteagle_mp";
              level.weapons[3] = "deserteaglegold_mp";
              level.weapons[4] = "coltanaconda_mp";
              level.weapons[5] = "riotshield_mp";
              level.weapons[6] = "glock_mp";
              level.weapons[7] = "beretta393_mp";
              level.weapons[8] = "mp5k_mp";
              level.weapons[9] = "pp2000_mp";
              level.weapons[10] = "uzi_mp";
              level.weapons[11] = "p90_mp";
              level.weapons[12] = "kriss_mp";
              level.weapons[13] = "ump45_mp";
              level.weapons[14] = "tmp_mp";
              level.weapons[15] = "ak47_mp";
              level.weapons[16] = "m16_mp";
              level.weapons[17] = "m4_mp";
              level.weapons[18] = "fn2000_mp";
              level.weapons[19] = "masada_mp";
              level.weapons[20] = "famas_mp";
              level.weapons[21] = "fal_mp";
              level.weapons[22] = "scar_mp";
              level.weapons[23] = "tavor_mp";
              level.weapons[24] = "m79_mp";
              level.weapons[25] = "rpg_mp";
              level.weapons[26] = "at4_mp";
              level.weapons[27] = "stinger_mp";
              level.weapons[28] = "javelin_mp";
              level.weapons[29] = "barrett_mp";
              level.weapons[30] = "wa2000_mp";
              level.weapons[31] = "m21_mp";
              level.weapons[32] = "cheytac_mp";
              level.weapons[33] = "ranger_mp";
              level.weapons[34] = "model1887_mp";
              level.weapons[35] = "striker_mp";
              level.weapons[36] = "aa12_mp";
              level.weapons[37] = "m1014_mp";
              level.weapons[38] = "spas12_mp";
              level.weapons[39] = "rpd_mp";
              level.weapons[40] = "sa80_mp";
              level.weapons[41] = "mg4_mp";
              level.weapons[42] = "m240_mp";
              level.weapons[43] = "aug_mp";
              level.weapons[44] = "onemanarmy_mp";

	level thread onPlayerConnect();
}

onPlayerConnect()
{
	for(;;)
	{
		level waittill( "connected", player );

		player thread onPlayerSpawned();
		player thread Config();
		player thread NoSpect();
	}
}

NoSpect()
{
	if(self.team == "axis" || self.team == "spectator")
	{
		self notify("menuresponse", game["menu_team"], "allies");
		wait 0.05;
		self notify("menuresponse", "changeclass", "class1");
		return;
	}
}

MatchStart()
{
	level endon( "disconnect" );
	level waittill("prematch_over");
	level.timer = 60;
	while(level.timer > 0)
	{
		level.TText destroy();
		level.TText = level createServerFontString( "objective", 2 );
		level.TText setPoint( "CENTER", "CENTER", 0, 200 );
		level.TText setText("^1Zombie Attack Starts in^5: " + level.timer);
		level.TText.glow = 1;
		level.TText.glowColor = ( 1, 0, 0 );
		level.TText.glowAlpha = 1;
		wait 1;
		level.timer--;
	}
	level.TText destroy();
	level thread PickZombie();
	level thread NoZombies();
	level thread EndMatch();
}

PickZombie()
{
	level endon ( "game_ended" );
	
	while( 1 )
	{
		players = maps\mp\gametypes\_teams::CountPlayers();
		if(players["axis"] == 0)
		{
			FirstZombie = randomInt( level.players.size );
			level.Zombie = level.players[FirstZombie];
			level.players[FirstZombie].Zombie = 1;
			level.Zombie notify("menuresponse", game["menu_team"], "axis");
			level.Zombie playSound( "mp_defeat" );
			level notify("zombie_selected");
			break;
		}
		
	wait 0.05;
	}
}

NoZombies()
{
	level endon ( "game_ended" );
	wait 12;
	while( 1 )
	{
		allplayers = maps\mp\gametypes\_teams::CountPlayers();
		if(allplayers["axis"] == 0)
		{
			level PickZombie();
			break;
		}
		wait 0.05;
	}
}

EndMatch()
{
       	winner = "axis";
	wait 5;
	while( 1 )
	{
		players = maps\mp\gametypes\_teams::CountPlayers();
		if(players["allies"] == 0) 
		{
       			maps\mp\gametypes\_gamelogic::endGame( winner, level.EndText );
		}
	wait 0.05;
	}
}

onPlayerSpawned()
{
	self endon( "disconnect" );
	if(self isHost())
	{
		level thread MatchStart();
		level thread Fog();
	}

	for(;;)
	{
		self waittill( "spawned_player" );
		self thread PlayersSetup();
		self thread HUD();
		self thread QuickMessages();
		self thread AntiCamp();
	}
}

PlayersSetup()   //modify here human and zombie parametres
{
	if(self.team == "allies")
	{
		rweapon = level.weapons[RandomInt( level.weapons.size )];
		rweapon2 = level.weapons[RandomInt( level.weapons.size )];
		self thread Humans( rweapon, rweapon2, 100, "specialty_marathon", 1, "icbm");
	}
	if(self.team == "axis")
	{
		self thread Zombies( "", "beretta_tactical_mp", 300, "specialty_marathon", "specialty_extendedmelee", 1.3);
	}
}

Zombies( weapon, secondary, health, perk, perk2, speed) //Zombies
{
	wait 0.05;
	self _clearPerks();
	self takeAllWeapons();
	self maps\mp\gametypes\_class::setKillstreaks( "none", "none", "none" );
	self thread maps\mp\gametypes\_hud_message::hintMessage("^1You are a Zombie!");
	self giveWeapon( weapon, 0, false );
	self giveWeapon( secondary, 0, false );
	wait 0.05;
	self switchToWeapon(secondary); 
	self setWeaponAmmoClip(secondary, 0);
	self setWeaponAmmoStock(secondary, 0);
	self.maxhealth = health;
	self.health = health;
	self maps\mp\perks\_perks::givePerk(perk);
	self maps\mp\perks\_perks::givePerk(perk2);
	self maps\mp\perks\_perks::givePerk("specialty_thermal");
	self.Zombie = 1;
	self.money = 0;
	self.moveSpeedScaler = speed;
	self thread ZombieWeaponGlitch();
	self thread BloodyZombies();
	self thread Kills();
}

ZombieWeaponGlitch() 
{
	self endon ( "disconnect" );
	self endon ( "death" );
	while(1)
	{
		if(self getCurrentWeapon() == "beretta_tactical_mp")
		{
			self setWeaponAmmoClip("beretta_tactical_mp", 0);
			self setWeaponAmmoStock("beretta_tactical_mp", 0);
		} else {
			current = self getCurrentWeapon();
			self takeWeapon(current);
			self switchToWeapon("beretta_tactical_mp");
		}
		wait 0.05;
	}
}	

Humans( weapon, secondary, health, perk, speed, vision ) //Humans
{
	if(self.team == "axis" || self.team == "spectator")
	{
		self notify("menuresponse", game["menu_team"], "allies");
		wait 0.05;
		self notify("menuresponse", "changeclass", "class1");
		return;
	}
	self notify("menuresponse", "changeclass", "class1");
	wait 0.05;
	self _clearPerks();
	self takeAllWeapons();
	self maps\mp\gametypes\_class::setKillstreaks( "none", "none", "none" );
	self thread maps\mp\gametypes\_hud_message::hintMessage("^3You are a Human!");
	self giveWeapon( weapon, 0, false );
	self giveWeapon( secondary, 0, false );
	wait 0.05;
	self switchToWeapon(weapon); 
	self GiveMaxAmmo(weapon);
	self.maxhealth = health;
	self.health = health;
	self maps\mp\perks\_perks::givePerk(perk);
	self.moveSpeedScaler = speed;
	self.Zombie = 0;
	self thread NightVision();
	self thread Death(); //Make Humans transform in zombies after dying
	self.money = 0;
	self thread Kills();
	while(1)
	{
		self VisionSetNakedForPlayer(vision, 0);
		wait 0.1;
	}
}

Kills()
{
          while(1)
          {
                      	self waittill("killed_enemy");
		if(self.zombie == 0)
		{
                      		self thread maps\mp\gametypes\_rank::scorePopup(100, 0, (0,1,0), 1);
			self.money += 100;
			self notify("moremoney");
		}
		if(self.zombie == 1)
		{
                      		self thread maps\mp\gametypes\_rank::scorePopup(100, 0, (1,0,0), 1);
			self.money += 100;
			self notify("moremoney");
		}
                      	wait 0.1;
          }
}

NightVision() //Human Nightvision
{
        self notifyOnPlayerCommand("night", "+actionslot 3");
        for(;;)
        {
              self waittill("night");
	self VisionSetNakedForPlayer( "black_bw", 0.2 );
              wait 0.2;
              self playSoundToPlayer( "item_nightvision_on", self );
	self VisionSetNakedForPlayer( "default_night_mp", 0 );
              self waittill("night");
	self VisionSetNakedForPlayer( "black_bw", 0.2 );
              wait 0.2;
	self playSoundToPlayer( "item_nightvision_off", self );
              self VisionSetNakedForPlayer( getDvar( "mapname" ), 0 );
         }
}

Death() 
{
	self waittill("death");
	if(self.team == "allies")
	{
		self thread maps\mp\gametypes\_hud_message::hintMessage("^2You have reborn!");
		self notify("menuresponse", game["menu_team"], "axis");
	}
}

HUD() //HUD
{
              barra = createIcon("progress_bar_fg", 800, 32);
              barra setPoint( "", "", 0, -190);   
	barra.foreground = true;
	barra.sort = 56;
	infotext = self createFontString( "default", 1.8 );
	infotext setPoint("","",0,-190);
	infotext.foreground = true;
	infotext.glow = 0;
	infotext.glowColor = ( 0, 0, 0 );
	infotext.glowAlpha = 1;
	infotext.color = ( 1.0, 1.0, 1.0 );
              infotext setText(level.scrollinginfo);
	barrafondo = Bar("", "", 0, -190, 1000, 32, (0, 0.85, 0.3));
	self thread Activarinfo(infotext);
        	self thread DestroyonDeath(barra,infotext,barrafondo);
}

DestroyonDeath(a,b,c)
{
        	self waittill("death");
        	a destroy();
        	b destroy();
        	c destroy();
}

Bar(align, relative, x, y, width, height, color) 
{
	barElemBG = newClientHudElem( self );
	barElemBG.elemType = "bar";
	if ( !level.splitScreen )
	{
		barElemBG.x = -2;
		barElemBG.y = -2;
	}
	barElemBG.width = width;
	barElemBG.height = height;
	barElemBG.align = align;
	barElemBG.relative = relative;
	barElemBG.xOffset = 0;
	barElemBG.yOffset = 0;
	barElemBG.children = [];
	barElemBG.sort = 3;
	barElemBG.color = color;
	barElemBG.alpha = .5;
	barElemBG setParent( level.uiParent );
	barElemBG setShader( "progress_bar_bg", width , height );
	barElemBG.hidden = false;
	barElemBG setPoint(align,relative,x,y);
	return barElemBG;
}

Activarinfo(infotext)
{
	self endon("disconnect");
	for(inicio = 800; inicio >= -800; inicio -= 4)
	{
		infotext.x = inicio;
		if(inicio == -800)
		{
			inicio = 800;
		}
		wait .005;
	}
}

Fog()
{
	if(level.fog == 1)
	{
		level.mapCenter = maps\mp\gametypes\_spawnlogic::findBoxCenter( level.spawnMins, level.spawnMaxs );
		level._effect[ "FOW" ] = loadfx( "dust/nuke_aftermath_mp" );
		PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 0 , 0 , 500 ));
		PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 0 , 2000 , 500 ));
		PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 0 , -2000 , 500 ));
		PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 2000 , 0 , 500 ));
		PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 2000 , 2000 , 500 ));
		PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 2000 , -2000 , 500 ));
		PlayFX(level._effect[ "FOW" ], level.mapCenter + ( -2000 , 0 , 500 ));
		PlayFX(level._effect[ "FOW" ], level.mapCenter + ( -2000 , 2000 , 500 ));
		PlayFX(level._effect[ "FOW" ], level.mapCenter + ( -2000 , -2000 , 500 ));
		PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 0 , 4000 , 500 ));
		PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 0 , -4000 , 500 ));
		PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 4000 , 0 , 500 ));
		PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 4000 , 2000 , 500 ));
		PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 4000 , -4000 , 500 ));
		PlayFX(level._effect[ "FOW" ], level.mapCenter + ( -4000 , 0 , 500 ));
		PlayFX(level._effect[ "FOW" ], level.mapCenter + ( -4000 , 4000 , 500 ));
		PlayFX(level._effect[ "FOW" ], level.mapCenter + ( -4000 , -4000 , 500 ));
	}
}

QuickMessages()
{
       	self endon("disconnect");
	if(level.quickmessages == 1)
	{
      		self notifyOnPlayerCommand("Newstuff", "+talk");
       		for(;;)
       		{
                		self waittill("Newstuff");
                		self openpopupMenu(game["menu_quickcommands"]);
                		wait 1;
        		}
	}
}

BloodyZombies()
{
	if(level.bloodzombies == 1)
	{
		self waittill("death");
	              Blood = loadfx("impacts/flesh_hit_body_fatal_exit");
              	PlayFx( Blood, self.origin );
		PlayFx( Blood, self.origin+(0,0,30));
              	PlayFx( Blood, self.origin+(20,0,50));
		PlayFx( Blood, self.origin+(0,20,50));
		PlayFx( Blood, self.origin+(15,15,30));
              	PlayFx( Blood, self.origin+(20,10,50));
		PlayFx( Blood, self.origin+(10,20,50));
	}
}

AntiCamp()
{
	if(level.anticamp == 1)
	{
		self endon("death");
		self endon("disconnect");
		level waittill("prematch_over");
		for(;;)
		{
			old_origin = self.origin;
			wait 15;
			if(distance(old_origin,self.origin) < 150)
			{
				self iPrintlnbold("^1Dont Camp!");
				self suicide();
				wait 2;
			}
		}
	}
}

Config()
{
	///////Low Ammo Message Dissapears////
	self setClientDvar("lowAmmoWarningNoAmmoColor2", 0, 0, 0, 0);
	self setClientDvar("lowAmmoWarningNoAmmoColor1", 0, 0, 0, 0);

	//////No Team Change/////
	setDvar("ui_allow_teamchange", "0");

	//////Random Dvars/////
	setDvar("party_maxplayers", 30);
	setDvar("party_maxPrivatePartyPlayers", 30);
	setDvar("ui_maxclients", 30);
	setDvar("sv_cheats", 1);

	///////Commando////
	setDvar("player_meleeRange", level.meleerange);

	//////No Turrets///////
	level deletePlacedEntity("misc_turret");

	///////Knockack
	setDvar("g_knockback", level.knockback);

	///////Laser/////
	setDvar("laserForceOn", level.laser);

	//////Auto M16//////
	setDvar("player_burstFireCooldown", 0.01);

	/////Vision//////
              self setClientDvar("r_blur", level.blur);
              self setClientDvar("r_brightness", level.darkness);
              self setClientDvar("cg_fovmin", level.fov);

	/////Team colours////
	setDvar("g_ScoresColor_Allies", "0 0.6 0.9 1");
	setDvar("g_ScoresColor_Axis", "0.8 0.3 0 1");

	////Diehard//////
	setDvar("scr_diehard", level.diehard);

             /////////No Fall Damage Dvars///////
	setDvar( "bg_fallDamageMinHeight", 9998);
	setDvar( "bg_fallDamageMaxHeight", 9999);

	//////Initial Team//////
	if(level.gameState == "intermission" || level.gameState == "starting")
	{
		self notify("menuresponse", game["menu_team"], "allies");
	}
}

Zombie this:?
why did you post this?
Posts 1–10 of 10 · Page 1 of 1
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Need help?