Jump to content


Photo

Of cleric kits and strongholds


13 replies to this topic

#1 CamDawg

CamDawg

    Just a simple country Hyper-Chicken

  • Gibberling Poobah
  • 9434 posts
  • Gender:Not Telling

Posted 08 February 2018 - 08:02 PM

I've seen this come up a few places, so I thought I'd write up some helpful advice on integrating your shiny new cleric kit into the BG2 cleric strongholds.
 
Players are routed to one of the three potential strongholds in the Temple District based on their class and alignment. After you meet Gaal preaching in the street, you're approached by one of the temple leaders--Arval for Lathander, Oisig for Helm, or Nallabir for Talos--who then initiates the Unseeing Eye quest. After successful completion of the quest, clerics are offered a place in the temple and others are thanked and dismissed.
 
After Gaal speaks, determining who spawns is a pretty straightforward process:

  1. Non-clerics get Oisig and work for Helm.
  2. Clerics kitted to one of the three temples always get that temple, e.g. Morninglords of Lathander will always be approached by Arval to work for the Lathander temple.
  3. All other clerics get approached based upon their alignment:
    • In vanilla BG2 good go to Lathander, neutral to Helm, and evil to Talos.
    • In EE or with Divine Remix installed, Lathander takes NG and CG, Helm takes LN and LE, and Talos takes CN, CE, and NE. LG will get approached by Lathander, but have the option of working for Helm, and TN will get approached by Helm but be able to work for Lathander.

If you're satisfied with the existing alignment distribution for your kit, then you're done. For example, EEs introduced the Tyr kit with allowed alignments LG, LN, or NG. Nothing was done for the temples, so (per step 3, above) Tyr priests will either go to Lathander (NG), Helm (LN), or get approached by Lathander with an option to work for Helm (LG). This is the trivial case, of course.

 

Let's take a more interesting example, such as a Tempus kit. Tempus, being CN, accepts followers of CG, CN, CE, and TN alignments. If we let it go to the defaults, as we did with Tyr, then CE and CN followers serve Talos, CG to Lathander, and TN are approached by Helm but can work for Lathander. Tempus and Helm and diametrically opposed, and the idea of Oisig approaching a Battleguard of Tempus for assistance is particularly unsatisfying from a role-playing standpoint. So let's walk through the process of how these mechanisms work, and what we need to do to change them.

 

The good news is that all of this is determined, more or less, by who spawns after Gaal speaks. Once your questgiver has spawned, you're locked into that temple--there are no more kit checks, so if you can get it right up front, the rest will follow.

 

First, the initial spawn of the temple rep. This is controlled by four blocks in the temple district's area script, ar0900.bcs. A quick note, before we go further: the code and snippets are from BG2EE, but the ideas and mechanisms are the same, even if the code required is going to vary a bit.

IF
  Global("GaalSpoke","AR0900",1)
  OR(2)
    Alignment(Player1,MASK_GOOD)
    Kit(Player1,GODLATHANDER)
  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)
  !Kit(Player1,GODHELM)
  !Kit(Player1,GODTALOS)
THEN
  RESPONSE #100
    Wait(2)
    CreateCreature("bharval",[3077.1630],SW)  // High Mornmaster Arval
    SetGlobal("GoodMask","AR0900",1)
    SetGlobal("GaalSpoke","AR0900",2)
END

IF
  Global("GaalSpoke","AR0900",1)
  OR(4)
    Alignment(Player1,LAWFUL_NEUTRAL)
    Alignment(Player1,NEUTRAL)
    Alignment(Player1,LAWFUL_EVIL)
    Kit(Player1,GODHELM)
  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)
  !Kit(Player1,GODLATHANDER)
  !Kit(Player1,GODTALOS)
THEN
  RESPONSE #100
    Wait(2)
    CreateCreature("bhoisig",[3077.1630],SW)  // High Watcher Oisig
    SetGlobal("NeutralMask","AR0900",1)
    SetGlobal("GaalSpoke","AR0900",2)
END

IF
  Global("GaalSpoke","AR0900",1)
  OR(4)
    Alignment(Player1,CHAOTIC_NEUTRAL)
    Alignment(Player1,NEUTRAL_EVIL)
    Alignment(Player1,CHAOTIC_EVIL)
    Kit(Player1,GODTALOS)
  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)
  !Kit(Player1,GODLATHANDER)
  !Kit(Player1,GODHELM)
THEN
  RESPONSE #100
    Wait(2)
    CreateCreature("bhnalla",[3077.1630],SW)  // Stormherald Nallabir
    SetGlobal("EvilMask","AR0900",1)
    SetGlobal("GaalSpoke","AR0900",2)
END

IF
  Global("GaalSpoke","AR0900",1)
  !Class(Player1,CLERIC)
  !Class(Player1,FIGHTER_CLERIC)
  !Class(Player1,CLERIC_MAGE)
  !Class(Player1,CLERIC_THIEF)
  !Class(Player1,FIGHTER_MAGE_CLERIC)
  !Class(Player1,CLERIC_RANGER)
THEN
  RESPONSE #100
    Wait(2)
    CreateCreature("bhoisig",[3077.1630],SW)  // High Watcher Oisig
    SetGlobal("NeutralMask","AR0900",1)
    SetGlobal("GaalSpoke","AR0900",2)
END

The fourth block is the catch-all for non-clerics, but the rest follow a predictable pattern--check the variable that the Gaal cutscene has occurred, that Player1 is either a cleric kitted to the temple or matches the alignments laid out above, is a cleric, and is not kitted to one of the other temples. For our Tempus example, it's that second block that poses the problem--a TN Tempus clerics fulfills all of these conditions, so we block it by adding a kit check:

IF
  Global("GaalSpoke","AR0900",1)
  OR(4)
    Alignment(Player1,LAWFUL_NEUTRAL)
    Alignment(Player1,NEUTRAL)
    Alignment(Player1,LAWFUL_EVIL)
    Kit(Player1,GODHELM)
  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)
  !Kit(Player1,GODLATHANDER)
  !Kit(Player1,GODTALOS)  
  !Kit(Player1,OHTEMPUS)
THEN
  RESPONSE #100
    Wait(2)
    CreateCreature("bhoisig",[3077.1630],SW)  // High Watcher Oisig
    SetGlobal("NeutralMask","AR0900",1)
    SetGlobal("GaalSpoke","AR0900",2)
END

via this WeiDU code

COPY_EXISTING ~ar0900.bcs~ ~override~
  DECOMPILE_AND_PATCH BEGIN
    REPLACE_TEXTUALLY ~\(!Kit(Player1,GODLATHANDER)[ %TAB%%LNL%%MNL%%WNL%]+!Kit(Player1,GODTALOS)\)~ ~\1 !Kit(Player1,OHTEMPUS)~
  END
  BUT_ONLY

This blocks Oisig from spawning for a TN Tempus cleric. However, we still need to spawn Arval in this case. The laziest--and thus, most preferable--way to do this is just to extend the bottom of the script with a bit specifically tailored for such; this is basically a copy-and-paste of the Arval spawn block with altered conditions:

IF
  Global("GaalSpoke","AR0900",1)    
  Alignment(Player1,NEUTRAL)
  Kit(Player1,OHTEMPUS)
  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)
THEN
  RESPONSE #100
    Wait(2)
    CreateCreature("bharval",[3077.1630],SW)  // High Mornmaster Arval
    SetGlobal("GoodMask","AR0900",1)
    SetGlobal("GaalSpoke","AR0900",2)
END

And now we get Arval for TN Tempus clerics. One last little bit remains to be done for EE games; remember that both Arval and Oisig will be ambivalent to LG/TN clerics, respectively, and we don't want Arval to offer Helm for our TN Tempus cleric. These offers are made in Arval's dialogue (BHARVAL) state 2 and in Oisig's dialogue (BHOISIG) state 2. Once again, it's an easy solution in .d code:

EXTEND_BOTTOM BHARVAL 2 
  IF ~Alignment(Player1,NEUTRAL) Kit(Player1,OHTEMPUS)~ THEN DO ~OpenDoor("DOR0902b") EscapeAreaMove("AR0902",577,650,14)~ UNSOLVED_JOURNAL #3439 EXIT
END

You're basically copying transition 0, but adding new conditions to preempt transitions 1 or 2. In this case, the conditions are that the cleric is a TN follower of Tempus.

 

That's basically it. Once the player enters the temple to speak with the questgiver (Arval, Oisig, or Nallabir) no more kit checks are performed.

 

As always suggestions, feedback, etc. is appreciated.


Edited by CamDawg, 08 February 2018 - 08:08 PM.

I came here with a simple dream: a dream of killing all humans. And this is how it must end? Who's the real seven billion ton robot monster here? Not I. Not... I.


#2 Grammarsalad

Grammarsalad
  • Modders
  • 462 posts
  • Gender:Male

Posted 09 February 2018 - 09:40 AM

This...is awesome!  Thank you CamDawg.  This will be very helpful.  

 

Now, if I only knwe how to make that Tempus kit take the fighter stronghold rather than (any) cleric stronghold... :D



#3 subtledoctor

subtledoctor
  • Modders
  • 2445 posts
  • Gender:Male

Posted 10 February 2018 - 12:48 PM

Super helpful BUT I'm going to ask about more complicated alternatives.

The general question: how do strongholds interact? I think a mod (CDTweaks?) allows you to get any stronghold, but only one. So your cleric of Tempus can get the fighter stronghold, and then will not be offered any if the cleric strongholds. Or, you can pass on the fighter stronghold and then have a chance to get a cleric stronghold.

Is that relatively easy? Or complicated?

Because here's the specific question: maybe my mod wants to allow my added Tempus kit to take Nalia's Keep as a stronghold. Also, it contains a cleric/thief kit called "druid/thief" which is, y'know, a druid/thief. So that one should get access to the druid grove stronghold, and not one of the temples.

Another mod of mine adds a version of "demibards" - rogues with bardic characteristics, but no spellcasting, and appearing in the thief class. They would be better off with the bard's theater, rather than membership in the thieves's guild. On the other hand one of them is modeled on the 2E 'Herald' kit, and that one (also a thief kit) should probably get the fighter stronghold.

We also have a bunch of ranger kits that are actually devoted to specific deities, and they should probably get the cleric or paladin stronghold.

Aquadrizzt has a mod that converts monks entirely into thief kits - which enables multiclass monks. But they should probably get the cleric or fighter stronghold - not the thieves' guild.

Etc., etc., etc. It would be amazing if we could compile some more general guidance for manipulating strongholds. Maybe even try to create a library of DLG-specific patches that modders could hook into at the time their kit is installed.

Edited by subtledoctor, 10 February 2018 - 12:50 PM.

Faiths & Powers: Spell spheres and kit pack for priests and paladins
Might & Guile: Tweaks and kits for warriors and rogues
Scales of Balance: Game tweaks and rule overhauls
NPC_EE: More options for NPCs in BGEE, SoD, & BG2EE


#4 Roxanne

Roxanne

    Modder

  • Modders
  • 2041 posts
  • Gender:Female
  • Location:Auckland, NZ

Posted 10 February 2018 - 01:39 PM

Super helpful BUT I'm going to ask about more complicated alternatives.

The general question: how do strongholds interact? I think a mod (CDTweaks?) allows you to get any stronghold, but only one. So your cleric of Tempus can get the fighter stronghold, and then will not be offered any if the cleric strongholds. Or, you can pass on the fighter stronghold and then have a chance to get a cleric stronghold.

Is that relatively easy? Or complicated?

Because here's the specific question: maybe my mod wants to allow my added Tempus kit to take Nalia's Keep as a stronghold. Also, it contains a cleric/thief kit called "druid/thief" which is, y'know, a druid/thief. So that one should get access to the druid grove stronghold, and not one of the temples.

Another mod of mine adds a version of "demibards" - rogues with bardic characteristics, but no spellcasting, and appearing in the thief class. They would be better off with the bard's theater, rather than membership in the thieves's guild. On the other hand one of them is modeled on the 2E 'Herald' kit, and that one (also a thief kit) should probably get the fighter stronghold.

We also have a bunch of ranger kits that are actually devoted to specific deities, and they should probably get the cleric or paladin stronghold.

Aquadrizzt has a mod that converts monks entirely into thief kits - which enables multiclass monks. But they should probably get the cleric or fighter stronghold - not the thieves' guild.

Etc., etc., etc. It would be amazing if we could compile some more general guidance for manipulating strongholds. Maybe even try to create a library of DLG-specific patches that modders could hook into at the time their kit is installed.

The main difference between the cleric stronghold (and hence the reason for this thread) is the fact that multiple *stronghold-givers* are involved, depending on your protagonist.

All other strongholds have simple triggers - you have already a stronghold (or not) and your class qualifies (or not). Those checks are simply done in the dialogue of e.g. Nalia, Lavok etc. You can add triggers and variations very easily to those dialogues.

The only complex one is the cleric one as outlined in the OP.

 

It is also straight forward to add another party member to qualify for a stronghold if the protagonist does not qualify. (The only thing that made NPC Stronghold mod complex was the additional idea that the respective NPC would also be responsible for all the following stronghold quests and what to do if that one was kicked out or dead etc).


Edited by Roxanne, 10 February 2018 - 01:43 PM.

The Sandrah Saga

another piece of *buggy, cheesy, unbalanced junk*


#5 subtledoctor

subtledoctor
  • Modders
  • 2445 posts
  • Gender:Male

Posted 10 February 2018 - 03:17 PM

Roxanne can we compile a list of stronghold-givers... or even better, a list of .DLG files in which those triggers need to go? It's been a looong time since I played BG2, especially with more than one class.

Faiths & Powers: Spell spheres and kit pack for priests and paladins
Might & Guile: Tweaks and kits for warriors and rogues
Scales of Balance: Game tweaks and rule overhauls
NPC_EE: More options for NPCs in BGEE, SoD, & BG2EE


#6 CamDawg

CamDawg

    Just a simple country Hyper-Chicken

  • Gibberling Poobah
  • 9434 posts
  • Gender:Not Telling

Posted 10 February 2018 - 03:26 PM

Tweaks should have not only the dialogue files, but the state numbers too. It has to branch the dialogues to bypass the class checks.

On my phone ATM or I'd post myself.

I came here with a simple dream: a dream of killing all humans. And this is how it must end? Who's the real seven billion ton robot monster here? Not I. Not... I.


#7 subtledoctor

subtledoctor
  • Modders
  • 2445 posts
  • Gender:Male

Posted 10 February 2018 - 05:13 PM

I'll take a look at it then. About time I started dealing with the strongholds...

Faiths & Powers: Spell spheres and kit pack for priests and paladins
Might & Guile: Tweaks and kits for warriors and rogues
Scales of Balance: Game tweaks and rule overhauls
NPC_EE: More options for NPCs in BGEE, SoD, & BG2EE


#8 CamDawg

CamDawg

    Just a simple country Hyper-Chicken

  • Gibberling Poobah
  • 9434 posts
  • Gender:Not Telling

Posted 10 February 2018 - 06:02 PM

Oh, heh. Tweaks doesn't have the state numbers because I use REPLACE_TRIGGER/ACTION_TEXT. The game uses the global PlayerHasStronghold to track if you've already accepted a stronghold, so it's either 0 or 1. This is checked along with the class before offering the stronghold:

  • Bard: Raelis Shai (RAELIS). Haer'Dalis also has a check in his unjoined dialogue (HAERDA).
  • Clerics: As above it's either Arval (BHARVAL), Oisig (BHOISIG), or Nallabir (BHNALLA). Travin (TRAVIN) also has a class check.
  • Druids/Shamans: Verthan (CECHALL). Faldorn (CEFALDOR) also has class checks before entering into single combat with you. The messenger (DRUIDAD) has another check.
  • Fighter Nalia, both joined and unjoined dialogues (NALIA, NALIAJ).
  • Mage: Lavok (LAVOK).
  • Paladin: Garren Windspear (GARREN). Prelate Wessalen (HPRELATE) also has a class check.
  • Ranger: Minister Lloyd (UHMAY01).
  • Thief: Renal Bloodscalp (RENAL).

Looking at Lavok as an example--if you grant his wish and bring him outside, his final dialogue will either be state 27 or 28. If you refuse, then the stronghold check is in the replies to state 59.

 

You probably also want to look at Gaelan Bayle (GAELAN state 70) and Brus (BRUS2 state 0), since they're supposed to point you towards your class quest.


I came here with a simple dream: a dream of killing all humans. And this is how it must end? Who's the real seven billion ton robot monster here? Not I. Not... I.


#9 CamDawg

CamDawg

    Just a simple country Hyper-Chicken

  • Gibberling Poobah
  • 9434 posts
  • Gender:Not Telling

Posted 16 February 2018 - 05:58 PM

I have an 'in' someone working on the EE 2.5 patch and made this even easier for the cleric kits. The spawn blocks now look like this (check the OR blocks):

IF
  Global("GaalSpoke","AR0900",1)
  OR(3)
    Alignment(Player1,MASK_GOOD)
    Kit(Player1,GODLATHANDER)
    Global("OHLathanderOverride","GLOBAL",1)
  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)
  !Kit(Player1,GODHELM)
  !Kit(Player1,GODTALOS)
THEN
  RESPONSE #100
    Wait(2)
    CreateCreature("bharval",[3077.1630],SW)  // High Mornmaster Arval
    SetGlobal("GoodMask","AR0900",1)
    SetGlobal("GaalSpoke","AR0900",2)
END

IF
  Global("GaalSpoke","AR0900",1)
  OR(5)
    Alignment(Player1,LAWFUL_NEUTRAL)
    Alignment(Player1,NEUTRAL)
    Alignment(Player1,LAWFUL_EVIL)
    Kit(Player1,GODHELM)
    Global("OHHelmOverride","GLOBAL",1)
  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)
  !Kit(Player1,GODLATHANDER)
  !Kit(Player1,GODTALOS)
THEN
  RESPONSE #100
    Wait(2)
    CreateCreature("bhoisig",[3077.1630],SW)  // High Watcher Oisig
    SetGlobal("NeutralMask","AR0900",1)
    SetGlobal("GaalSpoke","AR0900",2)
END

IF
  Global("GaalSpoke","AR0900",1)
  OR(5)
    Alignment(Player1,CHAOTIC_NEUTRAL)
    Alignment(Player1,NEUTRAL_EVIL)
    Alignment(Player1,CHAOTIC_EVIL)
    Kit(Player1,GODTALOS)
    Global("OHTalosOverride","GLOBAL",1)
  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)
  !Kit(Player1,GODLATHANDER)
  !Kit(Player1,GODHELM)
THEN
  RESPONSE #100
    Wait(2)
    CreateCreature("bhnalla",[3077.1630],SW)  // Stormherald Nallabir
    SetGlobal("EvilMask","AR0900",1)
    SetGlobal("GaalSpoke","AR0900",2)
END

The key additions are the global checks of OHLathanderOverride, OHHelmOverride, and OHHelmOverride. You can now force a kit to go to your temple of choice simply by setting this variable to one. So from our example above, forcing true neutral Tempus clerics to the Lathander temple is now as simple as extending ar0900.bcs with this:

IF
  Global("OHLathanderOverride","GLOBAL",0)
  Alignment(Player1,NEUTRAL)
  Kit(Player1,OHTEMPUS)
THEN
  RESPONSE #100
    SetGlobal("OHLathanderOverride","GLOBAL",1)
END

I may have a similar 'in' with the Fixpack author for vanilla games.


I came here with a simple dream: a dream of killing all humans. And this is how it must end? Who's the real seven billion ton robot monster here? Not I. Not... I.


#10 Jarno Mikkola

Jarno Mikkola

    The Imp

  • Modders
  • 6556 posts
  • Gender:Male
  • Location:The town where the dead haven't keeled over, yet. In Finland.

Posted 17 February 2018 - 06:59 AM

Here's a question on that:

 

IF
 
Global("GaalSpoke","AR0900",1)
  OR(5)
    Alignment(Player1,LAWFUL_NEUTRAL)
    Alignment(Player1,NEUTRAL)
    Alignment(Player1,LAWFUL_EVIL)
    Kit(Player1,GODHELM)
    Global("OHHelmOverride","GLOBAL",1)

In the second edition, according to my source, the worshipper of Helm could be anything except Evil. Now, I actually would like to see the diety chose be more free... and it might have an effect later in the game on the players alignment... where the quests for example could re-align the player char to be the gods own default alignment/depending on how the strongholds quest was resolved.


Welcome to the sanity, you are free to search for the limit, it's out there, we drew it in the sand.
Here's how to install all the ... mods you ever really could want to Infinity Engine games. I removed the stable word from there as Roxanne began to add BS mods that are likely to break compatibility from the BWS.

#11 CamDawg

CamDawg

    Just a simple country Hyper-Chicken

  • Gibberling Poobah
  • 9434 posts
  • Gender:Not Telling

Posted 17 February 2018 - 10:12 AM

Worshiper alignments are different than specialty priest alignments, though. Vanilla is set up like so:

 

clerics_vanilla.jpg

 

But this isn't in agreement with 2e rules, as Helm only accepts priests that are LG, LN, and TN. Lathander also accepts LN priests, and Talos CN. So a 'true' 2e split would look like this:

 

clerics_2e.jpg

 

EE (and Divine Remix) tries to simplify this by using the IWD2 model--deity alignment plus one step out:

 

clerics_ee.jpg


I came here with a simple dream: a dream of killing all humans. And this is how it must end? Who's the real seven billion ton robot monster here? Not I. Not... I.


#12 subtledoctor

subtledoctor
  • Modders
  • 2445 posts
  • Gender:Male

Posted 18 February 2018 - 06:29 PM

The key additions are the global checks of OHLathanderOverride, OHHelmOverride, and OHHelmOverride. You can now force a kit to go to your temple of choice simply by setting this variable to one. So from our example above, forcing true neutral Tempus clerics to the Lathander temple is now as simple as extending ar0900.bcs with this:

IF
  Global("OHLathanderOverride","GLOBAL",0)
  Alignment(Player1,NEUTRAL)
  Kit(Player1,OHTEMPUS)
THEN
  RESPONSE #100
    SetGlobal("OHLathanderOverride","GLOBAL",1)
END

I'm not fully conversant in scripts the way I am in Weidu. Correct me if I'm wrong but in addition to thst global, you still need to satisfy the class requirements, right? I.e. there is an implicit 'AND' between those 'OR' blocks...?

So If I want my kit to get the Lathander temple stronghold, and my kit is a Ranger kit, there would be more to do.

Faiths & Powers: Spell spheres and kit pack for priests and paladins
Might & Guile: Tweaks and kits for warriors and rogues
Scales of Balance: Game tweaks and rule overhauls
NPC_EE: More options for NPCs in BGEE, SoD, & BG2EE


#13 Roxanne

Roxanne

    Modder

  • Modders
  • 2041 posts
  • Gender:Female
  • Location:Auckland, NZ

Posted 18 February 2018 - 11:32 PM

 

The key additions are the global checks of OHLathanderOverride, OHHelmOverride, and OHHelmOverride. You can now force a kit to go to your temple of choice simply by setting this variable to one. So from our example above, forcing true neutral Tempus clerics to the Lathander temple is now as simple as extending ar0900.bcs with this:

IF
  Global("OHLathanderOverride","GLOBAL",0)
  Alignment(Player1,NEUTRAL)
  Kit(Player1,OHTEMPUS)
THEN
  RESPONSE #100
    SetGlobal("OHLathanderOverride","GLOBAL",1)
END

I'm not fully conversant in scripts the way I am in Weidu. Correct me if I'm wrong but in addition to thst global, you still need to satisfy the class requirements, right? I.e. there is an implicit 'AND' between those 'OR' blocks...?

So If I want my kit to get the Lathander temple stronghold, and my kit is a Ranger kit, there would be more to do.

 

Correct

The block above just sets one of the conditions in the earlier OR(3) block to true but you still need to match one of the OR(6) in the second block + not belonging to one of the two excluded deities in the last two conditions.


Edited by Roxanne, 18 February 2018 - 11:37 PM.

The Sandrah Saga

another piece of *buggy, cheesy, unbalanced junk*


#14 Raduziel

Raduziel
  • Members
  • 9 posts
  • Gender:Male
  • Location:Rio de Janeiro, Brazil

Posted 09 March 2018 - 06:34 AM

I have an 'in' someone working on the EE 2.5 patch and made this even easier for the cleric kits. The spawn blocks now look like this (check the OR blocks):

IF
  Global("GaalSpoke","AR0900",1)
  OR(3)
    Alignment(Player1,MASK_GOOD)
    Kit(Player1,GODLATHANDER)
    Global("OHLathanderOverride","GLOBAL",1)
  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)
  !Kit(Player1,GODHELM)
  !Kit(Player1,GODTALOS)
THEN
  RESPONSE #100
    Wait(2)
    CreateCreature("bharval",[3077.1630],SW)  // High Mornmaster Arval
    SetGlobal("GoodMask","AR0900",1)
    SetGlobal("GaalSpoke","AR0900",2)
END

IF
  Global("GaalSpoke","AR0900",1)
  OR(5)
    Alignment(Player1,LAWFUL_NEUTRAL)
    Alignment(Player1,NEUTRAL)
    Alignment(Player1,LAWFUL_EVIL)
    Kit(Player1,GODHELM)
    Global("OHHelmOverride","GLOBAL",1)
  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)
  !Kit(Player1,GODLATHANDER)
  !Kit(Player1,GODTALOS)
THEN
  RESPONSE #100
    Wait(2)
    CreateCreature("bhoisig",[3077.1630],SW)  // High Watcher Oisig
    SetGlobal("NeutralMask","AR0900",1)
    SetGlobal("GaalSpoke","AR0900",2)
END

IF
  Global("GaalSpoke","AR0900",1)
  OR(5)
    Alignment(Player1,CHAOTIC_NEUTRAL)
    Alignment(Player1,NEUTRAL_EVIL)
    Alignment(Player1,CHAOTIC_EVIL)
    Kit(Player1,GODTALOS)
    Global("OHTalosOverride","GLOBAL",1)
  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)
  !Kit(Player1,GODLATHANDER)
  !Kit(Player1,GODHELM)
THEN
  RESPONSE #100
    Wait(2)
    CreateCreature("bhnalla",[3077.1630],SW)  // Stormherald Nallabir
    SetGlobal("EvilMask","AR0900",1)
    SetGlobal("GaalSpoke","AR0900",2)
END

The key additions are the global checks of OHLathanderOverride, OHHelmOverride, and OHHelmOverride. You can now force a kit to go to your temple of choice simply by setting this variable to one. So from our example above, forcing true neutral Tempus clerics to the Lathander temple is now as simple as extending ar0900.bcs with this:

IF
  Global("OHLathanderOverride","GLOBAL",0)
  Alignment(Player1,NEUTRAL)
  Kit(Player1,OHTEMPUS)
THEN
  RESPONSE #100
    SetGlobal("OHLathanderOverride","GLOBAL",1)
END

I may have a similar 'in' with the Fixpack author for vanilla games.

 

Can you provide a "For Dummies" step-by-step like you were tutoring a 5 yo eating sand?

 

Thanks!





Reply to this topic



  


1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users