作者laechan (小太保)
看板mud_sanc
标题Re: [wizs] return spell 原始码
时间Wed Oct 3 11:37:03 2012
以下为 debug。
※ 引述《laechan (小太保)》之铭言:
: // 状况 2. leader 不在此地, 将房间所有的队员归还到队长所在之处
: msg=base_name(env2);
: foreach(leader in party)
: {
: if(leader && environment(leader) && environment(leader)==env)
: if(!leader->query("record_data/newbie_check")) // 去除新手
: {
: tell_object(leader,HIW"自地面出现了光之魔法阵,将你传送至远方。\n"NOR);
: leader->move_player(msg,"SNEAK");
: tell_object(leader,"你藉着归还术的力量,来到了这个地方。\n");
: }
: }
: ppl->set_temp("time_record/returning",time()+NEXT_RETURN_TIMES);
: return 1;
: }
> l
[/u/l/laechan/workroom ]
= 天上界 =
明显出口有: 无
Excel:拳士 [队员]飞影pp骑士团
> cast return
(wiz) sp cost:1790
你缓缓念着:神圣的光芒啊..回应我的祈祷,带领吾人离开此地吧!
一道柔和的白色光柱洒落此地,准备带走你们...
你开始念起古老的咒文: ~ 30 ~ ~ ~ 归还术 ~
自地面出现了光之魔法阵,将你传送至远方。
你藉着归还术的力量,来到了这个地方。
[/u/l/laechan/area/felid/room/068-塔顶 ]
== 西风之塔-塔顶 ==
明显出口有: down 和 climb.
Excel:拳士 [队员]飞影pp骑士团
Hiei:骑士 [队长]飞影pp骑士团
>
这个是没问题的。当与队长同在一个房间时则是回到 recall
处。
> cast return
(wiz) sp cost:1790
你缓缓念着:神圣的光芒啊..回应我的祈祷,带领吾人离开此地吧!
一道柔和的白色光柱洒落此地,准备带走你们...
你开始念起古老的咒文: ~ 30 ~ ~ ~ 归还术 ~
> 自地面出现了光之魔法阵,将你传送至远方。
[/d/wiz/room/disc ]
巨型高塔
明显出口有: up, down, north, bet, east, west, 和 south.
Lv250.『你可以跟我 adv 属性』小卤蛋(Lodao)
你藉着归还术的力量,来到了这个地方。
那我猜 bug 是发生在一段 return notify_fail 的地方,如下..
// party 包含队长自己
party=(mixed)find_object_or_load(PARTY_D)->query_members(leader);
num=PARTY_D->party_number(ppl);
if( num < 0 || !party)
return notify_fail(HIR"你的队伍里面没有半个人唷!\n"NOR);
因为这个函数叫 start_return 而不是 start_effect,後者
在 _cast.c 程式里面是使用 return start_effect 或者是
return call_other("/d/spell/return","start_effect",..
的型式,但是 start_return 却不是这种做法。
在这情况下 return notify_fail 的讯息就无法被玩家接收到
,亦即「传送会失败,但玩家却看不到失败原因」。
那印象中我并没有「不允许」玩家自组队的情况下使用return
,我记得的是单人组队时视同自己跟队长同一房间,这时使用
归还术就会回到 recall 处,符合 return spell 的设计原则
因此上面的 if 就暂时改成..
if( num < 0 || !party)
write("HIR"你的队伍里面没有半个人唷!\n"NOR);
若之前传送失败的玩家可再自行嚐试看看,若你有看到上面的
讯息就代表之前就是这一段将你的 return spell 限制住。
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.61.157.53
1F:推 justinj :我觉得玩家是因为另一个原因觉得没改好... 10/03 11:50
2F:→ justinj :1.之前是按return时,只要"牧师"跟"队长"不同格,就会 10/03 11:50
3F:→ justinj :全部传送到"队长"那边.... 10/03 11:51
4F:→ laechan :我刚试的结果也是这样. 牧师=>施展者 10/03 11:51
5F:→ laechan :我跟 excel 有成功传送到 hiei 所在的地方 10/03 11:52
6F:推 justinj :....全部是包括不跟"牧师"的同队队员... 10/03 11:53
7F:→ justinj : 同格 10/03 11:53
8F:→ laechan :这个就不行喔 10/03 11:54
9F:→ laechan :(我猜是以前的写法有写错) 10/03 11:55
10F:→ laechan :不然 Yanten 应该也不会建议那个功能了才对 10/03 11:55