Jump to content

Cleric-Rangers can not get Temple of Lathander stronghold


CamDawg

Recommended Posts

Someone asked about this bug over at SP and I was shocked to realize that Fixpack does not fix it--especially since Oversight and DR both already fix this (though in slightly different and non-strict ways). :)

 

Cleric-Rangers are not being offered the cleric stronghold as they're omitted from the triggers. First, we need to fix the area script so that Arval will spawn for them, and then alter Arval's dialogue triggers to include them as well. Since rangers can not be non-good, we don't need to mess with Nallabir or Oisig.

 

COPY_EXISTING ~ar0900.bcs~ ~override~
 DECOMPILE_BCS_TO_BAF
REPLACE_TEXTUALLY ~OR(5)\([%tab% %lnl%%mnl%%wnl%]+Class(Player1,CLERIC)[%tab% %lnl%%mnl%%wnl%]+Class(Player1,FIGHTER_CLERIC)[%tab% %lnl%%mnl%%wnl%]+Class(Player1,CLERIC_MAGE)[%tab% %lnl%%mnl%%wnl%]+Class(Player1,CLERIC_THIEF)[%tab% %lnl%%mnl%%wnl%]+Class(Player1,FIGHTER_MAGE_CLERIC)[%tab% %lnl%%mnl%%wnl%]+\)\(Alignment(Player1,MASK_GOOD)\)~ 
				  ~OR(6) \1 Class(Player1,CLERIC_RANGER) \2~
 COMPILE_BAF_TO_BCS
 BUT_ONLY_IF_IT_CHANGES

 

For soa-dlg.d:

 

REPLACE_STATE_TRIGGER BHARVAL 0
~NumTimesTalkedTo(0)
OR(6)
 Class(Player1,CLERIC)
 Class(Player1,FIGHTER_CLERIC)
 Class(Player1,CLERIC_MAGE)
 Class(Player1,CLERIC_THIEF)
 Class(Player1,FIGHTER_MAGE_CLERIC)
 Class(Player1,CLERIC_RANGER)
Alignment(Player1,MASK_GOOD)
Global("BeholderPlot","GLOBAL",0)~

REPLACE_STATE_TRIGGER BHARVAL 3
~OR(6)
 Class(Player1,CLERIC)
 Class(Player1,FIGHTER_CLERIC)
 Class(Player1,CLERIC_MAGE)
 Class(Player1,CLERIC_THIEF)
 Class(Player1,FIGHTER_MAGE_CLERIC)
 Class(Player1,CLERIC_RANGER)
InPartySlot(LastTalkedToBy,0)
Alignment(Player1,MASK_GOOD)
ReputationGT(Player1,14)
Global("BeholderPlot","GLOBAL",0)
Global("NoHelpBeholder","GLOBAL",0)~

REPLACE_STATE_TRIGGER BHARVAL 5
~OR(6)
 Class(Player1,CLERIC)
 Class(Player1,FIGHTER_CLERIC)
 Class(Player1,CLERIC_MAGE)
 Class(Player1,CLERIC_THIEF)
 Class(Player1,FIGHTER_MAGE_CLERIC)
 Class(Player1,CLERIC_RANGER)
InPartySlot(LastTalkedToBy,0)
Alignment(Player1,MASK_GOOD)
ReputationLT(Player1,15)
Global("BeholderPlot","GLOBAL",0)
Global("NoHelpBeholder","GLOBAL",0)~

Link to comment

I'm not intimately familiar with the mechanics of falling rangers and paladins, but IIRC they change to generic fighters--so they'd still be eligible by virtue of being fighter-clerics instead of cleric-rangers. If their alignment changes as well (and I'm pretty sure it doesn't) then we have an issue.

Link to comment
So there could potentially be problems when using Virtue?

Non-clerics always get sent to Oisig, so their alignment is not relevant at all. The PC's class and alignment (if cleric) are checked by the area script to determine who to spawn (Arval, Nallabir, or Oisig) and used again for the dialogue immediately following this spawn. They're used one last time when you go to the temple for a follow-up chat. If a cleric's alignment (including that of a cleric-ranger) changes some time between the initial spawn-and-chat and the follow-up visit with Arval/Oisig/Nallabir it would prevent them from advancing and completing the Unseeing Eye quest. This is the fault of the original coding, and would happen regardless of whether we include cleric-rangers or not. If the alignment changed after the player was tasked with the quest, it would simply lead to silliness--you could have a neutral or evil priest in the employ of Lathander, for example.

Link to comment
COPY_EXISTING ~ar0900.bcs~ ~override~
 DECOMPILE_BCS_TO_BAF
REPLACE_TEXTUALLY ~OR(5)\([%tab% %lnl%%mnl%%wnl%]+Class(Player1,CLERIC)[%tab% %lnl%%mnl%%wnl%]+Class(Player1,FIGHTER_CLERIC)[%tab% %lnl%%mnl%%wnl%]+Class(Player1,CLERIC_MAGE)[%tab% %lnl%%mnl%%wnl%]+Class(Player1,CLERIC_THIEF)[%tab% %lnl%%mnl%%wnl%]+Class(Player1,FIGHTER_MAGE_CLERIC)[%tab% %lnl%%mnl%%wnl%]+\)\(Alignment(Player1,MASK_GOOD)\)~ 
				  ~OR(6) \1 Class(Player1,CLERIC_RANGER) \2~
 COMPILE_BAF_TO_BCS
 BUT_ONLY_IF_IT_CHANGES

 

OK, wicked cool... I have not seen widespread use of this kind of block patching. Use INCLUDE regexp library at the beginning of the core install, then use this for catching more than one line; sorry to play through, but I just had to comment. Looks like I may be able to clean up some code pretty seriously, and get rid of some falsing/replacing of blocks! Are there any caveats using this?

Link to comment

It's hard to tell since most browsers line-break the text, but there's also a space inside those brackets--so the full expression is

 

[%tab% %lnl%%mnl%%wnl%]+

 

It should match anything that's in between successive triggers or actions. (Keep in mind this also means you'll need to add spaces/line breaks when you add new triggers/actions; note the spaces surrounding the \1 and \2 in the example.) OBC Additional Script Fixes really abuses this trick if you want to see more examples of it.

Link to comment

Hello,

 

Possibly you can also use this command:

 

IF

Class(Player1,CLERIC_ALL)

Alignment(Player1,MASK_GOOD)

THEN....

 

 

in Areascript and in the dialogue.

 

This would also include all eventual written Cleric-Kits in the future...

 

To fix that the stronghold can be gained with alignment-change you only have to trigger "Alignment(Player1,MASK_GOOD)" (and perhaps, if you want to be really sure the Reputation...) in further dialogue states in Vakolas dialogue-file and only one line for Vakola to refuse further quests and break the gain of the stronghold (including refusal to sleep there in the temple).

 

Just my 2 cents

Link to comment

Moving this back to pending:

  • When speaking with Travin, good clerics can claim to be an agent of Lathander (travin.dlg transitions in states 1 and 4). Cleric-rangers are excluded from this check as well.
  • Dawnbringer Sain's quest to retrieve the Dawn Ring is also missing cleric-rangers from the class check list (scsain.dlg trigger in state 32, transitions in state 38). Some or all of these may be intentional; I'm checking the variables involved here further.

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...