Author Topic: Bot hole help  (Read 1678 times)

I'm trying to add a bot hole to my Keroro player to avoid the polygon disappearing issue. Every time I test it, the bot doesnt spawn.

help plz

Quote from: bot_base.cs
//-----------------------------------------------------------------------------
// Torque Game Engine
// Copyright (C) GarageGames.com, Inc.
//-----------------------------------------------------------------------------

// Load dts shapes and merge animations
datablock TSShapeConstructor(KeroroDts)
{
   baseShape  = "./keroro.dts";
   sequence0  = "./gero_root.dsq root";

   sequence1  = "./gero_run.dsq run";
   sequence2  = "./gero_run.dsq walk";
   sequence3  = "./gero_run.dsq back";
   sequence4  = "./gero_run.dsq side";

   sequence5  = "./gero_crouch.dsq crouch";
   sequence6  = "./gero_root.dsq crouchRun";
   sequence7  = "./gero_root.dsq crouchBack";
   sequence8  = "./gero_root.dsq crouchSide";

   sequence9  = "./gero_look.dsq look";
   sequence10 = "./gero_headside.dsq headside";
   sequence11 = "./gero_root.dsq headUp";

   sequence12 = "./gero_jump.dsq jump";
   sequence13 = "./gero_jump.dsq standjump";
   sequence14 = "./gero_root.dsq fall";
   sequence15 = "./gero_root.dsq land";

   sequence16 = "./gero_activate.dsq armAttack";
   sequence17 = "./gero_arml.dsq armReadyLeft";
   sequence18 = "./gero_armr.dsq armReadyRight";
   sequence19 = "./gero_armboth.dsq armReadyBoth";
   sequence20 = "./gero_spear.dsq spearready"; 
   sequence21 = "./gero_throw.dsq spearThrow";

   sequence22 = "./gero_root.dsq talk"; 

   sequence23 = "./gero_death.dsq death1";
   
   sequence24 = "./gero_activate.dsq shiftUp";
   sequence25 = "./gero_activate.dsq shiftDown";
   sequence26 = "./gero_activate.dsq shiftAway";
   sequence27 = "./gero_activate.dsq shiftTo";
   sequence28 = "./gero_activate.dsq shiftLeft";
   sequence29 = "./gero_activate.dsq shiftRight";
   sequence30 = "./gero_activate.dsq rotCW";
   sequence31 = "./gero_activate.dsq rotCCW";

   sequence32 = "./gero_activate.dsq undo";
   sequence33 = "./gero_activate.dsq plant";

   sequence34 = "./gero_sit.dsq sit";

   sequence35 = "./gero_activate.dsq wrench";

   sequence36 = "./gero_activate.dsq activate";
   sequence37 = "./gero_armsflail.dsq activate2";

   sequence38 = "./gero_root.dsq leftrecoil";
};   
datablock AudioProfile(KeroroDeathSound)
{
   fileName = "./shinryakunanoni.wav";
   description = AudioClose3d;
   preload = true;
};
datablock AudioProfile(KeroroJumpSound)
{
    fileName = "./gero.wav";
    description = AudioClose3d;
    preload = true;
};
datablock AudioProfile(KeroroPainSound)
{
    fileName = "./gero2.wav";
    description = AudioClose3d;
    preload = true;
};

datablock PlayerData(KeroroArmor : PlayerStandardArmor)
{
   shapeFile = "./Keroro.dts";
   uiName = "Keroro";
   canJet = 1;
   maxDamage = "400";
   runForce = "5930";
   maxForwardSpeed = "11";
   maxBackwardSpeed = "6";
   maxSideSpeed = "8";
   jumpForce = "1070";
   airControl = "0.7";

useCustomPainEffects = true;
   PainSound         = KeroroPainSound;
   DeathSound         = KeroroDeathSound;
   JumpSound         = KeroroJumpSound;

   mass = 100;
   drag = 0.02;//0.02
   density = 0.80;//0.6
   runSurfaceAngle = 70;
   jumpSurfaceAngle = 70;
    runForce = 90 * 90;
   maxForwardSpeed = 10;
   maxBackwardSpeed = 5;
   maxSideSpeed = 7;
   attackpower = 9;

   maxdamage = 100;//Bot Health
   
   //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 = Friendly; //Enemy,Friendly, Neutral
     hNeutralAttackChance = 0; //0 to 100, Chance that this type will attack neutral bots, ie horses/vehicles/civilians
   //can have unique types, national socialists will attack zombies but national socialists will not attack other bots labeled national socialist
   hName = "Keroro";//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 = 80;//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 = 150;//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
     hFOVRange = 0.7; // determines the angle we can see the player at, 0.7 is about normal fov for players, if 0 we can see all in front, if 1 we could only see someone perfectly ahead, can be negative
     // hFOVRadius = 6; // no longer used, we now use searchRadius
     hHearing = 2;//If it hears a player it'll look in the direction of the sound

     hAlertOtherBots = 3;//Alerts other bots when he sees a player, or gets attacked

   //Attack Options
   hMelee = 0;//Melee
     hAttackDamage = 15;//Melee Damage
   hShoot = 1;
     hWep = "";
     hShootTimes = 5;//Number of times the bot will shoot between each tick
     hMaxShootRange = 300;//The range in which the bot will shoot the player
     hAvoidCloseRange = 2;//
      hTooCloseRange = 7;//in brick units

   //Misc options
   hActivateDirection = 0; // 0 1 2, determines the direction you have to face the bot to activate him, both, front back
   hMoveSlowdown = 0; // bool, determines wether the bot will slow down when following enemies
   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
     hSpasticLook = 1;//Makes them look around their environment a bit more.
   hEmote = 1;
};

datablock fxDTSBrickData (BrickKeroroBot_HoleSpawnData)
{
   brickFile = "Add-ons/Bot_Hole/4xSpawn.blb";
   category = "Special";
   subCategory = "Holes";
   uiName = "Keroro Hole";
   iconName = "Add-Ons/Bot_Keroro/icon_keroro";

   bricktype = 2;
   cancover = 0;
   orientationfix = 1;
   indestructable = 1;

   isBotHole = 1;
   holeBot = "Keroro";
};

The polygon issue is there because you named your nodes a bunch of stupid ass stuff. Use unhidenode

The polygon issue is there because you named your nodes a bunch of stupid ass stuff. Use unhidenode

but i dont know what loving function im supposed to put it in

well looks like your bot will never ever be fixed. Sorry zach

is there an onbotspawn torquescript function? i cant just put it alongside the shapeconstructor function because that wont work.

I think onadd or oncreate or onspawn exists

It's onAdd for the PlayerData - KeroroArmor::onAdd(%data, %obj)

Node names should have nothing to do with the bot not spawning at all.
I think it might not be spawning because of the last line. It should be the datablock and not the UI name.
So holeBot = "KeroroArmor" rather than "Keroro"

forgetIN UREKA!!! IT WORKED!!!



lol yeah i drew the icon

kobble, legit thank you so much.

and just for the hell of it



so you can have either a invader of your own, or you could have an invader whos hellbent on destroying all of blockopon

Ew the background is disturbing me, pls use paint.net to remove that background

sometimes i just think to myself "honestly we should give zach a chance" but he keeps getting himself in the proper situations to keep trolling him

I mean in this situation he didn't know that certain utilities exist, but I guess that is because it was his failure to read the sticky topics for help before assuming