|
Post by zekk on Nov 9, 2008 13:27:02 GMT -5
As a Kobold shadow stalker with shadow cloak at level 7, my stealth goes up from 46 to 127 when cloaked. I can tell you that's more than a 70% bonus right there, almost triple my stealth score. maybe the bonus is then affected by race/class bonuses?
|
|
|
Post by Variaz on Nov 9, 2008 13:48:42 GMT -5
It does use the total skill value to base the bonus on, not just the base value, so bonus from race would apply.
Is 46 just your base skill, or does that includes the race bonus?
|
|
|
Post by zekk on Nov 9, 2008 13:53:41 GMT -5
46 is what is listed under my Character skills page on the C menu, so I think it includes the race bonuses. Okay, this is starting to get weird. I use shadow cloak. 46 > 127 stealth. take 1 turn, and the stealth jumps up to 151 until I lose my invisibility. I've also had 134 stealth at times. no clue how that happened. ...yeah, I'm clueless.
|
|
|
Post by Variaz on Nov 9, 2008 13:59:15 GMT -5
Now that I think about it, it probably should NOT use the total skill value. Yeah...that would cause it to keep increasing over and over!! That's what's happening. Thanks for pointing it out!
|
|
|
Post by zekk on Nov 9, 2008 14:00:32 GMT -5
You sure? it caps at 151.
|
|
|
Post by Variaz on Nov 9, 2008 14:04:57 GMT -5
I'll have to test it out.
|
|
|
Post by zekk on Nov 9, 2008 14:57:26 GMT -5
I BLEW UP THE GAME! So, yeah. 60 stealth, 10 shadow cloak. when I turn invisible, it jumps up to 600. Then, I hold down the 5 key while on the skills page and watch my stealth score slowly go up into the thousands. Then it went into the negatives. tried to take a step. errored, and portralis closes. try it again. starts at 2880 stealth and goes up 60 more every time I press a button on the skill screen. at around 22000 I exited the menu and tried to take a step again. portralis.exe has encountered a problem and needs to close. so It dies when I try to move with negative stealth. tried it again, and I just held a button on the skill screen and watch stealth go up, jumps to -32700 something at around 32700 something. Eventually stealth goes positive and it starts over again. Game crashes every time I try to do something with negative stealth. The game cannot handle my characters stealth powerz.
...I think the stealth was supposed to cap at 60000, but the game can't get that high.I think the whole thing can probably be solved by having it multiply your base stealth.
|
|
|
Post by Variaz on Nov 9, 2008 19:10:58 GMT -5
Indeed, that was the problem. I've switched it to the base stealth, and it works now.
To fix, look for this in passive.lua:
-- Shadow Stalker's Shadow Cloak and One with Shadows! if (p_ptr.tim_invisible > 0) then
if (p_ptr.abilities[(CLASS_SHADOW * 10) + 3] >= 1) then
local stealthbonus stealthbonus = multiply_divide(p_ptr.skill[7], p_ptr.abilities[(CLASS_SHADOW * 10) + 3] * 10, 100)
p_ptr.skill_bonus[7] = p_ptr.skill_bonus[7] + stealthbonus end
if (p_ptr.abilities[(CLASS_SHADOW * 10) + 8] >= 1) then
local statbonus statbonus = p_ptr.skill[7] / 4 statbonus = statbonus + (statbonus * ((p_ptr.abilities[(CLASS_SHADOW * 10) + 8] * 10) / 100)) p_ptr.skill_bonus[6] = p_ptr.skill_bonus[6] + statbonus end end
And replace by this:
-- Shadow Stalker's Shadow Cloak and One with Shadows! if (p_ptr.tim_invisible > 0) then
if (p_ptr.abilities[(CLASS_SHADOW * 10) + 3] >= 1) then
local stealthbonus stealthbonus = multiply_divide(p_ptr.skill_base[7], p_ptr.abilities[(CLASS_SHADOW * 10) + 3] * 10, 100)
p_ptr.skill_bonus[7] = p_ptr.skill_bonus[7] + stealthbonus end
if (p_ptr.abilities[(CLASS_SHADOW * 10) + 8] >= 1) then
local statbonus statbonus = p_ptr.skill[7] / 4 statbonus = statbonus + (statbonus * ((p_ptr.abilities[(CLASS_SHADOW * 10) + 8] * 10) / 100)) p_ptr.skill_bonus[6] = p_ptr.skill_bonus[6] + statbonus end end
|
|
|
Post by Frumple on Nov 10, 2008 3:02:32 GMT -5
A general report -- I'm still getting the occasional hang or crash when generating the last floor of random dungeons. It's not consistant or horrifically common, or I'd have a save or something to offer, but it does occur more often than is comfortable.
When the game hangs (Goes 'not responding', eats up freakish amounts of CPU, has to be closed or ended), upon reloading it takes you to the previous save. On the other hand (and this seems to be shared by other straight CTD events), if the program actually crashes, it's treated as a death upon reload. Mayhap's it's possible to make a default auto-save-before-last-floor option, at least untill whatever's causing this is tracked down?
|
|
|
Post by Variaz on Nov 10, 2008 7:29:59 GMT -5
I do get an occasional crash as well, though I took the habit of saving right before going down... It's probably something with the quest generation code, I bet there are times where it may overflow(or underflow) or something...
|
|
khan
Veteran
Posts: 81
|
Post by khan on Nov 13, 2008 6:01:47 GMT -5
The Defender's Armoured Spellcastering does not seem to work correctly. The problem seems to be in this section of passive.lua: -- Check the mana loss percentage... if (p_ptr.abilities[(CLASS_DEFENDER * 10) + 10] <= 10) then
if (cur_wgt > 100) then cur_wgt = 100 end if (cur_wgt < 0) then cur_wgt = 0 end
cur_wgt = cur_wgt - multiply_divide(cur_wgt, p_ptr.abilities[(CLASS_DEFENDER * 10) + 10] * 10, 100)
-- Reduce mana by percentile amount. msp = msp - multiply_divide(msp, cur_wgt, 100) else local manabonus if (cur_wgt < 0) then cur_wgt = 0 end
manabonus = multiply_divide(cur_wgt, (p_ptr.abilities[(CLASS_DEFENDER * 10) + 10] - 10) * 10, 100)
msp = msp + multiply_divide(msp, manabonus, 100) end
-- Wearing gloves is especially bad. if (inven(INVEN_HANDS).k_idx > 0 and not(get_object_flag2(inven(INVEN_HANDS), TR2_FREE_ACT) or p_ptr.abilities[(CLASS_DEFENDER * 10) + 10] >= 10)) then msp = (msp / 2) end
I think all references in here to p_ptr.abilities[(CLASS_DEFENDER * 10) + 10] should be changed to p_ptr.abilities[(CLASS_DEFENDER * 10) + 2].
I imagine you have changed the order of the Defenders Abilities at some point and not changed it here.
|
|
khan
Veteran
Posts: 81
|
Post by khan on Nov 13, 2008 8:17:01 GMT -5
I've also think the Rods aren't working correctly (I seem to remember someone else posting about this). When wielding rods, but not duel wielding you still get two zaps. Try replacing the zap_rod function with: -- The code for Rods zapping! function zap_rod () local dir local dam local i local j -- First, let's check if the player is wearing a rod -- Any rods in any hands will do. if (not(inven(INVEN_WIELD).tval == TV_ROD) and not(inven(INVEN_WIELD + 1).tval == TV_ROD)) then msg_print("You must wield a rod.") return else --Now, check for a crystal */ if (not(inven(INVEN_TOOL).tval == TV_CRYSTAL)) then msg_print("You must be using a crystal!") return else local r if (inven(INVEN_WIELD).tval == TV_ROD and inven(INVEN_WIELD + 1).tval == TV_ROD) then i = 0 j = 1 elseif (inven(INVEN_WIELD).tval == TV_ROD) then i = 0 j = 0 else i = 1 j = 1 end for r = i, j do -- Is the crystal charged? if (inven(INVEN_TOOL).pval <= 0) then msg_print("This crystal has no charges left.") return else local bonus local rodbonus rodbonus = damroll(inven(INVEN_WIELD + r).dd, inven(INVEN_WIELD + r).ds) rodbonus = rodbonus + multiply_divide(rodbonus, p_ptr.skill[18] * 3, 100) bonus = (p_ptr.skill[18] * 20) + (p_ptr.skill[2] * 10) dam = (inven(INVEN_TOOL).branddam + rodbonus) * (p_ptr.skill[18] + 1) dam = dam + multiply_divide(dam, bonus, 100) dam = dam + multiply_divide(dam, p_ptr.to_s, 100) dir = lua_get_aim_dir() ignore_spellcraft = TRUE fire_ball(inven(INVEN_TOOL).brandtype, dir, dam, inven(INVEN_TOOL).brandrad) ignore_spellcraft = FALSE if (p_ptr.skill[18] < 15) then inven(INVEN_TOOL).pval = inven(INVEN_TOOL).pval - 1 end update_and_handle() energy_use = 100 end end end end end Hope that works
|
|
|
Post by Variaz on Nov 15, 2008 23:01:43 GMT -5
Seems like your fix worked. Thanks a lot!
|
|