Jump to content


Photo

BWP 10.3 tactical. in-game issues


  • Please log in to reply
89 replies to this topic

#61 Suslik

Suslik

    Investigator

  • Member
  • 500 posts

Posted 11 April 2012 - 01:47 PM

Miloch, I will have to figure out what exactly causes proficiency points to be lost. Only after that I will be able to investigate which of those should be fixed.

And probably the second major bug(after Turumbar's contingency bug) I have encouneter
Randall NPC from RoT causes about 10% of baldur.bcs to be skipped[Major][Not fixed][Workaround is provided]
RoT adds following lines to Baldur.bcs:
IF
        Global("RandallJoin","GLOBAL",7)
THEN
        RESPONSE #100
                ActionOverride("Randall",StartDialog("RandallJ",[PC]))
END
and if I do not have Randall in my party(who is that anyway?) this block fires endlessly and prevents any blocks below from being fired. I suggest adding either additional checks or Continue() to this block as a workaround/fix.

The problem is reported to RoT bug feedback thread.

Edited by Suslik, 11 April 2012 - 01:57 PM.


#62 Miloch

Miloch

    Barbarian

  • Modder
  • 6573 posts

Posted 11 April 2012 - 02:02 PM

Miloch, I will have to figure out what exactly causes proficiency points to be lost. Only after that I will be able to investigate which of those should be fixed.

Eh, I kind of just told you... :P

Infinity Engine Contributions
Aurora * BG1 NPC * BG1 Fixpack * Haiass * Infinity Animations * Level 1 NPCs * P5Tweaks
PnP Free Action * Thrown Hammers * Unique Containers * BG:EE * BGII:EE * IWD:EE
================================================================
Player & Modder Resources
BAM Batcher * Creature Lister * Creature Checker * Creature Fixer * Tutu/BGT Area Map & List * Tutu Mod List
================================================================
"Infinity turns out to be the opposite of what people say it is. It is not 'that which has nothing beyond itself' that is infinite, but 'that which always has something beyond itself'." -Aristotle


#63 Suslik

Suslik

    Investigator

  • Member
  • 500 posts

Posted 11 April 2012 - 02:14 PM

Miloch, I will have to figure out what exactly causes proficiency points to be lost. Only after that I will be able to investigate which of those should be fixed.

Eh, I kind of just told you... :P

Short version, how I see it:

Miloch: proficiency addition is made via <effect>.eff which is called by <spell>.spl and which is called by <itm>.itm
Suslik: prior to determining which of those is responsible for proficiency loss, I will have to figure out under which circumstances proficiency point is actually erased.

I suppose we are talking about a little different things. You are talking about things which can be responsible for the bug, and I'm talking that prior to fixing them I need to find the exact way to actually reproduce the bug. Anyway I'm terribly sorry for my English and making myself unclear. Yet again.

And please take a look into that last bug with Randall. I suppose it's quite serious, because it affects baldur.bcs

Edited by Suslik, 11 April 2012 - 02:18 PM.


#64 Suslik

Suslik

    Investigator

  • Member
  • 500 posts

Posted 12 April 2012 - 08:55 AM

Started another thread related to a particular kind of stuttering: http://www.shsforums...the-stuttering/

#65 Miloch

Miloch

    Barbarian

  • Modder
  • 6573 posts

Posted 12 April 2012 - 01:48 PM

Well, if you don't know what item or spell even causes the proficiency glitch, then yes, that requires further investigation :P. But if it's that treatise you indicated, then the .itm, .spl and .eff all trigger at once, so it doesn't matter which of them is the issue - they all need to be fixed (and my fix would be not using the mod :)).

And I try to stay away from messing with megamods, except the 1 or 2 I've made exceptions for, but this smells of bugginess:
IF
		Global("RandallJoin","GLOBAL",7)
THEN
		RESPONSE #100
				ActionOverride("Randall",StartDialog("RandallJ",[PC]))
END
Without actually looking further into it (I'd rather not mess around in RoT code), I can tell you that it at least needs checks to make sure the NPC is in sight, not dead and that it doesn't loop. Something like this maybe, but don't quote me on it:

IF
  Global("RandallJoin","GLOBAL",7)
  InParty("Randall")
  !StateCheck("Randall",4032)
THEN
  RESPONSE #100
    IncrementGlobal("RandallJoin","GLOBAL",1)
    ActionOverride("Randall",StartDialog("RandallJ",[PC]))
END
And I say don't quote me because I have no idea what that's supposed to do, whether he's supposed to be in the party at the time or whether incrementing RandallJoin will mess with anything else. You or someone else would have to do that research by digging into the mod's files. Most questionable is what's this doing in baldur.bcs at all. It belongs in the NPC's script or at most, whatever area scripts might trigger it.

Infinity Engine Contributions
Aurora * BG1 NPC * BG1 Fixpack * Haiass * Infinity Animations * Level 1 NPCs * P5Tweaks
PnP Free Action * Thrown Hammers * Unique Containers * BG:EE * BGII:EE * IWD:EE
================================================================
Player & Modder Resources
BAM Batcher * Creature Lister * Creature Checker * Creature Fixer * Tutu/BGT Area Map & List * Tutu Mod List
================================================================
"Infinity turns out to be the opposite of what people say it is. It is not 'that which has nothing beyond itself' that is infinite, but 'that which always has something beyond itself'." -Aristotle


#66 Suslik

Suslik

    Investigator

  • Member
  • 500 posts

Posted 12 April 2012 - 05:39 PM

Right you are. But anyway, I think even if I have messed anything by adding that Continue() into Randall's block, it may mess only Randall NPC himself, not the whole game as he was trying to :/

Check out my stuttering investigation thread! It looks fishy and promising.. and... ok, more fishy : D

#67 Miloch

Miloch

    Barbarian

  • Modder
  • 6573 posts

Posted 12 April 2012 - 05:51 PM

Continue() rarely solves anything, except in the rare case you have multiple Die() triggers or something obscure like that. It's still going to loop eventually, because it has to come back to that block after parsing all the other cruft in baldur.bcs (which it typically does several times a second but who knows with a monstrously garbage-filled baldur.bcs). Edit: the only way I see that working is if there's another script block somewhere else further down that sets the variable to some other value, hence preventing the loop.

I tend to stay away from stuttering threads. But interesting if variable length is tied to it... seems my use of short unreadable variable names is vindicated after all :).

Edited by Miloch, 12 April 2012 - 05:54 PM.

Infinity Engine Contributions
Aurora * BG1 NPC * BG1 Fixpack * Haiass * Infinity Animations * Level 1 NPCs * P5Tweaks
PnP Free Action * Thrown Hammers * Unique Containers * BG:EE * BGII:EE * IWD:EE
================================================================
Player & Modder Resources
BAM Batcher * Creature Lister * Creature Checker * Creature Fixer * Tutu/BGT Area Map & List * Tutu Mod List
================================================================
"Infinity turns out to be the opposite of what people say it is. It is not 'that which has nothing beyond itself' that is infinite, but 'that which always has something beyond itself'." -Aristotle


#68 Suslik

Suslik

    Investigator

  • Member
  • 500 posts

Posted 12 April 2012 - 06:27 PM

Continue() rarely solves anything, except in the rare case you have multiple Die() triggers or something obscure like that. It's still going to loop eventually, because it has to come back to that block after parsing all the other cruft in baldur.bcs (which it typically does several times a second but who knows with a monstrously garbage-filled baldur.bcs). Edit: the only way I see that working is if there's another script block somewhere else further down that sets the variable to some other value, hence preventing the loop.

I tend to stay away from stuttering threads. But interesting if variable length is tied to it... seems my use of short unreadable variable names is vindicated after all :).


Umm.. can you please explain?

Assume there's a code that's supposed to make me happy. But it will never be fired because of Randall D:
Baldur.bcs
IF
	Global("RandallJoin","GLOBAL",7)
THEN
	RESPONSE #100
		ActionOverride("Randall",StartDialog("RandallJ",[PC]))
		//Continue()
END

IF
	True()
THEN
		RESPONSE #100
		ReallyForceSpell(Suslik,MAKE_HAPPY)
END
I will not become happy until Continue() is uncommented, will I?

Edited by Suslik, 12 April 2012 - 06:51 PM.


#69 Miloch

Miloch

    Barbarian

  • Modder
  • 6573 posts

Posted 12 April 2012 - 07:21 PM

The engine parses scripts so many times per second. All you've done there is Continue() one continuously-looping block so that another one after it will continuously loop. And if the second one *didn't* continuously loop (as I know it's theoretical, you could put a variable check in there) then the script would come back to the Randall block to loop again, a second or so later. You have to make sure that if the triggers for one block (everything before the RESPONSE) are True then the actions (everything after the RESPONSE) make sure that block doesn't continue to be True nonstop, or it will be triggered every time the script parses.

Infinity Engine Contributions
Aurora * BG1 NPC * BG1 Fixpack * Haiass * Infinity Animations * Level 1 NPCs * P5Tweaks
PnP Free Action * Thrown Hammers * Unique Containers * BG:EE * BGII:EE * IWD:EE
================================================================
Player & Modder Resources
BAM Batcher * Creature Lister * Creature Checker * Creature Fixer * Tutu/BGT Area Map & List * Tutu Mod List
================================================================
"Infinity turns out to be the opposite of what people say it is. It is not 'that which has nothing beyond itself' that is infinite, but 'that which always has something beyond itself'." -Aristotle


#70 Lollorian

Lollorian

    smiley addict

  • Member
  • 4150 posts

Posted 13 April 2012 - 04:38 AM

Re: Randall

The GLOBAl RandallJoined is used and incremented in a variety of places including the baldur.bcs (which Suslik points out ;)) and Randall's dialogue files (RANDALL.DLG and RANDALLJ.DLG) so it might be disastrous to increment it within the baldur.bcs block :unsure:

This might be the best way to change that block: (basically Miloch's edited block without the IncrementGlobal lol :lol:)
IF
   Global("RandallJoin","GLOBAL",7)
   InParty("Randall")
   !StateCheck("Randall",4032)
THEN
   RESPONSE #100
	 ActionOverride("Randall",StartDialog("RandallJ",[PC]))
END

"I am the smiley addict, yellow and round, this is my grin :D when I'm usually around :P.
When there's trouble brewing, see me post, cuz it's usually a wall o' yellow and your eyes are toast!!!"

BWP GUIDE - BWP FIXES - impFAQ - NPC LIST - KIT LIST - AREA LIST

GitHub Links : BWP Fixpack | Lolfixer | BWP Trimpack | RezMod


#71 Miloch

Miloch

    Barbarian

  • Modder
  • 6573 posts

Posted 13 April 2012 - 11:51 AM

That only would prevent it from looping if, when the dialogue triggers, RandallJoin gets set to some other value. Which is possible (and perhaps even logical) but I wasn't about to check. Not sure if you did either.

Also, the !StateCheck("Randall",4032) line should probably be !StateCheck("Randall",CD_STATE_NOTVALID) instead, because as stupid as it would be to try to trigger his dialogue when he's dead, it's almost as stupid to trigger it if he's asleep, stunned or whatnot as well.

Infinity Engine Contributions
Aurora * BG1 NPC * BG1 Fixpack * Haiass * Infinity Animations * Level 1 NPCs * P5Tweaks
PnP Free Action * Thrown Hammers * Unique Containers * BG:EE * BGII:EE * IWD:EE
================================================================
Player & Modder Resources
BAM Batcher * Creature Lister * Creature Checker * Creature Fixer * Tutu/BGT Area Map & List * Tutu Mod List
================================================================
"Infinity turns out to be the opposite of what people say it is. It is not 'that which has nothing beyond itself' that is infinite, but 'that which always has something beyond itself'." -Aristotle


#72 Lollorian

Lollorian

    smiley addict

  • Member
  • 4150 posts

Posted 13 April 2012 - 07:26 PM

Here's fixed files with Suslik's Olmar Castle fix and Miloch's block for Randall (with CD_STATE_NOTVALID) :D

RandallJoin sets to 8 in RANDALLJ.dlg:
IF ~~ THEN BEGIN 3 // from: 2.1 2.0 1.1 1.0 0.2
  SAY @8
  IF ~~ THEN DO ~SetGlobal("RandallJoin","GLOBAL",<img src='http://www.shsforums.net/public/style_emoticons/<#EMO_DIR#>/cool.png' class='bbc_emoticon' alt='8)' />~ UNSOLVED_JOURNAL @574048 EXIT
END
:cheers:

Btw, any idea what's making the proficiencies disappear? :P The thing seems to work like this

Item has Ability that calls Spell (ability is non-dispellable... no change)
Spell has casting Effects that call EFF files (all spells were dispellable... changed them to non-dispellable and attached :P)
EFF files do the actual modification thing (all non-dispellable... no change here either)

So now that all of them are non-dispellable, it's freaky what's happening :blink:

Attached Files


Edited by Lollorian, 13 April 2012 - 07:32 PM.

"I am the smiley addict, yellow and round, this is my grin :D when I'm usually around :P.
When there's trouble brewing, see me post, cuz it's usually a wall o' yellow and your eyes are toast!!!"

BWP GUIDE - BWP FIXES - impFAQ - NPC LIST - KIT LIST - AREA LIST

GitHub Links : BWP Fixpack | Lolfixer | BWP Trimpack | RezMod


#73 Miloch

Miloch

    Barbarian

  • Modder
  • 6573 posts

Posted 13 April 2012 - 09:23 PM

I dunno... do the proficiencies waft after death or something? If so, might want to change them to timing mode 9 (permanent after death) instead of timing mode 1 (merely permanent).

Infinity Engine Contributions
Aurora * BG1 NPC * BG1 Fixpack * Haiass * Infinity Animations * Level 1 NPCs * P5Tweaks
PnP Free Action * Thrown Hammers * Unique Containers * BG:EE * BGII:EE * IWD:EE
================================================================
Player & Modder Resources
BAM Batcher * Creature Lister * Creature Checker * Creature Fixer * Tutu/BGT Area Map & List * Tutu Mod List
================================================================
"Infinity turns out to be the opposite of what people say it is. It is not 'that which has nothing beyond itself' that is infinite, but 'that which always has something beyond itself'." -Aristotle


#74 Suslik

Suslik

    Investigator

  • Member
  • 500 posts

Posted 14 April 2012 - 04:52 AM

Hey Lollorian, thanks for the RoT fixes!

Btw, any idea what's making the proficiencies disappear?

Idk, I just played and and.. Lost a proficiency point D: It's not death-related, since proficiency was on my main character and apparently he did not die in the process. I am currently struggling with stuttering in thread nearby, but when I'm done, I'll definitely check the proficiency loss case.

#75 Suslik

Suslik

    Investigator

  • Member
  • 500 posts

Posted 15 April 2012 - 07:41 PM

Finally the stuttering mystery is solved! More info in that thread: http://www.shsforums...the-stuttering/ read the first post if you want to get to the point.

Edited by Suslik, 17 April 2012 - 12:49 PM.


#76 Suslik

Suslik

    Investigator

  • Member
  • 500 posts

Posted 30 April 2012 - 07:50 PM

A very old bug, but quite annoying. A lot of joinable NPC's initiate dialog infinitely after they are expelled. Though it seems like not all of them do. For example Worgas and Andrei ask initiate dialog to me every time I see them in Copper Coronet and initiate dialog again as soon as it's finished. The only in-game workaround is either kill them or remain hidden of their sight. Is it a known issue or should I formulate it and investigate?

Edited by Suslik, 30 April 2012 - 07:51 PM.


#77 Suslik

Suslik

    Investigator

  • Member
  • 500 posts

Posted 10 May 2012 - 02:43 PM

Two bugs for today:
First one:
Kuldin akademy bugs[minor]: the mod is somewhat bugged here and there. Like the bugbears that are supposed to morph into stronger monsters sometimes do not do so. The bugbears and harpies do not attack party members even when they are attacked. There's a trap on the roof that causes CDT since like BWP 9.1. I'm pretty sure that these are known bugs that's why I am not reporting the details.

Second one:
Party in the asylum bug[not fixed][workaround is provided]: there's a party inside of asylum with a leader called Breaudayael. The party just does nothing and the leader keeps casting stoneskin, protection from fire and a few other basic protections on himself over and over. I have managed to kill half of his party, but they did not become hostile and did not respond to me. I have literally failed to kill the leader by any means, because he recasts full set of protective buffs like 3 times each second, and has plenty of innate immunes.
Reason: I was forced to check the script for what the hell is going on and found that this block which comes from Improved Asylum Mod for BG2:ToB: v0.95:
IF
	!Allegiance(Myself,ENEMY)
	CheckStatLT(Myself,5,STONESKINS)
THEN
	RESPONSE #100
		DisplayString(Myself,39326) // Stoneskin
		ApplySpell(Myself,WIZARD_STONE_SKIN)
		DisplayString(Myself,26306) // Protected by Spell Trap
		ApplySpell(Myself,WIZARD_SPELL_TRAP)
		DisplayString(Myself,14789) // Protected from Fire
		ApplySpell(Myself,WIZARD_PROTECTION_FROM_FIRE)
		DisplayString(Myself,180353) // Protected from Cold
		ApplySpell(Myself,WIZARD_PROTECTION_FROM_COLD)
		DisplayString(Myself,17400) // Protection from Evil
		ApplySpell(Myself,WIZARD_PROTECTION_FROM_EVIL)
END
keeps firing endlessly preventing any scripts below from being fired. Why is CheckStatLT(Myself,5,STONESKINS) true when stoneskin is recast?

I can even close my eyes on the fact that the whole party if wearing OP gear, but hey, they are bugged and cannot be interacted properly.
Workaround: as a workaround one can remove the block from R#BREU01.bcs



#78 Suslik

Suslik

    Investigator

  • Member
  • 500 posts

Posted 10 May 2012 - 02:48 PM

Minor bug, but somewhat funny: liches like to summon Pit Fiends as a prebuff. They also like to forget casting protection from evil on themselves and of course pit fiends turn on themselves and/or their allies. When there are more than 3-5 liches on the same map, the whole feedback window is spammed with messages of fearsome struggles between liches and their loyal pit fiends. When I finally find the lich, he's wounded if not killed by the fiend, hehe.

#79 Suslik

Suslik

    Investigator

  • Member
  • 500 posts

Posted 11 May 2012 - 12:17 PM

I have been struggling the "Improved Asylum Mod" the whole day. The problem is that the Breudayael dude is wildly imbalanced and has a ton of buffs which are cast on himself a few times each second. And when I somehow managed to scatter his party and somehow killed him, it appears that he a few humble items:

Robe of mystra, R#ROBE2.itm, which makes him immune to:
timestop, all spells level <6, death magic, fear, charm, confusion, imprisonment, +75% magic resistance, +45% resistance agains all elements, it also says that makes the wearer immune to all weapons of up to +3 enchantment. Well, apparently these are lies because I have checked and it makes the wearer immune to all weapons. All. It also has +4 lvl 9 spells and AC4, but that does not matter.

He also has a humble ring that makes him immune to all targetted offensive spells, his wife has some random +5 enchanted sword which makes her immune to time stop, the dwarf cannot be attacked by elves and has an armor with permanent improved haste and so on.

There are also a few of his companions and when one of them is killed, the whole party is killed by a script, check it out:
IF
Dead("R#Anast")
THEN
RESPONSE #100
DisplayString(Myself,180354) // Berserk Rage
ReallyForceSpell(LastAttackerOf("R#Anast"),WIZARD_IMPRISONMENT)
CallLightning(WeakestOf)
ReallyForceSpell(StrongestOf,WIZARD_IMPRISONMENT)
END
Note that even if it fails once, it will continue firing endlessly, a few times per second.

Bleh, I'm not complaining about the difficulty. It's tactics and it was quite interesting. I'm just agains such bugged scripts and I'm even more against granting such OP items to the player.

I have reported these issues to their forum. The developer of the mod, Rastor, seems to be an active and decent fellow and promised to fix these and a few other bugs in the upcoming Improved Asylum release.

Lollorian, are you here? Can you give me a fully-undispellable version of the proficiency books to test? I think I can mess something up trying to make that myself : D

Edited by Suslik, 11 May 2012 - 05:32 PM.


#80 -max-

-max-
  • Guest

Posted 11 May 2012 - 07:05 PM

I saw those pit fiend vs lich battles too, it was pretty funny. The Lich would usually win by turning imp invisible until the pit fiend was unsummoned.

As far as the overpowered party-
1)Remember to kill the ranger woman last, that kill all order and end your game script only fires iirc if you kill her before the master mage guy.
2)One of them (the ranger I think) has a ring which also kills you right away.
3)The master mage guy can be damaged only by high level fire spells (8th or 9th level spells). Maybe meteor storm works. I think I tried cloudkilling him, can't remember if that worked it was so long ago.
4)I suppose those items can be useful in the Vecna mod. Also that axe is definitely useful in Ust Natha if you have SCS2 improved Drow defenses installed.


Also the Kuldin Academy bug didn't happen for me when I did not install BP180 with SCS2. I only picked SCS2 and don't have any more issues with enemies staying blue. (Actually it only happened one or two times with mages)

The trap on the roof of the Academy worked this time too suprise suprise. It does a lot of damage and has purple clouds and lightning effects. Maybe its a graphics issue?