[程式] change_owner

看板mud_sanc (Sanctuary - 聖殿)作者 (小太保)時間18年前 (2007/10/07 22:25), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
// 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
恩。..thanks...有空研究看看。
10/07 22:32, 1F
※ 編輯: laechan 來自: 125.231.121.192 (10/08 09:34)
文章代碼(AID): #172EnHsw (mud_sanc)
文章代碼(AID): #172EnHsw (mud_sanc)