Dialog System

From Legends of Aria Admin and Modding Wiki
Revision as of 19:23, 26 May 2021 by Gizmo (talk | contribs) (Introduction)
Jump to: navigation, search

Introduction

The dialog system for Legnds of Aria comes in various shapes. We have dialogs for npc conversations, progress bars and all things in between. In this section you will learn the structure and basics to creating your very own npc conversations for your players to enjoy. The general npc dialog system is a series of function calls where inside each of these functions is the information for the given dialog screen currently showing. Every page of the npc conversation has a npc dialog text area, and the player response area. The magic of the npc dialog system starts off with the NPCInteractionLongButton function lets look at the parts below.

<syntaxhighlighting lang="Lua"> </syntaxhighlighting > The Dialog system is easy to use once you get use to how it is structured. You can find all the basic functions to override within the base_ai_npc.lua file. When you open this file you will notice the Dialog variable. This table holds all the dialog related functions. Lets discuss the life time of the dialog window shall we. When the player interacts with the npc, an event messaged named "base_ai_conversation" fires up the HandleInteract function. At the botton of this function for basic dialog interact Dialog.OpenGreetingDialog(user) is called. This opens up the dialog.

Basic Mobile Dialog

Here is an example of a simple Greetings Dialog override.

function Dialog.OpenGreetingDialog(user)
    -- this is the npcs dialog text for this conversation 
    text = "Hello Stranger, What brings you to my part of town?"
    
    -- a table containing player response information
    response = {}
    response[1] = {}
    response[1].text = "Do you know the muffin Man?"
    response[1].handle = "MuffinMan"

    -- this displays the dialog information to the user
    NPCInteractionLongButton(text,this,user,"Responses",response)
end

Now we need to create the next part of the dailog which is another function. These functions for each new dialog are in the following format. Lets see what it looks like and then we will make the function for when the player clicks the MuffinMan response.

Here is the function Format for dialog responses below

function Dialog.Open[RESPONSE_HANDLE]Dialog(user) 

Here is an example function for the MuffinMan response.

function OpenMuffinManDialog(user)
    -- this is the npcs dialog text for this conversation 
    text = "Oh the muffin man, he is a strange person I tell ya, but thats all I know"
    
    -- a table containing player response information
    response = {}
    response[1] = {}
    response[1].text = "Very Interesting?"
    response[1].handle = "Greetings"

    -- this displays the dialog information to the user
    NPCInteractionLongButton(text,this,user,"Responses",response) 
end

This open muffinman dialog function will send the player back to the "Greetings" dialog. The response[?].handle is the name of the dialog, so in this second function we are sending the player back to the greeting.