int main(string args) { int i; object targetob, *roominv, *playerinv; playerinv = all_inventory(this_player()); roominv = all_inventory(environment(this_player())); if(!args) return(notify_fail("SYNTAX: info <thing>\n")); if(args == ("here"||"room")) targetob = environment(this_player()); if(args == ("me"||"self")) targetob = this_player(); else{ for(i=0;i < sizeof(roominv); i++) if(roominv[i]->id(args)) targetob = roominv[i]; for(i=0;i < sizeof(playerinv); i++) if(playerinv[i]->id(args)) targetob = playerinv[i]; } if(targetob){ write( "Path: "+file_name(targetob)+"\n" "Launchpad: http://bazaar.launchpad.net/~dock9/dock9/trunk/annotate/head%3A/lib" +file_name(targetob)+".c\n" //This should try to see the extension, not assume .c "Short name: "+targetob->query_short()+"\n" "Heartbeat "+query_heart_beat(targetob)+"\n" ); return 1; } else return(notify_fail("SYNTAX: info <thing>\n\n"+args+" is not a valid thing.\n")); }
int main(object me, string arg) { int i, j; object obj, *inv; string *id; if( !arg ) { inv = all_inventory(me); if( !sizeof(inv) ) return notify_fail("你身上没有任何东西。\n"); write( "你身上携带物品的别称如下(右方) :\n"); for(i=0; i<sizeof(inv); i++) { if( !me->visible(inv[i]) ) continue; printf("%-20s = %s\n", inv[i]->name(), implode(inv[i]->parse_command_id_list(), ", ") ); } return 1; } if( arg=="here" ) { inv = all_inventory(environment(me)); if( !sizeof(inv) ) return notify_fail("这里没有任何东西。\n"); write( "在这个房间中, 生物及物品的(英文)名称如下 :\n"); for(i=0; i<sizeof(inv); i++) { if( !me->visible(inv[i]) ) continue; printf("%-20s = %s\n", inv[i]->name(), implode(inv[i]->parse_command_id_list(), ", ") ); } return 1; }
int do_look(string arg) { object env1, env2, env3, env4; object *obj1, *obj2, *obj3, *obj4; object me = this_player(); string msg; int i, i1, i2, i3, i4; if (!arg || arg != "board") return 0; env1 = load_object(__DIR__"mjroom1.c"); obj1 = all_inventory(env1); env2 = load_object(__DIR__"mjroom2.c"); obj2 = all_inventory(env2); env3 = load_object(__DIR__"mjroom3.c"); obj3 = all_inventory(env3); env4 = load_object(__DIR__"mjroom4.c"); obj4 = all_inventory(env4); msg =""; if (env1->query_temp("mjstart") == 1) msg += RED"红木亭"NOR":牌局正在进行中。\n"; if (env2->query_temp("mjstart") == 1) msg += YEL"黄菊苑"NOR":牌局正在进行中。\n"; if (env3->query_temp("mjstart") == 1) msg += HIC"蓝天阁"NOR":牌局正在进行中。\n"; if (env4->query_temp("mjstart") == 1) msg += GRN"绿竹馆"NOR":牌局正在进行中。\n"; for (i = 0; i < sizeof(obj1); i++) if (userp(obj1[i])) i1++; for (i = 0; i < sizeof(obj2); i++) if (userp(obj2[i])) i2++; for (i = 0; i < sizeof(obj3); i++) if (userp(obj3[i])) i3++; for (i = 0; i < sizeof(obj4); i++) if (userp(obj4[i])) i4++; tell_object(me, "现在各麻将室里的人数有:\n"+ " "HIC"蓝天阁\n"+ " "+i3+NOR"\n"+ YEL" 黄菊苑 "+i2+NOR" "GRN+i4+" 绿竹馆\n"NOR+ " "RED+i1+"\n"+ " 红木亭\n\n"NOR+msg); return 1; }
int valid_leave(object me, string dir) { object *inv; object ob; int i; if( userp(me)) { if( dir == "north" && !random(10) && ob=present("garrison", this_object())) { inv = all_inventory(me); for(i=0; i<sizeof(inv); i++) { if((int)(inv[i]->query("weapon_prop")) && (int)(inv[i]->query("equipped"))) return notify_fail(ob->name()+"向你喝道:不可手持兵器入风云城!\n"); } } if( dir == "up" && ob=present("garrison", this_object())) { inv = all_inventory(me); for(i=0; i<sizeof(inv); i++) { if(((string)(inv[i]->name()) == "风云战甲") && (int)(inv[i]->query("equipped"))) return 1; } return notify_fail(ob->name()+"向你喝道:闲杂人等不可上登护城墙!\n"); } tell_room("/d/fywall/supgate", "城墙下" + me->name() + "往" + to_chinese(dir) + "离开了。\n"); if( me->query("class")== "shenshui"||me->query("class")== "knight"|| me->query("class")== "bat"||me->query("class")== "wolfmount") { if( dir == "north" && ob=present("garrison", this_object())) { inv = all_inventory(me); for(i=0; i<sizeof(inv); i++) { if(((string)(inv[i]->name()) == "风云战甲") && (int)(inv[i]->query("equipped"))) return 1; } return notify_fail(ob->name()+"大声喝止:皇上有令,番帮野民,不得入城!\n"); } tell_room("/d/fywall/supgate", "城墙下" + me->name() + "往" + to_chinese(dir) + "离开了。\n"); } return 1; } else return 1; }
int do_leave() { object *inv,env,me,*inv_con,env_con,mbox; string data,data_con; int i,staff_count,j,con_count,item_count; con_count=0; staff_count=0; me=this_player(); env=environment(me); inv=all_inventory(env); if(sizeof(inv)) { if(sizeof(inv)>MAX_STAFF) return notify_fail("你在房间里放了太多的东西,连门都打不开了。"); for(i=0;i<sizeof(inv);i++){ if(inv[i]->is_character()); else{ if(inv[i]->is_container()) { item_count=0; env_con=present((string)inv[i]->query("id"),environment(me)); inv_con=all_inventory(env_con); for(j=0;j<sizeof(inv_con);j++){ if(inv_con[j]->is_character()); else{ data_con = base_name(inv_con[j])+".c"; me->set("container"+sprintf("%d/%d",con_count,item_count),data_con); destruct(inv_con[j]); item_count=item_count+1; } } con_count=con_count+1; } data=base_name(inv[i])+".c"; me->set("homestaff/"+sprintf("%d",staff_count),data); destruct(inv[i]); staff_count=staff_count+1; } } } if( mbox = me->query_temp("mbox_ob") ) { tell_object(me, "你将信箱交回领班. \n"); destruct(mbox); } tell_object(me,"你摁铃招来领班\n “出门哪您?”领班毕恭毕敬的接过你手中的钥匙,恭送你出了大门。\n"); me->save(); me->move("/open/mac/qianfo/shungeng.c"); return 1; }
void do_tests() { #ifndef __NO_ENVIRONMENT__ int s = sizeof(all_inventory(this_object())); ASSERT(sizeof(all_inventory()) == s); for (int i = 0; i < 5; i++) { ASSERT(sizeof(all_inventory()) == s + i); clone_object(file_name()); } ASSERT(filter(all_inventory(this_object()), (: !$1->is_all_inv_test() :))); #endif }
int main(string arg) { int i; object target; object *inventory; if(!arg) target = this_player(); else { if(arg[0]!='/') arg = resolve_path(this_player()->query("cwd"), arg); if(arg[<2..<1] != ".c") arg += ".c"; if(!target) target = find_object(arg); if(!target) target = present(arg, this_player()); if(!target) target = present(arg, environment(this_player())); } if(!target) return notify_fail("Error [clean]: Error locating target.\n"); write("Success [clean]: Destryoing all objects in '" + target->query_short() + "'.\n"); inventory = all_inventory(target); for(i=0; i<sizeof(inventory); i++) { if(inventory[i]->query("no_clean") || inventory[i]->clean_up()) continue; if(living(inventory[i])) continue; write("\tObject '" + inventory[i]->query_short() + "' destroyed.\n"); inventory[i]->remove(); } return 1; }
void init() { // clean up all trash object room; int i; object *inv; dest_trash(); room = environment(this_object()); if(room) { inv = all_inventory(room); for(i=0; i<sizeof(inv); i++) { if( userp( inv[i]) ) { if ( !random(5)) set_leader(inv[i]); continue; } if( inv[i]->query("no_shown")) continue; if( inv[i]->query("no_get")) continue; if( inv[i]->is_character()) continue; if( inv[i]->is_corpse()) continue; command("get "+ inv[i]->query("id")); } } }
int valid_leave(object me, string dir) { object ob; object *inv; int i; if( dir == "west" && !(int)this_object()->query("enter_permission") && ob = present("guinu",this_object())) { message_vision("$N望望天,对$n笑着说:时辰尚早,姑娘们还在睡,您...\n", ob, me); return notify_fail("忍耐一下吧!\n"); } if( dir == "west" && ob = present("guinu",this_object())) { inv = all_inventory(me); for(i=0; i<sizeof(inv); i++) { if((int)inv[i]->query("weapon_prop")) return notify_fail(ob->name()+"向你笑道:千金楼有千金楼的楼规,您请看牌.\n"); if((int)inv[i]->query("food_remaining") != 0) return notify_fail(ob->name()+"向你笑道:千金楼有千金楼的楼规,您请看牌.\n"); if((int)inv[i]->query("liquid/remaining") !=0) return notify_fail(ob->name()+"向你笑道:千金楼有千金楼的楼规,您请看牌.\n"); if((int)inv[i]->is_container()) // if(check_container(inv[i])) return notify_fail(ob->name()+"向你笑道:千金楼有千金楼的楼规,您请看牌.\n"); } me->set("food",0); me->set("water",0); } return 1; }
int main(object me, string arg) { object ob, *inv; int i, count; if( !arg ) return notify_fail("你要装备什么武器?\n"); if(this_player()->query_temp("weapon")) return notify_fail("你已经装备武器了。\n"); if(arg=="all") { inv = all_inventory(me); for(count=0, i=0; i<sizeof(inv); i++) { if( inv[i]->query("equipped") ) continue; if(this_player()->query_temp("weapon")) break; if(do_wield(me, inv[i]) ) count ++; } write("好了。\n"); return 1; } if( !objectp(ob = present(arg, me)) ) return notify_fail("你身上没有这样东西。\n"); if( ob->query("equipped") ) return notify_fail("你已经装备着了。\n"); return do_wield(me, ob); }
int valid_leave(object me, string dir) { mapping myfam; object wp, *inv; int i, j=0; if ( dir == "up" ) { inv = all_inventory(this_object()); for (i = 0; i < sizeof(inv); i++) if ( objectp(inv[i]) && living(inv[i]) && (inv[i]->query("sjsz/team_name") != me->query("sjsz/team_name")) && inv[i]->query("id") !="sheying shi" ) { j++; if (objectp(wp = inv[i]->query_temp("weapon"))) message_vision("$N对$n喝道:尔等邪魔歪道人物,要想过此路,得先问问我手中的" + wp->query("name")+ "答应不答应!\n", inv[i], me); else message_vision("$N对$n喝道:只要我在,尔等邪魔歪道人物,便休想过此路!\n", inv[i], me); } if (j) return notify_fail("\n"); } return ::valid_leave(me, dir); }
int main(object me, string arg) { int i; object *inv, ob; if( wizardp(me) && arg ) { ob = find_player(arg); if( !ob ) ob = find_living(arg); if( !ob ) ob = present(arg, environment(me)); } if( !ob ) ob = me; inv = all_inventory(ob); if( !sizeof(inv) ) { write((ob==me)? "目前你身上没有任何东西。\n" : ob->name() + "身上没有携带任何东西。\n"); return 1; } printf("%s身上带著下列这些东西(负重 %d%%):\n%s\n", (ob==me)? "你": ob->name(), (int)ob->query_encumbrance() * 100 / (int)ob->query_max_encumbrance(), implode(map_array(inv, "inventory_desc", this_object()), "\n") ); return 1; }
int do_open(string arg) { object me=this_player(), room; object *inv; int j; if(!arg || arg!="door") return notify_fail("你要开什么?\n"); if( query_temp("lock") == 1 && !present("key", me) ) return notify_fail("钥匙都没有,怎么开门?\n"); if(!( room = find_object(__DIR__"storeroom")) ) room = load_object(__DIR__"storeroom"); inv = all_inventory(me); for (j = 0; j < sizeof(inv); j++) { if (inv[j]->is_character()) { return notify_fail("屋子里位置有限,挤不下那么多人。\n"); } } if(!objectp(room)) return notify_fail("ERROR:not found 'storeroom.c' \n"); if(query_temp("lock") == 1 && present("key", me)) { set_temp("lock", 0); message_vision("$N把钥匙插进锁孔,只听见‘卡嗒’一声,锁开了。\n", me); message("vision","外面传来一阵开锁的声音,只听见‘卡嗒’一声,锁开了。\n",room); } message_vision("$N轻轻推开门,走了进去,随手把门掩了起来。\n",me); message("vision", "有人走了进来,随手把门掩上了。\n",room); me->move(room); return 1; }
void init() { int i; object* inv; object me = this_object(); delete("exits/out"); if(this_player()->query_temp("shendian/jinmigong_kill") >= 2) { message_vision(HIY"\n刹那间所有的剑都消失了,出口出现了。\n\n"NOR,this_player()); set("exits/out", __DIR__"zhenwai"); } if (!((this_player()->query_temp("shendian/jinmigong") == "begin") || (this_player()->query("id") == "shen jiang"))) { message_vision(HIW"\n岂有此理,$N是怎么进来的?出去!\n\n"NOR,this_player()); this_player()->move("/d/city/kezhan"); } if (this_player()->query_temp("shendian/jinmigong") == "begin") { remove_call_out ("check_hp"); call_out ("check_hp", 3,this_player()); } inv = all_inventory(this_player()); for(i=0; i<sizeof(inv); i++) { if( inv[i]->query_unique() ) { message_vision(HIW"突然间,$n化一道白光飞去,无影无踪!\n"NOR,inv[i]); destruct(inv[i]); } } add_action ("do_cast","cast"); }
int valid_leave(object me, string dir) { object guard, *inv, letter; int i; if(dir != "up") return ::valid_leave(me, dir); inv=all_inventory(me); i=sizeof(inv); me->delete_temp("condition/carrying_player"); if(objectp(present("luo chun", environment(me)))) guard=present("luo chun", environment(me)); if(!guard) return ::valid_leave(me,dir); while (i--) { if (userp(inv[i])) me->add_temp("condition/carrying_player", 1); continue; } if(me->query_temp("condition/carrying_player")) { return notify_fail(CYN "罗春喝道:呔!若想上楼,先把背上的那个放下了!\n"NOR); } if (!(letter=present("shu xin", me) && letter->query("header")=="秦琼至罗成") && me->query("family/master_id")!="luo cheng" && guard) { return notify_fail(CYN "罗春喝道:呔!楼上乃贵人居住之处,不得擅闯!\n"NOR); } //finally... return ::valid_leave(me, dir); }
int do_give(string arg) { object obj, obj2, me, *inv, who; string item; int amount, i; me = this_player(); if(!arg) return notify_fail("你要给谁什么东西?\n"); if( sscanf(arg, "%s to ding", item) == 1 || sscanf(arg, "ding %s", item)==1 ); else return notify_fail("你要给谁什么东西?\n"); if(!objectp(who = present("jia ding", environment(me))) || !living(who)) return notify_fail("这里没有这个人。\n"); if(sscanf(item, "%d %s", amount, item)==2) { if( !objectp(obj = present(item, me)) ) return notify_fail("你身上没有这样东西。\n"); if( !obj->query_amount() ) return notify_fail( obj->name() + "不能被分开给人。\n"); if( amount < 1 ) return notify_fail("东西的数量至少是一个。\n"); if( amount > obj->query_amount() ) return notify_fail("你没有那么多的" + obj->name() + "。\n"); else if( amount == (int)obj->query_amount() ) return do_giveto(me, obj2); else { obj->set_amount( (int)obj->query_amount() - amount ); obj2 = new(base_name(obj)); obj2->set_amount(amount); if (do_giveto(me, obj2)) return 1; else { obj->set_amount((int)obj->query_amount() + amount); return 0; } } } if(arg=="all") { inv = all_inventory(me); for(i=0; i<sizeof(inv); i++) { do_giveto(me, inv[i]); } write("Ok.\n"); return 1; } if(!objectp(obj = present(item, me))) return notify_fail("你身上没有这样东西。\n"); return do_giveto(me, obj); }
int main(object me, string arg) { string what, who; object ob, obj, victim; int sp, dp; if( !wizardp(me) && environment(me)->query("no_fight") ) return notify_fail("这里禁止行窃。\n"); if( !wizardp(me) && environment(me)->query("no_steal") ) return notify_fail(HIR"这里禁止行窃 \n"NOR); //By waiwai@mszj 2000/10/30 if( !wizardp(me) && environment(me)->query("no_kill") ) return notify_fail(HIR"这里禁止行窃 \n"NOR); //By waiwai@mszj 2000/10/30 if( me->query_temp("stealing") ) return notify_fail("你已经在找机会下手了!\n"); if(me->query("combat_exp") <= 500000) return notify_fail(HIR"功夫这么差就想学着偷东西吗?\n"NOR); //By waiwai@mszj 2000/10/30 if( !arg || sscanf(arg, "%s from %s", what, who)!=2 ) return notify_fail("指令格式:steal <物品> from <人物>\n"); victim = present(who, environment(me)); if( !victim || victim==me) return notify_fail("你想行窃的对象不在这里。\n"); if(!valid_kill(me,victim,0)) return 0; if( !wizardp(me) && wizardp(victim) ) return notify_fail("玩家不能偷巫师身上的东西。\n"); if( !ob = present(what, victim) ) { object *inv; inv = all_inventory(victim); if( !sizeof(inv) ) return notify_fail( victim->name() + "身上看起来没有什么值钱的东西好偷。\n"); ob = inv[random(sizeof(inv))]; } sp = (int)me->query_skill("stealing",1) * 5 +((int)me->query("kar")+(int)me->query("age"))*2 - (int)me->query("thief") * 20; if( sp < 1 ) sp = 1; if( me->is_fighting() ) { sp /= 2; // me->start_busy(3); } dp = ((int)victim->query("sen")+(int)victim->query("age")+(int)victim->query_kar())*2+(int)ob->weight()/25; if( victim->is_fighting() ) dp *= 10; if( ob->query("equipped") ) dp *= 10; write("你不动声色地慢慢靠近" + victim->name() + ",等待机会下手 ...\n\n"); me->set_temp("stealing", 1); me->add("steal_times",1); call_out( "complete_steal", 3, me, victim, ob, sp, dp); return 1; }
void wield_new_weapon() { object old_weapon = query_temp("weapon"); object me = this_object(); object *inv; int i; string wskill, pskill; if (old_weapon) { /* if (old_weapon->is_unique()) { "/cmds/std/drop.c"->do_drop(me, old_weapon); }else{ destruct(old_weapon); } */ "/cmds/std/drop.c"->do_drop(me, old_weapon); } inv = all_inventory(me); for (i=sizeof(inv)-1; i>=0; i--){ if (inv[i]->query("weapon_prop")) { "/cmds/std/wield.c"->do_wield(me, inv[i]); wskill = inv[i]->query("skill_type"); pskill = me->query_skill_mapped(wskill); if (pskill) { map_skill("parry", pskill); } if (inv[i]->is_unique()) { me->delete("default_weapon"); }else{
void do_drink() { object *list, ob; int i, can_drink; if ((int)this_object()->query("water") >= 380) return; list = all_inventory(this_object()); i = sizeof(list); can_drink = 0; while (i--) { if ((string)list[i]->query("liquid/type") == "alcohol") { ob = list[i]; can_drink = 1; } } if (can_drink) { command("drink "+(string)ob->query("id")); if ((int)ob->query("liquid/remaining") == 0) command("drop wineskin"); } else { command("sigh"); command("say 酒..... 给我酒...."); } return; }
int conjure(object me, object target) { object *inv; int lvl, i, num; lvl = me->query_skill("ninjitsu",1); if (lvl < 100) return notify_fail("追牙需要100级忍术。\n"); if( me->query("atman") < 300 ) return notify_fail("追牙需要300点的灵力!\n"); if (userp(me)) me->add("atman", -300); message_vision(RED"一团血雾从$N手中撒出,无声无息地在半空中炸开。。\n"NOR,me); inv = all_inventory(environment(me)); for (i=0;i<sizeof(inv);i++) { if( inv[i]==me ) continue; if( inv[i]->is_corpse() ) continue; if( !inv[i]->is_character()) continue; if(!COMBAT_D->legitimate_kill(me,inv[i])) continue; if( wizardp(inv[i]) && inv[i]->query("wiz_invis")) continue; if (ANNIE_D->check_buff(inv[i],"invisible")>0) { message_vision(RED"$N未及闪避,已溅上了数滴血珠,一阵晕眩。\n"NOR,inv[i]); inv[i]->perform_busy(3); ANNIE_D->debuff(inv[i],"invisible"); inv[i]->set("timer/no_shade",time()); } } return 1; }
int do_say(string arg) { object *inv, me = this_player(); int i, count = 0; if( !arg || arg=="" ) return 0; inv = all_inventory(environment(me)); /* for (i=0; i<sizeof(inv); i++) { if (inv[i]->is_character() && (string)inv[i]->query("family/family_name") != "丐帮" ) count ++; } */ if( (arg=="天堂有路你不走呀" || arg=="地狱无门你进来啊" ) && this_player()->query("family/family_name") == "丐帮") { write("只听里面有人说了声:是本帮兄弟吧?快请进来吧。\n"); message("vision", "树洞边上一堵墙缓缓移了开来,原来是道小木门。\n", this_player()); set("exits/down", __DIR__"undertre"); remove_call_out("close"); call_out("close", 3, this_object()); return 1; } else if ( (arg=="天堂有路你不走呀" || arg=="地狱无门你进来啊" ) && this_player()->query("family/family_name") != "丐帮" ) { write("只听里面有人说了声:阁下光临敝帮有何贵干?\n"); return 1; } return 0; }
int perform(object me, object target) { int i; object env; object * inv; if(userp(me)) return notify_fail("你所选用的武功中没有这种必杀技。。\n"); if( !me->is_fighting()) return notify_fail("「鬼神破灭」只能对战斗中的对手使用。\n"); message_vision(HIY"\n$N反握左拳平举,右掌虚抱胸前,眉间隐隐泛起一层黑气。" NOR, me); message_vision(HIY"\n$N眼中精光陡然大盛,断声喝道:"HIR"燹"HIY"!\n\n" NOR, me); message_vision(HIY"一道奇异的旋流自$N身边散开,漫过在场的每个人,幻化为七彩异境。\n" NOR, me); env = environment(me); inv = all_inventory(env); for(i=0; i<sizeof(inv); i++) { if (check_legit(inv[i])) continue; if (!COMBAT_D->legitimate_kill(me, inv[i])) continue; purgepets(me, inv[i]); } if (userp(me)) me->start_busy(2); else me->start_busy(1); return 1; }
int cmd_mist(string str) { if (!spell()) return notify_fail("What?\n"); if (this_player()->query_disable()) return notify_fail("You are busy.\n"); if (this_player()->query_mp() < 50) return notify_fail("Your magic powers are exhausted.\n"); if (environment(this_player())->query_property("no magic")) return notify_fail("A mysterious force prevents you from casting this spell.\n"); this_player()->add_mp(-30 - random(50)); write("A steamy mist forms around you..."); message("info", "A mist slowly starts to form around "+this_player()->query_cap_name()+"!", environment(this_player()), this_player()); this_player()->set_magic_round(); this_player()->set_disable(); call_out("cast_mist", 1, environment(this_player()), all_inventory(environment(this_player()))); return 1; }
int clean_up() { object *inv; int i; if( !clonep() && this_object()->query("no_clean_up") ) return 1; if( interactive(this_object())) return 1; // by babe // 若此物件已被其他物件所包含, 就不再重复 clean_up, 以节省时间 // 请勿再 environment()->query("no_clean_up"); if(environment()) return 1; inv = all_inventory(); for( i=sizeof(inv)-1; i>=0; i-- ) if(interactive(inv[i])) return 1; destruct(this_object()); return 0; }
void begin_kill(object me,string target) { object obj,*ob; int i,flag=0; if(!me->query_condition("zzz_mission")) return; if (me->query_temp("zzz_job_type")!="保护"||me->query_temp("zzz_job_target")!=target) return; ob = all_inventory(environment(me)); for(i=0; i<sizeof(ob); i++) { if( !living(ob[i])||userp(ob[i])||ob[i]==me ) continue; if(ob[i]->query("name")==target) {flag=1; break; } } if (flag==0) { call_out("begin_kill",30,me,target); return; } obj=new(__DIR__"killer"); obj->move(environment(me)); if(random(10)>7||me->query("id")=="zzz") {obj->do_copy(me,1); obj->set("title",HIR"天宫败类"NOR); me->set_temp("zzz_job_super",1); } else obj->do_copy(me,0); obj->set_temp("must_killby",me->query("id")); message_vision(GRN"\n$N对着"+target+"发出一阵阴笑声,令"+target+"全身上下的寒毛根根竖起,不寒而栗。\n"NOR,obj); message_vision(HIY"$N对$n喝道:大胆狂徒,竟敢在这撒野!!\n"NOR,me,obj); message_vision(HIY"$N阴阴一笑:要你多管闲事,去死吧!!\n"NOR,obj); obj->kill_ob(me); }
main(string param) { object ob, *obs, i, n, env; string s; ADM_CHECK if(!param) { msg("==> [Format] nuke <objects>"); return 1; } ob = find_thing(param); if(!ob) { notify_fail("==> [Error] Unable to locate object "+param+"\n"); return 0; } obs = all_inventory( ob ); set_target(ob); this_player()->msg_local("~CBRT~Name ~verbclap ~poss hands. A heavy banging sound is heard, like a cannon-shot.~CDEF"); foreach( ob : obs ) { if( !ob->query_is_player() ) destruct(ob); } return 1; }
int main(object me, string arg) { object ob, *inv; int i, count; if( !arg ) return notify_fail("你要穿戴什么?\n"); arg = lower_case(arg); if(arg=="all") { inv = all_inventory(me); for(count=0, i=0; i<sizeof(inv); i++) { if( inv[i]->query("equipped") ) continue; if(do_wear(me, inv[i]) ) count ++; } write("Ok.\n"); return 1; } if( !objectp(ob = present(arg, me)) ) return notify_fail("你身上没有这样东西。\n"); if( ob->query("equipped") ) return notify_fail("你已经装备着了。\n"); return do_wear(me, ob); }
int main(object me, string arg) { object ob, *inv; int i, count; if( !arg ) return notify_fail("��Ҫ����ʲ�\n"); if(arg=="all") { inv = all_inventory(me); for(count=0, i=0; i<sizeof(inv); i++) { if( inv[i]->query("equipped") ) continue; if(do_wear(me, inv[i]) ) count ++; } if (!count) write("�ܴ��Ķ������ˡ�������\n"); return 1; } if( !objectp(ob = present(arg, me)) ) return notify_fail("������û������������\n"); if( ob->query("equipped") ) return notify_fail("���Ѿ��������ˡ�\n"); return do_wear(me, ob); }
int valid_leave(object me, string dir) { object *inv; object ob; if( userp(me)) { switch(random(9)){ case 0: message_vision("$N脚下一滑,在独木桥上晃了晃..\n",me); return notify_fail("还好,没掉下去!\n"); break; case 1: inv = all_inventory(me); if(sizeof(inv)>=1) { ob = inv[random(sizeof(inv))]; message_vision(ob->name()+"从$N身上滑了出来,落入万丈深渊.\n",me); destruct(ob); } tell_object(me,"你在独木桥上前仰后合地晃着...\n"); return 1; break; default: return 1; break; } return 1; } else return 1; }
void finish_party(object who) { object me=this_object(); int i; object *list; message_vision("$N����˵������ϯ�ʹ˽�������л��ҹ��٣�\n", me); // mon environment(me)->set("resource/nuerhong",0); command("gongxi " + who->query("id")); me->delete_temp("party_start_already"); who->delete_temp("host_of_party"); // who->set_temp("married_party", 1); list=all_inventory(environment(me)); i=sizeof(list); while (i--) { if(list[i]->query("id") != "ban niang") continue; else destruct (list[i]); } }