@Psykai
Jhfer helped me figure out what caused the bug:
In PDC3, there's an entity that's called during hyper, indicating to the player that they can move the Noid.
View attachment 11035
However, since I LOAD this entity in the models and not in the Noid header, I never received a warning in the log that this entity doesn't exist. And since the spawnbind() function doesn't have a safe check—to determine if the entity I'm referring to exists—for some reason, the engine decided to pick the first nearby entity (in this case, Rugal) and bind it.
C-like:
void spawnbind(void Name, float dx, float dy, float dz, int iDir,int iBind)
{ // Spawn and bind other entity
void self = getlocalvar("self");
void Spawn;
Spawn = spawn01(Name, dx, dy, 0);
bindentity(Spawn, self, dx, dz, dy, iDir, iBind);
}
Unless you try to get some value from the entity, if you spawn via script an entity that doesn't exist (IOW, its not on the models.txt), the engine simply ignores it, without causing a warning in the log.
This also happens in the Paragumugen video.
now the function has a safe check and I should make an update soon
C-like:
void spawnbind(void Name, float dx, float dy, float dz, int iDir,int iBind)
{ // Spawn and bind other entity
void self = getlocalvar("self");
void Spawn;
Spawn = spawn01(Name, dx, dy, 0);
if (Spawn){// safe check
bindentity(Spawn, self, dx, dz, dy, iDir, iBind);
}
}