Jump to content

Interjections Not Working


Gabrielle

Recommended Posts

So far none of my interjections are working or working properly.

 

My interjection with Bodhi breaks the game, my npcs comment doesn't show up so Bohdi never finishes what she is suppose to say when you first meet her.

 

My interjections with the street urchins in the Slums, it shows their response to my character but no response from my npc. It shows up in the dialogs as it shows in the decompiled examples.

 

IF WEIGHT #0 ~InParty("cmgmiriam")
See("cmgmiriam")
!StateCheck("cmgmiriam",STATE_SLEEPING)
Global("cmgmiriamslkid3","LOCALS",0)
~ THEN BEGIN 11 // from:
 SAY #84989 /* ~You sure are pale lady. Are you dead?~ */
 IF ~~ THEN DO ~SetGlobal("cmgmiriamslkid3","LOCALS",1)
~ EXTERN ~CMGMIRIJ~ 102
END

 

Reponse

 

IF ~~ THEN BEGIN 102 // from:
 SAY #84975 /* ~We wonder if little kids taste sweet.~ */
 IF ~~ THEN EXTERN ~URCHIN2~ 12
END

 

IF ~~ THEN BEGIN 12 // from:
 SAY #84990 /* ~Eekkkk!~ */
 IF ~~ THEN EXIT
END

 

Its obviously there why isn't it showing up?

Link to comment

I am not sure I understand the exact problem. If talked to the game character, your weighted dialogue fires but your NPC doesn't respond?

In this case, is "CMGMIRIJ" the correct dialogue file of your NPC, and is the response assigned to it? Is it correctly assigned via tp2 to your NPC?

Link to comment

Sounds like the join dialogue ("cmgmirij") isn't being correctly assigned. If you speak to the urchin and see the continue button when the "You sure are pale, lady..." dialogue runs but pressing it just ends dialogue, this almost always means that the EXTERN dialogue isn't loaded (your character is using some other dialogue or none at all).

 

"cmgmiriam" is fine as a script name.

Link to comment

It looks like it was a couple things, but the biggest was a DV mismatch between the 2da and the creature files.

 

Gabrielle, check your PMs at CoM.

 

Oh, and by the way, I tested it, and the PID now works, but the interjections won't because she hides in shadows and uses See("DV") as a trigger. InMyArea("DV") might be better. :p

Link to comment

I wonder if this block of code is broken? It works fine when you talk to him, all of the dialogs for this shows up. But after talking to Salvanas and if I have my character go and talk to Miriam to issue commands the Salavanas dialog shows right back up again. Other interjections work fine.

 

APPEND SALVANAS
IF ~!InPartySlot(LastTalkedToBy,0)
Name("cmgmiriam",LastTalkedToBy)~
THEN BEGIN MiriamSalvanas
SAY ~Well, hello there, pale seductive one. I like my women exotic, seductive, and controlling.~
=
~Let me show you pleasure like you never experienced before.~
IF ~~ THEN DO ~SetGlobal("MiriamUselessGlobal","LOCALS",1)~ EXTERN CMGMIRIJ MiriamSalvanas1
END
END

APPEND CMGMIRIJ
IF ~Global("MiriamUselessGlobal","LOCALS",1)~ THEN BEGIN MiriamSalvanas1
SAY ~Pleasure you say? Tell us more. (Miriam moves closer to Salvanas.)~
IF ~~ THEN DO ~SetGlobal("MiriamUselessGlobal","LOCALS",1)~
EXTERN SALVANAS MiriamSalvanas2
END
END

APPEND SALVANAS
IF ~~ THEN BEGIN MiriamSalvanas2
SAY ~Oh I would please you the whole night and you would come back for seconds in the morning.~
IF ~~ THEN DO ~SetGlobal("MiriamUselessGlobal","LOCALS",1)~ EXTERN CMGMIRIJ MiriamSalvanas3
END
END

APPEND CMGMIRIJ
IF ~~ THEN BEGIN MiriamSalvanas3
SAY ~Do you know what we are?~
IF ~~ THEN DO ~SetGlobal("MiriamUselessGlobal","LOCALS",1)~
EXTERN SALVANAS MiriamSalvanas4
END
END

APPEND SALVANAS
IF ~~ THEN BEGIN MiriamSalvanas4
SAY ~A beautiful pale lady who avoids the sun?~
IF ~~ THEN DO ~SetGlobal("MiriamUselessGlobal","LOCALS",1)~
EXTERN CMGMIRIJ MiriamSalvanas5
END
END

APPEND CMGMIRIJ
IF ~~ THEN BEGIN MiriamSalvanas5
SAY ~Partly. You should know, we like to bite when we get intimate.~
IF ~~ THEN DO ~SetGlobal("MiriamUselessGlobal","LOCALS",1)~
EXTERN SALVANAS MiriamSalvanas6
END
END

APPEND SALVANAS
IF ~~ THEN BEGIN MiriamSalvanas6
SAY ~A little bit of biting never hurts in the act of love making.~
IF ~~ THEN DO ~SetGlobal("MiriamUselessGlobal","LOCALS",1)~
EXTERN CMGMIRIJ MiriamSalvanas7
END
END

APPEND CMGMIRIJ
IF ~~ THEN BEGIN MiriamSalvanas7
SAY ~(Miriam shows him her teeth.) Are you sure about that? We like blood and we have found from experience that the neck is not the only source to get blood from.~
IF ~~ THEN DO ~SetGlobal("MiriamUselessGlobal","LOCALS",1)~
EXTERN SALVANAS MiriamSalvanas8
END
END

APPEND SALVANAS
IF ~~ THEN BEGIN MiriamSalvanas8
SAY ~(Salvanas looks into his ale mug.) Oh my! Would you look at that! It's time for a refill.~
IF ~~ THEN DO ~SetGlobal("MiriamUselessGlobal","LOCALS",1)~
EXTERN CMGMIRIJ MiriamSalvanas9
END
END

APPEND CMGMIRIJ
IF ~~ THEN BEGIN MiriamSalvanas9
SAY ~(Miriam stand behind him, runs her hand down his chest than stops at his midsection, he trembles in fear. She licks his neck and works her way up to his ear.) *In a low voice.* Coward. (Miriam walks away.)~
IF ~~ THEN EXIT
END
END

Link to comment

Whoa, isn't it better if you used a CHAIN?

 

And I think variables don't set until the end of dialogue, unless the dialogue is non-pausing. Your first transition from Salvanas to Miriam might not work, thus.

 

What's the reason for having SetGlobal("MiriamUselessGlobal","LOCALS",1) after every state?

 

Oh, and you should probably put in Global("MiriamUselessGlobal","LOCALS",0) as a trigger right at the top, else he probably will say the same thing again based upon your state weights.

Link to comment

Ascension64 beat me to most of it while, but I'll post my thoughts anyways. :p

 

APPEND SALVANAS
IF ~!InPartySlot(LastTalkedToBy,0)
Name("cmgmiriam",LastTalkedToBy)~

Add a variable = 0 condition here so the talk doesn't fire multiple times when talking to Salvanas.

 

 THEN BEGIN MiriamSalvanas
SAY ~Well, hello there, pale seductive one. I like my women exotic, seductive, and controlling.~
=
~Let me show you pleasure like you never experienced before.~
IF ~~ THEN DO ~SetGlobal("MiriamUselessGlobal","LOCALS",1)~ EXTERN CMGMIRIJ MiriamSalvanas1
END
END

Rename the UselessGlobal to be the non-repeating variable here.

 

APPEND CMGMIRIJ
IF ~Global("MiriamUselessGlobal","LOCALS",1)~ THEN BEGIN MiriamSalvanas1

Remove the global check to prevent the talk firing in other situations.

 

SAY ~Pleasure you say? Tell us more. (Miriam moves closer to Salvanas.)~
IF ~~ THEN DO ~SetGlobal("MiriamUselessGlobal","LOCALS",1)~

I don't think you need to set any variables in this line. Aside from this, the rest of the states look good.

Link to comment

As the others already said:

 

Put a "0" condition here:

 

APPEND SALVANAS

IF ~!InPartySlot(LastTalkedToBy,0)

Name("cmgmiriam",LastTalkedToBy)

Global("MiriamUselessGlobal","LOCALS",0)~

THEN BEGIN MiriamSalvanas

SAY ~Well, hello there, pale seductive one. I like my women exotic, seductive, and controlling.~

=

~Let me show you pleasure like you never experienced before.~

IF ~~ THEN DO ~SetGlobal("MiriamUselessGlobal","LOCALS",1)~ EXTERN CMGMIRIJ MiriamSalvanas1

END

 

and take out all the other DO ~SetGlobal("MiriamUselessGlobal","LOCALS",1)~ (the way it is now, the global gets set nine times. Further, as Mike1072 said, the "responses" would be triggered the next time the engine is looking for a valid dialogue block, as the variale is still at "1").

 

I would recommend putting a check for Miriam's state, too (!StateCheck("cmgmiriam",CD_STATENOTVALID), with tp2-tweaking for the custom state).

 

The CHAIN Ascension64 is talking about would indeed be easier (and is made for cases like this). It would be:

 

CHAIN

IF ~!InPartySlot(LastTalkedToBy,0)

Name("cmgmiriam",LastTalkedToBy)

!StateCheck("cmgmiriam",CD_STATENOTVALID)

Global("MiriamUselessGlobal","LOCALS",0)~

THEN BEGIN SALVANAS MiriamSalvanas

~Well, hello there, pale seductive one. I like my women exotic, seductive, and controlling.~

=

~Let me show you pleasure like you never experienced before.~

DO ~SetGlobal("MiriamUselessGlobal","LOCALS",1)~ EXTERN CMGMIRIJ

== CMGMIRIJ ~Pleasure you say? Tell us more. (Miriam moves closer to Salvanas.)~

== SALVANAS ~Oh I would please you the whole night and you would come back for seconds in the morning.~

== CMGMIRIJ ~Do you know what we are?~

== SALVANAS ~A beautiful pale lady who avoids the sun?~

== CMGMIRIJ ~Partly. You should know, we like to bite when we get intimate.~

== SALVANAS ~A little bit of biting never hurts in the act of love making.~

== CMGMIRIJ ~(Miriam shows him her teeth.) Are you sure about that? We like blood and we have found from experience that the neck is not the only source to get blood from.~

== SALVANAS ~(Salvanas looks into his ale mug.) Oh my! Would you look at that! It's time for a refill.~

== CMGMIRIJ ~(Miriam stand behind him, runs her hand down his chest than stops at his midsection, he trembles in fear. She licks his neck and works her way up to his ear.) *In a low voice.* Coward. (Miriam walks away.)~

EXIT

 

EDIT: corrections..

Link to comment

Shouldn't it be this? I think there's too many ENDs, and if it's CHAIN, you don't need to APPEND it. But if the state above it is not CHAIN, too, you need to END the APPEND above it in the D, and if the states that follow aren't CHAIN, you need to APPEND them.

 

CHAIN

IF ~!InPartySlot(LastTalkedToBy,0)

Name("cmgmiriam",LastTalkedToBy)

!StateCheck("cmgmiriam",CD_STATE_NOTVALID)

Global("MiriamUselessGlobal","LOCALS",0)~

THEN SALVANAS MiriamSalvanas

~Well, hello there, pale seductive one. I like my women exotic, seductive, and controlling.~

=

~Let me show you pleasure like you never experienced before.~

DO ~SetGlobal("MiriamUselessGlobal","LOCALS",1)~ EXTERN CMGMIRIJ

== CMGMIRIJ ~Pleasure you say? Tell us more. (Miriam moves closer to Salvanas.)~

== SALVANAS ~Oh I would please you the whole night and you would come back for seconds in the morning.~

== CMGMIRIJ ~Do you know what we are?~

== SALVANAS ~A beautiful pale lady who avoids the sun?~

== CMGMIRIJ ~Partly. You should know, we like to bite when we get intimate.~

== SALVANAS ~A little bit of biting never hurts in the act of love making.~

== CMGMIRIJ ~(Miriam shows him her teeth.) Are you sure about that? We like blood and we have found from experience that the neck is not the only source to get blood from.~

== SALVANAS ~(Salvanas looks into his ale mug.) Oh my! Would you look at that! It's time for a refill.~

== CMGMIRIJ ~(Miriam stand behind him, runs her hand down his chest than stops at his midsection, he trembles in fear. She licks his neck and works her way up to his ear.) *In a low voice.* Coward. (Miriam walks away.)~

EXIT

Link to comment

Archived

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

×
×
  • Create New...