events

This page contains tutorials about the events package.

Creating a custom event

When creating a custom event, you will also want to look at the events.resource and events.variable modules.

The first thing you want to do is create your class. The lower-case name of the class will be used as the name of the event. Inside the class, you will need to declare the event variables by the type they are (using classes from the events.variable module).

from events.custom import CustomEvent
from events.variable import FloatVariable
from events.variable import ShortVariable
from events.variable import StringVariable


# Create the event's class
class My_New_Event(CustomEvent):

    # Declare the variables with their type
    userid = ShortVariable('The userid of the player involved in the event.')
    pos_x = FloatVariable('The x value of some location in the event.')
    pos_y = FloatVariable('The y value of some location in the event.')
    pos_z = FloatVariable('The z value of some location in the event.')
    weapon = StringVariable('The weapon used in the event.')

The next step is to create the resource file and load the events. For more information, look to the events.resource module.

from events.resource import ResourceFile

resource_file = ResourceFile('my_custom_events', My_New_Event)
resource_file.write()
resource_file.load_events()

The last step is actually using your custom event class to fire the event. You can do this one of two ways. First, just create an instance, set the variables, then fire the event.

# Create the event
event_instance = My_New_Event()

# Set the variable values
event_instance.userid = 2
event_instance.pos_x = 1.111
event_instance.pos_y = 2.222
event_instance.pos_z = 3.333
event_instance.weapon = 'weapon_knife'

# Fire the event
event_instance.fire()

The other way, is to set the variables on instantiation.

# Create the event and define the variable values on instantiation
event_instance = My_New_Event(userid=2, pos_x=1.111, pos_y=2.222, pos_z=3.333, weapon='weapon_knife')

# Fire the event
event_instance.fire()

You can also use context management to automatically fire the event on exit.

# Create the event and fire on exit
with My_New_Event() as event_instance:

    # Define the event variable values
    event_instance.userid = 2
    event_instance.pos_x = 1.111
    event_instance.pos_y = 2.222
    event_instance.pos_z = 3.333
    event_instance.weapon = 'weapon_knife'