RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

TM Skill System (version 2)

TMSTKSBK

Lord
TM Skill & Stat System (v2.0)

--TM Skill-Stat System ( v2.2.0 [0] ) (EOL)

for RunUO 1.0




TMSS 2.0 is now deprecated. Please use TMSS 3.0, also found on this forum, at this location.

!!--BUGFIX INFORMATION--!!
NO LONGER SUPPORTED.

Please redownload the pack in order to see if any bugs you encounter have already been fixed. To see up-to-the minute bug updates, visit the forums at CSquareNet -- TMSS's home.

!!--Current Version--!! v2.2r0 updated: 12/4 (END OF LIFECYCLE)



Why use TMSS 2.0?
TMSS is the only system currently available that allows admins to implement skill & stat setting for both the new player and the veteran, while keeping a wide array of options open to each shard. TMSS is easy to tailor to your shard, with options for only allowing new players to use it, allowing new and old players to use it from different portions of the system, and for giving out skills and stats as rewards.​
What can I do with TMSS 2.0?
TMSS2.0 allows you to administrate a shard-wide system for the rapid setting of skills and stats. The system's settings can easily be changed to fit your shard's needs, whether the shard is PvP, PvM, RP, or any custom format. If you need something for your shard that TMSS does not offer (related to skills and stats), feel free to ask me for it.
System Key Features:
  • Fast & Easy Deployment
  • Central Control
  • Single-System Stat and Skill setting!
  • Robust Options
  • New features still being added!
  • Easy - to - Use
  • Expandable
  • Lightning Support
  • Customizable to fit any shard's style of play.
  • Easy to script "Application Extensions"
  • Requests Honored
Current Application Extensions:
  • Beta levels 1-5, 5 being rock solid, 1 being just released.
  • Stats only stone for PvP shards. (Post 12) [beta 5]
  • Skill-checking moongate. (Post 61) [beta 3]
  • Standalone Tickets. (distro) [beta 3]
  • Individual Skill Caps [100% v2.1] [beta 1]
  • ControlCenter Gump for the system. preview (100% v2.5) [beta 2]
  • CenterStone: Used to access ControlCenter. (distro) [beta 5]
  • Standalone Tickets: Tickets that do not need a skillstone, and are simply serialized to a player. (100% v2.5) [beta 3]
Application Extensions Being Developed:
  • In-game customizable SkillGates. [100% v2.5] (closed beta)
  • "Buyable" Skills & Stats [100% v2.5] (closed beta)
  • Exporter for Skill-Stat Gate information [100% v3.0]
  • Incremental Skill Tickets (.5 to 1% of a skill) [0% v3.0]
  • Better Standalone Tickets [50% v3.0]
  • Simple Skill/Stat System (similar to 1.0) [25% v3.0]
INSTALLATION:
DO NOT INSTALL.

SUPPORT INFORMATION:
NO LONGER SUPPORTED

Credits:


I would like to thank the following people:
For help and support on v2.1
FainneRoisin -- lending me her power adapter.
A_Li_N -- helping me unkink my brain on arrays.
Phantom -- allowing me to totally rip the Giga Spawner save file.

For help and support on v2.0
ArteGordon -- technical stuff
daat99 -- input and technical stuff
Khaz -- for input and support
M. King -- input & inspiration for some of the options.
Phantom -- input and helping RunUO forums members since...when.

For help and support on v1.0
jjarmis -- technical stuff
sirenssong -- technical stuff

v's 1 & 2
Kokushibyou -- input, critiquing, mental support

I would like to thank the staff & players of Ageless Dawn 2
for ideas and support...and finding a bunch of bugs in 1.0... Staff:
Kokushibyou
Mindy
James
Sable






Changelog:
6-25-05 - Version 2.0 RC0 (original release)
6-27-05 - Version 2.0c Announced.
6-29-05 - Version 2.0 Rolled Out.
7-05-05 - 100+ d/ls.
7-08-05 - Bug Reported/Fixed in SkillGumps.cs. v2.0.1r0
7-11-05 - Bug Reported/Fixed in SkillStone and SkillTicket.cs. Simple setting was not working. Thanks, BeneathTheStars - v2.0.1r1
7-23-05 - Bug Reported/Fixed in SkillStone -- new feature not added. Thanks, Grashopr. 200+ d/ls v2.0.1r2
7-29-05 - Bug Reported/Fixed in ControlCenterGump -- problem with setting. Thanks, orpheus. - v2.0.2r0
8-08-05 - 300+ d/ls
8-15-05 - Fixed bug in SkillGumps that would allow players to have up to 100 points over the desired amount, due to special skills gained at charactercreation. Thanks, Erica. v2.0.2r1
8-31-05 - 500+d/ls
10-15-05 - Fixed bug in SkillGumps that would throw an error when trying to set skills on pages 3+. Cause still unknown, but a different method fixed the problem. Thanks, AD2 players. Also, release of v2.1 to public. v2.1r0
10-16-05 - Forgot SSHelpGump. Download the extra file to make it work. Core.zip now has SSHelpGump.cs Which...does nothing.
10-16-05(2) - Released incorrect version. This is the correct version. Redownload pack, please.
12-4-05 - New version! Control Center that works! Fixed no-ticket bug!

File Info:The .zip is the system itself, with all necessary pieces. I am discontinuing the individual file release to keep everyone on the same page.

License: After the KPak fiasco, I'm paranoid.
By downloading this sytem you agree:
A. To not redistribute this system in any form, except as needed for infra-shard operations.
B. To not modify this system for redistribution. Modification for personal shard use is certainly okay.
C. The exception to this rule is anyone employed by RunUO. S/he may do whatever s/he likes with this release. I would prefer that s/he not redistribute any verion of the system, however. :eek:
 

TMSTKSBK

Lord
The official How-To for TM Skill System 2.0.x

UPGRADE INFO:
Due to some irregularities and exploits, TM SS 1.0 is no longer promulgated. Therefore, I ask that you remove all TM SS 1.0 files from your shard, and upgrade to 2.0.

I will no longer offer support for 1.0.



How to tell:

All SS 1.0 files have "//Author TMSTKSBK" in them somewhere.
Specifically,
SkillGumpSimple.cs:
//Version 4.0
//Author TMSTKSBK

SkillStone.cs:
//Version 2.0
//Author TMSTKSBK

SkillTicket.cs:
//Version 1.0
//Author TMSTKSBK

FAQ: "My Gumps are spitting out a lot of information that I don't want my players to see! What do I do?"
Although I try to distribute TMSS with Debug Mode turned off, it sometimes slips through the cracks. You can change if debug code is shown by setting DebugMode in SkillSettings true or false. (True - is shown, False - is not shown)


about:
TM Skill System in its default state revolves around Tickets and Stones. The tickets are serialized to a single player, and can only be used by that player. The stones do not do error checking beyond if the ticket and the player match. If they do, the stone does one of several things, depending on stone type, ticket type, and SkillSettings. It is also preprogrammed for RunUO 1.0.1, and only requires uncommenting to be ready for Bushido and Ninjutsu.

Before we begin, understand this. There is an option called "CentralControl". We will discuss it near the end of the How-To. It makes any adjustments to individual stones moot, and resets them to CentralControl values. CentralControl will eventually have a ControlCenter, that will allow Admins and Seers? to rapidly change values for all SkillStones shardwide.

Preface: Exploit Protection.
TM SS 2.0's tickets are all required to be linked to a SPECIFIC mobile. If you are not the correct mobile, you cannot use the ticket. It does not work on names, but on the serial of the mobile, thus making it virtually impossible for an incorrect person to use a ticket. Therefore, you can rest assured that using TM SS is a secure method of allowing single players to set skills and stats.

At a later date, I may release "optional" skilltickets that allow any player to set their skills up a certain level. These may be added as loot, and used by any player that has their hands on them. They will probably increase the skill despite any individual or overall stat cap the mobile may have. Or maybe it'll be optionally that way.


Here are the options:

1. Newbie Stone:
Newbie Stone is designed keeping simplicity and new players in mind. Although SkillStone can accomplish everything NewbieStone can and more, NewbieStone is the rapid, simple method of deployment for TM SkillSystem. NewbieStone ONLY works with NewbieTickets. SkillStone, likewise, only accepts SkillTickets & SkillCapTickets. In summary, NewbieStone is like a "lite" edition of the SkillStone...which would be the "pro" edition of software...

1A. How to deploy a NewbieStone:
NewbieStone can be added by saying [add NewbieStone. It requires no extra arguments for construction. Upon construction, it uses the default values in the NewbieStone class for its variables. Using [props on the NewbieStone will allow you to adjust these values (unless the shard is under CentralControl). Eventually there will be a context menu that will allow you to do this without [props.

1B. How to deploy NewbieTickets:
There is code in the NewbieTicket class that shows what line to add to the Charactercreation.cs file to add NewbieTickets to new players' backpacks. Place the NewbieStone in your shard's start room, and you're ready to go.


2. SkillStone:
The heart of the system. SkillStone accepts two tickets: SkillTickets and SkillCapTickets. SkillStone is intended to be placed as a newbie stone and as an in-game way of getting new skills. This can be accomplished with the SkillTicket, which accommodates the setting of how MANY skills the ticket is good for (1, 2, or all 56ish...I forget how many), as well as what value the skills set with the particular ticket are good for. The skillstone interprets these values and sends appropriate gumps.

2A. How to deploy a SkillStone:

SkillStone can be added by saying [add SkillStone. The options on NewbieStone are largely similar to those on SkillStone. Its default settings are stored in SkillSettings.cs.

2B. How to deploy SkillTickets:
Again, there is code in the file that will tell you what to add to CharacterCreation.cs in order to have a SkillTicket added to each new player's pack. You may also say "[add skillticket" to add one at any time in-game. It will, again, take default values from the SkillSettings file.

2C. How to deploy SkillCapTickets (thank you, daat99):
SkillCapTickets use a double value (in a command prop) to allow a player to raise his/her current skill cap to the current skill cap + the double value. It does not raise the actual skill level of any skill, just the overall skillcap of the player.

3. Settings:

The main settings config file for SkillStone system is SkillSettings.cs (makes sense, no?).
There are a boatload of settings permutations, but I'll try to cover them all...

So. In the order they are in in SkillSettings.cs:


(Shard Settings)

ShardName:
ShardName should be set to whatever your shard's name is. So, for my shard, Ageless Dawn 2, I would say:
public static string ShardName = "Ageless Dawn 2";

IsSharded:
Once you type your shard's name in, you must set this to true.
If you do not type your shard's name in, leave false.

(Gump Type Settings)

Simple:
Simple should be true only if you want to use the skillsystem for skills only.
It will send the "SkillGumpSimple2" gump if true.
If false, it will also do stats, and send the "SkillGump3" gump.

MaxStatsValue:
If you use the "uber gump" (SkillGump3), you need to put a maximum stats value here.

ForceStatsValue:
This determines if the input for stats should be equal to (true)
or allow less than or equal to (false). Why this should ever be anything but true, I don't know.
But it's there for kicks and giggles.

(Hue Settings)

SkillHue:
The hue skill stones and tickets will show up as.

Newbie hue:
The hue newbie stones/tickets will show up as.

StatHue:
This...doesn't really do what it sounds like. It actually sets the skillcapticket hue.

(CENTRAL CONTROL)

CentralControl:
true: CentralControl is on. All stones have the same values,
regardless of what values are in their props.
false: CentralControl is off. All stones have individual values.

(Skillstone Settings)
[These are linked to CentralControl in that they are the "central control values"]

IsTicketed:
Determines if the Skillstone uses tickets. Some PvP shards may want to disable this.
If the Skillstone doesn't use tickets, it uses a value (SkillValue), and the gump values to
set either some or all skills to certain values, without needing a ticket.

IsGumped:
Determines if the SkillSystem should send a player gumps. If it does not, then it sets all skills
to a certain value.

NumSkills:
In the event the SkillStone is ticketed, this is the number of skills a player may set
using a default ticket.

SkillValue:
In the event of no tickets:
Sets all skills to this.
In the event of tickets:
Sets selected skills to this.

NoGumpSkillValue:
Also designed for PvP shards. If you do not wish to use gumps (the isgumped is false), this value
is what skills will be set to automatically.


(NewbieStone Settings)
[Used only by the "Newbie" system.]

IsGumpedNewbie:
Same as IsGumped, but applies only to Newbie items.

NumSkillNewbie:
Same as NumSkills, but applies only to Newbie items.

SkillValueNewbie:
Same as SkillValue, but applies only to Newbie items.

IsTicketedNewbie:
Same as IsTicketed, but applies only to Newbie items.

StatValueNewbie:
Same as StatValue, but applies only to Newbie items.


(Message Settings)
[Used by Skill, Newbie, and SkillCap Tickets]

NotYoursMessage:
A string to send the user if they attempt to use a ticket that is not theirs.

HowToUseMessage:
A string to send the user if they double-click a ticket.
(As of v2.1, this will be disabled if "StandaloneTickets" is enabled.)

NoTicketMessage:
A string to send a user if they attempt to use a skillstone with no ticket.

NewbieHowToUseMessage:
Similar to HowToUse, but includes the current shardname if "IsSharded" is true.
Else, uses "NoShard" string below.

Shard:
The string NewbieHTUM returns if IsSharded is true.

NoShard:
The string NewbieHTUM returns if IsSharded is false.

DebugMode:
A special option to create more output in the hopes of debugging any errors
you may come across while using the system.

DebugMode1 & 2:
Please don't mess with these. These give me lower-level debugging of gumps and
operations within the system.

And that. Is the end of the settings file.


4. About the Gumps:
There are three gumps that come with this distro of the SkillSystem. They are all related, but are used in different ways.

4A. The Uber Gump (SkillsGump3)
The first gump in the SkillGumps.cs file, SkillsGump3 allows a user to set their stats and skills simultaneously. If there is an error, it sends the two other gumps until the error is fixed.

4B. The SkillGumpSimple
The second gump in the file, SGS allows a user to set skills only, and no stats. It does error checking, and will send itself again if need be. It is also sent by the SG3 in the case of bad data in the skills segment.

4C. The StatGump
The final file in this distro, SG allows a user to only set stats. It is sent if there is bad data in the stat boxes of SG3, or bad data in another instance of itself.

I am going to attempt to make skins for the gumps. Right now they have the "stone" look of most typical gumps. Nyeh...we shall see...

 

Kieeps

Wanderer
found a realy anoying bug. when i'w created a ticket and set the owner to me and click the stone there is no longer a way to exit the gump. right clicking doesn't work
 

TMSTKSBK

Lord
Actually that's a feature...heh. It's to keep newbies from closing the gump and then complaining about not having their skills set.

You can only close the gump by going to the last page and checking the box and then clicking "OKAY". I probably should make it so that it either is closable or isn't depending on whether or not the system is in debug mode.
 

Kieeps

Wanderer
TMSTKSBK said:
Actually that's a feature...heh. It's to keep newbies from closing the gump and then complaining about not having their skills set.

You can only close the gump by going to the last page and checking the box and then clicking "OKAY". I probably should make it so that it either is closable or isn't depending on whether or not the system is in debug mode.
ah :) ok
 

TMSTKSBK

Lord
There not being any bugs reported yet, I am going to remove the "beta" from the system's name. This is now the official release v2.0c, of the Skill/Stat System.
 

daat99

Moderator
Staff member
TMSTKSBK said:
There not being any bugs reported yet, I am going to remove the "beta" from the system's name. This is now the official release v2.0c, of the Skill/Stat System.
Congratulations :)
 

TMSTKSBK

Lord
The first "Application Extension" of TM SkillStatSystem.

This extension requires that you also have the main SkillSystem installed. You do not need to use the main skill system to use this, but you need to have it compiled, since it uses the values in the SkillSettings file.

This is a stone to set Stats ONLY. The main SkillSystem has a Skillstone only, this is the Statstone only.

It sends the StatGump in SkillsGumps, and utilizes some values in SkillSettings, thus requiring those files. I recommend that you have all SkillSys files installed. I won't support shards that don't :p

The statstone.cs contains the StatStone object and the StatTicket object.

The StatStone has a check for if it is ticketed or not. The StatTicket can be linked to an owner, or it can be independent. The default is independent.

The StatGump needs editing. I will do this when I get home tonight.

Installation:
Drop 'n' Go

Support:
See above.
 

Attachments

  • statstone.cs
    3.2 KB · Views: 97

BigDaddyGMan

Wanderer
This works awesome, very nice indeed. TMSTKSBK if you want me to put up the way I did it, (GivetoEveryone), in charcreation.cs let me know. Since I am a total newb, I may have done it a different way than one might expect. Then again, I may be so damn good that I did it exactly how you intended! hah!

thanks again for an awesome system!
 

BigDaddyGMan

Wanderer
================================================================


if ( young || newChar.BankBox != null )
{
SkillTicket ticket = new SkillTicket();
ticket.Owner = newChar;
newChar.BankBox.DropItem( ticket );
}

================================================================

This effectively drops a skillticket into the bank box of all new chars, or young ones w/e. Anyway I just replaced the part in the charactercreation.cs file that used to look like this:


================================================================


if ( young && newChar.BankBox != null )
{
NewPlayerTicket ticket = new NewPlayerTicket();
ticket.Owner = newChar;
newChar.BankBox.DropItem( ticket );
}

================================================================


So all you have to do is download the version 2.0 and place all four files, "SkillGumps.cs, SkillSettings.cs, SkillStone.cs and SKillTicket.cs" into your c:/runuo1.0/scripts/custom folder.
Then change the charactercreation.cs file as I have shown above and you are done. Now get ingame and [add skillstone I put mine infront of the bank as the chars have to access the bank to get thier ticket anyway :)

GL! HAVE FUN!! AWESOME SCRIPTS!!!!
 

TMSTKSBK

Lord
Well, I don't quite use it in front of the bank. My actual USE of the system is pretty limited -- I included all the options so that everyone could adapt it.

The way I use my system is like this picture shows here. Don't look at my PC, he looks horrible. This is from my test server.

The players start in the bottom corner, read the rules (yeah right), and use the stones to set their skills. Depending on your settings, you may not need the stat stone. They can then exit via the moongate on the top side. I should probably make a "Start System" that includes this as a multi...that might be pretty cool. The actual area would have blockers around it, so no Rel Por to get out. This area is in the middle of Green Acres to keep players from stumbling across it in the game.

Anybody like that idea?
 

Greystar

Wanderer
thanks for the pic it actually now helped me figure out exactly what your system was for without a download. It was as I figured though, but I still like to "See" things as they would be used on a shard.
 

TMSTKSBK

Lord
Well there was no need for you to download in the first place...you could've just read the How-To-Use post. :p

And that's not the only way it can be used. This is why the SkillSettings file is 275 lines long. ;) EDIT: 7-29-05: Make that 613 lines long :confused: EDIT: 2-3-06: Optimization! Now 461 lines :p!

It can be used in the way I use it. It can be used in the way BDGM uses it. It can also be used in a hybrid of several ways -- using StandaloneSkillTickets to provide new users with skills, and using SkillStones to give existing users more skills. You can use the StatStone by itself, or you can (soon) configure the SkillStone to give the double gump, the skill gump, or the stat gump. It can be used as a reward station - giving people skills via special tickets. Or, it can be used just for new players via the NewbieSkillStone and NewbieSkillTicket.
 

Greystar

Wanderer
TMSTKSBK said:
Well there was no need for you to download in the first place...you could've just read the How-To-Use post. :p

And that's not the only way it can be used. This is why the SkillSettings file is 275 lines long. ;)

It can be used in the way I use it. It can be used in the way BDGM uses it. It can also be used in a hybrid of several ways -- using StandaloneSkillTickets to provide new users with skills, and using SkillStones to give existing users more skills. You can use the StatStone by itself, or you can (soon) configure the SkillStone to give the double gump, the skill gump, or the stat gump. It can be used as a reward station - giving people skills via special tickets. Or, it can be used just for new players via the NewbieSkillStone and NewbieSkillTicket.


I know I just like visual samples, it was the best way for me to figure out where things where going crazy with my guard system. I did download the script after the screenshot though so I could take a closer look at how it was written and as another example of completely working code that does a Specfic thing with flexability.
 

sadoul

Wanderer
I tested it

On my shard, it was problem after problem. I finally deleted it. If you didn't pick skills or stats EXACTLY perfect, and you know players never do, then it would cause the gump to reappear with lines overwriting each other. And it wasn't closable. And it didn't matter if you went to the end and hit ok (even with the box checked). It would just reopen and not be able to close. IMO Not user friendly. Directions were semi easy to follow but there is a lot of crap to change with default causing problems.
 
Top