Re: [閒聊] 新增紀錄之石(Record Stone)
看板mud_sanc (Sanctuary - 聖殿)作者laechan (揮淚斬馬雲)時間8年前 (2017/05/03 07:59)推噓0(0推 0噓 2→)留言2則, 1人參與討論串2/2 (看更多)
※ 引述《hlead (希多)》之銘言:
: 新增下列物件(可在羅德斯及罪惡城道具店購買):
: --------------------------------------------------------
: 紀錄之石(Record Stone)
: --------------------------------------------------------
: 單位:顆
: 重量:20
: 價格:168168
: 掉落:無
: 據說是從遠古時代流傳至今的一顆神秘石頭,裡面蘊藏著強大的
: 魔力,可以將人物目前所在地的時空資訊紀錄在人物的身上。
: 使用方法:use stone。
: --------------------------------------------------------
: 功用:
: 可在罪惡城的神之廣場及羅德斯的巨型高塔使用。
: 使用後 recall 處會變更,以後 recall 都會到該地點。
: 上述兩個房間新增參數:
: set("recall_location","lodoos"); // 配合紀錄之石(Record Stone)使用。
: 指令 recall 變更:
: else // 新增 record_data/recall_location 判斷。 Norr in 106/05/02
: {
: string reLocal = me->query("record_data/recall_location");
: if(reLocal == "sin_city")
: me->move_player("/d/ppl/norr/sin_city/room/192","SNEAK");
: else if(reLocal == "lodoos")
: me->move_player("/d/wiz/room/disc","SNEAK");
: else
: me->move_player("/d/wiz/room/disc","SNEAK");
: }
補充一下 ob use 的部份(指令 /cmds/std/_ob.c)
else if(sscanf(str,"use %s",tmp)==1)
{
vobjs=me->query_vobjs();
tmps=keys(vobjs);
tmps=sort_array(tmps,(: sort_vobjs :));
x=atoi(tmp);
if(x>0)
{
y=sizeof(tmps);
if(y<1)
return notify_fail("你的物品欄一個東西也沒有。\n");
if(x>y)
return notify_fail("你的物品欄沒有第 "+x+" 件物品喔.\n");
tmp=tmps[x-1];
tmps=questing("vobjs","replace","mton",({tmp}));
tmp=tmps[0];
}
//tmp這時變為該物品的"名字"
// ({"mark","name","unit","kind","value","carry","sell","trade","desc"})
tmps2=questing("vobjs","query_array",tmp);
//tmps2這時變為該物品的陣列資料, 例如 tmps2[0]就是其編號
if(sizeof(tmps2)<8)
return notify_fail("沒有"+tmp+"這個東西喔。\n");
if(!vobjs[tmps2[0]])
return notify_fail("你沒有"+tmp+"這個東西喔。\n");
//當desc被設定為 檔名型式 時 如 /std/new_ob/s/s001
if(tmps2[8][0..0]=="/")
{
tmps2[8]=substr(tmps2[8],"\n","");
env=find_object_or_load(tmps2[8]);
// Laechan@Sanc add in 2013/09/13
// 不想動舊有的 ob_use_func 所以新增一個, 兩者共存時
// 會以 use_func 為主, 並把需要的所有資訊全部傳過去
//如果該指向的檔名,其物件檔案內有 use_func 函數時
//玩家下 ob use 該物品編號或名字 時,就會呼叫該函數
if(function_exists("use_func",env))
{
me->vobjs("add",tmps2[0],-1);
//預設使用後該物品數量會 -1
env->use_func(me,environment(me),tmps2);
//並無條件 return 1(即支援 move、move_player 函數的呼叫)
return 1;
}
//名稱叫 use_func 或 ob_use_func 皆可
else if(function_exists("ob_use_func",env))
{
me->vobjs("add",tmps2[0],-1);
env->ob_use_func(me);
return 1;
}
return notify_fail("ob use: "+tmp+" 這個東西可能有問題,現在不能使用喔.\n");
}
return notify_fail("ob use: "+tmp+" 這個東西不能使用喔.\n");
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.252.81.122
※ 文章網址: https://www.ptt.cc/bbs/mud_sanc/M.1493769557.A.E4C.html
→
05/03 08:00, , 1F
05/03 08:00, 1F
→
05/03 08:01, , 2F
05/03 08:01, 2F
例如說真的寫幾種不同的 use function,通常一種物品只會帶
一個 use function,某些 use function 就不扣物品數量:
通常版: use_func、ob_use_func
特殊版: special_use_func (類似自定特殊攻擊的 special_fun 做法)
中午前我評估看看能否這樣寫。
※ 編輯: laechan (111.252.81.122), 05/03/2017 08:04:46
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
73
85