• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

NPC dialog updates

Status
Not open for further replies.
Level 15
Joined
Aug 7, 2013
Messages
1,337
Hi,

In many (sandbox) games, like Skyrim or Fallout 3, when a player either accomplishes an objective or completes a quest, the dialogue options with NPCs changes accordingly to reflect this new game/player state.

What is the best way to emulate this in warcraft 3? Basically all my NPCs are wrappers around an array of dialogs and a 2-d array of their corresponding buttons.

I am guessing after each objective completed I need to update the dialogs of all the relevant NPCs. But how do I do this in such a way that it isn't hardcoded, e.g. I have to put every individual detail for each of the NPC's reactions/new dialog options?

Since I'm asking for a miracle, I don't suppose there's a library for generating language (as in natural language generation, with a full semantics) and also a library for reactions/changes in the state of a character (e.g. NPC B updates itself when it "learns" that player accomplished goal X, and now has suitable dialog)>
 
Hi,

In many (sandbox) games, like Skyrim or Fallout 3, when a player either accomplishes an objective or completes a quest, the dialogue options with NPCs changes accordingly to reflect this new game/player state.

What is the best way to emulate this in warcraft 3? Basically all my NPCs are wrappers around an array of dialogs and a 2-d array of their corresponding buttons.

I am guessing after each objective completed I need to update the dialogs of all the relevant NPCs. But how do I do this in such a way that it isn't hardcoded, e.g. I have to put every individual detail for each of the NPC's reactions/new dialog options?

Since I'm asking for a miracle, I don't suppose there's a library for generating language (as in natural language generation, with a full semantics) and also a library for reactions/changes in the state of a character (e.g. NPC B updates itself when it "learns" that player accomplished goal X, and now has suitable dialog)>

For me, I add all the lines that the NPC will say on initialization. Each line has an index. So if I do something like "SetUnitSpeech(5)", the npc will say the 5th line when interacted with. After a quest is finished, I just update the NPCs indexes so they'll say different lines.

Basically, create the dialogs in advance. Design your system so that you can easily switch the dialogs. When the quest finishes, just swap the NPC's old dialogs with the new dialogs (you'll have to know which ones to swap specifically), and then the system should display those instead of the old ones.

I don't think there is a way to do it without putting every individual detail. It is actually a lot of work. And no, no such miraculous system exists.
 
Level 15
Joined
Aug 7, 2013
Messages
1,337
I was afraid that was the answer.

Well I know in the future this will be done automatically, question is just how many years off...
 
Status
Not open for further replies.
Top