====== CFPython version 1.0 ======
**This documentation is about the old plugin system. It is obsolete and should not be used, except for historical purposes.
Documentation for current Python plugin can be found [[cfpython|here]].**
==== How do I hook a script to an object? ====
Use the **''event_xxx''** to specify the script to use. The base directory for the scripts is the **''map''** directory.
* The option field is unused for now.
* The plugin field should be "Python" of course.
You of course need to write some Python code too... You do as usual, but remember to add an "**''import [[CFPython]]''**" to make all crossfire-specific functions available in your scripts.
==== How do I hook a global event? ====
Each global event is bound to a specific Python script file. Those files are located in the ''python/'' subdirectory of your crossfire map directory. They have specific names, too: **''python_xxx.py''**, where **''xxx''** is the name of the global event you want to intercept. For example, a script that should be run each time a player logs in (**''"login" event''**) should be named **''python_login.py''**.
==== What are the events? ====
Here is a listing of the **server events** and their number codes:
EVENT_NONE 0 No event. This exists only to reserve the "0".
EVENT_APPLY 1 Object applied-unapplied.
EVENT_ATTACK 2 Monster attacked or Scripted Weapon used.
EVENT_DEATH 3 Player or monster dead.
EVENT_DROP 4 Object dropped on the floor.
EVENT_PICKUP 5 Object picked up.
EVENT_SAY 6 Someone speaks.
EVENT_STOP 7 Thrown object stopped.
EVENT_TIME 8 Triggered each time the object can react/move.
EVENT_THROW 9 Object is thrown.
EVENT_TRIGGER 10 Button pushed, lever pulled, etc.
EVENT_CLOSE 11 Container closed.
EVENT_TIMER 12 Timer connected triggered it.
And the **global events** are:
EVENT_BORN 13 A new character has been created.
EVENT_CLOCK 14 Global time event.
EVENT_CRASH 15 Triggered when the server crashes. Not recursive
EVENT_GDEATH 16 Global Death event
EVENT_GKILL 17 Triggered when anything got killed by anyone.
EVENT_LOGIN 18 Player login.
EVENT_LOGOUT 19 Player logout.
EVENT_MAPENTER 20 A player entered a map.
EVENT_MAPLEAVE 21 A player left a map.
EVENT_MAPRESET 22 A map is resetting.
EVENT_REMOVE 23 A Player character has been removed.
EVENT_SHOUT 24 A player 'shout' something.
==== What functions are currently supported? ====
//A complete list of supported functions is given below.//
//__Note to Scriptfire users__: [[CFPython]] implements all the old Scriptfire functions. Although the syntax of Python is quite different from Guile, it should not be a problem to port your old code.//
Last count (10/09/2001) result: 181 functions (not counting the various spells and skills wrappers). This of course does not include all the Python functions, just the crossfire-specific ones.
In the following, I use the following type naming convention:
* **''int''** : An integer;
* **''long''** : A long;
* **''object''**: A crossfire object. (In fact, it is a long).
* **''string''**: A character string.
//Chachkoff Y.//