示例#1
0
文件: rankd.c 项目: lostsnow/dtxy
string describe_neili(int value)
{
        int year, sixty, left;
        string line;
        
        year = value/100;
        sixty = year/60;
        left = year - sixty*60;

        if( year <= 0 )
        {
                line = HIB "不到一年" NOR;
                return line;
        }
        
        if(sixty > 0 )
        {
                if ( left != 0 )
                { 
                        line = HIW + chinese_number(sixty) + "甲子" + NOR + "又" +  HIR + chinese_number(left) + "年" + NOR;
                }
                else 
                {
                        line = HIW + chinese_number(sixty) + "甲子"  + NOR;     
                }               
        }
        else 
                line = HIR + chinese_number(year)+"年" + NOR;

        return line;
}
示例#2
0
文件: questd.c 项目: aricxu/xkx100
int quest_reward(object me, object who,object quest_item)
{
	mapping quest;
	int exp, pot, score;
	
	quest = quest_item->query("dynamic_quest");
	
	if (base_name(quest_item) != quest["file_name"])
		return 0;

	if (base_name(who) != quest["owner_name"]) 
		return 0;

        exp = 100 + random(400);
        pot = exp / (random(10) + 1);
        score = 50 + random(50);
        me->add("combat_exp",exp);
        me->add("potential",pot);
        me->add("score",score);
	tell_object(me,HIW"你被奖励了:\n" +
        	    chinese_number(exp) + "点实战经验\n"+
        	    chinese_number(pot) + "点潜能\n" +
        	    chinese_number(score)+"点江湖阅历\n"NOR);
	me->add("TASK",1);
	if ( !undefinedp(quest["fin_func"]))
		call_other(this_object(), quest["fin_func"], me, who, quest_item);
	if (quest_item)
		destruct(quest_item);
	return 1;
}
示例#3
0
文件: moneyd.c 项目: aricxu/xkx100
string price_str(int amount)
{
        // returns a chinese string of `amount` of money
	string output;

        if (amount < 1)
                amount = 1;

        if (amount / 10000) {
                output = chinese_number(amount / 10000) + "两黄金";
                amount %= 10000;
        }
        else
                output = "";
        if (amount / 100) {
		if (output != "")
                	output += "又" + chinese_number(amount / 100) + "两白银";
		else
			output = chinese_number(amount / 100) + "两白银";
                amount %= 100;
        }
        if (amount)
		if (output != "")
                	return output + "又" + chinese_number(amount) + "文铜板";
		else
			return chinese_number(amount) + "文铜板";
        return output;
}
示例#4
0
void end_death(object me)
{
    	int cost;
	mapping skl, lrn, map;
	string *sname, *mapped;
    	int i;


    if( me->query_temp("death/combat_exp") )
    {
        // cost =(int) ( me->query("combat_exp") *
// int �� str �ߵ��˵�ʵս����ȽϿ�... so �۱Ƚ϶�... 5% - 10%
//       ( (random(me->query("int")*2 + me->query("str") - 30) + 60) / 12 ) /
// kar �Ƚϸߵ���.. �Ƚ��и���... ���Դ���... ���� 1 - 2....
//        ( random(me->query("kar") - 10) / 15 + 1) / 100 );
	if( !me->query("death/time") ) {
	    cost = me->query("combat_exp") / 100 * 3;
            me->add("combat_exp", -cost);
            tell_object(me, "���ʵս���鱻����"+chinese_number(cost)+"�㡣\n");
	    return;
	}

        cost = me->query("combat_exp") / 100 * 7;

        me->add("combat_exp", -cost);
	tell_object(me, "���ʵս���鱻����"+chinese_number(cost)+"�㡣\n");
    }
    if( me->query_temp("death/skill") )
    {
        skl = me->query_skills();
        if(sizeof(skl)) {
            sname  = keys(skl);
            map = me->query_skill_map();
            if( mapp(map) ) mapped = values(map);
            if( !mapped ) mapped = ({});
示例#5
0
文件: zzzjob.c 项目: mudchina/sjsh
void ok(object who)
{
        int exp,pot,i;
        if (!who) return;
        command("pat" + who->query("id"));
        command("say 干的好,你办事干净利落,将来必成大器!");
        if(!who->query("zzz_job_count"))
		who->set("zzz_job_count",1);
        else
		who->add("zzz_job_count",1);        
		i=who->query("zzz_job_count");
		i/=30;
		exp=200+random(20)+i;
        if(who->query_temp("zzz_job_super"))
        {exp+=100;
		 who->delete_temp("zzz_job_super");
		}
		pot=exp/3+random(10);
		//i=3+random(3)+exp/200;
		
		who->add("potential",pot);
        who->add("combat_exp",exp);
        who->delete_temp("zzz_job_target");
        who->delete_temp("zzz_given");
		who->delete_temp("zzz_job_type");
		who->clear_condition("zzz_mission");
        who->apply_condition("zzz_busy",3+random(6)+exp/50);      
				tell_object(who,HIW"你被奖励了:\n" + 
                       chinese_number(exp) + "点实战经验\n" +
                       chinese_number(pot) + "点潜能\n"+
                       NOR);
                return;
}
示例#6
0
int do_train(string arg)
{
        object me,pet,gold;
        int cost;
        me = this_player();
        if(me->is_busy())
        return notify_fail("你上一个动作还没有完成。\n");
        if(!arg) return notify_fail("王虎道:"你要什么呀?"\n");
        pet = present(arg,environment());
        if(!objectp(pet)) return notify_fail("王虎道:"你要什么呀?"\n");
        if(pet->query("possessed") != me )
        return notify_fail("王虎道:"那好象不是你的吧?"\n");
//okey we identified the target, now the cost:
        cost = to_int(sqrt(to_float((int)pet->query("combat_exp"))))/5;
        gold = present("gold_money", me);
        if(!gold) return notify_fail("你身上没有金子。\n");
        if((int) gold->query_amount() < cost)
        return notify_fail("你身上没有"+chinese_number(cost)+"两金子。\n");
        if((int)me->query("score") < cost)
        return notify_fail("你的评价不够"+chinese_number(cost)+"点。\n");
        pet->add("combat_exp",cost*50);
        pet->save();
        gold->add_amount(-cost);
        me->add("score",-cost);
        command("say 好了!下次再打!\n");
        return 1;
}   
示例#7
0
string chinese_monthday(int date)
{
        mixed *local;
        local = localtime(date);
        return sprintf("%s月%s日",chinese_number(local[LT_MON] + 1),
                chinese_number(local[LT_MDAY]+1));
}
示例#8
0
文件: hp2.c 项目: mudchina/sjsh
int main(object me, string arg)
{
	object ob;
	mapping my;
	int  year, day, hour;
 
	seteuid(getuid(me));
 
	if(!arg)
		ob = me;
	else if (wizardp(me)) {
		ob = present(arg, environment(me));
		if (!ob) ob = find_player(arg);
		if (!ob) ob = find_living(arg);
        if (!ob) return notify_fail("你要察看谁的状态?\n");
	} else
		return notify_fail("只有巫师能察看别人的状态。\n");
 
	my = ob->query_entire_dbase();
 
    printf(" 精  : %s%4d/ %4d %s(%3d%%)" NOR "    灵力: %s%4d / %4d (+%d)\n" NOR,
		status_color(my["gin"], my["eff_gin"]),	my["gin"],	my["eff_gin"],
		status_color(my["eff_gin"], my["max_gin"]),	my["eff_gin"] * 100 / my["max_gin"],
		status_color(my["atman"], my["max_atman"]),	my["atman"], my["max_atman"],
		my["atman_factor"] );
    printf(" 气血: %s%4d/ %4d %s(%3d%%)" NOR "    内力: %s%4d / %4d (+%d)\n" NOR,
		status_color(my["kee"], my["eff_kee"]),	my["kee"], my["eff_kee"],
		status_color(my["eff_kee"], my["max_kee"]),	my["eff_kee"] * 100 / my["max_kee"],
		status_color(my["force"], my["max_force"]),	my["force"], my["max_force"],
		my["force_factor"] );
    printf(" 精神: %s%4d/ %4d %s(%3d%%)" NOR "    法力: %s%4d / %4d (+%d)\n" NOR,
		status_color(my["sen"], my["eff_sen"]),	my["sen"], my["eff_sen"],
		status_color(my["eff_sen"], my["max_sen"]),	my["eff_sen"] * 100 / my["max_sen"],
		status_color(my["mana"], my["max_mana"]), my["mana"], my["max_mana"],
		my["mana_factor"] );
    printf(" 食物: %s%4d/ %4d      " NOR "     潜能: %s%d\n" NOR,
    //printf(" 食物: %s%4d/ %4d      " NOR "     悟力: %s%d\n" NOR,
        status_color(my["food"], ob->max_food_capacity()),
        my["food"], ob->max_food_capacity(),
        HIY,
        (int)ob->query("potential") - (int)ob->query("learned_points"));

	year = my["daoxing"] / 1000; 
	day = (my["daoxing"] - year * 1000) / 4;
	hour = (my["daoxing"] - year * 1000 - day * 4) * 3; 
    //printf(" 饮水: %s%4d/ %4d      " NOR "     经验: %s%d\n" NOR,
    printf(" 饮水: %s%4d/ %4d      " NOR "     道行: %s",
	//%s年%s天%s时辰\n" NOR,
        status_color(my["water"], ob->max_water_capacity()),
        my["water"], ob->max_water_capacity(),
        HIM );
    if(year) printf("%s年", chinese_number(year));
    if(day) printf("%s天", chinese_number(day));
    if(hour) printf("%s时辰", chinese_number(hour));
	if(!year && !day && !hour)  printf("你还没有道行。");
	//my["daoxing"] );
	printf("\n"NOR);
	return 1;
}
示例#9
0
文件: vendor.c 项目: gongfuPanada/jy
string price_string(int v)
{
	if( v%10000 == 0 )
		return chinese_number(v/10000) + "两黄金";
	if( v%100 == 0 )
		return chinese_number(v/100) + "两白银";
	return chinese_number(v) + "文铜板";
}
示例#10
0
int do_job(string arg)
{
	int add_exp,add_pot,exp,pot;
	object ob,me;
	ob=this_player();
	me=this_object();
	if(!arg || arg!="ok") return 0;

	if(!ob->query_temp("job_name"))
		return notify_fail("没给你工作,你怎么跑来覆命了?\n");
	if (interactive(ob) && (int)ob->query_condition("wuguan_job"))
	{
		command("hmm "+ob->query("id"));
		return notify_fail(RED "你这么快回来了,是不是还没做完啊,吩咐你回来了吗?"NOR);
	}
	if(!ob->query_temp("mark/还了"))
		return notify_fail("你先把工具还到老李那再来覆命吧。\n");

	if(!(ob->query_temp("mark/劈完了") || 
		ob->query_temp("mark/浇完了") ||
		ob->query_temp("mark/锄完了") ||
		ob->query_temp("mark/锯完了") ||
		ob->query_temp("mark/扫完了") ||
		ob->query_temp("mark/挑完了")))
		return notify_fail("你偷懒啊,叫你干活你不去干,跑来领功!\n");

	command("smile "+ob->query("id"));
	command("say 好,"+RANK_D->query_respect(ob)+",做得好,这是给你的奖赏!");
	if (random(10)<7)
	{
		me->add_money("coin",(int)(ob->query_skill("force",1)/2)+65);
		command("give "+ob->query("id")+" "+((int)(ob->query_skill("force",1)/2)+50)+" coin");
	}
	else
	{
		me->add_money("silver",(int)(ob->query_skill("force",1)/5)+1);
		command("give "+ob->query("id")+" "+((int)(ob->query_skill("force",1)/5)+1)+" silver");
	}
	add_pot=50 + random(50) + (int)(ob->query_skill("force",1)/10);
	add_exp=100 + random(100) + (int)(ob->query_skill("force",1)/5) ;	
	exp=(int)ob->query("combat_exp");
	pot=(int)ob->query("potential");
	exp= exp + add_exp;
	pot= pot + add_pot;
	ob->set("combat_exp",exp);
	ob->set("potential",pot);
	tell_object(ob,HIW"你得到了:"
		+ chinese_number(add_exp) + "点实战经验,"
		+ chinese_number(add_pot) + "点潜能,\n"NOR);
	ob->delete_temp("job_name");
	ob->delete_temp("mark");
	ob->set_temp("prize_reason","武馆");
	ob->set_temp("can_give_prize",1);
	ob->set_temp("prize_exp",add_exp);
	ob->set_temp("prize_pot",add_pot);
	return 1;
}
示例#11
0
string value_string(int value)
{
	if( value < 1 ) value = 1;
	else if( value < 100 )
		return chinese_number(value) + "文钱";
	else
		return chinese_number(value/100) + "两"
			+ (value%100? "又" + chinese_number(value%100) + "文钱": "");
}
示例#12
0
文件: exert.c 项目: szhowardhuang/fs2
int main( object me, string arg, int repeat )
{
	string force, tmp;
	int i, r;

	seteuid(getuid());

	if( !arg )
		return notify_fail( "你要用内功做什么?\n" );
	notify_fail( "你的内功中没有这种功能。\n" );
	arg = lower_case(arg);
	tmp = arg;
	if( sscanf( arg, "%s %d", arg, repeat ) != 2 )
		arg = tmp;
	if( repeat < 1 ) repeat = 1;
	else if( repeat > 10 ) repeat = 10;
	if( me->is_busy() )
		return notify_fail( "你一运气用力, 发觉丹田中毫无内息。\n" );
	if( me->query_temp("no_power_e") )
		return notify_fail( "你感觉到体内有无数的气劲乱流, 使你无法正常的使用内力。\n" );
	if( (!me->query("food")||!me->query("water")) && userp(me) ) {
		if( random(100) < 1 ) {
			me->receive_wound( "kee", me->query("age") );
			write( HIR"你又饿又渴, 一时之间无法控制真气, 受到了内伤!"NOR );
		}
		return notify_fail( "你感觉又饿又渴! 无法运气!\n" );
	}

	if( stringp( force=me->query_skill_mapped("force") ) ) {
		for( i=0; i<repeat; i++ )
			if( SKILL_D(force)->exert_function( me, arg ) ) {
				r = 1;
				if( random(300) < (int)me->query_skill( "force", 1 ) )
					me->improve_skill( force, 1, 1 );
			}
			else if( SKILL_D("force")->exert_function( me, arg ) ) {
				r = 1;
				if ( random(300) < (int)me->query_skill( "force", 1 ) )
					me->improve_skill( "force", 1, 1 );
			}
		if( r == 1 )
			switch(arg) {
			case "reseckee" :
				message_vision( CYN"$N将体中的内力化成灵气,使灵气转强。\n"NOR, me ); break;
			case "recover" :
				message_vision( CYN"$N深深吸了" + chinese_number(repeat) + "口气,脸色看起来好多了。\n"NOR, me ); break;
			case "regenerate" :
				message_vision( CYN"$N深深吸了" + chinese_number(repeat) + "口气,手脚活动了几下,整个人看起来有活力多了。\n"NOR, me ); break;
			case "refresh" :
				message_vision( CYN"$N略一凝神,吸了"+chinese_number(repeat)+"口气,精神看起来清醒多了。\n"NOR, me ); break;
			}
		return r;
	}

	return notify_fail( "尚未选择(enable)所要使用的内功。\n" );
}
示例#13
0
string level_description(int level)
{
	if ( stage(level) < 1 )
		return HIR "第"+chinese_number( stage(level) )+"层 " NOR;
	else if ( stage(level) < 2 )
		return HIC "第"+chinese_number( stage(level) )+"层 " NOR;
	else if ( stage(level) < 3 )
		return HIB "第"+chinese_number( stage(level) )+"层 " NOR;
	else 
		return HIW "第"+chinese_number( stage(level) )+"层 " NOR;
}
示例#14
0
文件: chinesed.c 项目: mudchina/fy4
string chinese_date(int date)
{
        mixed *local; 
        local = NATURE_D->getTime(date); 
        return sprintf("%s%sÄê%sÔÂ%sÈÕ%sʱ%s¿Ì",
                sym_tien[local[4]%10], sym_dee[local[4]%12],
                chinese_number(local[3]+1),
                chinese_number(local[2]+1),
                sym_dee[local[1]],
                chinese_number(local[0]+1), 
                date);
} 
示例#15
0
string chinese_date(int date)
{
	mixed *local;

	local = localtime(date);

	return sprintf("%s%s年%s月%s日%s时%s刻",
		sym_tien[local[LT_YEAR]%10], sym_dee[local[LT_YEAR]%12],
		chinese_number(local[LT_MON]+1),
		chinese_number(local[LT_MDAY] + (local[LT_HOUR]>23? 1 : 0)),
		sym_dee[((local[LT_HOUR]+1)%24)/2],
		chinese_number((local[LT_MIN]+1)%2 * 2 + local[LT_MIN]/30 + 1) );
}
示例#16
0
string chinese_date(int date)
{
   mixed *local;

   local = localtime(date);

   return sprintf("%s%sÄê%sÔÂ%sÈÕ%sʱ%s¿Ì",
     sym_tien[(local[LT_YEAR]+6)%10], sym_dee[(local[LT_YEAR]+10)%12],
     chinese_number(local[LT_MON]+1),
     chinese_number(local[LT_MDAY] + (local[LT_HOUR]>23? 1 : 0)),
     sym_dee[(local[LT_HOUR]%24)/2],
     chinese_number(local[LT_HOUR]%2 * 2 + local[LT_MIN]/30 + 1) );
}
示例#17
0
string level_description(int level)
{
	if ( stage(level) < 3 )
		return HIB "第"+chinese_number( stage(level) )+"层 " NOR;
	else if ( stage(level) < 5 )
		return HIM "第"+chinese_number( stage(level) )+"层 " NOR;
	else if ( stage(level) < 7 )
		return WHT "第"+chinese_number( stage(level) )+"层 " NOR;
	else if ( stage(level) < 9 )
		return HIY "第"+chinese_number( stage(level) )+"层 " NOR;
	else 
		return HIW "第"+chinese_number( stage(level) )+"层 " NOR;
}
示例#18
0
int main(object me, string arg)
{
     object ob;
     if(!arg)
      return notify_fail("指令为chasm id\n");
    ob = find_player(arg);
     if(!ob) ob = find_living(arg);
      if (!ob) return notify_fail("没这个人啊。。。。。咬死你,:D\n");
    tell_object(me,ob->query("name")+"的寿命是"+HIR+chinese_number((int)ob->query("life/life_time"))+NOR"岁\n");
    tell_object(me,ob->query("name")+"已经吃了"+HIR+chinese_number((int)ob->query("rsg_eaten"))+NOR"个人参果\n");
    tell_object(me,ob->query("name")+"kar="+ob->query("kar")+" per="+ob->query("per")+"\n");
    return 1;
}
示例#19
0
string level_description(int level)
{
	if ( stage(level) < 3 )
		return BLU "第"+chinese_number( stage(level) )+"重 " NOR;
	else if ( stage(level) < 5 )
		return HIB "第"+chinese_number( stage(level) )+"重 " NOR;
	else if ( stage(level) < 7 )
		return YEL "第"+chinese_number( stage(level) )+"重 " NOR;
	else if ( stage(level) < 9 )
		return CYN "第"+chinese_number( stage(level) )+"重 " NOR;
	else 
		return HIW "第"+chinese_number( stage(level) )+"重 " NOR;
}
示例#20
0
文件: letter1.c 项目: heypnus/xkx2001
string chinese_time(int date)
{
	mixed *local;
	int i;

	local = localtime(date);
	i = (local[LT_HOUR]+1) % 2 * 2 + local[LT_MIN] / 30;
	return sprintf("戊寅年%s月%s日%s时%s",
                chinese_number(local[LT_MON] + 1),
                chinese_number(local[LT_MDAY]),
                sym_di[((local[LT_HOUR] + 1) % 24) / 2],
		i?chinese_number((local[LT_HOUR]+1) % 2 * 2 + 
		local[LT_MIN] / 30 ) + "刻":"正");
}
示例#21
0
/*
int check_legal_name(string name);
int check_legal_name(string name)
{
    int i;
    i = strlen(name);
    if( (strlen(name) < 4) || (strlen(name) > 12 ) ) {
        write("对不起,中文名字必须是三到六个中文字。\n");
        return 0;
    }
    while(i--) {
        if( name[i]<=' ' ) {
            write("对不起,中文名字不能用控制字元。\n");
            return 0;
        }
        if( i%2==0 && !is_chinese(name[i..<0]) ) {
            write("对不起,名字必需是中文。\n");
            return 0;
        }
    }
    return 1;
}
*/
int main(object me, string arg)
{
    object who;
	string uid, org_title;
   if(!arg || sscanf(arg,"%s %s",uid ,org_title) != 2)
	   return notify_fail("指令格式 : entitle <id> <组织中的称号>\n");
    if(me->query("organization/privs") != -1) 
        return notify_fail("你没有这种权力。\n");
    if(!objectp(who = present(uid, environment(me))) 
       || !living(who) || !userp(who))
        return notify_fail("这里没有这个玩家。\n");
    if(who->query("organization/org_name") != me->query("organization/org_name"))
        return notify_fail( who->query("name") + "并不是" + 
                            me->query("organization/org_name") + "的一份子。\n");
    if((int)me->query("score") < LEADER_SCORE_COST)
        return notify_fail( "你的评价不够"+
                            chinese_number(LEADER_SCORE_COST)+"点。\n");
	if((int)who->query("score") < MEMBER_SCORE_COST)
        return notify_fail( who->query("name")+"的评价不够"+
                            chinese_number(MEMBER_SCORE_COST)+"点。\n");
	if( strlen(org_title) > 20 )
		return notify_fail("你取的称号太长了\n");
	org_title = replace_string(org_title, "$BLK$", BLK);
	org_title = replace_string(org_title, "$RED$", RED);
	org_title = replace_string(org_title, "$GRN$", GRN);
	org_title = replace_string(org_title, "$YEL$", YEL);
	org_title = replace_string(org_title, "$BLU$", BLU);
	org_title = replace_string(org_title, "$MAG$", MAG);
	org_title = replace_string(org_title, "$CYN$", CYN);
	org_title = replace_string(org_title, "$WHT$", WHT);
	org_title = replace_string(org_title, "$HIR$", HIR);
	org_title = replace_string(org_title, "$HIG$", HIG);
	org_title = replace_string(org_title, "$HIY$", HIY);
	org_title = replace_string(org_title, "$HIB$", HIB);
	org_title = replace_string(org_title, "$HIM$", HIM);
	org_title = replace_string(org_title, "$HIC$", HIC);
	org_title = replace_string(org_title, "$HIW$", HIW);
	org_title = replace_string(org_title, "$NOR$", NOR);
    who->set("organization/org_title",org_title+NOR);
	me->add("score",-LEADER_SCORE_COST);
    who->add("score",-MEMBER_SCORE_COST);
	if (me != who)
	{
		message_vision("$N封$n为"+me->query("organization/org_name")+"的"+org_title+"\n"+NOR,me,who);
	}else
		message_vision("$N封$N自己为"+me->query("organization/org_name")+"的"+org_title+"\n"+NOR,me);
    return 1;
}
示例#22
0
void assign_apprentice(string title, int privs)
{
        mapping family;

        if (! mapp(family = query("family"))) return;

        family["title"] = title;
        family["privs"] = privs;

        if (userp(this_object()) || ! query("title"))
        {
                switch (family["generation"])
                {
                case 0:
                        set("title", family["family_name"] + family["title"]);
                        break;
                case 1:
                        set("title", family["family_name"] + "开山祖师");
                        break;
                default:
                        set("title", sprintf("%s第%s代%s", family["family_name"],
                                chinese_number(family["generation"]), family["title"]));
                        break;
                }
        }
}
示例#23
0
int main(object me, string arg)
{
    string chan, *channels, choice, choicename;
    string myid, playerid, myname, playername;
    string myvariable;
    object player;
    int nullify_vote_time=1800, diff, i, chansize, chanmatch;
    int total_votes_required;
    mapping voted_player;
    string ip;
    int votes_count;
    int zige;
    
    zige = ( (int)me->query("daoxing") + (int)me->query("combat_exp") )/2;

    if( !arg || sscanf(arg, "%s %s %s", choice, chan, playerid)!=3 ) return notify_fail(SYNTAX);

    // conditions for voting: exp > exp_limit and age > age_limit
    if (me->query("age") < age_limit || zige < exp_limit) {
	if (me->query("age") < age_limit) return notify_fail("你年龄不满"+chinese_number(age_limit)+",没有投票权。\n");
	if (zige < exp_limit) return notify_fail("你资格不够,没有投票权。\n");
	}

    // sytax errors.
    if (choice != "open" && choice != "close") return notify_fail(SYNTAX);
    choicename = (choice == "open"? "打开":"关闭");
    // channels available: chat (made this option for future ease, if we open
    // more chat channels, such as channels for each menpai, ...)
    channels=({"chat"});
示例#24
0
int do_train(string arg)
{
        object ob;
        object pet_ob;
        string pet_id;
        object gold;
        int cost;
        string which;
        ob = this_player();
        if(ob->is_busy())
        return notify_fail("你正忙着呢。\n");
        if (!ob->query("pet/pet_id"))
        return notify_fail("小马官道:"你并没有坐骑,来凑什么热闹?"\n");
        pet_id=ob->query("pet/pet_id");
        if( !objectp(pet_ob=present(pet_id, ob)) && 
                !objectp(pet_ob=present(pet_id, environment(ob))))
        return notify_fail("小马官道:"你的坐骑没和你一起来吗?"\n");
        if(pet_ob->query("owner") != ob->query("id")) 
        return notify_fail("小马官道:"那好象不是你的吧?"\n");
        switch (random(2)){
        case 0: which = "combat_exp"; break;
        case 1: which = "daoxing"; break;
        }
//好,我们现在花钱来增加坐骑的wx, dh
        cost = to_int(sqrt(to_float(((int)pet_ob->query("combat_exp")+(int)pet_ob->query("combat_exp")+100))))/5;
        gold = present("gold_money", ob);
        if(!gold) return notify_fail("你身上没有金子。\n");
        if((int) gold->query_amount() < cost)
        return notify_fail("你身上没有"+chinese_number(cost)+"两金子。\n");
        pet_ob->add(which,cost*50);
        pet_ob->save();
        gold->add_amount(-cost);
        command("say 好了!下次再打!\n");
        return 1;
}
示例#25
0
void skill_improved(object me)
{
	//if stage increased, give bonus...?
	int level = (int)me->query_skill("ningxie-force", 1);
	if ( stage(level) == stage(level-1) + 1)
	{
		//this is to prevent ppls from abondoning skill to get bonus.
		if( (int)me->query("nx-force_bonus") < stage(level) )
		{
			me->set("nx-force_bonus", stage(level));
//			me->set("max_force", (int)me->query("max_force") + stage(level)*50 );
			// mon 12/13/98
			me->set("maximum_force", 
				(int)me->query("maximum_force") 
				+ stage(level)*50 );
			me->save();
			log_file("ningxie-force-bonus", ctime( time() )+": "
				+me->query("name")+"("+me->query("id")+")"
				+" got neili "+(stage(level)*50)+".\n");
			message_vision(HIW "$N突然觉得真气冲顶,飘然欲飞。原来是$N的冰谷凝血功进入了第"+chinese_number(stage(level))+"重境界!\n" NOR, me);

		}
	}
			
}
示例#26
0
文件: huo.c 项目: mudchina/fy3
int ask_for_gongzi()
{
        object me,payment;
	int money;
        int paytimes;
	string oldtitle;

        me = this_player();
	oldtitle = me->query("title");
	if (strsrch(oldtitle, "大理镇南王府")==-1)	{
		tell_object(me,"咦?岂有此理,你凭什么来领钱?\n");
		return 1;
	}
	if (strsrch(oldtitle, "大理镇南王府家丁")>=0)	money=1;
	else if (strsrch(oldtitle, "大理镇南王府护卫")>=0)	money=5;
	else if (strsrch(oldtitle, "大理镇南王府武将")>=0)	money=10;
	else	{
		tell_object(me,"老子没钱,要钱找巫师去!\n");
		return 1;
	}
	    paytimes = (int)(me->query("mud_age")/7200);
	    if (me->query("dlpaytimes")<paytimes)
	    {
	        payment=new("/obj/money/gold");
		payment->set_amount(money);
	        payment->move(me);
		me->set("dlpaytimes",paytimes);
	        tell_object(me,"霍先生道:这是你本月的份额,收好吧。\n");
		tell_object(me,query("name")+"从小金库中拿出"+
		chinese_number(money)+"两黄金给了你。\n");
	    }
示例#27
0
文件: wizlist.c 项目: aricxu/xkx100
int main(object me, string arg)
{
	string *list, hood = "", str;
	int j = 0;

	list = sort_array(SECURITY_D->query_wizlist(), (: level :) );
	str = HIC+CHINESE_MUD_NAME+NOR +"巫师董事会成员:\n";
	str += "───────────────────\n";
	for(int i=0; i<sizeof(list); i++, j++)
	{
		if (hood!= wiz_rank(wizhood(list[i])))
		{
			hood = wiz_rank(wizhood(list[i]));
			if (j%7) str += "\n";
			str += hood;
			str = replace_string(str,"(",HIG);
			str = replace_string(str,")",": "NOR);
			j = 0;
		}
		str += sprintf(" %s%s", list[i],
			( j%7==6 ) ? "\n" : ( i<sizeof(list)-1 && hood ==wizhood(list[i+1]) ) ? ", " : "" );
	}
	str += "\n───────────────────\n";
	str += sprintf("目前一共有: %s个巫师\n",chinese_number(sizeof(list)) );
	me->start_more(str);
	return 1;
}
示例#28
0
int real_give_gifts(object ob)
{
	int exp,pot,silv;
	mapping job=ob->query_temp("wuguan/job");
	
	ob->add("combat_exp",(exp=(int)job["bonus"]+random(job["exp"])));
	ob->add("potential",(pot=(int)job["bonus"]/2+random(job["pot"])));
	MONEY_D->pay_player(ob,(silv=(int)job["bonus"]/10+random(job["money"]))*100);
	tell_object(ob,CYN"东方博玉拍了拍你的肩膀:干的好,这是给你的赏钱!\n"NOR);
	tell_object(ob,
HIY"恭喜你获得"+chinese_number(exp)+"点实战经验,"+chinese_number(pot)+"点潜能!\n"NOR);
        tell_object(ob,"东方博玉给你一些银子.\n");
	ob->delete_temp("wuguan/job");
	ob->set_temp("wuguan/job_finish",0);
	return 1;
}
示例#29
0
文件: whois.c 项目: cosin/XYJ
int main(object me, string arg)
{
	int i;
	object *all_user, *named_user;
	
	seteuid(getuid());
	
	if( ! arg )
		return notify_fail("whois <中文名字>\n");
	
	all_user = users();
	
	named_user = filter_array(all_user, (:check_name:), arg);
	
	i = sizeof(named_user);
	
	switch(i){
	case 0:
		printf("在线的没人叫%s。\n", arg);
		break;
	case 1:
		printf("%s的英文名字是"BOLD"%s。\n"NOR,
			arg, named_user[0]->query("id"));
		break;
	default:
		printf("一共有%s个在线玩家叫%s:\n", chinese_number(i), arg);
		while(i --)
			printf(BOLD"%s\n"NOR, named_user[i]->query("id"));
		break;
	}

	return 1;
	
}
示例#30
0
文件: luoyan.c 项目: mudchina/fy3
int perform(object me,object target)
{
  string msg;
object weapon;
  int lvl,power;
  if (!target) target=offensive_target(me);
  if (environment(me)->query("no_fight")==1)
    return notify_fail("此处不许战斗.\n");
  if (!target||!target->is_character()||!me->is_fighting(target))
    return notify_fail("[一剑落九雁]只能对战斗对手使用.\n");
  if (!objectp(weapon = me->query_temp("weapon"))
	|| (string)weapon->query("skill_type") != "sword")
            return notify_fail("你应该用剑才能使出这招。\n");
  lvl=me->query_skill("luoyan-jianfa",1);
  lvl=(int)(lvl/20);
  if (lvl<1) return notify_fail("你的落雁剑法修炼不足.\n");
  if (lvl>9) lvl=9;
    if (me->query("force")<50*lvl)
    return notify_fail("你内力不足,无法使出这招.\n");
  msg=RED+"$N使出[一剑落"+chinese_number(lvl)+"雁],幻出数道剑影向$n攻去.\n"+NOR;
    me->start_busy(3);
  if (random(me->query("combat_exp"))>random(target->query("combat_exp")/2))
 {
   power=(int)me->query_str()*lvl-target->query_str();
   if (power<0) power=10;
  msg+=RED+"$n躲闪不及,身上划出几道大口子.流血不止.\n"+NOR;
  target->receive_wound("kee",power);
  target->receive_damage("kee",power/2);
    me->add("force",-50*lvl);
 }
 else 
   msg+=CYN+"$n身形一展,轻轻巧巧躲过了这招.\n"+NOR;
 message_vision(msg, me, target);
 return 1;
 }