Jump to content


jastey

Member Since 14 Jul 2004
Offline Last Active Today, 07:50 AM

Posts I've Made

In Topic: bg1re Bugthread

Today, 07:04 AM

Version 2.6 is up. Changes are:

-"Girdle of Gender Reactions" fixed Kivans PC M->F reaction. TotSC: All interjections of other NPC will show for Minsc's girdle change
-"The Honest Lies of Two Riversides" journal entry about Brage will no longer be doubled (entry added by mod matches the original one). Stone pepple now gives the real spell "Blur" with AC and saving throw bonuses, for 120 s.
-(TotSC) "Sil's Blessing" Sil can only be talked to once for her blessing. Cloak will have 10 charges when given by Sil.
-(TotSC) "The Messenger" All lines of Dawn Priest Blaise will now show in dialogue (rearranged CHAIN syntax a bit)
- "Husam's Personal Preparation" Husam will disappear after PC descended into the maze to follow Sarevok (is in changelog for v2.0 but wasn't present yet)


In Topic: BG1 coding tutorial

Today, 06:12 AM

More CHAIN woes in BG1: a CHAIN followed by reply options will skip all NPC interjections inbetween completely. To avoid this, the reply options have to be moved into an own dialogue state following the CHAIN. Example:

 

This:

 

CHAIN
IF ~~ THEN ~%MINSC_JOINED%~ girdleminscslumber
@144
== ~%MINSC_JOINED%~ IF ~InParty("Dynaheir") !StateCheck("Dynaheir",CD_STATE_NOTVALID)~ THEN @145
== ~%DYNAHEIR_JOINED%~ IF ~InParty("Dynaheir") !StateCheck("Dynaheir",CD_STATE_NOTVALID)~ THEN @146
== ~%ALORA_JOINED%~ IF ~InParty("Alora") !StateCheck("Alora",CD_STATE_NOTVALID)~ THEN @147
= @148
== ~%IMOEN_JOINED%~ IF ~InParty("%IMOEN_DV%") !StateCheck("%IMOEN_DV%",CD_STATE_NOTVALID)~ THEN @177
== ~%MINSC_JOINED%~ IF ~InParty("%IMOEN_DV%") !StateCheck("%IMOEN_DV%",CD_STATE_NOTVALID)~ THEN @178
== ~%MINSC_JOINED%~ IF ~~ THEN @180
END
++ @181 EXTERN ~%MINSC_JOINED%~ girdleminscslumberyes
+ ~Gender(Player1,FEMALE)~ + @182 EXTERN ~%MINSC_JOINED%~ girdleminscslumberyes
++ @183 EXTERN ~%MINSC_JOINED%~ girdleminscslumberyes
+ ~Gender(Player1,MALE)~ + @184 EXTERN ~%MINSC_JOINED%~ girdleminscslumberyes
++ @185 EXTERN ~%MINSC_JOINED%~ girdleminscslumberboo
++ @186 EXTERN ~%MINSC_JOINED%~ girdleminscslumberno

 

will play ingame as:

 

CHAIN
IF ~~ THEN ~%MINSC_JOINED%~ girdleminscslumber
@144
END
++ @181 EXTERN ~%MINSC_JOINED%~ girdleminscslumberyes
+ ~Gender(Player1,FEMALE)~ + @182 EXTERN ~%MINSC_JOINED%~ girdleminscslumberyes
++ @183 EXTERN ~%MINSC_JOINED%~ girdleminscslumberyes
+ ~Gender(Player1,MALE)~ + @184 EXTERN ~%MINSC_JOINED%~ girdleminscslumberyes
++ @185 EXTERN ~%MINSC_JOINED%~ girdleminscslumberboo
++ @186 EXTERN ~%MINSC_JOINED%~ girdleminscslumberno

 

For the NPC interjections to show, it has to be scripted the following (adding the need of anothe dialogue line):

 

CHAIN
IF ~~ THEN ~%MINSC_JOINED%~ girdleminscslumber
@144
== ~%MINSC_JOINED%~ IF ~InParty("Dynaheir") !StateCheck("Dynaheir",CD_STATE_NOTVALID)~ THEN @145
== ~%DYNAHEIR_JOINED%~ IF ~InParty("Dynaheir") !StateCheck("Dynaheir",CD_STATE_NOTVALID)~ THEN @146
== ~%ALORA_JOINED%~ IF ~InParty("Alora") !StateCheck("Alora",CD_STATE_NOTVALID)~ THEN @147
= @148
== ~%IMOEN_JOINED%~ IF ~InParty("%IMOEN_DV%") !StateCheck("%IMOEN_DV%",CD_STATE_NOTVALID)~ THEN @177
== ~%MINSC_JOINED%~ IF ~InParty("%IMOEN_DV%") !StateCheck("%IMOEN_DV%",CD_STATE_NOTVALID)~ THEN @178
== ~%MINSC_JOINED%~ IF ~~ THEN @180
END
IF ~~ THEN + interim_test

CHAIN
IF ~~ THEN ~%MINSC_JOINED%~ interim_test
@360

END
++ @181 EXTERN ~%MINSC_JOINED%~ girdleminscslumberyes
+ ~Gender(Player1,FEMALE)~ + @182 EXTERN ~%MINSC_JOINED%~ girdleminscslumberyes
++ @183 EXTERN ~%MINSC_JOINED%~ girdleminscslumberyes
+ ~Gender(Player1,MALE)~ + @184 EXTERN ~%MINSC_JOINED%~ girdleminscslumberyes
++ @185 EXTERN ~%MINSC_JOINED%~ girdleminscslumberboo
++ @186 EXTERN ~%MINSC_JOINED%~ girdleminscslumberno
 

 


In Topic: Breagar NPC mod for BG1 and BGII (Kerzenburgforum)

12 June 2018 - 03:24 AM

Update to v7.0.6!

-Breagar-Solaufein crossmod compiles without error message


In Topic: Resting of familiars? (or any other creature following in that status)

11 June 2018 - 10:40 PM

Endurium: The main problem was that I wanted to cover the rests that are triggered by scripts using "Rest()" for the party members individually (used by some mods to make sure the romantic love-night with wake-up talk isn't turned into a threesome by another resttalk or the like). For these kind of "rests" the PartyRested() trigger doesn't trigger, unfortunately. (Plus, after a real rest via "RestParty()", the familiar is refreshed anyway, so it's really only those scripted rests I am trying to detect.)


In Topic: Resting of familiars? (or any other creature following in that status)

10 June 2018 - 08:31 PM

Hmm, I use a local timer variable in a script attached to creatures such as familiars to control resting/refreshing spells/abilities outside of a player-initiated party rest.

IF
    ActionListEmpty()
    GlobalTimerExpired("REST","LOCALS")
THEN
    RESPONSE #100
        Rest()
        SetGlobalTimer("REST","LOCALS",2400)
        Continue()
END

IF
    !GlobalTimerNotExpired("REST","LOCALS")
THEN
    RESPONSE #100
        SetGlobalTimer("REST","LOCALS",2400)
        Continue()
END

The ActionListEmpty() trigger prevents the animation sequence triggered by resting from interrupting the character's current action, if any. You can set the timer limit to any value desired, of course; I used 8 game hours as an example. Second block starts the timer, first block maintains it. Sorry if this isn't what you're looking for.

It definitely is one way to make sure the creature is rested in appropriate amounts of time. It doesn't satisfy my sense of perfection, though, where I expect the following NPC to have his spells refreshed after the party rested. :happy:

Thank you for the idea nontheless!