作者laechan (小太保)
看板mud_sanc
標題Re: [問題] about enchant kr
時間Tue Jan 13 23:57:32 2015
這程式段寫在 /adm/daemons/mob_d.c 的 die 函數,所有沒有
自訂 die 函數的怪物,陣亡時都會呼叫該函數,並執行底下:
189: // Laechan@Sanc add in 2012/08/10 for 魔法武器
190: if(wp)
191: if((int)wp->enchant("kr")>99)
192: killer->full_3p(111);
我用 running code 去跑:
obs=users();
foreach(ob in obs)
{
if(ob=ob->query("weapon1"))
{
if(ob->enchant("kr"))
write(ob->enchant("kr")+"\n");
}
}
========== 程式執行區 ==========
1500
1500
1500
1500
1500
1500
700
1500
========== 程式執行區 ==========
所以上面 >99 的判斷是絕對會 init 到的。
> score l
第[120]級 男性妖精戰神司祭--摳頂機器(Laechan:進階牧師)
生命力 : 0% ※************************************************
精神力 : 0% ※************************************************
內 力 : 0% ※************************************************
> enchant kr laechan
你緩緩唸道: 萬物之根源,萬能之力的馬納啊!...
你所拿的黃銅之槍(Yellow-Cooper Lance)發出了魔法的光芒!
> call customer;die
遊客發出一聲慘叫!!
遊客慢慢的倒在地上死了...你得到 810點的經驗值。
你拿起外地來的遊客(Customer)身上所有的東西。
> score l
第[120]級 男性妖精戰神司祭--摳頂機器(Laechan:進階牧師)
生命力 : 100% **************************************************※
精神力 : 100% **************************************************※
內 力 : 100% **************************************************※
我實測是有喔。
我剛剛在上面的程式段加上了訊息,如果玩家 enchant kr,打死
怪物時現在會看到一行
enchant kr: 你的 hp/sp/pp 全滿了.
如果你有看到這行→那就是實際上你的 sp 有回滿 100%,只是不明原因
變成 92%。
如果你沒看到這行→那當然就不會補 3p,這時就看為什麼你不會看到這行。
laechan
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.61.157.53
※ 文章網址: https://webptt.com/m.aspx?n=bbs/mud_sanc/M.1421164655.A.30B.html
1F:推 longhairpan : enchant kr: 你的 hp/sp/pp 全滿了. 01/14 09:02
2F:→ longhairpan : 結果還是沒補滿....sp 51% 01/14 09:03
3F:→ longhairpan : 用 score 看數字是真的沒有滿.... 01/14 09:09
繼續 debug,針對 full_3p 的部份,凡有執行到這一行的話
它會顯示更多的細節訊息,你可以再試一下,要套用這項更新
必須 quit 過再登入:
> call customer;die
遊客發出一聲慘叫!!
遊客慢慢的倒在地上死了...enchant kr: 你的 hp/sp/pp 全滿了.
hp=4448179, hp_src=4448179
sp=754018, sp_src=754018
pp=455440, pp_src=455440
你得到 810點的經驗值。
你得到了(2)點學習點數。
你拿起外地來的遊客(Customer)身上所有的東西。
full_3p 執行的結果就是讓你的 Xp = Xp_src 值。
那一樣有兩種情況
如果你的執行結果 sp 不等於 sp_src,那代表 full_3p 判斷有問題。
如果你的執行結果 sp 等於 sp_src,那就是我先前提過的,可能存在
了其它因素使你的 sp 扣減。
這部份也需要你執行指令 a 以及 guild 的結果來判斷。
另外,指令 setdata prompt_show 可以看到快捷的 hp/sp/pp 趴數,
也可利用。
> setdata prompt_show
setdata: 你取消在 > 符號前面顯示hp/sp/pp比例.
> !
setdata prompt_show
setdata: 你設定在 > 符號前面加上hp/sp/pp比例顯示.
100% 100% 100% >
0% 0% 0% > call guard;die
高塔守衛發出一聲慘叫!!
高塔守衛慢慢的倒在地上死了...enchant kr: 你的 hp/sp/pp 全滿了.
hp=4448179, hp_src=4448179
sp=851167, sp_src=851167
pp=455440, pp_src=455440
你得到 6060點的經驗值。
你得到了(4)點學習點數。
你拿起高塔守衛(Guard)身上所有的東西。
怪物(guard /u/l/laechan/area/felid/mob/guard2)->
die() = 0
0% 0% 0% >
再按一次 enter
100% 100% 100% >
Laechan
※ 編輯: laechan (210.61.157.53), 01/14/2015 09:32:08
4F:推 longhairpan : quit 重登後, 一樣只看到enchant kr: 你的 hp/sp/pp 01/14 09:58
5F:→ longhairpan : 另外三行都沒看到 01/14 09:58
我剛試過了,full_3p 似乎對你沒效。
這是 bug,已修正,你可以 ask rewards.
Laechan
※ 編輯: laechan (210.61.157.53), 01/14/2015 10:55:31
6F:推 longhairpan : thisisabook 餅乾....謝謝 01/14 16:45
7F:→ laechan : ok, 感謝回報 bug 01/14 17:06
8F:→ longhairpan : 收到, thanks 01/14 17:30
9F:推 kevin82222 : 餅乾是啥!? 01/16 20:15
10F:→ zunino : 變性餅乾 01/17 06:54
11F:推 kevin82222 : 啊!有這東西!?那我也變女的好了 好像多幾個sk.. 01/17 21:17