User:Faust Vollmar
Revision as of 03:43, 4 September 2010 by Faust Vollmar (talk | contribs) (Don't mind me, fussing about my UserPage again.)
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.
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.- The design intent was to be non-profit and only split webserver costs between World Owners, without commercializing any part of the system.
- This has the disadvantage that it would not gain funds to commission needed content such as Animations, Sounds or Particle Effects.
- The design intent was to be non-profit and only split webserver costs between World Owners, without commercializing any part of the system.
Features
- 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.
- One Avatar can have up to 12 separate Characters per World, instead of only one. (An Experience Share mechanic would be a World Owner option.)
- There are no Character Levels, the stats you start with are the stats you always have, other than temp Buffs via Powers.
- I never liked the whole seniority issue that happened with Level-based systems, it was always a source of drama.
- Experience is still present, only used for acquiring new Powers for the character, if the Sim Owner configures them.
- Weapons use an OpenAPI to register with the CS itself, allowing it to control fairness while allowing freedom.
- Some statistics are creator-defined, (within reason) others are calculated by the system to create a balanced result.
- All weapons by all creators are equal. There will not be an 'enhancement' model.
Current Status
- Currently not available to the public, attributing to the Outstanding Issues below.
- I sometimes make exceptions to this. Case-by-case thing.
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 are too insecure due to only having 21 bits of an integer available for any validation mechanism.
- This is a raw, unfortunate fact of features missing from LSL;
- Validate an object without requiring full perms. llGetInventoryHash
- 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.)
- This is a raw, unfortunate fact of features missing from LSL;
- 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 Keys are Static. Is this even an issue?
- This is due to the previously mentioned bullets problem. If needed, dynamic generation will be added when that is resolved.
- 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.)
- 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 Considerations
- Always thinking about new Power Casting Mode/Types. If you have ideas and want the current list, IM me in-world.
- Someone to bump heads with regarding the Equipment spec and balance formulae would be nice, as well.
- Direct access to Attacks/Powers Comms Protocol for Sim Owners?
- Allow Sim Owner to set their World's HMAC Key? (Or some other method.)
- Capture RP Stuff?
- I am not an animator and will not be able to create animations for Powers let alone this, so there is very little to gain from it.
OpenSource Weapons Systems
- This was a project born of wanting my own take on Melee weapon scripts that evolved over time into it's current state.
- Basically boils down to a project to make two base sets (One for Melee, one for all the Range) that can be used for whatever.
- Intended for SLRPG weapons rather than the Weapon HUDs often seen in free-for-all combat.
- Theres really not much to say here. It does what it's meant to do and sometimes I add/fix something.
Melee Weapon Scriptset
- Current Version: 2.3.7; updated 28.08.2010
- Free on SL Marketplace or just IM me in-world.
Range Weapon Scriptset
- No Release: A lack of time to work on this sub-project.
Communication Protocol/Channel Ranges
Listed here for lack of notability for the Protocol Exchange.
- Channel numbers prefixed with 'x,' are in the -1,409,xxx,xxx range.
Nexus CS
- [ User Input Channel ] : 9
- [ Dialog Menu Channel ] : 99 (Positive to allow /99Menu to retrieve the Menu.)
- [ 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.
- [ 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; 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
- [ User Input Channel ] : 4 (Default, configurable to use any Channel > 0)
- [ Dialog Menu Channel ] : -99 (Default, configurable to use any Channel)
- [ 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 earlier, MWS sub-project comms did not have a Header and used channels -851000000 to -851999999.