作者laechan (小太保)
看板mud_sanc
标题[程式] 未写完
时间Sun Oct 7 22:25:18 2007
// 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)
1F:推 hlead:恩。..thanks...有空研究看看。 10/07 22:32
※ 编辑: laechan 来自: 125.231.121.192 (10/08 09:34)