From no-reply_wiki at metalforge.org Sat May 5 07:50:25 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 05 May 2007 07:50:25 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1178369425.425407.3373.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/05/05 07:50 User : ryo Edit Summary: wrong name @@ -396,19 +396,8 @@ * 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: - * ''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, ... @@ -474,8 +463,19 @@ Arguments: * ''String'' which is the name of the object to create Will create a new ''Crossfire.Object'' from specified name (like ''[[cfpython#Crossfire.CreateObjectByName|Crossfire.CreateObjectByName]]'') and insert it into the current object. + + === CreateTimer === + 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]]'' === Drop === Current object drops specified object, which will be put on the ground, or in a container, depending on applied containers. IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1177862866 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 May 5 08:09:31 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 05 May 2007 08:09:31 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1178370571.975391.3403.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/05/05 08:09 User : ryo Edit Summary: Insert @@ -707,8 +707,17 @@ 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'') + + ==== Insert ==== + Inserts an object at specified location. + + Arguments: + * ''Crossfire.Object'' to insert + * ''Number'', X and Y, coordinates where to insert + + Return: ''Crossfire.Object'' representing the inserted object. Can be ''None'' if object was removed for some reason (eaten by an altar, ...) ===== Crossfire.Player methods and attributes ===== This class inherits from Crossfire.Object, and introduces the new properties (bold = read-write): * IP: ''String''. IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1178369419 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 May 5 10:49:36 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 05 May 2007 10:49:36 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1178380176.785617.3652.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/05/05 10:49 User : ryo Edit Summary: note @@ -297,9 +297,9 @@ * **Facing**: ''Number'' * **Unaggressive**: ''Boolean'' * **God**: ''String'' * **Pickable**: ''Boolean'', whether the item can be picked up or not - * **Quantity**: ''Number'' + * **Quantity**: ''Number''. Setting it to 0 removes the object. * **Invisible**: ''Boolean'' * **Speed**: ''Number'' * **SpeedLeft**: ''Number'' * **LastSP**: ''Number'' IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1178370564 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 May 5 11:50:57 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 05 May 2007 11:50:57 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1178383857.858810.3757.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/05/05 11:50 User : ryo Edit Summary: Applied, Duration @@ -311,9 +311,9 @@ * Identified: ''Boolean'' * Alive: ''Boolean'' * DungeonMaster: ''Boolean'' * WasDungeonMaster: ''Boolean'' - * Applied: ''Boolean'' + * **Applied**: ''Boolean'' * **Unpaid**: ''Boolean'' * Monster: ''Boolean'' * **Friendly**: ''Boolean'' * Generator: ''Boolean'' @@ -375,8 +375,9 @@ * Count * **GodGiven**: ''Boolean'' * **IsPet**: if the object is on the friendly list or not * **AttackMovement** + * **Duration** ==== 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=1178383791 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 May 5 11:49:59 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 05 May 2007 11:49:59 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1178383799.066606.3748.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/05/05 11:49 User : ryo Edit Summary: ChangeAbil, Applied, Duration @@ -428,8 +428,14 @@ === CastAbility === Equivalent of ''Cast''. + + === ChangeAbil === + Displays relevant messages about resistances and so on changes. + + Arguments: + * ''Crossfire.Object'' which is a force effect, or something that changes a player's attribute and was just added to inventory. === CheckArchInventory === Finds an object in current object's inventory. IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1178380169 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 May 8 03:47:50 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 08 May 2007 03:47:50 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1178614070.865397.10402.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/05/08 03:47 User : ryo Edit Summary: format @@ -776,13 +776,15 @@ ====== 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 ===== + ===== Death message ===== + Script location: ''/python/misc/death_message.py'' + This script makes the monster/living thing containing it display a message when it dies. It should be hooked through an ''event_death'' archetype in monster's inventory. Message is specified in event object's options field. It can contain %m and %k, which will be replaced by respectively dead item's name and killer's name (if no killer, replaced by an empty string). ===== /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=1178383851 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 May 8 03:49:03 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 08 May 2007 03:49:03 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1178614143.903060.10405.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/05/08 03:49 User : ryo Edit Summary: format @@ -783,8 +783,10 @@ 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 ===== + ===== Greeting message ===== + Script location: ''/python/misc/greet_message.py'' + This script makes the monster/living thing containing it display a message when it attacks for the first time an enemy. It should be hooked through an ''event_time'' archetype in monster's inventory. Message is specified in event object's options field. It can contain %m and %e, which will be replaced by respectively monster's name and enemy's name. IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1178614064 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 May 8 05:21:15 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 08 May 2007 05:21:15 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1178619675.115389.10655.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/05/08 05:21 User : lauwenmark Edit Summary: Added documentation for the CFDialog helper classes @@ -775,8 +775,14 @@ ====== Scripts part of Crossfire default maps ====== Those Python scripts reside in the [[http://crossfire.svn.sourceforge.net/viewvc/crossfire/maps/trunk/python/|python]] subdirectory of the maps tree. They provide additional functionality, and may be considered as always present. FIXME {describe existing ones} + + ===== Dialog Helper ===== + Script location: ''/python/CFDialog.py'' + + This script provides two utility classes a map maker can use to easily create complex dialogs. + Go [[cfdialog#here]] for a complete explanation on how it works. ===== Death message ===== Script location: ''/python/misc/death_message.py'' IP-Address : 217.136.39.8 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1178614136 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 May 8 05:25:47 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 08 May 2007 05:25:47 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page added: cfdialog Message-ID: <1178619947.327005.10665.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/05/08 05:25 User : lauwenmark Edit Summary: created CFDialog documentation page ====== CFDialog Helper Classes ====== ==== What is this about ? ==== This is a small set of utility classes, to help you creating complex dialogs. It is made for those who do not want to bother about complex programming, but just want to make a few dialogs that are better than the @match system used in the server. ==== How to use this. ==== First, you need to import DialogRule and Dialog classes. Add the following line at the beginning of your script: ''from CFDialog import DialogRule, Dialog'' Then, you can go to the dialogs themselves. A dialog is made of several rules. Each rule is made of keywords, preconditions, postconditions, and answers. * **Keywords** are what the rule will be an answer to. For example, if you want a rule to be triggered when the player will say "hi", then "hi" is the keyword to use. You can associate more than a keyword to a rule by concatenating them with the "|" character. Finally, "*" is a special keyword that means: "match everything". "*" is useful to provide generic answers. * **Answers** are what will be said when the rule is triggered. This is what the NPC replies to the player. Answers are stored in a list. When there is more than one answer in that list, one will be selected at random. * **Preconditions** are flags that must match for the rule to be triggered. Each precondition has a name and a value. The default value of a precondition is "0". The flags are stored into each player, and will survive between gaming sessions. They are useful to set the point in a dialog reached by a player - you can see those as an "NPC memory". All conditions must have a name and a value. The ":" and ";" characters are forbidden. For a rule to be triggered, all the player's flags should match the preconditions. If you give "*" as the value for a precondition, it means that there is no need to match it. A precondition is a list in the form: [key, value]. All preconditions are stored in a list. * **Postconditions** are the status changes to apply to the player's conditions after the rule has been triggered. Their format is similar to preconditions. A value of "*" means that the condition will not be touched. Once you have defined your rules, you have to assemble them into a dialog. Each dialog involves somebody who triggers it, somebody who answers, and has a unique name so it cannot be confused with other dialogs. Typically, the "one who triggers" will be the player, and the "one who answers" is an NPC the player was taking to. You are free to chose whatever you want for the dialog name, as long as it contains no space or special characters, and is not used by another dialog. You can then add the rules you created to the dialog. Rules are parsed in a given order, so you must add the most generic answer last. ==== A simple example ==== I want to create a dialog for an old man. If I say "hello" or "hi" for the first time, grandpa will greet me. If I say it for the second time, he'll grumble (because he's like that, you know :)). I also need a generic answer if I say whatever else. In this example, the player is stored in 'player', and the old man in 'grandpa'. What the player said is in 'message'. # Dialog creation: speech = Dialog(player, grandpa, "test_grandpa_01") # # The first rule is the "hello" answer, so we place it at index 0 of the # rules list. The precondition is that we never said hello before. # The postcondition is to mark "hello" as "1", to remember we already # greeted grandpa. prer = [["hello","0"]] postr = [["hello", "1"]] rmsg = ["Hello, lad!","Hi, young fellow!","Howdy!"] speech.addRule(DialogRule("hello|hi", prer, rmsg, postr),0) # # The second rule is the answer to an hello if we already said it before. # Notice that we used "*" for the postcondition value, meaning that we # are leaving it as it is. prer = [["hello","1"]] postr = [["hello", "*"]] rmsg = ["I've heard, you know, I'm not deaf *grmbl*"] speech.addRule(DialogRule("hello|hi", prer, rmsg, postr),1) # # And finally, the generic answer. This is the last rule of the list. # We don't need to match any condition, and we don't need to change them, # so we use "*" in both cases this time. prer = [["hello","*"]] postr = [["hello", "*"]] rmsg = ["What ?", "Huh ?", "What do you want ?"] speech.addRule(DialogRule("*", prer, rmsg, postr),2) # # We only have to let the old man speak now: speech.speak(message) IP-Address : 217.136.39.8 Old Revision: none New Revision: http://wiki.metalforge.net/doku.php/cfdialog -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Tue May 8 05:29:31 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 08 May 2007 05:29:31 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfdialog Message-ID: <1178620171.398496.10669.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/05/08 05:29 User : ryo Edit Summary: Python @@ -3,6 +3,6 @@ ==== What is this about ? ==== - This is a small set of utility classes, to help you creating + This is a small set of [[cfpython|Python]] utility classes, to help you creating complex dialogs. It is made for those who do not want to bother about complex programming, but just want to make a few dialogs that are better than the @match system used in the server. IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfdialog?rev=1178619945 New Revision: http://wiki.metalforge.net/doku.php/cfdialog -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Tue May 8 05:46:37 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 08 May 2007 05:46:37 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfdialog Message-ID: <1178621197.261010.10708.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/05/08 05:46 User : lauwenmark Edit Summary: Completed the text. @@ -21,9 +21,9 @@ * **Keywords** are what the rule will be an answer to. For example, if you want a rule to be triggered when the player will say "hi", then "hi" is the keyword to use. You can associate more than a keyword to a rule by concatenating them with the "|" character. Finally, "*" is a special keyword that means: "match everything". "*" is useful to provide generic answers. * **Answers** are what will be said when the rule is triggered. This is what the NPC replies to the player. Answers are stored in a list. When there is more than one answer in that list, one will be selected at random. - * **Preconditions** are flags that must match for the rule to be triggered. Each precondition has a name and a value. The default value of a precondition is "0". The flags are stored into each player, and will survive between gaming sessions. They are useful to set the point in a dialog reached by a player - you can see those as an "NPC memory". All conditions must have a name and a value. The ":" and ";" characters are forbidden. For a rule to be triggered, all the player's flags should match the preconditions. If you give "*" as the value for a precondition, it means that there is no need to match it. A precondition is a list in the form: [key, value]. All preconditions are stored in a list. + * **Preconditions** are flags that must match for the rule to be triggered. Each precondition has a name and a value. The default value of a precondition is "0". The flags are stored into each player, and will survive between gaming sessions. They are useful to set the point in a dialog reached by a player - you can see those as an "NPC memory". All conditions must have a name and a value. The ":" and ";" characters are forbidden. For a rule to be triggered, all the player's flags should match the preconditions. If you give "*" as the value for a precondition, it means that there is no need to match it. A precondition is a list in the form: [key, value]. All preconditions are stored in a list. Note that you can use any string you want for the condition values, provided it doesn't contain ";" or ":". * **Postconditions** are the status changes to apply to the player's conditions after the rule has been triggered. Their format is similar to preconditions. A value of "*" means that the condition will not be touched. Once you have defined your rules, you have to assemble them into a dialog. Each dialog involves somebody who triggers it, somebody who answers, and has a unique name so it cannot be confused with other dialogs. IP-Address : 217.136.39.8 Old Revision: http://wiki.metalforge.net/doku.php/cfdialog?rev=1178621111 New Revision: http://wiki.metalforge.net/doku.php/cfdialog -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Tue May 8 05:45:13 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 08 May 2007 05:45:13 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfdialog Message-ID: <1178621113.415350.10705.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/05/08 05:45 User : lauwenmark Edit Summary: Completed the example script. @@ -35,8 +35,15 @@ I want to create a dialog for an old man. If I say "hello" or "hi" for the first time, grandpa will greet me. If I say it for the second time, he'll grumble (because he's like that, you know :)). I also need a generic answer if I say whatever else. In this example, the player is stored in 'player', and the old man in 'grandpa'. What the player said is in 'message'. + import Crossfire + import string + from CFDialog import Dialog, DialogRule + # + player=Crossfire.WhoIsActivator() + grandpa=Crossfire.WhoAmI() + message=Crossfire.WhatIsMessage() # Dialog creation: speech = Dialog(player, grandpa, "test_grandpa_01") # # The first rule is the "hello" answer, so we place it at index 0 of the IP-Address : 217.136.39.8 Old Revision: http://wiki.metalforge.net/doku.php/cfdialog?rev=1178620168 New Revision: http://wiki.metalforge.net/doku.php/cfdialog -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Tue May 8 11:12:38 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 08 May 2007 11:12:38 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1178640758.029316.11325.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/05/08 11:12 User : ryo Edit Summary: Race @@ -259,8 +259,9 @@ 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'' + * **Race**: ''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. * **Cha**: charisma * **Con**: constitution * **Dex**: dexterity IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1178619666 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 May 8 11:28:16 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 08 May 2007 11:28:16 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1178641696.204967.11349.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/05/08 11:28 User : ryo Edit Summary: fix doc @@ -451,9 +451,9 @@ 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 + Will return the first object in inventory that has the specified name. Matching is done on archetype, and also match on start of the object name. === CheckTrigger === Checks if current object should/can react to another object moving on it. IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1178640752 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 May 16 11:56:18 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Wed, 16 May 2007 11:56:18 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfire_traffic Message-ID: <1179334578.652030.31164.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/05/16 11:56 User : ryo Edit Summary: may @@ -6,8 +6,17 @@ ===== Changes to be merged ===== Please put most recent on bottom for month. Unless specified otherwise, changes are in both trunk and branch. + + ==== May 2007 ==== + * Town portal works again from/to random maps + * New Python method for Object, ''SetResist()'' + * New server setting, ''allow_broken_converters'', that controls what to do when an incorrect converter (value of resulting object is more than the value of converted objects) is encountered + * Reopen log file on SIGHUP + * New ''use'' command, which enables more complex item interaction (trunk only) + * Fix diseases propagating to spectators when in arena + * Performance improvement for massive spells (comet/asteroid for instance) (trunk only) ==== 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=1177884442 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 Wed May 16 12:16:21 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Wed, 16 May 2007 12:16:21 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: cfpython Message-ID: <1179335781.756713.31205.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/05/16 12:16 User : ryo Edit Summary: link to developer resources @@ -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. 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]]. + Also, advanced functions can require some knowledge of Crossfire's inner workings. Developers seeking help should check [[http://crossfire.real-time.com/development/index.html|Crossfire's page on development]] or [[http://crossfire.real-time.com/resources/index.html|Crossfire's resource page]] (which includes links to lists, IRC, how to contact people, ...). Another option is to check existing Python scripts, available in the [[http://crossfire.svn.sourceforge.net/viewvc/crossfire/maps/trunk/python/|maps source tree]]. Old plugin's reference can be found on [[plugin_python]], for historical purposes. IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/cfpython?rev=1178641690 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 May 21 16:15:31 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Mon, 21 May 2007 16:15:31 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfire_traffic Message-ID: <1179782131.579658.12148.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/05/21 16:15 User : ryo Edit Summary: party_rejoin @@ -15,8 +15,9 @@ * Reopen log file on SIGHUP * New ''use'' command, which enables more complex item interaction (trunk only) * Fix diseases propagating to spectators when in arena * Performance improvement for massive spells (comet/asteroid for instance) (trunk only) + * players will now rejoin party they were when they logged off. This behaviour can be controlled through the 'party_rejoin' command. Check its help for more information. ==== 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=1179334574 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 May 21 16:17:29 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Mon, 21 May 2007 16:17:29 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfire_traffic Message-ID: <1179782249.898740.12154.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/05/21 16:17 User : ryo Edit Summary: case @@ -15,9 +15,9 @@ * Reopen log file on SIGHUP * New ''use'' command, which enables more complex item interaction (trunk only) * Fix diseases propagating to spectators when in arena * Performance improvement for massive spells (comet/asteroid for instance) (trunk only) - * players will now rejoin party they were when they logged off. This behaviour can be controlled through the 'party_rejoin' command. Check its help for more information. + * Players will now rejoin party they were when they logged off. This behaviour can be controlled through the new 'party_rejoin' command. Check its help for more information. ==== 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=1179782129 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 May 22 01:50:23 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 22 May 2007 01:50:23 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo_new Message-ID: <1179816623.487086.13057.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/05/22 01:50 User : Edit Summary: change spell performance to done. @@ -2,9 +2,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:Performance Improvements]] - Server has performance issues, especially related to losts of spells | 1.x | 1 | Done | 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]]? | IP-Address : 209.204.178.229 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo_new?rev=1177250485 New Revision: http://wiki.metalforge.net/doku.php/dev_todo_new -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Tue May 22 01:53:37 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 22 May 2007 01:53:37 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo_new Message-ID: <1179816817.575479.13060.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/05/22 01:53 User : Edit Summary: @@ -2,9 +2,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 | Done | Server | [[user:mwedel]] | + | [[dev_todo:Performance Improvements]] - Server has performance issues, especially related to losts of spells | 1.x | 1 | Completed | 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]]? | IP-Address : 209.204.178.229 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo_new?rev=1179816616 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 Thu May 24 13:54:55 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Thu, 24 May 2007 13:54:55 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: server_plugin Message-ID: <1180032895.182362.19276.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/05/24 13:54 User : ryo Edit Summary: update @@ -103,8 +103,10 @@ ==== Time ==== Archetype: event_time Generated each time the object gets an opportunity to move. + + Return non zero value to prevent the regular processing to occur. ==== Throw ==== Archetype: event_throw IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/server_plugin?rev=1177155879 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 Thu May 24 16:11:44 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Thu, 24 May 2007 16:11:44 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page added: howto:add_body_slot Message-ID: <1180041104.985400.19497.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/05/24 16:11 User : ryo Edit Summary: created Player and monsters have ''body slots'', which correspond to eg neck, fingers, wrist, and so on. To add such body slot: * increment the ''NUM_BODY_LOCATIONS'' define in ''server/include/object.h * add the line for the slot in ''server/common/item.c'' Then edit relevant archetypes, to add body_ information. IP-Address : 82.236.87.204 Old Revision: none New Revision: http://wiki.metalforge.net/doku.php/howto:add_body_slot -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Thu May 24 16:14:21 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Thu, 24 May 2007 16:14:21 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: development_and_informational_links Message-ID: <1180041261.228780.19506.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/05/24 16:14 User : ryo Edit Summary: [[howto:add_body_slot]] @@ -13,9 +13,10 @@ * [[dev:shops]] * [[dev:skills]] * [[dev:spells]] * [[dev:weather]] + * [[howto:add_body_slot|howto: add a body slot]] * Crossfire Project website at https://sourceforge.net/projects/crossfire/ * Official Crossfire website at http://crossfire.real-time.com * Crossfire Forum at http://forum.metalforge.net * Crossfire World Map at http://dooler.woosworld.net/cf_map/ * Crossfire Dungeon/Zone/City/etc. maps at http://cfmaps.schmorp.de/ IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/development_and_informational_links?rev=1176062440 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 Thu May 24 16:13:00 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Thu, 24 May 2007 16:13:00 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: document_repository Message-ID: <1180041180.708898.19503.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/05/24 16:12 User : ryo Edit Summary: [[howto:add_body_slot]] @@ -91,9 +91,10 @@ * [[Crossfire Release Cycle]] * [[Crossfire Release Guide]] - Steps need to make an official release of crossfire. * [[Crossfire Compile Guide]] - Simple guide for building a local or testing server from SVN source * [[Quests]] - cross-reference for quests and lore + * [[howto:add_body_slot]] ===== Website Links ===== * [[Server Home Pages]] * [[Development and Informational Links]] IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/document_repository?rev=1177940705 New Revision: http://wiki.metalforge.net/doku.php/document_repository -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Thu May 24 16:12:13 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Thu, 24 May 2007 16:12:13 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: howto:add_body_slot Message-ID: <1180041133.945392.19500.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/05/24 16:12 User : ryo Edit Summary: created @@ -3,5 +3,5 @@ To add such body slot: - * increment the ''NUM_BODY_LOCATIONS'' define in ''server/include/object.h + * increment the ''NUM_BODY_LOCATIONS'' define in ''server/include/object.h'' * add the line for the slot in ''server/common/item.c'' Then edit relevant archetypes, to add body_ information. IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/howto:add_body_slot?rev=1180041102 New Revision: http://wiki.metalforge.net/doku.php/howto:add_body_slot -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Sat May 26 12:05:10 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sat, 26 May 2007 12:05:10 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: crossfire_traffic Message-ID: <1180199110.992764.24001.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/05/26 12:05 User : ryo Edit Summary: changes @@ -16,8 +16,10 @@ * New ''use'' command, which enables more complex item interaction (trunk only) * Fix diseases propagating to spectators when in arena * Performance improvement for massive spells (comet/asteroid for instance) (trunk only) * Players will now rejoin party they were when they logged off. This behaviour can be controlled through the new 'party_rejoin' command. Check its help for more information. + * New body slot, 'legs'. Some races have 2, others none. + * Can't eat/drink food if you can't pick it. ==== 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=1179782248 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 May 27 13:43:10 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Sun, 27 May 2007 13:43:10 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo:make_slaying_consistent Message-ID: <1180291390.649846.26875.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/05/27 13:43 User : Edit Summary: @@ -1 +1,4 @@ Slaying is sloppy in that it uses strstr. This, an item that has 'slaying giant' (like holyword of mostrai) will kill ants. strstr matching was most likely added to support comma seperated slaying lists (slaying demon,undead). However, the code should really insist on exact matching, and if necessarybreak apart the comma seperated list. Probably best to make something like a 'does_slay()' function which can be used all over the place (consistent behaviour is a good thing). If performance for this becomes an issue, making a slaying a set of pointers could be done (char **slaying), and it gets filled in at load time, and at save time, gets filled in the opposite direction. However, from a simple basis, a check in does_slay() can be done to see if slaying does contain a comma, and if not, just do simple strcmp, and only if it does does extra work need to be done. MSW 2003-03-28 + + (Is this actually [still] true? It looks like the code still uses strstr, but goes off of "race" rather than "name" - so "slaying giant" shouldn't affect ants [race: insect]. So long as the "race" names used throughout the arches are appropriate and carefully chosen this should work fine...and allow a hypothetical "firehose" spell having "slaying: fire" to affect any race with "fire" in it e.g. "fire elemental"- and "race" ends up being usable as glorified keywords? I think?) + Epicanis 20070527 IP-Address : 199.104.112.34 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo:make_slaying_consistent?rev=1158474135 New Revision: http://wiki.metalforge.net/doku.php/dev_todo:make_slaying_consistent -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Mon May 28 02:06:57 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Mon, 28 May 2007 02:06:57 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: races:dragons Message-ID: <1180336017.824665.28032.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/05/28 02:06 User : Edit Summary: @@ -30,12 +30,13 @@ ====Skills==== * Levitate - (Hint - Using levitate while outside of cities allows you to move quickly over different types of terrain) * Clawing - Clawing is you default skill as a dragon. + ====Foods==== - By eating flesh dropped from monsters, a dragon can increase its resistances to anything the monster is resistant to, permanently. This doesn?t happen every time, and as your resistance grows higher, you need to find higher level food. You can only gain one resistance point per flesh piece. + By eating flesh dropped from monsters, a dragon can increase its resistances to anything the monster is resistant to, permanently. This doesn?t happen every time, and as your resistance grows higher, you need to find higher level food. You can only gain one resistance point per flesh piece. ^ Taste description ^ Meaning ^ | Delicious | Good chance of gaining resistance. | | Very Good | Little chance of gaining resistance. | @@ -43,9 +44,14 @@ | Boring | Almost no chance of gaining resistance. You are very near to where this flesh stops helping (Takes a ton to get the resistance up more) | | No Taste | No help whatsoever. No chance of resistance gain. Either you are well beyond the listed resistance or it never gives a bonus to resistances. | | Disgusting | Human food. Ick. No chance for gaining resistance. | - {FIXME} list attacks you can gain resistance in (not all) + A dragon will only gain resistances in magic, fire, cold, poison, electricity from eating flesh. Also, the dragon's armor and AC ratings will improve as they gain levels. + + Good foods for beginning dragons are: + * Zombies: up to 30 cold resist + * Ogres: up to 30 electricity resist + ====Focuses and abilities==== A dragon's focus is where his experience and resistance is concentrated. Also, depending on your focus, you will gain different abilities as you increase in level. You do not loose abilities you have gained in one focus when switching to another, and new hatchlings always have a focus on fire. Here?s a list of the focus benefits: ===Fire=== * Fire attuned IP-Address : 24.73.122.214 Old Revision: http://wiki.metalforge.net/doku.php/races:dragons?rev=1173172098 New Revision: http://wiki.metalforge.net/doku.php/races:dragons -- This mail was generated by DokuWiki at http://wiki.metalforge.net/ From no-reply_wiki at metalforge.org Tue May 29 15:26:38 2007 From: no-reply_wiki at metalforge.org (no-reply_wiki at metalforge.org) Date: Tue, 29 May 2007 15:26:38 -0500 Subject: [Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo:make_slaying_consistent Message-ID: <1180470398.235620.31943.nullmailer@wiki.metalforge.net> A page in your DokuWiki was added or changed. Here are the details: Date : 2007/05/29 15:26 User : ryo Edit Summary: reply @@ -1,4 +1,6 @@ Slaying is sloppy in that it uses strstr. This, an item that has 'slaying giant' (like holyword of mostrai) will kill ants. strstr matching was most likely added to support comma seperated slaying lists (slaying demon,undead). However, the code should really insist on exact matching, and if necessarybreak apart the comma seperated list. Probably best to make something like a 'does_slay()' function which can be used all over the place (consistent behaviour is a good thing). If performance for this becomes an issue, making a slaying a set of pointers could be done (char **slaying), and it gets filled in at load time, and at save time, gets filled in the opposite direction. However, from a simple basis, a check in does_slay() can be done to see if slaying does contain a comma, and if not, just do simple strcmp, and only if it does does extra work need to be done. MSW 2003-03-28 (Is this actually [still] true? It looks like the code still uses strstr, but goes off of "race" rather than "name" - so "slaying giant" shouldn't affect ants [race: insect]. So long as the "race" names used throughout the arches are appropriate and carefully chosen this should work fine...and allow a hypothetical "firehose" spell having "slaying: fire" to affect any race with "fire" in it e.g. "fire elemental"- and "race" ends up being usable as glorified keywords? I think?) Epicanis 20070527 + + > Actually it is still the case. hit_player_attacktype (attack.c:1229) still compares to the name of the archetype, thus there can be issues. Also, it would be nice to have one central test location, so for instance multiple slaying can be implemented. --- //[[nicolas.weeger at laposte.net|Ryo Saeba]] 2007/05/29 15:22// IP-Address : 82.236.87.204 Old Revision: http://wiki.metalforge.net/doku.php/dev_todo:make_slaying_consistent?rev=1180291388 New Revision: http://wiki.metalforge.net/doku.php/dev_todo:make_slaying_consistent -- This mail was generated by DokuWiki at http://wiki.metalforge.net/