Re: [wizs]死亡...
看板mud_sanc (Sanctuary - 聖殿)作者laechan (小太保)時間16年前 (2010/04/19 20:56)推噓0(0推 0噓 0→)留言0則, 0人參與討論串4/4 (看更多)
※ 引述《justinj (闇冥)》之銘言:
: → laechan :把 die 函數獨立出來,增加所在房間支援就行了 04/19 18:28
: → justinj :....有點不懂意思.. 04/19 19:25
玩家陣亡時會由怪物為呼叫主體(previous_object),
驅使玩家呼叫 die 函數
怪物 叫 玩家->die();
die 函數的主體寫在 /adm/daemons/user_d.c,我的
意思就是弄一個 die_d.c,獨立出來。
這樣玩家 die 時就不用 USER_D->die(me) 而會變成
DIE_D->die(me);
以前獨立出來的做法(如 shut_d.c)是要做為玩家與怪
物共通呼叫之用,但是如果 die 要複雜化的話,獨立
出來也會比較妥當一點。
至於「增加房間支援」的意思就是在 die 函數裡新增
一行..
if(env=environment(me) &&
function_exists(env,"die"))
env->die(me,previous_object());
也就是說,把被殺的玩家(me)及殺他的人(previous_object)
都傳進 env 的 die 函數裡頭,由 env 的 die 判斷。
它的唯一缺點就是如果 environment 是生物,就會產
生問題,它的優點是 die 函數符合直覺化設定。
所以折衷的方法是定兩種 env 的 die 函數..
一、env_die()
二、die_func() (取 wear_func 的方式)
我是覺得 env_die 不錯,蠻好記的。
它的效果之一,就是若房間有 env_die 函數,它就可
以產生 justinj 所要的「截斷效果」,比方 die 函數
最早的判斷就是「爆不爆水晶」,env_die 比它更早而
且會截斷,這時 justinj 就可以設定房間自訂玩家的
陣亡。
它的設置有前提,因為玩家會 die 通常就是 hp<1 了
,因此你若截斷原先的 die,卻沒有做適當處理的話,
就會一直做 env->env_die() 的呼叫,「移往別處」是
適當的處理方式「之一」,其它方式適不適當就以上面
的考量為主。
env_die 我明天會先實裝,實裝完會公告,wiz 可以在
4002 測試。若情況允許,3001 也會同時實裝。
Laechan
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.253.173.252
討論串 (同標題文章)
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
5
12
10
18