Example #1
0
void close_door()
{

  if (((int)query_temp("left")!=3) || ((int)query_temp("right")!=3)) return;

  	delete("exits/enter");
  	delete_temp("left");
  	delete_temp("right");
}
Example #2
0
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;
}
Example #3
0
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);
}
Example #4
0
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();
}
Example #5
0
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;
}
Example #6
0
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");
}
Example #7
0
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);
	}
}
Example #8
0
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;
}
Example #9
0
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");

    }
}
Example #10
0
void enough_rest()
{
	delete_temp("busy");
}
Example #11
0
void do_closed()
{
        delete_temp("have_turn");
        delete("exits/enter");
        tell_room(this_object(),"机关感受不到压力,石壁的门竟缓缓地自动关了起来。\n");
}