[閒聊] 當你攜帶某個東西時你會常駐某個效果

看板mud_sanc (Sanctuary - 聖殿)作者 (揮淚斬馬雲)時間7年前 (2018/09/18 11:15), 7年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
我一直在想這東西要怎麼寫,sanc防具型態很多,所以很多時候 並不需要寫這個(比方把這個效果放在特定某個型態的防具即可) ,但有時可能還是會有用到的時候。 晚點我擬幾種可行的做法。 第一種是比較懶的做法,用 present 來做,給特殊的 id,然後 搭配 heart_beat 每分鐘去呼叫特定函數,然後允許玩家可以最 長 59 秒該物品消失時效果仍常駐,判斷的時間一到,發現該玩 家沒有該物品,該效果就消失。這時效果用 set_temp 是最直覺 的做法。 也就是說大部份時間是去讀玩家的 temp_data,每分鐘做的判斷 才去做 present。 第二種是將這些物品全部寫成虛擬物品,那判斷只要一行: if(user->query_vobjs("xxx")>0) 虛擬物品也具有方便控制玩家不能輕易丟棄、給人、販賣,但是 比方以受詛咒的某物為例,玩家身上帶有該物時 3p 減半,那怎 麼設定該效果的常駐?我認為最終還是會回到 set_temp 以及周 期性 check 的設定方式上。 第三種就是以 set_temp 及周期性 check 為出發點,然後再運用 times_check 原本就會週期性呼叫的做法,設定一個這類物品的 主控台,由它去執行對線上所有玩家「當他們持有某些物品時就 做哪些常駐效果」,這樣或許會比較好,但是其運作複雜度就會 跟以下的東西成正比: 1.線上玩家數量。 2.有多少種類的物品需執行這樣的判斷。 [編輯中] -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.117.106.224 ※ 文章網址: https://www.ptt.cc/bbs/mud_sanc/M.1537240507.A.FA3.html ※ 編輯: laechan (122.117.106.224), 09/18/2018 11:23:45
文章代碼(AID): #1Re6sx-Z (mud_sanc)
文章代碼(AID): #1Re6sx-Z (mud_sanc)