Separate names with a comma.
Discussion in 'General Modification' started by Sitra Achara, Oct 1, 2020.
Explained a few posts up
Got the RE combat grinder going at last!
Had a little interlude with the gemRB stuff, so it took longer than expected, but I'm sure it'll pay in the long run
I should now be able to make nightly runs with hundreds of combats, map transfers & item respawns each. Let's see how ToEE handles it And if that doesn't cause any crashes, then great! I can rule out at least the basic stuff being wonky...
Edit: now with basic spell casting too and going back to rest in the welcome wench. So far 0 crashes.
I've encountered 2 bugs related to the new option to enforce the tower shield penalty to attack rolls in the builds 3467, 3475 and 3476.
I was playing with Co8 8.1 new content and did the subsequent tests with all the above builds, and therefore the "stricter rules enforcement" option turned on.
The tower shield penalty is being applied correctly while wielding such a shield (Hero's shield).
But if a PC is encumbered and wielding a medium or a light shield, he incorrectly incurs the tower shield penalty too. The level of encumbrance doesn't seem to matter. This bug didn't occurr when I equipped some encumbered PCs with a buckler.
Spoiler: my mistake
Just figured out that this the intended behavior as per the feat.
The second thing I noticed is with PCs having the weapon finesse feat. These now incur a malus to their attack roll equal to the Armor Check Penalty of the shield they're equipped with. Should they be encumbered, the incorrect tower shield malus stack with this one.
I attach a savegame as required by Sitra. The PCs in the save are encumbered and have shields in their inventory. One of them has the weapon finesse feat.
Edit: everything seems to work fine now as of build 3496. Great job!
Thanks for the report! I will take a look at that one shortly.
Good news, I found a crash issue! Though it's probably a rare specific thing, i.e. not really what I was looking for.
The crash happens when a critter makes a ranged attack against another in the same tile. This creates a null projectile handle, and afterwards it tries to set its z coordinate, causing a crash.
If you're wondering how two creatures can occupy the same tile, it's because one of them was a kobold
Still, it's pretty cool that the testing infrastructure already found something!
Edit: it's actually a bit worse than that - when a projectile misses, the target location is randomly shifted by as much as one tile in each direction, so they don't actually have to be on the same tile (which is still hard to set up, unless it's two kobolds shooting each other maybe)
Autotester now includes
* Basic looting - cycles through corpses after combat, pressing loot all and switching party members when full. No selling yet
* Basic spell casting - single target offensive spells
* Instructions for going to the temple tower, quicksaving, then quickloading after the battle is over (5 times). That fight includes lots of prebuffs, spell casting and readied actions so it's a good test vector (which is perhaps why I've gotten multiple crash reports for it over the years).
Haven't had any crashes so far after fixing that one, but then again I've spent a lot of time getting the above not to get stuck Nevertheless it's encouraging that the game isn't that unstable.
Edit: ok cool, just got another crash while the witch tried to cast silence =D this is starting to really pay off!
Edit2: just got a third crash! This one looks like what I was looking for, the game trying to read data from a seemingly valid object handle yet failing to find its stored data array. Awesome!
Alright, solved that one. It was due to undisposed PySpell objects that were being generated and kept around after loading a save. This would happen if the spell python script threw an error.
In the test example it was the witch trying to cast animate dead without a valid target. For example, it would instantiate spell with ID =19. Then the autotester reloaded after combat was done (or party was dead), and when it tried to instantiate spell ID=19 it would retrieve the cached spell from before the reload, which contained invalid obj handles. That's one sneaky bug!
I think that was the big one, so cross your fingers
The one with silence is more situational I think, will look into it.
So if all goes well, i.e. a week goes by without any crashes, we can finally resume feature releases!
The bug with silence seems to be related to the AI "cast fireball" strategy.tab tactic. For some reason, it seems to try to tweak the fireball position to an extreme value sometimes (quite rare but I've had it happen again one time since the previous occurrence). Not sure what the root cause of that is though :/
The direct effect of that triggers a buffer overflow which overwrites the return address of the calling functions, and thus crash.
Now the funny thing is that it looks like I've encountered this buffer overflow crash before and issued a fix for it, but it was "off by 1" (capped to size 6 instead of 5). It should be ok now.
Another thing I ran into was a weird heap corruption issue in the animation system that seems to have been caused by selling stuff to Brother Smyth. Specifically, I somehow caused the game to move some sold items to his personal inventory rather than the hidden chest (substitute inventory, which is used for his "shop items"), and then further weirdness ensued.
As you might have guessed this was revealed after I added loot selling to the auto tester So while the previous two crashes may be taken care of, I'd like to iron this one out as well before releasing.
This is fascinating.
If you can organise loot selling, how about organising NPC loot selling?
"Hold on there, this person was here first..."
Where have I heard that before...
Is this where I can report something? I found some weird stuff during my current and last play.
Lareth and his clone
I spared Lareth and recruited him. After he took me to the Ruined Tower, I enter the Temple, then descend to the Earth Temple level. Lareth left the party. I forgot to go back to the Ruined Tower and went straight to Hommlet. Visiting Gremag & Rannos, the dialog asking Lareth didn't appear. I realized I forgot to meet Lareth's underling in the Tower then went back to the Tower and promised to bring Lareth back. Visited Hommlet again and asked Gremag (he pretended not to know who Lareth was), then went to free Lareth. He's naked and so I used cheat code to produce a Scroll of Teleport and used it to get back to the Ruined Tower. After parting with Lareth inside the Ruined Tower, I travelled to Nulb and Imeryds Run before going back to Hommlet. When I entered Rufus' Tower basement, I noticed the guards are still there. So I sneaked around them and went downstairs to the dungeon. The naked Lareth was still there but he greeted me and ask if I wanted to buy something from him (shop inventory doesn't have anything). So there are two Lareth now, the naked one (level 6) in Hommlet dungeon and the armed one (level 7) in the Ruined Tower. FYI, I took all his items before he left my party both times (he had his weapon + armor and stuff the first time he left, he had only a chunk of meat the second time he left).
Keoghtom's Ointment and Orb of the Golden Death
This happened both in the Co8's Standard Edition and Co8's New Content Edition. If my party leader has a Keoghtom's Ointment in his inventory, the ointment disappear when my party leader loots the Orb of the Golden Death from the chest (when the animation appears). If he has 2 Keoghtom's Ointments, only 1 disappears.
Alrrem doens't activate his Reactive Temples mode
I didn't notice about killing critters enables Romag's reactive temple mode. As far as I know, the remaining priests will activate their Reactive Temple mode if any priest is killed, so I killed him to make the other 3 priests enable their reactive temple mode. But only Belsornig and Kelno moved to their altars, Alrrem stayed in his quarters no matter what I did. I killed the other 2 priests so he's the only priest left. I also killed the troll chieftain, the commander Feldrin and Fire Temple commander Bassanio and his Salamanders + Flamebrothers. I basically cleaned the entire level 2 and left those who are in Alrrem's quarters (his bugbears between his quarters and the jails are dead) and he didn't move an inch from his starting position.
Crart Arms and Armors
Enchanting Shield uses double the enchantment level. Example: I enchanted a masterwork steel shield with +1 Enchantment and Axeblock. If I select that shield in the Craft menu, the Axeblock is duplicated (also counts double for the enchantment limit). If I add Spearblock then see it in the Craft menu, it shows 2 Axeblocks and 2 Spearblocks. Axeblock and Spearblock count as 2 enchantment levels, so the total enchantment count is +1 Enchantment, 2 Axeblocks and 2 Spearblocks = 1 + 2 + 2 + 2 + 2 = 9. I can only add it a +2 enchantment, but I can't add Hammerblock because the limit is 10.
Another case with Shield is the elemental resistances don't use any enchanment level so I can add any resistance enchantment into the shield (+2 Enchantment, 2 Axeblocks, 2 Spearblocks) in the previous example, Fire Res, Greater + Cold Res, Greater + etc (as long as I have the XP and money required).
Chain Shirt +1: Hide and Move Silently
Chain Shirt +1 Masterwork modifier is counted twice for Hide and Move Silently skills.
Let's say Otis (level 10) is wearing a Small Masterwork Studded Leather (Armor Check Penalty: -1)
+2 Initial value
+3 Dex modifier
-1 Item or Tool: Small Masterwork Studded Leather
+1 Masterwork: Small Masterwork Studded Leather
Now he equips a Chain Shirt +1 (Armor Check Penalty: -2)
+2 Initial value
+3 Dex modifier
-2 Item or Tool: Small Masterwork Studded Leather
+1 Masterwork: Small Masterwork Studded Leather
+1 Masterwork: Small Masterwork Studded Leather (duplicate?)
+5 Total (should be +4)
I tried some other armors (enchanted or masterwork) with different Armor Check Penalty and the Masterwork bonus (+1) only appear once.
Tiny Rapier and Masterwork Tiny Rapier
The damage is 1d3 but if I shift-click it, it says 1d6. I've tried it in combat and it really deals 1d3 damage.
Most of these aren't specific to Temple+ so they won't be at the top of the list right now, though I do acknowledge and appreciate your reporting.
In particular Allrem is not a bug I think - the elemental temple leaders have different "thresholds", and IIRC Allrem being the least sane one will forego regrouping if you so much as talk to him before killing the others. The others will feel safe if you've done some quests for them, depending on the priest (with Kelno being the most paranoid).
The crating thing does sound like a big deal. @_doug_ could you look into it?
I should have time to look at the crafting issue later this evening.