[wizs] 特殊影響部份修改

看板mud_sanc (Sanctuary - 聖殿)作者 (小太保)時間13年前 (2013/02/21 15:13), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
在 /std/user.c 的 check_time 函數裡有兩行是這麼寫的... if(data["special_effect"]) USER_D->special_effect(me); //偵測特殊效應 ex: sick,poison,傷口 etc. 將改成底下... if(temp_data["special_effect"]) USER_D->special_effect(me); 查看 user_d.c 的 special_effect 函數.. void special_effect(object me) { int time,interval,damage; string msg; if(!me) return ; if(me->query_temp("tmp_immortal")>time()) return ; interval=me->query("poison/interval"); damage=me->query("poison/damage"); time=me->query("poison/time"); msg=me->query("poison/msg"); if(!time) { write(HIC"你發覺毒性似乎消退了,身體也比較舒服了!\n"NOR); me->delete("poison"); return ; } if(msg) write(HIG+msg+"\n"+NOR); else write(HIR"你似乎中了一種無名之毒,頭暈目眩感覺好像快死掉了!\n"NOR); tell_room(environment(this_player()), me->query("chi_name")+"臉色突然變得很可怕>!\n",me); me->receive_damage(damage); time-=1; me->set("poison/time",time); } 這函數已經不符目前的需求,而且我並不喜歡它呼叫 user_d.c, 它將會改成呼叫 /std/new_ob 下的東西。 我的想法是,當玩家身上有參數在時,它就開始 work,虛擬效果 大致上有幾個元素.. 一、要 show 給玩家看的訊息 二、要執行的效果 三、還剩下幾次 四、如何提前終止它 按照「虛擬物品的實體物件」設計原則,每一種效果(包括毒物)都 會配置一個物件來做為呼叫目標,例如中毒呼叫 poison.c、沉睡 呼叫 sleep.c, ...... 按照此原則,需傳給物件的資料一般只需 me 即可。 這東西最快今天會有雛型出現。 Laechan -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.61.157.53

02/23 16:13, , 1F
/open/cmds/quest/quest_data/quest_data.c
02/23 16:13, 1F
文章代碼(AID): #1H9SZyRB (mud_sanc)
文章代碼(AID): #1H9SZyRB (mud_sanc)