作者laechan (打死不投馬冏,李系咩安抓)
看板mud_sanc
標題Re: [wizs]問題請教(十二)
時間Thu Jul 5 11:41:24 2007
※ 引述《hlead (希多)》之銘言:
: 寫法問題一:
: 假設有個參數為abc
: 如果abc這參數為1時
: 就移除這room的mob
: 然後叫某一隻mob出來
要看是什麼參數,我假設你是指紀錄在房間的 abc...
mixed obs;
object ob;
if((int)room->query("abc")==1)
{
obs=all_inventory(room);
foreach(ob in obs)
if(!userp(ob) && living(ob)) // 非玩家的生物=mob
ob->remove();
}
clone_object(你想招的mob)->room;
: 寫法問題二:
: 讓怪物自動攻擊身上有某參數的玩家
在怪物檔內自訂 init 函數...
void init()
{
if(this_player()->query_temp("某參數"))
::init(); // 自動執行原先的觸發=auto kill
return ;
}
: 寫法問題三:
: 假設有個參數abc為1
: 怪物死掉後。
: 如果玩家身上有abc這參數。
: 就消掉abc這參數。
那你就要先寫「假設玩家身上有個參數叫 abc」。
在怪物檔內自定 die 函數...
void die()
{
object ppl=this_player(); // 殺死怪物的人
ppl->delete_temp("某參數");
::die(); // 執行原先的 die
}
一般有 query 及 query_temp 兩種,它們的資料紀錄區不一樣
,例如打死明王可穿菩提袈裟,紀錄的參數是在 data 區,好像
是 query("record_data/xxxxxxxxx"),而一般像施法後會儲存
的資訊像是 str+多少, con+多少, ... 則是放在 query_temp
區。
兩者的差別是,temp 區的資料在玩家 quit 後會消失。
一、新增的參數,如果不希望玩家 quit 後消失,請一定要紀錄
在 record_data 內,例如...
record_data/norr_abc : norr 代表新增參數的人是你
abc 代表你要新增的參數
二、新增的參數,如果希望玩家 quit 後就跟著一起消失,只需
紀錄在 temp 區即可,但格式一般有三種...
norr/abc
norr_abc
time_record/norr_abc
也就是設定方式像是 ppl->set_temp("norr/abc") 這樣,則
玩家在 quit 後參數就會跟著消失。
LAechan
: -----------------------------
: 其實好像問題好像差不多...= =
: 這個雖然有參考...
: 不過,看不太懂就是了...orz
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.231.124.227
1F:推 hlead:恩..感謝。 07/05 11:56