Difference between revisions of "User:Faust Vollmar"

From Second Life Wiki
Jump to: navigation, search
m (More little updates... I don't do a good job of keeping this updated.)
Line 12: Line 12:
 
===[ Nexus CS ]===
 
===[ Nexus CS ]===
 
* This is my pet project, an SLRPG framework, it taught me LSL as I've gone along since '08, <strike>and will teach me C# when we can use it in SL.</strike>
 
* This is my pet project, an SLRPG framework, it taught me LSL as I've gone along since '08, <strike>and will teach me C# when we can use it in SL.</strike>
* Intended to be a non-profit system that only collects funds to pay its operating costs. (Such as splitting webserver costs between World Owners.)
+
* Intended to be a non-profit system that only collects funds to pay its operating costs. (Such as splitting web-server costs between World Owners.)
*: Other Funding (for Animations, Sounds, Particle Effects, etc.) would likely be on a Donation basis.
+
*: Other Funding (for content such Animations, Sounds, Particle Effects, etc.) would likely be on a Donation basis.
 
====Design Basis====
 
====Design Basis====
 
* A configurable Race/Class/Powers-based system in the vein of DCS2 and Osiris.
 
* A configurable Race/Class/Powers-based system in the vein of DCS2 and Osiris.
Line 40: Line 40:
 
* Intended design of allowing two weapons wielded at once would require an unintuitive control scheme.
 
* Intended design of allowing two weapons wielded at once would require an unintuitive control scheme.
 
*: Scripted access to CONTROL_ML_RBUTTON is the ideal solution I keep hoping for. [http://jira.secondlife.com/browse/SVC-2566 Add CONTROL_ML_RBUTTON to llTakeControls]
 
*: Scripted access to CONTROL_ML_RBUTTON is the ideal solution I keep hoping for. [http://jira.secondlife.com/browse/SVC-2566 Add CONTROL_ML_RBUTTON to llTakeControls]
* Using a fake HMAC with the pads in Base64 form fed to the native utf-8 llSHA1String. (Database Server has a PHP function to match.)
+
* HMAC function is only loosely similar to the true function, due to UTF-8 truncation in llSHA1String. (Database Server has a PHP function to match.)
 
*: I don't know how to concatenate Base64, and if I did I would have to do serious speed testing on Strife's Base64_SHA1 compared to the current method.
 
*: I don't know how to concatenate Base64, and if I did I would have to do serious speed testing on Strife's Base64_SHA1 compared to the current method.
 
*: (Could not find an existing JIRA for a native HMAC function request.)
 
*: (Could not find an existing JIRA for a native HMAC function request.)
Line 58: Line 58:
 
#: ''Payload;'' = Double-Pipe ("||") delimited, with Single-Pipe ("|") delimited sub-sets.
 
#: ''Payload;'' = Double-Pipe ("||") delimited, with Single-Pipe ("|") delimited sub-sets.
 
# [ Private Protocol ] : x,005,000 to x,009,999 - Not for Public Use; HMAC-Signed Data for Attacks or other System Comms.
 
# [ Private Protocol ] : x,005,000 to x,009,999 - Not for Public Use; HMAC-Signed Data for Attacks or other System Comms.
#: ''Channel;'' AoE Effects = -1409005000
+
#: ''Channel;'' Area Effects = -1409005000
 
#: ''Channel;'' Target Effects = -1409005001 - (llAbs((integer)("0x"+llGetSubString((string)TargetKey, 0, 7))) % 4998)
 
#: ''Channel;'' Target Effects = -1409005001 - (llAbs((integer)("0x"+llGetSubString((string)TargetKey, 0, 7))) % 4998)
 
#: ''Header;'' = "NCS"
 
#: ''Header;'' = "NCS"
Line 66: Line 66:
 
* This was a project born of wanting my own take on the well-known LCK weapon scripts, but has since evolved over time into it's current state.
 
* This was a project born of wanting my own take on the well-known LCK weapon scripts, but has since evolved over time into it's current state.
 
* Basically boils down to a project to make two base sets (One for Melee, one for Range) that can be used for SLRPG weapons.
 
* Basically boils down to a project to make two base sets (One for Melee, one for Range) that can be used for SLRPG weapons.
 +
* Intended for broad compatibility with any CombatSystems that do not require proprietary weapon scripts.
 +
*: Plugin API leaves the door open for owners of systems that use proprietary weapon scripts to make plugins, if they so choose.
 
* There's really not much to say here. It does what it's meant to do and sometimes I add/fix something.
 
* There's really not much to say here. It does what it's meant to do and sometimes I add/fix something.
 
====Melee Weapon Scriptset====
 
====Melee Weapon Scriptset====
* Current Version: 2.3.7; updated 28.08.2010
+
=====Release=====
 +
* Current Version: 2.3.9; updated 02.Nov.2010
 +
*: 2.4.0 is in progress:
 +
*:: Adds a Notecard-based Animation config loader that separates memory load of Animation sets from one another.
 
* Free on the [https://marketplace.secondlife.com/p/NI-Melee-Weapon-Scriptset/1427318 SL Marketplace] or just IM me in-world.
 
* Free on the [https://marketplace.secondlife.com/p/NI-Melee-Weapon-Scriptset/1427318 SL Marketplace] or just IM me in-world.
 +
=====Outstanding Issues=====
 +
* No coordination between multiple MainHand weapons.
 +
*: Lesser issue for Melee, but needs to be resolved for the Range version.
 +
* HUD will issue commands to all worn MWS weapons at once, not always desirable behavior.
 +
*: Not hard to fix script-wise, but I lack icon art for differentiating which button is which.
 +
* Menu System complicated to setup. Not useful for the Color plugin at all.
 
====Range Weapon Scriptset====
 
====Range Weapon Scriptset====
* No Release: A lack of time to work on this sub-project.
+
* No Release: Working out issues with the Melee version.
 
====** Comm Protocol Info====
 
====** Comm Protocol Info====
 
# [ User Input Channel ] : 4 (Default, configurable to use any Channel > 0)
 
# [ User Input Channel ] : 4 (Default, configurable to use any Channel > 0)

Revision as of 13:00, 11 December 2010

About

An LSL [and a minor bit of PHP] scripter with a particular interest in SLRPG frameworks and weaponry.
Not a whole lot else to add really, no history nor achievements to speak of.

View my JIRA Reports

Projects

I should probably create sub-pages for my projects with a bit more comprehensive information and less rambling, but that can come later.

Should I post Source code for the OpenSource projects? I'm not sure of complications the Contribution Agreement could have on managing them.

The project sections sound like advertising; I didn't mean it that way but that's kinda how my attempts to jot down what I do turned out.

[ Nexus CS ]

  • This is my pet project, an SLRPG framework, it taught me LSL as I've gone along since '08, and will teach me C# when we can use it in SL.
  • Intended to be a non-profit system that only collects funds to pay its operating costs. (Such as splitting web-server costs between World Owners.)
    Other Funding (for content such Animations, Sounds, Particle Effects, etc.) would likely be on a Donation basis.

Design Basis

  • A configurable Race/Class/Powers-based system in the vein of DCS2 and Osiris.
  • Worlds are independent from one another. Any number of Sims can be a part of the same World.
  • An Avatar can have up to 12 separate Characters per World, instead of only one.
  • Attempt to mitigate the gap between New and Old players that sometimes causes OOC drama in Level and/or Powers based systems.
    No Experience Levels, Character Stats are static, changed only temporarily by Buff Powers.
    Experience Points are only used for gaining new Powers, if they are enabled. The World Owner decides how strong Powers progression is.
  • Attempt to design Weaponry to meet the needs of Free Use, Cheat Proofing, Versatility and Fairness.
    An open Weapons API for weapons to register their statistics with the CS Unit, which controls attacks internally. [Free Use, Cheat Proofing]
    Some statistics are weapon-defined (within reasonable values), the CS Unit calculates others to create a balanced result. [Versatility, Fairness]
    All weapons by all creators are equal. There will not be an 'enhancement' model. [Commercial Fairness]

Current Status

  • Currently not available to the public, attributing to the Outstanding Issues below.
    I sometimes make exceptions to this. Case-by-case thing. Contact me if interested.

Outstanding Issues

  • The Web Control Panel is currently incomplete. Not enough time to learn enough PHP (or other language) for it.
    I have learned enough PHP to set up a basic Inworld-to-Database layer, but that's all.
  • Internal Bullets have no effective validation mechanism, only 21 bits of an integer is available for that use.
    Current LSL scripting lacks the functions I'd like to have to secure the Bullets;
    1. Validate an object without requiring full perms. llGetInventoryHash
    2. Directly pass a string across Rez. llGetDataParameter + Others
    Alternatively, Raycasting and the ability to cast a llSay to arbitrary locations (in reasonable distance) would also work.
    • Since there is a beta test of Raycasting in-progress (as of 04 Sept 2010), this is the more likely result.
    • (Could not find an existing JIRA for a llSayAt-type function request.)
  • Intended design of allowing two weapons wielded at once would require an unintuitive control scheme.
    Scripted access to CONTROL_ML_RBUTTON is the ideal solution I keep hoping for. Add CONTROL_ML_RBUTTON to llTakeControls
  • HMAC function is only loosely similar to the true function, due to UTF-8 truncation in llSHA1String. (Database Server has a PHP function to match.)
    I don't know how to concatenate Base64, and if I did I would have to do serious speed testing on Strife's Base64_SHA1 compared to the current method.
    (Could not find an existing JIRA for a native HMAC function request.)

Design Feedback

  • Suggestions for new Power casting Modes or Types. If you need the current list, IM me in-world.
  • So far only the Weapons API is complete. Specifications for other equipment such as Armor (if it should be used at all) have not been defined.
  • Should World Owners have direct access to the Comms Protocol for Attacks/Powers etc, such as being able to set their HMAC key?
    Or should the system stay with the tried-and-true method of closed-source scripts that check if their user/owner is a GM/Owner in the World?
  • (Big Design Question) Should the system remain purely for managing Combat, or branch out into other aspects of RP such as Capture or Non-Combat Skills?

** Comm Protocol Info

  1. [ User Input Channel ] : 9
  2. [ Dialog Menu Channel ] : 99 (Positive to allow /99Menu to retrieve the Menu.)
  3. [ Public Protocol ] : x,000,000 to x,004,999 - Usage will be documented if/when it becomes necessary.
    Channel; Weapon OpenAPI = -1409000000
    Channel; Status Display HUD = -1409000001 - (llAbs((integer)("0x"+llGetSubString((string)OwnerKey, 0, 7))) % 4998)
    Header; = "NCS"
    Payload; = Double-Pipe ("||") delimited, with Single-Pipe ("|") delimited sub-sets.
  4. [ Private Protocol ] : x,005,000 to x,009,999 - Not for Public Use; HMAC-Signed Data for Attacks or other System Comms.
    Channel; Area Effects = -1409005000
    Channel; Target Effects = -1409005001 - (llAbs((integer)("0x"+llGetSubString((string)TargetKey, 0, 7))) % 4998)
    Header; = "NCS"
    Payload; = Double-Pipe ("||") delimited, with Single-Pipe ("|") delimited sub-sets.

[ OpenSource Weapons Systems ]

  • This was a project born of wanting my own take on the well-known LCK weapon scripts, but has since evolved over time into it's current state.
  • Basically boils down to a project to make two base sets (One for Melee, one for Range) that can be used for SLRPG weapons.
  • Intended for broad compatibility with any CombatSystems that do not require proprietary weapon scripts.
    Plugin API leaves the door open for owners of systems that use proprietary weapon scripts to make plugins, if they so choose.
  • There's really not much to say here. It does what it's meant to do and sometimes I add/fix something.

Melee Weapon Scriptset

Release
  • Current Version: 2.3.9; updated 02.Nov.2010
    2.4.0 is in progress:
    Adds a Notecard-based Animation config loader that separates memory load of Animation sets from one another.
  • Free on the SL Marketplace or just IM me in-world.
Outstanding Issues
  • No coordination between multiple MainHand weapons.
    Lesser issue for Melee, but needs to be resolved for the Range version.
  • HUD will issue commands to all worn MWS weapons at once, not always desirable behavior.
    Not hard to fix script-wise, but I lack icon art for differentiating which button is which.
  • Menu System complicated to setup. Not useful for the Color plugin at all.

Range Weapon Scriptset

  • No Release: Working out issues with the Melee version.

** Comm Protocol Info

  1. [ User Input Channel ] : 4 (Default, configurable to use any Channel > 0)
  2. [ Dialog Menu Channel ] : -99 (Default, configurable to use any Channel)
  3. [ Public Protocol ] : x,010,000 to x,010,999 - Protocol not likely to be used, however messages are documented in the Project's packages.
    Channel; = -1409010000 - (llAbs((integer)("0x"+llGetSubString((string)OwnerKey, 0, 7))) % 999)
    Header; = "OWS"
    Payload; = Single-Pipe ("|") delimited.
    NOTE: Versions 2.3.5 and prior, MWS sub-project comms did not have a Header and used channels -851000000 to -851999999.