Issues on current master

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Nick
    Vanilla maintainer
    • Apr 2007
    • 9647

    #91
    Originally posted by t4nk
    Nick, I got a crash from asan at obj-randart.c:2518:
    Code:
    while (strstr(art->name, "The One Ring") ||
    	kf_has(kind->kind_flags, KF_QUEST_ART)) {
    	(*aidx)++;
    	art = &a_info[*aidx];
    	art_level = art->level;
    	if ((*aidx) >= z_info->a_max) {
    		return;
    	}
    }
    obj-init.c allocates z_info->a_max + 1 structs (line 2700), but note that it then increments a_max (line 2715). So accessing art->level when *aidx == a_max is illegal (perhaps that's the cause of Nomad's crash?)
    Thank you, yes - I should be testing before incrementing.

    Originally posted by t4nk
    (come to think of it, why does obj-init.c do that? and why does it start assigning from a_max, leaving zeroed out struct at the beginning?)
    I don't actually remember. Each artifact in artifact.txt used to have an index, and they started at 1, and there was some code or other that relied on that fact, but I'm not at all sure it's necessary any more. I'll check at some point and change it if it's not needed, because it's a bit silly to do it for no reason.
    One for the Dark Lord on his dark throne
    In the Land of Mordor where the Shadows lie.

    Comment

    • PowerWyrm
      Prophet
      • Apr 2008
      • 2987

      #92
      Originally posted by t4nk
      come to think of it, why does obj-init.c do that? and why does it start assigning from a_max, leaving zeroed out struct at the beginning?
      That's what the code does everywhere. The main reason is to put zero as index in the savefiles where there is nothing to save, while keeping a trivial loading routine: read index, assign struct = structs[index]. Otherwise, you would have to check the index, see if it's zero, assign null in that case, assign struct = structs[index-1] in other cases.

      Note that in PWMAngband, I do the latter. It makes loading savefiles more complex, but simplifies all the rest (in particular, the init/parsing code).
      PWMAngband variant maintainer - check https://github.com/draconisPW/PWMAngband (or http://www.mangband.org/forum/viewforum.php?f=9) to learn more about this new variant!

      Comment

      • PowerWyrm
        Prophet
        • Apr 2008
        • 2987

        #93
        Looking at master for implementing the latest stuff in PWMAngband. In commit a970eb7:

        Code:
        +
        +	/* Uniques are doubly hard to affect */
        +	if (rf_has(mon->race->flags, RF_UNIQUE)) {
        +		resist_chance /= 2;
        +	}
        Well I think that makes uniques easier to affect no?

        Best thing is to leave the double check in saving_throw(). Doing a *2 would make all level 50+ monsters completely immune to effects instead of giving them double resistance (double check at resist = 50 --> 75% vs single check at resist = 100 --> 100%).

        Code:
        if (rf_has(mon->race->flags, RF_UNIQUE) && (randint0(100) < resist_chance)) return true;
        Last edited by PowerWyrm; May 9, 2017, 09:26.
        PWMAngband variant maintainer - check https://github.com/draconisPW/PWMAngband (or http://www.mangband.org/forum/viewforum.php?f=9) to learn more about this new variant!

        Comment

        • PowerWyrm
          Prophet
          • Apr 2008
          • 2987

          #94
          Minor issue: in commit e9458fa, many flags have been added to monster.txt, but some of them are already present in monster_base.txt (for example: NO_CONF on vortices).
          PWMAngband variant maintainer - check https://github.com/draconisPW/PWMAngband (or http://www.mangband.org/forum/viewforum.php?f=9) to learn more about this new variant!

          Comment

          • PowerWyrm
            Prophet
            • Apr 2008
            • 2987

            #95
            Are traps still appearing only 25% of the time in vaults? I think the number of traps should be increased again, otherwise many vaults are very empty...
            PWMAngband variant maintainer - check https://github.com/draconisPW/PWMAngband (or http://www.mangband.org/forum/viewforum.php?f=9) to learn more about this new variant!

            Comment

            • t4nk
              Swordsman
              • May 2016
              • 336

              #96
              Originally posted by PowerWyrm
              That's what the code does everywhere. The main reason is to put zero as index in the savefiles where there is nothing to save, while keeping a trivial loading routine: read index, assign struct = structs[index]. Otherwise, you would have to check the index, see if it's zero, assign null in that case, assign struct = structs[index-1] in other cases.
              Ah, so that's how it was (angband now saves artefact names as strings instead).

              Comment

              • PowerWyrm
                Prophet
                • Apr 2008
                • 2987

                #97
                Another minor issue: monsters break from "hold" effect when hit, but not from various other situations.

                - hurt by earthquake
                - summoned via "calling out"
                - healed via "heal monster"
                PWMAngband variant maintainer - check https://github.com/draconisPW/PWMAngband (or http://www.mangband.org/forum/viewforum.php?f=9) to learn more about this new variant!

                Comment

                • takkaria
                  Veteran
                  • Apr 2007
                  • 1951

                  #98
                  Originally posted by PowerWyrm
                  Another minor issue: monsters break from "hold" effect when hit, but not from various other situations.

                  - hurt by earthquake
                  - summoned via "calling out"
                  - healed via "heal monster"
                  I think I'm OK with this. I'll fix the other issues though, and also turn on saving throws for the unresistable effects soon.
                  takkaria whispers something about options. -more-

                  Comment

                  • Wanderlust
                    Apprentice
                    • Dec 2015
                    • 76

                    #99
                    I had a problem compiling/installing the May 7 nightly.

                    I install locally with:

                    Code:
                    $ ./configure --prefix=$HOME --enable-sdl
                    $ make
                    $ make install
                    Running the program returns:

                    Code:
                    ./angband: Cannot find required file:
                    /usr/local/share/angband/fonts/6x10x.fon
                    The same installation procedure works fine with earlier versions, such as the April 25 nightly, which I am running now with no problems.

                    Comment

                    • PowerWyrm
                      Prophet
                      • Apr 2008
                      • 2987

                      Originally posted by takkaria
                      I think I'm OK with this. I'll fix the other issues though, and also turn on saving throws for the unresistable effects soon.
                      Ok don't do that. For what I've seen, stuff like Slow and Confuse are still marginally useful because not really powerful, so it's ok to leave them without saving throw. The problem reported is vs Stun... and that's because there's a bug in the new implementation. Looking at mon-timed.h, the STUN_DAM_REDUCTION value is supposed to be "Percentage reduction in damage". But in mon-attack.c, the code is:

                      Code:
                      if (stunned) damage = (damage * STUN_DAM_REDUCTION) / 100;
                      The recent nerfing made that even worse, since this reduces monster damage to 10% of their normal damage while stunned...

                      Oh and it seems that the same problem applies for STUN_HIT_REDUCTION. In check_hit():

                      Code:
                      if (debuff) chance = (chance * debuff) / 100;
                      Fixing both of these will give some threat back to stunned monsters, and removing the saving throw for stunning will be also fine. Maybe bring back the 25% reduction instead of 10% too, because 10% won't do much, especially when damage is low due to rounding down.
                      Last edited by PowerWyrm; May 10, 2017, 08:45.
                      PWMAngband variant maintainer - check https://github.com/draconisPW/PWMAngband (or http://www.mangband.org/forum/viewforum.php?f=9) to learn more about this new variant!

                      Comment

                      • Pete Mack
                        Prophet
                        • Apr 2007
                        • 6883

                        @PowerWyrm--oh wow. I could not figure out how a mage could go something like 20 rounds of melée with a horned reaper with no heals. I was pecking away at around 100 damage/turn, with Barukheled and terrible hit ratio. Yes, it was intended as a demonstration, so the character took significant damage. But it should be essentially impossible, except with something like Deathwreaker. And the stun duration was just forever from Ice Storm.

                        Comment

                        • takkaria
                          Veteran
                          • Apr 2007
                          • 1951

                          Originally posted by PowerWyrm
                          Looking at mon-timed.h, the STUN_DAM_REDUCTION value is supposed to be "Percentage reduction in damage". But in mon-attack.c, the code is:

                          Code:
                          if (stunned) damage = (damage * STUN_DAM_REDUCTION) / 100;
                          Ah, that's an embarrassing basic maths error. I'll fix that later today and we can see how it plays...
                          takkaria whispers something about options. -more-

                          Comment

                          • Sky
                            Veteran
                            • Oct 2016
                            • 2321

                            i agree with the stun being overpowered; i was meleeing mobs with a 300 dmg weapon and can take on stuff like Glaurung and the Tarrasque. However, i would like to see this effect lessened, not removed. The idea is right, it just needs tweaking.
                            "i can take this dracolich"

                            Comment

                            • Gwarl
                              Administrator
                              • Jan 2017
                              • 1025

                              Originally posted by PowerWyrm
                              Ok don't do that. For what I've seen, stuff like Slow and Confuse are still marginally useful because not really powerful, so it's ok to leave them without saving throw.
                              No! There are profound philosophical objections to disallowing monster saving throws, it's not just a matter of working through the cascade of smaller issues the change causes. I can go through this one again.

                              Comment

                              • PowerWyrm
                                Prophet
                                • Apr 2008
                                • 2987

                                Originally posted by Sky
                                i agree with the stun being overpowered; i was meleeing mobs with a 300 dmg weapon and can take on stuff like Glaurung and the Tarrasque. However, i would like to see this effect lessened, not removed. The idea is right, it just needs tweaking.
                                Well the point is that stun was not overpowered... it was bugged
                                PWMAngband variant maintainer - check https://github.com/draconisPW/PWMAngband (or http://www.mangband.org/forum/viewforum.php?f=9) to learn more about this new variant!

                                Comment

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