Read-only archive of the Armageddon Games Forums Archive (2000–2026) · About this archive

Dark Link Help

6 replies · 19,652 views · Started 28 November 2015

Okay I need some serious help here. We have a stack overflow error. What do?

FFC script 1 (Darklink): Invalid ZASM command 65535 reached

User posted image

I'm a little confused as to how 65535 was run since it's not even a valid command. 0xFFFF is basically reserved. You used to get a "Stack over or underflow" error so I'm not so sure that's what it is. Hmm...

Tamamo wrote: Longest script ever award?

Nope. In GRIKARUGUN the basic 1x1 enemy script alone is over 2100 lines and most of it looks like this:

if(tx<120)dir=3;if(tx>120)dir=2;init=true;enemy->CSet=6;this->CSet=6;enemy->HP=enemyHP;this->Vx=0; //etc...

If I ran it through a code formatter it would probably be around 10,000. 😉

I'm an idiot. That error means you have an infinite loop, and since I didn't have a jump sound nothing was playing.

Tamamo wrote:I'm an idiot. That error means you have an infinite loop, and since I didn't have a jump sound nothing was playing.

That doesn't sound right. Are you saying you found and fixed the issue? Can you elaborate?

[MENTION=38528]SUCCESSOR[/MENTION]
Very well, I shall elaborate.

        void Dodge(ffc this, npc ghost)
{
Ghost_Data=GetComboOffset(this, DARKLINK_CMB_DODGE);
float linkangle=ArcTan(DLCenterX()-CenterLinkX(),DLCenterY()-CenterLinkY());
Ghost_Jump=2.8;
Game->PlaySound(ghost->Attributes[DARKLINK_ATTR_SFX_JUMP]);
while(Ghost_Z>0 || Ghost_Jump>0)
{
Ghost_MoveAtAngle(linkangle,DARKLINK_JUMP_STEP*(ghost->Step/100),3);
Ghost_ForceDir(OppositeDir(RadianAngleDir4(linkangle)));
//Missing a waitframe.
}
}
void Jump(ffc this, npc ghost)
{
int dir=JumpDirection();
if(dir==-1)
{
Dodge(this,ghost); //this happens vary rarely
return;
}

Ghost_Jump=DARKLINK_JUMP_VELOCITY;
Game->PlaySound(ghost->Attributes[DARKLINK_ATTR_SFX_JUMP]);
while(Ghost_Z>0 || Ghost_Jump>0)
{
Ghost_Move(dir,DARKLINK_JUMP_STEP*(ghost->Step/100),3);
Ghost_ForceDir(OppositeDir(dir));
//Missing a waitframe.
}
}

This caused an infinite loop, more so the sword sprite was blank so it didn't appear so I was mistaken which part was causing the problem.