User Tools

Site Tools


dcx:event_library

This is an old revision of the document!


Event Libraries

There is no special editor. The advanced editor is used to create these.

It is important when designing this to provide the final user (in the simple editor) the options to configure and customize these event libraries.

For example don't hardcode an event picture illustration for a message, but let the user specify one through a libvar or a table.

This can be done by adding stringlists (tables) to the library and libvars… these can be given documentation and datatypes and will enable to give the end-user the ease-of-use to tailer the library for his scenario.

It is very much recommended to always use the documentation buttons for libraries, libvars and stringlists (aka tables) so the end-user has some information on how to use them.

Rules when designing libraries

1. Never store data in regimeslots or gameslots. Always store data in libvars of your own library. This makes sure it can function independently and will not get data mixed up with other libraries not of your writing. Keep in mind you can create these libvars on the fly just by writing to them using the appropriate exec.

2. Only use the old 9 maparea slots for calculations within an event. Never store data in them, always use hexlibvars of your own library for that purpose.

3. Where possible do not hardcode core variables. Make them accesible as libvars or stringlists of your own library. The end user will appreciate it. As will you when you re-use your event library for a different scenario.

4. Never hardcode the action card categories… The designer using your libary needs to be able to determine the category of each card your library uses or generates. This means having a global libvar accesible in which the end user can specify the category number of your cards. (take a look at the basic event library to see this approach in action). This is because there are only limited categories and the person using the Simple Editor determines the category names and which cards goes in which category (because he might be using a lot of libraries).

5. Never hardcode eventpictures in the messages generated by your events. Allow the user of your library to set them through a libvar.

6. Make sure if you are looping through actioncards for example in your events and deleting stuff that you only delete stuff from your library and not from others. Remember: the end user might be using your library in conjunction with other libraries.

Upon loading in simple editor

Only the event, cards and event pictures info will be read from these libraries

How to script events?

This is something I have not documented yet. As it would be a huge topic. There are over 400 execs and checks and understanding their use requires to understand almost all data types in the engine.

If there is a lot of interest in the Community Project I might start on this though.

Tutorial to create a very simple event library

Lets say we would like to have functionality that simulate some command & control problems for one or both of the sides in a scenario. How would we design an event library that would be capable to provide that functionality?

Before we start lets list what we'll need to do:

* A regime libvar that switches this functionality on/off: CommandProblemsEnabled = yes/no

* A regime libvar that specifies the % a HQ suffers C&C problems: CommandProblemsChance = numeric (0-100)

* A regime libvar that specifies the basic AP its units will lose: CommandProblemsFixedAPLoss = numeric (0-100)

* A regime libvar that specifies a random ammount of AP its units will lose: CommandProblemsRandomAPLoss = numeric (0-100)

* A 'turn event' that when the regime in question has its regimeLibVar CommandProblems set to 'yes' loops through all HQs to test them for Command problems.

Thats it. It will do the job. No chrome, but I am keeping it simple in this tutorial.

Step A: Creating an event library and libvars

Make sure you have the advanced editor enabled. In the main menu click on the 'advanced editor' button and specify a smallest map size as possible.

Then once in the advanced editor go to the lib tabsheet.

There we do the following.

1. Create a new library

2. Set the name of this library. Remember it has to be a unique name (call it something specific, not just 'my library' or something similar)

3. Add 4 libvars

4. Set each libvar to 'regime libvar' type and give it a propper name thats unique and describes already what it does.

Optionally you can also give a description field to each libvar and to the library as a whole. This is RECOMMENDED because you'd like other designers to make use of your library as well. Thats the whole philosophy behind the Community Project.

Thats it. We have defined our library and libvars. Now we go to the event editor.

Step B: Adding the event scripting

In the event editor you do the following.

1. Add a new event

2. Assign the event to your “Command Problems Library”.

3. Name the event

4. Set the execution type for the event to 'late start turn'. 'Late' and not 'Early' because we want to modify the AP of the units after they are set and before the player gets access to moving them.

Step C: Scripting the event

Then I script the following code:

dcx/event_library.1453725558.txt.gz · Last modified: 2026/06/22 12:14 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki