FAangband 0.3.6

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • PowerDiver
    Prophet
    • Mar 2008
    • 2820

    This better be a bug ...

    Splinter the Spirit ... danger level 18 ... quickly ... 196 exp ... AC 98 ... 1470 HP ... steal gold 3d47 , terrify 1d90 , reduce dex 1d90

    No typos above.

    Now I remember why I used to refuse to play any variant where I could not turn off player ghosts.

    Comment

    • Nick
      Vanilla maintainer
      • Apr 2007
      • 9647

      Originally posted by PowerDiver
      This better be a bug ...

      Splinter the Spirit ... danger level 18 ... quickly ... 196 exp ... AC 98 ... 1470 HP ... steal gold 3d47 , terrify 1d90 , reduce dex 1d90
      The good news is that it's a bug. That's also the bad news (for me).

      I have gone and found a random Spirit at that level; it has mana 65, armour 20, life 180, attack 3d6, terrify 1d2, reduce dex 1d2. This one is based on a warrior not a rogue, and they get scaled up a bit for level, but what you have got is just insane.

      Has anyone else seen this sort of thing?
      One for the Dark Lord on his dark throne
      In the Land of Mordor where the Shadows lie.

      Comment

      • Arralen
        Swordsman
        • May 2007
        • 309

        Originally posted by PowerDiver
        Now I remember why I used to refuse to play any variant where I could not turn off player ghosts.
        Actually, it's very easy to turn off player ghosts in FA .. just delete the contents of the "/lib/bone/" directory everytime you've "produced" a new player ghost (bone file). No ghosts will show up any more ...
        No, I don't have a clue 'bout C, and I'm not starting my own variant.
        Never. Ever.

        Comment

        • PowerDiver
          Prophet
          • Mar 2008
          • 2820

          Originally posted by Arralen
          Actually, it's very easy to turn off player ghosts in FA .. just delete the contents of the "/lib/bone/" directory everytime you've "produced" a new player ghost (bone file). No ghosts will show up any more ...
          True, or one could write a script to do it before invoking the executable, but since I was playing a comp those would be cheating IMO. I suppose I could have reinstalled after every death while I was learning the rules ...

          It is probably because of the way I play, but I have never seen a player ghost remotely equivalent to the char that died, in any variant ever.

          Comment

          • Pete Mack
            Prophet
            • Apr 2007
            • 6883

            Eddie--perhaps you can post a save file with a working character? Presumably nick is capable of forcing player ghost generation...

            Comment

            • Atriel
              Apprentice
              • Aug 2007
              • 81

              Just came back, picked again the game, found 2 other bugs

              I am using option "hide squelchable" on.

              - Started to dive Angband, dlvl 73, found red dragon pit, made ASC and start tackling the dragons, 96% res fire, nice! They started to drop, and when i can, heal and check the floor. Several spaces of "white", clean floor with no items (suposedly lots of items hidden by the squelcher) but still, yet, 1/4 of the pit done, things start to "disappear from view"! eeek! I start to prolong the ASC but this seems to be happening quite a bit.
              - Lava isn't doing damage after the step to enter it! The turn I step into lava it "works", but then I press 5 to "stay put" or fight or whatever and it does nothing to me... If I remember well feather fall had some effect with lava, but I didnt have it. (heh. I even got out of the lava and stepped again 4 times ^^) I think (but am not sure) it is augmenting fire damage taken correctly tho...

              Now, the first bug is pretty obvious... Make the item compaction code kill the squelched items first, or kill them after some time, or both

              And a request (low priority, when you have time Nick : Attunement from OAngband.
              I thought i wouldnt have access to a computer in my vacation... Well, just downloaded FA while away thinking about starting a device-based mage, but then... no Attunement Ok, lets play a half-troll warrior. Oops! no half trolls either! (this one is a joke, not request )

              BTW, Attunement from your version of OAngband seems to be different from 1.10 final... 1.10 final I could attune to one wand, one rod and one staff, while 1.10u, I can attune to only one magical device.

              If I finish tomorrow, gonna play the comp!

              Comment

              • Nick
                Vanilla maintainer
                • Apr 2007
                • 9647

                Originally posted by Atriel
                - Lava isn't doing damage after the step to enter it! The turn I step into lava it "works", but then I press 5 to "stay put" or fight or whatever and it does nothing to me... If I remember well feather fall had some effect with lava, but I didnt have it. (heh. I even got out of the lava and stepped again 4 times ^^) I think (but am not sure) it is augmenting fire damage taken correctly tho...
                Thanks, I'll check that.

                Now, the first bug is pretty obvious... Make the item compaction code kill the squelched items first, or kill them after some time, or both
                Yeah, that is kind of obvious


                And a request (low priority, when you have time Nick : Attunement from OAngband.
                I thought i wouldnt have access to a computer in my vacation... Well, just downloaded FA while away thinking about starting a device-based mage, but then... no Attunement
                Good idea. I'm in the process of redoing mage spells, and they're probably going to want to be device users well into the mid-game.

                BTW, Attunement from your version of OAngband seems to be different from 1.10 final... 1.10 final I could attune to one wand, one rod and one staff, while 1.10u, I can attune to only one magical device.
                No, it was only ever one at a time - I just went back and checked.

                If I finish tomorrow, gonna play the comp!
                Cool - Ent Rogues are fun.
                One for the Dark Lord on his dark throne
                In the Land of Mordor where the Shadows lie.

                Comment

                • PowerDiver
                  Prophet
                  • Mar 2008
                  • 2820

                  Originally posted by Pete Mack
                  Eddie--perhaps you can post a save file with a working character? Presumably nick is capable of forcing player ghost generation...
                  Silly me, I thought the ghost was defined in the bones file, so I did not copy the savefile. If I notice another absurd ghost I'll backup the savefile right away, but usually I do not bother to check monster memory, simply fleeing instead.

                  Comment

                  • Nick
                    Vanilla maintainer
                    • Apr 2007
                    • 9647

                    Originally posted by PowerDiver
                    Silly me, I thought the ghost was defined in the bones file, so I did not copy the savefile. If I notice another absurd ghost I'll backup the savefile right away, but usually I do not bother to check monster memory, simply fleeing instead.
                    Yes, savefile on the ghost level is the most informative thing. There is certainly something funny going on - I've had a couple of zombie PGs with 200 mana and 50 HP - which is about the reverse of what it should be. They are meant to get adjusted by class and race, but not that much.
                    One for the Dark Lord on his dark throne
                    In the Land of Mordor where the Shadows lie.

                    Comment

                    • PowerDiver
                      Prophet
                      • Mar 2008
                      • 2820

                      Originally posted by Atriel
                      Just came back, picked again the game, found 2 other bugs

                      I am using option "hide squelchable" on.

                      - ... things start to "disappear from view"! eeek!

                      ...

                      Now, the first bug is pretty obvious... Make the item compaction code kill the squelched items first, or kill them after some time, or both
                      That's not the compaction code, but rather the drop code. The compaction code [in V] is silly too, or at least it used to be. It does [did?] first compact squelched items, but then it keeps compacting, so the order doesn't really matter.

                      I sent Tak a fix for the drop problem a long time ago, and not so long ago he told me that he had finally committed the changes to the dev code, so one could [hopefully] find the fix there.

                      Comment

                      • PowerDiver
                        Prophet
                        • Mar 2008
                        • 2820

                        Originally posted by Nick
                        Yes, savefile on the ghost level is the most informative thing.
                        In the "too little too late" category, I just looked and there is not even a bone.018 file, despite "danger level 18". There is a bone.017 file [and deeper ones]. Could the bug be related to upgrading the level from 17 to 18?

                        Comment

                        • Nick
                          Vanilla maintainer
                          • Apr 2007
                          • 9647

                          Originally posted by PowerDiver
                          In the "too little too late" category, I just looked and there is not even a bone.018 file, despite "danger level 18". There is a bone.017 file [and deeper ones]. Could the bug be related to upgrading the level from 17 to 18?
                          This is a good excuse to give an outline of how player ghosts work.

                          The game comes with a set of preprepared bone files (these were fun to write). The bone files are often (p = 1/3) deleted after use. When a character dies (unless in town) a 'bone.d' file is written where d is approximately the depth of the character on death; if there is already a bone.d, this fails. So there's a fair churn in these things. All they record is sex, race and class (and optionally a custom greeting with no gameplay effect).

                          A player ghost is generated when one of a number of different level ghost templates (which appear after the uniques in monster.txt) is chosen as a monster for generation. At this point a bones file of approximately the right level is selected, and changes are made to the monster data based on the race and class (for example dwarf ghosts get a small boost to HP, druid ghosts get to summon animals). So the relationship to the character is pretty tenuous.

                          I'm not sure where in the process the 'scrambled data' bug is coming in; it doesn't happen consistently, and how bad it is varies as well. It's going to take some chasing.
                          One for the Dark Lord on his dark throne
                          In the Land of Mordor where the Shadows lie.

                          Comment

                          • PowerDiver
                            Prophet
                            • Mar 2008
                            • 2820

                            Originally posted by Nick
                            I'm not sure where in the process the 'scrambled data' bug is coming in; it doesn't happen consistently, and how bad it is varies as well. It's going to take some chasing.
                            If you are not doing anything fancy, scrambled data usually means bad pointers. If this is a static structure, check what you defined above it. If it is on the stack, double-check, and then triple-check afterward, that it wasn't defined in some function that has exited. Of course, you know all that already, but sometimes it takes external prodding to look at one's own code afresh.

                            Without knowing a thing about it, I will make a wild guess that it is related to generating two ghosts on the same level.

                            Comment

                            • Pete Mack
                              Prophet
                              • Apr 2007
                              • 6883

                              If it's really a static value where the ghost stuff gets stored, you can put a watchpoint on to detect if it's getting corrupted.

                              A watchpoint is a (range of) memory address(es) that causes the debugger to stop the process when it's written to. If it's getting corrupted by some unexpected route, you will catch it in the act.

                              EDIT:
                              Watchpoints can really slow down your process, so use them sparingly.

                              Comment

                              • PaulBlay
                                Knight
                                • Jan 2009
                                • 657

                                Originally posted by Pete Mack
                                If it's really a static value where the ghost stuff gets stored, you can put a watchpoint on to detect if it's getting corrupted.

                                A watchpoint is a (range of) memory address(es) that causes the debugger to stop the process when it's written to. If it's getting corrupted by some unexpected route, you will catch it in the act.
                                I've been using Dev-C++ to debug, but it seems to be impossible to stop
                                it again after giving it free reign. (e.g. can't add new break points
                                once the program starts running) You can watch variables but not (I think) stop on changes.
                                Currently turning (Angband) Japanese.

                                Comment

                                Working...
                                😀
                                😂
                                🥰
                                😘
                                🤢
                                😎
                                😞
                                😡
                                👍
                                👎