Jump to content

Corrections


baldur46233

Recommended Posts

Well hello again everyone!

 

Just wanted to know if WeiDU corrects dialogues or anything else correctly. What I mean is when it says,"Error at line 157 column 1-1", is it exactly in that certain place? Since, I have checked that place for errors I can't seem to find any, or maybe it's my lack of proofreading :mad:. It keeps leading me to this ceratin place "++", yet I can't find anything wrong there. Someone may have answered already but I must've forgotten..... :beer:

 

If anyone could answer this, thank you! (How many times have I said that for the past month....? Well, the world may never know.)

Link to comment

Your error will be above the point WeiDU identifies.

 

If WeiDU says the error is in line 746 columns 1-26, it will be in one of the lines above 746.

If WeiDU says the error is in line 746 columns 109-115, it will probably be in line 746 before character 109.

Link to comment
Your error will be above the point WeiDU identifies.

 

If WeiDU says the error is in line 746 columns 1-26, it will be in one of the lines above 746.

If WeiDU says the error is in line 746 columns 109-115, it will probably be in line 746 before character 109.

 

I did find an error, but it wasn't *the* error...

Link to comment
1 Post your code including the line with the error and ~20 lines above it.

2 Quote the error message exactly. The error text says a lot about what kind of error it is.

 

[Draco/Dialogues/JQ#DraJ.d] PARSE ERROR at line 157 column 1-1

Near Text: +

syntax error

 

[Draco/Dialogues/JQ#DraJ.d] ERROR at line 157 column 1-1

Near Text: +

Parsing.Parse_error

ERROR: parsing [Draco/Dialogues/JQ#DraJ.d]: Parsing.Parse_error

ERROR: compiling [Draco/Dialogues/JQ#DraJ.d]!

Stopping installation because of error.

 

 

++ ~(Push him away.) Stay away from me! I..I could kill you!~ GOTO Choice1

++ ~(Gently detach him from you.) I'm fine Draco, let's just go.~ GOTO Choice2

++ ~(You start sobbing into his arms.)~ GOTO Choice3

++ ~(Shove him away.) I'm FINE! Just leave me alone for awhile.~ GOTO Choice4

 

APPEND JQ#DraJ

IF ~~ THEN BEGIN Choice1

SAY ~(He looks at you worriedly.) I do not fear for myself, only for *you*.~

= ~I think it would be best if you take a rest love.~

= ~But know that I will not be far from you.~

IF ~~ EXIT

END

 

IF ~~ THEN BEGIN Choice2

SAY ~I...as you wish, love.~

= ~But know that I will not be far from you, should you need me.~

IF ~~ EXIT

END

 

IF ~~ THEN BEGIN Choice3

 

Well, that was 20 lines above it...that wasn't exactly the best place for an error... :mad:

Link to comment

1 Which line is 157?

2 Can you post the entire block containing

 

++ ~(Push him away.) Stay away from me! I..I could kill you!~ GOTO Choice1

++ ~(Gently detach him from you.) I'm fine Draco, let's just go.~ GOTO Choice2

++ ~(You start sobbing into his arms.)~ GOTO Choice3

++ ~(Shove him away.) I'm FINE! Just leave me alone for awhile.~ GOTO Choice4

 

 

I think you need an END after it, but I won't be sure unless I see the whole block.

Link to comment
1 Which line is 157?

2 Can you post the entire block containing

 

++ ~(Push him away.) Stay away from me! I..I could kill you!~ GOTO Choice1

++ ~(Gently detach him from you.) I'm fine Draco, let's just go.~ GOTO Choice2

++ ~(You start sobbing into his arms.)~ GOTO Choice3

++ ~(Shove him away.) I'm FINE! Just leave me alone for awhile.~ GOTO Choice4

 

 

I think you need an END after it, but I won't be sure unless I see the whole block.

 

The very first line is 157.

 

Here's the rest:

 

SAY ~(He tightens his hold on you and idly twirls a few strands of your hair.)~

= ~Shh...love. I am here, and I will not let you out of my sight.~

= ~(When you continue to sob, he takes your head in his hands and kisses you.)~

= ~(You immediately feel better and relax slightly, he feels your change in posture and releases you.)~

= ~Do you feel better now?~

END

++ ~(Grin at him.) Maybe if you do that again I will feel even better than before.~ GOTO AN1

++ ~Yes, I feel much better, thank you Draco.~ GOTO AN2

 

IF ~~ THEN BEGIN AN1

SAY ~(He smiles a bit worriedly and kisses you once more.)~

IF ~~ THEN EXIT

END

 

IF ~~ THEN BEGIN AN2

SAY ~That is good to know.~

IF ~~ THEN EXIT

END

 

IF ~~ THEN BEGIN Choice4

SAY ~(He looks at worriedly and kisses your hand.)~

= ~As you wish, beloved.~

IF ~~ THEN EXIT

END

 

END

Link to comment

Ah. When I said "above," I meant the lines before 157. But I see at least one of your problems.

 

SAY ~(He tightens his hold on you and idly twirls a few strands of your hair.)~

= ~Shh...love. I am here, and I will not let you out of my sight.~

= ~(When you continue to sob, he takes your head in his hands and kisses you.)~

= ~(You immediately feel better and relax slightly, he feels your change in posture and releases you.)~

= ~Do you feel better now?~

END

++ ~(Grin at him.) Maybe if you do that again I will feel even better than before.~ GOTO AN1

++ ~Yes, I feel much better, thank you Draco.~ GOTO AN2

 

The END should be after the PC replies.

Link to comment
Ah. When I said "above," I meant the lines before 157. But I see at least one of your problems.

 

SAY ~(He tightens his hold on you and idly twirls a few strands of your hair.)~

= ~Shh...love. I am here, and I will not let you out of my sight.~

= ~(When you continue to sob, he takes your head in his hands and kisses you.)~

= ~(You immediately feel better and relax slightly, he feels your change in posture and releases you.)~

= ~Do you feel better now?~

END

++ ~(Grin at him.) Maybe if you do that again I will feel even better than before.~ GOTO AN1

++ ~Yes, I feel much better, thank you Draco.~ GOTO AN2

 

The END should be after the PC replies.

 

Oh....I thought you meant above as in above the number.... :mad:

 

Here's the *actual* above:

INTERJECT_COPY_TRANS MOOK 12 dracocommentMook

== JQ#DraJ IF ~InParty("JQ#Dra") InMyArea("JQ#Dra") !StateCheck("JQ#Dra",CD_STATE_NOTVALID)~ THEN

~This will not bode well my friend.~

END

 

INTERJECT_COPY_TRANS BODHI 12 dracocommentBodhi

== JQ#DraJ IF ~InParty("JQ#Dra") InMyArea("JQ#Dra") !StateCheck("JQ#Dra",CD_STATE_NOTVALID)~ THEN

~She truly seems sincere to help, but I am not so sure. Take the offer if you wish <CHARNAME>. I have no objections either way.~

END

 

INTERJECT_COPY_TRANS PROPHET1 12 dracocommentProphet1

== JQ#DraJ IF ~InParty("JQ#Dra") InMyArea("JQ#Dra") !StateCheck("JQ#Dra",CD_STATE_NOTVALID)~ THEN

~We should ignore him <CHARNAME>.~

END

 

INTERJECT_COPY_TRANS PLAYER1 3 dracocommentPlayer1

== JQ#DraJ IF ~InParty("JQ#Dra") InMyArea("JQ#Dra") !StateCheck("JQ#Dra",CD_STATE_NOTVALID) ~Global("JQ#DraRomanceActive","GLOBAL",2)~ THEN

~Are you alright beautiful?~

= ~What has Irenicus done to you this time? I swear I will make him fall to his knees and beg...~

= ~My love, let me carry you until you feel that you can stand by yourself.~

END

 

INTERJECT_COPY_TRANS PLAYER1 5 dracocommentPlayer1

== JQ#DraJ IF ~InParty("JQ#Dra") InMyArea("JQ#Dra") !StateCheck("JQ#Dra",CD_STATE_NOTVALID) ~Global("JQ#DraRomanceActive","GLOBAL",2)~ THEN

~(Draco runs toward you and gathers you up in his arms.) My love, you need to rest.~

Link to comment
INTERJECT_COPY_TRANS PLAYER1 3 dracocommentPlayer1

== JQ#DraJ IF ~InParty("JQ#Dra") InMyArea("JQ#Dra") !StateCheck("JQ#Dra",CD_STATE_NOTVALID) ~Global("JQ#DraRomanceActive","GLOBAL",2)~

You have an extra tilde. It should be:

 

INTERJECT_COPY_TRANS PLAYER1 3 dracocommentPlayer1
== JQ#DraJ IF ~InParty("JQ#Dra") InMyArea("JQ#Dra") !StateCheck("JQ#Dra",CD_STATE_NOTVALID) Global("JQ#DraRomanceActive","GLOBAL",2)~

 

Same here:

INTERJECT_COPY_TRANS PLAYER1 5 dracocommentPlayer1

== JQ#DraJ IF ~InParty("JQ#Dra") InMyArea("JQ#Dra") !StateCheck("JQ#Dra",CD_STATE_NOTVALID) ~Global("JQ#DraRomanceActive","GLOBAL",2)~ THEN

~(Draco runs toward you and gathers you up in his arms.) My love, you need to rest.~

Link to comment

Ah, you're making up Slayer change interjections. Unfortunately, your method won't work. You can't have PC responses with I_C_T. I'll post the code from Gavin so you can see something untraified that works in game. Not the best dialogue I ever wrote, but who cares? You want the code. I'll post it first as straight code and then post it again with comments so you can see what's going on.

 

/* Slayer Changes */ 

INTERJECT PLAYER1 3 BGavSLAYER1 /* ~The feeling passes, but far too slowly for your liking.~ */ 
== ~B!GavJ~ IF ~InParty("B!Gavin2") InMyArea("B!Gavin2") !StateCheck("B!Gavin2",CD_STATE_NOTVALID)~ THEN ~<CHARNAME>? Are you... all right?~ 
END 
++ ~I think so. Why?~ EXTERN ~B!GavJ~ slayer1 
++ ~I am now, but I felt odd there, for a moment.~ EXTERN ~B!GavJ~ slayer1 
++ ~Something is wrong, but it's hard to say what it is.~ EXTERN ~B!GavJ~ slayer1 

APPEND ~B!GavJ~ 

IF ~~ slayer1 
SAY ~You acted very strangely, just now. I think this place is affecting you. We should leave it as soon as you're able to move on.~ 
COPY_TRANS PLAYER1 3 
END 
END 

I_C_T PLAYER1 5 BGavSLAYER2 
== ~B!GavJ~ IF ~InParty("B!Gavin2") InMyArea("B!Gavin2") !StateCheck("B!Gavin2",CD_STATE_NOTVALID)~ THEN ~<CHARNAME>! By the gods, what have you become?~ 
== ~B!GavJ~ IF ~InParty("B!Gavin2") InMyArea("B!Gavin2") !StateCheck("B!Gavin2",CD_STATE_NOTVALID)~ THEN  ~I felt great waves of evil coming off you, as if you had become... your father.~ 
== ~B!GavJ~ IF ~InParty("B!Gavin2") InMyArea("B!Gavin2") !StateCheck("B!Gavin2",CD_STATE_NOTVALID)~ THEN  ~It's the absence of your soul! It must be. It alone kept the blood you bear in check. We must get it back, and soon!~ 
END 

INTERJECT PLAYER1 7 BGavSLAYER3 
== ~B!GavJ~ IF ~InParty("B!Gavin2") 
  InMyArea("B!Gavin2") 
  !StateCheck("B!Gavin2",CD_STATE_NOTVALID) 
  OR(3) Global("B!GavRA","GLOBAL",1) 
	  Global("B!GavRA","GLOBAL",2) 
	  Global("B!GavRA","GLOBAL",4)~ THEN ~<CHARNAME>? You're pale... and you're trembling! Have you had another nightmare?~ 
END 
++ ~Get away from me, Gavin! I can't stop this!~ DO ~SetGlobal("EndangerLovedOne","GLOBAL",774)~ EXTERN ~B!GavJ~ slayer2 
++ ~Something's happening, Gavin! I'm...~ DO ~SetGlobal("EndangerLovedOne","GLOBAL",774)~ EXTERN ~B!GavJ~ slayer2 
++ ~Oh no! Not again!~ DO ~SetGlobal("EndangerLovedOne","GLOBAL",774)~ EXTERN ~B!GavJ~ slayer2 

APPEND ~B!GavJ~ 

IF ~~ slayer2 
SAY ~<CHARNAME>? I can't hear what you're saying! Oh gods... NO!~ 
 IF ~~ THEN DO ~ActionOverride(Player1,ReallyForceSpell(Myself,SLAYER_CHANGE))
~ EXIT
END
END 

EXTEND_BOTTOM PLAYER1 10 
IF ~Global("EndangerLovedOne","GLOBAL",774) 
  OR(3) !InParty("B!Gavin2") 
	  !InMyArea("B!Gavin2") 
	  StateCheck("B!Gavin2",CD_STATE_NOTVALID)~ THEN DO ~SetGlobal("DrowTalk","GLOBAL",5)~ GOTO 12  
IF ~Global("EndangerLovedOne","GLOBAL",774) 
  InParty("B!Gavin2") 
  InMyArea("B!Gavin2") 
  !StateCheck("B!Gavin2",CD_STATE_NOTVALID)~ THEN DO ~SetGlobal("DrowTalk","GLOBAL",5)~ EXTERN ~B!GavJ~ slayer3 
END 

CHAIN ~B!GavJ~ slayer3  
~<CHARNAME>? Can you hear me?~ 
END 
++ ~It happened again, didn't it?~ EXTERN ~B!GavJ~ slayer4 
++ ~I had the strangest dream.~ EXTERN ~B!GavJ~ slayer4 
++ ~Something is wrong... and you're bleeding!~ EXTERN ~B!GavJ~ slayer4 

APPEND ~B!GavJ~ 

IF ~~ slayer4 
SAY ~You... <CHARNAME>, your taint... it's no longer under your control.~ 
= ~You never asked for this, and I know you don't want it, but we have to get your soul back, and we have to do it soon, or you'll destroy everything you care about, and probably everything else, too.~ 
IF ~~ THEN EXIT 
END 
END

Now with comments

/* Slayer Changes */ 

/* I'm using INTERJECT here because I wanted PC responses. I_C_T is the same as INTERJECT followed by COPY_TRANS, so it all works out the same in the end. */ 
INTERJECT PLAYER1 3 BGavSLAYER1 /* ~The feeling passes, but far too slowly for your liking.~ */ 
== ~B!GavJ~ IF ~InParty("B!Gavin2") InMyArea("B!Gavin2") !StateCheck("B!Gavin2",CD_STATE_NOTVALID)~ THEN ~<CHARNAME>? Are you... all right?~ 
END 
/* INTERJECT, I_C_T, and all variations use CHAIN construction, so you need END before the PC replies */ 
++ ~I think so. Why?~ EXTERN ~B!GavJ~ slayer1 
++ ~I am now, but I felt odd there, for a moment.~ EXTERN ~B!GavJ~ slayer1 
++ ~Something is wrong, but it's hard to say what it is.~ EXTERN ~B!GavJ~ slayer1 
/* I'm using EXTERN ~B!GavJ~ because I am changing from the PLAYER1 dialogue file to ~B!GavJ~ dialogue file. I have to use the tildes around my file names because of my prefix, but you won't have to. */ 

APPEND ~B!GavJ~ 
/* When I switch from INTERJECT to regular dialogue states, I need to APPEND Gavin's J file. */ 

IF ~~ slayer1 
SAY ~You acted very strangely, just now. I think this place is affecting you. We should leave it as soon as you're able to move on.~ 
COPY_TRANS PLAYER1 3 
/* This COPY_TRANS works the same as the C_T in I_C_T. Note the syntax. I have to look it up each and every time. */ 
END 
/* The first END ends the state */ 
END 
/* The second END ends the APPEND I began earlier. */ 

I_C_T PLAYER1 5 BGavSLAYER2 
== ~B!GavJ~ IF ~InParty("B!Gavin2") InMyArea("B!Gavin2") !StateCheck("B!Gavin2",CD_STATE_NOTVALID)~ THEN ~<CHARNAME>! By the gods, what have you become?~ 
== ~B!GavJ~ IF ~InParty("B!Gavin2") InMyArea("B!Gavin2") !StateCheck("B!Gavin2",CD_STATE_NOTVALID)~ THEN  ~I felt great waves of evil coming off you, as if you had become... your father.~ 
== ~B!GavJ~ IF ~InParty("B!Gavin2") InMyArea("B!Gavin2") !StateCheck("B!Gavin2",CD_STATE_NOTVALID)~ THEN  ~It's the absence of your soul! It must be. It alone kept the blood you bear in check. We must get it back, and soon!~ 
END 
/* With this one, I didn't want PC replies, so it's just a straight I_C_T. Nice and simple. Note the triggers! If you don't use the !StateCheck("B!Gavin2",CD_STATE_NOTVALID), the chain could break if Gavin's in the party but dead or something. */ 

INTERJECT PLAYER1 7 BGavSLAYER3 
== ~B!GavJ~ IF ~InParty("B!Gavin2") 
  InMyArea("B!Gavin2") 
  !StateCheck("B!Gavin2",CD_STATE_NOTVALID) 
  OR(3) Global("B!GavRA","GLOBAL",1) 
	  Global("B!GavRA","GLOBAL",2) 
	  Global("B!GavRA","GLOBAL",4)~ THEN ~<CHARNAME>? You're pale... and you're trembling! Have you had another nightmare?~ 
END 
/* Note that I'm using romance variables here but I'm not using them elsewhere. If the PC has Gavin in the party, they're probably friends. Gavin is a caring person. He would probably comment if his friend was looking ill. Here, though I definitely want to use romance variables because this is the Slayer change where the PC is about to attack the love interest. */ 
++ ~Get away from me, Gavin! I can't stop this!~ DO ~SetGlobal("EndangerLovedOne","GLOBAL",774)~ EXTERN ~B!GavJ~ slayer2 
/* Check out the variable setting at the end of this line. I'm checking it later on. I probably should have used a prefixed variable here, but I forgot. Again, I'm using EXTERN because I'm switching from PLAYER1 to B!GavJ. */ 
++ ~Something's happening, Gavin! I'm...~ DO ~SetGlobal("EndangerLovedOne","GLOBAL",774)~ EXTERN ~B!GavJ~ slayer2 
++ ~Oh no! Not again!~ DO ~SetGlobal("EndangerLovedOne","GLOBAL",774)~ EXTERN ~B!GavJ~ slayer2 

APPEND ~B!GavJ~ 

IF ~~ slayer2 
SAY ~<CHARNAME>? I can't hear what you're saying! Oh gods... NO!~ 
 IF ~~ THEN DO ~ActionOverride(Player1,ReallyForceSpell(Myself,SLAYER_CHANGE))
~ EXIT
/* This is it. This is where the Slayer Change actually happens. Since this is only going to happen once, I don't include a COPY_TRANS here. If multiple romance mods are installed, the last mod installed gets priority. */ 
END
END 

EXTEND_BOTTOM PLAYER1 10 
/* This is where we're handling the reaction to the Slayer change. We're adding two more transitions to the bottom of PLAYER1 10. Since dialogue transitions are evaluated from the bottom to the top, the bottom transition, slayer3, will be evaluated before the top, 12. Both of these will be evaluated before vanilla game dialogue and mods that were installed earlier. Note that I'm using the same variable that I set above. */ 
IF ~Global("EndangerLovedOne","GLOBAL",774) 
  OR(3) !InParty("B!Gavin2") 
	  !InMyArea("B!Gavin2") 
	  StateCheck("B!Gavin2",CD_STATE_NOTVALID)~ THEN DO ~SetGlobal("DrowTalk","GLOBAL",5)~ GOTO 12  
/* Note that I'm setting the DrowTalk variable. I don't know what would happen if I left it out, but I'm willing to bet it would break the game somehow. */ 
IF ~Global("EndangerLovedOne","GLOBAL",774) 
  InParty("B!Gavin2") 
  InMyArea("B!Gavin2") 
  !StateCheck("B!Gavin2",CD_STATE_NOTVALID)~ THEN DO ~SetGlobal("DrowTalk","GLOBAL",5)~ EXTERN ~B!GavJ~ slayer3 
END 

CHAIN ~B!GavJ~ slayer3  
/* I probably could have done this as an APPEND block, but I didn't feel like it. */ 
~<CHARNAME>? Can you hear me?~ 
END 
++ ~It happened again, didn't it?~ EXTERN ~B!GavJ~ slayer4 
/* CHAIN construction doesn't like GOTO, even when I'm transitioning from B!GavJ to B!GavJ. Some say that you can use GOTO here, but I've never been able to get it to parse properly. You won't go wrong with EXTERN. */ 
++ ~I had the strangest dream.~ EXTERN ~B!GavJ~ slayer4 
++ ~Something is wrong... and you're bleeding!~ EXTERN ~B!GavJ~ slayer4 

APPEND ~B!GavJ~ 

IF ~~ slayer4 
SAY ~You... <CHARNAME>, your taint... it's no longer under your control.~ 
= ~You never asked for this, and I know you don't want it, but we have to get your soul back, and we have to do it soon, or you'll destroy everything you care about, and probably everything else, too.~ 
IF ~~ THEN EXIT 
END 
END
/* And that's the Slayer change. */

Link to comment
INTERJECT_COPY_TRANS PLAYER1 3 dracocommentPlayer1

== JQ#DraJ IF ~InParty("JQ#Dra") InMyArea("JQ#Dra") !StateCheck("JQ#Dra",CD_STATE_NOTVALID) ~Global("JQ#DraRomanceActive","GLOBAL",2)~

You have an extra tilde. It should be:

 

INTERJECT_COPY_TRANS PLAYER1 3 dracocommentPlayer1
== JQ#DraJ IF ~InParty("JQ#Dra") InMyArea("JQ#Dra") !StateCheck("JQ#Dra",CD_STATE_NOTVALID) Global("JQ#DraRomanceActive","GLOBAL",2)~

 

Same here:

INTERJECT_COPY_TRANS PLAYER1 5 dracocommentPlayer1

== JQ#DraJ IF ~InParty("JQ#Dra") InMyArea("JQ#Dra") !StateCheck("JQ#Dra",CD_STATE_NOTVALID) ~Global("JQ#DraRomanceActive","GLOBAL",2)~ THEN

~(Draco runs toward you and gathers you up in his arms.) My love, you need to rest.~

 

Hmm..I thought I already fixed that before. I guess I didn't save it.

Link to comment
Ah, you're making up Slayer change interjections. Unfortunately, your method won't work. You can't have PC responses with I_C_T. I'll post the code from Gavin so you can see something untraified that works in game. Not the best dialogue I ever wrote, but who cares? You want the code. I'll post it first as straight code and then post it again with comments so you can see what's going on.

 

/* Slayer Changes */ 

INTERJECT PLAYER1 3 BGavSLAYER1 /* ~The feeling passes, but far too slowly for your liking.~ */ 
== ~B!GavJ~ IF ~InParty("B!Gavin2") InMyArea("B!Gavin2") !StateCheck("B!Gavin2",CD_STATE_NOTVALID)~ THEN ~<CHARNAME>? Are you... all right?~ 
END 
++ ~I think so. Why?~ EXTERN ~B!GavJ~ slayer1 
++ ~I am now, but I felt odd there, for a moment.~ EXTERN ~B!GavJ~ slayer1 
++ ~Something is wrong, but it's hard to say what it is.~ EXTERN ~B!GavJ~ slayer1 

APPEND ~B!GavJ~ 

IF ~~ slayer1 
SAY ~You acted very strangely, just now. I think this place is affecting you. We should leave it as soon as you're able to move on.~ 
COPY_TRANS PLAYER1 3 
END 
END 

I_C_T PLAYER1 5 BGavSLAYER2 
== ~B!GavJ~ IF ~InParty("B!Gavin2") InMyArea("B!Gavin2") !StateCheck("B!Gavin2",CD_STATE_NOTVALID)~ THEN ~<CHARNAME>! By the gods, what have you become?~ 
== ~B!GavJ~ IF ~InParty("B!Gavin2") InMyArea("B!Gavin2") !StateCheck("B!Gavin2",CD_STATE_NOTVALID)~ THEN  ~I felt great waves of evil coming off you, as if you had become... your father.~ 
== ~B!GavJ~ IF ~InParty("B!Gavin2") InMyArea("B!Gavin2") !StateCheck("B!Gavin2",CD_STATE_NOTVALID)~ THEN  ~It's the absence of your soul! It must be. It alone kept the blood you bear in check. We must get it back, and soon!~ 
END 

INTERJECT PLAYER1 7 BGavSLAYER3 
== ~B!GavJ~ IF ~InParty("B!Gavin2") 
  InMyArea("B!Gavin2") 
  !StateCheck("B!Gavin2",CD_STATE_NOTVALID) 
  OR(3) Global("B!GavRA","GLOBAL",1) 
	  Global("B!GavRA","GLOBAL",2) 
	  Global("B!GavRA","GLOBAL",4)~ THEN ~<CHARNAME>? You're pale... and you're trembling! Have you had another nightmare?~ 
END 
++ ~Get away from me, Gavin! I can't stop this!~ DO ~SetGlobal("EndangerLovedOne","GLOBAL",774)~ EXTERN ~B!GavJ~ slayer2 
++ ~Something's happening, Gavin! I'm...~ DO ~SetGlobal("EndangerLovedOne","GLOBAL",774)~ EXTERN ~B!GavJ~ slayer2 
++ ~Oh no! Not again!~ DO ~SetGlobal("EndangerLovedOne","GLOBAL",774)~ EXTERN ~B!GavJ~ slayer2 

APPEND ~B!GavJ~ 

IF ~~ slayer2 
SAY ~<CHARNAME>? I can't hear what you're saying! Oh gods... NO!~ 
 IF ~~ THEN DO ~ActionOverride(Player1,ReallyForceSpell(Myself,SLAYER_CHANGE))
~ EXIT
END
END 

EXTEND_BOTTOM PLAYER1 10 
IF ~Global("EndangerLovedOne","GLOBAL",774) 
  OR(3) !InParty("B!Gavin2") 
	  !InMyArea("B!Gavin2") 
	  StateCheck("B!Gavin2",CD_STATE_NOTVALID)~ THEN DO ~SetGlobal("DrowTalk","GLOBAL",5)~ GOTO 12  
IF ~Global("EndangerLovedOne","GLOBAL",774) 
  InParty("B!Gavin2") 
  InMyArea("B!Gavin2") 
  !StateCheck("B!Gavin2",CD_STATE_NOTVALID)~ THEN DO ~SetGlobal("DrowTalk","GLOBAL",5)~ EXTERN ~B!GavJ~ slayer3 
END 

CHAIN ~B!GavJ~ slayer3  
~<CHARNAME>? Can you hear me?~ 
END 
++ ~It happened again, didn't it?~ EXTERN ~B!GavJ~ slayer4 
++ ~I had the strangest dream.~ EXTERN ~B!GavJ~ slayer4 
++ ~Something is wrong... and you're bleeding!~ EXTERN ~B!GavJ~ slayer4 

APPEND ~B!GavJ~ 

IF ~~ slayer4 
SAY ~You... <CHARNAME>, your taint... it's no longer under your control.~ 
= ~You never asked for this, and I know you don't want it, but we have to get your soul back, and we have to do it soon, or you'll destroy everything you care about, and probably everything else, too.~ 
IF ~~ THEN EXIT 
END 
END

Now with comments

/* Slayer Changes */ 

/* I'm using INTERJECT here because I wanted PC responses. I_C_T is the same as INTERJECT followed by COPY_TRANS, so it all works out the same in the end. */ 
INTERJECT PLAYER1 3 BGavSLAYER1 /* ~The feeling passes, but far too slowly for your liking.~ */ 
== ~B!GavJ~ IF ~InParty("B!Gavin2") InMyArea("B!Gavin2") !StateCheck("B!Gavin2",CD_STATE_NOTVALID)~ THEN ~<CHARNAME>? Are you... all right?~ 
END 
/* INTERJECT, I_C_T, and all variations use CHAIN construction, so you need END before the PC replies */ 
++ ~I think so. Why?~ EXTERN ~B!GavJ~ slayer1 
++ ~I am now, but I felt odd there, for a moment.~ EXTERN ~B!GavJ~ slayer1 
++ ~Something is wrong, but it's hard to say what it is.~ EXTERN ~B!GavJ~ slayer1 
/* I'm using EXTERN ~B!GavJ~ because I am changing from the PLAYER1 dialogue file to ~B!GavJ~ dialogue file. I have to use the tildes around my file names because of my prefix, but you won't have to. */ 

APPEND ~B!GavJ~ 
/* When I switch from INTERJECT to regular dialogue states, I need to APPEND Gavin's J file. */ 

IF ~~ slayer1 
SAY ~You acted very strangely, just now. I think this place is affecting you. We should leave it as soon as you're able to move on.~ 
COPY_TRANS PLAYER1 3 
/* This COPY_TRANS works the same as the C_T in I_C_T. Note the syntax. I have to look it up each and every time. */ 
END 
/* The first END ends the state */ 
END 
/* The second END ends the APPEND I began earlier. */ 

I_C_T PLAYER1 5 BGavSLAYER2 
== ~B!GavJ~ IF ~InParty("B!Gavin2") InMyArea("B!Gavin2") !StateCheck("B!Gavin2",CD_STATE_NOTVALID)~ THEN ~<CHARNAME>! By the gods, what have you become?~ 
== ~B!GavJ~ IF ~InParty("B!Gavin2") InMyArea("B!Gavin2") !StateCheck("B!Gavin2",CD_STATE_NOTVALID)~ THEN  ~I felt great waves of evil coming off you, as if you had become... your father.~ 
== ~B!GavJ~ IF ~InParty("B!Gavin2") InMyArea("B!Gavin2") !StateCheck("B!Gavin2",CD_STATE_NOTVALID)~ THEN  ~It's the absence of your soul! It must be. It alone kept the blood you bear in check. We must get it back, and soon!~ 
END 
/* With this one, I didn't want PC replies, so it's just a straight I_C_T. Nice and simple. Note the triggers! If you don't use the !StateCheck("B!Gavin2",CD_STATE_NOTVALID), the chain could break if Gavin's in the party but dead or something. */ 

INTERJECT PLAYER1 7 BGavSLAYER3 
== ~B!GavJ~ IF ~InParty("B!Gavin2") 
  InMyArea("B!Gavin2") 
  !StateCheck("B!Gavin2",CD_STATE_NOTVALID) 
  OR(3) Global("B!GavRA","GLOBAL",1) 
	  Global("B!GavRA","GLOBAL",2) 
	  Global("B!GavRA","GLOBAL",4)~ THEN ~<CHARNAME>? You're pale... and you're trembling! Have you had another nightmare?~ 
END 
/* Note that I'm using romance variables here but I'm not using them elsewhere. If the PC has Gavin in the party, they're probably friends. Gavin is a caring person. He would probably comment if his friend was looking ill. Here, though I definitely want to use romance variables because this is the Slayer change where the PC is about to attack the love interest. */ 
++ ~Get away from me, Gavin! I can't stop this!~ DO ~SetGlobal("EndangerLovedOne","GLOBAL",774)~ EXTERN ~B!GavJ~ slayer2 
/* Check out the variable setting at the end of this line. I'm checking it later on. I probably should have used a prefixed variable here, but I forgot. Again, I'm using EXTERN because I'm switching from PLAYER1 to B!GavJ. */ 
++ ~Something's happening, Gavin! I'm...~ DO ~SetGlobal("EndangerLovedOne","GLOBAL",774)~ EXTERN ~B!GavJ~ slayer2 
++ ~Oh no! Not again!~ DO ~SetGlobal("EndangerLovedOne","GLOBAL",774)~ EXTERN ~B!GavJ~ slayer2 

APPEND ~B!GavJ~ 

IF ~~ slayer2 
SAY ~<CHARNAME>? I can't hear what you're saying! Oh gods... NO!~ 
 IF ~~ THEN DO ~ActionOverride(Player1,ReallyForceSpell(Myself,SLAYER_CHANGE))
~ EXIT
/* This is it. This is where the Slayer Change actually happens. Since this is only going to happen once, I don't include a COPY_TRANS here. If multiple romance mods are installed, the last mod installed gets priority. */ 
END
END 

EXTEND_BOTTOM PLAYER1 10 
/* This is where we're handling the reaction to the Slayer change. We're adding two more transitions to the bottom of PLAYER1 10. Since dialogue transitions are evaluated from the bottom to the top, the bottom transition, slayer3, will be evaluated before the top, 12. Both of these will be evaluated before vanilla game dialogue and mods that were installed earlier. Note that I'm using the same variable that I set above. */ 
IF ~Global("EndangerLovedOne","GLOBAL",774) 
  OR(3) !InParty("B!Gavin2") 
	  !InMyArea("B!Gavin2") 
	  StateCheck("B!Gavin2",CD_STATE_NOTVALID)~ THEN DO ~SetGlobal("DrowTalk","GLOBAL",5)~ GOTO 12  
/* Note that I'm setting the DrowTalk variable. I don't know what would happen if I left it out, but I'm willing to bet it would break the game somehow. */ 
IF ~Global("EndangerLovedOne","GLOBAL",774) 
  InParty("B!Gavin2") 
  InMyArea("B!Gavin2") 
  !StateCheck("B!Gavin2",CD_STATE_NOTVALID)~ THEN DO ~SetGlobal("DrowTalk","GLOBAL",5)~ EXTERN ~B!GavJ~ slayer3 
END 

CHAIN ~B!GavJ~ slayer3  
/* I probably could have done this as an APPEND block, but I didn't feel like it. */ 
~<CHARNAME>? Can you hear me?~ 
END 
++ ~It happened again, didn't it?~ EXTERN ~B!GavJ~ slayer4 
/* CHAIN construction doesn't like GOTO, even when I'm transitioning from B!GavJ to B!GavJ. Some say that you can use GOTO here, but I've never been able to get it to parse properly. You won't go wrong with EXTERN. */ 
++ ~I had the strangest dream.~ EXTERN ~B!GavJ~ slayer4 
++ ~Something is wrong... and you're bleeding!~ EXTERN ~B!GavJ~ slayer4 

APPEND ~B!GavJ~ 

IF ~~ slayer4 
SAY ~You... <CHARNAME>, your taint... it's no longer under your control.~ 
= ~You never asked for this, and I know you don't want it, but we have to get your soul back, and we have to do it soon, or you'll destroy everything you care about, and probably everything else, too.~ 
IF ~~ THEN EXIT 
END 
END
/* And that's the Slayer change. */

 

Oh...hehe. :mad: I'll fix that ltomorrow, right now I'm just tired...Thank you anyhow! :beer:

Link to comment

Well, I fixed it (thanks to both of you :mad:) ...now I have another problem at the Tree of Life Talk...

 

[Draco/Dialogues/JQ#DraJ.d] PARSE ERROR at line 81 column 1-1

Near Text: +

syntax error

 

[Draco/Dialogues/JQ#DraJ.d] ERROR at line 81 column 1-1

Near Text: +

Parsing.Parse_error

ERROR: parsing [Draco/Dialogues/JQ#DraJ.d]: Parsing.Parse_error

ERROR: compiling [Draco/Dialogues/JQ#DraJ.d]!

Stopping installation because of error.

 

ERROR Installing [Draco for BG2:SoA], rolling back to previous state

[Draco/backup/0/UNSETSTR.0] SET_STRING uninstall info not found

Will uninstall 20 files for [sETUP-DRACO.TP2] component 0.

 

At first, I put the END after all PC dialgoue, that didn't work. Then, I tried putting two ENDs (one after the PC dialogue and one after NPC dialogue), but that didn't work either...here's the dialogue and 20 lines above it:

 

I_C_T JAN 39 dracocommentJan

== ~JQ#DraJ~ IF ~InParty("JQ#Dra") InMyArea("JQ#Dra") !StateCheck("JQ#Dra",CD_STATE_NOTVALID)~ THEN

~Hmm, this gnome does seem sincere...~

END

 

I_C_T PLAYER1 25 dracocommentHell

== ~JQ#DraJ~ IF ~InParty("JQ#Dra") InMyArea("JQ#Dra") !StateCheck("JQ#Dra",CD_STATE_NOTVALID)~ THEN

~So you have brought us here <CHARNAME>? Then know this, I will not abandon you here.~

END

 

/* Tree of Life */

 

INTERJECT PLAYER1 33 JQ#DraTreeOfLife

== PLAYER1 IF ~InParty("JQ#Dra")

!StateCheck("JQ#Dra",CD_STATE_NOTVALID)

!Global("JQ#DraRomanceActive","GLOBAL",2)~ THEN

~Draco, the part tiefling and half-elf, stands before you. He has gone through so much and would like to see this to an end, but will he come with you to the end?~

END

++ ~Draco, you don't need to risk your life for me. It would be better if you didn't.~ EXTERN Option1

++ ~Draco, are you ready to face Irenicus?~ EXTERN Option2

Link to comment
++ ~Draco, you don't need to risk your life for me. It would be better if you didn't.~ EXTERN Option1

++ ~Draco, are you ready to face Irenicus?~ EXTERN Option2

 

Not sure this is the problem, but you have to specify a dlg the EXTERN goes to.

Link to comment

Archived

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

×
×
  • Create New...