PDA

View Full Version : Meatbot normal weapons



Ni3ls
1st April 2016, 12:59
Hi all,

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


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.


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


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

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

Ni3ls
2nd April 2016, 13:01
Its old script... It does work. You can delete this whole topic