[程式] change_owner
// change_owner.c
// 修改認主裝備的認主欄
// 條件: 該裝備設有 can_change_owner 參數
// 以及 can_set_owner 參數
inherit DAEMON;
int cmd_change_owner(string str)
{
object ob,ppl=this_player(),tar;
string what,who,setter,ob_names;
mixed set_owner=({});
if(!str || str=="" || (str && sscanf(str,"%s to %s",what,who)!=2))
return notify_fail(@LONG
修改武防認主指令說明:
=================================================
change_owner [eq/wp id] to [who]
該指令的使用條件是...
1)你是該武防的認主者.
2)該武防在你身上, 尚未被你穿戴.
3)view 該武防時會看到它可以被修改認主的訊息.
=================================================
Laechan@Sanc
LONG
);
if(!ob=presennt(what,ppl))
return notify_fail("change_owner: 你身上沒有叫做 "+str+" 的武防喔.\n");
if(!setter=(string)ob->query("can_change_owner"))
return notify_fail("change_owner: 你無法對"+ob->query("short")+"修改"+
"認主設定喔.\n");
if(setter!=(string)ppl->query("name"))
return notify_fail("change_owner: 你無法對"+ob->query("short")+"修改"+
"認主設定喔.\n");
if(!set_owner=(mixed)ob->query("can_set_owner"))
set_owner=({});
if(member_array(who,set_owner)==-1)
return notify_fail("change_owner: 你無法將"+ob->query("short")+"的認主"+
"修改為 "+who+"喔!\n"+
" 只能修改為 "+implode(set_owner,", ")+
" 其中之一。\n");
if(ob->query("wear"))
return notify_fail("change_owner: 這件武防你正裝備著喔.\n");
// 當通過上述判斷後
// ppl = 有權限設定者, ob = 可被設定的武防, who = 可被設定為認主者
if(!tar=find_player(who))
return notify_fail("change_owner: "+who+" 必須在線上喔.\n");
// 先清除 ob 的一些標記
ob->delete("can_change_owner");
ob->delete("can_set_owner");
ob->set("names",who);
// 設定認主
set_owner=(mixed)ob->query("sdata");
if(member_array("names",set_owner)==-1)
set_owner+=({"names"});
ob->set("sdata",set_owner);
// 移動物品給新的認主者
if(tar && tar!=ppl)
ob->move_to(tar);
return 1;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
推
10/07 22:32, , 1F
10/07 22:32, 1F
※ 編輯: laechan 來自: 125.231.121.192 (10/08 09:34)
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
12
19