Total players online: 16



Take the Tour | Site Map

It is currently Wed Aug 15, 2018 8:18 am

All times are UTC - 8 hours




Post new topic Reply to topic  [ 46 posts ]  Go to page Previous  1, 2, 3, 4  Next
Author Message
PostPosted: Mon Mar 21, 2005 4:42 pm 
Offline
Alexandria Staff
Alexandria Staff
User avatar

Joined: 06/08/2003 21:08
Posts: 6413

Hi. Some further information for you all, after discussions with Snicker, and some more in-depth reading of the code and spreadsheet simulations.

First, remember there are 3 factors for skillgain chance:
1. 50% of the chance comes from the SUCCESSFACTOR
successchance = (REALskill - minskill) / (maxskill - minskill) where min and maxskill are the min and max skills you can gain at with that event or item. So for instance casting a level2 spell would be 9 and 49--you can't gain skill if you're < 9 real, and you can't gain above 49 by casting that spell. Now, the successchance ISN"T your GAINCHANCE factor, but it is used to calculate it:
successfactor = (1 - successchance) * .5 if you SUCCEED, or *.2 if you fail. Since your fail/success ratio is exactly the same as your successchance, as successchance is just compared against a random 0-100 percent, at any given REALSKILL you can get a "normalized" value for this factor. That is, you have successchance of it being the x*.5 num, and you have 1-successchance of it being the x*.2 num, so multiplying each result by it's probability and adding the two for a total probability of 1.0 gives a normalized answer based on the random curve. Which devolves to this:
(((1 - successchance)* successchance) / 2 + ((successchance)* (1-successchance)) / 5 ) ... lets call successchance s...
(s - s*s) / 2 + (s - s*s )/ 5

I ran this number for REAL skills from minskill to maxskill, and I'll tell you more about this later.


2. 25% comes from your totalskills factor
(TotalSkillCap - TotalSkillsbase) / TotalSkillCap
i.e for a guy at 695 on a 700 char: 700-695 / 700 = 5/700

3. 25% comes from your particular skill baseskill factor.
(SkillCap - Skillbase) / SkillCap
i.e. a guy @ 90magery with a 120 powerscroll: 120-90 / 120 = .25

Now, remember there are TWO kinds of skill being looked at here, your BASESKILL, and the "REALSKILL", ie the value the game checks for success. An example, and in fact the one prompting this post, is magery. Say your magery is 70, and you equip a -25 WAND. Your BASESKILL is 70, your REAL skill is 45. If you were to wear some +20 jewels instead, your REAL skill would be 90.

Now, the BASESKILL is what is checked for the last two skillgain factors, your totalskill and baseskill factor as I call them above. So, for 50% of your gainchance, it doesn't matter WHAT you do with jewelry or mageweapons etc., it just matters how close to your two caps you are. But for the OTHER 50% of your gainchance calculation, REALSKILL is used, and it is ONLY USED in comparison to whatever act you are doing's MINIMUM SKILL to gain and MAXSKILL to gain.

Let's take magery for an example. If you use jewels to increase your skill, OR use a wand to decrease skill... it doesn't MATTER for your success chance!!Nor that skillgain factor!! Why?? because realskill is ONLY compared against your spell's min and maxskill, it's not absolute! So long as you choose your spell wisely in comparison to your REALskill, that's all that matters--again,
successchance = (REALskill - minskill) / (maxskill - minskill)
so don't befooled thinking higher realskill from jewels means higher gainfactors-- it doesnt.

success gainfactor
The runuo code for spells, min and maxskills, is :

Quote:
private const double ChanceOffset = 20.0, ChanceLength = 100.0 / 7.0 ;
public virtual void GetCastSkills( out double min, out double max )
{
int circle = (int)m_Info.Circle;
if ( m_Scroll != null )
circle -= 2;
double avg = ChanceLength * circle;
min = avg - ChanceOffset;
max = avg + ChanceOffset;
}

which when cranked gives a 40 point range for each spell level:
  1. circle  minskill        maxskill
  2. 1       -5.7    34.3
  3. 2       8.6     48.6
  4. 3       22.9    62.9
  5. 4       37.1    77.1
  6. 5       51.4    91.4
  7. 6       65.7    105.7
  8. 7       80.0    120.0
  9. 8       94.3    134.3



Now, when training a skill, we already know that to optimize the skillcap factors we need to:
1. LOCK TOTAL SKILL LOW!
2. Eat a PS to maximize the baseskill factor

but how do we potentially more important 50% of the gainchance equation, successchance factor? Our only choice, and what is always argued, is WHAT to make or cast at WHAT skill. I generated a probability table and cranked it through an excel spreadsheet, looking at the successgainfactor at each skill level from MINSKILL to MAXSKILL. Here is a table for magery. The SKILL is your skill ABOVE the minskill. So, where skill = 1, if you were casting a level 7 spell, that would mean your realskill was 81. The successchance is NOT the magery successchance, but a \"successchance\" that is just used for skillgainfactor calculation in runuo. Finally, the skillgainfactor is the number you're interested in maximizing via your choice of spells to cast, when:
  1. skill   success sgfactor
  2. 1       0.025   0.017
  3. 2       0.050   0.033
  4. 3       0.075   0.049
  5. 4       0.100   0.063
  6. 5       0.125   0.077
  7. 6       0.150   0.089
  8. 7       0.175   0.101
  9. 8       0.200   0.112
  10. 9       0.225   0.122
  11. 10      0.250   0.131
  12. 11      0.275   0.140
  13. 12      0.300   0.147
  14. 13      0.325   0.154
  15. 14      0.350   0.159
  16. 15      0.375   0.164
  17. 16      0.400   0.168
  18. 17      0.425   0.171
  19. 18      0.450   0.173
  20. 19      0.475   0.175
  21. 20      0.500   0.175
  22. 21      0.525   0.175
  23. 22      0.550   0.173
  24. 23      0.575   0.171
  25. 24      0.600   0.168
  26. 25      0.625   0.164
  27. 26      0.650   0.159
  28. 27      0.675   0.154
  29. 28      0.700   0.147
  30. 29      0.725   0.140
  31. 30      0.750   0.131
  32. 31      0.775   0.122
  33. 32      0.800   0.112
  34. 33      0.825   0.101
  35. 34      0.850   0.089
  36. 35      0.875   0.077
  37. 36      0.900   0.063
  38. 37      0.925   0.049
  39. 38      0.950   0.033
  40. 39      0.975   0.017
  41. 40      1.000   0.000


You can see that the skillgainfactor starts low, rises to max halfway through the range, and symetrically drops off again. Since the entire formula is linear, and is composed of a factor and it's exact inverse, this perfect symetrical curve makes sense. Obviously we want to work around the exact center for the maximum gain over time. For magery, you can see that each new level is about 14 skillpoints higher than the last one. Therefore, we would like to jump levels every 14 skillpoints... but when? Well, we want those 14 skillpoints to be centered around the middle of the curve which is 40 wide centered at 20... so from 13 to 27! Therefore, we should be training magery in the following method:
  1. circle  minskill        maxskill start skill this level
  2. 1       -5.7    34.3           0
  3. 2       8.6     48.6           22
  4. 3       22.9    62.9           37
  5. 4       37.1    77.1           51
  6. 5       51.4    91.4           65
  7. 6       65.7    105.7         80
  8. 7       80.0    120.0         94
  9. 8       94.3    134.3         108


This may be counter to what most people do, but for RUNUO, it's the formula. Now, when you can no longer cast cast cast, but must wait to generate mana, you can obviously refer to the gainfactor chart above to see what your tradeoff will be if you keep using lowered mana spells further into their skillrange instead of changing up.

The clear answer for magery is this: 1. don't use jewels to increase your skill, it adds NO GAINCHANCE, but just increases the level of spell youmust cast and thus the amount of mana and wait time, thus massively reducing the number of attempts you can do over time, thus lowering your gainrate.
2. DO use a mageweapon to lower your skill, for the opposite of all the reasons just given above.
3. follow the "what level to cast when" table above.

[/SnickerPwning]
:)

_________________
Scripts:
Rails: RailWriter | Tutorial
Taming + Ad-ons: UltraTamer | HealthWatch | Defend | Looter
Item Work: UltraEnhancer | UltraOrganizer
Pets: UltraPetFighter
Treasure Hunting: Map Identifier | Treasure Hunter | RKSpotAutoWalker

Information:
New Users: Basic Required Reading for New Users
Speeches: My Consolidated Useful Speeches
Script Library: My Script Library


Top
  ProfileShow poster's scripts in the public script library 
PostPosted: Tue Apr 26, 2005 1:21 pm 
Offline
Alexandria Staff
Alexandria Staff
User avatar

Joined: 06/08/2003 21:08
Posts: 6413

Hi.
STAT GAINS (STR/INT/DEX) on Alexandria Freeshard:
Here's how it works:
Everytime you use a skill, by one method or another a file called skillcheck.cs is called. In that, there is a complex algorithm (see my thread on skillgain) whereby it is decided if you gain in the skill or not.

IF you gain in the skill, they STATGAIN is looked at. Each skill has a gainfactor for STR, one for INT, and one for DEX, which goes into the formula to determine if you gain in a STAT or not.

Embedded inside the RunUO core is a data file called skills.cs which lists the parameters for all skills and in that is the enumeration of these factors:
  1.                 public SkillInfo( int skillID, string name, double strScale, double dexScale, double intScale, string title, SkillUseCallback callback, double strGain, double dexGain, double intGain, double gainFactor )
  2.                 {
  3.                         m_Name = name;
  4.                         m_Title = title;
  5.                         m_SkillID = skillID;
  6.                         m_StrScale = strScale / 100.0;
  7.                         m_DexScale = dexScale / 100.0;
  8.                         m_IntScale = intScale / 100.0;
  9.                         m_Callback = callback;
  10.                         m_StrGain = strGain;
  11.                         m_DexGain = dexGain;
  12.                         m_IntGain = intGain;
  13.                         m_GainFactor = gainFactor;


now, there is a table of all the skills. Trust me when I say that NOTHING IS CLOSE TO CAMPING for the GainFactors on average:

camping 2.0 1.5 1.5
carpent 2.0 0.5 0.0
lumberj 2.0 0.0 0.0
snoopin 0.0 2.5 0.0
magery 0.0 0.0 1.5

as you can see, camping is by far the highest total statgain. You must use a new object for each check, and /or be in a different 5x5 tile area (after 3 gains in 5 min). This is hard to do snooping even for dex. Therefore, camping is absolute king for statgain.

To gain, do this:
1. get kindling by chopping trees with a dagger. Get as much as you can carry, 200 or more.
2. double click the kindling pile IN YOUR BACKPACK. Thats it. It will do a skillcheck. So long as your camping is < 10 it will gain camping AND A STAT iaw those gain factors. When camping goes > 10, so what, now you gotta click it a bit more to get the stat.
3. Set stats arrows as desired.
4. start running/walking around town, don't repeat an area in < 5 min.
5. Have a UO macro set for "use last object" then just press this key and your kindling will attempt to camp as you walk. thats it. Press it every second or so. OR, run this script:
event macro 17 0
wait 1s

after you click the kindling at least once, press play in euo and start walking.

In LESS THAN 15 min you can max all your stats as desired. Camping will be about 37 points. You'll have to stop for kindling after a while, it will take 600 or 800.

_________________
Scripts:
Rails: RailWriter | Tutorial
Taming + Ad-ons: UltraTamer | HealthWatch | Defend | Looter
Item Work: UltraEnhancer | UltraOrganizer
Pets: UltraPetFighter
Treasure Hunting: Map Identifier | Treasure Hunter | RKSpotAutoWalker

Information:
New Users: Basic Required Reading for New Users
Speeches: My Consolidated Useful Speeches
Script Library: My Script Library


Last edited by Roadkill on Mon May 30, 2005 6:11 pm, edited 1 time in total.

Top
  ProfileShow poster's scripts in the public script library 
CMCScribe
 Post subject:
PostPosted: Sat Jun 04, 2005 2:18 pm 
Hi, not to beat a dead horse, but I would really like to know. If I have a character who is at their skill max, but due to poor choices in the beginning of playing has points in unwanted skills. What are the odd of being able to actually gain in wanted skills against trying to lower points in unwanted skills? I really don't want to just delete and start over, as someone was kind enough to donate a stat scroll to me, and I hate to lose that. Also, because while I read constantly on the ease of GMing a character in a couple of UM hours, I'm not that good I guess, but it seems to take me forever to train anything but crafting skills.


Top
   
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 46 posts ]  Go to page Previous  1, 2, 3, 4  Next

All times are UTC - 8 hours


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Hosted by CalWeb Internet Services, Inc.