perform的bug

回覆文章
kiggy
文章: 11
註冊時間: 2018-06-15, 23:46

perform的bug

文章 kiggy » 2018-06-15, 23:51

對手同名man時對第二個下
perform unarmed.handwriting man 2
就出現

執行時段錯誤: *call_other() couldn't find object
程式: /adm/simul_efun/message.c(/adm/obj/simul_efun.c):18
物件: /adm/obj/simul_efun
函數呼叫回溯:
command_hook() /feature/command.c:108
do_command() /feature/command.c:80
main() /cmds/std/perform.c:57
perform_action() /std/skill.c:118
perform() /daemon/class/scholar/six-fingers/handwriting.c:45
message_vision() /adm/simul_efun/message.c(/adm/obj/simul_efun.c):18

jrealm
系統管理員
文章: 1092
註冊時間: 2014-03-31, 23:10

Re: perform的bug

文章 jrealm » 2018-06-17, 23:07

根據 /std/skill.c
當 perform 的目標字串(在這個例子裡是 man 2)有空白時, 會直接將字串傳入 perform 函式
這似乎是要設定給特殊用途的 pf 使用的
但卻會造成一般 pf 不能指定數字

我先調整 /daemon/class/scholar/six-fingers/handwriting.c
但是這樣的做法有點笨, 只能治標, 不能治本
以後若還有其他 pf 也遇到這情形, 再煩請回報

回覆文章