mud_sanc 板


LINE

任務系統大致寫到今天結束,有空我會補範例區域進去。今 天晚上還有一點時間則用來清理冗餘的 simul_efun,清完後 我要新增 quest 相關的全域函數,預定只新增一個,用這個 來做所有的事情。 星期三起則要寫新的東西,有空時則會繼續補完道具那篇, 以及撰寫零星的對話任務,用於... 1. learn skill from npc <= 以後你要 learn 就得先解任務 2. l mirror <= 你要先跟次元鏡管理人做朋友 3. join 公會 <= 公會老大:喂, 你以為我們什麼雜魚都收嗎 4. buy xx from 商店 <= 商店老闆:喂, 等等, 先報上名來 5. 進八卦, 血肉, ... <= 你以為說進就進喔 這些任務完全不需要玩家寫,當然玩家願意主動寫我們很歡迎 ,若是我寫,一開始都很簡單啦就是找些 npc 對話一下而已。 等以後有空再一個一個慢慢改複雜即可。 一、指令 quest 新增 quest check 腳本檔名 語法 假設 l003 的 step1_msg 我改成如下 stpe1_mgs $M: 我好想喝烏龍茶(Oolong)啊啊啊~~~ $N: 那給我錢啊我買來給你 $M: .......## $M: 我好想喝烏龍茶(Oolong)啊啊啊~~~ $M: 喂~別裝死啊!## 標紅色的部份就是腳本常錯之處,包括參數名錯誤、## 誤加等。 > quest check l003 ============================================= step1_npc=/d/map/lodoos/mob/vendor## stpe1_mgs $M: 我好想喝烏龍茶(Oolong)啊啊啊~~~ $N: 那給我錢啊我買來給你 $M: ....... ============================================= 沒有發現應存在的 = 號喔. 它會先抓出你有沒有漏加了 = 號,修正後.. > quest check l003 ============================================= step1_npc=/d/map/lodoos/mob/vendor## stpe1_mgs= $M: 我好想喝烏龍茶(Oolong)啊啊啊~~~ $N: 那給我錢啊我買來給你 $M: ....... ============================================= 這一段發現有問題喔. 你就會發現 stpe1_mgs 拼錯了。修正後 > quest check l003 ============================================= step1_msg= $M: 我好想喝烏龍茶(Oolong)啊啊啊~~~ $N: 那給我錢啊我買來給你 $M: .......## $M: 我好想喝烏龍茶(Oolong)啊啊啊~~~ $M: 喂~別裝死啊! ============================================= 沒有發現應存在的 = 號喔. 沒有等號同時也是可能漏加了參數的意思,如上,當 它看到 ## 時底下應該要設參數,卻沒設,所以這裡 的判斷就是「實際上你多加了 ## 才造成它的誤判」 把多出來的 ## 去掉後 > quest check l003 quest check: 腳本 l003 確認完畢,沒有發現問題. > quest read l003 quest read: 腳本 l003 更新及載入了. 有時會發生腳本有寫錯、但實際上卻可被 read 成功 的情況,然後在實際測試時才發現問題,以後 wiz便 可使用 check 做事先的檢查,特別是腳本檔龐大的情 況,check 就是一個很好的事前檢查工具。 二、任務腳本新增 others 參數 用法很簡單,在腳本的最底下類似這樣子寫.. others= int test_1() { write("test.\n"); return 1; }## 則當該腳本被 read 時,others 所接的東西就會一 字不變地寫進物件檔中,如下.. int test_1() { write("test.\n"); return 1; } 這是方便 wiz 在寫腳本檔時順便新增自己所需要的 函數用的。如果該函數只做為該腳本任務使用,就 以 others 的方式添增;如果該函數你覺得應該讓 全部的腳本都可以呼叫,就寫進 quest_d.c。 (當然實際上我不希望你經常去動 quest_d.c) 使用這個參數唯一要注意的當然是不要讓它宣告的 函數或全域變數,與已存在的宣告重覆。 三、任務腳本實裝 timeX_msg、timeX_end 參數 簡單的說 timeX 的 X 指的就是「第幾次完成任務 」的意思,例如說 vendor 的 oolong 任務.. steps=4## step4_end= give_obj(ppl,"/d/ppl/norr/special_obj/suicide_potion",1)## time2_end= give_obj(ppl,"/d/ppl/norr/special_obj/volcano_potion",1)## 上面的意思就是,一般的情況下,當你解完第 4 步驟後, 會得到 suicide_potion,但是當你第 2 次解完第 4 步驟 時,它就不會去呼叫 step4_end, 而改呼叫 time2_end, 意思就是「既然你是解完第 2 次我就呼叫 time2_end」的 意思。 這時得到的就不是 suicide_potion 而是 volcano_potion 而如果你還有加設 time2_msg,那麼 step4_msg 就會被 time2_msg 取代。 簡單的說,實裝這兩個參數的用意,就是為了設定,當玩家 解了該任務到特定次數時,就給予不同的報酬。 至於 timeX_check,因為它有問題(主要是判斷),最好別用 ,因為 stepX_check 遇到 timeX_check 會被無效化,造成 每一步驟的 check 都會是 timeX_check(這我當初沒想到)。 四、 --



※ 發信站: 批踢踢實業坊(ptt.cc)
※ 編輯: laechan 來自: 115.80.77.46 (10/11 14:52)
1F:推 justinj :用step4_endX...代表第n次解完後就換它了...amem 10/12 08:48
這也是可以,不過太遲了。(不想再動程式碼了) ※ 編輯: laechan 來自: 115.80.122.112 (10/12 09:18)







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燈, 水草

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

TOP