看板 mud_sanc 關於我們 聯絡資訊
/open/cmds/quest/quest_d.c 修改quest相關的命令 (1)給虛擬物品 int give_vobj(object ppl,string id,int num); 例如:give_vobj(ppl,"j809",1) 註:我原本是合併到give_obj...最後這版把它抽出來 (2)給成就資料 int give_arch(object ppl,string str); 例如:give_arch(ppl,"p001-2") 註:目前只用來給地圖篇的 (3)quest show/shows改版---增加機率顯示 ================================================ 例如: v=give_arch(ppl,"p001-4") if(v){}// else if(random(10)==2)// give_arch(ppl,"p001-3") else if(random(99)<5)// give_obj(ppl,"/d/ppl/justinj/game/wp/pen",1) ================================================ 會轉成 ================================================ [10%]地圖-寰影上天(p003) [ 4%]黑潮判筆(Black Tide Judgement Pen) x 1 ================================================ 註:if的判斷只用基本的if(random(X)>/</=XX)這3方向單判斷 if的所有判斷寫在parse_random_if函數內 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.221.177.11 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/mud_sanc/M.1781596298.A.1AC.html
laechan : 留意carry, no_trade, no_sell(但有時可trade) 即可 06/17 16:58
laechan : 若if這樣的寫法,留意後者是前者的else之後,即假設 06/17 17:00
laechan : 前者是if(random(10)==2)那後者是if(random(10)!=2) 06/17 17:00
laechan : 之後,也就是它實際是 9/10 x 5/99 06/17 17:01
laechan : 改之前cp備份,備份多多益善,若發現改錯了不可逆,可 06/17 17:02
laechan : 第一時間反映,我再撈每日備份檔出來還原即可 06/17 17:02
justinj : 了解...而且這些的還好..純顯示問題而已 06/17 17:19
忘了補了.. (4)對話變更 因為隨機給物品,但stepX_end又比stepX_msg還要早運作, 所以必需要有訊息要後給的動作,簡單的作法就是把訊息放在stepX_msg 註:give_obj/give_vobj/give_arch的訊息放reward_msg字串上 方法: step1_msg= test "+reward_msg+" test3 ## step1_end= int v //清掉msg reward_msg="" //重置stepX_msg set_quest_data() ## 增加reward_msg(當然你可以用自己定的不要用內建的), 然後一定要set_quest_data()這樣stepX_msg才會重置 ※ 編輯: justinj (61.221.177.11 臺灣), 06/18/2026 08:43:24 因為j005跑step1,2後再對step1/2的NPC下quest命令一樣會跑step2的動作 所以修改下列方法 (a)因為/cmds/std/_quest.c的第821行判斷是 if(j==1) <------依我這例最好是這邊改成noneq的最小值-1(但我沒法子改此檔) 所以改在quest_d.c裡第372行..原本是return -steps; 在前面增加 if(steps<exp[0]) return -1;....就是值比較小的都回傳-1 ※ 編輯: justinj (61.221.177.11 臺灣), 06/22/2026 16:59:30