精華區beta mud_sanc 關於我們 聯絡資訊
// _bid.c // artifact 拍賣場指令 #include <config.h> inherit DAEMON; // 總表 // cmd_bid=(["時間標記":({"誰",([它的東西data,"bid":(["誰下標":多少錢,]),]),}), // "時間標記":({"誰",([它的東西data,"bid":(["誰下標":多少錢,]),]),}), // ]); static mapping cmd_bid; // 誰上架 對照 時間標記串 // names_times=(["誰":({"時間標記1","時間標記2",...}),]); mapping names_times; varargs int load_cmd_bid(); void create() { ::create(); seteuid(getuid(this_object())); if(file_exists("/open/cmds/bid.o")) restore_object("/open/cmds/bid"); else names_times=([]); cmd_bid=([]); load_cmd_bid(); } varargs int load_cmd_bid(string name) { string tmp,tmp2,files; int s; object ob; mapping ob_data=([]); mixed times=({}),tmps2=({}); if(name && name!="") { files="/open/cmds/bid_data/"+name; if(file_exists(files+".c") && file_exists(files+".o")) if(!catch(ob=find_object_or_load(files))) cmd_bid[name]=ob->return_ob_data(); return 1; } if(sizeof(keys(names_times))<1) return 1; foreach(tmp in keys(names)) { times=names_times[tmp]; files="/open/cmds/bid_data/"+tmp; if(file_exists(files+".c") && file_exists(files+".o")) { if(!catch(ob=find_object_or_load(files))) { ob_data=ob->return_ob_data(); tmps2=keys(ob_data); foreach(tmp2 in tmps2) { if(member_array(tmp2,times)!=-1) cmd_bid[tmp2]=({tmp,ob_data}); } } } } return 1; } void help() { write(@LONG bid(拍賣場)指令說明: =============================================== bid -puton xxx 將身上的某物品上架拍賣場 bid -list 列出已於拍賣場上架的物品 bid -pulloff n 將自己上架的第 n 個物品下架 管理者專用指令 bid -list xxx 列出 xxx 這個玩家的拍賣場資料 bid -set xxx 設定 xxx 這個玩家的拍賣場資料 =============================================== LONG ); } inr cmd_bid(string str,object me) { string ppl_names; if(!str || str=="") { help(); return notify_fail(""); } ppl_names=me->query("name"); if(!wizardp(me)) return notify_fail("bid "+str+": 你不能使用這個指令語法喔.\n"); if(sscanf(str,"-list %s",ppl_names)==1) { if(undefinedp(cmd_bid[names])) { load_cmd_bid(names); if(undefinedp(cmd_bid[names])) return notify_fail("