A remake of the classic Wizardry video games

Copyright Eric Pietrocupo


E-Mail: ericp[AT]lariennalibrary.com


Wizardry Legacy

WL Adventures

Desiging Events

Filed in: AdvEditing.AEevent · Modified on : Sun, 19 Jan 14 - Visits 355

Before we start, here are important references pages you should check out.

Maze event System
Event Reference

Adding an event to the maze editor is very easy. You just use the "Mark Event" menu or use the "+=" key. It will display a list of all the events found in the database. You select the event and it will hook it up at the cursor location. The hardest part is to design those events.

First note that event are reusable. There will be some events that you will reuse all the time. For example, a stair up event will be use repeatively. In that case, I suggest you plan a numbering structure for certain events that will occurs regularly. You could place a number range for each floor or each area of the maze if you want.

The event ID idenfified with pk as a primary key. It will generate an automatic value if none is specified. But you could force a certain value if you want a certain structure. Remember that all ID must be unique and between 1 and 255. Events outside this range are simply not loaded.

Data Structure

As explained in the Maze event system page, there are 3 events per "event": A lock, a pass and a fail. The Pass and the fail are the same and they are referred as pass/fail event because each of those events can either be used for a pass or fail event. Each events will have a series of generic variables that are interpreted differently from an event to another. Use the event reference page to know the details. Here is the database structure:

Field NameType of VariableDescription
pkINTEGERPrimary Key: Unique identifier for the event, used by the maze tile
triggerINTEGERCondition for the event trigger (Walk, search, etc)
lock_eventINTEGERType of lock event triggered
lock_keyINTEGERKey item required to pass the lock
lock_varINTEGERAnother variable for the lock event
lock_msgTEXTMessage string to display to the user during the lock
lock_strTEXTAnother string variable used by the lock event (ex: riddle answer)
pass_eventINTEGERType of event to run if the lock is passed
pass_var1INTEGER1st event variable
pass_var2INTEGER2nd event variable
pass_var3INTEGER3rd event variable
pass_var4INTEGER4th event variable
pass_msgTEXTMessage string to display during the pass event
pass_strTEXTA text variable required by the pass event
fail_eventINTEGERType of event to run if the lock is failed
fail_var1INTEGER1st event variable
fail_var2INTEGER2nd event variable
fail_var3INTEGER3rd event variable
fail_var4INTEGER4th event variable
fail_msgTEXTMessage string to display during the fail event
fail_strTEXTA text variable required by the fail event
  • Trigger: Events does not always happens when players step into the tile. There are various triggers possible for the event to show up. Look at the event reference for the complete list. They are identified by a number.
  • Lock, Pass, Fail event: A number that identifies the type of event. Again refer to the event reference for the complete list.
  • Var and str: These are generic variables that can be used for various purposes by the event. For example, a teleport event will need the coordinates for the destination. They will be stored in those variables.
  • Message: Most events offers the option to display a message. Some times it is mandatory, some times it is optional. When optional, if there is no message in the database, none will be displayed. To make multi line messages, use the "^" character to change line. Make sure that your message fits on the screen. You are allowed to 3 lines. If you need longer message, you'll have to use a story text event.
  • Lock Key: Most lock events can use a key to help pass or fail the event. The value must match the KeyID variable of the item, NOT THE ITEM PK. It also means that multiple items which share the same KeyID will be able to open the same lock.

Conclusion

So in the end, design you list of event when you have drawn your maze layout. Insert them in the database with an sqlite database editor. Finally, use the Wizardry Editor to hook up the events in the maze. It's not more complicated than that.

<< Workflows | Table of contents | Event Reference >>

Powered by PmWiki and the Green skin