Пример #1
0
int sinking(object ob)

{
	int i;
	int damage;
        if( ob && environment(ob) == this_object())
	{
	message_vision(HIW"$N又在流沙中陷深了一些!!", ob);
	message_vision("$N几乎在绝望中哭了出来!!\n"NOR, ob);
	damage = random(5)+1;
	i =  (int)ob->query("kee");
	ob->set("kee",(int) i - damage);
	if( environment(ob) == this_object())
	call_out("sinking",random(5)+5, ob);	
	}
	else

	return 1;
}
Пример #2
0
void init()
{
	object me,ob;
	int os;
	me = this_player();

	if( me->query("quests/can_go_magic-manor") == 1 )
	{
	  if( present("magic sign",me) )
	  {
	  ob = present("magic sign",me);
	  os = ob->query("magic-manor");
	    if( os == 6 )
	    {
	    call_out("msg1",3,me);
	    }
	  }
	}
}
Пример #3
0
int cmd_darkshift(string str) {
    object ob;    
    int stealth, faith, intelligence, dex, stlth;

   if (!abil()) {
      notify_fail("What?\n");
      return 0;
   }
   if(this_player()->query_ghost()) return 0;
   if(this_player()->query_invis()) 
   { 
       notify_fail("You are already walking in darkness.\n");
       return 0;
   }
    stlth = (int)this_player()->query_skill("stealth");
    dex = (int)this_player()->query_stats("dexterity");
    faith = (int)this_player()->query_skill("faith");
    intelligence = (int)this_player()->query_stats("intelligence");
    stealth = ((stlth/3)+(dex)+(intelligence)+(faith/3));

    if(stealth < 15) {
        notify_fail("The demons laugh at you.\n");
        return 0;
    }
   if((int)this_player()->query_sp() < 50) {
        notify_fail("You are too tired.\n");
        return 0;
    }
   if((int)this_player()->query_mp() < 75) {
      notify_fail("You lack the magical energy needed.\n");
      return 0;
    }

    this_player()->set_invis();
    call_out("take_off", ((stlth/2)+dex+random(faith/2)), this_player());

    this_player()->add_mp(-((faith/3)+random(faith/3)));

    write("%^BLUE%^You shift into %^BOLD%^%^BLACK%^darkness%^RESET%^%^BLUE%^ and become completely undetectable!%^RESET%^\n");
    return 1;


}
Пример #4
0
void greeting(object me)
{
        object basket,food;
        
        if(!me->query("food_carrier")) return ;
        if(me->query("food_carrier")+60>time())
        {
                message_vision(CYN"�����������һ�ۣ�˵��������ʹ������Ҫ�ٵ�һ�󡣡� \n"NOR,me);
                remove_call_out("make_food");
                call_out("make_food",60+me->query("food_carrier")-time(),me);
                return ;
        }
    message_vision(CYN "��ϵ����ȥ��߶Ȱ����IJ˶���ɹ���� \n"NOR,me);
        basket=present("bamboo basket",this_object());
        if(!basket) 
        {
                basket=new(__DIR__"obj/zhulan");
                basket->move(this_object());
        } 
Пример #5
0
int heal_up()
{
   object master;

   if( objectp(master = query("possessed")) 
   &&   (int)master->query("mana") > 100 
   &&   (int)master->query("kee") > 100) {
     message("tell",
        HIR + name() + "告诉你:我...需...要...你...的...力...量...\n" NOR,
        master );
     master->add("mana", -50);
     master->receive_damage("sen", 50);
     ::heal_up();
     return 1;     // Always acquire power from master.
   } else {
     call_out("die", 1);
     return ::heal_up();
   } 
}
Пример #6
0
void Poison() {
    if (((Player = environment(this_object())) 
         && this_player() != Player) || !Player ||
      Player->query_ghost()) {
    while(remove_call_out("Poison") != -1);
    remove();
    return;
  }
  if (!Effect) {
    while (remove_call_out("poison") != -1);
    return;
  }
  if (!Player->query_linkdead()) {
    if (random(100) < POISON_MESSAGE_CHANCE) {
      tell_object(Player, "You feel the effects of a poison strike "
       "your body.\n");
     tell_room(environment(Player),
        sprintf("%s convulses with pain.\n", 
     Player->query_name()), Player);
  }
// I'd certainly like to set a player's death message here.

#ifdef DEBUG
tell_object(Player, "*** You've just been hit by poison.\n");
tell_object(Player, 
  sprintf("*** Dur: %d, Dam: %d, Int: %d, Num: %d.\n",
    Duration, Damage, Interval, Number)); 
#endif

  Player->receive_damage((Damage / 2) + random(Damage / 2) + 1);
  if (!Player || Player->query_ghost()) {
    if (this_object()) remove();
    return;
  }
  Duration -= 1;
  }
  if (Duration > 0) call_out("Poison", Interval);
  else {
    tell_object(Player, "You overcome the effects of a poison.\n");
    remove();
  }
}
Пример #7
0
int exert(object me, object target)
{
skill=this_player()->query("functions/gen/level");
        if(userp(me))
        return notify_fail("����� mixforce��\n");
if(me->query("class")!="prayer")
          return notify_fail("���ְҵ�޷�ʹ�ô˼��ܡ�\n");
        if( (string)me->query_skill_mapped("force")!= "superforce")
         return notify_fail("�����ر���ʹ�û����ķ����ܷ���������\n");
        if( target != me ) return notify_fail("��ֻ���û����ķ���������������\n");
        if (me->query_skill("superforce",1) < 40)
            return notify_fail("��Ļ����ķ��ȼ����㣬��Ҫ 40 ����\n");
        if (me->query("force") < skill*5)
            return notify_fail("��������������޷����������صĻ����ھ���\n");
        if( (int)me->query("max_force") < 400 )
        return notify_fail("���������������,�޷���ȫ���ӳ��������ۻ���ھ���\n");

        if(me->query_temp("gen")) return notify_fail("���Ѿ������ˡ�\n");
        if(me->query_temp("purple")) return notify_fail("���Ѿ����������Ǻ��ķ��ˡ�\n");
        if(me->query_temp("white")) return notify_fail("���Ѿ��������������ķ��ˡ�\n");
        if(me->query_temp("nine")) return notify_fail("���Ѿ���ʹ��õ��ϼ�ķ��ˡ�\n");
        if(me->query_temp("ice")) return notify_fail("���Ѿ�����ת��ѩ���ķ��ˡ�\n");
        if(me->query_temp("black")) return notify_fail("���Ѿ��������������ˡ�\n");
        if(me->query_temp("bluesea")) return notify_fail("���Ѿ��ڴ�����׺��ھ��ˡ�\n");
        if(me->query_temp("goldsun")) return notify_fail("���Ѿ���ǿ�������ھ��ˡ�\n");
        if(me->query_temp("blood")) return notify_fail("���Ѿ��ڴ߹�Ѫ���ھ��ˡ�\n");
        if(me->query_temp("green")) return notify_fail("���Ѿ��������������ھ��ˡ�\n");

        me->set_temp("gen",1);
        message_vision(
        HIC "$N��������ķ��������"YEL"������"HIC"�����Ϸ������ذ������,�γ�����������!!\n" NOR,me);

        me->add_temp("apply/force", 4);
        me->add_temp("apply/move", 4);
        me->add_temp("apply/stick", 4);
        me->add_temp("apply/parry", 4);
        me->add_temp("apply/dodge", 4);
        me->add_temp("apply/unarmed", 4);
        call_out("remove_effect", skill, me);
        if( me->is_fighting() ) me->start_busy(1);
        return 1;
}
Пример #8
0
int cast(object me)
{
	int howlong;
	
	if((int)me->query_skill("spells") < 100)
		return notify_fail("你还没学会隐身法。。。\n");

	if( (int)me->query("mana") < 2*(int)me->query_skill("spells"))
		return notify_fail("你的法力不够了!\n");

	if( (int)me->query("sen") < 50 )
		return notify_fail("你的精神无法集中!\n");

	if( (int)me->query("env/invisibility") )
		return notify_fail("你已经在隐身中了。\n");

  if (me->query_temp("yinshen_busy")) return notify_fail("你刚隐身过,先休息一会儿吧。\n");
	message_vision("$N喃喃地念了几句咒语。\n", me);

	if( random(me->query("max_mana")) < 200 ) {
        me->add("mana",-(int)me->query_skill("spells",1));
		me->receive_damage("sen",10);
		message("vision", "但是什么也没有发生。\n", environment(me));
		return 5+random(5);
	}

    me->add("mana", -2*(int)me->query_skill("spells",1));
	me->receive_damage("sen", 20);

	howlong = 15 + random((me->query_skill("spells") -100));
	if (!me->query("env/invisibility"))
		call_out("free", howlong, me, howlong);
	me->set_temp("yinshentime", howlong+(int)me->query_temp("yinshentime"));

	me->set("env/invisibility", 1);
	me->set_temp("no_heal_up/yinshen",1);
	
  me->set_temp("yinshen_busy",1);
	message_vision(HIW"\n只见一道白光闪过,$N踪迹皆无。\n\n"NOR, me);
	
	return 5+random(5);
}
Пример #9
0
void extra_create()
{
    object ob;

    set_name(  "Chester" );
    add_alias( "chester" );
    add_alias( "uncle chester" );
    add_alias( "uncle" );
    add_alias( "master of arms" );
    add_alias( "hill wizard master of arms" );
    set_short( "Uncle Chester, Hill Wizard Master of Arms" );
    set_long(
        "Remember that jovial old man who helps teach young boys "
        "how to properly use and care for their weapons on every "
        "TV show ever?  Well, that's Uncle Chester.  He's a kind "
        "middle aged man with time to spare.  He also happens to "
        "know a whole lot about weaponry!  And by that, I mean "
        "even moreso than your average hillbilly."
    );

    set_race( "human" );
    set_gender( "male" );
    set_alignment( 500 );

    set_stat( "str",  800 );
    set_stat( "int",  250 );
    set_stat( "wil", 1000 );
    set_stat( "con", 1000 );
    set_stat( "dex",  400 );
    set_stat( "chr",  250 );
    set_skill( "dodge", 100 );
    set_proficiency( "hands", 50 );

    set_max_fatigue( 25000 );
    set_natural_ac ( 10 );
    set_percent_bonus_exp( -25 );

    ob = clone_object( "/zone/present/hillbilly/obj/armor/overalls.c" );
    move_object( ob, THISO );

    call_out( "gear_up", 1 );
}
Пример #10
0
int do_clean(string arg)
{	int i;
	object ob=this_object();
	object me=this_player();
	object obj;
        if(!arg || arg != "jingji")
                return notify_fail("��Ҫ��ʲô��\n");
	
        if(query("clean"))
                return notify_fail("��Χ�Ѿ�û�о����ˡ�\n");

	if((int)me->query("kee") <50)
                return notify_fail("��̫���ˣ�ЪЪ�ɣ�\n");

	if(!(obj = me->query_temp("weapon")) ){
		message_vision("$N������ȥ���Ǿ�����ȴ����������Ѫ��\n", me);
		return 1;
	} else {
		message_vision("$N��������$n��С�ĵ�ȥ�����ǶѶѾ�����\n", me, obj);
		me->receive_damage("kee", 50);
		i=(int)me->query_str();
		ob->set("coe",(int)ob->query("coe") + i );
		
		if( i < 30 ){	
			tell_room(environment(me), "���ֻ������֦С�̡�\n"); 
		}
		else if (i < 50 ) { 
			tell_room(environment(me), "�������һƬ������\n");
		}
		else if (i < 100 ) {
			tell_room(environment(me), "ֻ���������ƵIJ�ס���ˡ�\n");
                }
		else tell_room(environment(me), "ֻ�������糱ˮ���˺�\n");
	}
	
	if( (int)ob->query("coe") > 1000 ) {
		tell_room(environment(me), "�������Ƶ����ԣ�����һ����·��\n\n");
		me->set_temp("obstacle/jingji/clean_8", 1);
		call_out("done", 1);
	}
	return 1;
}
Пример #11
0
int do_clean(string arg)
{   int i;
   object ob=this_object();
   object me=this_player();
   object obj;
        if(!arg || arg != "jingji")
                return notify_fail("你要干什么?\n");
   
        if(query("clean"))
                return notify_fail("周围已经没有荆棘了。\n");

   if((int)me->query("kee") <50)
                return notify_fail("你太累了,歇歇吧!\n");

   if(!(obj = me->query_temp("weapon")) ){
     message_vision("$N想用手去扯那荆棘,却扎了满手鲜血!\n", me);
     return 1;
   } else {
     message_vision("$N挥舞手中$n,小心的去拨开那堆堆荆棘。\n", me, obj);
     me->receive_damage("kee", 50);
     i=(int)me->query_str();
     ob->set("coe",(int)ob->query("coe") + i );
     
     if( i < 30 ){   
        tell_room(environment(me), "结果只拨开几枝小刺。\n"); 
     }
     else if (i < 50 ) { 
        tell_room(environment(me), "结果拨倒一片荆棘。\n");
     }
     else if (i < 100 ) {
        tell_room(environment(me), "只见荆棘被推的不住后退。\n");
                }
     else tell_room(environment(me), "只见荆棘如潮水般退后。\n");
   }
   
   if( (int)ob->query("coe") > 1000 ) {
     tell_room(environment(me), "荆棘被推到两旁,闪出一条道路。\n\n");
     me->set_temp("obstacle/jingji/clean_3", 1);
     call_out("done", 1);
   }
   return 1;
}
Пример #12
0
void create()
{
    set ("short", "石窟");
    set ("long", @LONG
         莫高窟始建於符秦元二年,后历代均有扩建,有大约四百个石窟。
         这里是莫高窟第一层的入口。
         LONG);

    set("exits", ([
                      "eastdown" : __DIR__"drukou",
                      "enter" : __DIR__"dtongdao",
                  ]));
    set("cost", 2);
    set("objects", ([
                        "/d/xingxiu/npc/yinli" : 1
                    ]));
    set("no_clean_up", 1);
    setup();
    call_out("reset_flags", 60);
}
Пример #13
0
int do_open(string arg)
{
        object obj;
        object me;
        if(!arg || arg=="")
        {
                write("你要打开什么?\n");
                return 1;
        }
        if( arg == "屏风" || arg == "ping feng" || arg == "pingfeng")
        {
        me = this_player();
        message_vision("$N信手按在屏风上,屏风微微一动,过得片刻,屏风
竟然向左移开来,露出一道暗门。 \n", me);
        if( !query("exits/south") ) {
        set("exits/south", __DIR__"secret");
        call_out("close_path", 6);
        }
        return 1;
        }
Пример #14
0
void reset() {
	int dayTime;
	mixed *local;
	object xiaohe;
	
	:: reset();
	if (xiaohe=present("xiao he",this_object()))
	if (!xiaohe->is_fighting()) {
		destruct(xiaohe);
		set("xiaohe",1);
		return;
	}
	
	local = NATURE_D->get_current_time();
	dayTime = local[5];
	if(dayTime > 0 && dayTime < 360) {
		call_out("do_reveal",2);
	}
	return;
}
Пример #15
0
int do_search(string arg)
{
   object me;
   int llvl;

   me = this_player();
   llvl = (int)me->query_kar();
   message_vision("$N伸手在火热的石壁上摸索着。\n",me);
   if (random(100) < llvl) { 
      tell_object(me, "你的手在石壁上摸到了一个突出物,你顺手往上一按。 \n");
      message_vision("只听一阵绞索的声音,你头上裂开了一个洞口。 \n", me);
      if( !query("exits/up") ) {
         set("exits/up", __DIR__"rongdong1");
         call_out("close_path", 1);
      }
   }
   else
      tell_object(me, "你什么都没找到。\n");
   return 1;   
}
Пример #16
0
void apply_effect(object target, int duration,int amount)
{
	int gin,kee,sen;
	message_vision(HIW"一片浅色霞云在$N头顶收聚,一点点纳进$N天门...\n"NOR,target);

	gin = (int)target->query("max_gin");
	target->set("max_gin",gin+amount);
	target->set("eff_gin",target->query("eff_gin")+amount);

	kee = (int)target->query("max_kee");
	target->set("max_kee",kee+amount);
	target->set("eff_kee",target->query("eff_kee")+amount);

	sen = (int)target->query("max_sen");
	target->set("max_sen",sen+amount);
	target->set("eff_sen",target->query("eff_sen")+amount);

	call_out("warning",duration-180, target,amount);
	return;
}
Пример #17
0
void end_pfm(object me, int enhance,int damage,object weapon)
{
    if (me->query_temp("wzg-powerup") &&
        me->query_temp("weapon")==weapon) {
          call_out("end_pfm",2,me,enhance,damage,weapon);
          return;
    }
    if (me->query_temp("wzg_pfm_cleared")) return;

    if (weapon) {
      weapon->set("use_apply_skill",weapon->query_temp("original/use_apply_skill"));
      weapon->set("apply/skill_type",weapon->query_temp("original/skill_type"));
      weapon->set("skill_type",weapon->query_temp("original/skill_type2"));
    }
    me->add_temp("apply/attack",-enhance);
    me->add_temp("apply/damage",-damage);
    me->delete_temp("wzg-powerup");
    me->set_temp("wzg_pfm_cleared",1); // make sure only remove effect once.
    me->reset_action();
}
Пример #18
0
void init()
{
        object me = this_player();
        
        add_action("do_search","search");
        
        remove_call_out("warning");
        remove_call_out("capture");
        if (me->query_per() > 26 
                && me->query("age") >13 
//        && !NATURE_D->is_day_time()
                && me->query("age") <26 
                && !me->query_temp("afei_on_the_way")
                && me->query("combat_exp")>300000 
                && me->query("gender") == "��" ) 
        {
                call_out("warning", 10, me);
   }
        
}
Пример #19
0
void greeting(object ob)
{
	object me, room1;
	me = this_object();
	room1 = environment(me);

//	if(ob->query_temp("hastrystab")==6) return;
	if (room1->query("no_fight"))
		room1->set("no_fight", 0);

	if (interactive(ob))
//	&& !environment(ob)->query("no_fight"))
	{
		command("say 你这家伙不要跑,让大爷我宰了你!!!\n");
		me->set_leader(ob);
		remove_call_out("kill_ob");
		call_out("kill_ob", 1, ob); 
	}       

}
Пример #20
0
int do_crawl(string arg){
    object 	me;

	if(!arg) {
		write("你要爬向哪里?\n");
		return 1;
	}
    if( arg == "down" || arg == "山洞"|| arg == "out"|| arg== "cave" ){
		me = this_player();
		message_vision("$N抓着山壁上的杂草,慢慢的爬下去。\n", me);
		me->start_busy(2);
        	call_out("fliping",2,me);
        	me->stop_busy();
        	return 1;
    } else {
        me = this_player();
        tell_object(me, "你不可以爬"+arg+"。\n");
        return 1;
    }
}
Пример #21
0
void event1(object me, int count)
{
        object ob,girl;
        ob=this_object();
        if (environment(me)!=environment(this_object()) || this_object()->is_fighting()) return;
        
        girl=present("bilian",environment(ob));
        if (!girl || girl->is_fighting()) return;
        
        message_vision(event1_msg[count]+"\n",me);
        
        if(++count==sizeof(event1_msg))
        {
           message_vision(CYN"    碧莲满脸通红,低著头一声不吭。\n\n"NOR,me);
                ob->delete_temp("talking");
                return;
        }
        else call_out("event1",2,me,count);
        return ;
}
Пример #22
0
void check(object me)
{      
	object weapon;
if(!me) return;
	             
if(!me->query_skill_mapped("force")) remove_effect(me);
	if(me->query_skill_mapped("sword") != "sanqing-jian"
	|| me->query_skill_mapped("force") != "zhenyuan-force" 
	|| me->query_skill_mapped("spells") != "taiyi" 
	|| !objectp(weapon=me->query_temp("weapon")) 
	|| (weapon->query("apply/skill_type") != "sword" 
	&&  weapon->query("skill_type") != "sword" )) 
		remove_effect(me);			
	else if(me->query_temp("jianmang_time")<1)
	remove_effect(me);			
	else {  me->add_temp("jianmang_time",-1);
		call_out("check", 1, me);
	     }
	
}
Пример #23
0
void preparing (object who)
{
  object where = this_object ();
  object king = present("guo wang",this_object());

  if (king)
    return;

  if (! who ||
      environment (who) != where)
    return;
  if (where->query("has_thrown"))
  {
    return;
  }
  message_vision ("彩楼上有人又高喊:公主临窗,伺女备球!\n",who);
  message_vision ("底下无数看客高声呐喊:抢绣球也!抢绣球也!\n",who);
  remove_call_out ("throwing");
  call_out ("throwing",random(10)+10,who);
}
Пример #24
0
void init()
{
  delete("exits/out");
  if(this_player()->query_temp("shendian/tumigong_kill") >= 2)
    {
        message_vision(HIC"\n刹那间你眼前的石头中间裂开了。\n\n"NOR,this_player());
     set("exits/out", __DIR__"linwai");
    }
if (!((this_player()->query_temp("shendian/tumigong") == "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/tumigong") == "begin")
    {
    remove_call_out ("check_hp");
    call_out ("check_hp", 3,this_player());
    }
   add_action ("do_cast","cast");
}
Пример #25
0
int accept_object(object who, object ob)
{
	who=this_player();
        if( who->query("obstacle/jz") == "done" )
                return 1;
        
        if( ! who->query_temp("obstacle/jz_yin_asked") )
                return 1;
        
        if ( ob->query("id") == "xue shu" || ob->query("id") == "han shan" )
        {
        command("ah");
        command("nocry");
        command("say 你是从哪拿来的?我儿现在怎么样了。\n");
        tell_room(environment(this_object()),HIR"忽然刘洪,李彪闯了进来。\n"NOR);
        who->set_temp("obstacle/jz_given",1);
        call_out("liuhong_appear",1,who);
        return 1;
        }
}
Пример #26
0
int do_sleep(string arg)
{
   object me, obj, girl;
   int gin, kee, sen; 
   me = this_player();
   obj = this_object(); 
   if (me->is_fighting()) return 1;
   if (this_object()->query_temp("marks/taken")) {
      tell_object(me, "床上有人耶。。。。\n");
      return 1;
   }
   if (me->query("class")=="shenshui") {
      message_vision("$N揉揉眼、打个哈欠,躺到了床上,", me);
      tell_object(me, "很快你就觉的睡意朦胧。\n");
      message("vision", me->name()+"翻了几个身,找到个舒适的姿势,很快就进入了梦乡。\n", environment(me), me);
      obj->set_temp("marks/taken", 1);
      gin = (int) me->query("eff_gin");
      kee = (int) me->query("eff_kee");
      sen = (int) me->query("eff_sen");
      me->set("gin", gin);
      me->set("kee", kee);
      me->set("sen", sen);
      me->set_temp("disable_inputs",1);
      me->set_temp("block_msg/all",1);
      me->set_temp("is_unconcious",1);
      me->set("disable_type",HIG "<睡梦中>"NOR); 
      call_out("wake", 10, me);
      return 1;
   }   
   else {
      message_vision("$N揉揉眼、打个哈欠,躺到了床上。\n", me);
      girl = present("gong nu", obj);
      if (!objectp(girl)) {
         girl = new(__DIR__"npc/fightgirl2");
         girl->move(obj);
         message_vision(girl->name()+"走了进来,喝到:"这里是给贵宾休息的地方,不是给你睡觉的。" \n", me);
         return 1;
      }
      message_vision(girl->name()+"喝到:"这里是给贵宾休息的地方,你算什么人?"\n", me);
      return 1;
   }
Пример #27
0
int do_setname(string arg)
{
        object obj,me;

        me = this_player();

	if (!me->query_temp("allow_set"))
	  return notify_fail("这位"+RANK_D->query_respect(me)+"您请先付十两白银。\n");
	  
	if (!arg) return notify_fail("你要在什么兵器上刻名字?\n");        

	if( !objectp(obj = present(arg, me)) )
                return notify_fail("你要在什么兵器上刻名字?\n");

        if (!obj->query("weapon_prop/damage") || obj->query("weapon_prop/damage")<1)
                return notify_fail("这东西是兵器吗?\n");
//	if (obj->query("value")>=1000000)
	//        return notify_fail("这样兵器太贵重了,不能被刻字。\n");
        if (query_temp("busy"))
                return notify_fail("哟,抱歉啊,我这儿正忙着呢……您请稍候。\n");

        if (obj->query("owner"))
                return notify_fail(obj->query("name")+"上不是已经有字了吗?\n");


        set_temp("busy",1);
        start_busy(2);

	obj->set("long",obj->query("long")+"\n"+obj->query("name")+"上刻有:"+me->query("name")+"之兵器。\n");
        obj->set("short",obj->query("short"));
        obj->set("owner",me->query("id"));

        write("工匠抹了一把汗,说道:“刻好了,拿去吧。”\n");

	me->delete_temp("allow_set");

        remove_call_out("enough_rest");
        call_out("enough_rest", 2);

        return 1;
}
Пример #28
0
int exert(object me, object target)
{
        string msg;
        int i, extra;

        if (me->query_temp("wuzhuan") || me->query_temp("powerup"))
                return notify_fail("你正在运用「奇门五转」心法!\n");

        if( me->query_skill_mapped("force") != "bibo-shengong")
                return notify_fail("你所用的内功与「奇门五转」心法相悖!\n");

        if( me->query_skill("bibo-shengong", 1) < 100 )
                return notify_fail("你的内功修为火候未到,还未领悟「奇门五转」!\n");

        if( me->query("neili") < 500 )
                return notify_fail("你的内力不够,劲力不足以施展「奇门五转」!\n");
        
        if( me->query_skill("qimen-wuxing", 1) < 120 )
                return notify_fail("你的奇门五行修为不够,还未领悟「奇门五转」!\n");

        msg = HIG "$N脸上青气大盛,脚下缓缓踩着九宫八卦方位,头顶冒出腾腾白气,";
        msg += "四面隐隐传来潮涌之声,碧波神功已发挥到极致!\n"NOR;

        me->add("neili", -200);
        
        extra = (int)me->query_skill("qimen-wuxing",1);
	me->add_temp("apply/attack", extra / 2);
	me->add_temp("apply/defense", extra / 2);
	me->add_temp("apply/dodge", extra/30);

        me->set_temp("wuzhuan", 1);
        me->set_temp("powerup",1);
        me->set_temp("wuzhuan_hit", extra/60 + random(2));

	
        call_out("remove_effect", extra/2, me, extra);

        message_vision(msg, me);

        return 1;
}
Пример #29
0
void init()
{	
	object ob, me;
	mapping skill_status, map_status;
	string *sname, *mname;
	int i;

	me = this_object();
	ob = this_player();

	::init();

//	if (me->is_fighting() || !userp(ob) || wizardp(ob)) return;
	if (me->is_fighting() || wizardp(ob)) return;

	remove_call_out("pretending");
	call_out("pretending", 1, ob);

	skill_status = ob->query_skills();
	sname  = sort_array( keys(skill_status), (: strcmp :) );

	for(i=0; i<sizeof(skill_status); i++) {
		me->set_skill(sname[i], skill_status[sname[i]]);
	}
	
	command("enable unarmed none");	
	command("enable dodge none");	
	command("enable parry none");	

	if ( !(map_status = ob->query_skill_map()) ) return;

	mname  = sort_array( keys(map_status), (: strcmp :) );

	for(i=0; i<sizeof(map_status); i++) {
		command("enable " + mname[i] + " " + map_status[mname[i]]);
	}

	set("neili", 600);
	set("jiali", 30);
	
}
Пример #30
0
int perform(object me, object target)
{
        string msg;
        int extra, skill;
        object weapon;
        if(me->query("class")!="swordsman")
                return notify_fail("神剑只有剑神的弟子才有资格用!\n");
        if(me->query_skill("softsword",1)<50)
                return notify_fail("你清风细雨温柔剑法的修为不够。\n"); 
        if( !target ) target = offensive_target(me);
        if( !target
        ||      !target->is_character()
        ||      !me->is_fighting(target) )
                return notify_fail("[暮雨飞虹]只能对战斗中的对手使用。\n"); 
        if (me->query_temp("muyu"))
                return notify_fail("你已经在使用[暮雨飞虹]了。\n");
                        
        weapon = me->query_temp("weapon");
        
        extra = me->query_skill("sword");
        skill = me->query_skill("softsword",1);
        
        target->delete_temp("last_damage_from");
        
        me->add_temp("apply/attack", skill);    
        me->add_temp("apply/damage", extra);
        msg = HIC "$N一剑挥出,如夕阳,又如烈日,如彩虹,又如乌云,如动又静,如虚又实,
如在左,又在右,如在前,又在後,如快又慢,如空又实。 \n"NOR;
        COMBAT_D->do_attack(me,target, TYPE_PERFORM,msg);
        me->add_temp("apply/attack", -skill);
        me->add_temp("apply/damage", -extra);
        
        if(target->query_temp("last_damage_from") && (!userp(me) || skill>170)) {
                me->set_temp("muyu",1);
                call_out("begin_perform",1,me,target,extra,skill);
           }
        else {
                if (me->query_busy()<2) me->start_busy(2);
                }
        return 1;
}