mud_sanc 板


LINE

嘛,明後天解析這個東西,用跟以前不同的方法。未來有一個重要 的東西要做,就是 quest 內有 instance、instance 內有 quest, 但是這兩個東西我都遺忘了重要的部份: quest: 與搜集物品及打怪有關的部份(當初寫給 norr 的) 這部份我看能不能透過法師進階轉職任務去找到蛛絲馬跡 instance: 全部忘得一乾二淨, haha...... quest 先不管(反正到時可以寫外掛硬幹),instance 必須先找回過 去的 coding 記憶。 第一部份 全部(或大部份)重要的函數及變數列表 static mixed instance_files=({}); static mapping instance_comm=([]); static mapping instance_data=([]); static mapping instance_mobs=([]); static mapping instance_mob_datas=([]); static mapping instance_npcs=([]); static mapping ppl_instance=([]); static string instance_names,instance_paths; static string instance_ob,instance_author, instance_virtual,instance_map2data, instance_id1,instance_id2; static int instance_multi,instance_cd_times; int map2data(string tmap); int instance_set(object room,mixed tmps); int instance_del(object room,mixed tmps); varargs mixed instance_data(string str1,string str2); varargs void instance_channel(object room,int k,string str); varargs int create_instance(string ppl_name,mixed usr,string diff,string mode); varargs int birth_npcs(object room,string npc_files,string tmp); varargs int birth_mobs(object room,mixed tmps,string names,int lv,string diff); varargs int init_instance(object room,object ppl); mixed random_map(int Width,int High,int p); int instance_set(object room,mixed tmps); int instance_del(object room,mixed tmps); object find_npc(object room,mixed tmps); 第二部份 回想與猜想 01、理論上這東西是「每一個副本控制物件」的繼承檔,而它有 create_instance 代表玩家「進副本時」就是呼叫控制物件 去產生對應的副本區域,一個玩家同一時間只能在同一副本 產生一個副本區域,所以產生的副本區域一定被儲存在某處 ,推測是 /std/new_ob/instance_rooms.c (不是這次重點) 02、在 create_instance 內,ppl_name 一般是 this_player() ,mixed usr 是包含 ppl 在內的全部玩家(例如同隊玩家), diff 是難度字串,mode 是 single/非single 字串。 03、依這種寫法,任務內要使用到副本的話,就一定要寫相對應 的副本控制物件,這部份避無可避;副本控制物件寫好後, 自然就可 create_instance,this_player() 呼叫該函數後 就會產生副本區域「同時」自己也會被 move 進副本區域內 04、instance_ob 的大部份東西不用看了,create_instance 會 用就行了。 05、大抵上,仍是採借用現存區域房間的做法較方便,但要使用 虛擬房間也可以: laechan/001.c : 實體房間範例 laechan/002.c : 虛擬房間範例 laechan/003.c : 借用實體房間但地圖路線自訂的範例 laechan/004.c : 多層式副本(類似幻想神域某一類型區域) 06、理論上,若在 quest 的某步驟呼叫 create_instance 的話 ,在呼叫的同時會視為玩家已完成該步驟,這時玩家若在副 本內 recall 或 quit 的話,再回到任務觸發處試圖再接該 任務時就會無法接(因為該步驟已完成)。 所以最好還是別這樣寫。 另一方面,則最好在玩家「闖過」該副本後,直接設定玩家 已闖過該任務某一步驟的標記,讓玩家得以繼續解該任務, 是比較合理的做法。實務上,stepX_npc 可設定為玩家絕對 無法抵達的房間,玩家自然無法 quest here about xxx 去 完成該步驟─只有「闖過」副本,系統才會標記玩家已解完 該步驟。 實驗主要針對的是這個部份,第 n 步驟會提示玩家去哪裡下 instance -enter,我會找現存副本來測,並修改最後一格的 判斷: 1.沒有相關任務標記的玩家: 照原本的副本流程結束 2.有著相關任務標記的玩家: 會跑不同的流程 闖過後會設定任務標記 然後再測試被設定完任務標記的玩家,能否繼續接任務 (我可能會修改 _quest.c 為 stepX_npc 增加第三種型態, 這個主要用在 quest show 及 quest shows 上面) 第三部份 實驗 暫定明天再做,任務步驟大概 4 個差不多,副本隨便找一個簡單 的來改。 (編輯中) --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.46.142.104
※ 文章網址: https://webptt.com/m.aspx?n=bbs/mud_sanc/M.1503067685.A.80C.html ※ 編輯: laechan (111.253.175.38), 08/19/2017 20:37:46







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP