Current master post-4.2.1

Collapse
X
 
  • Time
  • Show
Clear All
new posts

  • Nick
    replied
    Originally posted by DavidMedley
    OK, I'll play along. How is the order in class.txt chosen? I'm looking for an answer that gets down to the ones and zeroes of the individual transistors, please.
    There is no deeper answer. It's the order I happened to put them in in class.txt when I introduced the new classes. Presumably I had some reason for that order at the time. When the game starts they're read in by the datafile parser, and then spat out onto the birth screen in the same order.

    Leave a comment:


  • DavidMedley
    replied
    OK, I'll play along. How is the order in class.txt chosen? I'm looking for an answer that gets down to the ones and zeroes of the individual transistors, please.

    Leave a comment:


  • Nick
    replied
    Originally posted by DavidMedley
    What is the order of classes on the creation screen?
    a) Warrior
    b) Mage
    ...
    f) Paladin
    g) Rogue
    ... etc

    More precisely: how is the order chosen?
    By their order in class.txt.

    Leave a comment:


  • DavidMedley
    replied
    What is the order of classes on the creation screen?
    a) Warrior
    b) Mage
    ...
    f) Paladin
    g) Rogue
    ... etc

    More precisely: how is the order chosen?

    Leave a comment:


  • wobbly
    replied
    Originally posted by Sphara
    Are there any other ways of reaching Gwarl than waiting him to appear in angband.live chat?
    You could try the angband.live forum, though whether it'll work I'm not sure. I tried just then and got an error.

    Leave a comment:


  • Nick
    replied
    Originally posted by Rune
    I was looking in the source code and it looks like damage for the mage spell "Thrust away" is bugged.

    Code:
    spell:Thrust Away:40:12:90:40
    effect:SHORT_BEAM:FORCE:1:10
    dice:$Dd8
    expr:D:PLAYER_LEVEL:+ 0
    desc:Fires a short range beam of force.
    Why would the damage be player level '+ 0' d8?
    Because the syntax of the expr line requires three fields. We want (player level)d8 as the damage, but we need to add the '+0' for the file to parse correctly.

    Leave a comment:


  • Rune
    replied
    I was looking in the source code and it looks like damage for the mage spell "Thrust away" is bugged.

    Code:
    spell:Thrust Away:40:12:90:40
    effect:SHORT_BEAM:FORCE:1:10
    dice:$Dd8
    expr:D:PLAYER_LEVEL:+ 0
    desc:Fires a short range beam of force.
    Why would the damage be player level '+ 0' d8?

    Leave a comment:


  • Sphara
    replied
    Awesome.

    Are there any other ways of reaching Gwarl than waiting him to appear in angband.live chat?

    I've sent a personal message weeks ago. He finally addressed me in angband.live that he has sent my bug report further regarding to my vanilla save file. He just never removed the save file. He even apologized me for having a long absence. I have specifically stated that a save file of 'SPHARAGAIN' in angband.live is corrupted. But it is still there. I'm forced to play 4.2.1. Not a bad thing as such, but I want to be a part of new development. As far as playtesting goes.

    So, unless there is not a string of misunderstandings, just remove spharagain vanilla nightly save file. And if there is another person who can do this, please inform me.

    Loving f'***ing everyone, Sphara

    Leave a comment:


  • Nick
    replied
    As far as I know there are two possibly outstanding bugs - duplicate uniques and duplicate artifacts - and I have been unable to pin them down despite much searching. So I think we're close to releasing 4.2.2. Let me know if there's anything I'm missing.

    Leave a comment:


  • Nick
    replied
    Thanks. Efficient and clear; I particularly like the way you don't let quest artifacts mess with the counting and probabilities.

    Leave a comment:


  • Pete Mack
    replied
    Got it. I misread it the first time.

    Leave a comment:


  • PowerWyrm
    replied
    Originally posted by Pete Mack
    That code isn't even right. It will favor the first objects enormously.

    You want to count down with probability, with P= 1/N for object 1 and p = 1 for object N. Even better, count the list without the quest artifacts, pick a random number between 1 an N, and count off til you get that object. As written, there are excessive calls to random.
    Code works perfectly.

    First object: 100% chance to pick (100% obj1)
    Second object: 1/2 chance to pick, 1/2 chance to keep old one -> 1/2 chance for first 2
    Third object: 1/3 chance to pick, 2/3 chance to keep old one -> 1/3 chance on all first 3 (1/2*2/3)
    Fourth object: 1/4 chance to pick, 3/4 chance to keep old one -> 1/4 chance on all first 4 (1/3*3/4)
    ...
    Nth object: 1/n chance to pick, n-1/n chance to keep old one, and all up to (n-1) have equal 1/(n-1) probability -> 1/n-1 * n-1/n = 1/n chance on all n objects

    Leave a comment:


  • Pete Mack
    replied
    That code isn't even right. It will favor the first objects enormously.

    You want to count down with probability, with P= 1/N for object 1 and p = 1 for object N. Even better, count the list without the quest artifacts, pick a random number between 1 an N, and count off til you get that object. As written, there are excessive calls to random.

    Leave a comment:


  • PowerWyrm
    replied
    Commit 3f9d411 has a lot of crash potential:
    - if mob only has quest artifacts, get_random_monster_object() goes into endless loop
    - if quest artifacts are at the end and the RNG picks them first, get_random_monster_object() also goes into endless loop

    Probably a much simpler way to pick a random object would be:

    Code:
    static struct object *get_random_monster_object(struct monster *mon)
    {
        struct object *obj, *pick = NULL;
        int i = 1;
    
        /* Pick a random object */
        for (obj = mon->held_obj; obj; obj = obj->next)
        {
            /* Check it isn't a quest artifact */
            if (obj->artifact && kf_has(obj->kind->kind_flags, KF_QUEST_ART))
                continue;
    
            if (one_in_(i)) pick = obj;
            i++;
        }
    
        return pick;
    }

    Leave a comment:


  • Sphara
    replied
    angband.live nightly, 13th Nov, account SPHARAGAIN, the game crashed immediately after descending from DL51 to DL52. I obviously cannot produce the savefile. Gwarl can certainly send it to a dev, if there is anything to send, without further permission from me.

    "Ignoring illegal player location (35,216). Savefile corrupted - Couldn't load block dungeon"

    Leave a comment:

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