CamDawg Posted October 22, 2006 Share Posted October 22, 2006 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
NiGHTMARE Posted October 22, 2006 Share Posted October 22, 2006 What about fallen cleric-rangers? (Actually, can cleric-rangers even fall?) Link to comment
CamDawg Posted October 22, 2006 Author Share Posted October 22, 2006 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
Gorilym Posted October 22, 2006 Share Posted October 22, 2006 If their alignment changes as well (and I'm pretty sure it doesn't) then we have an issue. So there could potentially be problems when using Virtue? Link to comment
SimDing0 Posted October 22, 2006 Share Posted October 22, 2006 Cleric/rangers do not fall. Link to comment
CamDawg Posted October 22, 2006 Author Share Posted October 22, 2006 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
cmorgan Posted October 22, 2006 Share Posted October 22, 2006 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
CamDawg Posted October 22, 2006 Author Share Posted October 22, 2006 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
Grim Squeaker Posted October 22, 2006 Share Posted October 22, 2006 Though for the record, DECOMPILE_BCS_TO_BAF always decompiles to a '2 spaces per indentation' format, so in theory you can just check for that. However, Cam likes his regexps to be as air-tight as possible. Link to comment
Roana Posted October 24, 2006 Share Posted October 24, 2006 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
Smoketest Posted October 24, 2006 Share Posted October 24, 2006 I think CLERIC_ALL, and other classmasks, are available with ToB, so it would have to be coded differently for SoA. I could be all wet though as it's been years since I played with just SoA installed. Link to comment
CamDawg Posted February 7, 2007 Author Share Posted February 7, 2007 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
Recommended Posts
Archived
This topic is now archived and is closed to further replies.