Results 1 to 2 of 2

Thread: Meatbot normal weapons

  1. #1
    Brigadier General
    Join Date
    Dec 2012
    Posts
    1,012
    Thanks
    440
    Thanked 171 Times in 132 Posts

    Meatbot normal weapons

    Hi all,

    Im looking into the meatbot code (http://www.moddb.com/mods/meatbot-v0...93-sound-final)
    and Im trying to get it working without the special _bot_st weapons. So that bots just use the standard _mp weapons.

    Code:
    	pweapon = "";
    	id = randomInt(6) + 1;
    	if(id == 1)
    		pweapon = "springfield_mp";
    	else if(id == 2)
    		pweapon = "enfield_mp";
    	else if(id == 3)
    		pweapon = "enfield_scope_mp";
    	else if(id == 4)
    		pweapon = "mosin_nagant_mp";
    	else if(id == 5)
    		pweapon = "mosin_nagant_sniper_mp";
    	else if(id == 6)
    		pweapon = "kar98k_mp";
    	else if(id == 7)
    		pweapon = "kar98k_sniper_mp";
    
    		self.pweapon = pweapon; // Cepe7a
    		if(self.pers["team"] == "allies")
    			self notify("menuresponse", game["menu_weapon_allies"], pweapon); // Cepe7a
    		else
    			self notify("menuresponse", game["menu_weapon_axis"], pweapon); // Cepe7a
    		printf("loaded menu: " + game["menu_weapon_axis"] + " loaded weapon: " +pweapon+"\n");
    	// Cepe7a -->
    	// Запоминаем кто из ботов с каким оружием играет
    	players = getentarray("player", "classname");
    	allies = "";
    	axis = "";
    	for(i=0; i<players.size; i++)
    	{
    		player = players[i];
    		if (isDefined(player.isbot) && player.pers["team"] != "spectator")
    		{
    			num = weaponToNumber(player.pers["team"], player.pweapon);
    			if (player.pers["team"] == "allies")
    				allies += num + " ";
    			else
    				axis += num + " ";
    		}
    	}
    	setcvar("_bots_allies", allies);
    	setcvar("_bots_axis", axis);
    	self notify("bot_joined");
    This is working. First I wanted to make a sniper/rifle only.
    But now I want to make it with the default weapons. If I change springfield_mp to for example shotgun_mp (supported for every team),
    the bots dont spawn. They are stuck in spectator mode.

    Code:
    weaponToNumber(team, weapon)
    {
    	num = 0;
    	if(team == "allies")
    	{
    		switch(game["allies"])
    		{
    			case "american":
    				switch (weapon)
    				{
    					case "greasegun_mp"	: num = 1; break;
    					case "m1carbine_mp"	: num = 2; break;
    					case "m1garand_mp"		: num = 3; break;
    					case "springfield_mp"	: num = 1; break;
             			case "shotgun_mp"		: num = 5; break;
    					case "thompson_mp"		: num = 6; break;
    					case "bar_mp"			: num = 7; break;
    				}
    			break;
    			
    			case "british":
    				switch (weapon)
    				{
    					case "sten"			: num = 1; break;
    					case "enfield_mp"		: num = 2; break;
    					case "m1garand_mp"		: num = 3; break;
    					case "enfield_scope_mp": num = 4; break;
    	         		case "shotgun_mp"		: num = 5; break;
    					case "thompson_mp"		: num = 6; break;
    					case "bren_mp"			: num = 7; break;
    				}
    			break;
    			
    			case "russian":
    				switch (weapon)
    				{
    					case "pps42_mp"				: num = 1; break;
    					case "mosin_nagant_mp"			: num = 2; break;
    					case "svt40_mp"				: num = 3; break;
    					case "mosin_nagant_sniper_mp"	: num = 4; break;
             			case "shotgun_mp"				: num = 5; break;
    					case "ppsh_mp"					: num = 6; break;
    				}
    			break;
    		}
    	}
    	else if(team == "axis")
    	{
    		switch (weapon)
    		{
    			case "mp40_mp"			: num = 1; break;
    			case "kar98k_mp"		: num = 2; break;
    			case "g43_mp"			: num = 3; break;
    			case "kar98k_sniper_mp": num = 4; break;
    			case "shotgun_mp"		: num = 5; break;
    			case "mp44_mp"			: num = 6; break;
    		}
    	}
    	return num;
    }
    // <-- Cepe7a
    Code:
    	if(getCvar("bot_autojoin") == "")
    		setCvar("bot_autojoin", 0);
    
    	if(getCvarInt("bot_autojoin") == 0)
    	{
    		// Cepe7a -->
    		s = getcvar("_bots_allies");
    		if (s!="")
    			addBot("allies "+s);
    		s = getcvar("_bots_axis");
    		if (s!="")
    			addBot("axis "+s);
    		// <-- Cepe7a
    	}
    All weapons are precached. What can be the problem?

    EDIT:
    Additional code
    Code:
    addBotToQueue(team, weaponNo)
    {
    	if (isDefined(level.nomorebots))
    		return;
    		
    	for(i=0; i<level.addingbots.size; i++)
    	{
    		if (!isDefined(level.addingbots[i].team))
    			break;
    	}
    	tmp = spawnstruct();
    	tmp.team = team;
    	tmp.weaponNo = weaponNo;
    	level.addingbots[i] = tmp;
    }
    
    
    //--------------------------------------------------------------------------------------------------------------------------------------
    // Level functions
    //--------------------------------------------------------------------------------------------------------------------------------------
    /*
    --------------
     addBot
    --------------
    */
    addBot(team)
    {
    	param = [];
    	param = strtok(team, " ");
    	if (param.size > 0)
    		team = param[0];
    		
    	if (param.size < 1 || (team != "auto" && team != "axis" && team != "allies"))
    	{
    		iprintln("MBOT_ADD_USAGE");
    		return;
    	}
    
    	if (param.size == 1)
    		addBotToQueue(team, "");
    	else
    	{
    		for (i=1; i<param.size; i++)
    			addBotToQueue(team, param[i]);
    	}
    }
    // <-- Cepe7a
    Last edited by Ni3ls; 1st April 2016 at 13:12.

  2. #2
    Brigadier General
    Join Date
    Dec 2012
    Posts
    1,012
    Thanks
    440
    Thanked 171 Times in 132 Posts
    Its old script... It does work. You can delete this whole topic

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •