User Tools

Site Tools


wiki:data:pages:cfpython

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
wiki:data:pages:cfpython [2020/12/12 10:47]
ryo [Cast]
wiki:data:pages:cfpython [2021/10/19 14:13]
ryo [General information] update
Line 8: Line 8:
 Note that this guide doesn'​t intend to teach you Python. Documentation for that is available on [[http://​docs.python.org|Python'​s official web site]]. Note that this guide doesn'​t intend to teach you Python. Documentation for that is available on [[http://​docs.python.org|Python'​s official web site]].
  
-Also, advanced functions can require some knowledge of Crossfire'​s inner workings. Developers seeking help should check [[http://​crossfire.real-time.com/​development/​index.html|Crossfire'​s page on development]] or [[http://​crossfire.real-time.com/​resources/​index.html|Crossfire'​s resource page]] (which includes links to lists, IRC, how to contact people, ...). Another option is to check existing Python scripts, available in the [[http://crossfire.svn.sourceforge.net/​viewvc/​crossfire/​maps/​trunk/python/|maps source tree]].+Also, advanced functions can require some knowledge of Crossfire'​s inner workings. Developers seeking help should check [[http://​crossfire.real-time.com/​development/​index.html|Crossfire'​s page on development]] or [[http://​crossfire.real-time.com/​resources/​index.html|Crossfire'​s resource page]] (which includes links to lists, IRC, how to contact people, ...). Another option is to check existing Python scripts, available in the [[https://​sourceforge.net/​p/crossfire/crossfire-maps/ci/master/tree/|maps source tree]].
  
  
 Old plugin'​s reference can be found on [[plugin_python]],​ for historical purposes. Old plugin'​s reference can be found on [[plugin_python]],​ for historical purposes.
  
-**Important note:** the API, and other parts, are valid for code's ''​trunk''​. ''​branch''​ contains hopefully all the changes too, but there may be differences. Also, links to SVN are to trunk.+**Important note:** the API, and other parts, are valid for code's ''​master''​. ''​branch''​ contains hopefully all the changes too, but there may be differences. Also, links to SVN are to trunk.
  
 +As from September, 14th, 2021, a ''​.pyi''​ file is available in ''​maps/​python/​pyi''​. It lists all available functions and variables, though functions aren't documented, so no parameters or description.
  
  
 ====== General information ====== ====== General information ======
-The plugin has access to all built-in functions of Python, and its regular libraries. Python version being used depends on the platform the server was built, but should ​be 2.3 or higher. FIXME {is that always true?}+The plugin has access to all built-in functions of Python, and its regular libraries. Python version being used depends on the platform the server was built, but must be 3 or higher. FIXME {is that always true?}
  
 Using a library not part of Python'​s default distribution is discouraged as this introduces new dependencies. Using a library not part of Python'​s default distribution is discouraged as this introduces new dependencies.
Line 32: Line 33:
 Data that should survive a server restart should be persisted in the ''​PlayerDirectory''​ (for specific player information) or ''​DataDirectory''​ (for regular information),​ where the server normally has write access. Data that should survive a server restart should be persisted in the ''​PlayerDirectory''​ (for specific player information) or ''​DataDirectory''​ (for regular information),​ where the server normally has write access.
  
-Scripts for server releases ​after 9 November 2007 should prefer the use of new [[cfpython#​Log|Crossfire.Log(level,​message)]] method over the python build-in print method. The reason of this is to keep coherency between python scripts messages and server logging.+Scripts for server releases ​muse use the [[cfpython#​Log|Crossfire.Log(level,​message)]] method over the python build-in print method. The reason of this is to keep coherency between python scripts messages and server logging.
  
 ===== How do I hook a script to an object? ===== ===== How do I hook a script to an object? =====
Line 472: Line 473:
   * Identified: ''​Boolean''​   * Identified: ''​Boolean''​
   * **Alive**: ''​Boolean''​   * **Alive**: ''​Boolean''​
-  * DungeonMaster:​ ''​Boolean''​+  ​* **DungeonMaster**: ''​Boolean'',​ writable on ''​master''​
   * WasDungeonMaster:​ ''​Boolean''​   * WasDungeonMaster:​ ''​Boolean''​
   * **Applied**:​ ''​Boolean''​   * **Applied**:​ ''​Boolean''​