void close_door() { if (((int)query_temp("left")!=3) || ((int)query_temp("right")!=3)) return; delete("exits/enter"); delete_temp("left"); delete_temp("right"); }
int do_move(string str) { if(!str || str != "box") return notify_fail("你要移动什么?\n"); if(this_player()->query("family/family_name")=="雪苍派"||this_player()->query("family/family_name")=="魔刀门"|| this_player()->query("family/family_name")=="魔刀莫测") { if(this_player()->query("combat_exp")>300000) { if(!query_temp("box_moved")) { set_temp("box_moved",1); message_vision("$N移动了箱子,发现箱子下面竟然出现了一个按钮(button)。\n",this_player()); return 1; } else { delete_temp("box_moved"); message_vision("$N将箱子移回原位。\n", this_player()); if(query("exits/down")) delete("exits/down"); return 1; } } message_vision("你的经验值不够移动箱子。\n",this_player()); return 1; } message_vision("你不是雪苍或本门弟子,所以不能移动箱子。\n",this_player()); return 1; }
void goto_cisha_target() { object me = this_object(); object env; object target; if (!me->query_temp("cisha_task")) return; target = find_player(me->query_temp("cisha_target_id")); if (!target || !(env = environment(target))){ HELPER->random_walk(); call_out("goto_cisha_target", 15); return; } if (target->is_ghost()) { delete_temp("cisha_task"); me->set("cisha_result", "succ"); return; // finish } message_vision("$N疾步离开这里。\n", me); me->move(env); message_vision("$N快步走了过来。\n$N对$n道:" "我家老爷要你的狗头,你认命吧。\n", me, target); me->set_leader(target); remove_call_out("kill_cisha_target"); call_out("kill_cisha_target", 2); }
void unconcious() { string owner; object owner_ob; owner = query_temp("owner"); if( owner ) { owner_ob= find_player(owner); if( objectp(owner_ob = find_player(owner)) ) { if( (object)query_temp("last_damage_from") == owner_ob ) { set("owner", owner_ob->query("id")); delete_temp("owner"); reset_status(); this_object()->remove_all_killer(); this_object()->set("attitude", "heroism"); message_vision(HIY"\n$N低头缩尾,以示降服。\n"NOR, this_object()); return; } } } // message_vision(HIY"$N run away!\n"NOR, this_object()); die(); // ::unconcious(); }
varargs int receive_damage(string type, int damage, object who) { int val; if( type!="gin" && type!="kee" && type!="sen" ) error("F_DAMAGE: 伤害种类错误( 只能是 gin, kee, sen 其中之一 )。\n"); if( objectp(who) ) set_temp("last_damage_from", who); else{ if(this_player()) if(living(this_player())) set_temp("last_damage_from",this_player()); } if(query(type)<0){ if(!query_temp("last_damage_from")) //如果到死都找不到是谁下的手 set_temp("last_damage_from",this_object()); //就当作是自杀的吧 by bss return 1; } if( damage < 0 ) error("F_DAMAGE: 伤害值为负值。\n"); if((query_temp("mana_shield")||query_temp("mana_shield2")||query_temp("mana_shield3")||query_temp("mana_shield4"))&&type=="kee") { if( query("atman")>50) { type = "atman"; }/*else{ delete_temp("mana_shield"); delete_temp("mana_shield2"); }*/ } if(query_temp("woody")) {damage=0; message("system",HIG"敌人的攻击对妳而言根本不值一晒..\n\n" NOR, this_object()); } if(query_temp("no_armor_effect")) this_object()->delete_temp("no_armor_effect"); else damage=cal_damage(this_object(),damage); val = (int)query(type) - damage; if( val >= 0 ) { set(type, val); } else if( type == "atman") { set(type,0); delete_temp("mana_shield"); delete_temp("mana_shield2");delete_temp("mana_shield3");delete_temp("mana_shield4");} else set(type,-1); if(query(type) <0 && !query_temp("last_damage_from")) set_temp("last_damage_from",this_object()); set_heart_beat(1); return damage; }
void init() { add_action("do_check", "check"); add_action("do_check", "chazhang"); add_action("do_convert", "convert"); add_action("do_convert", "duihuan"); add_action("do_deposit", "deposit"); add_action("do_deposit", "cun"); add_action("do_withdraw", "withdraw"); add_action("do_withdraw", "qu"); add_action("do_join","join"); delete_temp("busy"); }
nomask void enable_player() { if( stringp(query("id")) ) set_living_name(query("id")); else set_living_name(query("name")); delete_temp("disabled"); enable_commands(); add_action("command_hook", "", 1); if( !userp(this_object()) ) set_path(NPC_PATH); else switch( wizhood(this_object()) ) { case "(admin)": set_path(ADM_PATH); enable_wizard(); break; case "(arch)": set_path(ARC_PATH); enable_wizard(); break; case "(wizard)": set_path(WIZ_PATH); enable_wizard(); break; case "(apprentice)": set_path(APR_PATH); enable_wizard(); break; case "(immortal)": set_path(IMM_PATH); enable_wizard(); break; case "(elder)": set_path(ELD_PATH); enable_wizard(); break; default: set_path(PLR_PATH); } }
int remove_link(string arg,string opt) { string path, later_msg; later_msg = env->query(arg+"/"+opt+"/later_msg"); path = env->query(arg+"/"+opt+"/path"); // 显示讯息 tell_room(env,later_msg+"\n"); // 删掉新增的出口... delete("exits/"+path); // 假如原先出口的话,恢复原先的出口... if(env->query_temp("exits/"+path)){ env->set("exits/"+path,env->query_temp("exits/"+path)); } // 删掉计录 delete_temp("exits/"+path); return 1; }
void greeting(object ob) { object me=this_object(); mixed name; object room; object taizi; if( !ob || !visible(ob) || environment(ob) != environment() ) return; if( taizi=present("tai zi",environment())) { ob=taizi->query_leader(); ob->delete_temp("have_gui"); command_function("give yu gui to tai zi"); command_function("whisper zi 如此,这般.."); message_vision("$N说道:“我不信,且待我回宫问我娘亲去。”\n",taizi); message_vision("说罢遂往东离去\n",ob); room = load_object("/d/qujing/wuji2/zym"); taizi->set_leader(0); taizi->move(room); taizi->set("idle",2); delete_temp("have_dream"); } }
void enough_rest() { delete_temp("busy"); }
void do_closed() { delete_temp("have_turn"); delete("exits/enter"); tell_room(this_object(),"机关感受不到压力,石壁的门竟缓缓地自动关了起来。\n"); }