Testing Started

I have run a spell checker on the mod and have started testing. I am able to move through the module ok (I've only testing 1/4). Most of it is working ok for a first pass. It's going to take a while, but I'm underway.

I appear to have two major problems.

1) My alternate speak trigger is not working. I posted code earlier that I was using instead of a speak trigger. I tested the wazoo out of it before doing much building and I couldn't break. Now it works most of the time, but I have found ways to break it. This code has to be rock solid or the module won't work. So... this is a big issue. I'll post on the forums for help and if anyone here has a suggestion let me know.

Maerduin replyed to my earlier post and said:
I'm still curious about the speaktrigger issue you mention because I've never encountered it. I have a speaktrigger in one of my forest areas, for instance, that triggers a conversation with a companion who is not present in the area until you arrive with her in your party. It has never given me any problems. Maybe a patch has fixed the issue?
Perhaps the issue has been fixed. Speak triggers used to cause major problems for myself and other builder, completely corrupting areas. If my script is not fixable, or if it's possible to use speak triggers without corrupting my module I will start replacing most of my 40-50 home grown triggers with speak triggers. YUCK! Time consuming but if it works I'll take it.

Thus far that is the biggest issue.

2) I have to make people stand on an object. I'll play with the walkmesh helper that's included in the toolset. Hopefully this is workable. In Keep on the Borderlands I got guys standing on the keep walls (which is a big placeable) without any fuss. I've been corresponding with a guy who has been fighting this, and I'll dig around for solutions. I'm pretty sure this is fixable, I just don't know how off the top of my head.

3) Items with inventory are not accessible. I have a few items with inventories that are not accessible. They are non-static, have inventory set to true. I'm not sure what's up. I'll have to tinker.

4) Other misc script failures. Lots of my home grown scripts work, some don't. Normal stuff.

With the exception of the home grown speak trigger I am pretty happy.

Comments

  1. Hi!
    I don't know what you mean by don't work but I would suggest changing the script like this:

    #include "ginc_companion"
    //void main(string sCompanionRosterName, string sConversation)
    void main ()
    {
    if (GetLocalInt(OBJECT_SELF, "Triggered") return; // Exit the script if triggered before

    string sCompanionRosterName= "co_navio";
    string sConversation = "test02";

    object oPC = GetEnteringObject();
    object oTalker = GetObjectByTag(sCompanionRosterName);
    //CHECK TO SEE PERSON WHO TRIGGERED IS PLAYER
    //AND TARGET IS A COMPANION IN THE PARTY
    if( GetIsPC(oPC) && IsInParty(sCompanionRosterName))
    {
    SetLocalInt(OBJECT_SELF, "Triggered", True); //Flag that the trigger has been used
    AssignCommand(oTalker, ActionStartConversation(oPC, sConversation, FALSE, FALSE, TRUE, FALSE ));
    }
    }

    I'm not sure if this will help you but my experience of using DestroyObject(OBJECT_SELF) is that it sometimes may destroy itself before the script is done wiht assigning commands. I should not happen but it sometime seem to do it anyway.

    By the way: I have not compiled my changes so I may have done some syntax error.

    ReplyDelete
  2. Posted o nthe forums too

    THe core of my speak trigger is

    #include "ginc_cutscene"

    MakeConversable(oPC)
    AssignCommand(oPC, ActionStartConversation...)

    DestroyObject(OBJECT_SELF) < - which can be delayed too


    I've successfully used the walkmesh helper to stand in/on placeables and seems fine

    ReplyDelete
  3. Yes, a MakeConversable(object) will reduce the risk of failure by some % too.

    ReplyDelete
  4. These are excellent suggestions. I think the point about the destroy object code makes sense. That's a good alteration.

    I was completely unaware of the MakeConversable(oPC) trigger.

    By not working, I mean my code fires most of the time. I can walk through as myself (the PC) or while possessing a companion, and it works most of the time, but not all of the time. If I have clicked on an unrelated NPC to start a conversation, or on an object to use it sometimes I can see a shudder when the conversation would have started, but the command was clearly overridden by some other action.

    These comments seem VERY helpful. I am anxious to give them a try.

    THANKS GUYS!

    ReplyDelete
  5. I got a recommendation at neverwinterconnections to try:

    ' You might try something like assigning the command ClearAllActions() to the PC after using SetCommandable to make the PC NOT commandable. This should solve having the player's mousing about cancel out your intended action. Be sure to SetCommandable the PC back to normal on a time delay (short) so they can interact with your conversation though. '

    I feel like I've multiple good tools to experiment with now. I feel very optimistic.

    ReplyDelete
  6. I got a great reply on the vault about a guy who wrote a wrapper function that calls the original speak trigger function. It looks safe, and I may look down that road to fix my problems.

    You can see the bioware thread here and the code here

    ReplyDelete
  7. That wrapper function for the original speak trigger works like a charm. That's what I'm going for, looks like a big cut and replace job, but it shouldn't be awful.

    THANKS TO ALL. The NWN/NWN2 community is fantastic.

    I love you guys.... * sniff *

    Seriously. THANK YOU.

    ReplyDelete

Post a Comment

Popular posts from this blog

Evil Stronghold

Hang it up?

5e Conversion Guide of S4 The Lost Caverns of Tsojcanth