作者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/cn.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