作者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