Troika needs your help if... (please read)

Discussion in 'General Modification' started by Sol Invictus, Dec 3, 2003.

Remove all ads!
  1. zhuge

    zhuge Established Member Veteran

    Joined:
    Sep 27, 2003
    Messages:
    484
    Likes Received:
    0
    Any extra progress on Scorpp on equipping the club and hide armor?

    It appears many if not all secret doors have a DC of 0. Has any one found a file in which data for secret door DC is coded?
     
  2. zhuge

    zhuge Established Member Veteran

    Joined:
    Sep 27, 2003
    Messages:
    484
    Likes Received:
    0
    After repeated tries to unstack Bracers by changing the model, the inventory icon and other parameters, I've come to the conclusion that Bracers cannot be unstacked unless they are put in another slot.

    Changing OIF_WEAR_BRACERS to OIF_WEAR_LOCKPICKS for Greater Bracers of Archery and Bracers of Armor +5 puts them in the thieves' tools slot and they no longer stack when applied.

    Since Thieves' Tools are not needed in combat, this slot can be freely substituted when the need for lockpicking arises. However this may conflict with previous changes to wear Oohlgrist's Emerald Belt, Ioun Stones and other Co8 changes.

    Conversely I tested changing OIF_WEAR_LOCKPICKS to OIF_WEAR_BRACERS for Thieves' Tools and now I can stack 2 Thieves tools and a Lesser Bracers of Archery in the bracers slot.
    I guess that means anything which is labelled as OIF_WEAR_BRACERS will stack (physically and effects-wise).

    That seems a better slot to put Oohlgrist's Belt and the Ioun stones since I think they should not be mutually exclusive in the first place. I hope the previous authors of these fixes can take note of these suggestions.
    Unless Troika has time to change the hardcoded qualities of the bracers slot and designate that objects put there are not stackable, I think the above is an odd but workable solution.

    Comments and further suggestions as always are highly welcome.


    EDIT: Checked the Thieves' Tools put into the bracers slot and it seems that the game doesn't recognize it to be there. It still penalizes the player for not having Thieves' Tools while lockpicking. Bracers work fine in the Thieves' Tools slot though. Both armor bonuses and archery bonuses register correctly.
    If we are to change the belt and Ioun stones to the stackable bracers slot we'll need to check if these work.
     
    Last edited: Dec 20, 2003
  3. zhuge

    zhuge Established Member Veteran

    Joined:
    Sep 27, 2003
    Messages:
    484
    Likes Received:
    0
    Valden not awarding wooden spiked shields for Paida's rescue is a known bug not corrected by the official patch.
    The cause is Valden does not have wooden spiked shields in his inventory and so the command:
    npc.item_transfer_to_by_proto(pc,6136)
    doesn't work.

    In 00058wainwright.dlg change:

    {231}{Sure. Thanks, Valden!}{}{1}{}{240}{npc.item_transfer_to_by_proto(pc,6136); game.global_vars[17] = 1}
    {251}{Great. Thanks! See you later.}{}{1}{}{0}{npc.item_transfer_to_by_proto(pc,6136); game.global_vars[17] = game.global_vars[17] + 1}

    to

    {231}{Sure. Thanks, Valden!}{}{1}{}{240}{create_item_in_inventory( 6136, pc ); game.global_vars[17] = 1}
    {251}{Great. Thanks! See you later.}{}{1}{}{0}{create_item_in_inventory( 6136, pc ); game.global_vars[17] = game.global_vars[17] + 1}


    Tested and the shield is now awarded. Pretty paltry reward though. :(


    Another bug:
    Paida respawns back at Hedrack's room after being rescued when left for some time.
    I wonder if it is related to this segment of code in her .py file:

    def run_off( attachee, triggerer ):
    attachee.standpoint_set( STANDPOINT_NIGHT, 257 )
    attachee.standpoint_set( STANDPOINT_DAY, 257 )
    attachee.runoff(attachee.location-3)
    return RUN_DEFAULT

    Anyone tinkered with this kind of code before?



    EDIT:
    Ok, another bug regarding Paida:
    -Paida becomes unfriendly if I bring her to the Welcome Wench Inn at night and talk to her husband first that I've brought her home. She says I've changed and not for the better.

    If I talk to her first and ask her to leave, she acknowledges that she is already in Hommlet and does not become unfriendly. Checking Paida's .dlg file reveals a npc.reaction_adj( pc,+30)
    when she leaves the party which is not present in her .py file.

    The relevant section in her .py file is:

    def san_heartbeat( attachee, triggerer ):
    if (not game.combat_is_active()):
    if (game.quests[20].state == qs_completed):
    for pc in game.party:
    if pc.has_follower(8001):
    npc.reaction_adj( pc,+30)
    pc.follower_remove( attachee )
    game.new_sid = 0
    return RUN_DEFAULT


    Inserted attachee.reaction_adj( pc,+30) into the .py file

    def san_heartbeat( attachee, triggerer ):
    if (not game.combat_is_active()):
    if (game.quests[20].state == qs_completed):
    for pc in game.party:
    if pc.has_follower(8001):
    attachee.reaction_adj( pc,+30)
    pc.follower_remove( attachee )
    game.new_sid = 0
    return RUN_DEFAULT

    Retested and now Paida is friendly once more.
     
    Last edited: Dec 22, 2003
  4. zhuge

    zhuge Established Member Veteran

    Joined:
    Sep 27, 2003
    Messages:
    484
    Likes Received:
    0
    Here are the current status of a few bugs which have yet to be fixed:

    -Gnolls should not recieve 5/Bludgeoning

    I have identified one of the offending gnolls as {14080}{Gnoll}. I've put it under a Suggestion spell so that I could more closely monitor it. I can alter its model, its picture, its stat values (eg Str), its natural armor but putting DR does not register (tried 0/bludgeoning).


    -lantern archons (Summon Monster 4) are supposed to use ranged touch attacks. Instead, they attack normally (with a Strength penalty too) making them far too weak.

    I can correct the Dex for it from 1 to 11 and a few other values but the important thing here is the ability to make a ranged touch attack. Not sure if this can be coded into protos.tab
    Gave it a Sniper AI and it just froze on the first round since it had no ranged attack.


    -potion description says they weigh 1 pound, but they actually weigh 0

    It appears potions have their weight column value divided by 4. Fractions are ignored. So if you change the weight column to 100, each potion will weigh 25lb. However the description of the potion still shows the weight column value as 100, which is confusing.


    -Potions of cure light wounds occasionally heal 1 hp. Possibly they are marked as caster level 0?

    I could not reproduce this within 50 tries. Inspection of the code in the .py file looks ok to me but it appears the potion calls the same .py file which uses spell.caster_level. So if the character using the potion has no caster levels, it appears to default to 1. I altered the dice value from 1d8 to 1d10 and promptly got a range of 2-11 instead.
    Potions should use the caster level of the character to made the potion, not the character who is drinking it. If we take the caster level as the minimum value than that should be 3 (level required to take Brew Potion feat). From the code, it seems that clerics may also use their level to determine potion effects.


    Insights on solving these problems are highly welcome
     
  5. zhuge

    zhuge Established Member Veteran

    Joined:
    Sep 27, 2003
    Messages:
    484
    Likes Received:
    0
    Ok, I've made some progress regarding a hot topic: Permanency.
    Yeah, I know it's been bugging lots of people but I haven't really gotten round to it due to the large amounts of bugs present.

    Anyway for this bug:
    -demons summoned by the four Gems seems to be permanent for most people

    is appears that this command:

    monster_obj = game.obj_create( monster_proto_id, spell.target_loc )

    does create a monster but this monster will not fade when the message "a spell has expired" floats up.


    In Spell729 - Summon Vrock.py the relevant section is:

    # create monster
    monster_obj = game.obj_create( monster_proto_id, spell.target_loc )
    game.particles( 'Orb-Summon-Vrock', monster_obj )


    Looking at other summons which do fade such as Summon Monster I, I found that the relevant section is:

    # create monster, monster should be added to target_list
    spell.summon_monsters( 1, monster_proto_id )


    So at first, I added the entire line in Spell729 - Summon Vrock.py to make:

    # create monster
    spell.summon_monsters( 1, monster_proto_id )
    monster_obj = game.obj_create( monster_proto_id, spell.target_loc )
    game.particles( 'Orb-Summon-Vrock', monster_obj )

    And lo and behold I got 2 Vrocks - one of which did fade out after a few rounds and the other didn't, despite getting the same float line: "a spell has expired"


    Therefore I deleted monster_obj = game.obj_create( monster_proto_id, spell.target_loc ) leaving:

    # create monster
    spell.summon_monsters( 1, monster_proto_id )
    game.particles( 'Orb-Summon-Vrock', monster_obj )

    And now I get only 1 Vrock which does indeed fade away after 5 rounds with no ill effects. Changed maps and did a quest or two. No CTDs so far so I guess everything's Ok.


    Repeat the same procedure for Hezrou and Glabrezu.
    It appears that the Balor is already fixed though.


    EDIT: Ok, same goes for:
    Spell722 - Summon Air Elemental.py
    Spell723 - Summon Earth Elemental.py
    Spell724 - Summon Fire Elemental.py
    Spell725 - Summon Water Elemental.py

    Find the line: monster_obj = game.obj_create( monster_proto_id, spell.target_loc )
    Change to: spell.summon_monsters( 1, monster_proto_id )

    and the elemental should go away. Note that an elemental will turn hostile against the party unlike a demon when the duration expires but the elemental does not fade.


    Also tried the same thing with:
    Spell320 - Mordenkainen's Faithful Hound

    It does work in that the Hound now fades when the duration is up. However the semi-transparent graphics effect seems to be lost. The Hound is still invulnerable and AI still ignores it, going for PCs instead so gameplay-wise it should be OK.
     
    Last edited: Dec 26, 2003
  6. gygaxian

    gygaxian Member

    Joined:
    Oct 12, 2003
    Messages:
    15
    Likes Received:
    0
    Is Troika aware of the following? I did not see in your list:

    - Longspear should be a simple weapon, not martial.

    - Rogues should start the simple weapon proficiency and only need to spent 1 feat to learn a martial weapon. Does not work like this currently, perhaps because rogues get "simple weapon rogue" rather than the actual simple weapon feat.

    - There is nowhere to buy a bard instrument. I can't think of a merchant for thieves tools either, but I could be wrong. Currently only bards that begin the game at level 1 have the needed instrument.

    - Pre-patch: Enlarge Person spell does not increase the unarmed strike damage dice that are rolled. It should increase just like weapons. I am not sure if this was changed in the patch -- was not a listed change.

    - If a druid begins a combat already wildshaped, his movement is set to 5, regardless of encumberance. Alternately,if during combat he uses the wildshape action, to go from humaniod to animal, the movement bug does Not occur -- but verify this.

    - Conjuration school spells, such as stinking cloud, melf's acid arrow, cloudkill, glitterdust, should never allow for Spell Resistance checks as per 3.5 rules.

    - There needs to be a level 2 evocation wiz/sorc spell that causes damage to all forms of creatures. There currently is none, so the evoker specialist has little use for his bonus spell slot. IF the evoker could memorize Magic Missile or (any 1st level evocation spell) in this second level slot, then the class would more closely fit the D&D rules (technically, any slot of any level should be able to be filled with the appropriate spell level OR any lower level spell)

    These are vital changes that need to be fixed IMHO.
     
  7. zhuge

    zhuge Established Member Veteran

    Joined:
    Sep 27, 2003
    Messages:
    484
    Likes Received:
    0
    @gygaxian:
    Answers posted at Atari forums at Steve's stickied post (page 10).
    The only item I can correct which is not already settled is the bard instrument. If you can suggest a logical place to put it for sale, I will try to include it. See Atari post for more details.
     
Our Host!