作者laechan (小太保)
看板mud_sanc
标题[wizs] 关於 (!) 做法
时间Sun Nov 13 17:44:41 2011
目前考虑写这个东西,但是依照现行 quest 的做法,
这个东西会很难写,所以我想新增一个公设。
> quest list
任务编号 任务名称 任务关键字
任务触发 npc/地点
───────────────────────────────────────
j/j002 (测)0 宝藏, treasure, 透抽的宝藏, 透抽
永恒守护人波罗卡特(Polocut)试着阻止无知人民前去送死。 /d/ppl/quest
/evil/npc/polocut
───────────────────────────────────────
以这个任务为例,接任务的 npc 设为 polocut,则
polocut 身上就新增 set("quest_num","j002");
则将来假设该任务编号变更,就顺手更新一下该任务
step1_npc 的 quest_num 参数即可。
这样做的好处就是可以让 questing 做底下判断
if(mob->query("quest_num"))
if(questing("check","玩家的id","怪物的quest_num",({"steps"}))<1)
该玩家没有解过这个任务;
底下是试做结果:
十字路口
这里是两条大路的交会点,往东你看到了不少商店,西边有家旅
店,北边是广场,往南一直看过去,可以看到翠绿的青山, 山上
还有条瀑布呢!往东走,那里则是有名的盗贼公会。
明显出口有: east, south, north, 和 west.
(!)Lv100.小贩(Vendor)
> quest vendor about oolong
小贩: 我好想喝乌龙茶(Oolong)啊啊啊~~~
再 look 一次
> look
十字路口
这里是两条大路的交会点,往东你看到了不少商店,西边有家旅
店,北边是广场,往南一直看过去,可以看到翠绿的青山, 山上
还有条瀑布呢!往东走,那里则是有名的盗贼公会。
明显出口有: east, south, north, 和 west.
100.小贩(Vendor)
相关程式段写在 /adm/daemons/look_d.c(备份档 20111113),
grep -n quest_num look_d.c 即可找到相关程式段,我目前采
用的写法如下
if(ob->query("quest_num"))
{
if(questing("check",me->query("name"),ob->query("quest_num"),({"steps"}))<1)
tmp3=HIM"(!)"NOR"Lv";
}
else
tmp3="Lv";
一、因为有设 quest_num 的 mob 很少所以采两个 if 写法。
二、把原先就会附加在怪物名称前面的 "Lv" 与该设定做一个
结合,可节省判断。
三、
(!) 基本上是仿 D2 做法,不这样做也可,例如改成
(quest) 会更明确一点。
四、目前依据 quest list 所列的部份,我先做了底下更动
领航员谬西(Musi)
└新增了 quest_num = n000 设定
商人-克拉福.罗伦斯(Kurahuto Rorensu)
└新增了 quest_num = n001 设定
改这类设定时因为必须同时更新 npc 所在的房间,因此
findmob 指令在这时就变得很好用
> findmob rorensu
> 搜寻中......
搜寻中......
ok! 找寻路径为
起点(Muse所在地)->west->west->west->north
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.117.7.33
1F:→ laechan :另外,若是测试用任务自然就不用设 quest_num,没有设 11/13 20:21
2F:→ laechan :这个参数玩家自然就不会看到(!)就不会误认该怪有任务 11/13 20:22