作者laechan (小太保)
看板mud_sanc
标题Re: [问题] about quest....
时间Mon Apr 22 15:57:52 2013
※ 引述《longhairpan (Steven)》之铭言:
: ※ 引述《laechan (小太保)》之铭言:
: : quest: 已删去 laechan 的编号 n000 任务的资料。
: : quest: 与 musi 有关的关键字有「newbie quest、新手任务」等。
: : 谬西领航员: 你好啊, 陌生人!
: : 你: 你好 ^_^
: : 谬西领航员: 俗话说, 『在家靠父母, 出外靠朋友』
: : .
: : .
: : 我试正常。
: 新手村我之前玩成功的, 有
: 1. quest musi about 新手任务
: 2. quest lodao about 冒险者
: 3. quest rorensu about 爱慕之情
: 这三个我後来开的角色都没反应....
: 如果 about 後面打错, npc 会一脸茫然看着我,
: 但 about 後面打的是对的的话, npc 什麽都没说, 再按一下 enter,
: 回到 > 的提示符号, 换我一脸茫然不知道下一步该怎麽走....
: 刚刚又开一次试, 还是不行...
: > quest musi about 新手任务
: > quest musi about newbie quest
: > quest musi about xxx
: quest: 谬西领航员一脸茫然地看着你.
> score l
第[1]级 男性石化人冒险者--测试员一号(Lachantest1)
你目前是单身,技能总数:0
你现在 3 岁,挪布币 0,你已经玩了:14秒
道德心地:0,战功声望:0,总财产:250
属性 : 感性(70) 力量(75+20) 敏捷(63+20) 气劲(67+20) 体质(77+20)
魔力(57+20) 理性(61+20)
生命力 : **************************************************○
护甲值 : **************************************************。
精神力 : **************************************************○
内 力 : **************************************************◎
经验值 : 0.000000%,第一属性:str,学习点数:3000。
> l
魁尔加镇广场
欢迎来到冒险旅程起点的魁尔加镇。你所在的位置是魁尔加
镇的广场,这里聚集着许多和你一样的冒险初新者,你可以在这
里找到志同道合的伙伴,并学习在这个世界冒险所需要的基本知
识和技巧。在广场的东方有训练冒险者技能的冒险者公会,以及
贩卖冒险所需装备的商店。北方是前往着名景点的寻湖小径。西
方石板路通往魁尔加森林。南方大道则连结乌索森林。
明显出口有: south, west, east, 和 north.
(圣洁光芒) 小太保(Laechan:进阶骑士)正站在这里。
情书(Lovemail)[断线中]正站在这里。
职业工读生(Maxchuang1)[断线中]正站在这里。
(!quest)Lv125.谬西领航员(Musi)
Lv250.『你可以跟我 adv 属性』小卤蛋(Lodao)
> quest musi about 新手任务
>
会出现这种情况代表它有出现执行上的 bug(runtime error),
而因为非 wiz 看不到该 error 所以你才会看到空白讯息。
(但你应该会感觉到它有顿一下才再出现 > )
我将 lachantest1 升为 wiz 後再试
> quest musi about 新手任务
t1=新手任务, qstr=n000, ({ })
执行时段错误: *Array index out of bounds.
程式: cmds/std/_quest.c:661
物件: /cmds/std/_quest
/std/user#1716804 "cmd_hook" std/user.c:137
/cmds/std/_quest "cmd_quest" cmds/std/_quest.c:661
tmps=(mixed)quest_data_ob->query_quest_data(t1,qstr);
if(tmps[3] && tmps[3]!="" && tmps[3]!=tmp)
{
write("quest: 这个任务有被重置过,因此取消你已解过该任务的所有纪录.\n");
quest_data_ob->set_quest_data(t1,qstr,0,0,tmp);
tmps=({t1,0,0,tmp});
}
我猜是 query_quest_data 有被 wiz 改过,以致於现在
当玩家尚未解过该任务时,取得的 quest_data = ({ })
这时自然要读 tmps[3] ( ({ }) 空集合不会有元素 3)
就会出现 bug。
上面改成底下的写法即可:
if(sizeof(tmps)>3)
{
if(tmps[3] && tmps[3]!="" && tmps[3]!=tmp)
{
write("quest: 这个任务有被重置过,因此取消你已解过该任务的所有纪录.\n");
quest_data_ob->set_quest_data(t1,qstr,0,0,tmp);
tmps=({t1,0,0,tmp});
}
}
bug fixed, 有问题可再回报。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.61.157.53
1F:推 longhairpan :解得真快....谢谢啦~~ 04/22 16:11
2F:→ laechan :这是运气好,有时把测试角色升为wiz也看不出哪有问题 04/22 16:17
3F:推 tawi :太强大了 04/22 17:55