kannot
Clueless newb
Posts: 126
|
Post by kannot on Sept 17, 2018 9:31:28 GMT -5
In general?
|
|
pinkerdlu
Shartist
The evil bad guy of a desert sex simulator. Real Necker
Posts: 521
|
Post by pinkerdlu on Sept 17, 2018 10:42:15 GMT -5
Don't post details like that unless you want to get banned, bruv. I recommend you delete or edit that post.
|
|
kannot
Clueless newb
Posts: 126
|
Post by kannot on Sept 17, 2018 11:03:24 GMT -5
Don't post details like that unless you want to get banned, bruv. I recommend you delete or edit that post. Woops, thanks mate.
|
|
zur
staff puppet account
Posts: 11
|
Post by zur on Sept 17, 2018 17:54:33 GMT -5
First, determine what your wisdom score is by using the linked table. Second, using that wisdom number, determine what your "Learn Score" is with the following table.
"Learn Score", "Perception Bonus", "Bonus to certain Saves" {0, 0, 0}, /* 0 */ {1, -30, -50}, {2, -20, -40}, {4, -15, -30}, /* 3 */ {6, -10, -25}, {8, -5, -20}, {10, -5, -15}, /* 6 */ {12, 0, -10}, {14, 0, -5}, {16, 0, 0}, /* 9 */ {18, 0, 0}, {20, 0, 0}, {24, 0, 0}, /* 12 */ {28, 0, 0}, {32, 0, 0}, {38, 0, 5}, /* 15 */ {44, 5, 10}, {50, 5, 15}, {56, 5, 20}, /* 18 */ {62, 10, 25}, {68, 10, 30}, {74, 10, 35}, /* 21 */ {80, 15, 40}, {86, 15, 45}, {92, 20, 50}, /* 24 */
25+ is "92"
Skill Timer = (2 x (60 Minutes - "Learn Score", Minimum 8) + (SKILL_VALUE / 7) ) Weapon / Combat Skills take twice as long. Psionic Skills take three times as long. With a Dwarf with "Very good" wisdom (15), it works as follows: 2 x (60 Minutes - 38 "Learn Score") = 44 44 + (SKILL_VALUE / 7) = Skill Timer Assuming a maximum value of 100 for any given skill, the maximum this value can be is (100/7) = ~14 44 + 14 = 58 Minutes until next increase (x2 for combat, x3 for psionics)* Any race with "Poor" wisdom is going to have at least an hour between skillups. EDIT: The following "Spoiler" contains incorrect math according to my version of source code. Sneasy insists that it might be correct, so I'm leaving it here for your perusal. I very well might be accidently correct with this first approach, as code may have changed since then. Anecdotally, I've had human characters with about 15 wisdom fail a non-combat skill (after several days of not playing), fail exactly 40 minutes later (+/-1), and increase said skill's level.
Skill Timer = (60 Minutes - "Learn Score") + (SKILL_VALUE / 7), Minimum 8 Minutes Weapon / Combat skills take twice as long. Psionic skills take three times as long.
With a Dwarf with "Very good" wisdom (15), it works as follows:
(60 Minutes - 38 "Learn Score) = 22 22 + (SKILL_VALUE / 7) = Skill Timer
Assuming a maximum value of 100 for any given skill, the maximum this value can be is (100/7) = ~14 22 + 14 = 36 Minutes until next increase (x2 for combat, x3 for psionics)
Any race with "Poor" wisdom is going to have at least an hour between skillups.
21+ Wisdom is the "Soft cap", where your skill timers will always be 8 Minutes long (16 and 24 for combat and psi, respectively)
|
|
|
Post by lechuck on Sept 18, 2018 2:57:49 GMT -5
The codedump says: get_skill_wait_time(CHAR_DATA *ch, int sk ) { int wt = 0;
wt = 2 * MAX(8, 60 - wis_app[GET_WIS(ch)].learn + (ch->skills[sk]->learned / 7));
if ((skill[sk].sk_class == CLASS_COMBAT) || (skill[sk].sk_class == CLASS_WEAPON)) wt *= 2;
if (skill[sk].sk_class == CLASS_PSIONICS) wt *= 3;
return wt; I took this to mean that it's 2x((60 Minutes - "Learn Score") + (SKILL_VALUE / 7)) This was tested and seemingly confirmed when that guy sneazy ran the code on a private port of the game: So the timer seems to have a default multiplier of 2, and is then doubled or tripled for combat and psionics, with a minimum of 16/32/48. Either way, I've looked at those numbers before and it just doesn't seem right. I feel like there has to be something else to it, because the theory just don't match up with reality. If those formulas are true, one would have the following skill timers (assuming human wisdom and the skill is a non-combat/psionic at 50 points): Poor (7) wisdom: 110 minutes Average (10): 98 minutes Very good (16): 46 minutes Ext. good (17): 34 minutes Exceptional (20): 16 minutes That can't possibly be right. High-wisdom characters don't gain skills that much faster than low-wisdom ones. Definitely not almost seven times faster, in the case of poor vs. exceptional wisdom. Even if you account for the fact that your fails usually don't synch up exactly and it would be pretty hard to make consistent use of a 16-minute timer, there's just no way that wisdom can yield a difference in skill timers of up to 700%. I've certainly been in situations where that should have resulted in way faster gains than were actually the case, such as whole evenings spent listening compulsively in crowded taverns on various characters with exceptional wisdom. That should easily result in the maximum possible skillgains, and it definitely wasn't 3-4 gains points per hour. There's some higher minimum than the formula suggests. According to the stat table, AI human wisdom or basically anything above good on an elf would keep the timer at its minimum all the way up to master level, and if that minimum were 16 minutes, it would be extremely noticeable with certain skills, especially the ones that go up by more than one point at a time. Like you could go from novice to master climb in an afternoon, since that skill goes up by three points each time. We know that the leaked part of the code is both incomplete and riddled with unused data. There are parts of it that clearly don't match up with the game, and mechanics that aren't accounted for in the file. I would guess that the codedump's data on skill timers is from some bygone era, and there have probably been changes to the 'learn' substat or something like that. While the codedump contains a lot of interesting information, we can't take all of it at face value. You have to weigh it against in-game experiences, and if the leaked data shows something that is absolutely incompatible with reality, it's probably outdated and the code currently in use is in some newer table that wasn't part of the leaked files.
|
|
sneazy
Clueless newb
Posts: 115
|
Post by sneazy on Sept 18, 2018 7:18:17 GMT -5
What was the byn schedule? Back when I played, I assumed that was what an average combat skill up would take. I don't recall training every day for the same skills so >90 minutes, minimum? Most non-combat skills I would try for a skill-up every 20-30 minutes. They were the easiest to predict. It's not exact since sometimes you really want to make something (not just practicing for skill up), logging out, rp'ing, or just doing something else messes up the timing count as well. Here's what I would get across multiple characters with extremely good human wisdom (from old spreadsheets). I kept track of the fail time and counted the failures (26-journeyman means it took 26 fails to get to journeyman). Archery should be 20 so any number higher means I was practicing again too soon. I was trying for 30 minutes between failures here (extended the time with later characters). Crafting should be 10 (each skillup is for 2 points). This is closer to what is expected with a 20-30 minute timer but still practicing too often. Ex good wis 18 crafting 34 minutes archery 68 minutes 17 crafting 46 minutes archery 92 minutes
Try every 30 minutes or more - gain_skill(ch, SKILL_ARCHERY, 1); archery apprentice 26-journeyman 39-advanced 39-master
Try every 20-30 minutes or more Craft - gain_skill(ch, make_item_list[recipe_index].skill, 2); brew novice 3-apprentice 10-journeyman 10-advanced tanning novice 5-apprentice 10-journeyman fletchery novice 7-apprentice 16-journeyman 17-advanced 14-master sword making novice 9-apprentice 16-journeyman 15-advanced 16-master cooking novice 7-apprentice 11-journeyman 8-advanced knife making novice 6-apprentice 10-journeyman 14-advanced 10-master spear making novice 5-apprentice 11-journeyman 12-advanced 11-master
Archery was taking about twice as long so 68 minutes seems reasonable. Crafting was spot on sometimes (some mats easier to find). Brew was the odd one, never really needed to practice it (nobody cared about soap) so it was probably much greater than 30 minutes between each practice. For the data that I still have, the theory seems to fit my experience. What is missing is the current races file/table.
|
|
kannot
Clueless newb
Posts: 126
|
Post by kannot on Sept 18, 2018 7:40:26 GMT -5
This is super helpful thanks guys
|
|
zur
staff puppet account
Posts: 11
|
Post by zur on Sept 18, 2018 18:57:50 GMT -5
The codedump says: get_skill_wait_time(CHAR_DATA *ch, int sk ) { int wt = 0;
wt = 2 * MAX(8, 60 - wis_app[GET_WIS(ch)].learn + (ch->skills[sk]->learned / 7));
if ((skill[sk].sk_class == CLASS_COMBAT) || (skill[sk].sk_class == CLASS_WEAPON)) wt *= 2;
if (skill[sk].sk_class == CLASS_PSIONICS) wt *= 3;
return wt; I took this to mean that it's 2x((60 Minutes - "Learn Score") + (SKILL_VALUE / 7)) This was tested and seemingly confirmed when that guy sneazy ran the code on a private port of the game: So the timer seems to have a default multiplier of 2, and is then doubled or tripled for combat and psionics, with a minimum of 16/32/48. Either way, I've looked at those numbers before and it just doesn't seem right. I feel like there has to be something else to it, because the theory just don't match up with reality. If those formulas are true, one would have the following skill timers (assuming human wisdom and the skill is a non-combat/psionic at 50 points): Poor (7) wisdom: 110 minutes Average (10): 98 minutes Very good (16): 46 minutes Ext. good (17): 34 minutes Exceptional (20): 16 minutes That can't possibly be right. High-wisdom characters don't gain skills that much faster than low-wisdom ones. Definitely not almost seven times faster, in the case of poor vs. exceptional wisdom. Even if you account for the fact that your fails usually don't synch up exactly and it would be pretty hard to make consistent use of a 16-minute timer, there's just no way that wisdom can yield a difference in skill timers of up to 700%. I've certainly been in situations where that should have resulted in way faster gains than were actually the case, such as whole evenings spent listening compulsively in crowded taverns on various characters with exceptional wisdom. That should easily result in the maximum possible skillgains, and it definitely wasn't 3-4 gains points per hour. There's some higher minimum than the formula suggests. According to the stat table, AI human wisdom or basically anything above good on an elf would keep the timer at its minimum all the way up to master level, and if that minimum were 16 minutes, it would be extremely noticeable with certain skills, especially the ones that go up by more than one point at a time. Like you could go from novice to master climb in an afternoon, since that skill goes up by three points each time. We know that the leaked part of the code is both incomplete and riddled with unused data. There are parts of it that clearly don't match up with the game, and mechanics that aren't accounted for in the file. I would guess that the codedump's data on skill timers is from some bygone era, and there have probably been changes to the 'learn' substat or something like that. While the codedump contains a lot of interesting information, we can't take all of it at face value. You have to weigh it against in-game experiences, and if the leaked data shows something that is absolutely incompatible with reality, it's probably outdated and the code currently in use is in some newer table that wasn't part of the leaked files. As per my copy of the code, LeChuck is correct; the math should be doubled. I've updated my above post to reflect as much. Anecdotally, the numbers do seem a bit high and a bit off, though, indicating that code may have changed since the code release.
|
|
|
Post by lechuck on Sept 18, 2018 20:02:28 GMT -5
I don't think the code was changed after the codedump leaked, but I believe that a lot of what is in the codedump is old and defunct data from many years ago, but left in the file, and those parts of the code have since been overwritten in files that were not grabbed by the codedump leaker. You can find a number of examples where data in the codedump is confirmed incorrect, such as where it lists the difficulty adjustments of stealing from all the wearlocs. Since you cannot steal items worn on fingers, shoulders, arms etc., the codedump's data is unused and the more recent steal code must be somewhere else.
I'm certain that the codedump is not the full code of the current game. That's why I advocate taking it with a grain of salt and judging it against in-game experiences. In this case, I refuse to believe that going from poor to exceptional wisdom lets you increase your skills seven times faster. It simply doesn't reflect in-game reality. There are plenty of places where the codedump is accurate, though. I think Arm's code is a patchwork of 20 years worth of changes, but many things have remained the same. I believe the stat tables are accurate except the 'learn' substat has probably changed.
My anecdotal estimation is that the difference between poor and exceptional wisdom is about 50% in skillgains. Of course, the timers for most combat skills largely stop mattering when you reach the point where failing at all becomes so difficult that you can't realistically meet your skill timers. When you hit advanced in skills like weapons and dual-wield, failures become so scarce that it would barely matter if your timer was five hours. Meanwhile, non-combat skills (e.g. hunt, sneak) are so trivial to max out that wisdom is of no real value, and crafting is limited more by access to materials than by time. Players long ago came to the conclusion that wisdom is a dump stat for anyone except mages who gain mana from it, and non-combatants where nothing really matters and you might as well get the boost to perception and haggle.
|
|
kannot
Clueless newb
Posts: 126
|
Post by kannot on Sept 18, 2018 23:15:44 GMT -5
I don't think the code was changed after the codedump leaked, but I believe that a lot of what is in the codedump is old and defunct data from many years ago, but left in the file, and those parts of the code have since been overwritten in files that were not grabbed by the codedump leaker. You can find a number of examples where data in the codedump is confirmed incorrect, such as where it lists the difficulty adjustments of stealing from all the wearlocs. Since you cannot steal items worn on fingers, shoulders, arms etc., the codedump's data is unused and the more recent steal code must be somewhere else. I'm certain that the codedump is not the full code of the current game. That's why I advocate taking it with a grain of salt and judging it against in-game experiences. In this case, I refuse to believe that going from poor to exceptional wisdom lets you increase your skills seven times faster. It simply doesn't reflect in-game reality. There are plenty of places where the codedump is accurate, though. I think Arm's code is a patchwork of 20 years worth of changes, but many things have remained the same. I believe the stat tables are accurate except the 'learn' substat has probably changed. My anecdotal estimation is that the difference between poor and exceptional wisdom is about 50% in skillgains. Of course, the timers for most combat skills largely stop mattering when you reach the point where failing at all becomes so difficult that you can't realistically meet your skill timers. When you hit advanced in skills like weapons and dual-wield, failures become so scarce that it would barely matter if your timer was five hours. Meanwhile, non-combat skills (e.g. hunt, sneak) are so trivial to max out that wisdom is of no real value, and crafting is limited more by access to materials than by time. Players long ago came to the conclusion that wisdom is a dump stat for anyone except mages who gain mana from it, and non-combatants where nothing really matters and you might as well get the boost to perception and haggle. What's the anecdotal rule of thumb then over wisedom 60 min at worst 30 min at best?
|
|
sneazy
Clueless newb
Posts: 115
|
Post by sneazy on Sept 19, 2018 5:45:12 GMT -5
20 failures should skill up a combat skill (except you don't start at 0 for most skills). My advice is go by the byn schedule on training combat skills.
10 failures should skill up a noncombat skill. Try 16 minutes if you have EG wisdom, if you keep records and see that you had >10 failures then your wisdom is saying you need longer.
I kept records of skill failures, kills (opponent, weapon, stance, mounted, hp), snapshots of skill levels at 1-5, 10, 20... days played, and saved all my gameplay logs. But I was just guessing at the timers - 20 to 30 minutes for non-combat and twice a day for combat skills (early morning/late afternoon). The data I shared was typical for my characters so I knew how long it would take to get a character skilled but I was constantly underestimating the lockout (archery 40 failures at >30 minutes each fail achieved the same as 20 failures at > 60 minutes would have). But I never used wisdom as a dump stat so I don't have any comparisons with bad wisdom rolls.
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Sept 19, 2018 10:56:18 GMT -5
20 failures should skill up a combat skill (except you don't start at 0 for most skills). My advice is go by the byn schedule on training combat skills. 10 failures should skill up a noncombat skill. Try 16 minutes if you have EG wisdom, if you keep records and see that you had >10 failures then your wisdom is saying you need longer. I kept records of skill failures, kills (opponent, weapon, stance, mounted, hp), snapshots of skill levels at 1-5, 10, 20... days played, and saved all my gameplay logs. But I was just guessing at the timers - 20 to 30 minutes for non-combat and twice a day for combat skills (early morning/late afternoon). The data I shared was typical for my characters so I knew how long it would take to get a character skilled but I was constantly underestimating the lockout (archery 40 failures at >30 minutes each fail achieved the same as 20 failures at > 60 minutes would have). But I never used wisdom as a dump stat so I don't have any comparisons with bad wisdom rolls. A big change that has occurred with combat skills is that when pc vs pc skillgains are calculated, they are higher when there is a big skill gap, and smaller when there is little skillgap. This is demonstrably not true with mobs, yet. Staff has been unclear if a large gap in effective scores, or a large gap in skill is required to get the better skillups.
|
|
|
Post by lechuck on Sept 19, 2018 11:46:10 GMT -5
Most skills go up guaranteed on failure, as long as your timer isn't in the way. One fail, one gain. Stuff like crafts, hide, hunt, steal, pick, scan etc. Pretty much everything non-combat will go up on the first fail, with a select few exceptions. The perception skills need something to check against, you can't fail hunt or scan if there are no tracks or hidden entities.
Sneak is a 5% chance to gain on fail. If you have high agility (and thus a high bonus to stealth), you can actually stop failing it before it maxes out, so you have to encumber yourself to get the last failures. I suspect that there has to be some living entity in the room in order for it to check for failure, but I'm not completely sure. It goes up by 1-2 points (random roll) at a time. You also need to be able to sneak properly in that environment--if you only have wilderness sneak, you can't raise sneak in cities, and vice versa.
if (!number(0,19) && SNEAK_OK(ch) && has_skill(ch, SKILL_SNEAK)) gain_skill(ch, SKILL_SNEAK, number(1, 2));
A number of other skills go up by more than one point, and can go up by random amounts:
case RIDE_CHECK_FAILURE: if (GET_GUILD(ch) == GUILD_MERCHANT) { gain_skill(ch, SKILL_RIDE, number(4, 6)); } else { gain_skill(ch, SKILL_RIDE, number(2, 4));
case RIDE_CHECK_SUCCESS_PARTIAL: if (GET_GUILD(ch) == GUILD_MERCHANT) { gain_skill(ch, SKILL_RIDE, number(2, 3)); } else { gain_skill(ch, SKILL_RIDE, number(1, 2));
gain_skill(ch, SKILL_BANDAGE, 4);
gain_skill(ch, SKILL_FLEE, number(1, 2));
gain_skill(ch, SKILL_ARMOR_REPAIR, number(1,3));
gain_skill(ch, SKILL_HIDE, number(1, 3));
gain_skill(ch, SKILL_POISON, 3);
A failure generated from a nosave setting prevents gain:
if ((has_skill(ch, SKILL_CLIMB)) && (!IS_SET(ch->specials.nosave, NOSAVE_CLIMB))) { gain_skill(ch, SKILL_CLIMB, 3);
Looks like crafting skills go up by two points on failure:
gain_skill(ch, make_item_list[recipe_index].skill, 2);
Skills can only be raised to a certain point against sparring dummies (and anyone asleep/unconscious/paralyzed):
if ((!AWAKE(victim) || is_paralyzed(victim)) if (get_skill_percentage(ch, SKILL_THROW) <= 40) gain_skill(ch, SKILL_THROW, 1);
if ((!AWAKE(tar_ch) || is_paralyzed(tar_ch)) if (has_skill(ch, SKILL_KICK) && ch->skills[SKILL_KICK]->learned <= 25) gain_skill(ch, SKILL_KICK, 1);
Weapon skills and dual-wield have a small chance to go up on failure (only dodge is a fail, not block/parry/bounce). The exact values aren't in the codedump, but my guess is about 5%. There were rumors at one point that staff changed it so that it can increase on parry/block, but there's no evidence of this and I don't think it's true. I have only ever seen these skills go up on a dodge. I think people simply misinterpreted the change that made it so the chance to increase goes up against more skilled PC opponents.
Certain combat skills have unique skillgain chances:
if (!number(0, 4)) gain_skill(ch, SKILL_KICK, 2);
if (!number(0, 4)) gain_skill(ch, SKILL_BASH, 2);
if (!number(0, 4)) gain_skill(ch, SKILL_TRAMPLE, 2);
if (!number(0, 1)) gain_skill(ch, SKILL_DISARM, 1);
Basically 1/5 for kick, bash and trample, but they go up by two points. 50% chance for disarm.
if (!(number(0, 3))) { if (GET_GUILD(ch) == GUILD_WARRIOR) gain_skill(ch, SKILL_GUARD, number(2, 3)); else gain_skill(ch, SKILL_GUARD, number(1, 2));
Backstab can't be raised against certain types of targets:
if (!is_paralyzed(tar_ch) && AWAKE(tar_ch) && get_char_size(tar_ch) > 4 && GET_RACE(tar_ch) != RACE_VESTRIC && GET_RACE(tar_ch) != RACE_QUIRRI && GET_RACE(tar_ch) != RACE_RODENT) gain_skill(ch, SKILL_BACKSTAB, 1);
You get bonuses to certain skills based on your character's starting location:
case CITY_ALLANAK: if (has_skill(ch, SKILL_STONECRAFTING)) gain_skill(ch, SKILL_STONECRAFTING, 10); if (has_skill(ch, SKILL_PARRY)) gain_skill(ch, SKILL_PARRY, 7); if (has_skill(ch, SKILL_DUAL_WIELD)) gain_skill(ch, SKILL_DUAL_WIELD, 7); if (has_skill(ch, PROF_SLASHING)) gain_skill(ch, PROF_SLASHING, 10);
case CITY_LABYRINTH: if (has_skill(ch, SKILL_STONECRAFTING)) gain_skill(ch, SKILL_STONECRAFTING, 10); if (has_skill(ch, SKILL_PARRY)) gain_skill(ch, SKILL_PARRY, 7); if (has_skill(ch, SKILL_DUAL_WIELD)) gain_skill(ch, SKILL_DUAL_WIELD, 7); if (has_skill(ch, PROF_SLASHING)) gain_skill(ch, PROF_SLASHING, 10);
case CITY_TULUK: (probably applies to Morin's now) if (has_skill(ch, SKILL_LUMBERJACKING)) gain_skill(ch, SKILL_LUMBERJACKING, 10); if (has_skill(ch, SKILL_SHIELD)) gain_skill(ch, SKILL_SHIELD, 15); if (has_skill(ch, PROF_CHOPPING)) gain_skill(ch, PROF_CHOPPING, 10);
case CITY_RS: if (has_skill(ch, SKILL_STONECRAFTING)) gain_skill(ch, SKILL_STONECRAFTING, 10); if (has_skill(ch, SKILL_PARRY)) gain_skill(ch, SKILL_PARRY, 7); if (has_skill(ch, SKILL_DUAL_WIELD)) gain_skill(ch, SKILL_DUAL_WIELD, 7); if (has_skill(ch, PROF_SLASHING)) gain_skill(ch, PROF_SLASHING, 10);
case CITY_LUIR: if (has_skill(ch, SKILL_LUMBERJACKING)) gain_skill(ch, SKILL_LUMBERJACKING, 10); if (has_skill(ch, SKILL_SHIELD)) gain_skill(ch, SKILL_SHIELD, 15); if (has_skill(ch, PROF_CHOPPING)) gain_skill(ch, PROF_CHOPPING, 10);
|
|
sneazy
Clueless newb
Posts: 115
|
Post by sneazy on Sept 19, 2018 11:56:04 GMT -5
A big change that has occurred with combat skills is that when pc vs pc skillgains are calculated, they are higher when there is a big skill gap, and smaller when there is little skillgap. This is demonstrably not true with mobs, yet. Staff has been unclear if a large gap in effective scores, or a large gap in skill is required to get the better skillups. That is a very cool change.
|
|
|
Post by shakes on Sept 21, 2018 19:21:15 GMT -5
Ok, on the base timer, I don't feel like this is very accurate. It's almost impossible for me to test without code running.
My standard approach is to wait an hour before attempting to tick up. I do that on everything, which is probably overkill.
That usually does the trick, even on chars with below average wisdom. At poor, on a dwarf, I try to wait 1.5 hours.
|
|