Help - Search - Members - Calendar
Full Version: Two ToB coding questions
The Black Wyrm's Lair - Forums > Mod development resources & discussion > Modder's Workshop
Moongaze
Greets,
I've been modding and I ran into two problems.
The first has to do with the kickout dialogue file (P file). The kicking out works fine in SoA, but in its ToB file (which I adapted), the character gets kicked out, yet doesn't give a reaction + options (such as Minsc: "Boo needs to know. Did you want us to remain with the group?" - choose yes and he joins again, choose no and he leaves). The character is kicked out, doesn't initiate dialogue and when I click on the character, the dreaded "has nothing to say" appears, probably because the kicked-out GLOBALs weren't set. I've been looking through the code, but I've not found anything out of the ordinary myself. Perhaps one of you will see what I have not.

And no, these are not the real dialogues. The mod installed fine and without errors, as well.

CODE
BEGIN MGBGA25P

IF ~Global("MGBGAJoined","LOCALS",1)~ THEN BEGIN MGBGAKickToB
SAY ~(Leave him behind?)~
++ ~(NO!)~ DO ~JoinParty()~ EXIT
++ ~(Leave him behind.)~ GOTO MGBGAKick2ToB
END

IF ~~ THEN BEGIN MGBGAKick2ToB
SAY ~(He leaves you and stays here.)~
IF ~~ THEN DO ~SetGlobal("MGBGAJoined","LOCALS",0)
SetGlobal("MGBGAKickedOut","LOCALS",1)~
EXIT
END



IF ~Global("MGBGAJoined","LOCALS",0)
Global("MGBGAKickedOut","LOCALS",1)~ THEN BEGIN MGBGARejoinToB
SAY ~(Team up?)~
++ ~(Yes, team up.)~ GOTO MGBGARejoin2ToB
++ ~(Leave him be.)~ GOTO MGBGARejoinNotToB
END

IF ~~ THEN BEGIN MGBGARejoin2ToB
SAY ~(He rejoins.)~
IF ~~ THEN DO ~SetGlobal("MGBGAJoined","LOCALS",1)
JoinParty()~ EXIT
END

IF ~~ THEN BEGIN MGBGARejoinNotToB
SAY ~(He stays.)~
IF ~~ THEN EXIT
END



Secondly, I seem to be puzzled as to how the developers and modmakers alike can have their character initiate conversation with the PC directly after being summoned to the pocket plane by the Fate Spirit. I can summon my characters easily, yet they will stand there until I click on them and initiate conversation myself. How can I make it fire automatically after being summoned? Here is what I have in Wikaede Revisited v4.1, which has this problem (and thus, every mod based on it as well):

MGWIKA25.baf
CODE
IF
  Global("MGWikaedeSummoned","GLOBAL",1)
THEN
RESPONSE #100
  StartDialogueNoSet([PC])
  Wait(1)
END


MGWIKA25J (at the bottom of the file, below Volo interjection)
CODE
EXTEND_TOP FATESP 6 #9
IF ~!Dead("Wikaede")
    !InMyArea("Wikaede")
    Global("MGWikaedeSummoned","GLOBAL",0)~
THEN
  REPLY ~Bring me Wikaede, Priest of Helm.~
    DO ~CreateVisualEffect("SPPORTAL",[1999.1218])
     Wait(2)
     CreateCreature("MGWIKA25",[1999.1218],0)
     SetGlobal("MGWikaedeSummoned","GLOBAL",1)~
     GOTO 8
END


CODE
BEGIN MGWIK25

IF ~NumTimesTalkedTo(0)
Global("MGWikaedeSummoned","GLOBAL",1)~ THEN BEGIN MGWikaSummonPP
SAY ~What? It seems I have been summoned to a plane of sorts. What is the reason for your summoning, <CHARNAME>?~
++ ~It's a long story, Wikaede. Regardless, I need your help. ~ GOTO MGWikaSummonPP2
END

IF ~~ THEN BEGIN MGWikaSummonPP2
SAY ~I see. If you require my assistance, you shall have it.~
++ ~Thank you.~ GOTO MGWikaJoinPP
++ ~Could you wait over there, please?~ GOTO MGWikaLeavePP
END

IF ~~ THEN BEGIN MGWikaJoinPP
SAY ~It is my duty and my pleasure.~
IF ~~ THEN DO ~SetGlobal("MGWikaedeJoined","LOCALS",1)JoinParty()~
EXIT
END

IF ~~ THEN BEGIN MGWikaLeavePP
SAY ~It shall be as you say.~
IF ~~ THEN DO ~SetGlobal("MGWikaedeLeavePP","GLOBAL",1)~
EXIT
END

IF ~Global("MGWikaedeLeavePP","GLOBAL",1)~ THEN BEGIN MGWikaPP
SAY ~Am I to travel with you, or is there some other reason for your presence here, <CHARNAME>?~
++ ~There's nothing, Wikaede. I was just checking on you.~ GOTO MGWikaLeavePP2
++ ~Yes, please travel with me.~ GOTO MGWikaJoinPP2
END

IF ~~ THEN BEGIN MGWikaJoinPP2
SAY ~Then I will come along.~
IF ~~ THEN DO ~SetGlobal("MGWikaedeJoined","LOCALS",1)JoinParty()~
EXIT
END

IF ~~ THEN BEGIN MGWikaLeavePP2
SAY ~Ahh. I am doing well. Thank you for your concern. Do not hestitate to ask for my assistance, should you need it.~
IF ~~ THEN EXIT
END
The Bigg
Try posting your override/pdialog.2da and the section of tp2 code where you append to it. I know that some mods didn't correctly append the ToB strings, and that might be the cause.
Moongaze
CODE
2DA V1.0
multig
          POST_DIALOG_FILE JOIN_DIALOG_FILE DREAM_SCRIPT_FILE 25POST_DIALOG_FILE 25JOIN_DIALOG_FILE 25DREAM_SCRIPT_FILE   25OVERRIDE_SCRIPT_FILE
AERIE        AERIEP             AERIEJ            AERIED         AERIE25P           AERIE25J              AERIE25D              aeri25    
ANOMEN       ANOMENP            ANOMENJ           ANOMEND        ANOME25P           ANOME25J              ANOME25D              anom25    
CERND        CERNDP             CERNDJ            CERNDD         CERND25P           CERND25J              CERNDD                cern25    
EDWIN        EDWINP             EDWINJ            EDWIND         EDWIN25P           EDWIN25J              EDWIND                edwi25    
HAERDALIS    HAERDAP            HAERDAJ           HAERDAD        HAERD25P           HAERD25J              HAERDAD               haer25    
IMOEN        IMOENP             IMOENJ            IMOEND         IMOENP             IMOENJ                IMOEND                imoe25    
IMOEN2       IMOEN2P            IMOEN2J           IMOEN2D        IMOEN25P           IMOEN25J              IMOEN2D               imoe25    
JAHEIRA      JAHEIRAP           JAHEIRAJ          JAHEIRAD       JAHEI25P           JAHEI25J              JAHEI25D              jahe25  
JAN          JANP               JANJ              JAND           JAN25P             JAN25J                JAND                  jan25      
KELDORN      KELDORP            KELDORJ           KELDORD        KELDO25P           KELDO25J              KELDORD               keld25    
KORGAN       KORGANP            KORGANJ           KORGAND        KORGA25P           KORGA25J              KORGAND               korg25    
MAZZY        MAZZYP             MAZZYJ            MAZZYD         MAZZY25P           MAZZY25J              MAZZYD                mazz25    
MINSC        MINSCP             MINSCJ            MINSCD         MINSC25P           MINSC25J              MINSCD                mins25    
NALIA        NALIAP             NALIAJ            NALIAD         NALIA25P           NALIA25J              NALIAD                nali25    
VALYGAR      VALYGARP           VALYGARJ          VALYGARD       VALYG25P           VALYG25J              VALYGARD              valy25  
VICONIA      VICONIP            VICONIJ           VICOND         VICON25P           VICON25J              VICON25D              vico25    
YOSHIMO      YOSHP              YOSHJ             YOSHD          YOSHP              YOSHJ                 YOSHD                 yosh25      
TTXAN        TTXANP             TTXANJ            TTXAND         TTXANP             TTXANJ                TTXAND                ***    
TTBRAN       TTBRANP            TTBRANJ           TTBRAND        TTBRANP            TTBRANJ               TTBRAND               ***    
TTIMOEN      TTIMOENP           TTIMOENJ          TTIMOEND       TTIMOENP           TTIMOENJ              TTIMOEND              ***  
TTJAHEIR     TTJAHEIP           TTJAHEIJ          TTJAHEID       TTJAHEIP           TTJAHEIJ              TTJAHEID              ***  
TTMINSC      TTMINSCP           TTMINSCJ          TTMINSCD       TTMINSCP           TTMINSCJ              TTMINSCD              ***  
SAREVOK      SAREV25P           SAREV25J          SAREV25D       SAREV25P           SAREV25J              SAREV25D              ***  
IDIOT01      IDIOTP             IDIOTP            ***            IDIOTP             IDIOTP                ***                   ***



CODE
APPEND ~pdialog.2da~
~Krhxyth MGBGAP MGBGAJ MGBGAD MGBGA MGBGA25P MGBGA25J MGBGA25D MGBGA25~
UNLESS ~Krhxyth~

APPEND ~interdia.2da~
~Krhxyth BMGBGA BMGBGA25~
UNLESS ~Krhxyth~


There we go.
The Bigg
the pdialog.2da is with the mod installed? It should have that 'Krhxyth MGBGAP MGBGAJ MGBGAD MGBGA MGBGA25P MGBGA25J MGBGA25D MGBGA25' line there. Does it work if you add it manually?
Moongaze
Yeah, this is with the mod installed. Every other dialogue worked fine except for the ToB P file. Maybe it's mucking up because the B (banter) files are empty apart from "BEGIN BMGBGA" and "BEGIN BMGBGA25".

Any specific spot where I should enter the code manually, or can I just drop them anywhere?
The Bigg
QUOTE(Moongaze @ Jul 15 2008, 02:29 PM) *
Maybe it's mucking up because the B (banter) files are empty apart from "BEGIN BMGBGA" and "BEGIN BMGBGA25".

Shouldn't matter.

QUOTE
Any specific spot where I should enter the code manually, or can I just drop them anywhere?

Try pasting your TP2. Apparently, the APPENDS aren't running - without them working, the P file and ToB script never activate.
Moongaze
As requested, the TP2 file:

CODE
BACKUP ~BoneGolemAlly\backup~
AUTHOR ~CuteOmen@gmail.com~
BEGIN ~Bone Golem Ally v1.0 by Moongaze~


COPY ~BoneGolemAlly\Portraits~ ~override~

COPY ~BoneGolemAlly\Creatures\MGBGA.CRE~ ~override~
     ~BoneGolemAlly\Creatures\MGBGA25.CRE~ ~override~
SAY NAME1 ~Krhxyth~
SAY NAME2 ~Krhxyth~
SAY INITIAL_MEETING ~(...)~
SAY BIO ~When asked about its past, KRHXYTH says absolutely nothing. It cannot speak, nor express its emotion, if it even has any.~

COPY ~BoneGolemAlly\Items\MGBAXE.itm~ ~override\MGBAXE.itm~
SAY NAME1 ~Bone Scythe~
SAY NAME2 ~Bone Scythe~
SAY UNIDENTIFIED_DESC ~Bone Scythe +3
These are Krhxyth's scythe-like arms. Although it cannot easily pick up items, the arms are formidable weapons, equal to dual-wielding two steel battle axes of +3 enchantment.

STATISTICS:

THAC0: +2 bonus
Damage:  1D6 + 3
Damage type: Slashing
Weight: 0
Speed Factor: 5
Proficiency Type: Axe
Type: 1-handed
Requires: 10 Strength
Usable By:
Krhxyth~
SAY DESC ~Bone Scythe +3
These are Krhxyth's scythe-like arms. Although it cannot easily pick up items, the arms are formidable weapons, equal to dual-wielding two steel battle axes of +3 enchantment.

STATISTICS:

THAC0: +2 bonus
Damage:  1D6 + 3
Damage type: Slashing
Weight: 0
Speed Factor: 5
Proficiency Type: Axe
Type: 1-handed
Requires: 10 Strength
Usable By:
Krhxyth~

COPY ~BoneGolemAlly\Items\MGBPLAT.itm~ ~override\MGBPLAT.itm~
SAY NAME1 ~Ribcage Armor~
SAY NAME2 ~Ribcage Armor~
SAY UNIDENTIFIED_DESC ~Ribcage Armor
This is Krhxyth's sturdy ribcage. It offers protection similar to enchanted full platemail.

STATISTICS:

Armor Class: 0
Weight: 0
Requires: 15 Strength
Usable By:
Krhxyth~
SAY DESC ~Ribcage Armor
This is Krhxyth's sturdy ribcage. It offers protection similar to enchanted full platemail.

STATISTICS:

Armor Class: 0
Weight: 0
Requires: 15 Strength
Usable By:
Krhxyth~

COPY ~BoneGolemAlly\Items\MGBHELM.itm~ ~override\MGBHELM.itm~
SAY NAME1 ~Ancient Skull~
SAY NAME2 ~Ancient Skull~
SAY UNIDENTIFIED_DESC ~Ancient Skull
This is Krhxyth's skull. Though seemingly old, it's strong enough to protect its brain, if it even has any.

STATISTICS:

Armor Class Bonus:  None
Special:  Protects Against Critical Hits
Weight: 0
Usable By:
Krhxyth~
SAY DESC ~Ancient Skull
This is Krhxyth's skull. Though seemingly old, it's strong enough to protect its brain, if it even has any.

STATISTICS:

Armor Class Bonus:  None
Special:  Protects Against Critical Hits
Weight: 0
Usable By:
Krhxyth~

COMPILE ~BoneGolemAlly\Dialogues\MGBGA.d~
COMPILE ~BoneGolemAlly\Dialogues\MGBGAJ.d~
COMPILE ~BoneGolemAlly\Dialogues\MGBGAP.d~
COMPILE ~BoneGolemAlly\Dialogues\BMGBGA.d~
COMPILE ~BoneGolemAlly\Dialogues\MGBGA25.d~
COMPILE ~BoneGolemAlly\Dialogues\MGBGA25J.d~
COMPILE ~BoneGolemAlly\Dialogues\MGBGA25P.d~
COMPILE ~BoneGolemAlly\Dialogues\BMGBGA25.d~

COMPILE ~BoneGolemAlly\Scripts\MGBGA25.baf~
COMPILE ~BoneGolemAlly\Scripts\BNAR0202.baf~
COMPILE ~BoneGolemAlly\Scripts\BNAR6200.baf~

EXTEND_TOP ~AR0202.bcs~ ~BoneGolemAlly\Scripts\BNAR0202.baf~
COPY_EXISTING ~AR6200.bcs~ ~override\AR6200.bcs~
EXTEND_TOP ~AR6200.bcs~ ~BoneGolemAlly\Scripts\BNAR6200.baf~

COPY ~BoneGolemAlly\2da\BGAAND1.2da~ ~override\BGAAND1.2da~
REPLACE ~99999~ ~After <CHARNAME>'s ascension, Krhxyth was sent back to the sewers, where it remained ever since.~
COPY ~BoneGolemAlly\2da\BGAAND2.2da~ ~override\BGAAND2.2da~
REPLACE ~99998~ ~Krhxyth travelled a while longer with our protagonist before it was led into an ancient temple, where it was ordered to remain for eternity.~


APPEND ~pdialog.2da~
~Krhxyth MGBGAP MGBGAJ MGBGAD MGBGA MGBGA25P MGBGA25J MGBGA25D MGBGA25~
UNLESS ~Krhxyth~

APPEND ~interdia.2da~
~Krhxyth BMGBGA BMGBGA25~
UNLESS ~Krhxyth~
The Bigg
The code is fine, but apparently pdialog.2da wasn't altered. Try reinstalling your mod and see if it was a random fluke and now it works. Also, it is (theoretically) possible that a mod installed after yours could have removed your lines - try removing your mod and installing it as the last.
Moongaze
I didn't install another mod after it, but I did install the alpha version of Vansan before it. I did a clean install, checked pdialog.2da and saw the appended files there. I'm guessing they should work now. I'll test in a bit when I have time. Thanks for the trouble, though. happy.gif

In the meantime, can anyone assist me with my second question? The one about the automatic initiation of the first dialogue between new mod NPC and protagonist, right after being summoned to the pocket plane through the Fate Spirit? smile.gif
The Bigg
QUOTE(Moongaze @ Jul 15 2008, 05:43 PM) *
I didn't install another mod after it, but I did install the alpha version of Vansan before it. I did a clean install, checked pdialog.2da and saw the appended files there. I'm guessing they should work now. I'll test in a bit when I have time. Thanks for the trouble, though. happy.gif

In the meantime, can anyone assist me with my second question? The one about the automatic initiation of the first dialogue between new mod NPC and protagonist, right after being summoned to the pocket plane through the Fate Spirit? smile.gif

I suppose they're related to the same issue, since pdialog.2da controls which script and dialogue files get assigned at various stages. Otherwise, the code appears to be fine.
Moongaze
I tested the ToB kick-out and the same problem remains, even with my files being in de pdialog.2da file.
closedeyes.gif *sighs softly* I guess I'll re-code the whole thing from scratch.
The Bigg
Unfortunately, pdialog is the only thing I can think about at the moment. Try double-checking every spelling.
jastey
The only thing I can think of is: is Krhxyth also his death variable? Because the patching of the pdialog.2da and interdia.2da should be done with the death variable.
Moongaze
Yes, "Krhxyth" is the death variable. I'll check the spelling later. Maybe I made a small mistake somewhere. Using terms like Krhxyth and BGA isn't something I'm used to.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2024 Invision Power Services, Inc.