GameMaker (2.0 - 2.2.x)
Icon

Smart Dialog Tree

Matt Dooler

You must be logged in to obtain assets

Description

WINDOWS ONLY DLL

All in one extension created with pure C++ for maximum speeds with optional object and room!

Create and control huge branching dialog tree's with randomised replies, selection conditions, node modifiers and extra data all from a single object!

Load dialog trees from external or included files with next to no overhead then navigate the tree using simple functions at lightning speeds.

Functions

conversation_initialise()       - Use to set up the dialog tree system (AUTOMATIC)

conversation_clean_up()         - Use to destroy the dialog tree system (AUTOMATIC)

conversation_register(file_path)    - Use to register a dialog file before loading

conversation_load(conversation_id)  - Use to load and use a registered dialog tree

conversation_talking()          - Use to see if the dialog tree system is talking

conversation_selections()       - Use to see how many options are in the current tree node

conversation_select(node_index)     - Use to select a node to move to in the current tree node

conversation_back()         - Use to go back to the last node in the dialog tree

conversation_reset()            - Use to reset the dialog tree back to its base node

conversation_close()            - Use to close and destroy the current dialog tree

conversation_get_mood()         - Use to get the current mood value attached to the dialog tree

conversation_set_mood(value)        - Use to set the current mood value attached to the dialog tree

conversation_get_trust()        - Use to get the current trust value attached to the dialog tree

conversation_set_trust(value)       - Use to set the current trust value attached to the dialog tree

conversation_get_friendship()       - Use to get the current friendship value attached to the dialog tree

conversation_set_friendship(value)  - Use to set the current friendship value attached to the dialog tree

conversation_text(node_index)       - Use to get a specified selections text

conversation_reply()            - Use to get the current nodes replied text

conversation_extra()            - Use to get the current nodes extra text

File Format

Selections with conditions only appear once the condition has been met. 

Nodes with modifiers apply each time the node has been entered but not while returning back.

Selection Conditions

? ANY VALUE

= EQUAL VALUE

> MORE THAN VALUE

< LESS THAN VALUE

Selections

TAG | [ OPTIONAL: MOOD CONDITION | TRUST CONDITION | FRIENDSHIP CONDITION | ] TEXT | NODE INDEX

S | Hello World! | 0

S | ? | > 10 | > 10 | Hello Bob! | 1

Node Modifiers

! NO CHANGE

+ ADD VALUE

- SUBTRACT VALUE

* MULTIPLY VALUE

/ DIVIDE VALUE

Node Text Modifiers

~ RANDOM BETWEEN

Nodes

TAG | [ OPTIONAL: MOOD MODIFIER | TRUST MODIFIER | FRIENDSHIP MODIFIER | ] TEXT [ OPTIONAL: | EXTRA DATA ]

N | Hey

N | ! | + 5 | + 5 | Hey!

N | ! | + 5 | + 5 | Hey! | START_QUEST just_a_test

N | ! | + 5 | + 5 | Hey! ~ Hello! ~ Hi! | START_QUEST just_a_test

File Example

S | Hello | 0

S | ? | ? | > 4 | Stupid!| 1

S | Goodbye | 


N | Oh hey there! :D ~ Hey! :D ~ Sup! :D | START_QUEST feel_bad

S | How are you? | 2


N | ! | ! | - 5 | Thats not nice :( ~ Dont be so mean :( ~ Shut up -_- ~ No you -_- | FINISH_QUEST be_mean

N | ! | ! | + 5 | Im good man! how about you? :) ~ Epic! what about you? :) ~ Awesome man! you? :) | START_QUEST be_mean

S | I feel awesome! | 3

S | I feel okay | 4

S | I feel rubbish | 6


N | Oh thats great! :D ~ Awesome! :D ~ Nice! :D ~ Good good :D

N | Are you sure? :/ ~ Sure? :/ ~ You sure? :/

S | Yes | 5

S | ? | ? | > 9 | No not really | 6


N | Alright then :) ~ Okay then :) ~ Thats good than :)


N | Oh im sorry! :( ~ Im sorry about that :( ~ Im sorry :( ~ Ah that sucks :( | FINISH_QUEST feel_bad

N | Cya! :D ~ Later! :) ~ Bye! :P | _CLOSE_

End User Licence Agreement (EULA).

Age Rating: 4+

Version

GMS2 - Version 1.0.0. Published July 4, 2018

Loading, please wait

Package contents

Loading, please wait

What is the issue?

Loading, please wait