I don't think that would work. Maybe if you added the particle beam as a shape to the editor and manually placed it. You might even be able to kill yourself, hop in the editor and grab the particle beam and copy it out of mission cleanup and paste it into a group, but I don't know if it would be a separate shape from the armor or not. Or just make it a bot. This is from BotPracticeMk-III, maybe it will help.
Code: Select all
instant StaticShape "ArenaBots" {
dataBlock = "TowerSwitch";
name = "ArenaBots";
position = "-16.9701 -588.162 -33.5889";
rotation = "0 0 0";
destroyable = "True";
deleteOnDestroy = "False";
objectiveLine = "10";
numSwitchTeams = "0";
scoreValue = "1";
};
Code: Select all
instant SimGroup "AI" {
instant SimGroup "Bot1" {
instant Marker "Marker1" {
dataBlock = "PathMarker";
name = "";
position = "26.0118 -537.5 536.125";
rotation = "0 0 0";
};
};
Code: Select all
function AI::wieldWeapons(%aiName)
{
%aiId = AI::getId(%aiName);
if(Game::missionType == "DM")
{
dbecho(2, "giving DM weapon select...");
Player::setItemCount(%aiId, blaster, 1);
}
else
{
dbecho(2, "giving normal weapon select...");
Player::setItemCount(%aiId, ParticleBeamWeapon, 1);
Player::setItemCount(%aiId, TankShredder, 1);
Player::setItemCount(%aiId, TankShredderAmmo, 10000);
}
Player::mountItem(%aiId, TankShredder, 0);
AI::SetVar(%aiName, triggerPct, 0.03 );
AI::setVar(%aiName, iq, 100 );
AI::setVar(%aiName, attackMode, 1);
AI::setAutomaticTargets( %aiName );
ai::callbackPeriodic(%aiName, 5, ai::AnniWeaponChange);
}
Code: Select all
function ai::AnniWeaponChange(%aiName)
{
dbecho(2, %aiName @ " thinking....");
%aiId = AI::getId(%aiName);
%curTarget = ai::getTarget( %aiName );
if(%curTarget == -1)
{
return;
}
dbecho(1, %aiName @ " target: " @ %curTarget);
%targLoc = GameBase::getPosition(Client::getOwnedObject(%curTarget));
%aiLoc = GameBase::getPosition(Client::getOwnedObject(%aiId));
%targetDist = Vector::getDistance(%aiLoc, %targLoc);
dbecho(2, "distance to target: " @ %targetDist @
" targetPosition: " @ targLoc @ " aiLocation: " @ %aiLoc);
if(%targetDist > 25)
{
Player::mountItem(%aiId, TankShredder, 0);
AI::SetVar(%aiName, triggerPct, 1.0 );
}
else
{
dbecho(2, "checking for target jet...");
dbecho(2, "jetting? " @ Player::isJetting(%curTarget));
if(Player::isJetting(%curTarget))
{
Player::mountItem(%aiId, TankShredder, 0);
AI::SetVar(%aiName, triggerPct, 1.0 );
}
else
{
Player::mountItem(%aiId, ParticleBeamWeapon, 0);
AI::SetVar(%aiName, triggerPct, 0.03 );
}
}
}
Code: Select all
function AI::armdiscWeap(%aiName)
{
%aiId = AI::getId(%aiName);
if(Game::missionType == "DM")
{
dbecho(2, "giving DM weapon select...");
Player::setItemCount(%aiId, blaster, 1);
}
else
{
dbecho(2, "giving normal weapon select...");
Player::setItemCount(%aiId, DiscLauncher, 1);
Player::setItemCount(%aiId, DiscAmmo, 100);
}
Player::mountItem(%aiId, DiscLauncher, 0);
AI::SetVar(%aiName, triggerPct, 0.03 );
AI::setVar(%aiName, iq, 70 );
AI::setVar(%aiName, attackMode, 1);
AI::setAutomaticTargets( %aiName );
}
Code: Select all
function AI::minwieldWeap(%aiName)
{
%aiId = AI::getId(%aiName);
if(Game::missionType == "DM")
{
dbecho(2, "giving DM weapon select...");
Player::setItemCount(%aiId, blaster, 1);
}
else
{
dbecho(2, "giving normal weapon select...");
Player::setItemCount(%aiId, Vulcan, 1);
Player::setItemCount(%aiId, VulcanAmmo, 200);
}
Player::mountItem(%aiId, Vulcan, 0);
AI::SetVar(%aiName, triggerPct, 1.0 );
AI::setVar(%aiName, iq, 70 );
AI::setVar(%aiName, attackMode, 1);
AI::setAutomaticTargets( %aiName );
}
Code: Select all
function TowerSwitch::onCollision(%this, %object) {
if(GameBase::getMapName(%this) == "Switch1") {
createAI( Dummy1 , "MissionGroup\\AI\\Bot1", armorfAngel, Dummy );
}
if(GameBase::getMapName(%this) == "Switch2") {
createAI( Dummy2 , "MissionGroup\\AI\\Bot2", armorfAngel, Dummy );
}
if(GameBase::getMapName(%this) == "Switch3") {
createAI( Dummy3 , "MissionGroup\\AI\\Bot3", armorfAngel, Dummy );
}
if(GameBase::getMapName(%this) == "Switch4") {
createAI( Dummy4 , "MissionGroup\\AI\\Bot4", armorfAngel, Dummy );
}
if(GameBase::getMapName(%this) == "Switch5") {
createAI( Dummy5 , "MissionGroup\\AI\\Bot5", armorfAngel, Dummy );
}
if(GameBase::getMapName(%this) == "Switch6") {
createAI( Dummy6 , "MissionGroup\\AI\\Bot6", armorfAngel, Dummy );
}
if(GameBase::getMapName(%this) == "Closebot") {
createAI( Dummy7 , "MissionGroup\\AI\\Gbot1", armorfAngel, Dummy );
AI::armdiscWeap(Dummy7);
}
if(GameBase::getMapName(%this) == "MidBot") {
createAI( Dummy8 , "MissionGroup\\AI\\Gbot2", armorfAngel, Dummy );
}
if(GameBase::getMapName(%this) == "Farbot") {
createAI( Dummy9 , "MissionGroup\\AI\\Gbot3", armorfAngel, Dummy );
}
if(GameBase::getMapName(%this) == "HiBot") {
createAI( Dummy10 , "MissionGroup\\AI\\HiBot", armorfAngel, Dummy );
}
if(GameBase::getMapName(%this) == "MilBot") {
createAI( Dummy11 , "MissionGroup\\AI\\MilBot", armorfAngel, Dummy );
}
if(GameBase::getMapName(%this) == "LowBot") {
createAI( Dummy12 , "MissionGroup\\AI\\LowBot", armorfAngel, Dummy );
}
if(GameBase::getMapName(%this) == "ArenaBots") {
createAI( Battlebot1 , "MissionGroup\\AI\\BotLord", armorTank, BotLord );
createAI( Battlebot2 , "MissionGroup\\AI\\Minion1", armormWarrior, BotMinion );
createAI( Battlebot3 , "MissionGroup\\AI\\Minion2", armormWarrior, BotMinion );
createAI( Battlebot4 , "MissionGroup\\AI\\Minion3", armormWarrior, BotMinion );
AI::wieldWeapons(Battlebot1);
AI::minwieldWeap(Battlebot2);
AI::minwieldWeap(Battlebot3);
AI::minwieldWeap(Battlebot4);
}
}