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; }
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; }
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; }
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 = ({});
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; }
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; }
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)); }
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; }
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) + "文铜板"; }
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; }
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) + "文钱": ""); }
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" ); }
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; }
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); }
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) ); }
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) ); }
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; }
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; }
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; }
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 ) + "刻":"正"); }
/* 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; }
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; } } }
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"});
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; }
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); } } }
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"); }
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; }
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; }
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; }
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; }