From no-reply_wiki at metalforge.org Thu Nov 8 09:57:50 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Thu, 08 Nov 2007 09:57:50 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: faq Message-ID: <1194537470.822583.14426.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/08 09:57 User : kbulgrien Edit Summary: Add instructions for metaserver2 listing. @@ -103,12 +103,15 @@ * http://lists.sourceforge.net/lists/listinfo/crossfire-maps * Gmane mirror: http://dir.gmane.org/gmane.games.crossfire.maps Each list has it's own, unique email address to send messages to and can be found on the introduction or summary page found at the URLs above. + ==== 2.5 How do I get my server listed in the metaserver? ==== - After you installed your server, there is a file called settings in the share folder with the following settings: + ===Original Metaserver=== + + After you installed your server, there is a file called ''settings'' in the ''share'' folder with the following settings: * metaserver_notification off * metaserver_server crossfire.real-time.com * metaserver_host put.your.hostname.here @@ -123,8 +126,40 @@ * metaserver_port 13326 * metaserver_comment **Put a comment here** Be sure to update the **host** and **comment** fields with the relevant information + + ===Metaserver 2=== + + FIXME Add Metaserver 2 listing requirements. + + After the server is installed and as needed, modify the following entries in the ''metaserver2'' file found in the ''share'' folder: + + * metaserver2_notification off + * metaserver_server crossfire.real-time.com + * localhostname put.your.hostname.here + * #portnumber 13327 + * html_comment Put a comment here + * text_comment Put a comment here + * archbase Standard + * mapbase Standard + * codebase Standard + * #flags + + Update the file with the following: + + * metaserver_notification **on** + * metaserver_server http://crossfire.real-time.com/metaserver2/meta_update.php + * localhostname **put.your.hostname.here (or IP address)** + * portnumber **port number the server is listening on** + * html_comment **Put a comment here** + * text_comment **Put a comment here** + * archbase **Single-word arch description.** "Standard" is reserved for unmodified SVN. + * mapbase **Single-word maps description.** "Standard" is reserved for unmodified SVN. + * codebase **Single-word code description.** "Standard" is reserved for unmodified SVN. + * flags **Server flag(s) as described in the file** + + Be sure to update all fields with relevant information. ==== 2.6 What port does Crossfire run on? ==== Crossfire needs TCP port 13327 open IP-Address : 70.254.34.228 Old Revision: http://wiki.metalforge.net/doku.php/faq?rev=1177465908 New Revision: http://wiki.metalforge.net/doku.php/faq -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Thu Nov 8 10:43:45 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Thu, 08 Nov 2007 10:43:45 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: faq Message-ID: <1194540225.410262.14696.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/08 10:43 User : kbulgrien Edit Summary: Add URL for showing the metaserver2 list. @@ -103,8 +103,9 @@ * http://lists.sourceforge.net/lists/listinfo/crossfire-maps * Gmane mirror: http://dir.gmane.org/gmane.games.crossfire.maps Each list has it's own, unique email address to send messages to and can be found on the introduction or summary page found at the URLs above. + ==== 2.5 How do I get my server listed in the metaserver? ==== @@ -129,9 +130,9 @@ Be sure to update the **host** and **comment** fields with the relevant information ===Metaserver 2=== - FIXME Add Metaserver 2 listing requirements. + FIXME Add [[http://crossfire.real-time.com/metaserver2/meta_html.php|Metaserver 2 listing]] requirements. After the server is installed and as needed, modify the following entries in the ''metaserver2'' file found in the ''share'' folder: * metaserver2_notification off IP-Address : 70.254.34.228 Old Revision: http://wiki.metalforge.net/doku.php/faq?rev=1194537465 New Revision: http://wiki.metalforge.net/doku.php/faq -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Thu Nov 8 17:51:33 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Thu, 08 Nov 2007 17:51:33 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1194565893.601501.17119.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/08 17:51 User : Edit Summary: @@ -199,9 +199,19 @@ * map width (''Number'') * map height (''Number'') Returns an empty map of specified dimensions. Unless map is removed immediately, ''Path'' should be set so the map correctly displays in the ''maps'' output. + ==== Misc functions ==== + === Log === + Parameters: + * level (decimal, must be one of Crossfire.LogError, Crossfire.LogInfo, Crossfire.LogDebug, Crossfire.LogMonster) + * message (string) + + Use the server logging facilities to output script messages in server console. This is the **recommanded** method, instead of using the + python build-in "print" method. + exemple: + Crossfire.Log(Crossfire.LogDebug,'Player %s entered guild %s' %obj.Name %guildName === RegisterCommand === Parameters: * command name (string) * script (string) IP-Address : 91.177.197.17 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1190923123 New Revision: http://wiki.metalforge.net/doku.php/cfpython -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Thu Nov 8 17:54:44 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Thu, 08 Nov 2007 17:54:44 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1194566084.120698.17122.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/08 17:54 User : Edit Summary: @@ -9,8 +9,9 @@ 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. + ====== 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?} @@ -24,8 +25,10 @@ Scripts will have the same access rights as the server itself. It may be able to write to some directories, but not others. Data that should survive a server restart should be persisted in the ''PlayerDirectory'' (for specific player information) or ''DataDirectory'' (for regular information), where server normally has write access. + + Scripts for server releases after 9 november 2007 are encouraged to prefer the use of new 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? ===== Python plugin is a [[server plugin]], thus you need to insert in this object one of the //event_xxx// archetype (see ''[[http://crossfire.svn.sourceforge.net/viewvc/crossfire/arch/trunk/system/|/arch/system]]'' directory). The fields to fill are: * **title**: should be //Python// to call the Python plugin. IP-Address : 91.177.197.17 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1194565884 New Revision: http://wiki.metalforge.net/doku.php/cfpython -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Thu Nov 8 17:56:53 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Thu, 08 Nov 2007 17:56:53 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1194566213.850934.17131.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/08 17:56 User : Edit Summary: @@ -9,8 +9,9 @@ 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. + ====== 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?} @@ -26,9 +27,9 @@ Scripts will have the same access rights as the server itself. It may be able to write to some directories, but not others. Data that should survive a server restart should be persisted in the ''PlayerDirectory'' (for specific player information) or ''DataDirectory'' (for regular information), where server normally has write access. - Scripts for server releases after 9 november 2007 are encouraged to prefer the use of new 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 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. ===== How do I hook a script to an object? ===== Python plugin is a [[server plugin]], thus you need to insert in this object one of the //event_xxx// archetype (see ''[[http://crossfire.svn.sourceforge.net/viewvc/crossfire/arch/trunk/system/|/arch/system]]'' directory). The fields to fill are: * **title**: should be //Python// to call the Python plugin. IP-Address : 91.177.197.17 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1194566078 New Revision: http://wiki.metalforge.net/doku.php/cfpython -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Thu Nov 8 18:00:39 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Thu, 08 Nov 2007 18:00:39 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1194566439.721520.17332.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/08 18:00 User : Edit Summary: @@ -203,19 +203,21 @@ * map width (''Number'') * map height (''Number'') Returns an empty map of specified dimensions. Unless map is removed immediately, ''Path'' should be set so the map correctly displays in the ''maps'' output. + ==== Misc functions ==== === Log === Parameters: - * level (decimal, must be one of Crossfire.LogError, Crossfire.LogInfo, Crossfire.LogDebug, Crossfire.LogMonster) + * level (Crossfire.LogError, Crossfire.LogInfo, Crossfire.LogDebug or Crossfire.LogMonster) * message (string) Use the server logging facilities to output script messages in server console. This is the **recommanded** method, instead of using the - python build-in "print" method. + python build-in "print" method. Using this, scripts take advantage of Debug and Monster level which can be hidden at will by server admin (log level), and + have access to the error level, mentionning to admin serious troubles. exemple: - Crossfire.Log(Crossfire.LogDebug,'Player %s entered guild %s' %obj.Name %guildName + Crossfire.Log(Crossfire.LogDebug,'Player %s entered guild %s' %obj.Name %guildName) === RegisterCommand === Parameters: * command name (string) * script (string) IP-Address : 91.177.197.17 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1194566208 New Revision: http://wiki.metalforge.net/doku.php/cfpython -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Fri Nov 9 03:10:50 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Fri, 09 Nov 2007 03:10:50 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1194599450.341355.15895.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/09 03:10 User : kbulgrien Edit Summary: Misc. spelling fixes. @@ -25,11 +25,11 @@ Calling Crossfire functions with invalid arguments will result in a Python exception being raised. A function failure will also result in an exception. Scripts will have the same access rights as the server itself. It may be able to write to some directories, but not others. - Data that should survive a server restart should be persisted in the ''PlayerDirectory'' (for specific player information) or ''DataDirectory'' (for regular information), where 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 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. ===== How do I hook a script to an object? ===== Python plugin is a [[server plugin]], thus you need to insert in this object one of the //event_xxx// archetype (see ''[[http://crossfire.svn.sourceforge.net/viewvc/crossfire/arch/trunk/system/|/arch/system]]'' directory). The fields to fill are: * **title**: should be //Python// to call the Python plugin. @@ -211,12 +211,12 @@ Parameters: * level (Crossfire.LogError, Crossfire.LogInfo, Crossfire.LogDebug or Crossfire.LogMonster) * message (string) - Use the server logging facilities to output script messages in server console. This is the **recommanded** method, instead of using the + Use the server logging facilities to output script messages in server console. This is the **recommended** method, instead of using the python build-in "print" method. Using this, scripts take advantage of Debug and Monster level which can be hidden at will by server admin (log level), and - have access to the error level, mentionning to admin serious troubles. - exemple: + have access to the error level, mentioning to admin serious troubles. + Example: Crossfire.Log(Crossfire.LogDebug,'Player %s entered guild %s' %obj.Name %guildName) === RegisterCommand === Parameters: * command name (string) @@ -285,9 +285,9 @@ * NewObject: returns a ''Crossfire.Object'' having this archetype as type. It isn't on any map or in any inventory, so should be inserted somewhere or deleted if not used. ===== Crossfire.Object methods and attributes ===== FIXME link to dev:objects 's fields? split flag & such info. Make a table with property / mapping to object / Python type - Properties in **bold** are read-write, others are readonly. Most properties are mapped to fields of the ''object'' structure. ''Boolean'' values are mapped to the various flags. + Properties in **bold** are read-write, others are read-only. Most properties are mapped to fields of the ''object'' structure. ''Boolean'' values are mapped to the various flags. * **Name**: ''String'' containing the object's name * **NamePl**: ''String'' containing the object's plural name * **Title**: ''String'' * **Race**: ''String'' @@ -421,9 +421,9 @@ Arguments: * ''Crossfire.Object'' that is the victim of the trap. === AddExp === - Adds or substracts experience to current object. + Adds or subtracts experience to current object. Arguments: * ''number'', experience to add * ''string'' (optional), skill to add to @@ -797,9 +797,9 @@ ==== GetPlayers ==== Return value: a ''list'' of ''Crossfire.Players'' ===== Crossfire.Region methods and attributes ===== - This class encapsulates an ingame region. Properties are read-only. + This class encapsulates an in-game region. Properties are read-only. * Name: ''String'' * Longname: ''String'' * Message: ''String'' * Next: ''Crossfire.Region'' IP-Address : 70.254.34.228 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1194566433 New Revision: http://wiki.metalforge.net/doku.php/cfpython -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Fri Nov 9 03:24:07 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Fri, 09 Nov 2007 03:24:07 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo:functions_implemented_but_not_yet_used Message-ID: <1194600247.470071.15913.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/09 03:24 User : kbulgrien Edit Summary: Note added regarding transports. @@ -23,11 +23,12 @@ A new body spot, ''body_leg'', was introduced to enable pants. No archetype still uses this. Also, some armours could be considered as having legs, thus should be fixed for that. ===== polymorph ===== This spell has been disabled for ages, but reactivated lately. It doesn't appear in any treasurelist, and no map seems to have any object with this spell. Thus need some quest for it. + ===== transports ===== - Transports have been implemented and are active on metalforge for a long time now. But they are hardly used: two ships in Scorn's harbor (just for testing, not useful since you cannot reach any useful location), one in Stoneville. + Transports have been implemented and are active on metalforge for a long time now, but they are hardly used. Two ships exist in Scorn's harbor (for testing) that are not useful, except to avoid a long mountain trek on a quest to get the king a mushroom with medicinal properties). Another ship may be found in Stoneville. ===== background music ===== Maps can now have a 'background_music' tag, which will get sent to client when the player enters the map. No map has this set, no client has any handling, and it isn't determined what the tag means (specific music, music genre, ...) IP-Address : 70.254.34.228 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo:functions_implemented_but_not_yet_used?rev=1193347820 New Revision: http://wiki.metalforge.net/doku.php/dev_todo:functions_implemented_but_not_yet_used -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Mon Nov 12 19:02:10 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Mon, 12 Nov 2007 19:02:10 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: linux Message-ID: <1194915730.678411.5027.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/12 19:02 User : leaf Edit Summary: Updating info for Ubuntu gutsy @@ -55,12 +55,13 @@ * For crossfire-client-gtk: **gcfclient** * For crossfire-client-gtk2: **gcfclient2** (Minor Note: gcfclient stands for **G**TK **C**ross**F**ire **client**) + ===== (K|X)Ubuntu ===== - Crossfire is available in all (K|X)Ubuntu distributions (warty, hoary, breezy, dapper, edgy and feisty) and found in the **universe** section; the exceptions being that the crossfire-client-gtk2 client is only available for the edgy and feisty distribution and the no longer maintained crossfire-maps-small (aka small world) package is only available for the dapper, edgy and feisty distribution. + Crossfire is available in all (K|X)Ubuntu distributions (warty, hoary, breezy, dapper, edgy, feisty and gutsy) and found in the **universe** section; the exceptions being that the crossfire-client-gtk2 client is only available for the edgy and feisty distribution and the no longer maintained crossfire-maps-small (aka small world) package is only available for the dapper, edgy and feisty distribution. ==== Installation ==== The easiest way to install Crossfire on [[wp>Ubuntu]] is to use the (K|X)Ubuntu package system and repository. The version there may lag somewhat behind the latest release, but it will be tested for (K|X)Ubuntu and automatically install any needed dependencies. (To stay current with the latest development version, see the [[http://crossfire.real-time.com/svn/index.html|Crossfire SVN page]].) IP-Address : 65.193.16.100 Old Revision: http://wiki.metalforge.net/doku.php/linux?rev=1188692821 New Revision: http://wiki.metalforge.net/doku.php/linux -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Mon Nov 12 19:03:37 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Mon, 12 Nov 2007 19:03:37 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: linux Message-ID: <1194915817.496983.5030.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/12 19:03 User : leaf Edit Summary: Update for Fedora 8 @@ -126,10 +126,11 @@ * For crossfire-client-gtk2: **gcfclient2** (Minor Note: gcfclient stands for **G**TK **C**ross**F**ire **client**) - ===== Fedora Core 6 & Fedora 7 ===== - Crossfire is available in Fedora Core 6 and Fedora 7 projects. + + ===== Fedora Core 6 & Fedora 7, Fedora 8 ===== + Crossfire is available in Fedora Core 6 and Fedora 7 & Fedora 8 projects. ==== Installation ==== The easiest way to install Crossfire on [[wp>Fedora]] is to use the Fedora Package Collection. The version there may lag somewhat behind the latest release, but it will be tested for Fedora and automatically install any needed dependencies. (To stay current with the latest development version, see the [[http://crossfire.real-time.com/svn/index.html|Crossfire SVN page]] and the [[Crossfire Compile guide|crossfire_compile_guide]].) IP-Address : 65.193.16.100 Old Revision: http://wiki.metalforge.net/doku.php/linux?rev=1194915728 New Revision: http://wiki.metalforge.net/doku.php/linux -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Mon Nov 12 19:10:47 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Mon, 12 Nov 2007 19:10:47 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfire_compile_guide Message-ID: <1194916247.278674.5061.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/12 19:10 User : leaf Edit Summary: Update recommended packages for metaserver2 support @@ -26,23 +26,26 @@ * libsvn0 - shared libraries used by Subversion (aka. svn) (required by subversion) As a quick reference: - sudo apt-get install automake1.9 flex gcc libgd-tools libgd2-xpm-dev libtool make subversion + sudo apt-get install automake1.9 flex gcc libgd-tools libgd2-xpm-dev libtool make subversion ==== Recommended Packages ==== The recommended packages provide additional add-ons or features (summaries included, below) to the server or as a way to test new functions and features. - * autoconf2.5 - Not normally required for end-user builds, but it is useful if build scripts are not up to date. + * autoconf2.5 - Not normally required for end-user builds, but it is useful if build scripts are not up to date * check - unit test framework for C (used by the unit tests) * libsqlite3-0 - SQLite 3 shared library (used by cflogger) * libpython2.4 - Python shared object library (used by game features such as bank, post office, slot machines, etc.) - * libpython2.4-devel - Required to compile python support into the server. + * libpython2.4-devel - Required to compile python support into the server + * libcurl3 - - Multi-protocol file transfer library (required by metaserver2) + * libcurl3-dev - Transitional package to libcurl3-openssl-dev (required by metaserver2) + * libsvn-dev - Development files for Subversion libraries (required for Subversion revision number reporting in metaserver2) As a quick reference: - sudo apt-get install check libsqlite3-0 + sudo apt-get install check libsqlite3-0 libcurl3 libcurl3-dev libsvn-dev Installing Python and which version is still under investigation/discussion * lib64python2.4-2.4.3 is known to work on Mandriva 2007.0 x86_64 IP-Address : 65.193.16.100 Old Revision: http://wiki.metalforge.net/doku.php/crossfire_compile_guide?rev=1188692442 New Revision: http://wiki.metalforge.net/doku.php/crossfire_compile_guide -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Mon Nov 12 19:49:30 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Mon, 12 Nov 2007 19:49:30 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfire_client_compile_guide Message-ID: <1194918570.453180.5117.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/12 19:49 User : leaf Edit Summary: Update content to match server compile guide - still in progress @@ -23,23 +23,32 @@ * make - The GNU version of the "make" utility * subversion - advanced version control system (aka. svn) * libapr0 - the Apache Portable Runtime (required by subversion) * libsvn0 - shared libraries used by Subversion (aka. svn) (required by subversion) + * libsdl1.2-dev - Simple DirectMedia Layer development files + * libsdl-image1.2-dev - development files for SDL 1.2 image loading libray + * libgtk1.2-dev - Development files for the GIMP Toolkit + * libcurl3 - - Multi-protocol file transfer library (required by metaserver2) + * libcurl3-dev - Transitional package to libcurl3-openssl-dev (required by metaserver2) + + As a quick reference: + + sudo apt-get install autoconf2.5 automake1.9 flex gcc libgd-tools libgd2-xpm-dev libtool make subversion libsdl1.2-dev libsdl-image1.2-dev libgtk1.2-dev libcurl3 libcurl3-dev ===X11 Client=== * FIXME (more...) - ===First GTK Client=== + ===GTKv1 Client=== * FIXME (more...) - ===Second GTK Client=== + ===GTKv2 Client=== * libglade2.0_0-devel * libglade-2.0 * libgtk-x11-2.0 - * libxml2 + * libxml2 - GNOME XML library * libz * libgdk-x11-2.0 * libatk-1.0 * libgdk_pixbuf-2.0 IP-Address : 65.193.16.100 Old Revision: http://wiki.metalforge.net/doku.php/crossfire_client_compile_guide?rev=1188697139 New Revision: http://wiki.metalforge.net/doku.php/crossfire_client_compile_guide -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Mon Nov 12 19:57:38 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Mon, 12 Nov 2007 19:57:38 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfire_client_compile_guide Message-ID: <1194919058.856638.5132.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/12 19:57 User : leaf Edit Summary: Format update @@ -140,9 +140,9 @@ The autogen.sh script re-creates the configure (./configure) script. It accepts the same options as would normally be pass to ./configure. This command requires both autoconf and automake to be installed. This process attempts to locate required resources, and also discover whether or not required resources are installed. It is okay to proceed directly to compilation, but almost certainly the output of the ./configure process needs to be review, and packages may need to be installed based upon what features or functionality is desired. The ./configure output generally indicates whether it will or will not build particular clients. - + ==== COMPILE ==== Now, begin the compile process; choose one of the following: IP-Address : 65.193.16.100 Old Revision: http://wiki.metalforge.net/doku.php/crossfire_client_compile_guide?rev=1194918568 New Revision: http://wiki.metalforge.net/doku.php/crossfire_client_compile_guide -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Mon Nov 12 20:05:11 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Mon, 12 Nov 2007 20:05:11 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfire_client_compile_guide Message-ID: <1194919511.369587.5342.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/12 20:05 User : leaf Edit Summary: Update with client launch HOWTO @@ -160,15 +160,41 @@ Note: For the GTK clients, the version numbers are sometimes confusing. The first client to use GTK is often called the GTK 1 client because it was originally compiled with GTK+-1.x, but now it is often compiled with GTK+-2.x. The second client developed with GTK is called the gtk-v2 client. It used to be built with GTK+-2.x, but has now been converted to build against libglade-2.0 (which requires GTK+-2.0 and other related libraries). The gtk-v2 client is designed to build with GTK+1.0 libraries. ===X11 Client=== - FIXME + Change to the x11 directory with the following command: - ===Version 1 GTK Client=== + $ cd x11 - FIXME + Double check your location with: - ===Version 2 GTK Client=== + $ pwd + /home//client.svn/x11 + + Then launch the client with the following command: + + $ ./crossfire-client-x11 & + + The command runs the Crossfire Client and returns you back to a shell prompt + + ===GTKv1 Client=== + + Change to the x11 directory with the following command: + + $ cd gtk + + Double check your location with: + + $ pwd + /home//client.svn/gtk + + Then launch the client with the following command: + + $ ./crossfire-client-gtk & + + The command runs the Crossfire Client and returns you back to a shell prompt + + ===GTKv2 Client=== Change directory the gtk-v2 directory $ cd gtk-v2/src @@ -177,16 +203,16 @@ $ pwd /home//client.svn/gtk-v2/src - Run this command to launch the server: + Then launch the client with the following command: $ ./crossfire-client-gtk2 & The command runs the Crossfire Client and returns you back to a shell prompt - FIXME Add gdb instructions and discuss possible issues regarding .glade layout files. + FIXME Add gdb instructions and discus possible issues regarding .glade layout files. ===== Microsoft (c) Windows ===== FIXME IP-Address : 65.193.16.100 Old Revision: http://wiki.metalforge.net/doku.php/crossfire_client_compile_guide?rev=1194919057 New Revision: http://wiki.metalforge.net/doku.php/crossfire_client_compile_guide -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Mon Nov 12 20:18:50 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Mon, 12 Nov 2007 20:18:50 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfire_client_compile_guide Message-ID: <1194920330.323318.5373.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/12 20:18 User : leaf Edit Summary: Update package dependencies for clients @@ -23,13 +23,8 @@ * make - The GNU version of the "make" utility * subversion - advanced version control system (aka. svn) * libapr0 - the Apache Portable Runtime (required by subversion) * libsvn0 - shared libraries used by Subversion (aka. svn) (required by subversion) - * libsdl1.2-dev - Simple DirectMedia Layer development files - * libsdl-image1.2-dev - development files for SDL 1.2 image loading libray - * libgtk1.2-dev - Development files for the GIMP Toolkit - * libcurl3 - - Multi-protocol file transfer library (required by metaserver2) - * libcurl3-dev - Transitional package to libcurl3-openssl-dev (required by metaserver2) As a quick reference: sudo apt-get install autoconf2.5 automake1.9 flex gcc libgd-tools libgd2-xpm-dev libtool make subversion libsdl1.2-dev libsdl-image1.2-dev libgtk1.2-dev libcurl3 libcurl3-dev @@ -39,37 +34,27 @@ * FIXME (more...) ===GTKv1 Client=== - * FIXME (more...) + * libgtk1.2-dev - Development files for the GIMP Toolkit ===GTKv2 Client=== - * libglade2.0_0-devel - * libglade-2.0 - * libgtk-x11-2.0 - * libxml2 - GNOME XML library - * libz - * libgdk-x11-2.0 - * libatk-1.0 - * libgdk_pixbuf-2.0 - * libm - * libpangocairo-1.0 - * libpango-1.0 - * libcairo - * libgobject-2.0 - * libgmodule-2.0 - * libdl - * lglib-2 + * libgtk2.0-0 - The GTK+ graphical user interface library + * libgtk2.0-dev - Development files for the GTK+ library + * libglade2-0 - library to load .glade files at runtime + * libglade2-dev - development files for libglade Note: For x86_64 systems, do not mix 64-bit and 32-bit libraries unless it cannot be helped. For example, libsvn0 is a 32-bit library, but lib64svn0 is the 64-bit equivalent. The build process may fail in the linkage stage if a 32-bit library is linked during a 64-bit build. ==== Recommended Packages ==== Recommended packages provide additional add-ons or functionality to the client, or allow more than one client to be built. It is quite possible to get a perfectly acceptable client functional without having all of the recommended packages. - * libSDL - * libSDL_image + * libsdl1.2-dev - Simple DirectMedia Layer development files + * libsdl-image1.2-dev - development files for SDL 1.2 image loading libray + * libcurl3 - - Multi-protocol file transfer library (required by metaserver2) + * libcurl3-dev - Transitional package to libcurl3-openssl-dev (required by metaserver2) * FIXME (more...) ==== Useful Packages ==== IP-Address : 65.193.16.100 Old Revision: http://wiki.metalforge.net/doku.php/crossfire_client_compile_guide?rev=1194919509 New Revision: http://wiki.metalforge.net/doku.php/crossfire_client_compile_guide -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Mon Nov 12 20:22:05 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Mon, 12 Nov 2007 20:22:05 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfire_client_compile_guide Message-ID: <1194920525.842919.5382.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/12 20:22 User : leaf Edit Summary: Quick references for package installs @@ -42,8 +42,12 @@ * libgtk2.0-0 - The GTK+ graphical user interface library * libgtk2.0-dev - Development files for the GTK+ library * libglade2-0 - library to load .glade files at runtime * libglade2-dev - development files for libglade + + As a quick reference: + + sudo libgtk2.0-0libgtk2.0-dev libglade2-0 libglade2-dev Note: For x86_64 systems, do not mix 64-bit and 32-bit libraries unless it cannot be helped. For example, libsvn0 is a 32-bit library, but lib64svn0 is the 64-bit equivalent. The build process may fail in the linkage stage if a 32-bit library is linked during a 64-bit build. ==== Recommended Packages ==== @@ -53,9 +57,13 @@ * libsdl1.2-dev - Simple DirectMedia Layer development files * libsdl-image1.2-dev - development files for SDL 1.2 image loading libray * libcurl3 - - Multi-protocol file transfer library (required by metaserver2) * libcurl3-dev - Transitional package to libcurl3-openssl-dev (required by metaserver2) - * FIXME (more...) + * FIXME ( any more?) + + As a quick reference: + + sudo apt-get install libsdl1.2-dev libsdl-image1.2-dev libcurl3 libcurl3-dev ==== Useful Packages ==== These useful packages are not normally required for end-user builds, but they come in handy in cases where developers may have forgotten to check in changes to build scripts, etc. IP-Address : 65.193.16.100 Old Revision: http://wiki.metalforge.net/doku.php/crossfire_client_compile_guide?rev=1194920328 New Revision: http://wiki.metalforge.net/doku.php/crossfire_client_compile_guide -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Mon Nov 12 20:24:20 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Mon, 12 Nov 2007 20:24:20 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfire_client_compile_guide Message-ID: <1194920660.708001.5385.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/12 20:24 User : leaf Edit Summary: Formatting corrections @@ -61,9 +61,9 @@ * FIXME ( any more?) As a quick reference: - sudo apt-get install libsdl1.2-dev libsdl-image1.2-dev libcurl3 libcurl3-dev + sudo apt-get install libsdl1.2-dev libsdl-image1.2-dev libcurl3 libcurl3-dev ==== Useful Packages ==== These useful packages are not normally required for end-user builds, but they come in handy in cases where developers may have forgotten to check in changes to build scripts, etc. IP-Address : 65.193.16.100 Old Revision: http://wiki.metalforge.net/doku.php/crossfire_client_compile_guide?rev=1194920524 New Revision: http://wiki.metalforge.net/doku.php/crossfire_client_compile_guide -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Mon Nov 12 20:31:48 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Mon, 12 Nov 2007 20:31:48 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfire_client_compile_guide Message-ID: <1194921108.007774.5400.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/12 20:31 User : leaf Edit Summary: Update for x11 client - needs to be verified @@ -30,9 +30,9 @@ sudo apt-get install autoconf2.5 automake1.9 flex gcc libgd-tools libgd2-xpm-dev libtool make subversion libsdl1.2-dev libsdl-image1.2-dev libgtk1.2-dev libcurl3 libcurl3-dev ===X11 Client=== - * FIXME (more...) + * x11-common - X Window System (X.Org) infrastructure (FIXME - double check this package) ===GTKv1 Client=== * libgtk1.2-dev - Development files for the GIMP Toolkit IP-Address : 65.193.16.100 Old Revision: http://wiki.metalforge.net/doku.php/crossfire_client_compile_guide?rev=1194920659 New Revision: http://wiki.metalforge.net/doku.php/crossfire_client_compile_guide -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Tue Nov 13 17:33:33 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 13 Nov 2007 17:33:33 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo_new Message-ID: <1194996813.490078.9609.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/13 17:33 User : tchize Edit Summary: @@ -28,9 +28,9 @@ | [[dev_todo:fix_sound|Fix/Revamp sound]] - Fix and improve the sound system. | 2.0 | 2 | None | Client/Server/Maps | | | [[dev_todo:Better NPCs]] - Better NPC communication | 2.0 | 2 | None | Server | | | [[dev_todo:Smarter Monsters]] - Monsters should attack/defend more intelligently | 2.0 | 2 | None | Server | | | [[dev_todo:lighting|Revamp lighting]] - Improve Lighting/LOS code | 2.0 | 2 | None | Client/Server | | - | [[dev_todo:Time of day based events]] - Stuff happening based on the time of day. | 2.0 | 2 | None | Server/Maps | | + | [[dev_todo:Time of day based events]] - Stuff happening based on the time of day. | 2.0 | 2 | None | Server/Maps |[[user:tchize|Tchize]] | | [[dev_todo:Make Slaying Consistent]] - Add does_slay() instead of having different code sprinkled through server | 2.0 | 2 | None | Server | | | [[dev_todo:Change Player Speed]] - Low level players move too slow, high level players move too fast | 2.0 | 2 | None | Server | | | [[dev_todo:Material type improvement]] - Material code should be improved | 2.0 | 2 | None | Server | | | [[dev_todo:Centralized Map Passwords]] - Passwords on maps should be stored centrally, making them easier to change | 2.0 | 2 | None | Server & Maps| | IP-Address : 91.177.206.249 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo_new?rev=1186726026 New Revision: http://wiki.metalforge.net/doku.php/dev_todo_new -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Tue Nov 13 17:41:45 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 13 Nov 2007 17:41:45 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo:time_of_day_based_events Message-ID: <1194997305.033168.9636.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/13 17:41 User : tchize Edit Summary: @@ -3,9 +3,9 @@ [[https://sourceforge.net/tracker/index.php?func=detail&aid=1318639&group_id=13833&atid=363833|On the sourceforge tracker]] ====== Time of Day based events ====== Allow map makers to utilize date and time for their maps. - ==== Posible Uses ==== + ==== Possible Uses ==== * Stores open and close. * Monsters sleep at different times of day * Holidays * Stores can have sales @@ -15,4 +15,21 @@ * Monsters like Werewolfs * Can we (is it copyrighted?) have monsters turn to stone based on the time? * Items being affected by the time of day * Perhaps connected values alter/default, so scorn gates are open during the day, closed at night. + + ==== current stage ==== + === C code === + * Transfert of Month/weekday/season names to plugins + * Add notions for periods of the day? (night, dawn, morning, noon, evening, dusk/sunset) + * provide a name->index hastable for periods of day/year + === filter event === + First stage plans to give possibility for event fitlering using ad hoc python library. example trigger that works only during New Year and/or the Day of the Moon: + arch button_trigger + x 2 + y 5 + connected 10 + arch event_apply + name The Season of New Year,the Day of the Moon + title Python + slaying /python/tod/moment_only.py + end IP-Address : 91.177.206.249 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo:time_of_day_based_events?rev=1158504279 New Revision: http://wiki.metalforge.net/doku.php/dev_todo:time_of_day_based_events -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Tue Nov 13 17:42:11 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 13 Nov 2007 17:42:11 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo:time_of_day_based_events Message-ID: <1194997331.138599.9639.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/13 17:42 User : tchize Edit Summary: @@ -18,11 +18,11 @@ * Perhaps connected values alter/default, so scorn gates are open during the day, closed at night. ==== current stage ==== === C code === - * Transfert of Month/weekday/season names to plugins - * Add notions for periods of the day? (night, dawn, morning, noon, evening, dusk/sunset) - * provide a name->index hastable for periods of day/year + * Transfert of Month/weekday/season names to plugins + * Add notions for periods of the day? (night, dawn, morning, noon, evening, dusk/sunset) + * provide a name->index hastable for periods of day/year === filter event === First stage plans to give possibility for event fitlering using ad hoc python library. example trigger that works only during New Year and/or the Day of the Moon: arch button_trigger x 2 IP-Address : 91.177.206.249 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo:time_of_day_based_events?rev=1194997303 New Revision: http://wiki.metalforge.net/doku.php/dev_todo:time_of_day_based_events -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Tue Nov 13 17:44:57 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 13 Nov 2007 17:44:57 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo:time_of_day_based_events Message-ID: <1194997497.862448.9642.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/13 17:44 User : tchize Edit Summary: add developpement upgrade @@ -23,8 +23,9 @@ * Add notions for periods of the day? (night, dawn, morning, noon, evening, dusk/sunset) * provide a name->index hastable for periods of day/year === filter event === First stage plans to give possibility for event fitlering using ad hoc python library. example trigger that works only during New Year and/or the Day of the Moon: + arch button_trigger x 2 y 5 connected 10 @@ -32,4 +33,5 @@ name The Season of New Year,the Day of the Moon title Python slaying /python/tod/moment_only.py end + IP-Address : 91.177.206.249 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo:time_of_day_based_events?rev=1194997329 New Revision: http://wiki.metalforge.net/doku.php/dev_todo:time_of_day_based_events -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Tue Nov 13 17:51:26 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 13 Nov 2007 17:51:26 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo:time_of_day_based_events Message-ID: <1194997886.883250.9657.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/13 17:51 User : tchize Edit Summary: @@ -15,14 +15,42 @@ * Monsters like Werewolfs * Can we (is it copyrighted?) have monsters turn to stone based on the time? * Items being affected by the time of day * Perhaps connected values alter/default, so scorn gates are open during the day, closed at night. + * Add Gridarta UI to easily use prebuild python scripts ==== current stage ==== + Note: some things below may only be working currently on developper's computer and may not yet have been commited === C code === * Transfert of Month/weekday/season names to plugins * Add notions for periods of the day? (night, dawn, morning, noon, evening, dusk/sunset) * provide a name->index hastable for periods of day/year + === python === + Example (verbose) python code using time based informations + + import Crossfire + import string + + Crossfire.Log(Crossfire.LogDebug, "Number of seasons for this server: %d" %Crossfire.Time.SEASONS_PER_YEAR) + for x in range(Crossfire.Time.SEASONS_PER_YEAR): + Crossfire.Log(Crossfire.LogDebug, "Season %d is %s" %(x,Crossfire.GetSeasonName(x))) + Crossfire.Log(Crossfire.LogDebug, "Number of week days for this server: %d" %Crossfire.Time.DAYS_PER_WEEK) + for x in range(Crossfire.Time.DAYS_PER_WEEK): + Crossfire.Log(Crossfire.LogDebug, "weekday %d is %s" %(x,Crossfire.GetWeekdayName(x))) + Crossfire.Log(Crossfire.LogDebug, "Number of months for this server: %d" %Crossfire.Time.MONTHS_PER_YEAR) + for x in range(Crossfire.Time.MONTHS_PER_YEAR): + Crossfire.Log(Crossfire.LogDebug, "Month %d is %s" %(x,Crossfire.GetMonthName(x))) + + + + now = Crossfire.GetTime() + parameters = string.split(Crossfire.ScriptParameters(),",") + current = [Crossfire.GetMonthName(now[1]),Crossfire.GetWeekdayName(now[5]),Crossfire.GetSeasonName(now[7])] + + Crossfire.SetReturnValue(1) + if (set(parameters) & set(current)): + Crossfire.SetReturnValue(0) + === filter event === First stage plans to give possibility for event fitlering using ad hoc python library. example trigger that works only during New Year and/or the Day of the Moon: arch button_trigger IP-Address : 91.177.206.249 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo:time_of_day_based_events?rev=1194997495 New Revision: http://wiki.metalforge.net/doku.php/dev_todo:time_of_day_based_events -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Wed Nov 14 03:47:49 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Wed, 14 Nov 2007 03:47:49 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: people Message-ID: <1195033669.256401.8482.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/14 03:47 User : tchize Edit Summary: @@ -5,9 +5,9 @@ ^ Full Name ^ wiki ^ irc ^ sourceforge ^ launchpad ^ website ^ | Mark Wedel | [[user:mwedel]] | mwedel | [[http://sourceforge.net/users/mwedel/|mwedel]] | | | | Brendan Lally | | cavehippo | [[http://sourceforge.net/users/cavesomething/|cavesomething]] | [[https://launchpad.net/people/brenlally | brenlally]] | | | Lalo Martins | [[user:lalomartins]] | lalo | [[http://sourceforge.net/users/lalo/|lalo]] | [[https://launchpad.net/people/lalo.martins|lalo.martins]] | | - | David Delbecq | | tchize | | | [[http://www.tchize.be]] | + | David Delbecq | [[user:tchize]] | tchize | [[http://sourceforge.net/users/tchize/|tchize]] | | [[http://www.devlog.be]] | | Rick Tanner | [[user:leaf]] | Leaf | [[http://sourceforge.net/users/rjtanner|rjtanner]] | | | | Ketche | | Ketche | | | [[http://meeg.elvenrealms.net/]] | | Andrew Fuchs | [[user:techolous]] | TechII | [[http://sourceforge.net/users/bbotbuilder/|bbotbuilder]] | [[https://launchpad.net/people/fuchs.andy|fuchs.andy]] | | | Alex Schultz | [[user:rednaxela]] | Rednaxela | [[http://sourceforge.net/users/qal21/|qal21]] | [[https://launchpad.net/people/rednaxela|rednaxela]] | | IP-Address : 193.190.249.120 Old Revision: http://wiki.metalforge.net/doku.php/people?rev=1186697994 New Revision: http://wiki.metalforge.net/doku.php/people -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Wed Nov 14 04:03:02 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Wed, 14 Nov 2007 04:03:02 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo:time_of_day_based_events Message-ID: <1195034582.673820.8704.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/14 04:03 User : tchize Edit Summary: @@ -2,8 +2,10 @@ [[https://sourceforge.net/tracker/index.php?func=detail&aid=1318639&group_id=13833&atid=363833|On the sourceforge tracker]] ====== Time of Day based events ====== Allow map makers to utilize date and time for their maps. + + Developper working on it: [[user:tchize]] ==== Possible Uses ==== * Stores open and close. * Monsters sleep at different times of day IP-Address : 193.190.249.120 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo:time_of_day_based_events?rev=1194997885 New Revision: http://wiki.metalforge.net/doku.php/dev_todo:time_of_day_based_events -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Wed Nov 14 04:03:40 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Wed, 14 Nov 2007 04:03:40 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page added: user:tchize Message-ID: <1195034620.414593.8707.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/14 04:03 User : tchize Edit Summary: created ====== David Delbecq ====== Simple page to track my crossfire development ===== History ===== I don't remember when i first started crossfire development, I was at university, it was probably around 1998. It's all lauwenmark's guilt if i am now stuck in this :) I learned C with crossfire. If you can understand C in old crossfire code and maintain it, you were very good at C. My past contributions to code base: * Implementation of the town portal spell * tiles overlapping code (aka 'smoothing') * logging plugin, that used an odbc database (not active anymore, replaced by better things now) along with it's set of PHP pages. * crossfire animator plugin * introduction of unit testing framework for server (not very popular yet) * Logging system with various log levels, on both server and clients * Plugin system for client * probably lots of other hours spent on 'in don't remember what' code parts ===== Current Assignements ===== Am currently working on adding [[dev_todo:time_of_day_based_events|time based events]] for mapmakers. IP-Address : 193.190.249.120 Old Revision: none New Revision: http://wiki.metalforge.net/doku.php/user:tchize -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Wed Nov 14 04:09:11 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Wed, 14 Nov 2007 04:09:11 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo:cf2.0 Message-ID: <1195034951.634835.8725.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/14 04:09 User : tchize Edit Summary: @@ -59,8 +59,9 @@ | [[dev_todo:server_cleanup|Cleanup]] | Find/Remove unused code, and possibly restructure parts of the codebase | None | High | MIA | | [[dev_todo:Fix Weather]] | Fix the weather system | None | Low | Active (partially completed) | | [[dev_todo:Better NPCs]] | Smarter NPCs | None | Low | Inactive | | Change Password Command | Allow players to change their password (easy but not implimented) | Ryo | High | Committed | + ===== Maps ===== Changes to be made to maps @@ -68,10 +69,11 @@ | [[dev_todo:Kandora]] | Fix and take maps out of /unlinked/kandora | None | Low | Inactive | | [[dev_todo:Map Cleanup]] | Clean up the maps | None | Medium | MIA? | | [[dev_todo:pupland|Bigworldify Pupland]] | Move pupland on to the world maps | lalo | Low | Active | | [[dev_todo:Auction House]]/command? | A place to auction items | None | Low | Planning/MIA | + | [[dev_todo:Time of day based events]] | Mapmakers can restrict action based on time | [[user:tchize]] | Low | Active | ===== Archetypes ===== ^ Item ^ Description ^ Developer ^ Priority ^ Status ^ | [[dev_todo:Archetype Cleanup]] | Remove obsolete params, etc | Techolous/Others | Low | MIA/Active | IP-Address : 193.190.249.120 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo:cf2.0?rev=1163693662 New Revision: http://wiki.metalforge.net/doku.php/dev_todo:cf2.0 -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Wed Nov 14 04:12:36 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Wed, 14 Nov 2007 04:12:36 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo:fix_weather Message-ID: <1195035156.645779.8734.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/14 04:12 User : tchize Edit Summary: @@ -5,13 +5,13 @@ * Could be due to bad [[:elevation_map|elevation values]]. * Requires the world to be rectangular without missing maps, which is a problem for [[dev_todo:pupland]]. === Features and Ideas === - * Hooks in scripts + * Hooks in scripts (like the get_time, script should be able to use get_weather(object/map) to get temperature, humidity, etc). Imagine a powerfull sword that does not work below 5 Celcius :) * Weather dependent objects * Stuff that freezes and melts * Could make entrance into some maps interesting * Could possibly use same concept for dried out rivers and flaming pits (or something similar) * Instead of replacing objects, create various states that they may assume (regular, wet, snow, dry, etc) * leaves overlays to dms * allows for more objects to be affected by the weather IP-Address : 193.190.249.120 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo:fix_weather?rev=1157904237 New Revision: http://wiki.metalforge.net/doku.php/dev_todo:fix_weather -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Wed Nov 14 04:19:11 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Wed, 14 Nov 2007 04:19:11 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo_new Message-ID: <1195035551.366411.8746.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/14 04:19 User : tchize Edit Summary: @@ -28,9 +28,9 @@ | [[dev_todo:fix_sound|Fix/Revamp sound]] - Fix and improve the sound system. | 2.0 | 2 | None | Client/Server/Maps | | | [[dev_todo:Better NPCs]] - Better NPC communication | 2.0 | 2 | None | Server | | | [[dev_todo:Smarter Monsters]] - Monsters should attack/defend more intelligently | 2.0 | 2 | None | Server | | | [[dev_todo:lighting|Revamp lighting]] - Improve Lighting/LOS code | 2.0 | 2 | None | Client/Server | | - | [[dev_todo:Time of day based events]] - Stuff happening based on the time of day. | 2.0 | 2 | None | Server/Maps |[[user:tchize|Tchize]] | + | [[dev_todo:Time of day based events]] - Stuff happening based on the time of day. | 2.0 | 2 | Planning/Coding | Server/Maps |[[user:tchize|Tchize]] | | [[dev_todo:Make Slaying Consistent]] - Add does_slay() instead of having different code sprinkled through server | 2.0 | 2 | None | Server | | | [[dev_todo:Change Player Speed]] - Low level players move too slow, high level players move too fast | 2.0 | 2 | None | Server | | | [[dev_todo:Material type improvement]] - Material code should be improved | 2.0 | 2 | None | Server | | | [[dev_todo:Centralized Map Passwords]] - Passwords on maps should be stored centrally, making them easier to change | 2.0 | 2 | None | Server & Maps| | @@ -61,6 +61,6 @@ * Coding - project is currently undergoing actual coding (or map making, etc). * Testing - project is complete, and typically committed, but is undergoing testing for balance, stability, etc. * Completed - project is committed and no additional work is planned on it. * Component is what portion of crossfire the change affects - server, client, editor, maps, archetypes - * Developer - person currently working on this. Update this is you work on a project. + * Developer - person currently working on this. Update this if you work on a project. IP-Address : 193.190.249.120 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo_new?rev=1194996810 New Revision: http://wiki.metalforge.net/doku.php/dev_todo_new -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Wed Nov 14 04:48:53 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Wed, 14 Nov 2007 04:48:53 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo:char_creation Message-ID: <1195037333.162721.8885.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/14 04:48 User : tchize Edit Summary: @@ -3,6 +3,6 @@ - brief outline: + ==== brief outline ==== * Player is present with a small login window, and in that window is a button for new character (if player enters incorrect name/password, would say try again or say create a new character) * For new character creation, client would present a nice interface to the player, letting them choose race,class, and stats from pulldown menus and spinbuttons. * Client would use a requestinfo to get the race and class information. * Instead of rolled up stats, players would have a set number of points to spend on there stats (settable in the config file) @@ -11,4 +11,33 @@ * As part of this, the different classes would need to become archetypes, so server can know what they are. * Down the road, an advanced creation method could be used where player doesn't choose a class, but rather what skills they want (and maybe get a small pile of gold). That should wait for any skill changes to be made. Purpose: http://mailman.metalforge.org/pipermail/crossfire/2007-July/011622.html + + ==== Datas that should be needed by client, coming from server (feel free to update)==== + * List of basic 'all types' informations + * How much point to distribute + * Base Max and Min of each stat + * eventually how much point at max you can spend, for each stat (could prevent unbalanced/unplayable characters) + * eventually "credits" for spending in the packs or special races/classes (if you assume the starter packs do not all value the same) + * eventually how much "credit" you can get from not spending an attribute point (0 for no convertion possible) + * List of classes (aka professions). For each character class: + * name + * description + * picture + * Minimum required in each stat to have that class (minimum wisdom for wizard, minimum dexterity for elf) + * Modifier in each stat this class provides -2 -1 0 +1 +2, etc + * Modifier to max level each stat can be (example a warrior has wisdom toped at 18 while wizard has toped 25) + * eventually credit this class cost (if you make some class more powerfull, you should make the cost more credit) + * Eventually One or several 'starter pack' specific to this class (list of server configured item/bonus you get with your new character) + * Example 1: "The wood elf pack": "You start with boots made for the wood+a shortbow+a skill related to forest survival" + * Example 2: "The merchant elf pack": "You start with a shor dagger+a cloak+skill in bargaining" + * List of races. For each race datas to send are same a for classes. Making it somehow generic, it should be possible to extend server to choose a third or fourth category too at creation (ex: choose an home land, choose a specialization, etc) without touching a single line of code in client. + + ==== Datas client should send back ==== + * name + * new password + * title + * How much was spent on each stat + * For each list (classes/race) + * which item was choosen + * which pack was choosen IP-Address : 193.190.249.120 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo:char_creation?rev=1183744040 New Revision: http://wiki.metalforge.net/doku.php/dev_todo:char_creation -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Wed Nov 14 04:49:40 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Wed, 14 Nov 2007 04:49:40 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo:char_creation Message-ID: <1195037380.030922.8888.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/14 04:49 User : tchize Edit Summary: @@ -12,9 +12,10 @@ * Down the road, an advanced creation method could be used where player doesn't choose a class, but rather what skills they want (and maybe get a small pile of gold). That should wait for any skill changes to be made. Purpose: http://mailman.metalforge.org/pipermail/crossfire/2007-July/011622.html - ==== Datas that should be needed by client, coming from server (feel free to update)==== + ==== technical suggested layout ==== + === Datas that should be needed by client, coming from server (feel free to update)=== * List of basic 'all types' informations * How much point to distribute * Base Max and Min of each stat * eventually how much point at max you can spend, for each stat (could prevent unbalanced/unplayable characters) @@ -32,12 +33,12 @@ * Example 1: "The wood elf pack": "You start with boots made for the wood+a shortbow+a skill related to forest survival" * Example 2: "The merchant elf pack": "You start with a shor dagger+a cloak+skill in bargaining" * List of races. For each race datas to send are same a for classes. Making it somehow generic, it should be possible to extend server to choose a third or fourth category too at creation (ex: choose an home land, choose a specialization, etc) without touching a single line of code in client. - ==== Datas client should send back ==== + === Datas client should send back === * name * new password * title * How much was spent on each stat * For each list (classes/race) * which item was choosen * which pack was choosen IP-Address : 193.190.249.120 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo:char_creation?rev=1195037331 New Revision: http://wiki.metalforge.net/doku.php/dev_todo:char_creation -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Wed Nov 14 04:57:37 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Wed, 14 Nov 2007 04:57:37 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo:char_creation Message-ID: <1195037857.046126.8903.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/14 04:57 User : tchize Edit Summary: @@ -14,31 +14,31 @@ Purpose: http://mailman.metalforge.org/pipermail/crossfire/2007-July/011622.html ==== technical suggested layout ==== === Datas that should be needed by client, coming from server (feel free to update)=== - * List of basic 'all types' informations - * How much point to distribute - * Base Max and Min of each stat - * eventually how much point at max you can spend, for each stat (could prevent unbalanced/unplayable characters) - * eventually "credits" for spending in the packs or special races/classes (if you assume the starter packs do not all value the same) - * eventually how much "credit" you can get from not spending an attribute point (0 for no convertion possible) + * List of basic informations + * How much stat point to distribute + * eventually how much credit point to distribute in packs + * Base Max and Min of each stat + * eventually how much stat point at max you can spend, for each stat (could prevent unbalanced/unplayable characters) + * eventually how much additional credit you can get from not spending a stat point (0 for no convertion possible) * List of classes (aka professions). For each character class: - * name - * description - * picture - * Minimum required in each stat to have that class (minimum wisdom for wizard, minimum dexterity for elf) - * Modifier in each stat this class provides -2 -1 0 +1 +2, etc - * Modifier to max level each stat can be (example a warrior has wisdom toped at 18 while wizard has toped 25) - * eventually credit this class cost (if you make some class more powerfull, you should make the cost more credit) - * Eventually One or several 'starter pack' specific to this class (list of server configured item/bonus you get with your new character) - * Example 1: "The wood elf pack": "You start with boots made for the wood+a shortbow+a skill related to forest survival" - * Example 2: "The merchant elf pack": "You start with a shor dagger+a cloak+skill in bargaining" + * name + * description + * picture + * Minimum required in each stat to have that class (this minimum is 'class modifiers included') + * Modifier in each stat this class provides -2 -1 0 +1 +2, etc + * Modifier to max level each stat can be (example a warrior has wisdom toped at 18 while wizard has toped 25) + * eventually credit this class cost (if you make some class more powerfull, you should make them cost more credit, perhaps soe much credits one has to not spend some stat point to get enough credit) + * Eventually One or several avaiable 'starter pack' specific to this class (list of server configured item/bonus you get with your new character) + * Example 1: "The wood elf pack": "You start with boots made for the wood+a shortbow+a skill related to forest survival" + * Example 2: "The merchant elf pack": "You start with a shor dagger+a cloak+skill in bargaining" * List of races. For each race datas to send are same a for classes. Making it somehow generic, it should be possible to extend server to choose a third or fourth category too at creation (ex: choose an home land, choose a specialization, etc) without touching a single line of code in client. === Datas client should send back === * name * new password * title * How much was spent on each stat * For each list (classes/race) - * which item was choosen - * which pack was choosen + * which item was choosen + * list of packs choosen IP-Address : 193.190.249.120 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo:char_creation?rev=1195037378 New Revision: http://wiki.metalforge.net/doku.php/dev_todo:char_creation -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Wed Nov 14 04:58:00 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Wed, 14 Nov 2007 04:58:00 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo:char_creation Message-ID: <1195037880.680134.8906.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/14 04:57 User : tchize Edit Summary: @@ -34,11 +34,11 @@ * Example 2: "The merchant elf pack": "You start with a shor dagger+a cloak+skill in bargaining" * List of races. For each race datas to send are same a for classes. Making it somehow generic, it should be possible to extend server to choose a third or fourth category too at creation (ex: choose an home land, choose a specialization, etc) without touching a single line of code in client. === Datas client should send back === - * name - * new password - * title - * How much was spent on each stat - * For each list (classes/race) - * which item was choosen - * list of packs choosen + * name + * new password + * title + * How much was spent on each stat + * For each list (classes/race) + * which item was choosen + * list of packs choosen IP-Address : 193.190.249.120 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo:char_creation?rev=1195037855 New Revision: http://wiki.metalforge.net/doku.php/dev_todo:char_creation -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Wed Nov 14 05:00:20 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Wed, 14 Nov 2007 05:00:20 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo:char_creation Message-ID: <1195038020.245447.9585.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/14 05:00 User : tchize Edit Summary: @@ -38,7 +38,7 @@ * name * new password * title * How much was spent on each stat - * For each list (classes/race) + * For each list (classes/race/...) * which item was choosen * list of packs choosen IP-Address : 193.190.249.120 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo:char_creation?rev=1195037878 New Revision: http://wiki.metalforge.net/doku.php/dev_todo:char_creation -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Wed Nov 14 05:01:29 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Wed, 14 Nov 2007 05:01:29 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo:char_creation Message-ID: <1195038089.087037.9588.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/14 05:01 User : tchize Edit Summary: @@ -29,10 +29,10 @@ * Modifier in each stat this class provides -2 -1 0 +1 +2, etc * Modifier to max level each stat can be (example a warrior has wisdom toped at 18 while wizard has toped 25) * eventually credit this class cost (if you make some class more powerfull, you should make them cost more credit, perhaps soe much credits one has to not spend some stat point to get enough credit) * Eventually One or several avaiable 'starter pack' specific to this class (list of server configured item/bonus you get with your new character) - * Example 1: "The wood elf pack": "You start with boots made for the wood+a shortbow+a skill related to forest survival" - * Example 2: "The merchant elf pack": "You start with a shor dagger+a cloak+skill in bargaining" + * Example 1: "The wood hunter pack": "You start with boots made for the wood+a shortbow+a skill related to forest survival" + * Example 2: "The merchant pack": "You start with a shor dagger+a cloak+skill in bargaining" * List of races. For each race datas to send are same a for classes. Making it somehow generic, it should be possible to extend server to choose a third or fourth category too at creation (ex: choose an home land, choose a specialization, etc) without touching a single line of code in client. === Datas client should send back === * name IP-Address : 193.190.249.120 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo:char_creation?rev=1195038018 New Revision: http://wiki.metalforge.net/doku.php/dev_todo:char_creation -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Mon Nov 19 23:03:37 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Mon, 19 Nov 2007 23:03:37 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page added: user:meflin:scripts:charge.pl Message-ID: <1195535017.396472.7774.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/19 23:03 User : meflin Edit Summary: created #!/usr/bin/perl $|=1; $crystals=7; sub getstats() { print "request stat hp\n"; $input=; @stats=split(/ /,$input); $hp=@stats[3]; $hpmax=@stats[4]; $sp=@stats[5]; $spmax=@stats[6]; $gp=@stats[7]; $gpmax=@stats[8]; $food=@stats[9]; } $mode=0; $maxcounter=0; $pointer=1; while (1) { sleep(1); getstats(); if ($sp>=$spmax) { $maxcounter+=1; } else { $maxcounter=0; } if ($maxcounter==10) { $mode=0; print "draw 1 charging crystals\n"; $pointer=1; } if ($sp<(($spmax/2)-5) && $mode !=3) { $mode=1; print "draw 1 discharging crystals\n"; $pointer=1; } if ($pointer > $crystals) { $pointer=1; } #charge mode if ($mode==0) { for ($a=$pointer; $a<=$crystals; $a++) { if ($sp>=$spmax) { print "issue 1 1 apply c".$a."\n"; sleep(1); getstats(); $pointer=$a; } } if ($sp==$spmax) { $mode=2; print "draw 1 charge comeplete\n"; } } #discharge mode if ($mode==1) { for ($a=$pointer; $a<=$crystals; $a++) { if ($sp<$spmax) { print "issue 1 1 apply c".$a."\n"; sleep(1); getstats(); $pointer=$a; } } if ($sp<$spmax) { $pointer=1; } } } IP-Address : 71.229.157.100 Old Revision: none New Revision: http://wiki.metalforge.net/doku.php/user:meflin:scripts:charge.pl -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Mon Nov 19 16:05:14 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Mon, 19 Nov 2007 16:05:14 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1195509914.813795.6116.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/19 16:05 User : tchize Edit Summary: @@ -410,8 +410,9 @@ * **IsPet**: if the object is on the friendly list or not * **AttackMovement** * **Duration** * **Skill** + ==== Methods ==== FIXME document all parameters. Link to relevant Crossfire function. Split in "standard function" and "helper function"? @@ -679,9 +680,9 @@ Arguments: * ''String'': key value * ''String'': value to associate to the key - * ''Number'' (optional): 0 to only update the key and not insert it, non zero to add it anyway + * ''Number'' (optional, defaults to 0): 0 to only update the key and not insert it, non zero to add it anyway. ===== Crossfire.Map methods and attributes ===== Properties in **bold** are read-write, others read only. * Difficulty: ''Number'' IP-Address : 91.177.194.203 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1195323281 New Revision: http://wiki.metalforge.net/doku.php/cfpython -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sat Nov 17 15:48:02 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 17 Nov 2007 15:48:02 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython:tod Message-ID: <1195336082.722583.26699.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/17 15:48 User : tchize Edit Summary: @@ -1,6 +1,7 @@ ====== Time based python scripts ====== The folder /python/tod in crossfire maps contains several script ready to be linked to event_xxxx object in map editor. All those scripts use the notion of period of the day and period of the year, they do different things, but all use the same way to name period. It's simply the period name, as can be found in following table. The names are case sensitive. For scripts that accept several periods, name of periods are spearated by coma, please don't add additionnal spaces between coma and name of period + ===== Parameter values ===== ^ name of period ^ description ^ |The Season of New Year| Starting 1st month, ending 3rd month| |The Season of Growth| Starting 4th month, ending 6st month| IP-Address : 87.67.125.37 Old Revision: http://wiki.metalforge.net/doku.php/cfpython:tod?rev=1195335965 New Revision: http://wiki.metalforge.net/doku.php/cfpython:tod -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Mon Nov 19 23:20:47 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Mon, 19 Nov 2007 23:20:47 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: user:meflin:scripts:charge.pl Message-ID: <1195536047.956499.7833.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/19 23:20 User : meflin Edit Summary: @@ -1,8 +1,9 @@ This is a client side script to manage the chargeing and discharging of powercrystals. The crystals must be named c1 c2 c3 ect. + Shrike made this one ====== Code ====== IP-Address : 71.229.157.100 Old Revision: http://wiki.metalforge.net/doku.php/user:meflin:scripts:charge.pl?rev=1195535375 New Revision: http://wiki.metalforge.net/doku.php/user:meflin:scripts:charge.pl -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Mon Nov 19 23:01:05 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Mon, 19 Nov 2007 23:01:05 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page added: user:meflin Message-ID: <1195534865.595449.7771.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/19 23:01 User : meflin Edit Summary: created weee my page not much to see yet IP-Address : 71.229.157.100 Old Revision: none New Revision: http://wiki.metalforge.net/doku.php/user:meflin -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Mon Nov 19 23:14:58 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Mon, 19 Nov 2007 23:14:58 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: user:meflin Message-ID: <1195535698.247348.7814.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/19 23:14 User : meflin Edit Summary: @@ -1,2 +1,3 @@ weee my page not much to see yet + [[user:meflin:scripts:charge.pl]] IP-Address : 71.229.157.100 Old Revision: http://wiki.metalforge.net/doku.php/user:meflin?rev=1195534864 New Revision: http://wiki.metalforge.net/doku.php/user:meflin -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Mon Nov 19 23:09:36 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Mon, 19 Nov 2007 23:09:36 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: user:meflin:scripts:charge.pl Message-ID: <1195535376.487730.7801.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/19 23:09 User : meflin Edit Summary: @@ -1,4 +1,9 @@ + This is a client side script to manage the chargeing + and discharging of powercrystals. The crystals must + be named c1 c2 c3 ect. + + ====== Code ====== #!/usr/bin/perl IP-Address : 71.229.157.100 Old Revision: http://wiki.metalforge.net/doku.php/user:meflin:scripts:charge.pl?rev=1195535284 New Revision: http://wiki.metalforge.net/doku.php/user:meflin:scripts:charge.pl -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sat Nov 17 15:05:16 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 17 Nov 2007 15:05:16 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython:tod Message-ID: <1195333516.863815.26620.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/17 15:05 User : tchize Edit Summary: @@ -36,4 +36,26 @@ |Morning| Between 8:00 am and 13:00am | |Noon| Between 13:00 am and 1:00 pm | |Evening| Between 1:00 pm and 6:00 pm | |Dusk| Between 6:00 pm and 9:00 pm | + + ===== Script /python/tod/filter_one_period.py ===== + This script will stop the event from propagating if the current time of the server matches **any** of the times defined as script parameters. Typical use: + + arch event_apply + title Python + slaying /python/tod/filter_one_period.py + name The Season of New Year,The Season of the Blizzard,Morning + end + + If any of the period of day/year mentionned in parameter match the current server time, the event will be propagated. Otherwise it will be stopped. In this example, the object this event is attached too will be usable on ly during New Year, blizzard or Morning. + + ===== Script /python/tod/filter_all_periods.py ===== + This script will stop the event from propagating if the current time of the server matches **all** of the times defined as script parameters. Typical use: + arch event_apply + title Python + slaying /python/tod/filter_all_periods.py + name the Day of the Moon,The Season of the Blizzard,Morning + end + + If all of the period of day/year mentionned in parameter match the current server time, the event will be propagated. Otherwise it will be stopped. In this example, the object this event is attached too will be usable only during Mornings of days of the moon during the season of Blizzard. + IP-Address : 87.67.125.37 Old Revision: http://wiki.metalforge.net/doku.php/cfpython:tod?rev=1195324865 New Revision: http://wiki.metalforge.net/doku.php/cfpython:tod -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Mon Nov 19 23:08:06 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Mon, 19 Nov 2007 23:08:06 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: user:meflin:scripts:charge.pl Message-ID: <1195535286.270114.7789.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/19 23:08 User : meflin Edit Summary: @@ -1,4 +1,7 @@ + ====== Code ====== + + #!/usr/bin/perl $|=1; $crystals=7; @@ -100,6 +103,6 @@ } - + IP-Address : 71.229.157.100 Old Revision: http://wiki.metalforge.net/doku.php/user:meflin:scripts:charge.pl?rev=1195535015 New Revision: http://wiki.metalforge.net/doku.php/user:meflin:scripts:charge.pl -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Tue Nov 20 08:03:46 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 20 Nov 2007 08:03:46 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: user:meflin:scripts:charge.pl Message-ID: <1195567426.363639.8009.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/20 08:03 User : meflin Edit Summary: @@ -1,7 +1,9 @@ - This is a client side script to manage the chargeing + This is a client side script to manage the charging and discharging of powercrystals. The crystals must be named c1 c2 c3 ect. + + Set crystals=7 to how many crystals you are managing Shrike made this one ====== Code ====== @@ -110,5 +112,6 @@ + IP-Address : 71.229.157.100 Old Revision: http://wiki.metalforge.net/doku.php/user:meflin:scripts:charge.pl?rev=1195536046 New Revision: http://wiki.metalforge.net/doku.php/user:meflin:scripts:charge.pl -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sat Nov 17 15:29:26 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 17 Nov 2007 15:29:26 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython:tod Message-ID: <1195334966.579810.26660.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/17 15:29 User : tchize Edit Summary: @@ -37,9 +37,13 @@ |Noon| Between 13:00 am and 1:00 pm | |Evening| Between 1:00 pm and 6:00 pm | |Dusk| Between 6:00 pm and 9:00 pm | - ===== Script /python/tod/filter_one_period.py ===== + ===== Filtering based on period list ===== + ==== match any ==== + + Script name: **/python/tod/filter_one_period.py** + This script will stop the event from propagating if the current time of the server matches **any** of the times defined as script parameters. Typical use: arch event_apply title Python @@ -48,9 +52,11 @@ end If any of the period of day/year mentionned in parameter match the current server time, the event will be propagated. Otherwise it will be stopped. In this example, the object this event is attached too will be usable on ly during New Year, blizzard or Morning. - ===== Script /python/tod/filter_all_periods.py ===== + ===== Match all ===== + Script name: **/python/tod/filter_all_periods.py** + This script will stop the event from propagating if the current time of the server matches **all** of the times defined as script parameters. Typical use: arch event_apply title Python slaying /python/tod/filter_all_periods.py @@ -58,4 +64,35 @@ end If all of the period of day/year mentionned in parameter match the current server time, the event will be propagated. Otherwise it will be stopped. In this example, the object this event is attached too will be usable only during Mornings of days of the moon during the season of Blizzard. + + ===== Scheduling map triggers ===== + Those scripts run a "connected" list inside the current map, at a specific time. Arguments required by those scripts are, the value of the "connected" chain to run and the periods of time concerned by this triggering. Those script could be used by any event, however it is typical to use them in the EVENT_TIME of a living object, so as to ensure the script is run often enough to react on time. However you could, without trouble, use it in EVEN_DEATH or a monster, EVENT_APPLY of a button, etc. Just keep in mind the script can't do anything unless it get called ;) + + ==== On any matching period of time ==== + Script name: **/python/tod/push_one_period.py** + + This will trigger the connected list if any of the specified periods matches the current time of server. The "source" of the trigger will be the object containing event. The script will "push" the connected list when entering period and "release" it when exiting period. The script will keep correct state, whatever happens concerning map loading / caching. Upon reload, it will resynchronized to current server state and take appropriate action to "release" or "push" the connected list. The first argument or parameter list is always the integer number of connected list to trigger. + + Typical use: + + arch event_time + title Python + slaying /python/tod/push_one_period.py + name 69,Morning,Noon + end + + This example will trigger the connected list number 69 on current map whenever it is Morning or Noon. + ==== On matching all periods ==== + Script name: **/python/tod/push_all_periods.py** + + This will trigger the connected list if all of the specified periods matches the current time of server. The "source" of the trigger will be the object containing event. The script will "push" the connected list when entering period and "release" it when exiting period. The script will keep correct state, whatever happens concerning map loading / caching. Upon reload, it will resynchronized to current server state and take appropriate action to "release" or "push" the connected list. The first argument or parameter list is always the integer number of connected list to trigger. + + Typical use: + arch event_time + title Python + slaying /python/tod/push_all_periods.py + name 69,Morning,The Season of New Year + end + + This example will push the connected list number 69 of current Map upon entering a Morning of Season of New Year and release it when leaving that day. The source of the push and release will be the object the event is embedded in. IP-Address : 87.67.125.37 Old Revision: http://wiki.metalforge.net/doku.php/cfpython:tod?rev=1195333514 New Revision: http://wiki.metalforge.net/doku.php/cfpython:tod -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sat Nov 17 12:04:05 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 17 Nov 2007 12:04:05 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo:time_of_day_based_events Message-ID: <1195322645.186860.25895.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/17 12:04 User : tchize Edit Summary: @@ -4,23 +4,24 @@ ====== Time of Day based events ====== Allow map makers to utilize date and time for their maps. Developper working on it: [[user:tchize]] + ==== Possible Uses ==== - * Stores open and close. -> script uploaded that can close/open gates depending on time + * Stores open and close. -> script uploaded that can close/open gates depending on time * Monsters sleep at different times of day -> mood floor + scheduled trigger could probably make it... * Holidays * Stores can have sales * NPCs that move to different locations * Alchemy formulae that will only yeild a result at a certain time (night, full moon, etc) -> could filter on event_trigger be used on alchemy object? - * Dungeons only accessable at certain times -> gates can close/open depending on time - * Monsters like Werewolfs + * Dungeons only accessable at certain times -> gates can close/open depending on time + * Monsters like Werewolfs->script build that can change monster depending on time of day * Can we (is it copyrighted?) have monsters turn to stone based on the time? - * Items being affected by the time of day -> Demo weapons in test/tod that attack only at night / during day - * Perhaps connected values alter/default, so scorn gates are open during the day, closed at night. -> predefined python filters can be used on event, object can bythemself trigger some connected value at specific time + * Items being affected by the time of day -> Demo weapons in test/tod that attack only at night / during day + * Perhaps connected values alter/default, so scorn gates are open during the day, closed at night. -> predefined python filters can be used on event, object can bythemself trigger some connected value at specific time * Add Gridarta UI to easily use prebuild python scripts -> asked to gridarta team, they are thinking about script UI ==== current stage ==== Approximatively 80% work done on this. Still need to build a few script, like one to alter the destination of a map depending on hour and another to freeze/make alive all monster in map at a certain time. IP-Address : 87.67.125.37 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo:time_of_day_based_events?rev=1195220198 New Revision: http://wiki.metalforge.net/doku.php/dev_todo:time_of_day_based_events -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Fri Nov 16 07:36:42 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Fri, 16 Nov 2007 07:36:42 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo:time_of_day_based_events Message-ID: <1195220202.212198.19396.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/16 07:36 User : tchize Edit Summary: @@ -4,13 +4,14 @@ ====== Time of Day based events ====== Allow map makers to utilize date and time for their maps. Developper working on it: [[user:tchize]] + ==== Possible Uses ==== * Stores open and close. -> script uploaded that can close/open gates depending on time - * Monsters sleep at different times of day + * Monsters sleep at different times of day -> mood floor + scheduled trigger could probably make it... * Holidays * Stores can have sales * NPCs that move to different locations * Alchemy formulae that will only yeild a result at a certain time (night, full moon, etc) -> could filter on event_trigger be used on alchemy object? IP-Address : 91.177.208.223 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo:time_of_day_based_events?rev=1195220147 New Revision: http://wiki.metalforge.net/doku.php/dev_todo:time_of_day_based_events -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sat Nov 17 12:14:48 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 17 Nov 2007 12:14:48 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1195323288.137767.25919.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/17 12:14 User : tchize Edit Summary: @@ -829,8 +829,9 @@ This script makes the monster/living thing containing it display a message when it attacks for the first time an enemy. It should be hooked through an ''event_time'' archetype in monster's inventory. Message is specified in event object's options field. It can contain %m and %e, which will be replaced by respectively monster's name and enemy's name. + ===== Experience rewarder ===== Script location: ''/python/items/experience_rewarder.py'' @@ -847,4 +848,8 @@ * 0: give the player the skill * 1: give player exp to total, no skill * 2: player gets nothing * race: if set, the player can only use once this item. + ===== Time of the day ===== + Scripts location: ''/python/tod/*.py'' + + Those scripts add behaviour to items based on time of the day. Want to open doors at specific time, make werewolfes, deactivate a magic_mouth during the Season of Winter? Those scripts are ready to use. See [[cfpython:tod|time of day based python scripts]] IP-Address : 87.67.125.37 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1194599443 New Revision: http://wiki.metalforge.net/doku.php/cfpython -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Fri Nov 16 07:34:05 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Fri, 16 Nov 2007 07:34:05 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo:time_of_day_based_events Message-ID: <1195220045.547664.19384.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/16 07:34 User : tchize Edit Summary: @@ -4,22 +4,23 @@ ====== Time of Day based events ====== Allow map makers to utilize date and time for their maps. Developper working on it: [[user:tchize]] + ==== Possible Uses ==== - * Stores open and close. + * Stores open and close. -> script uploaded that can close/open gates depending on time * Monsters sleep at different times of day * Holidays * Stores can have sales * NPCs that move to different locations - * Alchemy formulae that will only yeild a result at a certain time (night, full moon, etc) - * Dungeons only accessable at certain times + * Alchemy formulae that will only yeild a result at a certain time (night, full moon, etc) -> could filter on event_trigger be used on alchemy object? + * Dungeons only accessable at certain times -> gates can close/open depending on time * Monsters like Werewolfs * Can we (is it copyrighted?) have monsters turn to stone based on the time? - * Items being affected by the time of day - * Perhaps connected values alter/default, so scorn gates are open during the day, closed at night. - * Add Gridarta UI to easily use prebuild python scripts + * Items being affected by the time of day -> Demo weapons in test/tod that attack only at night / during day + * Perhaps connected values alter/default, so scorn gates are open during the day, closed at night. -> predefined python filters can be used on event, object can bythemself trigger some connected value at specific time + * Add Gridarta UI to easily use prebuild python scripts -> asked to gridarta team, they are thinking about script UI ==== current stage ==== Note: some things below may only be working currently on developper's computer and may not yet have been commited === C code === IP-Address : 91.177.208.223 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo:time_of_day_based_events?rev=1195034580 New Revision: http://wiki.metalforge.net/doku.php/dev_todo:time_of_day_based_events -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sat Nov 17 12:41:07 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 17 Nov 2007 12:41:07 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page added: cfpython:tod Message-ID: <1195324867.648930.25970.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/17 12:41 User : tchize Edit Summary: created ====== Time based python scripts ====== The folder /python/tod in crossfire maps contains several script ready to be linked to event_xxxx object in map editor. All those scripts use the notion of period of the day and period of the year, they do different things, but all use the same way to name period. It's simply the period name, as can be found in following table. The names are case sensitive. For scripts that accept several periods, name of periods are spearated by coma, please don't add additionnal spaces between coma and name of period ^ name of period ^ description ^ |The Season of New Year| Starting 1st month, ending 3rd month| |The Season of Growth| Starting 4th month, ending 6st month| |The Season of Harvest| Starting 7th month, ending 9th month| |The Season of Decay| Starting 10th month, ending 12th month| |The Season of the Blizzard| Starting 13th month, ending 17th month| |Month of Winter| | |Month of the Ice Dragon| | |Month of the Frost Giant| | |Month of Valriel| | |Month of Lythander| | |Month of the Harvest| | |Month of Gaea| | |Month of Futility| | |Month of the Dragon| | |Month of the Sun| | |Month of the Great Infernus| | |Month of Ruggilli| | |Month of the Dark Shades| | |Month of the Devourers| | |Month of Sorig| | |Month of the Ancient Darkness| | |Month of Gorokh| | |the Day of the Moon| First day of the week| |the Day of the Bull| Second day of the week| |the Day of the Deception| Third day of the week | |the Day of Thunder| Fourth day of the week | |the Day of Freedom| Fifth day of the week| |the Day of the Great Gods| Sixth day of the week | |the Day of the Sun| Last day of the week| |Night| Between 9:00 pm and 5:00 am | |Dawn| Between 5:00 am and 8:00 am | |Morning| Between 8:00 am and 13:00am | |Noon| Between 13:00 am and 1:00 pm | |Evening| Between 1:00 pm and 6:00 pm | |Dusk| Between 6:00 pm and 9:00 pm | IP-Address : 87.67.125.37 Old Revision: none New Revision: http://wiki.metalforge.net/doku.php/cfpython:tod -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Fri Nov 16 07:35:49 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Fri, 16 Nov 2007 07:35:49 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo:time_of_day_based_events Message-ID: <1195220149.102865.19393.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/16 07:35 User : tchize Edit Summary: @@ -21,8 +21,9 @@ * Perhaps connected values alter/default, so scorn gates are open during the day, closed at night. -> predefined python filters can be used on event, object can bythemself trigger some connected value at specific time * Add Gridarta UI to easily use prebuild python scripts -> asked to gridarta team, they are thinking about script UI ==== current stage ==== + Approximatively 80% work done on this. Still need to build a few script, like one to alter the destination of a map depending on hour and another to freeze/make alive all monster in map at a certain time. Note: some things below may only be working currently on developper's computer and may not yet have been commited === C code === * Transfert of Month/weekday/season names to plugins * Add notions for periods of the day? (night, dawn, morning, noon, evening, dusk/sunset) IP-Address : 91.177.208.223 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo:time_of_day_based_events?rev=1195220043 New Revision: http://wiki.metalforge.net/doku.php/dev_todo:time_of_day_based_events -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sat Nov 17 15:46:09 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 17 Nov 2007 15:46:09 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython:tod Message-ID: <1195335969.139780.26696.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/17 15:46 User : tchize Edit Summary: @@ -37,8 +37,9 @@ |Noon| Between 13:00 am and 1:00 pm | |Evening| Between 1:00 pm and 6:00 pm | |Dusk| Between 6:00 pm and 9:00 pm | + For demonstration of the scripts, mapmakers are invited to take a look at the demo map at /test/tod ===== Filtering based on period list ===== ==== match any ==== Script name: **/python/tod/filter_one_period.py** @@ -52,9 +53,9 @@ end If any of the period of day/year mentionned in parameter match the current server time, the event will be propagated. Otherwise it will be stopped. In this example, the object this event is attached too will be usable on ly during New Year, blizzard or Morning. - ===== Match all ===== + ==== Match all ==== Script name: **/python/tod/filter_all_periods.py** This script will stop the event from propagating if the current time of the server matches **all** of the times defined as script parameters. Typical use: arch event_apply @@ -95,4 +96,37 @@ name 69,Morning,The Season of New Year end This example will push the connected list number 69 of current Map upon entering a Morning of Season of New Year and release it when leaving that day. The source of the push and release will be the object the event is embedded in. + + ===== Changing object depending on time ===== + Those scripts can exchange object at specific period of times. When entering a matching period, the object for which the event is trigger get replaced by an object stored in the event. When leaving the matching period of time, the original object is restored and the replacement object is put back inside the event, hidden to the players. With this system you can replace any object with any other object. Typical use is to create gargoylesn that transfom into stone during the day, or werewolves that transforms during the nights of the Day of the moon. One important thing to keep in ming is that, is you use event_time to make the change, the originial object **and** the replacement object should create the time event. This is because the scriptnot only replace the orignial object by the one configured but also displace the event responsible for the script from the original object to the replacement. + + ==== Matching any period of a list ==== + Script name: **/python/tod/replace_one_period.py** + + This script will make the replacement upon matching any period of time given in argument list. Typical use: + + arch event_time + title Python + slaying /python/tod/replace_one_period.py + name Morning,Noon + arch beholder + end + end + + This script will, between Morning and Noon, replace it's containing object by the beholder that is inside the script. + + ==== Matching all periods of a list ==== + Script name: **/python/tod/replace_all_periods.py** + + This script, when matching all period of time given as argument, will do the swap. Typical use: + + arch event_time + title Python + slaying /python/tod/replace_one_period.py + name Night,the Day of the Moon + arch beholder + end + end + + This example will, during the Night of the Day of the Moon, replace it's container by a beholder. The container will be restored when leaving the period. IP-Address : 87.67.125.37 Old Revision: http://wiki.metalforge.net/doku.php/cfpython:tod?rev=1195334964 New Revision: http://wiki.metalforge.net/doku.php/cfpython:tod -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Thu Nov 22 16:29:28 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Thu, 22 Nov 2007 16:29:28 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython:tod Message-ID: <1195770568.610707.19839.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/22 16:29 User : tchize Edit Summary: Up to date documentation with trunk @@ -1,14 +1,35 @@ ====== Time based python scripts ====== - The folder /python/tod in crossfire maps contains several script ready to be linked to event_xxxx object in map editor. All those scripts use the notion of period of the day and period of the year, they do different things, but all use the same way to name period. It's simply the period name, as can be found in following table. The names are case sensitive. For scripts that accept several periods, name of periods are spearated by coma, please don't add additionnal spaces between coma and name of period - ===== Parameter values ===== + ===== Common conventions ===== + The folder /python/tod in crossfire maps contains several scripts ready to be linked to event_xxxx object in map editor. All those scripts use common naming and parameters conventions. + ==== JSON parameters ==== + All parameters are passed as arguments in //Message// of event, using JSON (JavaScript Object Notation). Basically, it takes the forms of "key" : "value" list enclosed in braces. Example: + { + "key1" : "value1", + "key2" : "value2", + + "key3" : "value3" + } + For boolean type, the possible values are ''True'' and ''False'', other type are, for now, only String between double quotes. Some script parameters accept list of value. A list uses square bracket and separate it's value by comas. Example: + + { + "key" : "skeleton kills" + "when" : ["Dawn","Morning","Noon","Evening","Dusk"] + "from" : ["skeleton","generator"], + "to" : ["bones1","bones2","bones3"], + "match" : "one" + } + + I hope to see gridarta editor be able to edit such structure for you, but until then you will have to do it by hand. It's not very complex to understand anyway. + ==== Period type parameter values ==== + All time based scripts use the notion of period name, as can be found in following table. The names are case sensitive. ^ name of period ^ description ^ - |The Season of New Year| Starting 1st month, ending 3rd month| - |The Season of Growth| Starting 4th month, ending 6st month| - |The Season of Harvest| Starting 7th month, ending 9th month| - |The Season of Decay| Starting 10th month, ending 12th month| - |The Season of the Blizzard| Starting 13th month, ending 17th month| + |The Season of New Year| Starting 1st month of the year, ending 3rd month| + |The Season of Growth| Starting 4th month of the year, ending 6st month| + |The Season of Harvest| Starting 7th month of the year, ending 9th month| + |The Season of Decay| Starting 10th month of the year, ending 12th month| + |The Season of the Blizzard| Starting 13th month of the year, ending 17th month| |Month of Winter| | |Month of the Ice Dragon| | |Month of the Frost Giant| | |Month of Valriel| | @@ -38,96 +59,52 @@ |Noon| Between 13:00 am and 1:00 pm | |Evening| Between 1:00 pm and 6:00 pm | |Dusk| Between 6:00 pm and 9:00 pm | - For demonstration of the scripts, mapmakers are invited to take a look at the demo map at /test/tod - ===== Filtering based on period list ===== - ==== match any ==== - - Script name: **/python/tod/filter_one_period.py** - - This script will stop the event from propagating if the current time of the server matches **any** of the times defined as script parameters. Typical use: - - arch event_apply - title Python - slaying /python/tod/filter_one_period.py - name The Season of New Year,The Season of the Blizzard,Morning - end - - If any of the period of day/year mentionned in parameter match the current server time, the event will be propagated. Otherwise it will be stopped. In this example, the object this event is attached too will be usable on ly during New Year, blizzard or Morning. - - ==== Match all ==== - Script name: **/python/tod/filter_all_periods.py** - - This script will stop the event from propagating if the current time of the server matches **all** of the times defined as script parameters. Typical use: - arch event_apply - title Python - slaying /python/tod/filter_all_periods.py - name the Day of the Moon,The Season of the Blizzard,Morning - end - - If all of the period of day/year mentionned in parameter match the current server time, the event will be propagated. Otherwise it will be stopped. In this example, the object this event is attached too will be usable only during Mornings of days of the moon during the season of Blizzard. - - - ===== Scheduling map triggers ===== - Those scripts run a "connected" list inside the current map, at a specific time. Arguments required by those scripts are, the value of the "connected" chain to run and the periods of time concerned by this triggering. Those script could be used by any event, however it is typical to use them in the EVENT_TIME of a living object, so as to ensure the script is run often enough to react on time. However you could, without trouble, use it in EVEN_DEATH or a monster, EVENT_APPLY of a button, etc. Just keep in mind the script can't do anything unless it get called ;) - - ==== On any matching period of time ==== - Script name: **/python/tod/push_one_period.py** - - This will trigger the connected list if any of the specified periods matches the current time of server. The "source" of the trigger will be the object containing event. The script will "push" the connected list when entering period and "release" it when exiting period. The script will keep correct state, whatever happens concerning map loading / caching. Upon reload, it will resynchronized to current server state and take appropriate action to "release" or "push" the connected list. The first argument or parameter list is always the integer number of connected list to trigger. - - Typical use: + For demonstration of the scripts, mapmakers are invited to take a look at the demo maps at /test/tod and test/tod2 - arch event_time - title Python - slaying /python/tod/push_one_period.py - name 69,Morning,Noon - end + ===== Available scripts ===== + ==== Filtering ==== + **Script** /python/tod/filter.py - This example will trigger the connected list number 69 on current map whenever it is Morning or Noon. - ==== On matching all periods ==== - Script name: **/python/tod/push_all_periods.py** + **Description** TODO - This will trigger the connected list if all of the specified periods matches the current time of server. The "source" of the trigger will be the object containing event. The script will "push" the connected list when entering period and "release" it when exiting period. The script will keep correct state, whatever happens concerning map loading / caching. Upon reload, it will resynchronized to current server state and take appropriate action to "release" or "push" the connected list. The first argument or parameter list is always the integer number of connected list to trigger. + **Parameters** + * **when**(list): periods of day when this filter lets event it is attached to happen. + * **match**: one or all, whethever only one match in list is needed or all must match current time + * **inverse**: if true, a match is seen as a non-match and vice version. See that as a "everytime except when ...." rule - Typical use: - arch event_time - title Python - slaying /python/tod/push_all_periods.py - name 69,Morning,The Season of New Year - end - This example will push the connected list number 69 of current Map upon entering a Morning of Season of New Year and release it when leaving that day. The source of the push and release will be the object the event is embedded in. + ==== Pushing ==== + **Script** /python/tod/push.py - ===== Changing object depending on time ===== - Those scripts can exchange object at specific period of times. When entering a matching period, the object for which the event is trigger get replaced by an object stored in the event. When leaving the matching period of time, the original object is restored and the replacement object is put back inside the event, hidden to the players. With this system you can replace any object with any other object. Typical use is to create gargoylesn that transfom into stone during the day, or werewolves that transforms during the nights of the Day of the moon. One important thing to keep in ming is that, is you use event_time to make the change, the originial object **and** the replacement object should create the time event. This is because the scriptnot only replace the orignial object by the one configured but also displace the event responsible for the script from the original object to the replacement. + **Description**: Schedules a map trigger at a specific period of time. It runs a "connected" list inside the current map, at a specific time. This script could be used by any event, however it is typical to use it in the EVENT_TIME of a living object, so as to ensure the script is run often enough to react on time. However you could, without trouble, use it in EVEN_DEATH or a monster, EVENT_APPLY of a button, etc. Just keep in mind the script can't do anything unless it get called ;) This script keep information on it's current push state, so it won't push twice the connected list and will release the connected list when needed. - ==== Matching any period of a list ==== - Script name: **/python/tod/replace_one_period.py** + **Parameters** + * **when**(list): periods of day when this script will stay "pushed". + * **match**: one or all, whethever only one match in list is needed or all list must match current time + * **inverse**: if true, a match is seen as a non-match and vice version. See that as a "everytime except when ...." rule + * **connected**: what to push/release in map - This script will make the replacement upon matching any period of time given in argument list. Typical use: + ==== Object transforming ==== + **Script** /python/tod/replace.py - arch event_time - title Python - slaying /python/tod/replace_one_period.py - name Morning,Noon - arch beholder - end - end + **Description**: Makes the object is is attached to swap at given periods of day with a specifc object in the event's inventory. To use it, give this event's parameters a period an a match rule. Put also in the inventory the swapped object (owner of event) the object that will replace it. The swap is reversed when leaving the swap matching period. This work both on map items and on inventory items. Typically this script would be attached to the event_time of the object to transform. - This script will, between Morning and Noon, replace it's containing object by the beholder that is inside the script. + **Parameters** + * **when**(list): periods when this script's owner will stay transformed. + * **match**: one or all, whethever only one match in list is needed or all list must match current time + * **inverse**: if true, a match is seen as a non-match and vice version. See that as a "everytime except when ...." rule - ==== Matching all periods of a list ==== - Script name: **/python/tod/replace_all_periods.py** + ==== Map transforming ==== - This script, when matching all period of time given as argument, will do the swap. Typical use: + **Script** /python/tod/replace_in_map.py - arch event_time - title Python - slaying /python/tod/replace_one_period.py - name Night,the Day of the Moon - arch beholder - end - end + **Description**: Scan the current map of objects matching some criterias and transform them into another specific object. Like for Object Transforming, the transformation is reverted at end of specified period. This work ony on map items. Typically this script would be attached to the event_time of guardian object. - This example will, during the Night of the Day of the Moon, replace it's container by a beholder. The container will be restored when leaving the period. + **Parameters** + * **when**(list): periods when this script's owner will stay transformed. + * **match**: one or all, whethever only one match in list is needed or all list must match current time + * **inverse**: if true, a match is seen as a non-match and vice version. See that as a "everytime except when ...." rule + * **from**(list): criterias that map object must match to be transformed + * **to**(list): name of object that will be created to replace transformed object. The newly created objects will be made unpickable so they stay on the map. + * **key**: a keyword used to keep track of transformed object when time comes to untransform them. This is used to prevent clash if several transformation script are working on same map IP-Address : 91.177.206.171 Old Revision: http://wiki.metalforge.net/doku.php/cfpython:tod?rev=1195336081 New Revision: http://wiki.metalforge.net/doku.php/cfpython:tod -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Thu Nov 22 16:39:03 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Thu, 22 Nov 2007 16:39:03 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1195771144.001883.19863.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/22 16:39 User : tchize Edit Summary: method list of crossfire mudle visible in toc @@ -46,9 +46,16 @@ ===== Return value ===== The return value of the script can be manipulated through the ''[[cfpython#GetReturnValue|GetReturnValue]]'' and ''[[cfpython#SetReturnValue|SetReturnValue]]'' functions. Signification of this value depends on the event being handled. - ====== Python API reference ====== + ====== Crossfire module ====== + + To use the crossfire module, add to your python script: + + import Crossfire + + + The following functions and objects are available to all scripts using the Crossfire module through ''import Crossfire''. **Convention:** in the reference, ''xxx()'' specifies a method, ''xxx'' specifies a property. ===== Constants ===== @@ -78,80 +85,72 @@ will write NORTH => 1 **Warning**: Python doesn't know about constants, thus scripts can modify those values. Doing this can lead to weird results, and should be avoided at all cost. Note that the C code itself is immune to the changes, only the scripts would suffer. - ===== Crossfire module methods ===== - - ==== Event-related functions ==== - Those functions let the script know in what context it was called. - - === WhoAmI === + ===== Methods ===== + ==== WhoAmI ==== Returns the ''Crossfire.Object'' from which the event being handled was raised, corresponds to the ''[[server_plugin#Hooking to an object-specific event|op]]'' parameter of the event. Can be ''None''. For a map event, this is a ''Crossfire.Map'' - === WhoIsActivator === + ==== WhoIsActivator ==== Returns the ''Crossfire.Object'' having caused the event being handled, corresponds to the ''[[server_plugin#Hooking to an object-specific event|activator]]'' parameter of the event. Can be ''None''. - === WhoIsOther === + ==== WhoIsOther ==== Returns the ''Crossfire.Object'' being part of the event, corresponds to the ''[[server_plugin#Hooking to an object-specific event|third]]'' parameter of the event. Can be ''None''. - === WhatIsMessage === + ==== WhatIsMessage ==== Returns the ''String'' that was sent as part of the event, corresponds to the ''[[server_plugin#Hooking to an object-specific event|message]]'' parameter of the event. - === ScriptName === + ==== ScriptName ==== Returns the absolute path of the currently executing script. - === ScriptParameters === + ==== ScriptParameters ==== This ''String'' variable contains: * for a global event, the name of the event (''born'', ''gkill'', ...) * for an event hooked to an object, the ''name'' field of the object * for a custom command, the parameters the player sent - === WhatIsEvent === + ==== WhatIsEvent ==== ''Crossfire.Object'' representing the event object that links to the plugin. Will be ''None'' for global events and custom commands. - === GetReturnValue === + ==== GetReturnValue ==== Return current return value. - === SetReturnValue === + ==== SetReturnValue ==== Parameters: * return value (integer) Sets the value the plugin will return to the server when the script exits. Value and effect depend on the event being handled. - === PluginVersion === + ==== PluginVersion ==== Returns an integer representing the Python plugin version. - ==== Configuration-related functions ==== - Those functions let the script know about various server settings. - === MapDirectory === + ==== MapDirectory ==== Returns the system directory containing the maps. Note that it is relative to the ''Data'' directory. - === UniqueDirectory === + ==== UniqueDirectory ==== Returns the system directory where unique items and maps are stored. - === TempDirectory === + ==== TempDirectory ==== Returns the system directory where temporary files are stored. - === ConfigDirectory === + ==== ConfigDirectory ==== Returns the system directory containing configuration files. - === LocalDirectory === + ==== LocalDirectory ==== Returns the system directory containing read/write files. - === PlayerDirectory === + ==== PlayerDirectory ==== Returns the system directory containing player files. - === DataDirectory === + ==== DataDirectory ==== Returns the system directory containing read-only data. - ==== Data access functions ==== - Those functions enable the script to browse runtime data and objects (maps, players, ...). - === FindPlayer === + ==== FindPlayer ==== Parameter: * player name (string) Returns a ''[[cfpython#crossfire.player_methods_and_attributes|Crossfire.Player]]'' object for specified player, based on partial name matching, or ''None'' if not found. If only one player name can match, return this player, else return ''None''. - === GetArchetypes === + ==== GetArchetypes ==== Returns a Python ''list'' containing ''[[cfpython#crossfire.archetype_methods_and_attributes|Crossfire.Archetype]]'' objects representing all archetypes the server knows. Should not be called lightly, as this can take some time. - === GetMaps === + ==== GetMaps ==== Returns a Python ''list'' containing ''[[cfpython#crossfire.map_methods_and_attributes|Crossfire.Map]]'' objects, one for each map currently being loaded. This includes random and unique maps. - === GetParties === + ==== GetParties ==== Returns a Python ''list'' containing ''[[cfpython#crossfire.party_methods_and_attributes|Crossfire.Party]]'' objects, one for each existing party on the server. - === GetRegions === + ==== GetRegions ==== Returns a Python ''list'' containing ''[[cfpython#crossfire.region_methods_and_attributes|Crossfire.Region]]'' objects, one for each region. - === GetFriendlyList === + ==== GetFriendlyList ==== Returns a ''list'' of ''[[cfpython#crossfire.object_methods_and_attributes|Crossfire.Object]]'' representing all items on the friendly list. Individual objects can be added/removed through their ''Friendly'' flag. - === GetPlayers === + ==== GetPlayers ==== Returns a ''list'' containing ''[[cfpython#crossfire.player_methods_and_attributes|Crossfire.Players]]'' objects, one for each player on the server - === GetTime === + ==== GetTime ==== Returns a Python ''list'' corresponding to the in-game server time. Fields are (start at ''0'' to access): - year - month - day @@ -159,56 +158,53 @@ - minute - day of week - week of month - season - === MapHasBeenLoaded === + ==== MapHasBeenLoaded ==== Parameter: * map path (''String'') Returns the ''[[cfpython#crossfire.map_methods_and_attributes|Crossfire.Map]]'' with specified path, or ''None'' if such a map isn't loaded. Will not try to load the map, see ''[[cfpython#readymap|Crossfire.ReadyMap]]'' for that. - === FindFace === + ==== FindFace ==== Parameter: * face name (''String'') Returns the number of the specified face, 0 if it doesn't exist. The face name is the name as it appears in the archetypes, ie ''dcross-red1.111'', without the set name or extension. - === FindAnimation === + ==== FindAnimation ==== Parameter: * animation name (''String'') Returns the number of the specified animation, 0 if it doesn't exist. The name is has it appears in the archetypes, ie ''campfire'' or ''bat''. - ==== Action functions ==== - Those functions enable the script to manipulate runtime objects. - === ReadyMap === + ==== ReadyMap ==== Loads specified map, and returns a ''Crossfire.Map'' object wrapping it. Will return ''None'' if map couldn't be found. Parameter: * ''String'', the map path to load * ''Number'', flags, optional. Combination of the following values: * 2: map is a player's unique map. Path is assumed to be the full path already, and it won't be changed * 16: map is reloaded anyway, even if it is already loaded - === CreateObject === + ==== CreateObject ==== Returns an empty object which can then be manipulated and inserted in a map. - === CreateObjectByName === + ==== CreateObjectByName ==== Parameters: * object or archetype name (''String'') Returns object with specified archetype or object name, or ''None'' if no object has the name, and archetype wasn't found. - === CreateMap === + ==== CreateMap ==== Parameters: * map width (''Number'') * map height (''Number'') Returns an empty map of specified dimensions. Unless map is removed immediately, ''Path'' should be set so the map correctly displays in the ''maps'' output. - ==== Misc functions ==== - === Log === + ==== Log ==== Parameters: * level (Crossfire.LogError, Crossfire.LogInfo, Crossfire.LogDebug or Crossfire.LogMonster) * message (string) @@ -216,9 +212,9 @@ python build-in "print" method. Using this, scripts take advantage of Debug and Monster level which can be hidden at will by server admin (log level), and have access to the error level, mentioning to admin serious troubles. Example: Crossfire.Log(Crossfire.LogDebug,'Player %s entered guild %s' %obj.Name %guildName) - === RegisterCommand === + ==== RegisterCommand ==== Parameters: * command name (string) * script (string) * speed (decimal, must be positive or 0) @@ -229,40 +225,40 @@ When the command is called, the following methods will provide information: * ''WhoAmI'' contains the player * ''ScriptName'' contains the currently executing script's name * ''ScriptParameters'' contains any parameter the player added to the command. FIXME {can NULL be passed?} - === RegisterGlobalEvent === + ==== RegisterGlobalEvent ==== Parameters: * event code (''Number'', should be one of the ''Crossfire.EventType.xxx'' constants) This instructs the server to call the Python plugin for all events of specified type. Python will then call scripts in the ''/python/events/xxx'' directory, where ''xx'' is the event's name. This function should not be used except in special circumstances, as Python by default registers all events anyway. - === UnregisterGlobalEvent === + ==== UnregisterGlobalEvent ==== Parameters: * event code (''Number'', should be one of the ''Crossfire.EventType.xxx'' constants) This instructs the server to stop calling the Python plugin for all events of specified type. This function should not be used, except in special circumstances, as it can disable other scripts that use those events. - === DestroyTimer === + ==== DestroyTimer ==== Removes a timer created through a call to ''[[cfpython#AddTimer|Crossfire.Object.AddTimer]]''. Arguments: * ''Number'': timer identifier. Returns: * 0: no error. * -1: invalid timer identifier. - === GetPrivateDictionary === + ==== GetPrivateDictionary ==== Returns a Python ''dictionary'' the script can use to store data between runs. This data is not shared with other scripts. Note that data will be lost in case of server restart. - === GetSharedDictionary === + ==== GetSharedDictionary ==== Returns a Python ''dictionary'' the script can use to share data with other scripts. Note that data will be lost in case of server restart. - === MatchString === + ==== MatchString ==== Parameters: * string to be searched * pattern to search for IP-Address : 91.177.206.171 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1195509909 New Revision: http://wiki.metalforge.net/doku.php/cfpython -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Thu Nov 22 16:42:56 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Thu, 22 Nov 2007 16:42:56 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1195771376.983631.19881.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/22 16:42 User : tchize Edit Summary: @@ -265,21 +265,25 @@ Returns ''1'' if string matches the pattern, ''0'' else. Pattern can be a regular expression FIXME specifications - ===== Crossfire.Archetype methods and attributes ===== + + ===== Archetype class ===== This represents an archetype, from which all objects are derived. Pointer to such item can be obtained through the ''Crossfire.Object.Archetype'' or the list returned by ''Crossfire.GetArchetypes()''. - Properties: - * Clone: returns a ''Crossfire.Object'' representing the default values for items of that archetype. Will never be ''None''. Its values can't be changed (but trying to change one will not result in any error) - * Head: archetype to which this archetype is linked to. Will be ''None'' if not applicable - * Name: archetype's name - * Next: next archetype in the archetype list. Will be ''None'' for last item - * More: next archetype linked to current archetype. Will be ''None'' for last item - - Methods: - * NewObject: returns a ''Crossfire.Object'' having this archetype as type. It isn't on any map or in any inventory, so should be inserted somewhere or deleted if not used. + ==== Clone ==== + A ''Crossfire.Object'' property representing the default values for items of that archetype. Will never be ''None''. Its values can't be changed (but trying to change one will not result in any error) + ==== Head ==== + archetype to which this archetype is linked to. Will be ''None'' if not applicable + ==== Name ==== + archetype's name + ==== Next ==== + next archetype in the archetype list. Will be ''None'' for last item + ==== More ==== + next archetype linked to current archetype. Will be ''None'' for last item + ==== NewObject() ==== + Returns a ''Crossfire.Object'' having this archetype as type. It isn't on any map or in any inventory, so should be inserted somewhere or deleted if not used. ===== Crossfire.Object methods and attributes ===== FIXME link to dev:objects 's fields? split flag & such info. Make a table with property / mapping to object / Python type Properties in **bold** are read-write, others are read-only. Most properties are mapped to fields of the ''object'' structure. ''Boolean'' values are mapped to the various flags. IP-Address : 91.177.206.171 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1195771136 New Revision: http://wiki.metalforge.net/doku.php/cfpython -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Thu Nov 22 16:50:38 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Thu, 22 Nov 2007 16:50:38 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1195771838.060949.19896.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/22 16:50 User : tchize Edit Summary: more methods in table of content @@ -265,10 +265,11 @@ Returns ''1'' if string matches the pattern, ''0'' else. Pattern can be a regular expression FIXME specifications - - ===== Archetype class ===== + ====== Crossfire module classes ===== + All classes below are part of Crossfire module + ===== Archetype ===== This represents an archetype, from which all objects are derived. Pointer to such item can be obtained through the ''Crossfire.Object.Archetype'' or the list returned by ''Crossfire.GetArchetypes()''. ==== Clone ==== @@ -283,9 +284,9 @@ next archetype linked to current archetype. Will be ''None'' for last item ==== NewObject() ==== Returns a ''Crossfire.Object'' having this archetype as type. It isn't on any map or in any inventory, so should be inserted somewhere or deleted if not used. - ===== Crossfire.Object methods and attributes ===== + ===== Object ===== FIXME link to dev:objects 's fields? split flag & such info. Make a table with property / mapping to object / Python type Properties in **bold** are read-write, others are read-only. Most properties are mapped to fields of the ''object'' structure. ''Boolean'' values are mapped to the various flags. * **Name**: ''String'' containing the object's name * **NamePl**: ''String'' containing the object's plural name @@ -412,18 +413,17 @@ * **Duration** * **Skill** - ==== Methods ==== FIXME document all parameters. Link to relevant Crossfire function. Split in "standard function" and "helper function"? - === ActivateRune === + ==== ActivateRune ==== Current object springs like a trap, hitting the victim. Arguments: * ''Crossfire.Object'' that is the victim of the trap. - === AddExp === + ==== AddExp ==== Adds or subtracts experience to current object. Arguments: * ''number'', experience to add @@ -433,9 +433,9 @@ * 1: give player exp to total, no skill * 2: player gets nothing * 3: used when removing exp - === Apply === + ==== Apply ==== Current object applies specified object. The effect depends on the object being applied, which can be a potion, a trigger, ... Arguments: * ''Crossfire.Object'' to apply @@ -445,9 +445,9 @@ * 0: player or monster can't apply objects of that type * 1: has been applied, or there was an error applying the object * 2: objects of that type can't be applied if not in inventory - === Cast === + ==== Cast ==== Current object casts a spell. Arguments: * ''Crossfire.Object'' representing the spell to case @@ -461,35 +461,35 @@ Note that all checks related to spell-casting apply: enough sp/gp, knowing the skill, sufficient level, spot where magic isn't forbidden, ... The spell needn't be known to be known to be cast, though. - === CastAbility === + ==== CastAbility ==== Equivalent of ''Cast''. - === ChangeAbil === + ==== ChangeAbil ==== Displays relevant messages about resistances and so on changes. Arguments: * ''Crossfire.Object'' which is a force effect, or something that changes a player's attribute and was just added to inventory. - === CheckArchInventory === + ==== CheckArchInventory ==== Finds an object in current object's inventory. Arguments: * ''String'' representing the object name to find Will return the first object in inventory that has the specified name. Name must be the raw name, without bonuses and such. - === CheckInventory === + ==== CheckInventory ==== Finds an object in current object's inventory. Arguments: * ''String'' representing the object to find Will return the first object in inventory that has the specified name. Matching is done on archetype, and also match on start of the object name. - === CheckTrigger === + ==== CheckTrigger ==== Checks if current object should/can react to another object moving on it. Arguments: * ''Crossfire.Object'', ''cause'' that can cause current Object to react (altar, ...) @@ -498,17 +498,17 @@ * for TRIGGER_ALTAR objects, 1 if ''cause'' was destroyed, 0 if not. * TRIGGER: 1 if handle could be moved, 0 if not. * TRIGGER_BUTTON, TRIGGER_PEDESTAL: 0. - === CreateObject === + ==== CreateObject ==== Create an object inside the current object. Arguments: * ''String'' which is the name of the object to create Will create a new ''Crossfire.Object'' from specified name (like ''[[cfpython#Crossfire.CreateObjectByName|Crossfire.CreateObjectByName]]'') and insert it into the current object. - === CreateTimer === + ==== CreateTimer ==== Fires an ''event_timer'' after the specified delay. Object should have a handler for this event. Arguments: * ''number'', delay for timer @@ -517,34 +517,34 @@ * 2: delay is in server cycles Returns: timer identifier, which can be used to remove the timer through a call to ''[[cfpython#DestroyTimer|Crossfire.DestroyTimer]]'' - === Drop === + ==== Drop ==== Current object drops specified object, which will be put on the ground, or in a container, depending on applied containers. Argument: * ''Crossfire.Object'' to drop - === Fix === + ==== Fix ==== Current object is reinitialized from its default values, values (ac, wc, Str, ...) are recomputed from items worn, in inventory, ... - === ForgetSpell === + ==== ForgetSpell ==== Player forgets a spell. Arguments: * ''Crossfire.Object'' representing the spell to forget Object forgetting should be a player. - === GetResist === + ==== GetResist ==== Gets the value of a resistance to an attacktype. Arguments: * ''Number'': attacktype for which to get the resistance Return: ''Number'' with the value. Note that an invalid attacktype will return 0, which can't be distinguished from a neutral resistance. - === InsertInto === + ==== InsertInto ==== Insert the current object into another object. Arguments: * ''Crossfire.Object'', in which the current object will be inserted @@ -553,26 +553,26 @@ * ''Crossfire.Object'' representing the newly inserted object. After using this function, you should not use the initial ''Crossfire.Object'', as it can be merged with others. - === KnowSpell === + ==== KnowSpell ==== Checks if current object knows a spell. Arguments: * ''String'', name of the spell to check for Return: * ''Crossfire.Object'' representing the spell the object known, or ''None'' if this spell isn't known to the currect ''Crossfire.Object''. - === LearnSpell === + ==== LearnSpell ==== Make the current object learn a spell. Arguments: * ''Crossfire.Object'' representing the spell to learn There is no learning failure. Note that any spell can be learned this way. Player will receive the message that the spell was learnt correctly. - === Move === + ==== Move ==== Tries to move the object in a direction. Arguments: * ''Number'', direction to move to. Should be one of ''Crossfire.Direction.xxx'' value. @@ -580,9 +580,9 @@ Return: * 1 if object could move * 0 else - === OutOfMap === + ==== OutOfMap ==== Check a position on the object's map. Arguments: * ''Number'', ''x'' and ''y'' coordinates @@ -592,9 +592,9 @@ * 0 else Note that this function takes into account maps tiling. - === Pay === + ==== Pay ==== Buys an item. Arguments: * ''Crossfire.Object'' to buy @@ -604,9 +604,9 @@ * 0 else This function applies bargaining skill if applicable, and will handle shop-based price difference. Note that the object to buy doesn't need to have the FLAG_UNPAID set. - === PayAmount === + ==== PayAmount ==== Pays money. Arguments: * ''Number'', amount to pay for, in raw value units (silver coin) @@ -614,9 +614,9 @@ Return: * 1 if object could pay specified amount * 0 else - === QueryCost === + ==== QueryCost ==== Finds the price of an object. Arguments: * ''Crossfire.Object'' that current ''Crossfire.Object'' wants to know the price of @@ -624,49 +624,49 @@ Return value: * price of the item - === QueryName === + ==== QueryName ==== Return: ''String'' containing the object's full name. - === ReadKey === + ==== ReadKey ==== Reads key associated to value. Arguments: * ''String'': key value to read Return: ''String'' containing the value. Will be empty if NULL value. - === Remove === + ==== Remove ==== Destroys current object, which then becomes invalid. - === Reposition === + ==== Reposition ==== Moves current object to specified position on its current map. Arguments: * ''Number'', ''x'' and ''y'', coordinates of position to teleport the object to - === Say === + ==== Say ==== Current object says something in current map. Argument: * ''string'' to say. - === Speak === + ==== Speak ==== Current object says something in current map Argument: * ''string'' to say. Equivalent to ''Say''. - === Take === + ==== Take ==== Current object picks up specified object, which will be put in inventory, or in a container, depending on applied containers. Argument: * ''Crossfire.Object'' to take - === Teleport === + ==== Teleport ==== Teleports the object to specified place. Arguments: * ''Crossfire.Map'': map to insert into. @@ -674,17 +674,17 @@ * ''Number'': y coordinates Return value: ''Number'', 0 for success, 1 for failure. - === WriteKey === + ==== WriteKey ==== Inserts specified key/value in the object. Arguments: * ''String'': key value * ''String'': value to associate to the key * ''Number'' (optional, defaults to 0): 0 to only update the key and not insert it, non zero to add it anyway. - ===== Crossfire.Map methods and attributes ===== + ===== Map ===== Properties in **bold** are read-write, others read only. * Difficulty: ''Number'' * **Path**: ''String'' * TempName: ''String'' @@ -797,9 +797,9 @@ ==== GetPlayers ==== Return value: a ''list'' of ''Crossfire.Players'' - ===== Crossfire.Region methods and attributes ===== + ===== Region ===== This class encapsulates an in-game region. Properties are read-only. * Name: ''String'' * Longname: ''String'' * Message: ''String'' IP-Address : 91.177.206.171 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1195771370 New Revision: http://wiki.metalforge.net/doku.php/cfpython -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Thu Nov 22 16:53:30 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Thu, 22 Nov 2007 16:53:30 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1195772010.920107.19902.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/22 16:53 User : tchize Edit Summary: @@ -806,9 +806,10 @@ * ''Number'', X and Y, coordinates where to insert Return: ''Crossfire.Object'' representing the inserted object. Can be ''None'' if object was removed for some reason (eaten by an altar, ...) - ===== Crossfire.Player methods and attributes ===== + + ===== Player ===== This class inherits from Crossfire.Object, and introduces the new properties (bold = read-write): * IP: ''String''. * **BedMap**: ''string'' containing the map in which the player last saved. * **BedX** : ''number'' containing the x coordinate of last savebed. IP-Address : 91.177.206.171 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1195771940 New Revision: http://wiki.metalforge.net/doku.php/cfpython -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Thu Nov 22 16:52:25 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Thu, 22 Nov 2007 16:52:25 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1195771945.818222.19899.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/22 16:52 User : tchize Edit Summary: moved default script top, mught interrest more people @@ -45,8 +45,55 @@ Check ''[[cfpython#RegisterCommand|Crossfire.RegisterCommand]]''. ===== Return value ===== The return value of the script can be manipulated through the ''[[cfpython#GetReturnValue|GetReturnValue]]'' and ''[[cfpython#SetReturnValue|SetReturnValue]]'' functions. Signification of this value depends on the event being handled. + + ====== Scripts part of Crossfire default maps ====== + Those Python scripts reside in the [[http://crossfire.svn.sourceforge.net/viewvc/crossfire/maps/trunk/python/|python]] subdirectory of the maps tree. They provide additional functionality, and may be considered as always present. + FIXME {describe existing ones} + + ===== Dialog Helper ===== + Script location: ''/python/CFDialog.py'' + + This script provides two utility classes a map maker can use to easily create complex dialogs. + Go [[cfdialog#here]] for a complete explanation on how it works. + + ===== Death message ===== + Script location: ''/python/misc/death_message.py'' + + This script makes the monster/living thing containing it display a message when it dies. It should be hooked through an ''event_death'' archetype in monster's inventory. + + Message is specified in event object's options field. It can contain %m and %k, which will be replaced by respectively dead item's name and killer's name (if no killer, replaced by an empty string). + + ===== Greeting message ===== + Script location: ''/python/misc/greet_message.py'' + + This script makes the monster/living thing containing it display a message when it attacks for the first time an enemy. It should be hooked through an ''event_time'' archetype in monster's inventory. + + Message is specified in event object's options field. It can contain %m and %e, which will be replaced by respectively monster's name and enemy's name. + + + ===== Experience rewarder ===== + Script location: ''/python/items/experience_rewarder.py'' + + This script will give experience to the "activating" player. It should be linked through the "trigger" event of an altar, or similar thing. + + Options are specified in the event object's fields. + + A key/value will be used to store in the player if she activated the item already. + + Available options are: + * exp: experience to gain + * skill: skill to add experience to. Can be empty, in which case exp is given to the general exp only + * wc: what to do when the player doesn't know the skill: + * 0: give the player the skill + * 1: give player exp to total, no skill + * 2: player gets nothing + * race: if set, the player can only use once this item. + ===== Time of the day ===== + Scripts location: ''/python/tod/*.py'' + + Those scripts add behaviour to items based on time of the day. Want to open doors at specific time, make werewolfes, deactivate a magic_mouth during the Season of Winter? Those scripts are ready to use. See [[cfpython:tod|time of day based python scripts]] ====== Crossfire module ====== To use the crossfire module, add to your python script: @@ -806,51 +853,4 @@ * Next: ''Crossfire.Region'' ==== Parent ==== Return value: a ''Crossfire.Region'', or ''None'' if no parent region. - - ====== Scripts part of Crossfire default maps ====== - Those Python scripts reside in the [[http://crossfire.svn.sourceforge.net/viewvc/crossfire/maps/trunk/python/|python]] subdirectory of the maps tree. They provide additional functionality, and may be considered as always present. - FIXME {describe existing ones} - - ===== Dialog Helper ===== - Script location: ''/python/CFDialog.py'' - - This script provides two utility classes a map maker can use to easily create complex dialogs. - Go [[cfdialog#here]] for a complete explanation on how it works. - - ===== Death message ===== - Script location: ''/python/misc/death_message.py'' - - This script makes the monster/living thing containing it display a message when it dies. It should be hooked through an ''event_death'' archetype in monster's inventory. - - Message is specified in event object's options field. It can contain %m and %k, which will be replaced by respectively dead item's name and killer's name (if no killer, replaced by an empty string). - - ===== Greeting message ===== - Script location: ''/python/misc/greet_message.py'' - - This script makes the monster/living thing containing it display a message when it attacks for the first time an enemy. It should be hooked through an ''event_time'' archetype in monster's inventory. - - Message is specified in event object's options field. It can contain %m and %e, which will be replaced by respectively monster's name and enemy's name. - - - ===== Experience rewarder ===== - Script location: ''/python/items/experience_rewarder.py'' - - This script will give experience to the "activating" player. It should be linked through the "trigger" event of an altar, or similar thing. - - Options are specified in the event object's fields. - - A key/value will be used to store in the player if she activated the item already. - - Available options are: - * exp: experience to gain - * skill: skill to add experience to. Can be empty, in which case exp is given to the general exp only - * wc: what to do when the player doesn't know the skill: - * 0: give the player the skill - * 1: give player exp to total, no skill - * 2: player gets nothing - * race: if set, the player can only use once this item. - ===== Time of the day ===== - Scripts location: ''/python/tod/*.py'' - - Those scripts add behaviour to items based on time of the day. Want to open doors at specific time, make werewolfes, deactivate a magic_mouth during the Season of Winter? Those scripts are ready to use. See [[cfpython:tod|time of day based python scripts]] IP-Address : 91.177.206.171 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1195771832 New Revision: http://wiki.metalforge.net/doku.php/cfpython -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Thu Nov 22 16:54:04 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Thu, 22 Nov 2007 16:54:04 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1195772044.290717.19905.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/22 16:54 User : tchize Edit Summary: @@ -836,9 +836,10 @@ ==== Write ==== Equivalent of Message. - ===== Crossfire.Party methods and attributes ===== + + ===== Party ===== This class merely encapsulates a party. Everything is read-only. Attributes: * Name: ''String'' * Password: ''String'' * Next: ''Crossfire.Party'' IP-Address : 91.177.206.171 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1195772005 New Revision: http://wiki.metalforge.net/doku.php/cfpython -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Thu Nov 22 16:58:08 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Thu, 22 Nov 2007 16:58:08 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython:tod Message-ID: <1195772288.054460.19914.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/22 16:58 User : tchize Edit Summary: @@ -1,7 +1,7 @@ ====== Time based python scripts ====== ===== Common conventions ===== - The folder /python/tod in crossfire maps contains several scripts ready to be linked to event_xxxx object in map editor. All those scripts use common naming and parameters conventions. + The folder [[http://crossfire.svn.sourceforge.net/viewvc/crossfire/maps/trunk/python/tod|python/tod]] in crossfire maps contains several scripts ready to be linked to event_xxxx object in map editor. All those scripts use common naming and parameters conventions. ==== JSON parameters ==== All parameters are passed as arguments in //Message// of event, using JSON (JavaScript Object Notation). Basically, it takes the forms of "key" : "value" list enclosed in braces. Example: { "key1" : "value1", @@ -59,9 +59,9 @@ |Noon| Between 13:00 am and 1:00 pm | |Evening| Between 1:00 pm and 6:00 pm | |Dusk| Between 6:00 pm and 9:00 pm | - For demonstration of the scripts, mapmakers are invited to take a look at the demo maps at /test/tod and test/tod2 + For demonstration of the scripts, mapmakers are invited to take a look at the demo maps at [[http://crossfire.svn.sourceforge.net/viewvc/crossfire/maps/trunk/test/tod|test/tod]] and [[http://crossfire.svn.sourceforge.net/viewvc/crossfire/maps/trunk/test/tod2|test/tod2]] ===== Available scripts ===== ==== Filtering ==== **Script** /python/tod/filter.py IP-Address : 91.177.206.171 Old Revision: http://wiki.metalforge.net/doku.php/cfpython:tod?rev=1195770564 New Revision: http://wiki.metalforge.net/doku.php/cfpython:tod -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sat Nov 24 11:52:23 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 24 Nov 2007 11:52:23 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev:objects Message-ID: <1195926743.124174.27009.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/24 11:52 User : meflin Edit Summary: @@ -783,18 +783,32 @@ | 1 | 0 | | 2 | 1 | | 3 | 2 | | 4 | 3 | - | 5 | 5 | - | 6 | 8 | - | 7 | 11 | + | 5 | 4 | + | 6 | 4 | + | 7 | 7 | + | 8 | 9 | + | 9 | 11| + |10 | 13| + |11 | 15| + |12 | 18| + |13 | 21| + |14 | 24| + |15 | 27| + |16 | 30| + |17 | 35| + |18 | 40| + |19 | 45| + |20 | 50| + An enchantment is: * each plus an item has. * each point an item increases an ability. * each 20% protection an item gives (rounded normally, eg 0-9 counts as nothing, 10-29 counts as one, etc) * each attacktype a weapon has. - * spell path adjustments + * spell path adjustments ( denied paths -2 ) These properties have the following enchantment value *lifesaving 5 *reflect spells 3 @@ -802,9 +816,9 @@ *stealth 1 *xray vison 2 *see in dark 1 *invisibility 1 - + *slay 2 This same formula can be used for custom objects to figure out their item power. While the item_power field in the object structure is signed, in general, IP-Address : 71.229.157.100 Old Revision: http://wiki.metalforge.net/doku.php/dev:objects?rev=1192996016 New Revision: http://wiki.metalforge.net/doku.php/dev:objects -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Tue Nov 27 15:57:00 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 27 Nov 2007 15:57:00 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: linux Message-ID: <1196200620.860910.10902.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/27 15:56 User : meflin Edit Summary: @@ -137,15 +137,15 @@ === Server === The server installation command is the following: - $ yum update; yum install crossfire.i386 + $ yum update; yum install crossfire Note: you may need to use the sudo command to install these packages $ sudo yum update;sudo yum install crossfire.i386 - This will install the Crossfire server and the current map set. For those using a 64bit system, you need to replace i386 with x86_64 (for instance, crossfire.x86_64) + This will install the Crossfire server and the current map set. If necessary, you can stop, start or restart the crossfire server via the following commands, respectively: $ /etc/init.d/crossfire stop @@ -161,19 +161,20 @@ === Client === Installation of the client has a similar syntax. - $ yum install crossfire-client.i386 - - For those using a 64bit system, you need to replace i386 with x86_64 (for instance, crossfire-client.x86_64) + $ yum install crossfire-client === Launch Client === - To launch the client, hit alt+f2 and then enter **gcfclient** + To launch the client run / or alt-F2 crossfire-client-gtk2 + + or select crossfire from your gnome or KDE menu for the gtk1 client (Minor Note: gcfclient stands for **G**TK **C**ross**F**ire **client**) FIXME - Add or update with a GUI install HOWTO for Fedora + ===== "Others" ===== FIXME - more information for the following "short list" of other Linux distros IP-Address : 71.229.157.100 Old Revision: http://wiki.metalforge.net/doku.php/linux?rev=1194915812 New Revision: http://wiki.metalforge.net/doku.php/linux -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Tue Nov 27 15:57:46 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 27 Nov 2007 15:57:46 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: linux Message-ID: <1196200666.160834.10905.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/27 15:57 User : meflin Edit Summary: @@ -126,11 +126,10 @@ * For crossfire-client-gtk2: **gcfclient2** (Minor Note: gcfclient stands for **G**TK **C**ross**F**ire **client**) - - ===== Fedora Core 6 & Fedora 7, Fedora 8 ===== - Crossfire is available in Fedora Core 6 and Fedora 7 & Fedora 8 projects. + ===== Fedora : Fedora 7, Fedora 8 ===== + Crossfire is available in Fedora Fedora 7 & Fedora 8 projects. ==== Installation ==== The easiest way to install Crossfire on [[wp>Fedora]] is to use the Fedora Package Collection. The version there may lag somewhat behind the latest release, but it will be tested for Fedora and automatically install any needed dependencies. (To stay current with the latest development version, see the [[http://crossfire.real-time.com/svn/index.html|Crossfire SVN page]] and the [[Crossfire Compile guide|crossfire_compile_guide]].) IP-Address : 71.229.157.100 Old Revision: http://wiki.metalforge.net/doku.php/linux?rev=1196200616 New Revision: http://wiki.metalforge.net/doku.php/linux -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Tue Nov 27 15:58:58 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 27 Nov 2007 15:58:58 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: linux Message-ID: <1196200738.967163.10908.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/27 15:58 User : meflin Edit Summary: @@ -140,9 +140,9 @@ $ yum update; yum install crossfire Note: you may need to use the sudo command to install these packages - $ sudo yum update;sudo yum install crossfire.i386 + $ sudo yum update;sudo yum install crossfire This will install the Crossfire server and the current map set. If necessary, you can stop, start or restart the crossfire server via the following commands, respectively: IP-Address : 71.229.157.100 Old Revision: http://wiki.metalforge.net/doku.php/linux?rev=1196200663 New Revision: http://wiki.metalforge.net/doku.php/linux -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Tue Nov 27 16:00:17 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 27 Nov 2007 16:00:17 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: linux Message-ID: <1196200817.012927.11884.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/27 16:00 User : meflin Edit Summary: @@ -171,15 +171,13 @@ (Minor Note: gcfclient stands for **G**TK **C**ross**F**ire **client**) FIXME - Add or update with a GUI install HOWTO for Fedora - ===== "Others" ===== FIXME - more information for the following "short list" of other Linux distros * Slackware - * Red Hat * Mandriva * SuSE * Gentoo IP-Address : 71.229.157.100 Old Revision: http://wiki.metalforge.net/doku.php/linux?rev=1196200736 New Revision: http://wiki.metalforge.net/doku.php/linux -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Tue Nov 27 18:31:48 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 27 Nov 2007 18:31:48 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: people Message-ID: <1196209908.125848.12438.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/27 18:31 User : buzzsaw Edit Summary: @@ -23,8 +23,9 @@ | Maarten Vanraes | [[user:alien]] | AL13N | [[http://sourceforge.net/users/alien999999999|alien999999999]] | | | | Mats Rauhala | | MasseR | | | | | Aaron Baugher | [[user:mhoram]] | Mhoram | [[http://sourceforge.net/users/aaron_baugher|aaron_baugher]] | | [[http://aaron.baugher.biz/|aaron.baugher.biz]] | | Kevin Bulgrien | [[user:kbulgrien]] | kbulgrien | [[http://sourceforge.net/users/kbulgrien|kbulgrien]] | | [[http://kbulgrien.home.att.net/|kbulgrien.home.att.net]] | + | Anthony Wyatt | [[user:buzzsaw]] | buzzsaw | | | | ===== Package Maintainers ===== ^ Full Name ^ irc ^ Distribution ^ IP-Address : 72.24.164.172 Old Revision: http://wiki.metalforge.net/doku.php/people?rev=1195033666 New Revision: http://wiki.metalforge.net/doku.php/people -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Tue Nov 27 18:33:56 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 27 Nov 2007 18:33:56 -0600 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page added: user:buzzsaw Message-ID: <1196210036.046599.12441.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/11/27 18:33 User : buzzsaw Edit Summary: created Um I am buzzsaw the only thing that I have realy contributed thus far would be the cool looking books for the spells. I plan on creating music and such. I relay don't have skills other that stumbling across dumb stuff. More to come... IP-Address : 72.24.164.172 Old Revision: none New Revision: http://wiki.metalforge.net/doku.php/user:buzzsaw -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From bogus@does.not.exist.com Tue Nov 20 18:58:31 2007 From: bogus@does.not.exist.com () Date: Wed, 21 Nov 2007 00:58:31 -0000 Subject: No subject Message-ID: ^ Some coloring/perspective hints/clarifications from David Sundqvist: ^ | Perspective in Crossfire is based on the XY coordinate system of possibl= e player movements, with a slight tilting of the graphics to allow for gre= ater detail and more interesting graphics, since walls have to be in tha= t perspective to allow joining. X and Y in graphics should correspond to X= and Y in the object. Z in the object is represented with 2 Y/X. \\ \\ Kee= ping perspective consistency is mainly important in fixed objects like bui= ldings, walls and other background. | | Light should generally come from the right side, so the left side of bui= ldings should be darker or shaded, as needed. | | Wind is generally coming from the left side, so smoke or other things af= fected by wind should be travelling towards the right side. | IP-Address : 70.254.39.97 Old Revision: none New Revision: http://wiki.metalforge.net/doku.php/graphics_guide --=20 This mail was generated by DokuWiki at http://wiki.metalforge.net/