Jump to content


Photo

Non-Joined NPC Dialogue


  • Please log in to reply
28 replies to this topic

#21 berelinde

berelinde

    Troublemaker

  • Modder
  • 4916 posts

Posted 23 August 2010 - 01:16 PM

Would you post your entire tp2 in spoiler tags? I think there's something wrong with the way you're assigning files to Eilthyra. And while I'm at it, I can look at your 2da appending for Aiden.

Oh, and please post the spawn script where you spawn Eilthyra. You could try dropping the Global("EilthyraExists","GLOBAL",1) from her script.

"Imagination is given to man to console him for what he is not; a sense of humor, for what he is." - Oscar Wilde

berelinde's mods
TolkienAcrossTheWater website
TolkienAcrossTheWater Forum


#22 ottomadenedamotto

ottomadenedamotto
  • Member
  • 30 posts

Posted 23 August 2010 - 01:27 PM

Okay, here's Aiden-Setup.tp2
Spoiler


And here's Q!AR0406
Spoiler

Edited by ottomadenedamotto, 23 August 2010 - 01:29 PM.


#23 berelinde

berelinde

    Troublemaker

  • Modder
  • 4916 posts

Posted 23 August 2010 - 02:01 PM

Ah, yes, I see the problem. You are setting the EilthyraExists as a local area variable but attempting to call it as a global. That's what's fouling up your scripts.

Just delete

Global("EilthyraExists","GLOBAL",1)

from q!eilthy.baf. You don't need it.

"Imagination is given to man to console him for what he is not; a sense of humor, for what he is." - Oscar Wilde

berelinde's mods
TolkienAcrossTheWater website
TolkienAcrossTheWater Forum


#24 ottomadenedamotto

ottomadenedamotto
  • Member
  • 30 posts

Posted 23 August 2010 - 03:04 PM

It worked. Hooray!

And now on to the next problem...

The dialogue fires on sight of Player1: Awesome. Eilthyra wanders off when it's over and disappears: Yes. But then Aiden just stands around like a bump on a log. I want her to walk over and say hi.

Here's my best guess:
IF
    See(Player1)
    NumTimesTalkedTo(0)
    CombatCounter(0)
    !See([ENEMY]) 
THEN 
    RESPONSE #100
             MoveToObject(Player1)
             StartDialogueNoSet(Player1)
END

But that's not doing a thing.

For reference, here's the dialogue. I haven't bothered yet to make it my own, so it's pretty much a straight rip from the tutorial.
Spoiler


Come on, Aiden. Get over there and say something...

Edited by ottomadenedamotto, 23 August 2010 - 03:05 PM.


#25 berelinde

berelinde

    Troublemaker

  • Modder
  • 4916 posts

Posted 23 August 2010 - 03:23 PM

So, this is happening in the Copper Coronet? You were actually able to find two square feet of floor space that wasn't already occupied by another NPC? :P

Anyway, this problem is twofold. The first issue is that NumTimesTalkedTo() is a local variable stored on the CRE and that Aiden has already talked to Player1 during the dialogue with Eilthyra. Yes, I know, he was talking to Eilthyra, but never mind.

The second problem is that in-party NPCs run their scripts 15 times per second, but out-of-party NPCs run their scripts about once every six seconds. Creates issues.

To avoid both problems, put this block in AR0406.bcs. So your spawn block becomes

IF 
    Global("AidenExists","AR0406",0) 
THEN 
    RESPONSE #100 
        SetGlobal("AidenExists","AR0406",1) 
        CreateCreature("Q!adn",[688.1085],2) 
END 

IF 
    Global("ElthyriaExists","AR0406",0) 
THEN 
    RESPONSE #100 
        SetGlobal("ElthyriaExists","AR0406",1) 
        CreateCreature("Q!eilthy",[659.1104],10) 
END 

IF 
    Global("AidenTalkedToEilthyra","GLOBAL",2) // you set this in the dialogue between A. and E.
THEN 
    RESPONSE #100 
        SetGlobal("AidenTalkedToEilthyra","GLOBAL",3) 
        ActionOverride("q!aiden",StartDialogueNoSet(Player1)) 
END

You will need to change the first state of your dialogue like this to account for the change you made in the area script:

IF ~Global("AidenTalkedToEilthyra","GLOBAL",3)~ THEN BEGIN ExampleJoin 
SAY ~Well met! I'm Lynneth, a traveling adventuress. If you are more hero than villain, I will join your cause.~ 
IF ~~ THEN REPLY ~Welcome aboard!~ DO ~SetGlobal("AidenTalkedToEilthyra","GLOBAL",4)~ GOTO AidenJoin 
IF ~~ THEN REPLY ~Forget it!~ DO ~SetGlobal("AidenTalkedToEilthyra","GLOBAL",4)~ GOTO AidenReject 
IF ~~ THEN REPLY ~How about later?~ DO ~SetGlobal("AidenTalkedToEilthyra","GLOBAL",4)~ GOTO AidenLater 
END

"Imagination is given to man to console him for what he is not; a sense of humor, for what he is." - Oscar Wilde

berelinde's mods
TolkienAcrossTheWater website
TolkienAcrossTheWater Forum


#26 ottomadenedamotto

ottomadenedamotto
  • Member
  • 30 posts

Posted 23 August 2010 - 06:16 PM

Hmm... no good. Aiden's too busy to talk to Player1 now. I tried the above and a few other things, but as long as that code's in the area script, Aiden's closed for business.

#27 berelinde

berelinde

    Troublemaker

  • Modder
  • 4916 posts

Posted 23 August 2010 - 07:21 PM

Hmm. Too busy for dialogue, you say? You are testing on a patched installation, yes? I understand that you prefer not to post mod-specific dialogue, but at this point, it would help me diagnose your problem if I had the mod in front of me. Can you either upload it somewhere or email it to me at my screen name at gmail dot com? I'd be happy to help you sort it out.

"Imagination is given to man to console him for what he is not; a sense of humor, for what he is." - Oscar Wilde

berelinde's mods
TolkienAcrossTheWater website
TolkienAcrossTheWater Forum


#28 ottomadenedamotto

ottomadenedamotto
  • Member
  • 30 posts

Posted 23 August 2010 - 08:06 PM

Hmm. Too busy for dialogue, you say? You are testing on a patched installation, yes? I understand that you prefer not to post mod-specific dialogue, but at this point, it would help me diagnose your problem if I had the mod in front of me. Can you either upload it somewhere or email it to me at my screen name at gmail dot com? I'd be happy to help you sort it out.


Okay, I sent it to your Gmail account.

Edited by ottomadenedamotto, 23 August 2010 - 08:09 PM.


#29 berelinde

berelinde

    Troublemaker

  • Modder
  • 4916 posts

Posted 23 August 2010 - 08:47 PM

I received the file and will review the contents in the morning when my mind is fresh. Hopefully, we'll get a chance to discuss it tomorrow evening. I'm sure we'll be able to get it sorted. 8)

"Imagination is given to man to console him for what he is not; a sense of humor, for what he is." - Oscar Wilde

berelinde's mods
TolkienAcrossTheWater website
TolkienAcrossTheWater Forum