All bots are working in slayer except kobble's boar bot. I can't even damage it.
If I create a non-slayer game it works for some reason
datablock AudioProfile(PigPainSound)
{
fileName = "./PigPain.wav";
description = AudioClose3d;
preload = true;
};
datablock AudioProfile(PigDeathSound)
{
fileName = "./PigDeath.wav";
description = AudioClose3d;
preload = true;
};
datablock fxDTSBrickData (BrickBoarBot_HoleSpawnData)
{
brickFile = "Add-ons/Bot_Hole/6xspawn.blb";
category = "Special";
subCategory = "Holes";
uiName = "Boar Hole";
iconName = "Add-Ons/Bot_Boar/Icon_Boar";
bricktype = 2;
cancover = 0;
orientationfix = 1;
indestructable = 1;
isBotHole = 1;
holeBot = "BoarHoleBot";
};
// Load dts shapes and merge animations
datablock TSShapeConstructor(Boardts)
{
baseShape = "./Boar.dts";
sequence0 = "./boar_root.dsq root";
sequence1 = "./boar_run.dsq run";
sequence2 = "./boar_run.dsq walk";
sequence3 = "./boar_back.dsq back";
sequence4 = "./boar_side.dsq side";
sequence5 = "./boar_root.dsq crouch";
sequence6 = "./boar_run.dsq crouchRun";
sequence7 = "./boar_back.dsq crouchBack";
sequence8 = "./boar_side.dsq crouchSide";
sequence9 = "./boar_root.dsq look";
sequence10 = "./boar_root.dsq headside";
sequence11 = "./boar_root.dsq headUp";
sequence12 = "./boar_jump.dsq jump";
sequence13 = "./boar_jump.dsq standjump";
sequence14 = "./boar_fall.dsq fall";
sequence15 = "./boar_root.dsq land";
sequence16 = "./boar_root.dsq armAttack";
sequence17 = "./boar_root.dsq armReadyLeft";
sequence18 = "./boar_root.dsq armReadyRight";
sequence19 = "./boar_root.dsq armReadyBoth";
sequence20 = "./boar_root.dsq spearready";
sequence21 = "./boar_root.dsq spearThrow";
sequence22 = "./boar_root.dsq talk";
sequence23 = "./boar_death.dsq death1";
sequence24 = "./boar_root.dsq shiftUp";
sequence25 = "./boar_root.dsq shiftDown";
sequence26 = "./boar_root.dsq shiftAway";
sequence27 = "./boar_root.dsq shiftTo";
sequence28 = "./boar_root.dsq shiftLeft";
sequence29 = "./boar_root.dsq shiftRight";
sequence30 = "./boar_root.dsq rotCW";
sequence31 = "./boar_root.dsq rotCCW";
sequence32 = "./boar_root.dsq undo";
sequence33 = "./boar_root.dsq plant";
sequence34 = "./boar_root.dsq sit";
sequence35 = "./boar_root.dsq wrench";
sequence36 = "./boar_root.dsq activate";
sequence37 = "./boar_activate2.dsq activate2";
};
datablock DebrisData( BoarDebris )
{
explodeOnMaxBounce = false;
elasticity = 0.15;
friction = 0.5;
lifetime = 4.0;
lifetimeVariance = 0.0;
minSpinSpeed = 40;
maxSpinSpeed = 600;
numBounces = 5;
bounceVariance = 0;
staticOnMaxBounce = true;
gravModifier = 1.0;
useRadiusMass = false;
baseRadius = 1;
velocity = 20.0;
velocityVariance = 12.0;
};
datablock PlayerData(BoarArmor)
{
renderFirstPerson = false;
emap = false;
className = Armor;
shapeFile = "./Boar.dts";
cameraMaxDist = 7;
cameraTilt = 0;//0.174 * 2.5; //~25 degrees
cameraVerticalOffset = 2;
computeCRC = false;
canObserve = true;
cmdCategory = "Clients";
cameraDefaultFov = 90.0;
cameraMinFov = 5.0;
cameraMaxFov = 120.0;
//debrisShapeName = "~/data/shapes/player/debris_player.dts";
//debris = horseDebris;
aiAvoidThis = true;
minLookAngle = -1.5708;
maxLookAngle = 1.5708;
maxFreelookAngle = 3.0;
mass = 90;
drag = 0.1;
density = 0.7;
maxDamage = 250;
maxEnergy = 10;
repairRate = 0.33;
rechargeRate = 0.4;
runForce = 28 * 90;
runEnergyDrain = 0;
minRunEnergy = 0;
maxForwardSpeed = 12;
maxBackwardSpeed = 6;
maxSideSpeed = 1;
maxForwardCrouchSpeed = 12;
maxBackwardCrouchSpeed = 6;
maxSideCrouchSpeed = 1;
maxForwardProneSpeed = 0;
maxBackwardProneSpeed = 0;
maxSideProneSpeed = 0;
maxForwardWalkSpeed = 0;
maxBackwardWalkSpeed = 0;
maxSideWalkSpeed = 0;
maxUnderwaterForwardSpeed = 8.4;
maxUnderwaterBackwardSpeed = 7.8;
maxUnderwaterSideSpeed = 7.8;
jumpForce = 0;
jumpEnergyDrain = 0;
minJumpEnergy = 0;
jumpDelay = 0;
minJetEnergy = 0;
jetEnergyDrain = 0;
canJet = 0;
minImpactSpeed = 250;
speedDamageScale = 3.8;
boundingBox = vectorScale("2.5 2.5 1.6", 4);
crouchBoundingBox = vectorScale("2.5 2.5 1.6", 4);
proneBoundingBox = vectorScale("2.5 2.5 1.6", 4); //"2.5 2.5 2.4";
pickupRadius = 1.2;
// Damage location details
boxNormalHeadPercentage = 0.83;
boxNormalTorsoPercentage = 0.49;
boxHeadLeftPercentage = 0;
boxHeadRightPercentage = 1;
boxHeadBackPercentage = 0;
boxHeadFrontPercentage = 1;
// Foot Prints
//decalData = HorseFootprint;
//decalOffset = 0.25;
jetEmitter = "";
jetGroundEmitter = "";
jetGroundDistance = 4;
//footPuffEmitter = LightPuffEmitter;
footPuffNumParts = 10;
footPuffRadius = 0.25;
//dustEmitter = LiftoffDustEmitter;
splash = PlayerSplash;
splashVelocity = 4.0;
splashAngle = 67.0;
splashFreqMod = 300.0;
splashVelEpsilon = 0.60;
bubbleEmitTime = 0.1;
splashEmitter[0] = PlayerFoamDropletsEmitter;
splashEmitter[1] = PlayerFoamEmitter;
splashEmitter[2] = PlayerBubbleEmitter;
mediumSplashSoundVelocity = 10.0;
hardSplashSoundVelocity = 20.0;
exitSplashSoundVelocity = 5.0;
// Controls over slope of runnable/jumpable surfaces
runSurfaceAngle = 85;
jumpSurfaceAngle = 86;
minJumpSpeed = 20;
maxJumpSpeed = 30;
horizMaxSpeed = 68;
horizResistSpeed = 33;
horizResistFactor = 0.35;
upMaxSpeed = 80;
upResistSpeed = 25;
upResistFactor = 0.3;
footstepSplashHeight = 0.35;
//NOTE: some sounds commented out until wav's are available
// Footstep Sounds
// FootSoftSound = HorseFootFallSound;
// FootHardSound = HorseFootFallSound;
// FootMetalSound = HorseFootFallSound;
// FootSnowSound = HorseFootFallSound;
// FootShallowSound = HorseFootFallSound;
// FootWadingSound = HorseFootFallSound;
// FootUnderwaterSound = HorseFootFallSound;
//FootBubblesSound = FootLightBubblesSound;
//movingBubblesSound = ArmorMoveBubblesSound;
//waterBreathSound = WaterBreathMaleSound;
//impactSoftSound = ImpactLightSoftSound;
//impactHardSound = ImpactLightHardSound;
//impactMetalSound = ImpactLightMetalSound;
//impactSnowSound = ImpactLightSnowSound;
impactWaterEasy = Splash1Sound;
impactWaterMedium = Splash1Sound;
impactWaterHard = Splash1Sound;
groundImpactMinSpeed = 10.0;
groundImpactShakeFreq = "4.0 4.0 4.0";
groundImpactShakeAmp = "1.0 1.0 1.0";
groundImpactShakeDuboarion = 0.8;
groundImpactShakeFalloff = 10.0;
//exitingWater = ExitingWaterLightSound;
observeParameters = "0.5 4.5 4.5";
// Inventory Items
maxItems = 10; //total number of bricks you can carry
maxWeapons = 5; //this will be controlled by mini-game code
maxTools = 5;
uiName = "Boar";
rideable = true;
lookUpLimit = 0.6;
lookDownLimit = 0.2;
numMountPoints = 1;
mountNode[0] = 2;
mountThread[0] = "sit";
mountThread[2] = "sit";
canRide = false;
showEnergyBar = false;
paintable = false;
brickImage = HorseBrickImage; //the imageData to use for brick deployment
};
datablock PlayerData(BoarHoleBot : BoarArmor)
{
uiName = "Wild Boar";
//Hole Attributes
isHoleBot = 1;
//Spawning option
hSpawnTooClose = 0;//Doesn't spawn when player is too close and can see it
hSpawnTCRange = 8;//above range, set in brick units
hSpawnClose = 0;//Only spawn when close to a player, can be used with above function as long as hSCRange is higher than hSpawnTCRange
hSpawnCRange = 32;//above range, set in brick units
hType = Enemy; //Enemy,Friendly, Neutral
hNeutralAttackChance = 80;
//can have unique types, national socialists will attack zombies but national socialists will not attack other bots labeled national socialist
hName = "Boar";//cannot contain spaces
hTickRate = 3000;
//Wander Options
hWander = 1;//Enables random walking
hSmoothWander = 1;//This is in addition to regular wander, makes them walk a bit longer, and a bit smoother
hReturnToSpawn = 1;//Returns to spawn when too far
hSpawnDist = 48;//Defines the distance bot can travel away from spawnbrick
hGridWander = 0;//Locks the bot to a grid, overwrites other settings
//Searching options
hSearch = 1;//Search for Players
hSearchRadius = 128;//in brick units
hSight = 1;//Require bot to see player before pursuing
hStrafe = 1;//Randomly strafe while following player
hSearchFOV = 0;//if enabled disables normal hSearch
hFOVRadius = 6;//max 10
hHearing = 1;//If it hears a player it'll look in the direction of the sound
hAlertOtherBots = 1;//Alerts other bots when he sees a player, or gets attacked
//Attack Options
hMelee = 1;//Melee
hAttackDamage = 15;//Melee Damage
hMeleeCI = "";
hShoot = 0;
hWep = "boomBeltItem";
hShootTimes = 4;//Number of times the bot will shoot between each tick
hMaxShootRange = 256;//The range in which the bot will shoot the player
hAvoidCloseRange = 0;//
hTooCloseRange = 7;//in brick units
//Misc options
hAvoidObstacles = 1;
hSuperStacker = 0;//When enabled makes the bots stack a bit better, in other words, jumping on each others heads to get to a player
hSpazJump = 0;//Makes bot jump when the user their following is higher than them
hAFKOmeter = 1;//Determines how often the bot will wander or do other idle actions, higher it is the less often he does things
hIdle = 1;// Enables use of idle actions, actions which are done when the bot is not doing anything else
hIdleAnimation = 1;//Plays random animations/emotes, sit, click, love/hate/etc
hIdleLookAtOthers = 1;//Randomly looks at other players/bots when not doing anything else
hIdleSpam = 0;//Makes them spam click and spam hammer/spraycan
hSpasticLook = 1;//Makes them look around their environment a bit more.
hEmote = 1;
useCustomPainEffects = true;
PainSound = PigPainSound;
DeathSound = PigDeathSound;
PainHighImage = "PainHighImage";
PainMidImage = "PainMidImage";
PainLowImage = "PainLowImage";
rideable = false;
};
function BoarHoleBot::onAdd(%this,%obj)
{
armor::onAdd(%this,%obj);
%color = getRandom(0,3);
if(%color == 0)
%obj.chestColor = "1 1 1 1";
if(%color == 1)
%obj.chestColor = "0.1 0.1 0.1 1";
if(%color == 2)
%obj.chestColor = "0.5 0.27 0.05 1";
if(%color == 3)
%obj.chestColor = "0.98 0.86 0.67 1";
GameConnection::ApplyBodyParts(%obj);
GameConnection::ApplyBodyColors(%obj);
// allow people to take control of the bot when they mount it
%obj.controlOnMount = 1;
}
//function BoarArmor::onDriverLeave(%obj, %player)
//{
// %player.schedule(33, playThread, 3, "root");
//}
//Sit hack. Sit animation on blockhead won't work so I had to do this. Stolen from Player_Cow.
//package sitBoar {
// function armor::onMount(%this,%obj,%col,%slot)
// {
// parent::onMount(%this,%obj,%col,%slot);
// if(%col.getDataBlock() == BoarArmor.getID())
// %obj.playThread(3,"sit");
// }
//};
//activatePackage(sitBoar);