Blockland Forums > Suggestions & Requests

scripts for bots and playertypes

(1/1)

BlockAlpha:
a script for a playertype that do (a specific)  sound loop when walking
also how to do a code that when a bot is following his enemy and somehow stuck because a brick is in his way to his enemy, will fake kill it or try to move right or left.
Thank you

The Brighter Dark:
could try looking at the rampage gamemode or the endlesszombie gamemode

BlockAlpha:

--- Quote ---could try looking at the rampage gamemode or the endlesszombie gamemode
--- End quote ---
Thanks.
I found a way to make some player types to do special footsteps sound, but I can't find a way to make it work with bots.
I was playing around with the NewEffects Addon:

--- Code: ---package Dinofootstep
{
function gameConnection::spawnPlayer(%this,%data,%player,%slot,%io, %obj)
{
parent::spawnPlayer(%this);
%this.player.oldDatablock = %this.player.getDatablock();
if(%this.player.oldDatablock == BrachiosaurusJPHoleBot.getID() || %this.player.oldDatablock == IndominusRexHoleBot.getID() || %this.player.oldDatablock == SpinosaurusHoleBot.getID() || %this.player.oldDatablock == TyrannosaurusRexHoleBot.getID())
%this.player.DinofootLoop();
}
function Armor::onNewDataBlock(%this, %obj)
{
Parent::onNewDataBlock(%this, %obj);
%obj.updateDinofootsteps = %obj.schedule(0, "updateDinofootsteps");
}
function Player::updateDinofootsteps(%this, %lastVert)
{
cancel(%this.updateDinofootsteps);

  if (%this.getState() $= "Dead")
  {
  return;
  }

%velocity = %this.getVelocity();

%vert = getWord(%velocity, 2);
%horiz = vectorLen(setWord(%velocity, 2, 0));

if (%lastVert < $Dinofootsteps_MIN_LANDING && %vert >= 0)
{
%this.getDataBlock().onLand(%this);
}

%this.updateDinofootsteps = %this.schedule(32, "updateDinofootsteps", %vert);
}

function player::DinofootLoop(%this)
{
//echo("DinofootLoop WOOOOO!@#@#$@#4");
if($Dinofootsteps)
{
%pos = getWords(%this.getPosition(), 0, 1);
if(%this.f_lastPos $= getWords(%this.getPosition(), 0, 1) || %this.crouch || !%this.isOnGround())
{
//echo("same position");
//do nothing!
}
else if(!%this.isMounted())
{
//echo("diff position");
if(makePositive(getWord(%this.getVelocity(),0)) < 8 && makePositive(getWord(%this.getVelocity(),1)) < 8)
{
%this.playDinofootstep(1);
}
else
{
%this.playDinofootstep(2);
}

%this.f_lastPos = getWords(%this.getPosition(), 0, 1);
}
//echo("@#@#$@#%@#$@#$NUMBER 2");
%this.schedule(870, DinofootLoop);

//windNoiseLoop(%this);
}
}

--- End code ---
How should the code look when I do the same for bots? thanks

BlockAlpha:
Never mind, I figured it out by myself..

Navigation

[0] Message Index

Go to full version