From no-reply_wiki at metalforge.org Sun Apr 1 00:40:04 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 01 Apr 2007 00:40:04 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo_new Message-ID: <1175406004.116771.13934.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/01 00:40 User : Edit Summary: add central password repository @@ -31,8 +31,9 @@ | [[dev_todo:Time of day based events]] - Stuff happening based on the time of day. | 2.0 | 2 | None | Server/Maps | | | [[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| | | [[dev_todo:NPC Syntax Highlighting]] - use extended tags to make npc messages easier to understand | 2.0 | 3 | None | Maps | | | [[dev_todo:Discrete attack damage]] - add dam_fire/dam_cold, etc | 2.0 | 3 | None | Maps/Arch/Server | | | [[dev_todo:LandPlots|Land Plots]] - Allow a player to purchase land and build on it. | 2.0 | 3 | Planning | Server/Maps | [[user:Rednaxela]] | | [[dev_todo:music|Ambient Music]] - Background sounds and music. | 2.0 | 3 | None | Client/Server/Maps | | IP-Address : 209.204.178.229 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo_new?rev=1172170402 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 Sun Apr 1 01:06:49 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 01 Apr 2007 01:06:49 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page added: dev_todo:centralized_map_passwords Message-ID: <1175407609.640897.13968.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/01 01:06 User : Edit Summary: created Currently, passwords required on maps map be spread accross many different maps (eg, map A tells you the password that you need to use on map B). This works fine, but makes it very difficult to change passwords - one must find all occurences, update all the maps, and then hope that future map changes don't create conflicts. In addition, in some cases, the passwords themselves are not particularly unique words. In the case of the scorn town gate, the password is 'chain', which could match other messages related to chain mail, etc. The idea here is follows: Passwords (or other phrases) are placed in the map msg fields with tokens, like $SCORN_PASSWORD There is a centralized file (map/passwords?) that enumerate these passwords, eg: $SCORN_PASSWORD=chain $WHATEVER=foo bar During server startup, it reads this password file and records these pairings. Perhaps it also re-reads this file on demand as a DM action. When a map is first loaded from disk, the loader does special handling with any objects with msg fields - it looks for the keywords, and then does a substitution. I would suggest that it in fact looks for the $, and if it finds then, then matches up on the word. Note that these phrases do not need to be a single word. EG, this would be valid: $SKELETON1_RIDDLE=What is at the start of end and the end of time $SKELETON1_ANSWER=e There should perhaps also be DM commands so that the DM could decide to change the scorn password. However, if this was to be persistent, then perhaps a secondary password file (stored in the var area) is needed, and server reads both on startup. The map file could be copied to the /var area on installation, but that could once again lead to messier merge issues - it is probably safer to have two password files - one distributed with the maps that list all the known variables with default (current) values, and then a second one that overrrides those default values. As far as implementation steps: 1) Update the server to do the substitutions - I suggest this is done in C code, as it can be done as each object is loaded (or perhaps even special handling in the msg/endmesg area of hte lex loader looking for $). Some shortcuts could be done, like 'if op->msg && op->msg != op->arch->msg { look for $, do substitution logic}' 2) See if the editor can be modified/updated to handle this logic, to make it easier for map makers to set this up and manage it. 3) Start updating the maps, making the changes for the keywords. I'd suggest doing it by passphrase and not map (eg, update all occurences of chain, and not do a map X is now clean, but still have other references on other maps. Reason here is that if a passphrase is only half updated, it can't really be tested (changing in the password file won't work). I'd suggest that perl script looking for all @match entries (or perhaps pull all msg/endmsg data) from the maps could be done, to make this task easier. A fair number of conversations are clearly not candidates for this (telling players about quests). 4) Maybe extend this logic to the slaying field of objects, so what certain NPC wants to give information could easily be changed? IP-Address : 209.204.178.229 Old Revision: none New Revision: http://wiki.metalforge.net/doku.php/dev_todo:centralized_map_passwords -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sun Apr 1 01:14:05 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 01 Apr 2007 01:14:05 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo:centralized_map_passwords Message-ID: <1175408045.842539.13986.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/01 01:14 User : Edit Summary: @@ -6,31 +6,31 @@ The idea here is follows: Passwords (or other phrases) are placed in the map msg fields with tokens, like $SCORN_PASSWORD There is a centralized file (map/passwords?) that enumerate these passwords, eg: - $SCORN_PASSWORD=chain - $WHATEVER=foo bar + $SCORN_PASSWORD=chain + $WHATEVER=foo bar During server startup, it reads this password file and records these pairings. Perhaps it also re-reads this file on demand as a DM action. When a map is first loaded from disk, the loader does special handling with any objects with msg fields - it looks for the keywords, and then does a substitution. I would suggest that it in fact looks for the $, and if it finds then, then matches up on the word. Note that these phrases do not need to be a single word. EG, this would be valid: - $SKELETON1_RIDDLE=What is at the start of end and the end of time - $SKELETON1_ANSWER=e + $SKELETON1_RIDDLE=What is at the start of end and the end of time + $SKELETON1_ANSWER=e There should perhaps also be DM commands so that the DM could decide to change the scorn password. However, if this was to be persistent, then perhaps a secondary password file (stored in the var area) is needed, and server reads both on startup. The map file could be copied to the /var area on installation, but that could once again lead to messier merge issues - it is probably safer to have two password files - one distributed with the maps that list all the known variables with default (current) values, and then a second one that overrrides those default values. - As far as implementation steps: - 1) Update the server to do the substitutions - I suggest this is done in C code, as it can be done as each object is loaded (or perhaps even special handling in the msg/endmesg area of hte lex loader looking for $). Some shortcuts could be done, like 'if op->msg && op->msg != op->arch->msg { look for $, do substitution logic}' + As far as implementation steps: + - Update the server to do the substitutions - I suggest this is done in C code, as it can be done as each object is loaded (or perhaps even special handling in the msg/endmesg area of hte lex loader looking for $). Some shortcuts could be done, like 'if op->msg && op->msg != op->arch->msg { look for $, do substitution logic}' + - See if the editor can be modified/updated to handle this logic, to make it easier for map makers to set this up and manage it. + - Start updating the maps, making the changes for the keywords. I'd suggest doing it by passphrase and not map (eg, update all occurences of chain, and not do a map X is now clean, but still have other references on other maps. Reason here is that if a passphrase is only half updated, it can't really be tested (changing in the password file won't work). I'd suggest that perl script looking for all @match entries (or perhaps pull all msg/endmsg data) from the maps could be done, to make this task easier. A fair number of conversations are clearly not candidates for this (telling players about quests). + - Maybe extend this logic to the slaying field of objects, so what certain NPC wants to give information could easily be changed? - 2) See if the editor can be modified/updated to handle this logic, to make it easier for map makers to set this up and manage it. - 3) Start updating the maps, making the changes for the keywords. I'd suggest doing it by passphrase and not map (eg, update all occurences of chain, and not do a map X is now clean, but still have other references on other maps. - - Reason here is that if a passphrase is only half updated, it can't really be tested (changing in the password file won't work). - - I'd suggest that perl script looking for all @match entries (or perhaps pull all msg/endmsg data) from the maps could be done, to make this task easier. A fair number of conversations are clearly not candidates for this (telling players about quests). - - 4) Maybe extend this logic to the slaying field of objects, so what certain NPC wants to give information could easily be changed? + As far as DM or ability for players to change these passwords, there should perhaps be different access levels: + - Normal player, can't do anything special. + - Extended access granted through in game mechanisms (finishing quests, etc) which provide access to a limited set of changes (lords of scorn changing scorn password, or maybe changing business hours, or perhaps even shutting down shops temporarily). This adds some interest in that by doing some in-game stuff, you can have more noticable effects on the game world. + - Wiz access granted by server admin. These people would have access to everything/every region of #1 access (change passwords anywhere) plus some extended access (summon players, item creation, etc). There may be some wiz commands not available, like shutdown, which these people generally shouldn't have. + - Admin access, which can do anything provided through the crossfire interface (all dm commands) IP-Address : 209.204.178.229 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo:centralized_map_passwords?rev=1175407607 New Revision: http://wiki.metalforge.net/doku.php/dev_todo:centralized_map_passwords -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Mon Apr 2 12:36:37 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Mon, 02 Apr 2007 12:36:37 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1175535397.283670.17990.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/02 12:36 User : ryo Edit Summary: print info @@ -558,9 +558,9 @@ * Region: ''Crossfire.Region'' * Exists (special meaning, False if cf map has been freed from memory, True otherwise) Methods: - * Print + * Print: argument are ''String'', optional ''Number''. Prints the specified message to all players on the map, with specified flags (default is NDI_BLUE|NDI_UNIQUE). {FIXME} add flag description / equivalent of ext_info_map(). * ObjectAt * CreateObject * Check IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1175374497 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 Mon Apr 2 12:38:05 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Mon, 02 Apr 2007 12:38:05 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1175535485.282682.17993.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/02 12:38 User : ryo Edit Summary: fix code issue @@ -67,9 +67,12 @@ * ''Type'': object type, as defined in ''include/define.h'' * ''Move'': movement types, as defined in ''define/define.h'' Example: - ''whoami.Say("%s => %d"%(Crossfire.DirectionName[Crossfire.Direction.NORTH],Crossfire.Direction.NORTH))'' will write ''NORTH => 1'' + + whoami.Say("%s => %d"%(Crossfire.DirectionName[Crossfire.Direction.NORTH], Crossfire.Direction.NORTH)) + + 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. IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1175535387 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 Mon Apr 2 12:51:57 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Mon, 02 Apr 2007 12:51:57 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1175536318.005407.18023.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/02 12:51 User : ryo Edit Summary: MessageFlag @@ -64,9 +64,10 @@ The following constant types exist: * ''Direction'': contains NORTH, NORTHEAST, ..., NORTHWEST * ''Type'': object type, as defined in ''include/define.h'' - * ''Move'': movement types, as defined in ''define/define.h'' + * ''Move'': movement types, as defined in ''include/define.h'' + * ''MessageFlag'': NDI_xxx constants, as defined in ''include/newclient.h'' Example: whoami.Say("%s => %d"%(Crossfire.DirectionName[Crossfire.Direction.NORTH], Crossfire.Direction.NORTH)) IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1175535476 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 Mon Apr 2 13:02:14 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Mon, 02 Apr 2007 13:02:14 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1175536934.585460.18038.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/02 13:02 User : ryo Edit Summary: remove obsolete stuff, add new constants @@ -57,17 +57,20 @@ ===== Constants ===== Constants are available to wrap values used in Crossfire code like object types, movements, ... - They are available through ''Crossfire.xxx.VALUE'', where ''xxx'' is the constant type and ''VALUE'' the value as in the C sources code in uppercase. + They are available through ''Crossfire.xxx.VALUE'', where ''xxx'' is the constant type and ''VALUE'' the value as in the C sources code in uppercase, without specific prefix (ie F_TRUE becomes TRUE). For each constant group ''xxx'' there exists a ''xxxName'' dictionary object containing the name of the value as a string. The following constant types exist: * ''Direction'': contains NORTH, NORTHEAST, ..., NORTHWEST * ''Type'': object type, as defined in ''include/define.h'' * ''Move'': movement types, as defined in ''include/define.h'' * ''MessageFlag'': NDI_xxx constants, as defined in ''include/newclient.h'' + * ''CostFlag'': F_xxx constants, as defined in ''include/define.h'' (without the F_ prefix) + + {FIXME} do a nice table, with link to values? Example: whoami.Say("%s => %d"%(Crossfire.DirectionName[Crossfire.Direction.NORTH], Crossfire.Direction.NORTH)) @@ -121,23 +124,8 @@ Returns the system directory containing player files. ==== DataDirectory ==== Returns the system directory containing read-only data. - - ==== DirectionNorth ==== - ==== DirectionNorthEast ==== - ==== DirectionEast ==== - ==== DirectionSouthEast ==== - ==== DirectionSouth ==== - ==== DirectionSouthWest ==== - ==== DirectionWest ==== - ==== DirectionNorthWest ==== - ==== CostFlagTrue ==== - ==== CostFlagBuy ==== - ==== CostFlagSell ==== - ==== CostFlagNoBargain ==== - ==== CostFlagIdentified ==== - ==== CostFlagNotCursed ==== ==== ReadyMap ==== Parameter: * map name (''String'') IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1175536311 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 Mon Apr 2 15:00:56 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Mon, 02 Apr 2007 15:00:56 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1175544056.215414.18228.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/02 15:00 User : ryo Edit Summary: script @@ -597,4 +597,10 @@ ====== 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} + + ===== /python/misc/death_message.py ===== + This script makes the monster/living thing containing it display a message when it dies. + + 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). + IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1175536927 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 Tue Apr 3 15:38:03 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 03 Apr 2007 15:38:03 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev:skills Message-ID: <1175632683.907799.20743.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/03 15:37 User : ryo Edit Summary: add subtypes @@ -156,9 +156,8 @@ The handling of add_exp with skill_name is pretty simple. In most cases, we know immediately the skill that was used (eg, melee combat, search, disarm, etc). In cases of indirect death (spells), we set the skill in the spell object to the skill that it should get awarded to. - ===== Changes & Limitations ===== The old skill system had the idea of stats that effect the skill. There @@ -182,5 +181,50 @@ suggested - the new skill system is much more lenient on passing the appropriate skill object to functions that need it, so calls to SK_level in most cases may not really be the right approach - in many cases, the chosen_skill may not be what the code is really expecting. + + ===== Skill subtypes ===== + Here is the description of the available skill subtypes, with their specific values. List is in ''include/skills.h'' + + {FIXME} describe/expand + + ==== SK_LOCKPICKING ==== + ==== SK_HIDING ==== + ==== SK_SMITHERY ==== + ==== SK_BOWYER ==== + ==== SK_JEWELER ==== + ==== SK_ALCHEMY ==== + ==== SK_STEALING ==== + ==== SK_LITERACY ==== + ==== SK_BARGAINING ==== + ==== SK_JUMPING ==== + ==== SK_DET_MAGIC ==== + ==== SK_ORATORY ==== + ==== SK_SINGING ==== + ==== SK_DET_CURSE ==== + ==== SK_FIND_TRAPS ==== + ==== SK_MEDITATION ==== + ==== SK_PUNCHING ==== + ==== SK_FLAME_TOUCH ==== + ==== SK_KARATE ==== + ==== SK_CLIMBING ==== + ==== SK_WOODSMAN ==== + ==== SK_INSCRIPTION ==== + ==== SK_ONE_HANDED_WEAPON ==== + ==== SK_MISSILE_WEAPON ==== + ==== SK_THROWING ==== + ==== SK_USE_MAGIC_ITEM ==== + ==== SK_DISARM_TRAPS ==== + ==== SK_SET_TRAP ==== + ==== SK_THAUMATURGY ==== + ==== SK_PRAYING ==== + ==== SK_CLAWING ==== + ==== SK_LEVITATION ==== + ==== SK_SUMMONING ==== + ==== SK_PYROMANCY ==== + ==== SK_EVOCATION ==== + ==== SK_SORCERY ==== + ==== SK_TWO_HANDED_WEAPON ==== + ==== SK_WRAITH_FEED ==== + ==== SK_HARVESTING ==== IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/dev:skills?rev=1164985937 New Revision: http://wiki.metalforge.net/doku.php/dev:skills -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Tue Apr 3 16:13:05 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 03 Apr 2007 16:13:05 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev:skills Message-ID: <1175634785.635429.20806.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/03 16:13 User : ryo Edit Summary: document harvesting @@ -225,6 +225,32 @@ ==== SK_EVOCATION ==== ==== SK_SORCERY ==== ==== SK_TWO_HANDED_WEAPON ==== ==== SK_WRAITH_FEED ==== + ==== SK_HARVESTING ==== + This skill lets a player "grab" items from a spot. Example is fishing, where the player "grabs" fish from the sea/a river. + + Main function is ''server/c_misc.c:do_harvest()''. + + The skill object should have the following attributes: + * ''slaying'': the raw verb that will be displayed to the player. Example: ''fish''. + + This skill can only be used through a skill tool, which should have the following parameters set: + * ''harvest_race'': an identifier used to link the skill to what it can grab. Example: ''fish'' + * ''harvest_tool'': a subtype for the skill. Used to limit what this tool can grab. Example: ''pole'', ''fishingnet'', ... + * ''harvest_speed'': speed cost of using the tool. If positive, absolute speed. If negative, ratio of player's speed + + In order for the player to grab items, spots where the skill applies should contain in their inventory items the following values: + * ''harvest_race'': should match the tool's + * ''harvest_exp'': experience gain when successfully harvesting + * ''harvest_level'': base level the item can be harvested at + * ''harvest_tool'': optional, if set can only be harvested by a tool with the same value + + If multiple items are available, a random one in possible ones is chosen (with a maximum of 10 objects to choose from). + + The harvesting probability on a 100 basis is (with ''item_level'' the target item's ''harvest_level'' and ''skill_level'' the player's level in the skill): + * if item_level >= skill_level + 10, can't get + * if item_level >= skill_level, 10 + skill_level - item_level + * if item_level >= skill_level - 10, 10 + (skill_level - item_level) * 2; + * maximum 30 IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/dev:skills?rev=1175632677 New Revision: http://wiki.metalforge.net/doku.php/dev:skills -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Tue Apr 3 17:32:57 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 03 Apr 2007 17:32:57 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1175639577.314472.20929.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/03 17:32 User : ryo Edit Summary: remove obsolete Flying/CanPassThru properties @@ -323,9 +323,8 @@ * DungeonMaster: ''Boolean'' * WasDungeonMaster: ''Boolean'' * Applied: ''Boolean'' * **Unpaid**: ''Boolean'' - * **Flying**: **deprecated** * Monster: ''Boolean'' * **Friendly**: ''Boolean'' * Generator: ''Boolean'' * Thrown: ''Boolean'' @@ -357,9 +356,8 @@ * **ReflectSpells**: ''Boolean'' * **ReflectMissiles**: ''Boolean'' * **Unique**: ''Boolean'' * CanPickUp: ''Boolean'', whether the monster can pickup items or not. - * **CanPassThru**: ''Boolean'' * **RunAway**: ''Boolean'' * **Scared**: ''Boolean'' * **Undead**: ''Boolean'' * **BlocksView**: ''Boolean'' @@ -602,5 +600,4 @@ ===== /python/misc/death_message.py ===== This script makes the monster/living thing containing it display a message when it dies. 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). - IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1175544049 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 Wed Apr 4 12:57:55 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Wed, 04 Apr 2007 12:57:55 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev:skills Message-ID: <1175709475.766698.22957.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/04 12:57 User : ryo Edit Summary: monster harvesting @@ -253,4 +253,5 @@ * if item_level >= skill_level, 10 + skill_level - item_level * if item_level >= skill_level - 10, 10 + (skill_level - item_level) * 2; * maximum 30 + If harvested item is a monster, it'll be inserted in the map instead of player's inventory (suggestion by Lalo) IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/dev:skills?rev=1175634780 New Revision: http://wiki.metalforge.net/doku.php/dev:skills -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Wed Apr 4 23:04:12 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Wed, 04 Apr 2007 23:04:12 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfire_compile_guide Message-ID: <1175745852.683646.23917.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/04 23:04 User : leaf Edit Summary: Content updates for new build command, autogen @@ -41,8 +41,9 @@ * 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) * sudo - Provide limited super user privileges to specific users + * automake1.9 - A tool for generating GNU Standards-compliant Makefiles === Recommended Packages === * libsqlite3-0 - SQLite 3 shared library (used by cflogger) * python2.4-gd - Python module wrapper for libgd (used by game features such as bank, post office, slot machines, etc.) @@ -135,13 +136,19 @@ ==== COMPILE ==== - Now you are going to begin the compile process + Now you are going to begin the compile process; choose one of the following: $ ./configure && make && sudo make install Any missing dependencies, errors or similar problems during the compile process will be listed. Each should be addressed or resolved accordingly. + + FIXME - Recent SVN commit (~2007-Mar-30) changed the build process for the server; use the following command in the server root directory: + + $ sh autogen.sh + + ===== Microsoft (c) Windows ===== The following tools are used to compile the server: * Microsoft Visual Studio 6 (service pack 4 probably). Server has not been tested with other versions. IP-Address : 65.193.16.100 Old Revision: http://wiki.metalforge.net/doku.php/crossfire_compile_guide?rev=1174748178 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 Thu Apr 5 20:13:47 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Thu, 05 Apr 2007 20:13:47 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfire_compile_guide Message-ID: <1175822028.024683.26110.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/05 20:13 User : leaf Edit Summary: More details on using autoget.sh @@ -132,9 +132,8 @@ Double check that you are in the correct directory which is the server directory $ pwd /home//server.svn - ==== COMPILE ==== Now you are going to begin the compile process; choose one of the following: @@ -142,12 +141,14 @@ $ ./configure && make && sudo make install Any missing dependencies, errors or similar problems during the compile process will be listed. Each should be addressed or resolved accordingly. - FIXME - Recent SVN commit (~2007-Mar-30) changed the build process for the server; use the following command in the server root directory: + Recent SVN commit (~2007-Mar-30) changed the build process for the server; use the following command in the server root directory: + + $ sh autogen.sh; ./configure && make && sudo make install - $ sh autogen.sh + autogen.sh script re-creates the configure (./configure) script while the rest of the command starts the compile (build) process ===== Microsoft (c) Windows ===== The following tools are used to compile the server: IP-Address : 65.193.16.100 Old Revision: http://wiki.metalforge.net/doku.php/crossfire_compile_guide?rev=1175745849 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 Fri Apr 6 14:31:24 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Fri, 06 Apr 2007 14:31:24 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1175887884.675431.28061.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/06 14:31 User : ryo Edit Summary: Enemy @@ -380,8 +380,9 @@ * MoveOn * MoveOff * MoveSlow * MoveSlowPenalty + * **Enemy**: ''[[cfpython#Crossfire.Object methods and attributes|Crossfire.Object]]'' representing the object's enemy. Will probably be ''None'' except for monsters. IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1175639570 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 Apr 6 14:52:19 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Fri, 06 Apr 2007 14:52:19 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1175889139.118620.28097.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/06 14:52 User : ryo Edit Summary: Count @@ -381,11 +381,9 @@ * MoveOff * MoveSlow * MoveSlowPenalty * **Enemy**: ''[[cfpython#Crossfire.Object methods and attributes|Crossfire.Object]]'' representing the object's enemy. Will probably be ''None'' except for monsters. - - - + * Count ==== Methods ==== FIXME document all parameters. Link to relevant Crossfire function. Split in "standard function" and "helper function"? IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1175887877 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 Apr 7 04:51:35 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 07 Apr 2007 04:51:35 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: server_plugin Message-ID: <1175939495.384778.29513.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/07 04:51 User : ryo Edit Summary: new interface @@ -29,11 +29,8 @@ Events are either //global// or //object-specific//. Examples of global events include a player joining or exiting the game, a map being loaded. Examples of object-specific events include an item being applied, a player attacking a monster. FIXME check parameters and such :) - - - ===== Hooking to an object-specific event ===== Just add an //event_xxx// object into your object's inventory, and fill the ''title'' field with the plugin name. See the specific plugin documentation for optional arguments that need to be set to that object. Note that the ''slaying'' field must be set too. @@ -43,15 +40,16 @@ For some events, returning a non-zero value will prevent the default server processing to take place, allowing to override things. FIXME be more specific :) The plugin registered function will get the following parameters. See specific events for the meaning of the field. * op: ''object*'' which is the current object containing the event. - * eventcode: ''int'' representing the EVENT_xxx constant of the current event. * activator: ''object*'', can be NULL. * third: ''object*'', can be NULL. * message: ''const char*'', can be NULL. * fix: ''int'' {FIXME} meaning? - * slaying: ''const char*'', plugin's name as it was registered - * name: ''const char*'', event hook's name + * event: ''object*'' representing the actual event object linking to plugin. Will be ''NULL'' for global events. Its fields mean: + * ''subtype'': event code + * ''title'': plugin name + * ''slaying'': plugin specific value Follows the full list of object-specific events. ==== Apply ==== @@ -318,5 +316,4 @@ assert(type == CFAPI_PPARTY); return value; } - IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/server_plugin?rev=1175357025 New Revision: http://wiki.metalforge.net/doku.php/server_plugin -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sat Apr 7 05:14:41 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 07 Apr 2007 05:14:41 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1175940881.663973.29552.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/07 05:14 User : ryo Edit Summary: WhatIsEvent() @@ -103,8 +103,11 @@ 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 ==== + ''Crossfire.Object'' representing the event object that links to the plugin. Will be ''None'' for global events and custom commands. ==== MapDirectory ==== Returns the system directory containing the maps. IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1175889132 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 Apr 7 05:13:50 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 07 Apr 2007 05:13:50 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: server_plugin Message-ID: <1175940830.532842.29549.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/07 05:13 User : ryo Edit Summary: logger + newspaper @@ -8,16 +8,17 @@ * message boards, on which players can leave messages * Imperial Post Office, that lets players exchange ingame mail * playing slot machines at casinos * [[:dev_todo:python_guilds|improved guild system]] - currently being tested - ===== Existing plugins ===== Currently existing plugins are : ^ Name ^ Description ^ Status ^ | [[cfanim]] | animate objects | build, but untested | | [[cfpython]] | run Python scripts | working | + | [[cflogger]] | logs events to a SQLITE database | experimental | + | [[cfnewspaper]] | newspaper generation | experimental | template | not a real plugin, but a skeleton to create new ones | up-to-date | IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/server_plugin?rev=1175939489 New Revision: http://wiki.metalforge.net/doku.php/server_plugin -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sat Apr 7 06:03:28 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 07 Apr 2007 06:03:28 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfire_traffic Message-ID: <1175943808.155502.29627.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/07 06:03 User : ryo Edit Summary: april @@ -1,13 +1,15 @@ ====== Crossfire Traffic ====== The current Crossfire Traffic is [[crossfire_traffic:2006:july|July 2006]] Crossfire Traffic is a means to communicate the activity surrounding crossfire in an accessible and non-technical way, it is targeted at those who are curious about what is happening with the project, but find the existing mailing lists, commit list, forum, wiki and IRC channels overly complicated, scary, or time consuming to read. As such it does not contain any background details, but instead focuses only on things that are user-visible - - ===== Changes to be merged ===== Please put most recent on bottom for month. + + ==== April ==== + * new skill: fishing. No maps for now with required tools, but it's available anyway :) + * polymorph spell reenabled. Code should work with multipart mobs. Tweak parameters, put some caps. Will need to be tested (should probably only appear in wants or scrolls) ==== March 2007 ==== * Player will be warned when spell effects are about to expire. This works for protections, stats changing, xray, ..., but not for invisibility. * Items can now have a fixed price, independent of player's charisma. Key/values price_adjustment, price_adjustment_sell and price_adjustment_buy are used (trunk only). IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/crossfire_traffic?rev=1175369954 New Revision: http://wiki.metalforge.net/doku.php/crossfire_traffic -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sat Apr 7 08:38:53 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 07 Apr 2007 08:38:53 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfire_traffic Message-ID: <1175953133.400803.29969.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/07 08:38 User : ryo Edit Summary: charm / exp @@ -8,8 +8,9 @@ ==== April ==== * new skill: fishing. No maps for now with required tools, but it's available anyway :) * polymorph spell reenabled. Code should work with multipart mobs. Tweak parameters, put some caps. Will need to be tested (should probably only appear in wants or scrolls) + * experience for ''charm monster'' spell is now shared between party members, like other experience ==== March 2007 ==== * Player will be warned when spell effects are about to expire. This works for protections, stats changing, xray, ..., but not for invisibility. * Items can now have a fixed price, independent of player's charisma. Key/values price_adjustment, price_adjustment_sell and price_adjustment_buy are used (trunk only). IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/crossfire_traffic?rev=1175943804 New Revision: http://wiki.metalforge.net/doku.php/crossfire_traffic -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sat Apr 7 16:47:06 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 07 Apr 2007 16:47:06 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfire_traffic Message-ID: <1175982426.595277.30741.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/07 16:47 User : leaf Edit Summary: typo correction @@ -7,9 +7,9 @@ Please put most recent on bottom for month. ==== April ==== * new skill: fishing. No maps for now with required tools, but it's available anyway :) - * polymorph spell reenabled. Code should work with multipart mobs. Tweak parameters, put some caps. Will need to be tested (should probably only appear in wants or scrolls) + * polymorph spell reenabled. Code should work with multipart mobs. Tweak parameters, put some caps. Will need to be tested (should probably only appear in wands or scrolls) * experience for ''charm monster'' spell is now shared between party members, like other experience ==== March 2007 ==== * Player will be warned when spell effects are about to expire. This works for protections, stats changing, xray, ..., but not for invisibility. IP-Address : 65.165.40.73 Old Revision: http://wiki.metalforge.net/doku.php/crossfire_traffic?rev=1175953129 New Revision: http://wiki.metalforge.net/doku.php/crossfire_traffic -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sat Apr 7 22:33:09 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 07 Apr 2007 22:33:09 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: servers Message-ID: <1176003189.886040.31279.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/07 22:33 User : leaf Edit Summary: @@ -4,9 +4,9 @@ This section will hopefully contain a useful collection of information about running and historical crossfire servers. Please keep this limited to public servers, or private ones which have been historically significant. ===== Presently Running Crossfire Servers ===== ^ Server ^ Address ^ Version ^ Mapset ^ Lifespan ^ Description ^ - | [[servers:MetalForge]]| crossfire.metalforge.net | 1.9.1-SVN | bigworld(official)((Sometimes maps are included for testing before in SVN)) | 2003-May-12 to current | Currently has the most actual players, strict rules. Around late August 2006, ~6-19 players online at a time. | + | [[servers:MetalForge]]| crossfire.metalforge.net | 1.10.0 | bigworld(official)((Sometimes maps are included for testing before in SVN)) | 2003-May-12 to current | Currently has the most actual players, enforced rules. Around late August 2006, ~6-19 players online at a time. | | Zeus | zeus.fh-brandenburg.de | 1.9.0 | bigworld | unknown to current | Rarely active. | | Kobold | crossfire.kobold.org | 1.9.1 | bigworld | unknown to current | Rarely active. | | Netarbeiter | crossfire.netarbeiter.com | 1.9.1 | bigworld | unknown to current | Rarely active. | | Bratwurst| bratwurst.unix-ag.uni-kl.de | 1.8.0 | bigworld | unknown to current | Rarely active. | IP-Address : 65.165.40.73 Old Revision: http://wiki.metalforge.net/doku.php/servers?rev=1171742186 New Revision: http://wiki.metalforge.net/doku.php/servers -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sat Apr 7 22:35:46 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 07 Apr 2007 22:35:46 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: servers:metalforge Message-ID: <1176003346.665313.31288.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/07 22:35 User : leaf Edit Summary: @@ -1,6 +1,6 @@ ====== Metalforge ====== - Metalforge is probably the most used server today. Its one of the friendliest servers for new players also. That is due to it's rules, and the fact that there is usualy atleast one dungeon master logged onto the server at any time. + Metalforge is probably the most used server today. Its one of the friendliest servers for new players also. That is due to it's rules, and the fact that there is usually at least one dungeon master logged onto the server at any time (or one available relatively quickly.) ===== Guilds ===== List of guilds, official and unofficial that exist, or have existed at one time on MetalForge. @@ -16,5 +16,4 @@ * Dreaming Sage - Guild in Navar. * Mailed Fist - Guild in Scorn. ==== Defunct ==== - IP-Address : 65.165.40.73 Old Revision: http://wiki.metalforge.net/doku.php/servers:metalforge?rev=1157073856 New Revision: http://wiki.metalforge.net/doku.php/servers:metalforge -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sat Apr 7 22:39:03 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 07 Apr 2007 22:39:03 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfire_traffic Message-ID: <1176003543.866960.31299.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/07 22:39 User : leaf Edit Summary: @@ -5,12 +5,12 @@ ===== Changes to be merged ===== Please put most recent on bottom for month. - ==== April ==== - * new skill: fishing. No maps for now with required tools, but it's available anyway :) - * polymorph spell reenabled. Code should work with multipart mobs. Tweak parameters, put some caps. Will need to be tested (should probably only appear in wands or scrolls) - * experience for ''charm monster'' spell is now shared between party members, like other experience + ==== April 2007 ==== + * New skill: fishing. No maps for now with required tools, but it's available anyway :) + * Polymorph spell reenabled. Code should work with multipart mobs. Tweak parameters, put some caps. Will need to be tested (should probably only appear in wands or scrolls) + * Experience for ''charm monster'' spell is now shared between party members, like other experience ==== March 2007 ==== * Player will be warned when spell effects are about to expire. This works for protections, stats changing, xray, ..., but not for invisibility. * Items can now have a fixed price, independent of player's charisma. Key/values price_adjustment, price_adjustment_sell and price_adjustment_buy are used (trunk only). @@ -49,9 +49,9 @@ * new 'lock' command to lock/unlock items from text zone * when enchanting applied armor, it will be unapplied if player can't handle it anymore due to power item restriction * orcknuckle now requires dice to play - ==== december 2006 ==== + ==== December 2006 ==== * "Talisman of Evocation" renamed to "Talisman of Creation * fix item power for generated items * initial items shouldn't be bad anymore * blessed (by weapons now have an owner IP-Address : 65.165.40.73 Old Revision: http://wiki.metalforge.net/doku.php/crossfire_traffic?rev=1175982420 New Revision: http://wiki.metalforge.net/doku.php/crossfire_traffic -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sat Apr 7 22:40:06 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 07 Apr 2007 22:40:06 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfire_traffic Message-ID: <1176003606.352264.31309.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/07 22:40 User : leaf Edit Summary: @@ -37,9 +37,9 @@ * make players change place with pets from party members instead of pushing them away. * plugins can now get/set a user's savebed location and x,y coords, as well as object's speed_left field. * GTK client will "remember" pickup mode hopefully. - ==== january 2007 ==== + ==== January 2007 ==== * new feature: random effects when casting a spell while confused (beware!) * new item status: blessed (books/scrolls only) * books and scrolls can now be cursed/blessed - take care when applying them! * avatars and holy servants can now be random, so gods can have multiple ones defined IP-Address : 65.165.40.73 Old Revision: http://wiki.metalforge.net/doku.php/crossfire_traffic?rev=1176003541 New Revision: http://wiki.metalforge.net/doku.php/crossfire_traffic -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sun Apr 8 06:06:15 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 08 Apr 2007 06:06:15 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1176030375.093098.32091.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/08 06:06 User : ryo Edit Summary: change @@ -141,9 +141,9 @@ ==== FindPlayer ==== Parameter: * player name (string) - Returns a ''Crossfire.Player'' object for specified player, based on full name, or ''None'' if not found. + Returns a ''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''. ==== MatchString ==== Parameters: * string to be searched IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1175940874 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 Sun Apr 8 13:36:39 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 08 Apr 2007 13:36:39 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfire_traffic Message-ID: <1176057399.522614.693.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/08 13:36 User : leaf Edit Summary: note about new monster greeting @@ -9,8 +9,9 @@ ==== April 2007 ==== * New skill: fishing. No maps for now with required tools, but it's available anyway :) * Polymorph spell reenabled. Code should work with multipart mobs. Tweak parameters, put some caps. Will need to be tested (should probably only appear in wands or scrolls) * Experience for ''charm monster'' spell is now shared between party members, like other experience + * New feature - monster express a dialog (aka greeting) to players, currently used by the Advocate of Gorokh (dungeons/gorokh/gorokh_final) (trunk only) ==== March 2007 ==== * Player will be warned when spell effects are about to expire. This works for protections, stats changing, xray, ..., but not for invisibility. * Items can now have a fixed price, independent of player's charisma. Key/values price_adjustment, price_adjustment_sell and price_adjustment_buy are used (trunk only). IP-Address : 65.165.40.73 Old Revision: http://wiki.metalforge.net/doku.php/crossfire_traffic?rev=1176003602 New Revision: http://wiki.metalforge.net/doku.php/crossfire_traffic -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sun Apr 8 13:49:00 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 08 Apr 2007 13:49:00 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfire_traffic Message-ID: <1176058140.254546.717.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/08 13:48 User : leaf Edit Summary: New map in Lone Town, Transport Shoppe @@ -10,8 +10,9 @@ * New skill: fishing. No maps for now with required tools, but it's available anyway :) * Polymorph spell reenabled. Code should work with multipart mobs. Tweak parameters, put some caps. Will need to be tested (should probably only appear in wands or scrolls) * Experience for ''charm monster'' spell is now shared between party members, like other experience * New feature - monster express a dialog (aka greeting) to players, currently used by the Advocate of Gorokh (dungeons/gorokh/gorokh_final) (trunk only) + * New map in Lone Town, "Transport Shoppe" - provides teleporters & fast travel to locations throughout the CF World (trunk & branch) ==== March 2007 ==== * Player will be warned when spell effects are about to expire. This works for protections, stats changing, xray, ..., but not for invisibility. * Items can now have a fixed price, independent of player's charisma. Key/values price_adjustment, price_adjustment_sell and price_adjustment_buy are used (trunk only). IP-Address : 65.165.40.73 Old Revision: http://wiki.metalforge.net/doku.php/crossfire_traffic?rev=1176057397 New Revision: http://wiki.metalforge.net/doku.php/crossfire_traffic -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sun Apr 8 13:51:18 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 08 Apr 2007 13:51:18 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfire_traffic Message-ID: <1176058278.382592.726.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/08 13:51 User : leaf Edit Summary: Map name correction @@ -10,9 +10,9 @@ * New skill: fishing. No maps for now with required tools, but it's available anyway :) * Polymorph spell reenabled. Code should work with multipart mobs. Tweak parameters, put some caps. Will need to be tested (should probably only appear in wands or scrolls) * Experience for ''charm monster'' spell is now shared between party members, like other experience * New feature - monster express a dialog (aka greeting) to players, currently used by the Advocate of Gorokh (dungeons/gorokh/gorokh_final) (trunk only) - * New map in Lone Town, "Transport Shoppe" - provides teleporters & fast travel to locations throughout the CF World (trunk & branch) + * New map in Lone Town, "Ye Olde Shoppe of Transport" - provides teleporters & fast travel to locations throughout the CF World (trunk & branch) ==== March 2007 ==== * Player will be warned when spell effects are about to expire. This works for protections, stats changing, xray, ..., but not for invisibility. * Items can now have a fixed price, independent of player's charisma. Key/values price_adjustment, price_adjustment_sell and price_adjustment_buy are used (trunk only). IP-Address : 65.165.40.73 Old Revision: http://wiki.metalforge.net/doku.php/crossfire_traffic?rev=1176058137 New Revision: http://wiki.metalforge.net/doku.php/crossfire_traffic -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sun Apr 8 15:00:42 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 08 Apr 2007 15:00:42 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: development_and_informational_links Message-ID: <1176062442.131124.837.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/08 15:00 User : ryo Edit Summary: god intervention @@ -3,8 +3,9 @@ * [[dev:objects]] * [[dev:object_fields]] * [[dev:random-maps]] * [[dev:random-styles]] + * [[dev:god intervention]] * [[dev:runes]] * [[server_plugin]] * [[cfpython]] * [[plugin_python]] (obsolete) IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/development_and_informational_links?rev=1174562299 New Revision: http://wiki.metalforge.net/doku.php/development_and_informational_links -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sun Apr 8 15:00:30 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 08 Apr 2007 15:00:30 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page added: dev:god_intervention Message-ID: <1176062430.925576.834.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/08 15:00 User : ryo Edit Summary: basic information God intervention uses a treasure list to specify the different possible outcomes. In particular, invisible books are used for many things. {FIXME} describe how to code those effects Here is the list of possible effects: * give object * restore grace * restore hp * restore sp * remove curse/damnation * heal depletion * voice * message * enchant weapon * give prayer * give object IP-Address : 82.236.87.204 Old Revision: none New Revision: http://wiki.metalforge.net/doku.php/dev:god_intervention -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Tue Apr 10 13:14:24 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 10 Apr 2007 13:14:24 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfire_traffic Message-ID: <1176228865.005405.5577.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/10 13:14 User : ryo Edit Summary: skill tools @@ -11,8 +11,9 @@ * Polymorph spell reenabled. Code should work with multipart mobs. Tweak parameters, put some caps. Will need to be tested (should probably only appear in wands or scrolls) * Experience for ''charm monster'' spell is now shared between party members, like other experience * New feature - monster express a dialog (aka greeting) to players, currently used by the Advocate of Gorokh (dungeons/gorokh/gorokh_final) (trunk only) * New map in Lone Town, "Ye Olde Shoppe of Transport" - provides teleporters & fast travel to locations throughout the CF World (trunk & branch) + * Skill tools (talismans, holy symbols and others) will now be applied automatically when reading the matching skill, even if it's not required. This way player will beneficit from the tool's bonuses. If you don't want that behaviour, leave your tool in your apartment :) ==== March 2007 ==== * Player will be warned when spell effects are about to expire. This works for protections, stats changing, xray, ..., but not for invisibility. * Items can now have a fixed price, independent of player's charisma. Key/values price_adjustment, price_adjustment_sell and price_adjustment_buy are used (trunk only). IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/crossfire_traffic?rev=1176058276 New Revision: http://wiki.metalforge.net/doku.php/crossfire_traffic -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Tue Apr 10 13:38:38 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 10 Apr 2007 13:38:38 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev:god_intervention Message-ID: <1176230318.098428.5613.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/10 13:38 User : ryo Edit Summary: effects, code @@ -1,18 +1,21 @@ - God intervention uses a treasure list to specify the different possible outcomes. - - In particular, invisible books are used for many things. - + God intervention uses a treasure list to specify the different possible outcomes. In particular, invisible books are used for many things. + The list's order is meaningful, since it's possible to put grace limits (minimum grace the player should have) for interventions to take place. + If any effect is successfully applied (for instance if for healing if the player isn't at maximum hp), processing stops. {FIXME} describe how to code those effects + Here is the list of possible effects. Unless noted otherwise, the item should be an invisible BOOK, the effect is based on the name (pretty self-descriptive). + ^ Object name ^ Effect ^ + | ''grace limit'' | player must have at least ''grace'' gr points, max and current, for the list to continue to be processed. | + | give object | {FIXME} check how tr->name can be not NULL? | + | ''restore grace'' | sets the player's grace to 0-9 when it's negative. | + | ''restore hitpoints'' | restores a player's maxhp. | + | ''restore spellpoints'' | restores some of the players's sp {FIXME} what about the item?? | + | ''heal spell'' | casts the spell specified in the item's ''slaying'' field on the player. | + | ''remove curse'' | removes curse from all the player's items in inventory. | + | ''remove damnation'' | removes damnation from all the player's items in inventory. | + | ''heal depletion'' | removes stat depletion. | + | ''voice_behind'' | the player hears a voice saying item's ''msg'' field. | + | ''message'' | player hears item's ''msg''. | + | ''enchant weapon'' | player's weapon is enchanted to match the god's properties (name, attacktype, slaying). | + | spell object | god gives the player the use of specified spell, provided praying level is enough for the spell. | + | non invisible item | god-given item. | - Here is the list of possible effects: - * give object - * restore grace - * restore hp - * restore sp - * remove curse/damnation - * heal depletion - * voice - * message - * enchant weapon - * give prayer - * give object IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/dev:god_intervention?rev=1176062428 New Revision: http://wiki.metalforge.net/doku.php/dev:god_intervention -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Thu Apr 12 14:55:51 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Thu, 12 Apr 2007 14:55:51 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfire_traffic Message-ID: <1176407751.754897.10645.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/12 14:55 User : ryo Edit Summary: greetings/death @@ -9,10 +9,10 @@ ==== April 2007 ==== * New skill: fishing. No maps for now with required tools, but it's available anyway :) * Polymorph spell reenabled. Code should work with multipart mobs. Tweak parameters, put some caps. Will need to be tested (should probably only appear in wands or scrolls) * Experience for ''charm monster'' spell is now shared between party members, like other experience - * New feature - monster express a dialog (aka greeting) to players, currently used by the Advocate of Gorokh (dungeons/gorokh/gorokh_final) (trunk only) - * New map in Lone Town, "Ye Olde Shoppe of Transport" - provides teleporters & fast travel to locations throughout the CF World (trunk & branch) + * New feature - monster express a dialog (aka greeting and death messages) to players, currently used by the Advocate of Gorokh (dungeons/gorokh/gorokh_final) and Valriel's Vicar (dungeons/valriel/valriel_final) + * New map in Lone Town, "Ye Olde Shoppe of Transport" - provides teleporters & fast travel to locations throughout the CF World * Skill tools (talismans, holy symbols and others) will now be applied automatically when reading the matching skill, even if it's not required. This way player will beneficit from the tool's bonuses. If you don't want that behaviour, leave your tool in your apartment :) ==== March 2007 ==== * Player will be warned when spell effects are about to expire. This works for protections, stats changing, xray, ..., but not for invisibility. IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/crossfire_traffic?rev=1176228861 New Revision: http://wiki.metalforge.net/doku.php/crossfire_traffic -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Thu Apr 12 14:56:37 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Thu, 12 Apr 2007 14:56:37 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfire_traffic Message-ID: <1176407797.420908.10648.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/12 14:56 User : ryo Edit Summary: note @@ -4,8 +4,10 @@ Crossfire Traffic is a means to communicate the activity surrounding crossfire in an accessible and non-technical way, it is targeted at those who are curious about what is happening with the project, but find the existing mailing lists, commit list, forum, wiki and IRC channels overly complicated, scary, or time consuming to read. As such it does not contain any background details, but instead focuses only on things that are user-visible ===== Changes to be merged ===== Please put most recent on bottom for month. + + Unless specified otherwise, changes are in both trunk and branch. ==== April 2007 ==== * New skill: fishing. No maps for now with required tools, but it's available anyway :) * Polymorph spell reenabled. Code should work with multipart mobs. Tweak parameters, put some caps. Will need to be tested (should probably only appear in wands or scrolls) IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/crossfire_traffic?rev=1176407749 New Revision: http://wiki.metalforge.net/doku.php/crossfire_traffic -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Thu Apr 12 16:03:40 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Thu, 12 Apr 2007 16:03:40 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: server_plugin Message-ID: <1176411820.104864.10750.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/12 16:03 User : ryo Edit Summary: missing | @@ -16,9 +16,9 @@ ^ Name ^ Description ^ Status ^ | [[cfanim]] | animate objects | build, but untested | | [[cfpython]] | run Python scripts | working | | [[cflogger]] | logs events to a SQLITE database | experimental | - | [[cfnewspaper]] | newspaper generation | experimental + | [[cfnewspaper]] | newspaper generation | experimental | | template | not a real plugin, but a skeleton to create new ones | up-to-date | IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/server_plugin?rev=1175940824 New Revision: http://wiki.metalforge.net/doku.php/server_plugin -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sat Apr 14 12:44:43 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 14 Apr 2007 12:44:43 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1176572683.335484.16381.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/14 12:44 User : ryo Edit Summary: ChangeLight @@ -547,17 +547,16 @@ * WPartX: ''Number'' * WPartY: ''Number'' * Message: ''String'' * Region: ''Crossfire.Region'' - * Exists (special meaning, False if cf map has been freed from memory, True otherwise) + * Exists (special meaning, ''False'' if cf map has been freed from memory, ''True'' otherwise) Methods: * Print: argument are ''String'', optional ''Number''. Prints the specified message to all players on the map, with specified flags (default is NDI_BLUE|NDI_UNIQUE). {FIXME} add flag description / equivalent of ext_info_map(). * ObjectAt * CreateObject * Check - - + * ChangeLight: argument is a ''Number'', specifying how to change the light. Negative value means map gets brighter, positive darker. Note that light will never be negative or over 5 (''MAX_DARKNESS'') ===== Crossfire.Player methods and attributes ===== This class inherits from Crossfire.Object, and introduces the new properties (bold = read-write): IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1176030367 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 Apr 14 13:12:36 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 14 Apr 2007 13:12:36 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: server_plugin Message-ID: <1176574356.894581.16429.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/14 13:12 User : ryo Edit Summary: one was fixed @@ -232,12 +232,11 @@ Syntax for wrapper is eg ''cf_object_get_property(int* type, object* ob, int propcode, (property type)* value)''. FIXME expand - ===== Function wrapping ===== - This wraps specific Crossfire functions. The calling convention (not enforced everywhere, but being worked on FIXME remove when finished) is to send parameters in the same order as the wrapped function, and add as the last parameter a pointer to a variable of the same type as the return value which will receive the actual function return value. The hook return value will be a constant indicating whether the function was called or another error occurred (FIXME expand/check/make that true in the code ;p) + This wraps specific Crossfire functions. The calling convention is to send parameters in the same order as the wrapped function, and add as the last parameter a pointer to a variable of the same type as the return value which will receive the actual function return value. The hook return value will be a constant indicating whether the function was called or another error occurred (FIXME expand/check/make that true in the code ;p) Let's take for example the wrapper for ''get_ob_key_value''. The function prototype is: IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/server_plugin?rev=1176411815 New Revision: http://wiki.metalforge.net/doku.php/server_plugin -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sat Apr 14 16:55:39 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 14 Apr 2007 16:55:39 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1176587739.887859.16777.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/14 16:55 User : ryo Edit Summary: GodGiven @@ -385,8 +385,9 @@ * MoveSlow * MoveSlowPenalty * **Enemy**: ''[[cfpython#Crossfire.Object methods and attributes|Crossfire.Object]]'' representing the object's enemy. Will probably be ''None'' except for monsters. * Count + * **GodGiven**: ''Boolean'' ==== Methods ==== FIXME document all parameters. Link to relevant Crossfire function. Split in "standard function" and "helper function"? IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1176572677 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 Apr 14 16:58:38 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 14 Apr 2007 16:58:38 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1176587918.943755.16780.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/14 16:58 User : ryo Edit Summary: CreateMap @@ -246,8 +246,15 @@ 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. + + ==== 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. ===== Crossfire.Archetype methods and attributes ===== This represents an archetype, from which all objects are derived. IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1176587734 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 Sun Apr 15 04:37:40 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 15 Apr 2007 04:37:40 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1176629860.423836.17972.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/15 04:37 User : ryo Edit Summary: path is now read-write @@ -530,12 +530,12 @@ * ''Number'' (optional): 0 to only update the key and not insert it, non zero to add it anyway ===== Crossfire.Map methods and attributes ===== - All properties are read-only. + Properties in **bold** are read-write, others read only. * Difficulty: ''Number'' - * Path: ''String'' + * **Path**: ''String'' * TempName: ''String'' * Name: ''String'' * ResetTime: ''Number'' * ResetTimeout: ''Number'' IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1176587912 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 Sun Apr 15 04:40:21 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 15 Apr 2007 04:40:21 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1176630021.530045.17990.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/15 04:40 User : ryo Edit Summary: new script @@ -609,4 +609,10 @@ ===== /python/misc/death_message.py ===== This script makes the monster/living thing containing it display a message when it dies. 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). + + ===== /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. + + 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. + IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1176629855 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 Sun Apr 15 07:17:19 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 15 Apr 2007 07:17:19 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1176639439.888504.18596.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/15 07:17 User : ryo Edit Summary: some more constants @@ -57,9 +57,9 @@ ===== Constants ===== Constants are available to wrap values used in Crossfire code like object types, movements, ... - They are available through ''Crossfire.xxx.VALUE'', where ''xxx'' is the constant type and ''VALUE'' the value as in the C sources code in uppercase, without specific prefix (ie F_TRUE becomes TRUE). + They are available through ''Crossfire.xxx.VALUE'', where ''xxx'' is the constant type and ''VALUE'' the value as in the C sources code in uppercase, without specific prefix (ie F_TRUE becomes TRUE, AT_FIRE becomes FIRE). For each constant group ''xxx'' there exists a ''xxxName'' dictionary object containing the name of the value as a string. The following constant types exist: @@ -67,8 +67,11 @@ * ''Type'': object type, as defined in ''include/define.h'' * ''Move'': movement types, as defined in ''include/define.h'' * ''MessageFlag'': NDI_xxx constants, as defined in ''include/newclient.h'' * ''CostFlag'': F_xxx constants, as defined in ''include/define.h'' (without the F_ prefix) + * ''AttackType'': AT_xxx constants, as defined in ''include/attack.h'' + * ''AttackTypeNumber'': ATNR_xxx constants, as defined in ''include/attack.h'' + * ''EventType'': EVENT_xxx constants, as defined in ''include/plugin.h'' {FIXME} do a nice table, with link to values? Example: @@ -614,5 +617,4 @@ ===== /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. 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. - IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1176630016 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 Sun Apr 15 07:26:40 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 15 Apr 2007 07:26:40 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: server_plugin Message-ID: <1176640000.705324.18611.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/15 07:26 User : ryo Edit Summary: trigger @@ -115,8 +115,11 @@ ==== Trigger ==== Archetype: event_trigger Used for various objects, like traps, teleporters or triggers. Generated when those objects are used (for example, when a player passes through a teleporter). + + * for a scroll/book/tome, generated when player writes into the item. ''op'' is the item, ''activator'' is the player, ''message'' is what player is trying to write. Return non zero to prevent writing. Event is generated before length is checked for overflow. + * for a magical scroll, generated when player inscribes a spell in the item. ''op'' is the item, ''activator'' is the player, ''third'' is the spell being inscribed. Return non zero to prevent writing. Event is generated after all checks are done (player can really write the scroll, he didn't read it accidentally) but before sp/gr are decreased. ==== Timer ==== Archetype: event_timer IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/server_plugin?rev=1176574352 New Revision: http://wiki.metalforge.net/doku.php/server_plugin -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sun Apr 15 11:09:22 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 15 Apr 2007 11:09:22 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1176653362.685290.18960.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/15 11:09 User : ryo Edit Summary: IsPet and AttackMovement @@ -396,8 +396,10 @@ * MoveSlowPenalty * **Enemy**: ''[[cfpython#Crossfire.Object methods and attributes|Crossfire.Object]]'' representing the object's enemy. Will probably be ''None'' except for monsters. * Count * **GodGiven**: ''Boolean'' + * **IsPet**: if the object is on the friendly list or not + * **AttackMovement** ==== Methods ==== FIXME document all parameters. Link to relevant Crossfire function. Split in "standard function" and "helper function"? IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1176639433 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 Sun Apr 15 12:06:16 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 15 Apr 2007 12:06:16 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1176656776.038835.19048.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/15 12:06 User : ryo Edit Summary: exp is now writable @@ -301,9 +301,9 @@ * **AC**: armour class * **WC**: weapon class * **Dam** * Luck - * Exp + * **Exp** * PermExp * ExpMul * **Message**: ''String'' * **Slaying**: ''String'' IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1176653357 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 Sun Apr 15 13:27:42 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 15 Apr 2007 13:27:42 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: start Message-ID: <1176661662.665399.19180.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/15 13:27 User : leaf Edit Summary: Current version is now 1.10.0 @@ -15,8 +15,9 @@ While the wiki is useful for brainstorming, archiving or listing ideas & suggestions; any and all code changes and proposals need to be sent to the [[http://mailman.metalforge.org/mailman/listinfo/crossfire|discussion mailing list]] before implementation. So, what's here?\\ There is the Crossfire Wiki, a communal edit pad and place to kick off new documents and related type content. There is the [[Document Repository|Document repository]] where you can read and comment on some of the existing documentation. Finally there's the latest [[Crossfire Traffic]] which contains information about what's happening in the community. + ==== TOC ==== * [[history_of_crossfire|The History of Crossfire]] - The history of the Crossfire world, both technical and role-playing. * [[downloading|Downloading Crossfire]] - Where to get the clients and server for crossfire. @@ -32,10 +33,10 @@ * [[wiki:Style Guide]] - Loose guidelines of style for the wiki. * [[FAQ]] - Frequently Asked Questions. [[http://crossfire.real-time.com|Crossfire]] is a [[client-server]] based game. \\ - The current version for the server is 1.9.1\\ - The current GTK client version is 1.9.1 \\ + The current version for the server is 1.10.0\\ + The current GTK client version is 1.10.0 \\ [[crossfire|Crossfire]] works on: * [[Linux]] * [[Windows]] IP-Address : 65.193.16.100 Old Revision: http://wiki.metalforge.net/doku.php/start?rev=1172423525 New Revision: http://wiki.metalforge.net/doku.php/start -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sun Apr 15 13:33:47 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 15 Apr 2007 13:33:47 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfire_compile_guide Message-ID: <1176662027.269977.19191.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/15 13:33 User : leaf Edit Summary: Instructions on how to launch the server after it has been compiled @@ -147,8 +147,34 @@ $ sh autogen.sh; ./configure && make && sudo make install autogen.sh script re-creates the configure (./configure) script while the rest of the command starts the compile (build) process + + ==== LAUNCH ==== + + Once the server has been successfully built (aka compiled), you need to launch the Crossfire Server application + + Double check that you are in the correct directory which is the server directory + + $ pwd + /home//server.svn + + Change directory the server directory + + $ cd server + + Your file directory path should look like this: + + $ pwd + /home//server.svn/server + + Run this command to launch the server: + + $ ./crossfire-server & + + What that command will do is run the Crossfire server and return you back to bash or shell prompt + + FIXME -- How to use crossloop for running the server; crossloop is a script that automatically restarts the server if/when it crashes and can also provide useful debugging or error information from the crash event ===== Microsoft (c) Windows ===== The following tools are used to compile the server: IP-Address : 65.193.16.100 Old Revision: http://wiki.metalforge.net/doku.php/crossfire_compile_guide?rev=1175822024 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 Sun Apr 15 13:51:03 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 15 Apr 2007 13:51:03 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo_new Message-ID: <1176663063.342230.19227.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/15 13:51 User : leaf Edit Summary: Updated for Python Guid progress - being worked on by Leaf @@ -45,9 +45,9 @@ | [[dev_todo:Thread the Server]] - Make the server multithreaded | 3.0 | 2 | None | Server | | | [[dev_todo:Player Economy]] - Have player buying/selling influence economy | 3.0? | 2 | None | Server/Maps | | | [[dev_todo:Improved Player Communication]] - Allow chatting between servers, and connections just for chatting. | 3.0 | 2 | None | Server | | | [[dev_todo:Player Clothing]] - Change player image based on clothing/equipment | 3.0 | 3? | None | Server/Client/Arch | | - | [[dev_todo:Python Guilds]] - Update guilds using existing Python Guild scripts | 2.0 | 2? | Planning| Maps | | + | [[dev_todo:Python Guilds]] - Update guilds using existing Python Guild scripts | 2.0 | 2? | Coding | Maps | [[user:leaf]] | | [[dev_todo:In-game monster information]] | ? | ? | Talks | Server | | | [[user:kshinji:estates|Python Estates]] | 1.x? | ? | Planning/Coding | Server | kshinji ? | * Project is a brief summary of the project. IP-Address : 65.193.16.100 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo_new?rev=1175406000 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 Sun Apr 15 14:23:03 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 15 Apr 2007 14:23:03 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1176664984.000098.19278.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/15 14:23 User : ryo Edit Summary: change note @@ -3,9 +3,9 @@ The latest version, 2.0, is a major rewrite which introduces Python objects to represent maps, Crossfire objects and players. The hooking system also changed. Old plugin's reference can be found on [[plugin_python]]. - **Important note:** the API, and other parts, are valid for code's ''trunk''. While it may still be correct for ''branch'', one should ensure it works the same way. Some functions will only exist in trunk. However, the syntax itself should not change between ''trunk'' and ''branch''. + **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. ====== 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?} IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1176656770 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 Tue Apr 17 11:32:45 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 17 Apr 2007 11:32:45 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: user:leaf Message-ID: <1176827565.035448.23885.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/17 11:32 User : leaf Edit Summary: Updates in regards to metalforge server bots and IRC bot @@ -15,8 +15,9 @@ * Webforum * Webmaster, one of the forum Admins and server host * Server crossfire.metalforge.net * One of the server DMs and server host, map updates (only..) + * Admin and host for server bots Scribe and Seer * Websites * crossfire.real-time.com -- Webmaster and server host * www.metalforge.net -- Webmaster and server host * Crossfire project at SourceForge @@ -27,8 +28,9 @@ * Posting news/announcements when there is a new release available * Misc. duties as they come up * IRC channel * One of the channel Ops + * I'm **not** involved with the IRC bot, cfbot - that is another channel Op =-) * A few other things that I am probably forgetting More recently, I have started on Map development. IP-Address : 65.193.16.100 Old Revision: http://wiki.metalforge.net/doku.php/user:leaf?rev=1175027503 New Revision: http://wiki.metalforge.net/doku.php/user:leaf -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Tue Apr 17 12:04:31 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 17 Apr 2007 12:04:31 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: user:leaf Message-ID: <1176829471.548080.23934.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/17 12:04 User : leaf Edit Summary: @@ -3,5 +3,6 @@ Place hold for things I am working on or hope to work on someday along with some misc. information + ===== Details ===== Since this is a common question and often mistaken assumptions are made.. What do I do with Crossfire? @@ -37,9 +38,9 @@ * I am focusing mostly on fixing issues and improving existing maps * I also review new maps that are submitted to the Maps mailing list or uploaded to SourceForge's Patch area - While I may provide feedback and comments and coding direction and actual code - I'm not a developer in that sense. I do not have the necessary coding background. I do not see that changing in the forseeable future either. ;-P + While I may provide feedback and comments and coding direction on actual code - I'm not a developer in that sense. I do not have the necessary coding background. I do not see that changing in the forseeable future either. ;-P ===== My TODO List ===== In no particular order... IP-Address : 65.193.16.100 Old Revision: http://wiki.metalforge.net/doku.php/user:leaf?rev=1176827561 New Revision: http://wiki.metalforge.net/doku.php/user:leaf -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Tue Apr 17 12:56:15 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 17 Apr 2007 12:56:15 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1176832575.875553.24025.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/17 12:56 User : ryo Edit Summary: Note @@ -111,9 +111,9 @@ ==== WhatIsEvent ==== ''Crossfire.Object'' representing the event object that links to the plugin. Will be ''None'' for global events and custom commands. ==== MapDirectory ==== - Returns the system directory containing the maps. + Returns the system directory containing the maps. Note that it is relative to the ''Data'' directory. ==== UniqueDirectory ==== Returns the system directory where unique items and maps are stored. IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1176664978 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 Tue Apr 17 15:42:58 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 17 Apr 2007 15:42:58 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1176842578.407202.24289.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/17 15:42 User : ryo Edit Summary: GetPlayers @@ -256,8 +256,12 @@ * 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. + + ==== GetPlayers ==== + + Returns a ''list'' containing Crossfire.Players objects, one for each player on the server ===== Crossfire.Archetype methods and attributes ===== This represents an archetype, from which all objects are derived. IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1176832571 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 Wed Apr 18 11:31:32 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Wed, 18 Apr 2007 11:31:32 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: servers:schmorp Message-ID: <1176913892.119446.26342.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/18 11:31 User : Edit Summary: @@ -10,9 +10,9 @@ * support for the new [[http://cf.schmorp.de/client.shtml|CFPlus client]] features * mostly easier overall gameplay * different balancing than on other Crossfire servers, eg. shops don't have so weird prices anymore, rods are capped at the use magic item skill, ... * dying won't let you loose your experience points until you have failed minesweeper in the nimbus. - * as the development of [[:crossfireplus|Crossfire+]] is mostly directed into stability this server is more stable than others. + * as the development of [[:crossfiretrt|Crossfire TRT]] is mostly directed into stability this server is more stable than others. * there are new commands, such as the 'invite' and the 'follow' command. for more documentation visit [[http://cf.schmorp.de/]]. * more player interaction due to the new tradeshop. * lots of other features that are listed at [[http://cf.schmorp.de/server_features.shtml]]. IP-Address : 85.180.64.4 Old Revision: http://wiki.metalforge.net/doku.php/servers:schmorp?rev=1176913860 New Revision: http://wiki.metalforge.net/doku.php/servers:schmorp -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Wed Apr 18 11:34:19 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Wed, 18 Apr 2007 11:34:19 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfireplus Message-ID: <1176914059.695305.26348.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/18 11:34 User : Edit Summary: removed and renamed to crossfiretrt @@ -1,25 +1 @@ - ====== Crossfire+ ====== - - Crossfire+ is a fork of Crossfire, which remains protocol-compatible with Crossfire. - - The website where the main news and features of the Crossfire+ development is published is [[http://cf.schmorp.de/]]. The main server where the current CVS is running is [[servers:schmorp]]. - - A more comprehensive - yet biaised - list of changes can be found at [[http://cf.schmorp.de/differences.shtml]], - here a couple of them: - - ===== Main changes ===== - * The plugin infrastructure is different; - * Crossfire+ uses Perl as its main scripting language instead of Python; - * A more complex handling of npc dialogs, including per-conversation state or per-player flags; - * Different login management, which allows for unused characters to be overwritten by newer ones; - * Different I/O handling: map loading/saving is asynchronous, for example; - * an after-death area where players must prove their worthyness has been implemented; - * The worldmap is different than the one used in Crossfire. - - The Crossfire+ code is now using C++ features, in the hope of making the code easier to maintain on the long run. Perl is also included "in depth" in the core of Crossfire+. - - ===== The Gtk Map Editor ===== - - An early offspring of the Crossfire+ project was [[http://cf.schmorp.de/editor.shtml|GCE - Gtk Crosfire Editor]], - which aims to make the map edition easier than with CFJavaEditor/Gridarta. The features are listed on the editor page. IP-Address : 85.180.64.4 Old Revision: http://wiki.metalforge.net/doku.php/crossfireplus?rev=1168642321 New Revision: http://wiki.metalforge.net/doku.php/crossfireplus -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Wed Apr 18 11:31:03 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Wed, 18 Apr 2007 11:31:03 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: servers:schmorp Message-ID: <1176913863.082859.26339.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/18 11:31 User : Edit Summary: @@ -1,9 +1,9 @@ ====== cf.schmorp.de ====== cf.schmorp.de is one of the most used servers these days (September 2006). - The main website is [[http://cf.schmorp.de/]], where also the [[:crossfireplus|Crossfire+]] + The main website is [[http://cf.schmorp.de/]], where also the [[:crossfiretrt|Crossfire TRT]] development takes place. ===== Features ===== IP-Address : 85.180.64.4 Old Revision: http://wiki.metalforge.net/doku.php/servers:schmorp?rev=1171741979 New Revision: http://wiki.metalforge.net/doku.php/servers:schmorp -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Wed Apr 18 11:34:01 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Wed, 18 Apr 2007 11:34:01 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page added: crossfiretrt Message-ID: <1176914041.914283.26345.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/18 11:34 User : Edit Summary: created ====== Crossfire TRT ====== Crossfire TRT is a fork of Crossfire, which remains protocol-compatible with Crossfire. The website where the main news and features of the Crossfire TRT development is published is [[http://cf.schmorp.de/]]. The main server where the current CVS is running is [[servers:schmorp]]. A more comprehensive - yet biaised - list of changes can be found at [[http://cf.schmorp.de/differences.shtml]], here a couple of them: ===== Main changes ===== * The plugin infrastructure is different; * Crossfire TRT uses Perl as its main scripting language instead of Python; * A more complex handling of npc dialogs, including per-conversation state or per-player flags; * Different login management, which allows for unused characters to be overwritten by newer ones; * Different I/O handling: map loading/saving is asynchronous, for example; * an after-death area where players must prove their worthyness has been implemented; * The worldmap is different than the one used in Crossfire. * The worldmap is generated from multiple images which describe the terrain and region of the worldmap. * All resources are reloadable and extendable at runtime: treasurelists, archetypes, faces, maps The Crossfire TRT code is now using C++ features, in the hope of making the code easier to maintain on the long run. Perl is also included "in depth" in the core of Crossfire TRT. ===== The Gtk Map Editor ===== An early offspring of the Crossfire TRT project was [[http://cf.schmorp.de/editor.shtml|GCE - Gtk Crosfire Editor]], which aims to make the map edition easier than with CFJavaEditor/Gridarta. The features are listed on the editor page. IP-Address : 85.180.64.4 Old Revision: none New Revision: http://wiki.metalforge.net/doku.php/crossfiretrt -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Wed Apr 18 11:35:51 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Wed, 18 Apr 2007 11:35:51 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfiretrt Message-ID: <1176914151.087494.26357.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/18 11:35 User : Edit Summary: @@ -3,9 +3,10 @@ Crossfire TRT is a fork of Crossfire, which remains protocol-compatible with Crossfire. The website where the main news and features of the Crossfire TRT development is published is [[http://cf.schmorp.de/]]. The main server where the current CVS is running is [[servers:schmorp]]. - A more comprehensive - yet biaised - list of changes can be found at [[http://cf.schmorp.de/differences.shtml]], + A more comprehensive - yet biaised - list of changes can be found at [[http://cf.schmorp.de/differences.shtml]] and + the news items on [[http://cf.schmorp.de/]], here a couple of them: ===== Main changes ===== * The plugin infrastructure is different; IP-Address : 85.180.64.4 Old Revision: http://wiki.metalforge.net/doku.php/crossfiretrt?rev=1176914039 New Revision: http://wiki.metalforge.net/doku.php/crossfiretrt -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Wed Apr 18 11:41:01 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Wed, 18 Apr 2007 11:41:01 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfiretrt Message-ID: <1176914462.024406.26375.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/18 11:41 User : Edit Summary: @@ -6,8 +6,9 @@ A more comprehensive - yet biaised - list of changes can be found at [[http://cf.schmorp.de/differences.shtml]] and the news items on [[http://cf.schmorp.de/]], here a couple of them: + ===== Main changes ===== * The plugin infrastructure is different; * Crossfire TRT uses Perl as its main scripting language instead of Python; @@ -17,12 +18,13 @@ * an after-death area where players must prove their worthyness has been implemented; * The worldmap is different than the one used in Crossfire. * The worldmap is generated from multiple images which describe the terrain and region of the worldmap. * All resources are reloadable and extendable at runtime: treasurelists, archetypes, faces, maps - + * The archetypes come with a 64x64 tileset. + The Crossfire TRT code is now using C++ features, in the hope of making the code easier to maintain on the long run. Perl is also included "in depth" in the core of Crossfire TRT. ===== The Gtk Map Editor ===== An early offspring of the Crossfire TRT project was [[http://cf.schmorp.de/editor.shtml|GCE - Gtk Crosfire Editor]], which aims to make the map edition easier than with CFJavaEditor/Gridarta. The features are listed on the editor page. IP-Address : 85.180.64.4 Old Revision: http://wiki.metalforge.net/doku.php/crossfiretrt?rev=1176914148 New Revision: http://wiki.metalforge.net/doku.php/crossfiretrt -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Wed Apr 18 12:09:42 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Wed, 18 Apr 2007 12:09:42 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: servers:schmorp Message-ID: <1176916182.555390.26417.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/18 12:09 User : ryo Edit Summary: reformulate @@ -10,9 +10,9 @@ * support for the new [[http://cf.schmorp.de/client.shtml|CFPlus client]] features * mostly easier overall gameplay * different balancing than on other Crossfire servers, eg. shops don't have so weird prices anymore, rods are capped at the use magic item skill, ... * dying won't let you loose your experience points until you have failed minesweeper in the nimbus. - * as the development of [[:crossfiretrt|Crossfire TRT]] is mostly directed into stability this server is more stable than others. + * the development of [[:crossfiretrt|Crossfire TRT]] is mostly directed into stability * there are new commands, such as the 'invite' and the 'follow' command. for more documentation visit [[http://cf.schmorp.de/]]. * more player interaction due to the new tradeshop. * lots of other features that are listed at [[http://cf.schmorp.de/server_features.shtml]]. @@ -25,6 +25,4 @@ * onefangs ice castle (this is on cat2 too) * a few maps for the invite command quest. * aldwulf (also on cat2) * [[http://wiki.metalforge.net/doku.php/mlab|mlab]] (prepared for cf.schmorp.de by sliss/bw from cat2) - - IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/servers:schmorp?rev=1176913890 New Revision: http://wiki.metalforge.net/doku.php/servers:schmorp -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Wed Apr 18 15:57:40 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Wed, 18 Apr 2007 15:57:40 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: server_plugin Message-ID: <1176929860.907846.26774.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/18 15:57 User : ryo Edit Summary: modifications @@ -56,17 +56,15 @@ ==== Apply ==== Archetype: event_apply This event is generated whenever the object is applied or unapplied. - - ==== Attack ==== Archetype: event_attack This event is used in three cases: - * bound to a (hand) weapon, it is triggered each time the weapon is used to slay something; this can typically be used to generate special effects when you hit a monster. In this case, "op" is the weapon, "activator" the player and "third" the monster attacked. - * bound to a monster, it is triggered when the monster is attacked. In this case, "op" is the monster, "activator" is the player, "third" is the weapon (can be equal to "activator") + * bound to a (hand) weapon, it is triggered each time the weapon is used to slay something; this can typically be used to generate special effects when you hit a monster. In this case, "op" is the weapon, "activator" the player and "third" the monster attacked. Returning a non-zero value cancels the attack + * bound to a monster, it is triggered when the monster is attacked. In this case, "op" is the monster, "activator" is the player, "third" is the weapon (can be equal to "activator"). Returning a non-zero value cancels the attack * bound to an arrow, it is triggered when the arrow hits something. "op" is the arrow, "hitter" what really hits (arrow can have stuff inside), "third" is the victim ==== Close ==== Archetype: event_close IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/server_plugin?rev=1176639997 New Revision: http://wiki.metalforge.net/doku.php/server_plugin -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Fri Apr 20 00:47:55 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Fri, 20 Apr 2007 00:47:55 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo_new Message-ID: <1177048075.655663.30050.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/20 00:47 User : Edit Summary: add note about metaserver improvements. @@ -3,8 +3,9 @@ This list is organized in target version and then priority, so it becomes easier to see what should be done in what order. ^ Project/Feature ^ Target Release ^ Priority ^ Status ^ Component ^ Developer ^ | [[dev_todo:Performance Improvements]] - Server has performance issues, especially related to losts of spells | 1.x | 1 | None | Server | [[user:mwedel]] | + | [[dev_todo:Metaserver improvements]] - Current metaserver has many limitations| 1.x | 2 | None | Server & Client | | | [[dev_todo:Archetype Cleanup]] - Clean up the Archetypes. | 1.x? | 1 | None | Archetypes | | | [[dev_todo:Fix Weather]] - Fix and improve the weather system. | 1.x | 2 | Completed/Planning | Server | | | [[dev_todo:Pupland]] - Move pupland onto the world maps | 1.x? | 2 | Coding | Maps | [[user:lalomartins]]? | | [[dev_todo:Protocol Compression]] - Compress client/server communication | 1.x? | 2 | Planning | Client/Server | | IP-Address : 209.204.178.229 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo_new?rev=1176663059 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 Fri Apr 20 01:19:29 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Fri, 20 Apr 2007 01:19:29 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page added: dev_todo:metaserver_improvements Message-ID: <1177049969.286964.30101.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/20 01:19 User : Edit Summary: created ==== Metaserver Redo ==== The current metaserver has room for some improvements. The biggest right now is that there is a single metaserver (thus single point of failure). It also doesn't record all the information that would be useful. Currently, the metaserver records this informatin: * IP address * Hostname (provided by server - not resolved by metaserver!) * number of current players * version of the server * free form comment set by the server admin * number of bytes server has received * number of bytes server has sent * how long server has been up. Proposal for improvements: * All the fields currently present above * Codebase for server, maps, & archetypes. In this way, more readily apparantly what a server is running. This would be text provided by the server. * metaserver should confirm hostname matches IP address from request. This currently isn't feasible because doing nameservice lookups could time out, causing server to hang up * SC_VERSION and CS_VERSION of the server - in this way, client could filter out servers it know it couldn't support. * A text flags section - different flags have different, but standardized, meaning. $ could be pay to play, P means player killing, etc * Multiple metaservers, so there is not a single point of failure. === Thoughts on Implementation === Making it a web based service (cgi-bin script or php script) is a good way to go. The web server deals with running multiple copies at the same time - just, we don't care as much about timeouts in resolving the host name. Web based script access is also quite common, which means that it would be much easier to get multiple instances up compared to requiring a custom program to be run. While overkill, tieing it into a mysql database on the back end takes care of file locking/contention issues. A secondary table could be used to blacklist certain servers, typically those that are misconfigured. There would be 3 scripts to handle this: - Script that the server uses to update information - Script that the client uses to get server information. - Script that generates HTML table that people could point their web browser at. Script 1 could be done relatively simply by passing values in the URL - http://metaserver?sc_version=aaaa&players=3&etc. Or may be other libraries that are commonly available for http transactions that could be used. Scripts 2 & 3 are relatively simple - they basically just dump the data from the mysql database. For the client script, it could be handly for it to include some demarcation line, like '--- Metaserver Info Start ---' so that the client doesn't have to be able to fully parse http - it just needs enough to make a request and look for that, knowing anything that follows it is the information it wants. The server component is the hardest part. Since HTTP is tcp connections, these can time out, may take some time to make the connection, etc. Simplest way short term would be to have a seperate process that is started (perhaps through popen) that the server talks to, and that other process updates the metaservers. In a sense, it acts as a proxy, but so long as the popen is done with non blocking IO, never any danger of things getting frozen on the server. That proxy would try to update all the metaservers it knows about, with some extra logic on what to do when a metaserver isn't responding There shouldn't be any need for the metaservers to talk to each other. Since each server will try to talk to all the metaservers, there should be no need. The client will choose one of the metaservers from the list to use (at random), thus doing load balancing of a form. The preferred metaserver could also be set in the client. If the client can not connect to the first metaserver, it would try the next, etc. IP-Address : 209.204.178.229 Old Revision: none New Revision: http://wiki.metalforge.net/doku.php/dev_todo:metaserver_improvements -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Fri Apr 20 12:09:25 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Fri, 20 Apr 2007 12:09:25 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1177088965.105379.31313.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/20 12:09 User : ryo Edit Summary: format, order, and such @@ -3,270 +3,232 @@ The latest version, 2.0, is a major rewrite which introduces Python objects to represent maps, Crossfire objects and players. The hooking system also changed. Old plugin's reference can be found on [[plugin_python]]. - **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. + **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?} Using a library not part of Python's default distribution is discouraged as this introduces new dependencies. - Scripts execute in their own context, and their state information is not kept between runs. There are functions to persist data, or share between scripts. Note that persisted data will not survive a server restart. + Scripts execute in their own context, and their state information is not kept between runs. There are functions to persist data, or share between scripts. Note that data persisted through those functions will not survive a server restart. Scripts should import the ''Crossfire'' module to access Crossfire's built-in functions. 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 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 server normally has write access. ===== 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 ''arch/system'' directory). The fields to fill are: + 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. * **slaying**: contains the path to the Python script to execute. Root refers to the map directory. A script can then use ''WhoAmI()'', ''WhoIsActivator()'', ''WhoIsOther()'', ''WhatIsMessage()'' functions of the ''Crossfire'' module to find the executing context. - ===== How do I hook a script to a global event? ===== - Create a script, and put it in the ''/python/events/xxx'' subdirectory or the ''maps'' directory, where ''xxx'' is the event's name in lowercase (create the directory if it doesn't exist). Available events are listed [[server_plugin#Hooking to global events|on the server_plugin page]]. - - In addition, there is a special event, ''init'', which is called just after the plugin has been loaded. It behaves like other events in every aspect. - + In addition, there is a special event, ''init'', which is called just after the plugin has been loaded. It behaves like other events in every aspect, but is called only once when the plugin finished loading. ===== How do I register a custom command? ===== - 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. - ====== Python API reference ====== - 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 ===== - Constants are available to wrap values used in Crossfire code like object types, movements, ... - They are available through ''Crossfire.xxx.VALUE'', where ''xxx'' is the constant type and ''VALUE'' the value as in the C sources code in uppercase, without specific prefix (ie F_TRUE becomes TRUE, AT_FIRE becomes FIRE). + They are available through ''Crossfire.xxx.VALUE'', where ''xxx'' is the constant type and ''VALUE'' the value as in the C source code, in uppercase, without specific prefix (ie F_TRUE becomes TRUE, AT_FIRE becomes FIRE, and so on). For each constant group ''xxx'' there exists a ''xxxName'' dictionary object containing the name of the value as a string. The following constant types exist: + * ''AttackType'': AT_xxx constants, as defined in ''[[http://crossfire.svn.sourceforge.net/viewvc/crossfire/server/trunk/include/attack.h?view=markup|include/attack.h]]'' + * ''AttackTypeNumber'': ATNR_xxx constants, as defined in ''[[http://crossfire.svn.sourceforge.net/viewvc/crossfire/server/trunk/include/attack.h?view=markup|include/attack.h]]'' + * ''CostFlag'': F_xxx constants, as defined in ''[[http://crossfire.svn.sourceforge.net/viewvc/crossfire/server/trunk/include/define.h?view=markup|include/define.h]]'' (without the F_ prefix) * ''Direction'': contains NORTH, NORTHEAST, ..., NORTHWEST - * ''Type'': object type, as defined in ''include/define.h'' - * ''Move'': movement types, as defined in ''include/define.h'' - * ''MessageFlag'': NDI_xxx constants, as defined in ''include/newclient.h'' - * ''CostFlag'': F_xxx constants, as defined in ''include/define.h'' (without the F_ prefix) - * ''AttackType'': AT_xxx constants, as defined in ''include/attack.h'' - * ''AttackTypeNumber'': ATNR_xxx constants, as defined in ''include/attack.h'' - * ''EventType'': EVENT_xxx constants, as defined in ''include/plugin.h'' - + * ''EventType'': EVENT_xxx constants, as defined in ''[[http://crossfire.svn.sourceforge.net/viewvc/crossfire/server/trunk/include/plugin.h?view=markup|include/plugin.h]]'' + * ''MessageFlag'': NDI_xxx constants, as defined in ''[[http://crossfire.svn.sourceforge.net/viewvc/crossfire/server/trunk/include/newclient.h?view=markup|include/newclient.h]]'' + * ''Move'': movement types, as defined in ''[[http://crossfire.svn.sourceforge.net/viewvc/crossfire/server/trunk/include/define.h?view=markup|include/define.h]]'' + * ''Type'': object type, as defined in ''[[http://crossfire.svn.sourceforge.net/viewvc/crossfire/server/trunk/include/define.h?view=markup|include/define.h]]'' {FIXME} do a nice table, with link to values? - Example: whoami.Say("%s => %d"%(Crossfire.DirectionName[Crossfire.Direction.NORTH], Crossfire.Direction.NORTH)) 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 ===== - ==== WhoAmI ==== - Returns the ''Crossfire.Object'' from which the event being handled was raised, corresponds to the "op" parameter of the event. Can be ''None''. For a map event, this is a ''Crossfire.Map'' + ==== Event-related functions ==== + Those functions let the script know in what context it was called. + === 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 ==== - Returns the ''Crossfire.Object'' having caused the event being handled, corresponds to the "activator" parameter of the event. Can be ''None''. + === 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 ==== - Returns the ''Crossfire.Object'' being part of the event, corresponds to the "third" parameter of the event. Can be ''None''. - - ==== WhatIsMessage ==== - Returns the ''String'' that was sent as part of the event, corresponds to the "message" parameter of the event. - - ==== ScriptName ==== + === 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 === + 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 === 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. - ==== MapDirectory ==== + === GetReturnValue === + Return current return value. + === 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 === + Returns an integer representing the Python plugin version. + ==== Configuration-related functions ==== + Those functions let the script know about various server settings. + === 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 === + Parameter: + * player name (string) - ==== ReadyMap ==== + 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 === + 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 === + 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 === + Returns a Python ''list'' containing ''[[cfpython#crossfire.party_methods_and_attributes|Crossfire.Party]]'' objects, one for each existing party on the server. + + === GetRegions === + Returns a Python ''list'' containing ''[[cfpython#crossfire.region_methods_and_attributes|Crossfire.Region]]'' objects, one for each region. + === 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 === + Returns a ''list'' containing ''[[cfpython#crossfire.player_methods_and_attributes|Crossfire.Players]]'' objects, one for each player on the server + === GetTime === + Returns a Python ''list'' corresponding to the in-game server time. Fields are (start at ''0'' to access): + - year + - month + - day + - hour + - minute + - day of week + - week of month + - season + === 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. + ==== Action functions ==== + Those functions enable the script to manipulate runtime objects. + === ReadyMap === Parameter: * map name (''String'') * optional: flags (''Number'') - Loads specified map, and returns a ''Crossfire.Map'' object wrapping it. Will return ''None'' if map couldn't be found. ''Flags'' specifies what kind of map should be loaded. It matches the 2nd argument of ''ready_map_name()'' {FIXME} add flags and such - - ==== FindPlayer ==== - Parameter: - * player name (string) - - Returns a ''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''. - - ==== MatchString ==== + === CreateObject === + Returns an empty object which can then be manipulated and inserted in a map. + === CreateObjectByName === Parameters: - * string to be searched - * pattern to search for + * object or archetype name (''String'') - Returns ''1'' if string matches the pattern, ''0'' else. - - Pattern can be a regular expression FIXME specifications - - ==== GetReturnValue ==== - Return current return value. - - ==== SetReturnValue ==== + Returns object with specified archetype or object name, or ''None'' if no object has the name, and archetype wasn't found. + === CreateMap === Parameters: - * return value (integer) + * map width (''Number'') + * map height (''Number'') - Sets the value the plugin will return to the server when the script exits. Value and effect depend on the event being handled. - - ==== PluginVersion ==== - Returns an integer representing the Python plugin version. - - ==== CreateObject ==== - Returns an empty object which can then be manipulated and inserted in map. - - ==== CreateObjectByName ==== - Parameters: - * object or archetype name (string) - - Returns object with specified name or archetype, or ''None'' if no object has the name, and archetype wasn't found. - - ==== 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 ==== - 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. - - ==== GetArchetypes ==== - Returns a Python ''list'' containing ''Crossfire.Archetype'' objects representing all archetypes the server knows. Should not be called lightly, as this can take some time. - - ==== 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 ==== - Returns a Python ''list'' containing ''Crossfire.Party'' objects, one for each existing party on the server. - - - ==== GetRegions ==== - Returns a Python ''list'' containing ''[[cfpython#Crossfire.Region methods and attributes|Crossfire.Region]]'' objects, one for each region. - - - ==== RegisterCommand ==== + 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 ==== + === RegisterCommand === Parameters: * command name (string) * script (string) * speed (decimal, must be positive or 0) Registers a server command which will be mapped to specified script. See [[server plugin#Registering a command]] for more information. The script path is relative to the ''maps'' subdirectory. - 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 === + Parameters: + * event code (''Number'', should be one of the ''Crossfire.EventType.xxx'' constants) - ==== RegisterGlobalEvent ==== - ==== UnregisterGlobalEvent ==== + 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. - ==== GetTime ==== - Returns a Python ''list'' corresponding to the in-game server time. Fields are (start at ''0'' to access): - - year - - month - - day - - hour - - minute - - day of week - - week of month - - season + This function should not be used except in special circumstances, as Python by default registers all events anyway. + === 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. - - ==== DestroyTimer ==== + This function should not be used, except in special circumstances, as it can disable other scripts that use those events. + === 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 === + Returns a Python ''dictionary'' the script can use to store data between runs. This data is not shared with other scripts. - ==== 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. + Note that data will be lost in case of server restart. + === GetSharedDictionary === + Returns a Python ''dictionary'' the script can use to share data with other scripts. - ==== 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. - - ==== CreateMap ==== + Note that data will be lost in case of server restart. + === MatchString === Parameters: - * map width (''Number'') - * map height (''Number'') + * string to be searched + * pattern to search for - 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. - - ==== GetPlayers ==== - - Returns a ''list'' containing Crossfire.Players objects, one for each player on the server + Returns ''1'' if string matches the pattern, ''0'' else. + Pattern can be a regular expression FIXME specifications ===== Crossfire.Archetype methods and attributes ===== - 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'' @@ -276,15 +238,11 @@ * More: next archetype linked to current archetype. Will be ''None'' for last item Methods: * NewObject: returns a ''Crossfire.Object'' having this archetype as type - ===== 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. - * **Name**: ''String'' containing the object's name * **NamePl**: ''String'' containing the object's plural name * **Title**: ''String'' * **Map**: ''[[cfpython#Crossfire.Map methods and attributes|Crossfire.Map]]'' containing the map the object is in. Changing that teleports the object to specified map, at default coordinates. @@ -402,19 +360,15 @@ * Count * **GodGiven**: ''Boolean'' * **IsPet**: if the object is on the friendly list or not * **AttackMovement** - ==== Methods ==== - FIXME document all parameters. Link to relevant Crossfire function. Split in "standard function" and "helper function"? - === ActivateRune === Current object springs like a trap, hitting the victim. Arguments: * ''Crossfire.Object'' that is the victim of the trap. - === AddExp === Adds or substracts experience to current object. Arguments: @@ -424,21 +378,18 @@ * 0: give the player the skill * 1: give player exp to total, no skill * 2: player gets nothing * 3: used when removing exp - === AddTimer === - - Fires an ''event_timer'' after the specified delay. Object must have a handler for this event. + Fires an ''event_timer'' after the specified delay. Object should have a handler for this event. Arguments: * ''number'', delay for timer * ''number'', timer mode * 1: delay is in seconds * 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]]'' - === Apply === Current object applies specified object. The effect depends on the object being applied, which can be a potion, a trigger, ... Arguments: @@ -448,79 +399,64 @@ Return value: * 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 === === CastAbility === === CheckArchInventory === === CheckInventory === === CheckTrigger === === CreateObject === - === 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 === Current object is reinitialized from its default values, values (ac, wc, Str, ...) are recomputed from items worn, in inventory, ... - === ForgetSpell === === 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 === === KnowSpell === === LearnSpell === === OutOfMap === === Pay === === PayAmount === === QueryCost === === QueryName === - Return: ''String'' containing the object's full name. - === ReadKey === Reads key associated to value. Arguments: * ''String'': key value to read Return: ''String'' containing the value. Will be empty if NULL value. - === Remove === - Destroys current object, which then becomes invalid. - === Reposition === - === Say === Current object says something in current map. Argument: * ''string'' to say. - === Speak === Current object says something in current map - FIXME difference with say?? Argument: * ''string'' to say. - === 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 === Teleports the object to specified place. Arguments: @@ -528,21 +464,17 @@ * ''Number'': x coordinates * ''Number'': y coordinates Return value: ''Number'', 0 for success, 1 for failure. - === WriteKey === Inserts specified key/value in the object. 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 - ===== Crossfire.Map methods and attributes ===== - Properties in **bold** are read-write, others read only. - * Difficulty: ''Number'' * **Path**: ''String'' * TempName: ''String'' * Name: ''String'' @@ -568,15 +500,13 @@ * Exists (special meaning, ''False'' if cf map has been freed from memory, ''True'' otherwise) Methods: * Print: argument are ''String'', optional ''Number''. Prints the specified message to all players on the map, with specified flags (default is NDI_BLUE|NDI_UNIQUE). {FIXME} add flag description / equivalent of ext_info_map(). - * ObjectAt - * CreateObject + * ObjectAt: arguments are ''x'' and ''y''. Returns the first ''Crossfire.Object'' at specified location, other objects available through the use of the ''Above'' field + * CreateObject: arguments are ''name'', ''x'' and ''y''. Equivalent of calling ''Crossfire.CreateObjectByName()'' (creates an item from archetype or name) and insert it in the map at the specified location * Check * ChangeLight: argument is a ''Number'', specifying how to change the light. Negative value means map gets brighter, positive darker. Note that light will never be negative or over 5 (''MAX_DARKNESS'') - ===== Crossfire.Player methods and attributes ===== - 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. @@ -585,22 +515,17 @@ * **Party**: ''Crossfire.Party'', party in which the player is. Note that changing it bypasses a potential party's password. and methods: * Message * Write - - ===== Crossfire.Party methods and attributes ===== - This class merely encapsulates a party. Everything is read-only. Attributes: * Name: ''String'' * Password: ''String'' * Next: ''Crossfire.Party'' + Methods: * GetPlayers: ''list'' of ''Crossfire.Players'' - - - ===== Crossfire.Region methods and attributes ===== This class encapsulates an ingame region. Properties are read-only. * Name: ''String'' * Longname: ''String'' @@ -608,19 +533,15 @@ * Next: ''Crossfire.Region'' Methods: * Parent: returns a ''Crossfire.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} - ===== /python/misc/death_message.py ===== - This script makes the monster/living thing containing it display a message when it dies. + 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). - ===== /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. + 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. IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1176842572 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 Apr 20 12:58:43 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Fri, 20 Apr 2007 12:58:43 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo:discrete_attack_damage Message-ID: <1177091923.615350.31392.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/20 12:58 User : ryo Edit Summary: hit_player_attacktype @@ -8,4 +8,5 @@ If your using that weapon fighting fire resistant creatures, you'll still do 15 physical, but much less fire. So I think it would make it less clear what the best weapon to use would be - right now, the more attacktypes a weapon has, the better basically. + Comment by --- //Ryo 2007/04/20 12:56// : checking the code, I think modifying ''server/attack.c:hit_player_attacktype'' to check for discrete values (key/value?) for attacktype could do the trick. Would need to be checked for other side-effects, of course. IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo:discrete_attack_damage?rev=1158474038 New Revision: http://wiki.metalforge.net/doku.php/dev_todo:discrete_attack_damage -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sat Apr 21 06:44:42 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 21 Apr 2007 06:44:42 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: server_plugin Message-ID: <1177155882.455590.800.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/21 06:44 User : ryo Edit Summary: event_tell @@ -121,10 +121,8 @@ ==== Timer ==== Archetype: event_timer Generated when the timer connected triggered. - - ===== Hooking to global events ===== Those concern the game as a whole or can't be bound to a specific object. Those events may be "registered" by a plugin (it means that the plugin requests to get a message each time one of those events happens). @@ -147,9 +145,9 @@ | Mapunload | Generated when a map is being unloaded from memory. | ''map*'' pointing to the map | | | Muzzle | Generated when a player was muzzled by a DM. | ''object*'' pointing to muzzled player, ''const char*'' containing the parameter the DM used to muzzle | | | Remove | Generated when a player character is removed from the game ("quit" command). | ''object*'' pointing to the player | | | Shout | Generated whenever someone shouts something. | ''object*'' pointing to talking player, ''const char*'' containing the message, ''int'' containing the priority | | - | Tell | Generated whenever someone tells something. | | not implemented for now | + | Tell | Generated whenever someone tells something. | ''object*'' pointing to talking player, ''const char*'' containing the message, ''object*'' containing the recipient of the message | | ===== Registering a command ===== A plugin can register a custom game command. This command will work exactly like other commands from the player's point of view, accepting arguments and such. IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/server_plugin?rev=1176929857 New Revision: http://wiki.metalforge.net/doku.php/server_plugin -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sat Apr 21 17:44:14 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 21 Apr 2007 17:44:14 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfire_traffic Message-ID: <1177195454.805426.1843.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/21 17:44 User : ryo Edit Summary: Occidental Mages @@ -14,8 +14,9 @@ * Experience for ''charm monster'' spell is now shared between party members, like other experience * New feature - monster express a dialog (aka greeting and death messages) to players, currently used by the Advocate of Gorokh (dungeons/gorokh/gorokh_final) and Valriel's Vicar (dungeons/valriel/valriel_final) * New map in Lone Town, "Ye Olde Shoppe of Transport" - provides teleporters & fast travel to locations throughout the CF World * Skill tools (talismans, holy symbols and others) will now be applied automatically when reading the matching skill, even if it's not required. This way player will beneficit from the tool's bonuses. If you don't want that behaviour, leave your tool in your apartment :) + * items "of Occidental Mages" now work again. Beware strange rings! ==== March 2007 ==== * Player will be warned when spell effects are about to expire. This works for protections, stats changing, xray, ..., but not for invisibility. * Items can now have a fixed price, independent of player's charisma. Key/values price_adjustment, price_adjustment_sell and price_adjustment_buy are used (trunk only). IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/crossfire_traffic?rev=1176407793 New Revision: http://wiki.metalforge.net/doku.php/crossfire_traffic -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sun Apr 22 03:57:04 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 22 Apr 2007 03:57:04 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev:objects Message-ID: <1177232224.125387.2798.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/22 03:57 User : ryo Edit Summary: objects in archetypes @@ -27,8 +27,10 @@ Archetypes are the entries in the 'arch' directory. The fields for archetypes and objects are generally the same. Note that by using this archetype model, it means an archetype can get updated and all objects that are derived from it will get updated - this is very useful when new fields are added - the archetypes can get updated, and all objects in maps, player save files, wherever, get this new value. + + It is valid to put items into an archetype, including a customized version. All objects created from the archetype will include the object(s) (including their own inventory). ====== Things that are alive ====== The name in parentheses after a flag description is the name as it should be used in the archetype file. For example: Attack type (attacktype) IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/dev:objects?rev=1174569586 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 Sun Apr 22 04:01:21 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 22 Apr 2007 04:01:21 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo:discrete_attack_damage Message-ID: <1177232481.295507.2816.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/22 04:01 User : ryo Edit Summary: update @@ -1,4 +1,8 @@ + **update:** as of april 21, 2007, new code handles ''damage_[fire|cold|electricity|...]'' and uses that if it is set as value for damage instead of the 'dam' field. This is still experimental, but is a first big step towards this feature :) + + ---- + Right now, if you have a weapon that has attacktype physical & fire, and dam 40, it will do dam 40 of whatever attack works best against the creature. It is fairly common in most games that extra attacktypes do some extra damage. Eg, this weapon does 20 physical damage and 10 fire damage. There isn't any way to do that right now (ok, maybe with scripts :) , but that isn't really the point here). IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo:discrete_attack_damage?rev=1177091920 New Revision: http://wiki.metalforge.net/doku.php/dev_todo:discrete_attack_damage -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sun Apr 22 04:02:38 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 22 Apr 2007 04:02:38 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo_new Message-ID: <1177232558.357073.2819.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/22 04:02 User : ryo Edit Summary: dam status @@ -34,9 +34,9 @@ | [[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| | | [[dev_todo:NPC Syntax Highlighting]] - use extended tags to make npc messages easier to understand | 2.0 | 3 | None | Maps | | - | [[dev_todo:Discrete attack damage]] - add dam_fire/dam_cold, etc | 2.0 | 3 | None | Maps/Arch/Server | | + | [[dev_todo:Discrete attack damage]] - add dam_fire/dam_cold, etc | 2.0 | 3 | Experimental | Maps/Arch/Server | | | [[dev_todo:LandPlots|Land Plots]] - Allow a player to purchase land and build on it. | 2.0 | 3 | Planning | Server/Maps | [[user:Rednaxela]] | | [[dev_todo:music|Ambient Music]] - Background sounds and music. | 2.0 | 3 | None | Client/Server/Maps | | | [[dev_todo:buildableshops|Buildable shops]] - Allow a player to build and run shops. | 2.0 | 3? | None | Server/Maps | | | [[dev_todo:Unified event system]] - Use a unified event system for plugins, item types, and callbacks from common to server | 2.0 | 3? | None | Server | | IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo_new?rev=1177048070 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 Sun Apr 22 08:55:53 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 22 Apr 2007 08:55:53 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo:music Message-ID: <1177250153.347026.3729.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/22 08:55 User : ryo Edit Summary: update @@ -1,5 +1,14 @@ ====== Ambient Music ====== + + **update**: on april 22nd, 2007, new sound mode was added. Using the value '2' (instead of '1' to request sound) will make the server send background music information. + + To complement, a new map field, 'background_music', was added. It's a free-form field. + + Suggestion for music: + * background_music style:xxx to specify a general music style, the client randomly choosing one from its defined music database + * background_music generic:xxx to specify a particular music, for special maps and such + ==== Ideas ==== * What format? * Send from server? IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo:music?rev=1158867993 New Revision: http://wiki.metalforge.net/doku.php/dev_todo:music -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sun Apr 22 09:00:16 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 22 Apr 2007 09:00:16 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo:music Message-ID: <1177250416.485942.3738.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/22 09:00 User : ryo Edit Summary: separation @@ -7,8 +7,9 @@ Suggestion for music: * background_music style:xxx to specify a general music style, the client randomly choosing one from its defined music database * background_music generic:xxx to specify a particular music, for special maps and such + ---- ==== Ideas ==== * What format? * Send from server? IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo:music?rev=1177250152 New Revision: http://wiki.metalforge.net/doku.php/dev_todo:music -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sun Apr 22 09:01:27 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 22 Apr 2007 09:01:27 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo_new Message-ID: <1177250487.842730.3741.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/22 09:01 User : ryo Edit Summary: update @@ -36,9 +36,9 @@ | [[dev_todo:Centralized Map Passwords]] - Passwords on maps should be stored centrally, making them easier to change | 2.0 | 2 | None | Server & Maps| | | [[dev_todo:NPC Syntax Highlighting]] - use extended tags to make npc messages easier to understand | 2.0 | 3 | None | Maps | | | [[dev_todo:Discrete attack damage]] - add dam_fire/dam_cold, etc | 2.0 | 3 | Experimental | Maps/Arch/Server | | | [[dev_todo:LandPlots|Land Plots]] - Allow a player to purchase land and build on it. | 2.0 | 3 | Planning | Server/Maps | [[user:Rednaxela]] | - | [[dev_todo:music|Ambient Music]] - Background sounds and music. | 2.0 | 3 | None | Client/Server/Maps | | + | [[dev_todo:music|Ambient Music]] - Background sounds and music. | 2.0 | 3 | Experimental beginning | Client/Server/Maps | | | [[dev_todo:buildableshops|Buildable shops]] - Allow a player to build and run shops. | 2.0 | 3? | None | Server/Maps | | | [[dev_todo:Unified event system]] - Use a unified event system for plugins, item types, and callbacks from common to server | 2.0 | 3? | None | Server | | | [[dev_todo:mapdiff]] - diff/patch scripts optimized for cf maps | 2.0 | 3 | None | N/A | | | [[dev_todo:Artifacts & Treasurelists]] - new artifact handling| 3.0((Why is this targeted to 3.0? IMHO there's no reason it couldn't be done in 2.0 provided someone did it by then. --- //[[user:rednaxela|Alex Schultz]] 2006/09/20 20:18//)) | 2 | None | Server/arch | | IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo_new?rev=1177232554 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 Sun Apr 22 20:25:28 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 22 Apr 2007 20:25:28 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: map_making Message-ID: <1177291528.394148.4809.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/22 20:25 User : leaf Edit Summary: Map contribution instructions @@ -89,4 +89,23 @@ * Give your maps a meaningfully name (like John's tower, level 1).This way, these can be used instead of the map paths in the highs. Also, in terms of the actual file name, try to use numeric level identifiers (ie, maze.1, maze.2, ... instead of maze.first, maze.second,etc.) The former maps the levels sorted a little bit nicer in the directory. * Try to make the map so that it links in with the existing world. Most people want to make their own continent, which is then accessed by ship or other fast means. While convenient, this creates many island continents. The problems with this are that any feeling of relation is lost(where is that island continent), and it makes item searching in shops very easy - if you can access half a dozen shops quickly and safely by taking boats, you have a decent chance of finding the item you want. * Also, it seems that when most people start making maps, the first thing they do is create a new town or village. There are already a lot of towns and villages out there. If you are just going to create a few new buildings,instead of going to the effort and time of creating your own island with at own, just create the buildings, and plug them into one of the existing towns or the terrain someplace. Many of the towns right now have many unused buildings. + ---- + + ===== Map Contributions ===== + + Once a map has been created, you have the option of contributing it back to the Crossfire project. Here's a few ways on how to do that. + + **NOTE** In all cases, we ask that you compress the file(s) first by using either WinZip(for .zip files) or tar (for .tgz files); this helps to save on bandwidth, disk space and overall time to "handle" the files + + ==== Submit the map as a "patch" on SourceForge ==== + - Visit the SourceForge patch upload page at https://sourceforge.net/tracker/?func=add&group_id=13833&atid=313833 + - Follow the online instructions for submitting the patch - please be thorough on filling out the online submit form + * Keep in mind their is a maximum file size for the file upload (around 200KB) so you may need to submit multiple patches or make the maps available via other means (personal web area, etc.) + * Please check back to the Patch page for any follow up questions and feedback in regards to your map(s) + + ==== Submit the map through the mailing list ==== + - Compose an email to crossfire-maps at lists.sourceforge.net and include the map file as an attachment + * Try to keep the attachment at 1MB or less in size + * If possible, avoid composing the message in HTML format -- this helps keep the mail archives "looking nice" and consistant + * If you would like to sign up for the Crossfire Maps mailing list, visit https://lists.sourceforge.net/lists/listinfo/crossfire-maps IP-Address : 65.165.40.73 Old Revision: http://wiki.metalforge.net/doku.php/map_making?rev=1130811056 New Revision: http://wiki.metalforge.net/doku.php/map_making -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sun Apr 22 20:37:22 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 22 Apr 2007 20:37:22 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: map_making Message-ID: <1177292242.125629.4824.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/22 20:37 User : leaf Edit Summary: Note about documenting how to use SVN diff @@ -108,4 +108,6 @@ - Compose an email to crossfire-maps at lists.sourceforge.net and include the map file as an attachment * Try to keep the attachment at 1MB or less in size * If possible, avoid composing the message in HTML format -- this helps keep the mail archives "looking nice" and consistant * If you would like to sign up for the Crossfire Maps mailing list, visit https://lists.sourceforge.net/lists/listinfo/crossfire-maps + + FIXME - Document how to create a dif against SVN and submit the updates that way (patch tracker or mailing list) IP-Address : 65.165.40.73 Old Revision: http://wiki.metalforge.net/doku.php/map_making?rev=1177291526 New Revision: http://wiki.metalforge.net/doku.php/map_making -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sun Apr 22 22:54:14 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 22 Apr 2007 22:54:14 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: map_making Message-ID: <1177300454.438668.5044.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/22 22:54 User : leaf Edit Summary: @@ -95,9 +95,9 @@ ===== Map Contributions ===== Once a map has been created, you have the option of contributing it back to the Crossfire project. Here's a few ways on how to do that. - **NOTE** In all cases, we ask that you compress the file(s) first by using either WinZip(for .zip files) or tar (for .tgz files); this helps to save on bandwidth, disk space and overall time to "handle" the files + **NOTE** In all cases, we ask that you compress the map file(s) first by using either WinZip (for .zip files) or tar (for .tgz files); this helps to save on bandwidth, disk space and overall time to "handle" the files ==== Submit the map as a "patch" on SourceForge ==== - Visit the SourceForge patch upload page at https://sourceforge.net/tracker/?func=add&group_id=13833&atid=313833 - Follow the online instructions for submitting the patch - please be thorough on filling out the online submit form IP-Address : 65.165.40.73 Old Revision: http://wiki.metalforge.net/doku.php/map_making?rev=1177292239 New Revision: http://wiki.metalforge.net/doku.php/map_making -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sun Apr 22 23:11:01 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 22 Apr 2007 23:11:01 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: map_making Message-ID: <1177301461.867883.5080.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/22 23:11 User : leaf Edit Summary: HOWTO steps for creating a diff file via CLI @@ -95,9 +95,35 @@ ===== Map Contributions ===== Once a map has been created, you have the option of contributing it back to the Crossfire project. Here's a few ways on how to do that. - **NOTE** In all cases, we ask that you compress the map file(s) first by using either WinZip (for .zip files) or tar (for .tgz files); this helps to save on bandwidth, disk space and overall time to "handle" the files + **NOTE** In all cases, we ask that you compress the map file(s) first by using either WinZip (for .zip files) or tar (for .tgz files); this helps to save on bandwidth, disk space and overall time to "handle" the files. + + ==== Creating a "diff" ==== + + There are all kinds of technical reasons for using a "diff" file to merge in file updates. The biggest reason is it gives whom ever else is working with your map changes an easy to read file comparison to see what has changed, exactly. One will need Subversion (SVN) installed and setup before attempting to create a diff. + + SVN diff from the command line: + + $ svn diff > patchfile + + This run a comparison (or difference) between your local files to what is in place in the Crossfire Subversion repository at SourceForge. It is advised to use a more descriptive name for the patchfile - since that is just an example. + + Now, use the tar command to compress the patchfile + + $ tar czvf mypatchfile.tgz patchfile + + This will take all the contents of patchfile and compress it in to mypatchfile.tgz + + The command to uncompress said file is + + $ tar xzvf mypatchfile.tgz + + Remember, c = compress while x = extract + + FIXME - Document how to create a diff against SVN using TortoiseSVN and TortoiseMerge + + Once you have your diff file, see the options below for submitting them or making others aware of your new map or map updates. ==== Submit the map as a "patch" on SourceForge ==== - Visit the SourceForge patch upload page at https://sourceforge.net/tracker/?func=add&group_id=13833&atid=313833 - Follow the online instructions for submitting the patch - please be thorough on filling out the online submit form @@ -109,5 +135,4 @@ * Try to keep the attachment at 1MB or less in size * If possible, avoid composing the message in HTML format -- this helps keep the mail archives "looking nice" and consistant * If you would like to sign up for the Crossfire Maps mailing list, visit https://lists.sourceforge.net/lists/listinfo/crossfire-maps - FIXME - Document how to create a dif against SVN and submit the updates that way (patch tracker or mailing list) IP-Address : 65.165.40.73 Old Revision: http://wiki.metalforge.net/doku.php/map_making?rev=1177300451 New Revision: http://wiki.metalforge.net/doku.php/map_making -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sun Apr 22 23:53:18 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 22 Apr 2007 23:53:18 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page added: linux Message-ID: <1177303998.388916.5143.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/22 23:53 User : leaf Edit Summary: Page created and includes information specific for Debian (for now..) ====== Crossfire on Linux ====== Crossfire should install and run on any Linux variant that supports [[wp>X_Window_System|X]] and has the libraries which Crossfire requires. ===== Debian ===== ==== Installation ==== The easiest way to install Crossfire on [[wp>Debian]] is to use the Debian package system and repository. The version there may lag somewhat behind the latest release, but it will be tested for Debian 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]].) Crossfire is available in all Debian distributions; oldstable, stable, testing and unstable. === Server === The server installation command is the following: $ apt-get update;apt-get install crossfire-server crossfire-maps Note: you may need to use the sudo command to install these packages $ sudo apt-get update;sudo apt-get install crossfire-server crossfire-maps This will install the Crossfire server (crossfire-server) and the current map set (crossfire-maps) If necessary, you can stop, start or restart the crossfire server via the following commands, respectively: $ /etc/init.d/crossfire-server stop $ /etc/init.d/crossfire-server start $ /etc/init.d/crossfire-server restart Again, adding sudo to those commands may be necessary. For example: $ sudo /etc/init.d/crossfire-server restart === Client === Installation of the client has a similar syntax. You'll need to chose which client you want to install, or if you install any (or all of) the three - which one you'll actually use for game play. $ apt-get install crossfire-client $ apt-get install crossfire-client-gtk $ apt-get install crossfire-client-gtk2 To launch the client, hit alt+f2 and then enter any of the following (shown in bold text): * For crossfire-client: **cfclient** * For crossfire-client-gtk: **gcfclient** * For crossfire-client-gtk2: **gcfclient2** (Minor Note: gcfclient stands for **G**TK **C**rossfire **client**) ===== (K|X)Ubuntu ===== 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]].) FIXME - More information for (K|X)Ubuntu ---- ===== "Others" ===== FIXME - more information for the following "short list" of other Linux distros * Slackware * Red Hat * Fedora Core * Mandriva * SuSE * Gentoo IP-Address : 65.165.40.73 Old Revision: none 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 Sun Apr 22 23:57:47 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 22 Apr 2007 23:57:47 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: linux Message-ID: <1177304267.649305.5152.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/22 23:57 User : leaf Edit Summary: Layout and link update @@ -1,12 +1,12 @@ ====== Crossfire on Linux ====== Crossfire should install and run on any Linux variant that supports [[wp>X_Window_System|X]] and has the libraries which Crossfire requires. ===== Debian ===== - ==== Installation ==== - The easiest way to install Crossfire on [[wp>Debian]] is to use the Debian package system and repository. The version there may lag somewhat behind the latest release, but it will be tested for Debian 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]].) - Crossfire is available in all Debian distributions; oldstable, stable, testing and unstable. + + ==== Installation ==== + The easiest way to install Crossfire on [[wp>Debian]] is to use the Debian package system and repository. The version there may lag somewhat behind the latest release, but it will be tested for Debian 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]].) === Server === The server installation command is the following: IP-Address : 65.165.40.73 Old Revision: http://wiki.metalforge.net/doku.php/linux?rev=1177303995 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 Apr 23 15:50:22 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Mon, 23 Apr 2007 15:50:22 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfire_traffic Message-ID: <1177361422.289557.6838.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/23 15:50 User : ryo Edit Summary: inscription @@ -15,8 +15,9 @@ * New feature - monster express a dialog (aka greeting and death messages) to players, currently used by the Advocate of Gorokh (dungeons/gorokh/gorokh_final) and Valriel's Vicar (dungeons/valriel/valriel_final) * New map in Lone Town, "Ye Olde Shoppe of Transport" - provides teleporters & fast travel to locations throughout the CF World * Skill tools (talismans, holy symbols and others) will now be applied automatically when reading the matching skill, even if it's not required. This way player will beneficit from the tool's bonuses. If you don't want that behaviour, leave your tool in your apartment :) * items "of Occidental Mages" now work again. Beware strange rings! + * GTK client's 'spells' menu has now been improved to enable direct spell writing on a scroll. Select a spell, select the 'inscription' tab, choose the item to write on, click the 'inscribe' button ==== March 2007 ==== * Player will be warned when spell effects are about to expire. This works for protections, stats changing, xray, ..., but not for invisibility. * Items can now have a fixed price, independent of player's charisma. Key/values price_adjustment, price_adjustment_sell and price_adjustment_buy are used (trunk only). IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/crossfire_traffic?rev=1177195451 New Revision: http://wiki.metalforge.net/doku.php/crossfire_traffic -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Mon Apr 23 17:14:12 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Mon, 23 Apr 2007 17:14:12 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev:object_fields Message-ID: <1177366452.993307.6966.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/23 17:14 User : ryo Edit Summary: SP_RAISE_DEAD @@ -280,15 +280,15 @@ ==== level ==== Type: sint16 Meaning: - ==== last_heal ==== Type: sint32 Meaning: * for DISEASE, if 1 then this disease won't grant immunity when cured naturally + * for SPELL of type SP_RAISE_DEAD, if set then the spell can resurrect without a body. If 0 the body is required ==== last_sp ==== Type: sint32 IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/dev:object_fields?rev=1173210928 New Revision: http://wiki.metalforge.net/doku.php/dev:object_fields -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Mon Apr 23 17:16:09 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Mon, 23 Apr 2007 17:16:09 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev:object_fields Message-ID: <1177366569.893971.6975.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/23 17:16 User : ryo Edit Summary: SP_RAISE_DEAD @@ -126,9 +126,10 @@ ==== race ==== Type: const char * (shared string) - Meaning: Human, goblin, dragon, etc. + * for living things: Human, goblin, dragon, etc. + * for SPELL with SP_RAISE_DEAD subtype, if set, then this is the name of a treasurelist of possible races in which the character will be reincarnated into ==== slaying ==== Type: const char * (shared string) IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/dev:object_fields?rev=1177366448 New Revision: http://wiki.metalforge.net/doku.php/dev:object_fields -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Tue Apr 24 16:07:19 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 24 Apr 2007 16:07:19 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: faq Message-ID: <1177448839.995506.9297.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/24 16:07 User : leaf Edit Summary: Potion of Life update and other changes @@ -1,8 +1,5 @@ ====== Crossfire FAQ ====== - - **Warning: this FAQ is totally outdated as of december 2006 :) ** - FIXME - numerous formatting corrections (i.e. linkification) and content updates still necessary ===== Chapter 1 - Introduction ===== @@ -197,9 +194,9 @@ - No spell path restrictions. These races and classes do not have restrictions on spell access *until* your character selects a god/cult to follow or worship. - Neither race or class has any restrictions on equipment or other gear. They can wield or use any weapon and armour. Once again, which cult/god your character chooses to worship will have an affect on this. - Neither race or class makes you vulnerable to any particular attack type such as fire for a wraith or troll, etc. This can be a hard learning curve when first starting out. - Also, when starting out, it's easiest to learn how to play Crossfire as one of the warrior/fighter classes. The core skills (movement coordination, attack strategies, map & level progression) apply to all classes, but have a shorter learning curve with the "melee" classes. Learning and using spells (especially offensive spells) is a step up from these core skills. After all, once the spell caster runs out of grace or mana - they are going to have to fight their way out to safety. + Also, when starting out, it's easiest to learn how to play Crossfire as one of the warrior/fighter classes. The core skills (movement coordination, attack strategies, map & level progression) apply to all classes, but have a shorter learning curve with the "melee" classes. Learning and using spells (especially offensive spells) is a step up from these core skills. After all, once the spell caster runs out of grace or spell points - they are going to have to fight their way out to safety. === 3.1.4 How do I save my position? === Whenever I use the save command it seems to work fine but when I quit the gave the player is deleted! What gives? @@ -414,8 +411,30 @@ - You need to be a sufficient level in praying to have your god/cult grant remove curse - You need to pray on the cult/god altar for some amount of time (depends on praying level, luck, god/cult in question and persistence) for this to work -- this can range from a few seconds to several minutes. Remove curse works on any and all items - from weapons to potions. Make sure you have the cursed item in your inventory while praying on the altar though. + + === 3.2.12 How does a Potion of Life work? === + + How a Potion of Life works has now changed (2007-Apr-20; server r6071 for trunk and r6072 for branch). There are different types or kinds of Potion of Life. + + * Minor Potion of Life (New) + * Medium Potion of Life (New) + * Major Potion of Life (New) + * Supreme Potion of Life (the "old" potion) + + If you are level 6 or higher, a Minor Potion of Life will not work on you.\\ + If you are level 31 or higher, a Medium Potion of Life and a Minor Potion of Life will not work.\\ + If you are Level 51 or higher, only a Supreme Potion of Life will work for you.\\ + + + Summary, from a different perspective: + + | Character Level | What potions will work for you | + | Level 1-5 | All potions | + | Level 6-30 | Medium Potion of Life , Major Potion of Life and Supreme Potion of Life | + | Level 31-50 | Major Potion of Life and Supreme Potion of Life | + | Level 51+ | Supreme Potion of Life (only) | ==== 3.3 Monster Problems ==== === 3.3.1 How do I kill vampires? (or other, tough monsters) === IP-Address : 65.193.16.100 Old Revision: http://wiki.metalforge.net/doku.php/faq?rev=1173979361 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 Tue Apr 24 18:38:37 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 24 Apr 2007 18:38:37 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: linux Message-ID: <1177457917.027243.9534.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/24 18:38 User : leaf Edit Summary: New content and instructions for K|X)Ubuntu @@ -49,14 +49,59 @@ (Minor Note: gcfclient stands for **G**TK **C**rossfire **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. + + ==== 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]].) - FIXME - More information for (K|X)Ubuntu + === Server === + + The server installation command is the following: + + $ apt-get update;apt-get install crossfire-server crossfire-maps + + Note: you may need to use the sudo command to install these packages + + $ sudo apt-get update;sudo apt-get install crossfire-server crossfire-maps + + This will install the Crossfire server (crossfire-server) and the current map set (crossfire-maps) + + If necessary, you can stop, start or restart the crossfire server via the following commands, respectively: + + $ /etc/init.d/crossfire-server stop + + $ /etc/init.d/crossfire-server start + + $ /etc/init.d/crossfire-server restart + + Again, adding sudo to those commands may be necessary. For example: + + $ sudo /etc/init.d/crossfire-server restart + + === Client === + + Installation of the client has a similar syntax. You?ll need to chose which client you want to install, or if you install any (or all of) the three - which one you?ll actually use for game play. You'll likely need to use the sudo command as well to install these packages. + + $ apt-get install crossfire-client + + (Note: crossfire-client-x11 and crossfire-client are both the same client, just two different names) + + $ apt-get install crossfire-client-gtk + + $ apt-get install crossfire-client-gtk2 + + To launch the client, hit alt+f2 and then enter any of the following (shown in bold text): + + * For crossfire-client or crossfire-client-x11 client: cfclient + * For crossfire-client-gtk: gcfclient + * For crossfire-client-gtk2: gcfclient2 + (Minor Note: gcfclient stands for **G**TK **C**rossfire **client**) - ---- + FIXME = Instructions when using the the Update Manager GUI and modifying the apt sources list to download the Crossfire packages ===== "Others" ===== FIXME - more information for the following "short list" of other Linux distros IP-Address : 65.193.16.100 Old Revision: http://wiki.metalforge.net/doku.php/linux?rev=1177304265 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 Apr 24 18:44:39 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 24 Apr 2007 18:44:39 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: linux Message-ID: <1177458279.291709.9552.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/24 18:44 User : leaf Edit Summary: Comment about known bug/issue with GTK2 client and Ubuntu @@ -90,8 +90,12 @@ $ apt-get install crossfire-client-gtk $ apt-get install crossfire-client-gtk2 + + **IMPORTANT:** + * We?ve heard there?s a weird seemingly ubuntu-specific bug in ubuntu?s package of gcfclient2, with it repeating each keypress twice when typing... nobody except ubuntu package users seem to be able to reproduce this + * Feb-22-2007: Bug reported at LaunchPad, https://launchpad.net/ubuntu/+source/crossfire-client/+bug/87194 To launch the client, hit alt+f2 and then enter any of the following (shown in bold text): * For crossfire-client or crossfire-client-x11 client: cfclient IP-Address : 65.193.16.100 Old Revision: http://wiki.metalforge.net/doku.php/linux?rev=1177457913 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 Apr 24 18:50:27 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 24 Apr 2007 18:50:27 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: linux Message-ID: <1177458627.313157.9567.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/24 18:50 User : leaf Edit Summary: Minor layout tweak for the known issue with gtkv2 client @@ -91,11 +91,11 @@ $ apt-get install crossfire-client-gtk $ apt-get install crossfire-client-gtk2 - **IMPORTANT:** - * We?ve heard there?s a weird seemingly ubuntu-specific bug in ubuntu?s package of gcfclient2, with it repeating each keypress twice when typing... nobody except ubuntu package users seem to be able to reproduce this - * Feb-22-2007: Bug reported at LaunchPad, https://launchpad.net/ubuntu/+source/crossfire-client/+bug/87194 + * IMPORTANT Note: + * We?ve heard there?s a weird seemingly ubuntu-specific bug in ubuntu?s package of gcfclient2, with it repeating each keypress twice when typing... nobody except ubuntu package users seem to be able to reproduce this + * Feb-22-2007: Bug reported at LaunchPad, https://launchpad.net/ubuntu/+source/crossfire-client/+bug/87194 To launch the client, hit alt+f2 and then enter any of the following (shown in bold text): * For crossfire-client or crossfire-client-x11 client: cfclient IP-Address : 65.193.16.100 Old Revision: http://wiki.metalforge.net/doku.php/linux?rev=1177458276 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 Apr 24 18:56:37 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 24 Apr 2007 18:56:37 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: linux Message-ID: <1177458997.629373.9576.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/24 18:56 User : leaf Edit Summary: Correct wrong information for crossfire-client-x11 @@ -83,11 +83,9 @@ === Client === Installation of the client has a similar syntax. You?ll need to chose which client you want to install, or if you install any (or all of) the three - which one you?ll actually use for game play. You'll likely need to use the sudo command as well to install these packages. - $ apt-get install crossfire-client - - (Note: crossfire-client-x11 and crossfire-client are both the same client, just two different names) + $ apt-get install crossfire-client-x11 $ apt-get install crossfire-client-gtk $ apt-get install crossfire-client-gtk2 @@ -97,9 +95,9 @@ * Feb-22-2007: Bug reported at LaunchPad, https://launchpad.net/ubuntu/+source/crossfire-client/+bug/87194 To launch the client, hit alt+f2 and then enter any of the following (shown in bold text): - * For crossfire-client or crossfire-client-x11 client: cfclient + * For crossfire-client-x11 client: cfclient * For crossfire-client-gtk: gcfclient * For crossfire-client-gtk2: gcfclient2 (Minor Note: gcfclient stands for **G**TK **C**rossfire **client**) IP-Address : 65.193.16.100 Old Revision: http://wiki.metalforge.net/doku.php/linux?rev=1177458625 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 Apr 24 18:58:59 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 24 Apr 2007 18:58:59 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: linux Message-ID: <1177459139.915428.9579.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/24 18:58 User : leaf Edit Summary: Corrections in regards to using sudo @@ -58,38 +58,30 @@ === Server === The server installation command is the following: - - $ apt-get update;apt-get install crossfire-server crossfire-maps - - Note: you may need to use the sudo command to install these packages $ sudo apt-get update;sudo apt-get install crossfire-server crossfire-maps This will install the Crossfire server (crossfire-server) and the current map set (crossfire-maps) If necessary, you can stop, start or restart the crossfire server via the following commands, respectively: - $ /etc/init.d/crossfire-server stop - - $ /etc/init.d/crossfire-server start - - $ /etc/init.d/crossfire-server restart + $ sudo /etc/init.d/crossfire-server stop - Again, adding sudo to those commands may be necessary. For example: + $ sudo /etc/init.d/crossfire-server start $ sudo /etc/init.d/crossfire-server restart === Client === - Installation of the client has a similar syntax. You?ll need to chose which client you want to install, or if you install any (or all of) the three - which one you?ll actually use for game play. You'll likely need to use the sudo command as well to install these packages. + Installation of the client has a similar syntax. You?ll need to chose which client you want to install, or if you install any (or all of) the three - which one you?ll actually use for game play. - $ apt-get install crossfire-client-x11 + $ sudo apt-get install crossfire-client-x11 - $ apt-get install crossfire-client-gtk + $ sudo apt-get install crossfire-client-gtk - $ apt-get install crossfire-client-gtk2 + $ sudo apt-get install crossfire-client-gtk2 * IMPORTANT Note: * We?ve heard there?s a weird seemingly ubuntu-specific bug in ubuntu?s package of gcfclient2, with it repeating each keypress twice when typing... nobody except ubuntu package users seem to be able to reproduce this * Feb-22-2007: Bug reported at LaunchPad, https://launchpad.net/ubuntu/+source/crossfire-client/+bug/87194 IP-Address : 65.193.16.100 Old Revision: http://wiki.metalforge.net/doku.php/linux?rev=1177458995 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 Apr 24 19:00:59 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 24 Apr 2007 19:00:59 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: known_client_issues Message-ID: <1177459259.968653.9588.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/24 19:00 User : leaf Edit Summary: Double character bug exists for gtk2 client under Feisty @@ -6,9 +6,9 @@ * Do not use a nameserver of Deutsche Telekom or T-Online. ===== 1.9.1 ===== - crossfire-client-gtk2 1.9.1 under Ubuntu Edgy (untested on other versions or releases) + crossfire-client-gtk2 1.9.1-2 under Ubuntu Edgy and Feisty (untested on other versions or releases) * We've heard there's a weird seemingly ubuntu-specific bug in ubuntu's package of gcfclient2, with it repeating each keypress twice when typing... nobody except ubuntu package users seem to be able to reproduce this * Feb-22-2007: Bug reported at LaunchPad, https://launchpad.net/ubuntu/+source/crossfire-client/+bug/87194 ===== 1.9.0 ===== IP-Address : 65.193.16.100 Old Revision: http://wiki.metalforge.net/doku.php/known_client_issues?rev=1172182828 New Revision: http://wiki.metalforge.net/doku.php/known_client_issues -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Tue Apr 24 19:02:44 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 24 Apr 2007 19:02:44 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: known_client_issues Message-ID: <1177459364.365351.9591.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/24 19:02 User : leaf Edit Summary: Edgy and Feisty have two different, but minor, package versions @@ -6,9 +6,9 @@ * Do not use a nameserver of Deutsche Telekom or T-Online. ===== 1.9.1 ===== - crossfire-client-gtk2 1.9.1-2 under Ubuntu Edgy and Feisty (untested on other versions or releases) + crossfire-client-gtk2 under Ubuntu Edgy (v1.9.1-1) and Feisty (v1.9.1-2) (untested on other versions or releases) * We've heard there's a weird seemingly ubuntu-specific bug in ubuntu's package of gcfclient2, with it repeating each keypress twice when typing... nobody except ubuntu package users seem to be able to reproduce this * Feb-22-2007: Bug reported at LaunchPad, https://launchpad.net/ubuntu/+source/crossfire-client/+bug/87194 ===== 1.9.0 ===== IP-Address : 65.193.16.100 Old Revision: http://wiki.metalforge.net/doku.php/known_client_issues?rev=1177459257 New Revision: http://wiki.metalforge.net/doku.php/known_client_issues -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Tue Apr 24 19:41:21 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 24 Apr 2007 19:41:21 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: linux Message-ID: <1177461681.507130.9663.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/24 19:41 User : leaf Edit Summary: New content - package install using Synaptic on Ubuntu @@ -55,9 +55,11 @@ ==== 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]].) - === Server === + === Command Line Interface (CLI) === + + == Server == The server installation command is the following: $ sudo apt-get update;sudo apt-get install crossfire-server crossfire-maps @@ -71,9 +73,9 @@ $ sudo /etc/init.d/crossfire-server start $ sudo /etc/init.d/crossfire-server restart - === Client === + == Client == Installation of the client has a similar syntax. You?ll need to chose which client you want to install, or if you install any (or all of) the three - which one you?ll actually use for game play. $ sudo apt-get install crossfire-client-x11 @@ -93,9 +95,28 @@ * For crossfire-client-gtk2: gcfclient2 (Minor Note: gcfclient stands for **G**TK **C**rossfire **client**) - FIXME = Instructions when using the the Update Manager GUI and modifying the apt sources list to download the Crossfire packages + === GUI === + + == Client and Server == + + The following steps summarize how to install Crossfire packages through the GUI (Synaptic Package Manager.) The instructions are based of an installation of Feisty Fawn, the actual steps may vary for earlier releases or distributions of Ubuntu. + + If necessary, to enable access to the **Universe** section **OR** confirm that you have access to the Universe section, perform the following steps: + + - Click on **System** -> **Administration** -> **Synaptic Package Manager** + - Within **Synaptic Package Manager**, click on **Settings** -> **Repositories** and a new popup window should appear + - Place a check, or make sure there is a check, in front of **Community maintained Open Source software (universe)** + - Click on the **Close** button (lower right of the popup window) + - If necessary, click on the **Close** button to the **Repositories Changed** window + - Click on **Update** to download or update the new software package list + - Click on the **Search** button and a new popup window will appear + - For the search term, use **crossfire** and click on **Search** + - Select which component(s) you wish to install; at a minimum you'll need at least one of the clients + - Follow the prompts and confirmation steps (check box next to the package name, confirm the installation) and click on **Apply** + - Wait for the files to download and install + ===== "Others" ===== FIXME - more information for the following "short list" of other Linux distros IP-Address : 65.193.16.100 Old Revision: http://wiki.metalforge.net/doku.php/linux?rev=1177459137 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 Apr 24 19:46:27 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 24 Apr 2007 19:46:27 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: linux Message-ID: <1177461987.075388.9672.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/24 19:46 User : leaf Edit Summary: Move instructions on how to Launch the client (ubuntu) @@ -46,9 +46,9 @@ * For crossfire-client: **cfclient** * For crossfire-client-gtk: **gcfclient** * For crossfire-client-gtk2: **gcfclient2** - (Minor Note: gcfclient stands for **G**TK **C**rossfire **client**) + (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. @@ -82,20 +82,8 @@ $ sudo apt-get install crossfire-client-gtk $ sudo apt-get install crossfire-client-gtk2 - - * IMPORTANT Note: - * We?ve heard there?s a weird seemingly ubuntu-specific bug in ubuntu?s package of gcfclient2, with it repeating each keypress twice when typing... nobody except ubuntu package users seem to be able to reproduce this - * Feb-22-2007: Bug reported at LaunchPad, https://launchpad.net/ubuntu/+source/crossfire-client/+bug/87194 - - To launch the client, hit alt+f2 and then enter any of the following (shown in bold text): - - * For crossfire-client-x11 client: cfclient - * For crossfire-client-gtk: gcfclient - * For crossfire-client-gtk2: gcfclient2 - - (Minor Note: gcfclient stands for **G**TK **C**rossfire **client**) === GUI === == Client and Server == @@ -115,8 +103,21 @@ - Select which component(s) you wish to install; at a minimum you'll need at least one of the clients - Follow the prompts and confirmation steps (check box next to the package name, confirm the installation) and click on **Apply** - Wait for the files to download and install + === Launch Client === + + * IMPORTANT Note: + * We?ve heard there?s a weird seemingly ubuntu-specific bug in ubuntu?s package of gcfclient2, with it repeating each keypress twice when typing... nobody except ubuntu package users seem to be able to reproduce this + * Feb-22-2007: Bug reported at LaunchPad, https://launchpad.net/ubuntu/+source/crossfire-client/+bug/87194 + + To launch the client, hit alt+f2 and then enter any of the following (shown in bold text): + + * For crossfire-client-x11 client: **cfclient** + * For crossfire-client-gtk: **gcfclient** + * For crossfire-client-gtk2: **gcfclient2** + + (Minor Note: gcfclient stands for **G**TK **C**ross**F**ire **client**) ===== "Others" ===== FIXME - more information for the following "short list" of other Linux distros IP-Address : 65.193.16.100 Old Revision: http://wiki.metalforge.net/doku.php/linux?rev=1177461678 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 Apr 24 20:51:52 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 24 Apr 2007 20:51:52 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: faq Message-ID: <1177465912.465596.9776.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/24 20:51 User : leaf Edit Summary: More details on the changes with Potions of Life @@ -414,14 +414,20 @@ Remove curse works on any and all items - from weapons to potions. Make sure you have the cursed item in your inventory while praying on the altar though. === 3.2.12 How does a Potion of Life work? === - How a Potion of Life works has now changed (2007-Apr-20; server r6071 for trunk and r6072 for branch). There are different types or kinds of Potion of Life. - + A consumed Potion of Life restores lost or depleted stats (Str, Dex, Con, et al) due to player death or monster/weapon attack. The potion *only* restores lowered stats - not experience. + + How a Potion of Life works has now changed (2007-Apr-20; server r6071 for trunk and r6072 for branch). There are different types or kinds of Potion of Life. + * Minor Potion of Life (New) * Medium Potion of Life (New) * Major Potion of Life (New) * Supreme Potion of Life (the "old" potion) + + Which one you need (to restore depleted stats) depends on your character's overall level. + + Summary: If you are level 6 or higher, a Minor Potion of Life will not work on you.\\ If you are level 31 or higher, a Medium Potion of Life and a Minor Potion of Life will not work.\\ If you are Level 51 or higher, only a Supreme Potion of Life will work for you.\\ IP-Address : 65.193.16.100 Old Revision: http://wiki.metalforge.net/doku.php/faq?rev=1177448835 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 Tue Apr 24 23:46:16 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 24 Apr 2007 23:46:16 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: join Message-ID: <1177476376.435511.10059.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/24 23:46 User : leaf Edit Summary: More details on contributing maps and graphics @@ -11,9 +11,19 @@ * Bug testing ([[http://sourceforge.net/tracker/?atid=113833&group_id=13833&func=browse|Report Bugs Here]]. * Graphic development * Creating Maps - Whey you want to submit content, please put it on the ([[http://sourceforge.net/tracker/?group_id=13833&atid=313833|patch tracker]]), and optionaly leave a note on the discussion mailing list. + ===== Help & Contribute ===== + + Map and Graphic contributions are much more "free form" then client or server development. + + As long as the maps follow the [[map_making|Map Guidelines]] and there are no obvious exploits, errors or problems -- many maps (nearly all..) are added to the official distribution. For more information, see the expanded section on [[map_making#map_contributions|Map Contributions]] + + Graphics have a pretty good track record of being added as well - just make sure the" style" and "look" of the graphics blend nicely with the existing graphic set. It's best to test new graphics (preview them) in a sample in-game screen shot. + + When you want to submit content, please put it on the ([[http://sourceforge.net/tracker/?group_id=13833&atid=313833|patch tracker]]), and optionally leave a note on the discussion mailing list. + + FIXME - Adjustments, updates and changes made to the client or server code requirements ===== Project Related ===== * [[http://sourceforge.net/tracker/?group_id=13833&atid=113833|Bug reporting]] * Map testing IP-Address : 65.165.40.73 Old Revision: http://wiki.metalforge.net/doku.php/join?rev=1163614787 New Revision: http://wiki.metalforge.net/doku.php/join -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Tue Apr 24 23:53:08 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 24 Apr 2007 23:53:08 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: join Message-ID: <1177476788.855751.10070.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/24 23:53 User : leaf Edit Summary: Information and summary of archetypes @@ -10,16 +10,19 @@ * Project documentation (like on this wiki) * Bug testing ([[http://sourceforge.net/tracker/?atid=113833&group_id=13833&func=browse|Report Bugs Here]]. * Graphic development * Creating Maps + ===== Help & Contribute ===== Map and Graphic contributions are much more "free form" then client or server development. As long as the maps follow the [[map_making|Map Guidelines]] and there are no obvious exploits, errors or problems -- many maps (nearly all..) are added to the official distribution. For more information, see the expanded section on [[map_making#map_contributions|Map Contributions]] - Graphics have a pretty good track record of being added as well - just make sure the" style" and "look" of the graphics blend nicely with the existing graphic set. It's best to test new graphics (preview them) in a sample in-game screen shot. + Graphics have a pretty good track record of being added as well - just make sure the" style" and "look" of the graphics blend nicely with the existing graphic set. It's best to test new graphics (preview them) in a sample in-game screen shot. Note: There is more to graphics then a .png file - there's also Archetypes. + + Archetypes are the specifications that determines many aspects and features of graphics. To name a few; things like the graphic animation sequence, in game features such as how much damage a weapon causes, if an item can be walked on (ex: floor tile) or not walked on (ex: much of the water graphics), and if the object performs a special function (ex: cult altars, money conversion tables) is all determined through archetypes. While adjusting or creating archetypes can be quite a task, the development team can assist on that. Graphics however, are always needed and appreciated. When you want to submit content, please put it on the ([[http://sourceforge.net/tracker/?group_id=13833&atid=313833|patch tracker]]), and optionally leave a note on the discussion mailing list. FIXME - Adjustments, updates and changes made to the client or server code requirements IP-Address : 65.165.40.73 Old Revision: http://wiki.metalforge.net/doku.php/join?rev=1177476374 New Revision: http://wiki.metalforge.net/doku.php/join -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Wed Apr 25 23:52:26 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Wed, 25 Apr 2007 23:52:26 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfiretrt Message-ID: <1177563146.445496.12514.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/25 23:52 User : lauwenmark Edit Summary: Corrected a typo @@ -24,7 +24,7 @@ The Crossfire TRT code is now using C++ features, in the hope of making the code easier to maintain on the long run. Perl is also included "in depth" in the core of Crossfire TRT. ===== The Gtk Map Editor ===== - An early offspring of the Crossfire TRT project was [[http://cf.schmorp.de/editor.shtml|GCE - Gtk Crosfire Editor]], + An early offspring of the Crossfire TRT project was [[http://cf.schmorp.de/editor.shtml|GCE - Gtk Crossfire Editor]], which aims to make the map edition easier than with CFJavaEditor/Gridarta. The features are listed on the editor page. IP-Address : 81.169.95.197 Old Revision: http://wiki.metalforge.net/doku.php/crossfiretrt?rev=1176914459 New Revision: http://wiki.metalforge.net/doku.php/crossfiretrt -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Fri Apr 27 19:36:49 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Fri, 27 Apr 2007 19:36:49 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfire_compile_guide Message-ID: <1177720609.755249.17063.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/27 19:36 User : leaf Edit Summary: Clarify the download steps and instructions @@ -59,27 +59,38 @@ /home/ ==== DOWNLOAD ==== - This downloads the necessary files to your computer, which will be used to compile or build the server + * Trunk contains the newest features and development for the game + * Branch contains the most recent "stable" version of the game + * Tags is an official & stable release of the game + + + **IMPORTANT** - One should be consistant with what they check out; meaning use all trunk server & archetypes & maps or branches/1.x server & archetypes & maps or tags/1.10.0 server & archetypes & maps otherwise you run the risk of incompatibilities (broken maps, missing graphics, etc.) + + The follow steps will download the necessary files to your computer, which will be used to compile (or build) the server. + + === Trunk === $ svn co https://crossfire.svn.sourceforge.net/svnroot/crossfire/server/trunk server.svn $ svn co https://crossfire.svn.sourceforge.net/svnroot/crossfire/maps/trunk maps.svn $ svn co https://crossfire.svn.sourceforge.net/svnroot/crossfire/arch/trunk arch.svn - The steps have you download trunk, but you could also use branches/1.x or tags/1.10.0 as well. For instance: + === Branch === + + These steps have you download branches/1.x $ svn co https://crossfire.svn.sourceforge.net/svnroot/crossfire/server/branches/1.x server.svn $ svn co https://crossfire.svn.sourceforge.net/svnroot/crossfire/maps/branches/1.x maps.svn $ svn co https://crossfire.svn.sourceforge.net/svnroot/crossfire/arch/branches/1.x arch.svn - Or + === Tag === + + Here's how you download Tag and is using the 1.10.0 release as an example $ svn co https://crossfire.svn.sourceforge.net/svnroot/crossfire/server/tags/1.10.0 server.svn $ svn co https://crossfire.svn.sourceforge.net/svnroot/crossfire/maps/tags/1.10.0 maps.svn $ svn co https://crossfire.svn.sourceforge.net/svnroot/crossfire/arch/tags/1.10.0 arch.svn - - *IMPORTANT* - One should be consistant with what they check out; meaning use all trunk server & archetypes & maps or branches/1.x server & archetypes & maps or tags/1.10.0 server & archetypes & maps otherwise you run the risk of incompatibilities (broken maps, missing graphics, etc.) ==== SETUP ==== This confirms that you are still in your home directory IP-Address : 65.193.16.100 Old Revision: http://wiki.metalforge.net/doku.php/crossfire_compile_guide?rev=1176662024 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 Sat Apr 28 14:03:37 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 28 Apr 2007 14:03:37 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1177787017.825578.18997.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/28 14:03 User : ryo Edit Summary: document functions, and such @@ -1,9 +1,14 @@ Python plugin is a [[server plugin]] able to run Python scripts that manipulate Crossfire items, monsters, players, maps, ... The latest version, 2.0, is a major rewrite which introduces Python objects to represent maps, Crossfire objects and players. The hooking system also changed. - Old plugin's reference can be found on [[plugin_python]]. + Note that this guide doesn't intend to teach you Python. Documentation for that is available on [[http://docs.python.org|Python's official web site]]. + + Also, advanced functions can require some knowledge of Crossfire's inner workings. Developers seeking help should check [[http://crossfire.real-time.com/resources/index.html|Crossfire's resource page]]. Another option is to check existing Python scripts, available in the [[http://crossfire.svn.sourceforge.net/viewvc/crossfire/maps/trunk/python/|maps source tree]]. + + + 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 ====== @@ -56,9 +61,13 @@ * ''EventType'': EVENT_xxx constants, as defined in ''[[http://crossfire.svn.sourceforge.net/viewvc/crossfire/server/trunk/include/plugin.h?view=markup|include/plugin.h]]'' * ''MessageFlag'': NDI_xxx constants, as defined in ''[[http://crossfire.svn.sourceforge.net/viewvc/crossfire/server/trunk/include/newclient.h?view=markup|include/newclient.h]]'' * ''Move'': movement types, as defined in ''[[http://crossfire.svn.sourceforge.net/viewvc/crossfire/server/trunk/include/define.h?view=markup|include/define.h]]'' * ''Type'': object type, as defined in ''[[http://crossfire.svn.sourceforge.net/viewvc/crossfire/server/trunk/include/define.h?view=markup|include/define.h]]'' + + ''MessageFlag'' and ''Move'' can be combined, using +, to build multiple values. + {FIXME} do a nice table, with link to values? + Example: whoami.Say("%s => %d"%(Crossfire.DirectionName[Crossfire.Direction.NORTH], Crossfire.Direction.NORTH)) @@ -152,17 +161,21 @@ 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. ==== Action functions ==== Those functions enable the script to manipulate runtime objects. + === ReadyMap === - Parameter: - * map name (''String'') - * optional: flags (''Number'') Loads specified map, and returns a ''Crossfire.Map'' object wrapping it. Will return ''None'' if map couldn't be found. - ''Flags'' specifies what kind of map should be loaded. It matches the 2nd argument of ''ready_map_name()'' {FIXME} add flags and such + 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 === Returns an empty object which can then be manipulated and inserted in a map. + === CreateObjectByName === Parameters: * object or archetype name (''String'') @@ -225,21 +238,23 @@ Returns ''1'' if string matches the pattern, ''0'' else. Pattern can be a regular expression FIXME specifications + ===== Crossfire.Archetype methods and attributes ===== 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'' + * 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 + * 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. * **Name**: ''String'' containing the object's name @@ -360,15 +375,18 @@ * Count * **GodGiven**: ''Boolean'' * **IsPet**: if the object is on the friendly list or not * **AttackMovement** + ==== Methods ==== FIXME document all parameters. Link to relevant Crossfire function. Split in "standard function" and "helper function"? + === ActivateRune === Current object springs like a trap, hitting the victim. Arguments: * ''Crossfire.Object'' that is the victim of the trap. + === AddExp === Adds or substracts experience to current object. Arguments: @@ -378,8 +396,9 @@ * 0: give the player the skill * 1: give player exp to total, no skill * 2: player gets nothing * 3: used when removing exp + === AddTimer === Fires an ''event_timer'' after the specified delay. Object should have a handler for this event. Arguments: @@ -388,8 +407,9 @@ * 1: delay is in seconds * 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]]'' + === Apply === Current object applies specified object. The effect depends on the object being applied, which can be a potion, a trigger, ... Arguments: @@ -399,64 +419,201 @@ Return value: * 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 === + Current object casts a spell. + + Arguments: + * ''Crossfire.Object'' representing the spell to case + * ''Crossfire.Direction'', direction in which the object should cast + * ''String'', optional arguments to the spell (for food creation, ...) + + Return value: + * 0 if spell wasn't cast + * non-zero value if spell was cast + + 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 === + + Equivalent of ''Cast''. + === 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 === + 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 partial full name match + === 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, ...) + + Return value: + * 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 === + 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. + === 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 === Current object is reinitialized from its default values, values (ac, wc, Str, ...) are recomputed from items worn, in inventory, ... + === ForgetSpell === + Player forgets a spell. + + Arguments: + * ''Crossfire.Object'' representing the spell to forget + + Object forgetting should be a player. + === 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 === + Insert the current object into another object. + + Arguments: + * ''Crossfire.Object'', in which the current object will be inserted + + Return: + * ''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 === + 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 === + 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. + === OutOfMap === + Check a position on the object's map. + + Arguments: + * ''Number'', ''x'' and ''y'' coordinates + + Return: + * 1 if coordinates are in the map the current object is on + * 0 else + + Note that this function takes into account maps tiling. + === Pay === + Buys an item. + + Arguments: + * ''Crossfire.Object'' to buy + + Return value: + * 1 if item could be bought + * 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 === + Pays money. + + Arguments: + * ''Number'', amount to pay for, in raw value units (silver coin) + + Return: + * 1 if object could pay specified amount + * 0 else + === QueryCost === + Finds the price of an object. + + Arguments: + * ''Crossfire.Object'' that current ''Crossfire.Object'' wants to know the price of + * ''Number'', flags to apply, combination of ''Crossfire.CostFlag'' values + + Return value: + * price of the item + === QueryName === Return: ''String'' containing the object's full name. + === ReadKey === Reads key associated to value. Arguments: * ''String'': key value to read Return: ''String'' containing the value. Will be empty if NULL value. + === Remove === Destroys current object, which then becomes invalid. + === 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 === Current object says something in current map. Argument: * ''string'' to say. + === Speak === Current object says something in current map - FIXME difference with say?? Argument: * ''string'' to say. + + Equivalent to ''Say''. + === 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 === Teleports the object to specified place. Arguments: @@ -464,15 +621,17 @@ * ''Number'': x coordinates * ''Number'': y coordinates Return value: ''Number'', 0 for success, 1 for failure. + === WriteKey === Inserts specified key/value in the object. 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 + ===== Crossfire.Map methods and attributes ===== Properties in **bold** are read-write, others read only. * Difficulty: ''Number'' * **Path**: ''String'' @@ -498,50 +657,105 @@ * Message: ''String'' * Region: ''Crossfire.Region'' * Exists (special meaning, ''False'' if cf map has been freed from memory, ''True'' otherwise) - Methods: - * Print: argument are ''String'', optional ''Number''. Prints the specified message to all players on the map, with specified flags (default is NDI_BLUE|NDI_UNIQUE). {FIXME} add flag description / equivalent of ext_info_map(). - * ObjectAt: arguments are ''x'' and ''y''. Returns the first ''Crossfire.Object'' at specified location, other objects available through the use of the ''Above'' field - * CreateObject: arguments are ''name'', ''x'' and ''y''. Equivalent of calling ''Crossfire.CreateObjectByName()'' (creates an item from archetype or name) and insert it in the map at the specified location - * Check - * ChangeLight: argument is a ''Number'', specifying how to change the light. Negative value means map gets brighter, positive darker. Note that light will never be negative or over 5 (''MAX_DARKNESS'') + ==== Print ==== + Prints the specified message to all players on the map. + + Arguments: + * ''String'', message to print + * ''Number'', optional flags, combination of ''Crossfire.MessageFlag'' (default is NDI_BLUE|NDI_UNIQUE). + + ==== ObjectAt ==== + Returns the first ''Crossfire.Object'' at specified location. + + Arguments: + * ''Number'', ''x'' and ''y'' + + Other objects on the position are available through the use of the ''Above'' field. + + ==== CreateObject ==== + Creates an object on the map. + + Arguments: + * ''String'', name of object to create + * ''Integer'', ''x'' and ''y'', coordinates + + Equivalent of calling ''Crossfire.CreateObjectByName()'' (creates an item from archetype or name) and inserting it in the map at the specified location + + ==== Check ==== + Arguments: + * ''String'', name of object to check for. Should be a raw name, without the bonuses and title and such. + * ''Integer'', optional ''x'' and ''y'' coordinates + + Return: + * the first object at the specified location matching specified name + + ==== ChangeLight ==== + Change the map's light level. + + Arguments: + * ''Number'', specifying how to change the light. Negative value means map gets brighter, positive darker. + + Note that light will never be negative or over 5 (''MAX_DARKNESS'') + ===== Crossfire.Player methods and attributes ===== 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. * **BedY** : ''number'' containing the y coordinate of last savebed. * **MarkedItem**: ''Crossfire.Object'', item the player has marked. * **Party**: ''Crossfire.Party'', party in which the player is. Note that changing it bypasses a potential party's password. - and methods: - * Message - * Write + + ==== CanPay ==== + Checks if player can pay for unpaid items in inventory. + + Return value: + * 1 if can pay + * 0 else + + This will print suitable messages if player can't pay. + + ==== Message ==== + Sends a message to the player. + + Arguments: + * ''String'', message to say + * ''Number'', optional, combination of ''Crossfire.MessageFlag'', default value is ''NDI_UNIQUE + NDI_ORANGE''. + + ==== Write ==== + + Equivalent of Message. ===== Crossfire.Party methods and attributes ===== This class merely encapsulates a party. Everything is read-only. Attributes: * Name: ''String'' * Password: ''String'' * Next: ''Crossfire.Party'' - Methods: - * GetPlayers: ''list'' of ''Crossfire.Players'' + ==== GetPlayers ==== + Return value: a ''list'' of ''Crossfire.Players'' + ===== Crossfire.Region methods and attributes ===== This class encapsulates an ingame region. Properties are read-only. * Name: ''String'' * Longname: ''String'' * Message: ''String'' * Next: ''Crossfire.Region'' - Methods: - * Parent: returns a ''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} + ===== /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). + ===== /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. IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1177088959 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 Sun Apr 29 08:07:58 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 29 Apr 2007 08:07:58 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1177852078.285841.21144.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/29 08:07 User : ryo Edit Summary: + Unique @@ -656,8 +656,9 @@ * WPartY: ''Number'' * Message: ''String'' * Region: ''Crossfire.Region'' * Exists (special meaning, ''False'' if cf map has been freed from memory, ''True'' otherwise) + * Unique: ''Number'' ==== Print ==== Prints the specified message to all players on the map. IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1177787011 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 Sun Apr 29 11:07:52 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 29 Apr 2007 11:07:52 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1177862872.382873.21427.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/29 11:07 User : ryo Edit Summary: Move() @@ -527,8 +527,18 @@ 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 === + Tries to move the object in a direction. + + Arguments: + * ''Number'', direction to move to. Should be one of ''Crossfire.Direction.xxx'' value. + + Return: + * 1 if object could move + * 0 else === OutOfMap === Check a position on the object's map. IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1177852073 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 Sun Apr 29 11:33:15 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 29 Apr 2007 11:33:15 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfire_traffic Message-ID: <1177864395.766684.21472.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/29 11:33 User : ryo Edit Summary: wagon @@ -16,8 +16,9 @@ * New map in Lone Town, "Ye Olde Shoppe of Transport" - provides teleporters & fast travel to locations throughout the CF World * Skill tools (talismans, holy symbols and others) will now be applied automatically when reading the matching skill, even if it's not required. This way player will beneficit from the tool's bonuses. If you don't want that behaviour, leave your tool in your apartment :) * items "of Occidental Mages" now work again. Beware strange rings! * GTK client's 'spells' menu has now been improved to enable direct spell writing on a scroll. Select a spell, select the 'inscription' tab, choose the item to write on, click the 'inscribe' button + * new wagon outside Scorn: can be used to move rapidly between towns (hint: move on it, and say a direction) ==== March 2007 ==== * Player will be warned when spell effects are about to expire. This works for protections, stats changing, xray, ..., but not for invisibility. * Items can now have a fixed price, independent of player's charisma. Key/values price_adjustment, price_adjustment_sell and price_adjustment_buy are used (trunk only). IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/crossfire_traffic?rev=1177361419 New Revision: http://wiki.metalforge.net/doku.php/crossfire_traffic -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sun Apr 29 17:03:13 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 29 Apr 2007 17:03:13 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev:random-maps Message-ID: <1177884193.685428.21985.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/04/29 17:03 User : ryo Edit Summary: multiple_floors @@ -31,9 +31,10 @@ ====== Parameters ====== ===== Style Parameters ===== | layoutstyle