|
Post by lechuck on Apr 18, 2018 9:03:02 GMT -5
I was thinking about Defense gains and it's hard to get much verifiable information anywhere. Anyone know anything for certain? Please not stuff you just feel must be true, I've got enough of that myself.
There's a few common beliefs: - Defense raises better when you take big hits - Defense raises better from unarmed training - Rangers usually gain a lot of Defense due to not starting with Parry
The last one's interesting, because I did an experiment with my warrior. My goal was to find out if defensive skills interfere with eachother's gains. Since both Shield Use and Parry go up on the first fail, you can easily count your gains if you don't fight so often that you lose track of your timers.
So I kept track until I was one point short of hitting the next level of Parry, then I went fighting with weapon+shield. Got hit several times with the shield up and Parry didn't increase, but when I dropped the shield, the next hit I took increased my Parry. This strongly suggests that you don't gain Parry when holding a shield.
So seemingly there's a hierarchy of skill gains. If you don't gain Parry when Shield Use is "active", do you not gain Defense when one of the other two defensive skills are active? Like can you ONLY gain Defense if you're either unarmed or don't have the Parry skill while armed?
This would explain why rangers are said to end up with more Defense than warriors who start with Parry. By the time a ranger branches Parry, they've spent months fighting without any defensive skill "getting in the way" of Defense. On the other hand, since some warriors never take the time to train unarmed, does this mean they never gain defense? That sounds a little strange too. Are there long-lived warriors out there who have their starting base Defense level?
|
|
julio
Displaced Tuluki
Posts: 270
|
Post by julio on Apr 18, 2018 13:29:37 GMT -5
Parry goes into effect when you hold a weapon. Just because you hold a shield along with a weapon doesn't turn off parry.
I once had a highly skilled sergeant PC regularly lose brawls to rangers. It was frustrating. I had a corporal in the Wyverns be skilled enough to murder a sneaky guy who shadowed someone in compound and got himself trapped. The criminal died in 10 rounds using his weapons against a sparring sword, not landing a single hit.
The wyvern died following a boxing match which he lost to a ranger which happened in the sands after an argument. KO in just a few hits.
As far as I know, defense is extremely hard to train as a warrior.
|
|
mehtastic
GDB Superstar
Armers Anonymous sponsor
Posts: 1,306
Member is Online
|
Post by mehtastic on Apr 18, 2018 13:44:15 GMT -5
else if (!miss && GET_GUILD(victim)) { /* defense slow hack - hal */ percent = 4 * number(1, 1000); // loading your self down to fail won't let you gain percent += MAX(get_encumberance(victim) - 4, 0) * 10;
// prevent using riding as a quick-gain if (victim->specials.riding) { if (has_skill(victim, SKILL_RIDE)) // subtract riding skill - 50, or defense, whichever is less percent -= MIN(0, get_skill_percentage(victim, SKILL_RIDE) - 50); else // no riding skill, 50% penalty percent += 50; }
if ((percent <= guild[(int) GET_GUILD(victim)].def_kpc) && check_combat_gain_wait(victim, victim->abilities.def, victim->abilities.def_last_gain)) { /* increment the base ability, and current */ int oldsk = victim->abilities.def; victim->abilities.def += 1; victim->abilities.def_last_gain = time(0); victim->abilities.def = MIN(victim->abilities.def, 95); if (!IS_NPC(victim)) shhlogf("gain_skill: %s (%s) gained 1 points of skill in 'defense' (%d => %d)", MSTR(victim, name), victim->account, oldsk, victim->abilities.def);
victim->tmpabilities.def += 1; victim->tmpabilities.def_last_gain = time(0); victim->tmpabilities.def = MIN(victim->tmpabilities.def, 95); } }
In summary: you have a relatively small chance of gaining defense every time you are hit. It does not matter how hard you are hit.
The code I posted contains some trickery that will make it impossible to gain defense if you are encumbered at "heavy, but manageable" or above. It makes it harder to gain defense if you do not have the ride skill and you are mounted, or if your ride skill is under 50. The chance is higher for guilds with a higher "def_kpc" which I assume is higher for combatant guilds and lower for the other ones. Defense gain also works off of a skill timer like everything else.
Now the key is what being hit means. The game defines a miss as:
miss = ((float_hpdam == 0) && (float_stundam == 0) && (float_mvdam == 0) && (float_manadam == 0));
Which basically means damage has to be dealt by the attack to be considered a hit. Elsewhere in the code, it's clear that damage is only dealt in the instance that you fail to block with your shield and fail to parry. Shield use is checked first if you have a shield, then parry is checked next if you have a weapon.
So the best way to train defense is to get hit by someone or something with high offense. You'd want a lot of light blows to maximize your gain. Look for weak animals that will hit a lot or go unarmed against someone with a sparring dagger.
|
|
|
Post by lechuck on Apr 18, 2018 16:51:37 GMT -5
Parry goes into effect when you hold a weapon. Just because you hold a shield along with a weapon doesn't turn off parry. I once had a highly skilled sergeant PC regularly lose brawls to rangers. It was frustrating. I had a corporal in the Wyverns be skilled enough to murder a sneaky guy who shadowed someone in compound and got himself trapped. The criminal died in 10 rounds using his weapons against a sparring sword, not landing a single hit. The wyvern died following a boxing match which he lost to a ranger which happened in the sands after an argument. KO in just a few hits. As far as I know, defense is extremely hard to train as a warrior. Yeah, but it would appear that while Shield Use is an "active skill" (i.e. you're holding a shield and have the skill), your Parry won't increase. I know holding a shield doesn't disable parrying as a mechanic, but that's a different matter from skillgain calculations. I feel fairly confident that my experiment was accurate. I don't care a whole lot about the anecdotes, this is code discussion and I asked for verifiable evidence. Since it's a common observation that it's hard to train Defense as a warrior, I'd like to track down proof of the hypothesis that Defense only increases if the hit landed on you did not have to check against any other defensive skills, i.e. Parry and Shield Use. <buncha code>
In summary: you have a relatively small chance of gaining defense every time you are hit. It does not matter how hard you are hit. The code I posted contains some trickery that will make it impossible to gain defense if you are encumbered at "heavy, but manageable" or above. It makes it harder to gain defense if you do not have the ride skill and you are mounted, or if your ride skill is under 50. The chance is higher for guilds with a higher "def_kpc" which I assume is higher for combatant guilds and lower for the other ones. Defense gain also works off of a skill timer like everything else. Now the key is what being hit means. The game defines a miss as: miss = ((float_hpdam == 0) && (float_stundam == 0) && (float_mvdam == 0) && (float_manadam == 0)); Which basically means damage has to be dealt by the attack to be considered a hit. Elsewhere in the code, it's clear that damage is only dealt in the instance that you fail to block with your shield and fail to parry. Shield use is checked first if you have a shield, then parry is checked next if you have a weapon. So the best way to train defense is to get hit by someone or something with high offense. You'd want a lot of light blows to maximize your gain. Look for weak animals that will hit a lot or go unarmed against someone with a sparring dagger. My first question here is whether a hit that bounces off your armor counts as an actual hit when it comes to Defense gains. I suppose this depends on whether or not the float_xdam is obtained before or after armor calculations. Any further information on this?
|
|
|
Post by lechuck on Apr 18, 2018 16:58:38 GMT -5
I'm not looking for stories and anecdotal evidence, julio. This isn't the GDB, we can talk about how the game really works.
|
|
julio
Displaced Tuluki
Posts: 270
|
Post by julio on Apr 18, 2018 17:10:06 GMT -5
"I don't care a whole lot about the anecdotes, this is code discussion and I asked for verifiable evidence" And AGAIN "I'm not looking for stories and anecdotal evidence, julio. This isn't the GDB, we can talk about how the game really works." Anecdotes are part of the code discussion, loser. Without anecdotal experience we would not have context to try and understand the code you little fucker. One time I anecdotally kicked someone's ass for being rude. You want verifiable evidence? Meet me outside.
|
|
|
Post by lechuck on Apr 18, 2018 17:13:38 GMT -5
Give me 7 days of playtime and I can wreck any character you make, scrub.
But seriously, I'm not interested in what you once saw some guy do.
|
|
jkarr
GDB Superstar
Posts: 2,028
|
Post by jkarr on Apr 18, 2018 18:26:35 GMT -5
Yeah, but it would appear that while Shield Use is an "active skill" (i.e. you're holding a shield and have the skill), your Parry won't increase. I know holding a shield doesn't disable parrying as a mechanic, but that's a different matter from skillgain calculations. I feel fairly confident that my experiment was accurate. I don't care a whole lot about the anecdotes, this is code discussion and I asked for verifiable evidence. Since it's a common observation that it's hard to train Defense as a warrior, I'd like to track down proof of the hypothesis that Defense only increases if the hit landed on you did not have to check against any other defensive skills, i.e. Parry and Shield Use. well ur not going to get evidence but heres a fact: if their hit lands while ur wielding and shielding then all three have a chance to tick
|
|
|
Post by Prime Minister Sinister on Apr 18, 2018 21:36:06 GMT -5
Without anecdotal experience we would not have context to try and understand the code you little fucker. Except for those of us that grabbed the code while it was available. ;p
|
|
julio
Displaced Tuluki
Posts: 270
|
Post by julio on Apr 19, 2018 0:45:24 GMT -5
Give me 7 days of playtime and I can wreck any character you make, scrub. But seriously, I'm not interested in what you once saw some guy do. I can beat your 7 day with a mundane 2 day tavern squatter with minimal gear and no poisons.
|
|
|
Post by jcarter on Apr 19, 2018 6:31:40 GMT -5
Without anecdotal experience we would not have context to try and understand the code you little fucker. Except for those of us that grabbed the code while it was available. ;p the code can very easily be shared with anyone who asks for it.
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Apr 20, 2018 15:01:44 GMT -5
In the code, can you tell if its a standard skill timer to raise def, or a roughly 24 hour timer?
|
|