joptimus Posted January 19, 2010 Share Posted January 19, 2010 I have three NPCs in a room, and I want them to all have a conversation together while sitting in chairs. I know I would have to script this, and not use the "Conversation" feature. I'm just not quite sure how to make them do this while all sitting. Any help would be greatly appreciated. Thanks! Link to comment Share on other sites More sharing options...
BadPenney Posted January 19, 2010 Share Posted January 19, 2010 Yes, you would have to use the Conversation feature. Here is a tutorial for a 3-way NPC conversation: http://geck.bethsoft.com/index.php/Three_W...sation_Tutorial You can make them talk while seated by giving them AI packages that tell them to sit down before they start chatting. I used similar methods to make NPCs chat in my FO3 mod (shameless plug). My 3-ways didn't involve sitting, only two-way conversations. Should work the same though. Link to comment Share on other sites More sharing options...
joptimus Posted January 19, 2010 Author Share Posted January 19, 2010 Yes, you would have to use the Conversation feature. Here is a tutorial for a 3-way NPC conversation: http://geck.bethsoft.com/index.php/Three_W...sation_Tutorial You can make them talk while seated by giving them AI packages that tell them to sit down before they start chatting. I used similar methods to make NPCs chat in my FO3 mod (shameless plug). My 3-ways didn't involve sitting, only two-way conversations. Should work the same though. quick question...how do i set up the packages to have them sit before they talk? Link to comment Share on other sites More sharing options...
pkleiss Posted January 19, 2010 Share Posted January 19, 2010 Use a Travel package with the destiantion being a persistent chair/stool and a radius of zero. Also, ensure that the travel package does not end once the NPC sits. yo can do this by pacing a condition on the package that checks a variable that you set from within the script that controls the conversation. You could use other things too, like quest stages or what ever, I just prefer using script variables. Example: Scn MyConvoScript Short Task Begin <Whatever> Set Task to 1 NPCRef.evpEnd Then the condition in your travel package will check the script variable "TASK" in script "MyConvoScript" and see if it == 1. If it does, the package will fire and stay on until task != 1. Link to comment Share on other sites More sharing options...
BadPenney Posted January 19, 2010 Share Posted January 19, 2010 quick question...how do i set up the packages to have them sit before they talk?In the case of the man at the bar, I made the stool a persistent reference with him as the owner so that no other NPCs would sit there. I gave him a travel package to got to the bar at 9am, but then gave him a UseItem package with the stool as the target and checked the "sit" box and told him to stay put for 10 hours, like a true barfly. The conversations between him and the bartender were placed in a quest and set to trigger during certain time periods of the day if and when the player enters the bar. Every three hours there is a different conversation, to give a little variety. Another NPC comes in at 5pm till 11pm to chat up the other bartender in a similar way. Link to comment Share on other sites More sharing options...
joptimus Posted January 19, 2010 Author Share Posted January 19, 2010 I'm sorry about this, but I'm fairly new to scripting. I used that tutorial and followed it almost exactly...I just don't know how to get them to start talking to each other. Everything looks right, but they won't start the conversation. In addition, I'm still not sure how to get them to sit in the chairs properly. I tried using a UseItem package, but when I do, 2 extra references of the NPCs appear in the room [?!] any advice? Link to comment Share on other sites More sharing options...
BadPenney Posted January 19, 2010 Share Posted January 19, 2010 I had to extract voices from the vanilla voice-bsa files in order to paste them into new data/sound/voice folders in order to reference them for new dialogue. I don't know of any way to select dialogue of conversation lines from vanilla resources other than that, so if that is what you are attempting then you will probably have no luck. When you create new dialogue or conversations, the GECK assigns a new filename for them. You must rename your stored files to match the assigned filename. You must also store the new voicefiles in folders that match the name of the NPCs voicetype exactly. As far as multiple NPCs showing up, I can't say for certain what is happening. Have you created new NPCs? If you are copying existing NPCs and making new ones with them, have you deleted their existing AI Packages? No type of AI Package should create multiple incidents of NPCs on its own. Link to comment Share on other sites More sharing options...
joptimus Posted January 19, 2010 Author Share Posted January 19, 2010 I've done the renaming. I know how to do that quite well (I never have any problems when having 2 NPCs talk to each other using the CONVERSATION feature). My problem is getting the characters to START the conversation while using that scripting method used in the tutorial you linked me to. Everything looks correct, as I followed their format perfectly, but they just stare at each other blindly and never talk. Is there something I have to put in the Quest to trigger it to start? As for the NPCs, I made new ones, put references of them in the room, and gave them AI Packages to Travel to the chair. However, when I open Fallout and COC into the room, there's 1 of them in the chair, then 2 of them (respectively) standing around in the room. This only happens when the Travel package is applied to them. Link to comment Share on other sites More sharing options...
BadPenney Posted January 20, 2010 Share Posted January 20, 2010 Yes, you will need some sort of trigger. You could create a quest script if you haven't already to associate with the quest. You could create a quest variable like "starttalking" then maybe add lines to the script so that if player.getdistance NPC1 <= 50 then set starttalking to 1. You could then add a condition for the first line of conversation that if starttalking == 1 then the NPC delivers the first line, add a result script to set starttalking to 2 so that he doesn't keep repeating the line, then the first line should be set so that it will lead to the second which leads to the third, and so on. I can't say that I followed that tutorial to the letter, but rather used it as a starting point. You will have to experiment to some degree. It is not really a simple process to do, especially the first time that you try. As for your multiple NPCs, all I can say is that it is 99% likely that it is operator error. Being willing and able to debug your own work is essential for success. A high tolerance for frustration helps too. Right now I am trying to understand why a bomb that I made with a timer and a placeatme mini-nuke explosion that is used to advance a quest will kill the player when detonated if he is too far from the target, but will not kill him if he stands too close when it is detonated within the target zone. It advances the quest alright, but the player should die if he is within the blast radius of a mini-nuke explosion, so it annoys me. I am sure that I have caused the situation, but don't yet know what I have done wrong. I've had enough for now, so I'm going to sleep on it. Helps preserve what little sanity I have left. Sometimes beating your head against the wall only gives you a headache. And sometimes leaving the problem for a day or so and then coming back to it with fresh eyes reveals that the explanation is embarrassingly obvious. Link to comment Share on other sites More sharing options...
BadPenney Posted January 20, 2010 Share Posted January 20, 2010 Well, I solved my bomb problem, so now back to your NPC multiplicity problem: Check to see if setting your travel AI package schedule to a certain time with zero duration prevents the extra clones from showing up. I looked at my man and saw that his travel package was set to 9am with 0 duration and the UseItem package was set to 9am with 12 hour duration. That way he is only told to go to the bar one time and he can sit down whenever he gets there. Setting travel duration to zero does not make him get there any faster. It still takes time for him to walk, but the travel package condition is only valid at exactly 9am. That makes it something like a DoOnce command, I think. Anyway, it seems that I only get one copy of Screamin' Jay Hawkins in my bar with that arrangement. Link to comment Share on other sites More sharing options...
Recommended Posts