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'