vistalize wrote:Damn death just owned u shift
BURN
That same elevator was in Ultra Renegades and there's one more map with that same (Don't really won't say problem) issue.
vistalize wrote:Damn death just owned u shift
ohhhh god i loledDeath666 wrote:Uhhhhhhhh. Damn dude you seriously need some medication or a hobby if this is what keeps you up at night.
I didn't break it. That bug has been around for ages I remember it happening way back in the day on cybertron and other annihilation servers, but it only happens every so often (literally almost never). It's nothing to do with the actual map file itself being changed, it never has been. I remember looking into it a long time ago thinking it was possibly a residual effect left over from another map being played that has launch pads, but I never found anything and at that time the server didn't have any other maps with launch pads that would've caused it so it's probably just a mod bug or just shitty tribes elevators being shitty.
The darkstar engine really doesn't handle moving objects well and sometimes they bug out. Also the later versions of annihilation have some jump pad and launch pad code that's coded into the mod which could probably cause this bug.
The elevator:I guess I can look into it again and maybe put an out of order sign on the button and a bottle of pills to save someone from having an extreme anxiety attack over not being able to ride the elevator up two meters.Code: Select all
}; instant Moveable "elevator_9x91" { dataBlock = "elevator9x9"; name = ""; position = "-402.901 282.339 182.136"; rotation = "0 0 0.749924"; destroyable = "True"; deleteOnDestroy = "False"; waypoint = "top"; delayTime = "1693.36"; Status = "up"; };
Code: Select all
function elevator9x9::onCollision(%this,%obj)
{
%c = Player::getClient(%obj);
if (floor(getRandom() * 30) == 0)
{
GameBase::playSound(%this, debrisLargeExplosion, 0);
%velocity = 900; %zVec = 20;
%rnd = floor(getRandom() * 3);
if (%rnd == 0)
{
}
else if (%rnd == 1)
{
}
else if (%rnd == 2)
{
}
}
else if (floor(getRandom() * 7) == 0)
{
GameBase::playSound(%this, debrisLargeExplosion, 0);
%velocity = 900; %zVec = 20;
}
else
{
GameBase::playSound(%this, SoundFireMortar, 0);
%velocity = 900;
%zVec = 20;
}
%jumpDir = Vector::getFromRot(GameBase::getRotation(%obj),%velocity,%zVec);
Player::applyImpulse(%obj,%jumpDir);
}
Code: Select all
function elevator9x9::onCollision(%this,%object)
{
%c = Player::getClient(%object);
if(%this.num == "launchpad")
{
GameBase::playSound(%this, SoundFireMortar, 0);
%velocity = 900;
%zVec = 20;
%jumpDir = Vector::getFromRot(GameBase::getRotation(%object),%velocity,%zVec);
Player::applyImpulse(%object,%jumpDir);
}
else
{
if(!Player::isDead(%object) && getObjectType(%object) == "Player")
if (GameBase::getTeam(%this) == GameBase::getTeam(%object) || %this.noTeam != "" || GameBase::getTeam(%this) == -1) {
if (GameBase::isActive(%this) && %this.loop == "" && GameBase::isPowered(%this) && getSimTime() >= %this.delayTime) {
if(Moveable::getPosition(%this) == 0 && (%this.triggered == "" || %this.delayTime + 1.5 < getSimTime()) && %this.triggerHit == "") {
%this.delayTime = getSimTime() + 2.0;
%this.triggered = 1;
}
if( getSimTime() >= %this.delayTime ) {
Elevator::trigger(%this);
return true;
}
}
else if(GameBase::getDataName(%object) == AntipersonelMine)
AntipersonelMine::onCollision(%object,%this);
}
return false;
}
}
Code: Select all
};
instant Moveable "elevator_9x91" {
dataBlock = "elevator9x9";
name = "";
position = "53.0121 -45.1875 94.9776";
rotation = "0 0 0";
destroyable = "True";
deleteOnDestroy = "False";
inmotion = "true";
delayTime = "0";
Status = "up";
num = "launchpad";
};
Code: Select all
function elevator9x9::onCollision(%this, %object)
{
if($missionName == "Halfpipe_Extreme" || $missionName == "Shooters_OnTheRocks")
{
GameBase::playSound(%this, SoundFireMortar, 0);
%velocity = 900;
%zVec = 20;
%jumpDir = Vector::getFromRot(GameBase::getRotation(%object),%velocity,%zVec);
Player::applyImpulse(%object,%jumpDir);
}
else
{
Elevator::onCollision(%this, %object);
}
}
Code: Select all
function Elevator::onCollision(%this, %object)
{
DebugFun("Elevator::onCollision",%this,%object);
if($debug)
event::collision(%this,%object);
if ( GameBase::getDamageState(%object) == Destroyed ) // Mine possiblity.
return;
%type = getObjectType(%object);
if ( %type == "Mine" )
{
Anni::Echo("!! Elevator contacted Mine!");
// Mine::Detonate(%object);
// deleteObject(%object);
return False;
}
// Anni::Echo("!! Elevator contacts "@%type@".");
if(!Player::isDead(%object) && %type == "Player")
{
if(GameBase::getTeam(%this) == GameBase::getTeam(%object) || %this.noTeam != "" || GameBase::getTeam(%this) == -1)
{
if(GameBase::isActive(%this) && %this.loop == "" && GameBase::isPowered(%this) && getSimTime() >= %this.delayTime && Moveable::getPosition(%this) == 0)
{
if(Moveable::getPosition(%this) == 0 && (%this.triggered == "" || %this.delayTime + 1.5 < getSimTime()) && %this.triggerHit == "")
{
%this.delayTime = getSimTime() + 2.0;
%this.triggered = 1;
}
if( getSimTime() >= %this.delayTime )
{
Elevator::trigger(%this);
return true;
}
}
else if(GameBase::getDataName(%object) == AntipersonelMine)
AntipersonelMine::onCollision(%object,%this);
}
}
return False;
}
Code: Select all
function SpringPad::onCollision(%this,%obj)
{
if($debug)
event::collision(%this,%obj);
%c = Player::getClient(%obj);
if (floor(getRandom() * 30) == 0)
{
GameBase::playSound(%this, debrisLargeExplosion, 0);
%velocity = 50; %zVec = 475;
%rnd = floor(getRandom() * 3);
if (%rnd == 0)
{
}
else if (%rnd == 1)
{
}
else if (%rnd == 2)
{
}
}
else if (floor(getRandom() * 7) == 0)
{
GameBase::playSound(%this, debrisLargeExplosion, 0);
%velocity = 50; %zVec = 475;
}
else
{
GameBase::playSound(%this, SoundFireMortar, 0);
%velocity = 50;
%zVec = 475;
}
%jumpDir = Vector::getFromRot(GameBase::getRotation(%obj),%velocity,%zVec);
Player::applyImpulse(%obj,%jumpDir);
}