?? research.c
字號:
// research.c#include <skill.h>#include <ansi.h>inherit F_CLEAN_UP;void create() { seteuid(getuid()); }int main(object me, string arg){ string skill, skill_name; object where = environment(me); int my_skill, jing_cost, times, pertimes; if (me->is_busy()) return notify_fail("你現在正忙著呢。\n"); if (!where->query("sleep_room")) return notify_fail("這里太紛雜,你沒法做研究。\n"); if(!arg || (sscanf(arg, "%s %d", skill, times)!=2 )) return notify_fail("指令格式:research|yanjiu <技能> <次數>\n"); if (times < 1 || times > 100) return notify_fail("研究次數最少一次,最多也不能超過一百次。\n"); if( me->is_fighting() ) return notify_fail("臨陣磨槍?來不及啦。\n"); if( !my_skill = me->query_skill(skill, 1) ) return notify_fail("這項技能你恐怕沒法研究了。\n");// if( skill == "taixuan-gong" )// return notify_fail("太玄不能研究。\n"); if ( skill == "jiuyin-zhengong" || skill == "jiuyin-shenzhua" || skill == "jiuyin-shenzhang" || skill == "dafumo-quan" || skill == "jiuyin-shenfa" || skill == "xuanyin-jian" || skill == "yinlong-bian" || skill == "shenzhao-jing" || skill == "daode-jing" ) return notify_fail("這樣武功不能研究。\n"); if ( skill == "magic-fire" || skill == "magic-ice" || skill == "magic-water" || skill == "magic-earth" || skill == "magic-light" || skill == "magic-dark" || skill == "spells" ) return notify_fail("魔法不能研究。\n"); if( (string)SKILL_D(skill)->type()=="knowledge") return notify_fail(to_chinese(skill)+"只能靠你學習才能提高的。\n"); notify_fail("依你目前的能力,沒有辦法研究這種技能。\n"); if ( !me->query("zhuanshen") || !(string)SKILL_D(skill)->exert_function_file()){ if( !SKILL_D(skill)->valid_learn(me) && my_skill < 200) return 0;} if ( me->query("zhuanshen")){ if( my_skill < 99 || !(string)SKILL_D(skill)->exert_function_file()) return 0;} jing_cost = 300 / (int)me->query("int"); if( !my_skill ) { jing_cost *= 2; me->set_skill(skill,0); } if( (me->query("potential") - me->query("learned_points")) < times ) return notify_fail("你的潛能不夠研究這么多次了。\n"); if( (int)me->query("jing") < jing_cost * times ){ me->start_busy(1); return notify_fail("你的精不夠用了。\n");} my_skill = me->query_skill(skill, 1); if( (string)SKILL_D(skill)->type()=="martial" && my_skill * my_skill * my_skill / 10 > (int)me->query("combat_exp") ) return notify_fail("也許是缺乏實戰經驗,你沒法研究"+to_chinese(skill)+"的問題了。\n"); printf(HIM"你研究了"+chinese_number(times)+"次有關「%s」的疑問。\n"NOR, to_chinese(skill)); if( (int)me->query("jing") > jing_cost * times ) { if( (string)SKILL_D(skill)->type()=="martial" && my_skill * my_skill * my_skill / 10 > (int)me->query("combat_exp") ) { me->start_busy(1); return notify_fail("也許是缺乏實戰經驗,你沒法研究"+to_chinese(skill)+"的問題了。\n"); } else { if(skill_name = SKILL_D(skill)->query_skill_name(my_skill)) printf("你研究了一會,對「%s」這一招似乎想通了些什么。\n", skill_name); else printf("你研究了一會,似乎對"+to_chinese(skill)+"有些新的領悟。\n"); for (pertimes = 1; pertimes <= times ; pertimes ++) { me->add("learned_points", 1); me->improve_skill(skill, random((int)me->query_int()/2)); } } } else { me->start_busy(1); jing_cost = me->query("jing"); return notify_fail("你今天太累了,結果什么也沒有研究成。\n"); } me->receive_damage("jing", times * jing_cost ); return 1;}int help(object me){ write(@HELP指令格式 : research | yanjiu <技能> <次數> 這個指令可以讓你研究一種技能的疑難問題,當你師傅這項技能的級別不如你的時候,可以通過研究自己來提高,當然進步的速度是不如向師傅學的了。此外研究也需要消耗一些精力,而消耗的精力跟你自己的悟性有關。其他相關指令 : apprentice, practice, skills, study, learnHELP ); return 1;}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -