作者justinj (黑旋風)
看板mud_sanc
標題[wizs] quest命令
時間Tue Jun 16 15:51:35 2026
/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://webptt.com/m.aspx?n=bbs/mud_sanc/M.1781596298.A.1AC.html
1F:→ laechan : 留意carry, no_trade, no_sell(但有時可trade) 即可 06/17 16:58
2F:→ laechan : 若if這樣的寫法,留意後者是前者的else之後,即假設 06/17 17:00
3F:→ laechan : 前者是if(random(10)==2)那後者是if(random(10)!=2) 06/17 17:00
4F:→ laechan : 之後,也就是它實際是 9/10 x 5/99 06/17 17:01
5F:→ laechan : 改之前cp備份,備份多多益善,若發現改錯了不可逆,可 06/17 17:02
6F:→ laechan : 第一時間反映,我再撈每日備份檔出來還原即可 06/17 17:02
7F:→ 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