mud_sanc 板


LINE

※ 引述《justinj (黑旋風)》之銘言: : 我只是想要問這個要怎麼用quest使用.. : 然後提議一下增加... : 1.提議腳本要增加的... : marco 巨集(因為到時還是要移資料夾..所以希望加這個) : marco= : MOB_NAME abcde : OBJ_NAME $HIR$ccc$NOR$ : ROOT /u/j/justinj/area2/dark/mob/ : ## 已加上,大抵上設定方式同 xxx.h 檔裡面的設定法, 即 macro= #define MOB_NAME "abcde" #define OBJ_NAME "$HIR$ccc$NOR$" #define ROOT "/u/j/justinj/area2/dark/mob/"## 目前用 /open/cmds/quest/n/n000 (即新手任務) 當測試。 > more n000.c :::::::::::::: /open/cmds/quest/n/n000.c :::::::::::::: #define OOXX "ooxx" #define ABCD "abcd" inherit "/open/cmds/quest/quest_d.c"; . . 你亦可建議是否有比 macro 更適合的參數名。 (我是認為 include= 或 define= 也不錯, macro 則 是比較業界的語法) : 類似這樣 : 2. : 就是目前要寫的任務過程像這樣 : step1:quest here : step2:quest A : step3:quest B : step4:quest here(滿足條件X) : step5:quest A(滿足條件Y) : step6:quest B(滿足條件Z) : step7:quest A(滿足條件W) : step8:quest B(滿足條件W) : step2,step3至少要執行一個(也就是說可以只執行3不執行2) 可以透過設定 nonseq 的方式模擬,在 nonseq 進行中 玩家的 quest data 會增加一個 quest_temp 的參數: > quest query laechan n000 quest: ({ "n000", 1, 0, "2011/10/02" }) ([ "3" : 0, "2" : 0, "4" : 0, "7" : 0, "6" : 0, "5" : 0 ]) 那麼適當的模擬做法,就是只要你「已經」找了它們裡 面的其中一個,就把 quest_temp 全部填滿,並把step 設成最後一個 7。 因此,我新增了一個 anyone=a-b## 的語法。這個語法 一定要跟 nonseq 並存,單獨存在時將不 work。 我用新手任務做測試 > quest effie about 新手任務 道具店老闆伊菲: 你好啊, 陌生人 你: 您好, 謬西先生叫我來跟您打聲招呼 ^_^ 道具店老闆伊菲: 啊, 是這樣啊, 你好, 我叫伊菲, 是這兒的老闆 道具店老闆伊菲: 我們店裡有賣許多道具, 有需要的話就常常來這光顧吧! > quest query laechan n000 quest: ({ "n000", 7, 0, "2011/10/02" }) ([ "3" : 1, "2" : 1, "4" : 1, "7" : 1, "6" : 1, "5" : 1 ]) 上面就可以實現 1.步驟 a-b 可任意決定順序 2.一旦選了其中一個,就視為全部都解 再透過 stepX_end 的設定,還可以額外設定玩家究竟 選了哪一個 stepX_end= ppl->set_temp("相關參數_X",1)## : 7,8是不分先後順序(當成一組) nonseq : 4~7是各路線(4路線,只要走一個其它路線就沒了) : 條件X = Y and Z : 那這樣要怎麼做 step4:quest here(滿足條件X) 用 step4_check 去做。如果條件 X 很複雜就自訂 step4_check 函數。 : step5:quest A(滿足條件Y) : step6:quest B(滿足條件Z) : step7:quest A(滿足條件W) : step8:quest B(滿足條件W) 通通可以用自訂函數就能解決。然後看滿足了什麼條件 ,透過額外的 ppl->set_temp 方式來支援亦可。 : (ps.雖然我打字打完想到一個方法..但還是po出去好了...) : 我想的那個方法還是不行 : quest A,quest B都要有反應才行... : step3後 : 一開始能 quest A,quest B : 只滿足Y 只能quest A : 只滿足Z 只能quest B : 滿足X(Y && Z) 只能quest here : 條件W是其中一項時不滿足X,Y,Z 你必須知道新的 quest 系統的撰寫用意就是「任務撰寫 的簡單化」,而不是「可以用它來寫出複雜的任務」。 原因是因為這類任務「非常少」,為了極少數這樣的任務 而去大幅度更改系統使之可以套用,是非常沒效率的做法 ,而且有產生 bug 的風險。 所以我建議,你將任務簡化到「至少自訂 stepX_xxx 函 數就可以搞定」的程度,不然,就依我之前那一篇所寫的 「任務設定原則」去做。 我不太想再動目前任務系統的主因,是因為添加了新東西 進去時「有可能造成不可預期的 bug」。加 anyone 進去 已經很危險了,但幸好我原先的程式寫法可以預期不會產 生新的 bug: // 原本就有的 if(quest_temp=quest_data_ob->query_quest_temp(t1,qstr)) { if(!undefinedp(quest_temp[""+s1])) quest_temp[""+s1]=1; // 底下起為本次增加的部份 // 它的增加條件就是一定要有 nonseq if(exp=(mixed)quest_ob->query_quest_anyone(t1,qstr)) { foreach(tmps in exp) { // 再用這個來限定 quest_temp 的修改範圍 if(s1>=(int)tmps[0] && s1<=(int)tmps[1]) { for(i=(int)tmps[0];i<=(int)tmps[1];i++) quest_temp[""+i]=1; quest_data_ob->set_quest_data(t1,qstr,i-1,tt,tmp); } } } } 趁現在 quest 還算穩,希望你在寫任務時可以轉個彎,把 原先 quest 系統無法做出來的東西,透過修改一下條件或 行進方式,再運用 nonseq, anyone, ... 等設計,來讓它 變得可行。 你可以使用數學系的想法,某複雜函數 2 f(x) = ax + bx + c 它可以使用兩個「簡單的東西」,再用 x 這個運算來合成 f(x) = (ax+b)(cx+d) <= 兩個一維的簡單東西一樣可組合出一個二維的複雜東西 這跟 random(10000) = random(100) x random(100) 的做 法是一樣的意思。 Laechan --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 42.77.33.195
1F:→ laechan :n000 的 anyone 我先留著, 過幾天再移除 12/17 21:24
※ 編輯: laechan 來自: 42.77.33.195 (12/17 21:34) ※ 編輯: laechan 來自: 42.77.33.195 (12/17 21:42)
2F:推 justinj :再來想想看.... 12/18 08:34
3F:推 justinj :不過我還是先將_quest.c,quest_d.c這兩個檔給分析完 12/18 08:37
4F:→ justinj :畢再來寫好了.... 12/18 08:37
5F:→ laechan :或是你將需求講的更詳細一點亦可 12/18 09:20







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