[閒聊] 關於破甲的成功率公式
airs=ppl->query("stat/air");
pp=ppl->query("pp");
tar_pp=ppl->query("pp_src");
hit=airs/100 + (pp*100)/tar_pp;
if(hit>95) hit=95;
// 失敗的情況
if(random(100)>hit)
{
show(ppl,target,HIR"\n$O"HIR"身形一閃,避開了$N"HIR"的攻擊!!\n"NOR);
// 反過來就是成功的情況即 if(hit>=random(100))
// 所以只要看這個就行,hit 越大,成功率越高
上面公式首先最明顯的問題在於
hit=airs/100 + (pp*100)/tar_pp;
^^^^^^^^^^^^^^^^
上面公式基本上恆為正,在這前提下,(pp*100)/tar_pp 的意思
就是你剩餘的 pp 佔你 pp最大值 的比例,比方你先灌滿 pp 藥
水後馬上擊出破甲,則 (pp*100)/tar_pp = 100 的意思。
在這情況下不管你的氣勁多少,hit 都是 100↑
這應該是一開始就寫錯了正常應該是
hit=( (airs/100) * pp) / tar_pp;
破甲不可能用「不管你的氣勁多少」這樣的公式去算成功率,相
反的它一定會看你的氣勁多少、甚至你與怪物的氣勁高低差異,
來判斷成功率,這才是合理的。而且該公式實際上也沒有考量到
你的pp值多少,它只算殘餘pp的比例而已。
因此,預告破甲的成功率計算式變更
1. 會看 你的氣勁值 與 怪物的氣勁值 差異來決定基本成功率
基本成功率 = (你的氣勁值-怪物的氣勁值)/100
2. pp殘餘值的影響方式變更
最終成功率 = (基本成功率 x pp殘餘值) / pp最大值
然後最終成功率會給上下限,也就是再怎樣成功率都有幾%,以
及最大成功率 95%。
再怎樣成功率都有幾%的部份,有三種做法
1. 定值,比方 10% 定值、15% 定值
2. 參考值,比方你的拳士公會級數(但這跟定值差不多,就是 25% 定值)
3. 複雜的參考值,比方把種族進化級數參考進去、把拳士之心參考進去、..
上述變更有兩個目的
一、合理化破甲的成功率計算公式
二、讓 wiz 能設計出不太會被破甲成功的怪物
有意見或建議可提出。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.33.120.231 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/mud_sanc/M.1730775266.A.869.html