steelplate Posted January 18, 2011 Share Posted January 18, 2011 Hi guys, Been a while since I've asked a question on here but I have a query I'm hoping some or at least one of you out there could help me solve. It concerns a Dialogue package for this NPC I've created. I've tried absolutely everything to get it to trigger when the player is within a certain range but nothing works. They just keep going back to the default lines said by all default actors (standard greet and goodbye). I have GREETING in my Quest Dialogue and this ain't my first rodeo, I'm basically just trying to make the exact same thing happen that I did in a previous mod in FO3 that worked. I've triple checked my script and conditions against those of other NPC's that initiate conversation upon either entering triggers (won't work), getDistance (doesn't work) or just plain checkes the getQuestVariable (again, nothing). I'm at a total loss so I'm hoping someone can inform me as to something I either missed or don't know about with New Vegas yet (Obsidon have a lot to answer for with this complete garbage dump of a naming convention system too). Anyways here's the skinny: TRIGGER BOX SCN NPCCaveTriggerSCRIPT BEGIN OnTriggerEnter NPCCaveTriggerREF if IsActionRef Player == 1 set NPCQuest.PlayerInTrigger to 1 NPCREF.AddScriptPackage NPCSpeakToPlayerPackage endif END All it's doing is checking if the player is in the trigger box and then telling the NPC to get off his ass and come talk to them but the sonsabutch just won't freaking do it! You can assume that I have the right setup in the Quest Script. Though quickly, if I'm running a Quest Variable, do I want to prefix the entries (such as "PlayerInTrigger") with "short" or something else? At the moment all my tests revolve around running a fresh save with no other mods as if the game was good for the first time. All conditions are perfect (just me, the only condition for the NPCSpeakToPlayerPackage dialogue Topic being called is that it's said by the NPC). It doesn't make sense when it works for all forms of NPC's but not this one. Is there a vital element I'm forgetting? I'm thinking it might have something to do with the HELLO and GOODBYE dialogues in the Conversation tab not being set but I don't know. It's 2am, any help any one could offer would be greatly appreciated and thanked. Anybody got a clue? Link to comment Share on other sites More sharing options...
Quetzlsacatanango Posted January 18, 2011 Share Posted January 18, 2011 (edited) Instead of add scriptpackage, just use 'startconversation player dialogtopic' Also, your begin block looks wrong. You probably want it to say Begin OnTriggerEnter PlayerThis will also let you lose the if IsActionRef Player = 1 line. so your script would just look like: SCN NPCCaveTriggerSCRIPT short doonce BEGIN OnTriggerEnter Player ; this is so it will only trigger for the player, no other NPCs NPCref.Startconversation player, dialogtopicname set doonce to 1 ; so it doesnt' happen every time you trigger, only the first time END Edited January 18, 2011 by Quetzlsacatanango Link to comment Share on other sites More sharing options...
steelplate Posted January 18, 2011 Author Share Posted January 18, 2011 (edited) Thanks once again for the brilliance Quetz, makes perfect sense and forgoes the whole extra need for dialogue packages and the like too. Only issue seems to be that the NPC, whilst now initialising the converstation, isn't initialising it with the right Topic, just a generic one. Will investigate further into various conditions and the like. UPDATE: It would appear that the dialogue option is defaulting to the standard round of Conversation greetings. Looking into this, according to GECK wiki this is a default reaction to when the NPC is in combat with the player. Is it possible for two actors to be combat with one another without the other knowing it? Possibly because the NPC is wearing an outfit that the Player has a problem with? UPDATE 2: Damn, testing with the faction outfit off doesn't make the NPC want to say the right thing either. I've removed the default voice typing and given them their own voice type that I will have to fill out (not a big deal), but in the meantime I just can not figure out why the character won't say it's dialogue Topic. All it wants to do is have it's normal conversation, but when I removed that option, now it enters the conversation and immediately leaves it with nothing to say (which I kind of half expected). The only condition on the Topic being loaded is that it's the NPC who can say it. Makes no sense :wallbash: Edited January 18, 2011 by steelplate Link to comment Share on other sites More sharing options...
Quetzlsacatanango Posted January 18, 2011 Share Posted January 18, 2011 Consult this: http://geck.bethsoft.com/index.php/StartConversation Link to comment Share on other sites More sharing options...
steelplate Posted January 18, 2011 Author Share Posted January 18, 2011 Consult this: http://geck.bethsoft.com/index.php/StartConversation Yeah did that and have followed it to the letter. Conversation still won't start properly. I'm assuming in this case, that it must have something to do with the Topic itself. Since it's only condition is that it is the NPC who is saying it (and it is), this can't be the case. On that link provided it states this as a footnote, "If called on an NPC who is in combat with the player, won't start conversation with the chosen topic but with the GREETINGS topic." Which lead me to my fears that the player and NPC were in combat and didn't know it (dumb, but not entirely impossible). After experimentation with all possible environmental sources, nothing changed. The NPC simply does not want to say the Topic. Is it possible that the quest the dialogue is located in is completely wrong? I have created a brand new quest, but I have also jammed in ALL dialouge for the NPC in the same. A script attached to the Quest specifies some parameters regarding when to trigger quest stages but I highly doubt they're causing conflicts. Still, code provided here: SCN NPCQuestSCRIPT short PlayerKnowsName short PlayerKnowsRealName short PlayerGetsTheJist short PlayerHasBeenGreeted short PlayerFoundNPC2 BEGIN GameMode if getStage NPCQuest < 60 if player.GetItemCount NPCMask == 1 if player.GetItemCount NPCArmor == 1 if player.GetItemCount WeapNPCShotgun == 1 setStage NPCQuest 60 endif endif endif endif END BEGIN GameMode if getStage NPCQuest < 50 if player.GetHasNote NPC2DeathNote setStage NPCQuest 50 AddTopic NPCNOTETALK set NPCQuest.PlayerKnowsRealName to 1 endif endif END A dialouge option with the GREETING1stTime Topic (the topic that isn't being said as it should by the NPC), has a result script that reads, "setStage NPCQuest 10" which kicks off the Quest but we just can't seem to get to that stage. I'm 95% positive that if we can just get past this hurdle it will all flow without incident but who knows considering this latest problem. Link to comment Share on other sites More sharing options...
llamaRCA Posted January 19, 2011 Share Posted January 19, 2011 Nevermind Link to comment Share on other sites More sharing options...
Skipper2100 Posted October 30, 2013 Share Posted October 30, 2013 How do you make a script that makes any NPC in the game that meets a certain condition start a conversation? I have a token that's given to NPCs and a dialogue, but I can only make the options show up on top of a NPCs already existing dialogue. How can I make it so that if the NPC has this token, it will start the dialogue in the quest instead of the NPCs default dialogue? Link to comment Share on other sites More sharing options...
Recommended Posts