Announcement

Collapse
No announcement yet.

Monsters suiciding in Fraghouse Invasion subclass

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • replied
    I think you mean FindRoamDest() not FindRoadDest()? What map are you testing this on. be sure to use a stock map, as any custom map might have broken pathways which I think causes the monster to commit suicide.

    maybe if you linked the new code from FHE we might be able to help you more

    Leave a comment:


  • replied
    Originally posted by BigJim View Post
    Can't say I know much about Invasion as a gametype, but it would seem sensible to code a feature where a monster that spawns out of bounds (nd I assume this would mean either linked to the path-network, or in LoS of a player) would automatically remove itself, so that players don't end up unable to win, trying to hunt a monster they can never reach, right?

    I'm sure I've heard someone (maybe SuperApe) mention the feature before too, but I can't be 100% sure of that..

    Have you looked through the Invasion code?
    If FHI is extended from INV, or even has some of the same code it could have crept in there and you're just accidentally activating it - and be nothing to do with the Pawn's code at all..

    Anywhoo, just an idea.
    I've considered that. It's definitely not a bad idea, but it fails the test on two points;
    1) The bosses don't commit suicide at all in regular FHI - just FHE. That doesn't rule out the "accidentally activating" possibility, I admit, but for...
    2) I've done a full-text search of the entire source, and the only references I can find to the Suicided class within Monster, MonsterController, their superclasses or subclasses is within MonsterController.FindRoadDest(), which is one of the first things I overrode. I even added a log statement in the same place, below the commented-out suicide statements, and that log statement never executes.

    I literally cannot find any place where the boss or its controller would commit suicide EXCEPT that one place in FindRoamDest. And it's definitely suicide; A log statement within the boss pawn's Died() always executes. Unfortunately I've not been able to determine what information to put in the log statement to assist the diagnosis.

    Leave a comment:


  • replied
    Can't say I know much about Invasion as a gametype, but it would seem sensible to code a feature where a monster that spawns out of bounds (nd I assume this would mean either linked to the path-network, or in LoS of a player) would automatically remove itself, so that players don't end up unable to win, trying to hunt a monster they can never reach, right?

    I'm sure I've heard someone (maybe SuperApe) mention the feature before too, but I can't be 100% sure of that..

    Have you looked through the Invasion code?
    If FHI is extended from INV, or even has some of the same code it could have crept in there and you're just accidentally activating it - and be nothing to do with the Pawn's code at all..

    Anywhoo, just an idea.

    Leave a comment:


  • started a topic Monsters suiciding in Fraghouse Invasion subclass

    Monsters suiciding in Fraghouse Invasion subclass

    I'm coding a fairly major addon for Fraghouse Invasion, (Plug time!) which is available via the thread here (end of plug) but I've run into a fairly major problem. In standard FHI, a number of maps will spawn bosses in the final wave - once the bosses are dead, the match ends in victory. Fraghouse Reloaded extends FHI directly, and for the most part works the same way. However, for some unknown reason, unless a boss has a player within line-of-sight and within a certain range (the magnitude of which I'm yet to ascertain for certain, but which I suspect is equal to SightRadius) they commit suicide. Obviously this isn't what I'm after. I've tried logging a fair amount of details, and I've found out this much:

    *) The damagetype for the boss' suicide is always Engine.Suicided.
    *) The HitLocation is always the boss pawn's location.
    *) The Killer is always the boss' Controller
    *) The controller's LastSeenTime is always -1000
    *) The controller's NumRandomJumps is always 0

    However, I haven't been able to use this information to figure out why it's happening. I've found one instance in MonsterController.FindRoamDest() which causes the monster to commit suicide, but overriding this function and blocking the offending statements hasn't helped matters, and I've found zero other instances in the entire codebase where an AI pawn commits suicide which would fit that pattern.

    Odder still is the fact that under the FHI gametype, this mass suicide doesn't occur - only in FH Reloaded. Yet I've included no code that would directly cause the boss to suicide.

    Equally odd is this; At one point I had a game with a single bot, and me as a spectator. I forced the bot to remain still and out of sight by setting its GroundSpeed to zero in the console, and used ViewClass to view one of the bosses and ShowDebug to try and display what it was thinking.

    Every OTHER boss committed suicide before long, but not the one I was watching. That continued to live for several minutes. Even when I detached myself from the boss such that I had control of my own camera but kept my camera in close proximity to where the boss was roaming, the boss continued living for several minutes more. It wasn't until I took my spectating self into the main structure by hitting Fire, switching my view to that of the stationary bot, that the boss committed suicide - and it did so within seconds.

    I'm absolutely baffled by this. If anyone can help shed some light on this puzzler, or even point me in the right direction, I'd be exceedingly grateful.
Working...
X