# HG changeset patch # User sirebral # Date 1260503189 21600 # Node ID ebe2bb19e18dd7584390d1a0f9f89c8bdf0fb252 # Parent 7f6e8f94394e9b286ebd9f04c77728c9c9c21da2 Traipse Alpha 'OpenRPG' {091210-02} Traipse is a distribution of OpenRPG that is designed to be easy to setup and go. Traipse also makes it easy for developers to work on code without fear of sacrifice. 'Ornery-Orc' continues the trend of 'Grumpy' and adds fixes to the code. 'Ornery-Orc's main goal is to offer more advanced features and enhance the productivity of the user. Update Summary (Keeping up with Beta) New Features: Added Bookmarks Added 'boot' command to remote admin Added confirmation window for sent nodes Minor changes to allow for portability to an OpenSUSE linux OS Miniatures Layer pop up box allows users to turn off Mini labels, from FlexiRPG Zoom Mouse plugin added Images added to Plugin UI Switching to Element Tree Map efficiency, from FlexiRPG Added Status Bar to Update Manager New TrueDebug Class in orpg_log (See documentation for usage) Portable Mercurial Tip of the Day added, from Core and community New Reference Syntax added for custom PC sheets New Child Reference for gametree New Parent Reference for gametree New Gametree Recursion method, mapping, context sensitivity, and effeciency.. New Features node with bonus nodes and Node Referencing help added Dieroller structure from Core Added 7th Sea die roller method; ie [7k3] = [7d10.takeHighest(3).open(10)] New 'Mythos' System die roller added Added new vs. die roller method for WoD; ie [3v3] = [3d10.vs(3)]. Includes support for Mythos roller Fixes: Fix to Text based Server Fix to Remote Admin Commands Fix to Pretty Print, from Core Fix to Splitter Nodes not being created Fix to massive amounts of images loading, from Core Fix to Map from gametree not showing to all clients Fix to gametree about menus Fix to Password Manager check on startup Fix to PC Sheets from tool nodes. They now use the tabber_panel Fixed Whiteboard ID to prevent random line or text deleting. Modified ID's to prevent non updated clients from ruining the fix. default_manifest.xml renamed to default_upmana.xml Fix to Update Manager; cleaner clode for saved repositories Fixes made to Settings Panel and no reactive settings when Ok is pressed Fixes to Alternity roller's attack roll. Uses a simple Tuple instead of a Splice diff -r 7f6e8f94394e -r ebe2bb19e18d orpg/orpg_version.py --- a/orpg/orpg_version.py Thu Dec 10 10:57:46 2009 -0600 +++ b/orpg/orpg_version.py Thu Dec 10 21:46:29 2009 -0600 @@ -4,7 +4,7 @@ #BUILD NUMBER FORMAT: "YYMMDD-##" where ## is the incremental daily build index (if needed) DISTRO = "Traipse Alpha" DIS_VER = "Ornery Orc" -BUILD = "091210-01" +BUILD = "091210-02" # This version is for network capability. PROTOCOL_VERSION = "1.2" diff -r 7f6e8f94394e -r ebe2bb19e18d orpg/templates/feature.xml --- a/orpg/templates/feature.xml Thu Dec 10 10:57:46 2009 -0600 +++ b/orpg/templates/feature.xml Thu Dec 10 21:46:29 2009 -0600 @@ -1,15 +1,117 @@ - - Welcome to Traipse OpenRPG. - -This small user manual should help users learn about the details of OpenRPG that are often times obscure. + + Quick Help: + +The referencing system is an update to the Core of how the Game Tree works. In it's current state I understand the syntax is difficult to pick up. Here are some tips to help you grasp the syntax further + +A. +Think of the Game Tree has a folder on your hard drive. Each :: inside the reference syntax works just like a system separator (/ or \) + +B. +Root References start at the tree itself. If the node being referenced changes location the reference will be invalid. + +C. +Child References work at the location of the node containing the reference. + +Example: +Game Tree +- Group +-- Text Node +--- Group_2 +---- Text Node_2 + +In the above Tree example you can reference Text Node_2 with a root reference + +!@Group::Group_2::Text Node_2@! + +or you can use a Child Reference from within Text Node + +!!Group_2::Text Node_2!! + +D. +Parent References work with the Tree Map. Currently Parent References work only when called from a node that has been referenced with a Child Reference. + +This is a bug in the system and is created because the Game Tree currently does not contain a Tree Map. So when you Reference a node using a Root Reference it does not pass a Tree Map for the Parent Reference to look at. + +Using the above example, you could reference Text Node from Text Node_2 with the syntax: !#Group::Text Node#! .. but only if you referenced Text Node with the Child Reference. + +(That last one is hard to understand, I know. ) + +The reference system is still a bit primitive in it's implementation. As I was saying it is an advancement to the Core technology of Traipse OpenRPG. + +While it is confusing at first, the model is far superior to other tree referencing systems. Pre 1.8.0, no node could reference a Grid. The referencing system required the reference to be exact and started at the root. Also, the new model is designed to enable freedom of creation and greater control over the Game Tree. + +With the Traipse Game Tree GMs are enabled to reference any data from the Game Tree, no matter where it stands. Players can create fewer nodes and use more of the data with fewer nodes. + +Developer Note: +The syntax is the hardest part to understand and I expect to change that in the future. The Core of a more expansive Game Tree model is designed. In Traipse you do not need to give access permissions to a node in order to reference it's entirety, which is what I see with Index and Namespace from OpenRPG Core. + +In the OpenRPG Core model your Game Tree has a lot more freedom, but only if you grant it, which I always felt was a design flaw. Comparably, with Traipse you can access any data on the Game Tree, no matter where the location. + +This freedom will help with future design and I feel it also frees up the hands of the GM who does not need to Index, un-Index, Namespace, un-Namspace the various creatures he or she may have in a Game Tree. + + <b>Root Reference</b> +Works at the tree level. Must be exact. -What is OpenRPG: -OpenRPG is a virtual game table software that allows users to connect via a network. The software includes a map, chat, and a gametree. +<b>Root Reference 1:</b> !@Reference Examples::Group::Child@! +<b>Root Reference 2:</b> !@Reference Examples::Grid::(2,1)@! + + <b>Grid Reference</b> +Works by looking at the (Row, Column) of a Grid. + +<b>Grid Reference 1:</b> !@Reference Examples::Grid::(1,1)@! +<b>Grid Reference 2:</b> !!Grid::(1,1)!! + + <b>Child Reference</b> +Works at the current tree location. + +<b>Child Reference 1:</b> !!Group::Child!! +<b>Child Reference 2:</b> !!Group::Group_2::Child_2!! + + + <b>Parent Reference</b> +Works by indexing the map of the node with the Reference. +Works with a Child Reference only. -What is Traipse OpenRPG: -Traipse OpenRPG is a fork of the original software that is designed to be easy for users, extremely stable, and really powerful. - +<b>Parent Reference 1:</b> !!Group::Group_2::Group_3::Child_3!! +<b>Parent Reference 2:</b> !!Group::Group_2::Child_2!! + + + + !#Group::Child#! + + + !#Group::Child#! + + + + Child Node Data + + + + + 0 + 0 + + + !!Group::Child!! + 0 + + + + + + + Welcome to Traipse OpenRPG. + +This small user manual should help users learn about the details of OpenRPG that are often times obscure. + +What is OpenRPG: +OpenRPG is a virtual game table software that allows users to connect via a network. The software includes a Map, Chat, and a Game Tree. + +What is Traipse OpenRPG: +Traipse OpenRPG is a fork of the original software that is designed to be easy for users, extremely stable, and really powerful. + Traipse has features that set it apart from all other distributions of OpenRPG. The Traipse Suite includes a powerful Update Manager that makes it easy for new developers to create and share their own fork. The Suite also contains an in house Debug Console so users can see what errors, if any, occur. The Chat window is a basic HTML Parser. It understands all basic HTML tags including table, td, tr, span, font, to name a few. @@ -18,117 +120,113 @@ The chat also has Settings in the Chat menu that allow you see a Chat Time Index, Images, or strip the HTML and see raw text. - The Tabs: -The Map is divided into 7 tabs. They are Background, Grid, Miniatures, Whiteboard, Fog, and General. There are 6 layers to the map, one tab for each layer except General. - -When you select one of the tabs you may access that map layer and it's settings. You may only select tabs based on your role. - -Luker or in the Lobby: You cannot access any map tab or changes it's settings. - -Player: You have access to the Miniatures tab and the Whiteboard tab. - -GM: You have access to all of the tabs. - -The Layers: -A small description of each of the layers. - -Background: You can set an image as the background, an image as a tile, or you can set a color. - -Grid: You can change the grid size, lines, turn off the grid snap, and change the grid shape. - -Miniatures: You can add new or remove miniatures and change mini properties and labels. - -Whiteboard: With the whiteboard you can draw lines or add text to the map. - -Fog: The fog layer hides the entire map from the prying eyes of players. - - - With the new additions to the gametree using nodes has never been easier nor has it ever been more fluid. Included here is a list of the additions to the gametree referencing model as well as some tips on how to make the gametree work the way it was intended. - -Grid Nodes: - Grid nodes are now referenceable with the coordinates of the grid. Example: !@Grid::(0,0)@! -The example will return the top left most cell data. The grid understands coordinates like this (Row, Column) - - Grid nodes can reference node data just like any other node can. With a new added feature grids are even more useful. By using a new die rolling syntax you can draw just the number of the modified roll. While this will not pass during game play, you can use it with the grid node to create a random chart. The new die roll syntax is [#XdY]. # works just like q, yet it returns only the modified die result. - - Here is an example with a 3 x 3 Grid -Example: !@Grid::([#1d3-1], [#1d3-1])@! - -The result will be a random event from the grid. - -Bonus Node Included: A 52 Card Deck with 4 columns and 13 rows. (4 * 13 = 52) - -List Nodes: - List nodes now have a check box that allows users to send the content as a macro. List nodes are a prime reference holder because users can place a lot of references into one small node. - - For the best results from a list node my tip to users would be to create a list node and place it next to the character sheet they are using, inside a the PC Sheet. The list will then use the Child Referencing syntax, but the PC Sheet can go anywhere in the tree and the player will have easy access to all the references. - -(List Nodes inside a Tool created PC sheet vanish when moved, or I would recommend the list be placed inside these sheets also.) - - Here is an example of a Fortitude save inside the recommended list node: !!Fort::Check!! - -Text Nodes: - Text nodes remain little changed. I agree with all the 1.7.1 users who tell me, if it's not broke don't fix it. With that in mind I have some good tips for text nodes. - - Text nodes can be used in conjuction with the new grid features to create random encounters. A GM could place a list of text nodes into a folder and the grid could reference the nodes. - - Text nodes also work great when you need to have story text at hand that you don't want to type out during play. Create chapters with folder nodes and add the adventure text to different nodes. You can then use a List Node or a Grid Node to reference the different chapters. - -Bonus Node Included: A small book node with 1 Chapter and 3 Parts. Traipse node referencing is unlike other distributions of OpenRPG. The gametree mapping is a fluid map that changes with the location of your nodes. This allows you to create a reference node that will stay with your character sheet, and if you change the location of your character sheet the reference will still work. - -(Note: Renaming your node causes problems with the tree mapping until you restart the software. You can just move the node and the software will reset the gametree map) - -Reference Types: - There are three ways of references node data. A Root Reference, a Child Reference, and a Parent Reference. - -Root Reference: - A node reference that starts at the gametree. The location of the node must be exact or you will return an Invalid Reference! - -A Root Reference uses this syntax: -!@Node::Child::Data@! - -Child Reference: - A node reference syntax that starts by looking at within the current container node. As long as the Child Reference is in the same container as the node, the container can change location and the reference will not be damaged. Child References work from within a PC Sheet node as well. - -A Child Reference uses this syntax: -!!Node::Child::Data!! - -Parent Reference: - A node reference syntax that starts by looking at the tree map and the reference used, then makes an addendum to the node's map to create a reference. The Parent Node is used when you want to reference the data in a node that is within a different container. Currently Parent References only work if they are used as a reference within a node. - -A Parent Reference uses this syntax: -!#Node::Child::Data#! - -Syntax for Special PC Sheet Nodes: - The nodes for the specialized PC Sheets now have a new syntax. - -Skills, Saves, and Abilities: - Skills, Saves, and Abilities all have a similar referencing syntax. You can return the base value of each by using the correct syntax. - -Examples: -!@Jonethan::Skill::Jump@! (Returns Jump ranks) -!@Mikael::Strength@! (Returns Ability Score and Mod) -!@Draj::Will@! (Returns Will Save and Mod) - -(Saves and Abilities have a short hand and a long hand. Abilities can use the three letter abbreviation, while saves short hand are Fort, Ref, and Will) - - You can append Check to check each of these against a 1d20 roll, or you can append Mod to discover the Modifier. The Mod can be useful in other nodes - -Combat: - You can now reference your attacks easily with the gametree. Using the Attack syntax you can select modifier type, and a weapon to attack with. -Example: !@Kammen-Pai::Attack::M::Dagger@! - -Modifier Type: - There are two modifier types Melee (M) or Ranged (R) You will see I added can use the long word or the short hand. - -Powers, Spells and Feats: - Power, Spells and Feats are hard to sometimes hard to remember, and even harder to code. The use of the Power, Spell or Feat syntax serves as an emote of what you are doing, as well as a reminder of what your Power, Spell, or Feat does. - -Examples: -!@Kammen-Pai::Cast::Ray of Frost@! -!@Kammen-Pai::Feat::Ability Focus@! - - + The Tabs: +The Map is divided into 7 tabs. They are Background, Grid, Miniatures, Whiteboard, Fog, and General. There are 6 layers to the map, one tab for each layer except General. + +When you select one of the tabs you may access that map layer and it's settings. You may only select tabs based on your role. + +Lurker or in the Lobby: You cannot access any map tab or changes it's settings. + +Player: You have access to the Miniatures tab and the Whiteboard tab. + +GM: You have access to all of the tabs. + +The Layers: +A small description of each of the layers. + +Background: You can set an image as the background, an image as a tile, or you can set a color. + +Grid: You can change the grid size, lines, turn off the grid snap, and change the grid shape. + +Miniatures: You can add new or remove miniatures and change mini properties and labels. + +Whiteboard: With the whiteboard you can draw lines or add text to the map. + +Fog: The fog layer hides the entire map from the prying eyes of players. + With the new additions to the Game Tree using nodes has never been easier nor has it ever been more fluid. Included here is a list of the additions to the Game Tree referencing model as well as some tips on how to make the Game Tree work the way it was intended. + +Grid Nodes: + Grid nodes are now reference-able with the coordinates of the grid. Example: !@Grid::(1,1)@! +The example will return the top left most cell data. The grid understands coordinates like this (Row, Column) + + Grid nodes can reference node data just like any other node can. With a new added feature grids are even more useful. By using a new die rolling syntax you can draw just the number of the modified roll. While this will not pass during game play, you can use it with the grid node to create a random chart. The new die roll syntax is [#XdY]. # works just like q, yet it returns only the modified die result. + + Here is an example with a 3 x 3 Grid +Example: !@Grid::([#1d3], [#1d3])@! + +The result will be a random event from the grid. + +Bonus Node Included: A 52 Card Deck with 4 columns and 13 rows. (4 * 13 = 52) + +List Nodes: + List nodes now have a check box that allows users to send the content as a macro. List nodes are a prime reference holder because users can place a lot of references into one small node. + + For the best results from a list node my tip to users would be to create a list node and place it next to the character sheet they are using, inside a the PC Sheet. The list will then use the Child Referencing syntax, but the PC Sheet can go anywhere in the tree and the player will have easy access to all the references. + +(List Nodes inside a Tool created PC sheet vanish when moved, or I would recommend the list be placed inside these sheets also.) + + Here is an example of a Fortitude save inside the recommended list node: !!Fort::Check!! + +Text Nodes: + Text nodes remain little changed. I agree with all the 1.7.1 users who tell me, if it's not broke don't fix it. With that in mind I have some good tips for text nodes. + + Text nodes can be used in conjunction with the new grid features to create random encounters. A GM could place a list of text nodes into a folder and the grid could reference the nodes. + + Text nodes also work great when you need to have story text at hand that you don't want to type out during play. Create chapters with folder nodes and add the adventure text to different nodes. You can then use a List Node or a Grid Node to reference the different chapters. + +Bonus Node Included: A small book node with 1 Chapter and 3 Parts. Traipse node referencing is unlike other distributions of OpenRPG. The Game Tree mapping is a fluid map that changes with the location of your nodes. This allows you to create a reference node that will stay with your character sheet, and if you change the location of your character sheet the reference will still work. + +(Note: Renaming your node causes problems with the tree mapping until you restart the software. You can just move the node and the software will reset the Game Tree map) + +Reference Types: + There are three ways of references node data. A Root Reference, a Child Reference, and a Parent Reference. + +Root Reference: + A node reference that starts at the Game Tree. The location of the node must be exact or you will return an Invalid Reference! + +A Root Reference uses this syntax: +!@Node::Child::Data@! + +Child Reference: + A node reference syntax that starts by looking at within the current container node. As long as the Child Reference is in the same container as the node, the container can change location and the reference will not be damaged. Child References work from within a PC Sheet node as well. + +A Child Reference uses this syntax: +!!Node::Child::Data!! + +Parent Reference: + A node reference syntax that starts by looking at the tree map and the reference used, then makes an addendum to the node's map to create a reference. The Parent Node is used when you want to reference the data in a node that is within a different container. Currently Parent References only work if they are used as a reference within a node. + +A Parent Reference uses this syntax: +!#Node::Child::Data#! + +Syntax for Special PC Sheet Nodes: + The nodes for the specialized PC Sheets now have a new syntax. + +Skills, Saves, and Abilities: + Skills, Saves, and Abilities all have a similar referencing syntax. You can return the base value of each by using the correct syntax. + +Examples: +!@Jonethan::Skill::Jump@! (Returns Jump ranks) +!@Mikael::Strength@! (Returns Ability Score and Mod) +!@Draj::Will@! (Returns Will Save and Mod) + +(Saves and Abilities have a short hand and a long hand. Abilities can use the three letter abbreviation, while saves short hand are Fort, Ref, and Will) + + You can append Check to check each of these against a 1d20 roll, or you can append Mod to discover the Modifier. The Mod can be useful in other nodes + +Combat: + You can now reference your attacks easily with the Game Tree. Using the Attack syntax you can select modifier type, and a weapon to attack with. +Example: !@Kammen-Pai::Attack::M::Dagger@! + +Modifier Type: + There are two modifier types Melee (M) or Ranged (R) You will see I added can use the long word or the short hand. + +Powers, Spells and Feats: + Power, Spells and Feats are hard to sometimes hard to remember, and even harder to code. The use of the Power, Spell or Feat syntax serves as an emote of what you are doing, as well as a reminder of what your Power, Spell, or Feat does. + +Examples: +!@Kammen-Pai::Cast::Ray of Frost@! +!@Kammen-Pai::Feat::Ability Focus@! In Traipse starting a server has never been easier. The setup is as easy as 1., 2., 3 1. You will need to first start the Server GUI or the basic text based Server at least once so your software creates the server_ini.xml files in your myfiles directory. You can start it once and quit. @@ -277,7 +375,9 @@ - + + + diff -r 7f6e8f94394e -r ebe2bb19e18d orpg/templates/nodes/die_roller_notes.xml --- a/orpg/templates/nodes/die_roller_notes.xml Thu Dec 10 10:57:46 2009 -0600 +++ b/orpg/templates/nodes/die_roller_notes.xml Thu Dec 10 21:46:29 2009 -0600 @@ -83,7 +83,7 @@ Remember, to use the mythos roller type: "/dieroller alternity" -The altnerity roller is a roller designed by community members. The roller has two syntax methods for skill and attack. +The alternity roller is a roller designed by community members. The roller has two syntax methods for skill and attack. Skill: [1d20.sk(1, 0)]