sneazy
Clueless newb
Posts: 115
|
Post by sneazy on May 24, 2018 10:35:20 GMT -5
Going through the code. It's very straightforward. Backstab is a one chance hit.
What I get out of it Best offense - have a very good etwo backstabbing weapon. And use it against someone subdued. Best defense - look at backstab_check to reduce chance of getting backstabbed look at armor code since it can reduce damage (no idea how much)
skill_backstab chance = backstab_check(ch, tar_ch);
if (number(1, 101) > chance) { <- chance determined that you miss. // can only gain on non-paralyzed, awake, humanoid creatures <- backstabbing rinth rats other than elves is a waste of time gain_skill(ch, SKILL_BACKSTAB, number(1, 3)); <- skillup 1, 2, or 3 points } else { YOU'VE BEEN BACKSTABBED dam = backstab_damage(ch, tar_ch, wielded, wpos); ws_damage(ch, tar_ch, dam, 0, 0, dam, SKILL_BACKSTAB, 0); <- dam calc is passed to ws_damage for mitigation checks } DONE
backstab_damage { dam = dice(...; <- how good is your weapon? 1d2+3 or 4d6+30 roll die I have no idea what these values are in-game. Grab your ad&d manuals dam = MAX(1, dam); <- at least 1 damage from that butter knife if (ch->skills[SKILL_BACKSTAB]) dam *= (2 + (ch->skills[SKILL_BACKSTAB]->learned / 7)); <- got backstab skill more damage example: 50 backstab skill then dam = dam * (2+50/7) = dam * (2+7) = dam * 9 else dam *= 2; <- someone without the skill could still get 2*damage if successful?
dam += str_app[GET_STR(ch)].todam; <- regular strength bonus added to dam
switch (wpos) { case ES: dam = MAX(1, (dam / 2)); <- es gets damage cut in half case ETWO: dam += number(3, MAX(str_app[GET_STR(ch)].todam, 4)); <- etwo gets another bonus case EP: <- no bonus/penalty } dam += race[(int) GET_RACE(ch)].attack->damplus; <- race bonus return dam; <- final damage number }
This again in combat.c ws_damage(ch, victim, hpdam = dam, manadam=0,mvdam=0,stundam = dam, SKILL_BACKSTAB, 0) { float phys_dam = 0, stun_dam = 0; float float_hpdam = (float) hpdam; <- hp and stun are same number coming in float float_stundam = (float) stundam;
/* subdued? */ if (IS_AFFECTED(victim, CHAR_AFF_SUBDUED)) { <- anyone ever tried to backstab someone subdued? /* if hitter is also subduer */ can't happen /* someone else is holding victim */ damage *4!! } at least 50 points damage to stun and hps if (IS_ATTACK(attacktype)) { backstab NO skip the offense, defense stuff }
phys_dam = float_hpdam; stun_dam = float_stundam;
/* reduce by armor before wtype/location */ <- armor mitigation looks like your only mitigation once you have been backstabbed
switch (attacktype) { default: <- backstab goes here stun_dam *= 100; break; } stun_dam /= 100; <- undo the above
skip the spell crap
phys_dam = MIN(phys_dam, 200); <- capped damage at 200 phys_dam = MAX(phys_dam, 0);
stun_dam = MIN(stun_dam, 200); stun_dam = MAX(stun_dam, 0);
if (IS_ATTACK(attacktype)) { NO } else { alive = generic_damage(victim, phys_dam, mana_dam, mv_dam, stun_dam); } /* end else !ATTACK_TYPE */ DONE
|
|
OT
Displaced Tuluki
Posts: 257
|
Post by OT on May 24, 2018 12:06:51 GMT -5
Well, that's pretty much what we already figured out. However, I know for a fact that backstab can go up from non-humanoid targets. It says elsewhere in the code that only rodents, vestrics and quirri are impossible to gain on. And anything with size 4 or less.
|
|
sneazy
Clueless newb
Posts: 115
|
Post by sneazy on May 24, 2018 13:12:58 GMT -5
// can only gain on non-paralyzed, awake, humanoid creatures 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)
Those variables are up to the builders. I don't know how you figure out the size from playing the game. get_char_size is in utility.c:
tmp = ch->player.weight + ch->player.height; tmp = tmp / 7.4;
It's a guess that the smallest Halfling would be 4 or larger (assuming all humanoids pass the above check). But a goudra? Gurth? Jozhal? I don't know. And even if it says "buzzard" in the desc they could have set it to RACE_VESTRIC.
Your guess is as good as mine on this stuff. Later all.
|
|
julio
Displaced Tuluki
Posts: 270
|
Post by julio on May 24, 2018 15:52:05 GMT -5
Level up BS on gith? I can't think of a single way to level it up on any other humanoid.
|
|
OT
Displaced Tuluki
Posts: 257
|
Post by OT on May 24, 2018 17:15:13 GMT -5
The 'rinth is a smorgesbord of safe backstab targets. You can do it in the southwest Red Storm alley as well, though not quite as safely.
In any case, I'm 100% certain that the skill can be raised on non-humanoid targets. That part of the codedump might just be outdated or incorrect, which is not an isolated incident--much of it is invalid and simply doesn't apply to the actual game. I can confirm that you can raise the skill on at least some animals.
Thanks for the effort, sneazy. It's more interesting to scrutinize the code we've worked with for years than to actually play the game these days.
|
|
julio
Displaced Tuluki
Posts: 270
|
Post by julio on May 24, 2018 22:48:19 GMT -5
The 'rinth is a smorgesbord of safe backstab targets. You can do it in the southwest Red Storm alley as well, though not quite as safely. In any case, I'm 100% certain that the skill can be raised on non-humanoid targets. That part of the codedump might just be outdated or incorrect, which is not an isolated incident--much of it is invalid and simply doesn't apply to the actual game. I can confirm that you can raise the skill on at least some animals. Thanks for the effort, sneazy. It's more interesting to scrutinize the code we've worked with for years than to actually play the game these days. I've raised it on animals in the tablelands until I stopped missing and graduated to gith. Then I was PKed by arrows on the north road by luirs. Delf.
|
|
julio
Displaced Tuluki
Posts: 270
|
Post by julio on May 24, 2018 22:50:34 GMT -5
Also, the rinth isn't safe at all for backstab practice. I can't figure out IC justifications for attacking rinthi NPCs at all.
|
|
sneazy
Clueless newb
Posts: 115
|
Post by sneazy on May 25, 2018 4:57:15 GMT -5
The rinth is the safest place to practice - if you're an elf, hate humans. Human, hate elves. Write in your background how your pc's grandmother was insulted by the other race and "by Grabthar's Hammer you shall be avenged".
There are 138 races listed in guilds.h. Many I've never seen. Code references a file called "races" that holds the weight/height. I don't have the game data. With that file you could figure out which ones you could backstab.
Good luck.
|
|
|
Post by Prime Minister Sinister on May 25, 2018 10:11:01 GMT -5
if you're looking for justification, could always try playing a rinther that murders NPCs in allanak for loot to sell at the market place thing eastside
practically asking for someone to stumble upon you and make your face known to the whole world tho
|
|
mehtastic
GDB Superstar
Armers Anonymous sponsor
Posts: 1,323
|
Post by mehtastic on May 25, 2018 10:32:21 GMT -5
Why worry about justification? Staff only care about whether they like you or not, not whether your RP is good. Just find out who Shalooonsh and Shabago are playing and mudsex their avatars. Then do whatever the fuck you want.
|
|
OT
Displaced Tuluki
Posts: 257
|
Post by OT on May 25, 2018 11:50:05 GMT -5
I've had characters that maxed backstab off rinth NPCs without so much as an offhand remark from staff, and I've had characters that got angry animations the second time I backstabbed something. It's just completely random and you simply have to hope for the best. Backstab is one of those skills that simply cannot be trained in a realistic manner unless you're content to wait six months before your assassin becomes useful.
I find it better to get it over with as quick as possible so I can go back to roleplaying my character in a more sensible manner, rather than drawing out the "unscrupulous mass-murderer" phase too much. I mean, you can choose to spend a week twinking hard or months twinking moderately, and I think the former is best for everyone. The end result is pretty much the same, and you'll be less of a nuisance to everyone.
If staff were smart, they'd code backstab to just be sneak attack as we know it from more modern games instead of this hamfisted skill that nobody is really comfortable with. Make it so that if you're hidden and attack somebody, you get a damage bonus. The skill itself would be passive, and would still be exclusive to the guilds that currently get it. I think that would be much more playable and realistic.
|
|
julio
Displaced Tuluki
Posts: 270
|
Post by julio on May 25, 2018 18:33:00 GMT -5
I feel inspired to play an assassin in a dying mud. Any advice?
|
|
OT
Displaced Tuluki
Posts: 257
|
Post by OT on May 25, 2018 19:44:33 GMT -5
Well, the game is in such a state that I wouldn't recommend it to anyone in good faith. But if you do want to play an assassin, the 'rinth is really the only place where it truly makes sense. Play a human or elf, both are fine, but elf players tend to be significantly worse on average so you might have to play with idiots if you pick that.
|
|
julio
Displaced Tuluki
Posts: 270
|
Post by julio on May 25, 2018 20:04:34 GMT -5
The throw skill, I recall is absolutely excellent.
|
|