Jump to content

Photo

Nasty bug, easy solution :)


3 replies to this topic

#1 Isewein

Isewein
  • Members
  • 25 posts
  • Gender:Female
  • Location:London

Posted 08 April 2018 - 11:54 AM

I think I just figured out the small coding omission that caused so many players problems when trying one of the new paths (trying to be spoiler free here): ar5500add.baf Block 12 / line 208 needs a check for Global("HadBhaal25Dream3","GLOBAL",1) or any other variable ensuring it does not fire immediately upon re-entering Amkethran after killing the first of either Abazigal/Sendai. As it is, it messes up what could otherwise be an epic scene and really the crowning jewel of this mod! Hope someone finds the time to look over it, so that other players can enjoy it spoiler-free :)

//////////////////////////////////////////////////////////////
//// Initialising the attack (if players leave the monastery to find it under attack in phase 2). ar5500add.baf
//////////////////////////////////////////////////////////////

IF
	OR(2)
		Dead("sendai")
		Dead("abazigal")
	OR(2)
		!Dead("sendai")
		!Dead("abazigal")
	!Global("DMWWSpawnAttackPeasants","GLOBAL",1)
        !Global("DMWWBalthDeadPhase1","GLOBAL",1)
		Global("HadBhaal25Dream3","GLOBAL",1)
THEN
        RESPONSE #100
		SetGlobal("DMWWSpawnAttackPeasants","GLOBAL",1)
		CreateCreature("dw#ampp1",[941.1518],12)
		CreateCreature("dw#ampp2",[885.1579],12)
		CreateCreature("dw#ampp3",[816.1584],12)
END

Now bug no.2 preventing the conclusion of this sequence (for which "DMWWVillageAttacked" needs to be set to 2) is considerably more arcane: basically, the sole culprit is a Bone Fiend with gender dysphoria. No, I'm not kidding you. Prepare to be led down a special rabbit hole...

 

The area script will only try to spawn new attackers when the current number of present hostiles is below a certain number. Essentially a good idea, so as to prevent the player from getting swamped. It mirrors the scripting for the horde faced in Pocket Plane Challenge 1. The hard-coded method of checking the current number of 'extras', i.e. non plot-essential creatures, in any given area at any given time runs via the local variable "EXTRACOUNT". There is different "EXTRACOUNT" for different types of creatures (in this case, for example,  two separate waves of attackers: one of cannon fodder, the other of stronger monsters smaller in number). These are "EXTRACOUNT2" to "EXTRACOUNT10", respectively checked against a corresponding value stored in a .cre file's gender of all things.

 

It so happens that of the assorted critters attacking Amkethran at a certain stage of this mod, the Bone Fiends are not assigned the correct gender value, preventing the "EXTRACOUNT7" area variable from decreasing on death, which in turn prevents further hostiles from spawning as the script still assumes CHARNAME to be up against a horde of androgynous Bone Fiends... and thus, the kill count necessary for the script to advance can not be reached.

 

There seems to be no documentation of this useful Infinity Engine feature in the common scripting guides; I eventually unravelled the mystery by way of this article. Isn't it magnificent? :D Verily, the wonders of the IE are manifold!

 

TL;DR:

dw#vibon.cre, a copy of gorbat5.cre, is of gender 4 ("NIETHER" - sic!), but needs to be of gender 15 ("EXTRA7") for the script as it is currently coded to function properly. Whether this gender dysphoric Bone Fiend is an idiosyncrasy of my install / codependent on some other mod I cannot say for sure, but as the .cre is copied straight from core game files during the installation WoP, I suspect not.

 

 

cheers to the creator of this creative and daring mod! hope the few remaining bugs can one day be fixed - they are few, but as many variables in this mod are codependent, one little error such as this one can have far-reaching consequences if the player notices too late that things didn't go as they should have :(

 

EDIT: There is indeed a third bug in this sequence. According to the attached documentation files of WoP, DMWWVillageAttacked has to be set to 1 by the dw#monme dialogue file ... it's not gamebreaking, as it will instead be set by the peasants, but it has the potential to mess things up since Balthazar won't fire an appropriate script to teleport out, etc. Easy fix: add SetGlobal("DMWWVillageAttacked","GLOBAL",1) to the actions at the end of army_abaz and army_send chains in the mod's balthadd.d.


Edited by Isewein, 18 April 2018 - 02:00 AM.


#2 DavidW

DavidW
  • Gibberlings
  • 4707 posts
  • Gender:Male

Posted 12 September 2018 - 02:28 PM

Belated thanks for some very careful sleuthing. The dw#vibon issue is an error in SCS, I think - it replaces that Bone Fiend with a more advanced version, but obviously fails to set the gender correctly.



#3 DavidW

DavidW
  • Gibberlings
  • 4707 posts
  • Gender:Male

Posted 13 September 2018 - 10:03 AM

… and this is fixed in v7 of Wheels of Prophecy, just released (the SCS-side fix to the bone fiend will be fixed in the next SCS release).

#4 Isewein

Isewein
  • Members
  • 25 posts
  • Gender:Female
  • Location:London

Posted 05 October 2018 - 04:40 PM

Hey, you're welcome! So happy to see you're still around and tinkering! This is really one of the most important mods out there; it brings ToB to the standards of SoA and I can only imagine how many hours of work went into it. Don't be scared by the bug reports, people! It's well worth grinding through, and most of them should be fixed by now.





Reply to this topic



  


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users