推 justinj :裝備管理房有inherit ROOM;.. 07/29 16:08
→ justinj :發生的方法是我寫在wear_func...XXX->register().. 07/29 16:09
if(data["Duration_Max"])
{
set("wear_func_time",time()+180);//穿3分鐘
find_object_or_load(EQ_CONTROL);
EQ_CONTROL->eq_register(this_object());
}
不太建議這樣寫。
int wear_func()
{
object ob;
.
.
if(data["Duration_Max"])
{
set("wear_func_time",time()+180);//穿3分鐘
if(!catch(ob=find_object_or_load(EQ_CONTROL)))
ob->eq_register(this_object());
}
另外
mixed EQS = ({});
void eq_register(object ob)//裝備登入
{
set_heart_beat(1);
EQS += ({ob});
}
這個可能會無效,至少在 tmi2_v3 是無效的,因為 mixed EQS=({})
這並不是有效的初始化動作,一般是這樣子做初始化你可參考
mixed EQS;
void create()
{
::create();
seteuid(getuid(this_object()));
if(!EQS) EQS=({});
}
你可以想成所有有宣告 create 的函數再被載入時一定會呼叫,所
以將初始化的段落寫在 create 內就變成一種很自然的想法。
※ 編輯: laechan (210.61.157.53), 07/29/2014 16:30:48
推 justinj :耐久度系統失效,請通知WIZ! 07/30 09:49
→ justinj :一樣...連載入都不行..只是變成可以往下跑而已.. 07/30 09:52
→ laechan :喔我想起一件事,我很多東西都放.../open :p 07/30 10:45
推 justinj :我還以為那邊只有寫入有問題才放那而已.. 07/30 11:05
推 justinj :移過去也一樣... 07/30 11:24
→ laechan :你可以試試把部份放 open 看看或許會成功 07/30 11:25
→ laechan :先試試就好,理論上在/d也應該能成功的,不成功應該是 07/30 11:25
→ laechan :有別的原因在 07/30 11:25
推 justinj :試過情況如下..裝備上不能load_obj..房間可以... 07/30 11:42
→ justinj :裝備移到/open...還沒試過..不過管理房移過去不行 07/30 11:43
推 justinj :不行...那只剩房間跟裝備的差別... 07/30 11:45
推 justinj :seteuid(getuid(this_object())); 07/30 11:50
→ justinj :房間有這個..裝備沒有..所以裝備加那個就可以叫了 07/30 11:51
→ laechan :唔原來你裝備沒加這個, 那通常是不行的 07/30 13:41
推 justinj :剛剛去看一下..原來norr的範例本來就沒有..--\\\ 07/30 14:08
→ justinj :印象中只有怪物有..其它都是預設(寫在最初檔裡) 07/30 14:09
→ laechan :加那東西主要是給有想做特殊用途的物件用的 07/30 14:41
→ laechan :一般物件(比方像是簡單的房間)沒有加也是ok的 07/30 14:42
→ laechan :像指令是因為寫在 user.c 的函數內去呼叫的所以大部 07/30 14:42
→ laechan :份指令才可以只需 inherit DAEMON 及 int cmd_xxxxxx 07/30 14:42
推 justinj :soga~~ 07/30 15:28