Re: [wizs] return spell 原始碼

看板mud_sanc (Sanctuary - 聖殿)作者 (小太保)時間13年前 (2012/10/03 11:37), 編輯推噓2(208)
留言10則, 2人參與, 最新討論串2/2 (看更多)
以下為 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

10/03 11:50, , 1F
我覺得玩家是因為另一個原因覺得沒改好...
10/03 11:50, 1F

10/03 11:50, , 2F
1.之前是按return時,只要"牧師"跟"隊長"不同格,就會
10/03 11:50, 2F

10/03 11:51, , 3F
全部傳送到"隊長"那邊....
10/03 11:51, 3F

10/03 11:51, , 4F
我剛試的結果也是這樣. 牧師=>施展者
10/03 11:51, 4F

10/03 11:52, , 5F
我跟 excel 有成功傳送到 hiei 所在的地方
10/03 11:52, 5F

10/03 11:53, , 6F
....全部是包括不跟"牧師"的同隊隊員...
10/03 11:53, 6F

10/03 11:53, , 7F
同格
10/03 11:53, 7F

10/03 11:54, , 8F
這個就不行喔
10/03 11:54, 8F

10/03 11:55, , 9F
(我猜是以前的寫法有寫錯)
10/03 11:55, 9F

10/03 11:55, , 10F
不然 Yanten 應該也不會建議那個功能了才對
10/03 11:55, 10F
文章代碼(AID): #1GQxBYHI (mud_sanc)
討論串 (同標題文章)
文章代碼(AID): #1GQxBYHI (mud_sanc)