📄 long2.c
字号:
if (skill*skill*skill/10 > (int)ob->query("combat_exp")) return notify_fail("也许是缺乏实战经验,她的练习总没法进步。\n");// if( !SKILL_D(skillname)->valid_learn(ob) ) return 0; notify_fail("她试着练习" + to_chinese(skillname) + ",但是并没有任何进步。\n"); write( HIW "在你的指导下," + ob->name() + "把" + to_chinese(skillname) + HIW"练习了"+chinese_number(times)+"趟。\n" NOR); if (skill*skill*skill/10 > (int)ob->query("combat_exp")) { me->start_busy(1); return notify_fail("也许是缺乏实战经验,她的练习总没法进步。\n"); return 1; } for (pertimes = 1; pertimes <= times; pertimes ++) {// 用自己的jing、qi、neili来进行练习 jing = random(200); qi = random(400); neili = random(200); if (me->query("jing") < jing) return notify_fail("你的精气太低了,无法继续指导她的练习!\n"); if (me->query("qi") < qi) return notify_fail("你的气血太低了,无法继续指导她的练习!\n"); if (me->query("neili") < neili) return notify_fail("你的内力太低了,无法继续指导她的练习!\n"); me->add("jing", -jing); me->add("qi", -qi); me->add("neili", -neili); ob->improve_skill(skillname, (skill_basic/5 +1), skill_basic > skill? 0: 1); } write( HIY + ob->name() + "的" + to_chinese(skillname) + "进步了!\n" NOR); return 1;}int accept_object(object who, object ob){ if (!query("no_accept") || who == query("possessed")) { command("thank " + who->query("id")); return 1; } command("shake " + who->query("id")); command("say 主人和我说过,别随便拿别人的东西!"); return 0;}int accept_fight(object ob){ if (!query("no_fight") || ob == query("possessed")) { command("say 好吧,你小心了!"); return 1; } command("shake " + ob->query("id")); command("say 主人和我说过,不要随便和别人动武!"); return 0;}int do_order(string arg){ object me = this_player(); string type, cmd; int i; seteuid(getuid()); if (me->query("id") != query("host_id")) return notify_fail("你无权使用这个命令!\n"); if( !arg ) return notify_fail("你想让她做什么?\n"); if ((sscanf(arg, "%s %s", type, cmd) < 2 )) return notify_fail("指令格式:order [un]accept object | [un]accept fight | <指令>\n"); if (!living(this_object())) return notify_fail("以她目前的状态,怎么可能听你的命令呢?\n"); if (type == "accept") { if (cmd == "object") { me->set("guard/status/no_accept", 0); set("no_accept", 0); command("nod"); command("say 好的,我以后就代你接受别人的东西吧!"); return 1; } if (cmd == "fight") { me->set("guard/status/no_fight", 0); set("no_fight", 0); command("nod"); command("say 好的,我以后也和别人一起切磋切磋武艺!"); return 1; } return notify_fail("指令格式:order accept object|fight\n"); } if (type == "unaccept") { if (cmd == "object") { me->set("guard/status/no_accept", 1); set("no_accept", 1); command("nod"); command("say 好的,我以后再也不随便接受别人的东西了!"); return 1; } if (cmd == "fight") { me->set("guard/status/no_fight", 1); set("no_fight", 1); command("nod"); command("say 好的,我以后再也不随便和别人比武了!"); return 1; } return notify_fail("指令格式:order unaccept object|fight\n"); } for (i = 0; i < sizeof(cmds); i++) if (cmds[i] == type) { exec_cmd(me, arg); return 1; } return notify_fail("你只能对她下达战斗指令!\n");}void exec_cmd(object me, string arg){ if (!command(arg)) write("她现在无法正确执行你的命令!\n"); else write("遵命,主人!\n");}mixed get_auto_actions(string action){ int i, flag = 0; for (i = 0; i < sizeof(pfm); i++) if (pfm[i]["party"] == query("party")) { flag = 1; break; } if (!flag) return ({ }); if (arrayp(pfm[i][action])) return pfm[i][action]; else return ({ });}void change_combat_mode(object me, int mode){ switch (mode) { case 0: delete("chat_chance_combat"); delete("chat_msg_combat"); set("jiali", 1); break; case 1: set("chat_chance_combat", 50); set("chat_msg_combat", get_auto_actions("perform")); set("jiali", 50); break; case 2: set("chat_chance_combat", 100); set("chat_msg_combat", get_auto_actions("perform1")); set("jiali", (int)query_skill("force") / 2); break; case 3: set("chat_chance_combat", 100); set("chat_msg_combat", get_auto_actions("perform2")); set("jiali", 1); break; default: return; } set("combat_mode", mode); me->set("guard/status/combat_mode", mode);}void die(){ object ob = this_object(); if (environment(ob)->query("pingan") || environment(ob)->query("biwu") || environment(ob)->query("citybiwu")) { message_vision(HIR "比武之地,只分胜负,不分生死。$N被打败了但却偷得一命。\n" NOR, ob); ob->set("jing", 50); ob->set("eff_jing", 50); ob->set("qi", 50); ob->set("eff_qi", 50); ob->remove_all_killer(); all_inventory(environment())->remove_killer(ob); ob->revive(1); return; } tell_object(ob->query("possessed"), HIG"对不起主人,我无法再服侍你了,你一定要好好保重自己!\n"NOR); // skills - 2 ob->skill_death_penalty(); ob->skill_death_penalty(); ::die();}int do_name(string arg){ object me = this_player(); if (me->query("id") != query("host_id")) return notify_fail("你无权使用这个命令!\n"); if (!arg || arg == "") return notify_fail("你想帮她改什么名字?\n"); if (!living(this_object())) return notify_fail("以她目前的状态,怎么可能听你的命令呢?\n"); if (!LOGIN_D->check_legal_name(arg)) return 1;; command("say 从今以后我就叫做" + arg + "了!");// arg = "cmds/usr/nick"->replace_color(arg, "$HIG$");// arg=replace_color(arg,color_flag); me->set("guard/name"," "+ arg+" "); set("name"," "+ arg+" "); command("thank " + me->query("id")); return 1;}int do_long(string arg){ object me = this_player(); string *txt; if (me->query("id") != query("host_id")) return notify_fail("你无权使用这个命令!\n"); if (!arg || arg == "") return notify_fail("你想把她的描述改为什么?\n"); if (!living(this_object())) return notify_fail("以她目前的状态,怎么可能听你的命令呢?\n"); if (arg == "none") { me->delete("guard/long"); delete("long"); command("thank " + me->query("id")); return 1; } txt = explode(arg, "\n"); if( sizeof(txt) > 8 ) return notify_fail("请将对她的描述控制在八行以内。\n"); arg = implode(txt, "\n") + "\n"; arg = "cmds/usr/nick"->replace_color(arg, 1); me->set("guard/long", arg); set("long", arg); command("thank " + me->query("id")); return 1;}int do_title(string arg){ object me = this_player(); if (me->query("id") != query("host_id")) return notify_fail("你无权使用这个命令!\n"); if (!arg || arg == "") return notify_fail("你想把她的称号改为什么?\n"); if (!living(this_object())) return notify_fail("以她目前的状态,怎么可能听你的命令呢?\n"); if (!check_legal_title("cmds/usr/nick"->replace_color(arg, 0))) return 1; arg = "cmds/usr/nick"->replace_color(arg, 1); me->set("guard/title", arg); set("title", arg); command("thank " + me->query("id")); return 1;}int do_ticks(string arg){ object me = this_player(); int i; string type, cmd, cmd1, cmd2; if (me->query("id") != query("host_id")) return notify_fail("你无权使用这个命令!\n"); if (!living(this_object())) return notify_fail("以她目前的状态,怎么可能听你的命令呢?\n"); if (!arg || arg == "") { write(HIG"她现在的战斗指令阵列为:\n"NOR); for (i = 1; i <= 5; i++) if (stringp(cmd = me->query(sprintf("guard/status/ticks/%d", i)))) write(sprintf("%d - %s\n", i, cmd)); else write(sprintf("%d - %s\n", i, "<空缺>")); return 1; } if ((sscanf(arg, "%s %s", type, cmd) < 2 )) return notify_fail("指令格式:ticks [1-5 <指令>] | [-d 1-5|all]\n"); if (type == "1" || type == "2" || type == "3" || type == "4" || type == "5") { if (sscanf(cmd, "%s %s", cmd1, cmd2) < 2) cmd1 = cmd; for (i = 0; i < sizeof(cmds); i++) if (cmds[i] == cmd1) { me->set("guard/status/ticks/" + type, cmd); command("en " + query("id")); return 1; } return notify_fail("你所设定的只能是战斗指令!\n"); } else if (type == "-d" && (cmd == "1" || cmd == "2" || cmd == "3" || cmd == "4" || cmd == "5")) me->delete("guard/status/ticks/" + cmd); else if (type == "-d" && cmd == "all") for (i = 1; i <= 5; i++) me->delete(sprintf("guard/status/ticks/%d", i)); else return notify_fail("指令格式:ticks [1-5 <指令>] | [-d 1-5|all]\n"); command("en " + query("id")); return 1;}int check_legal_title(string name){ int i = strlen(name); if( (strlen(name) < 8) || (strlen(name) > 20 ) ) { write("对不起,称号必须是 4 到 10 个中文字。\n"); return 0; } while(i--) { if( i%2==0 && !is_chinese(name[i..<0]) ) { write("对不起,称号不能用控制字元。\n"); return 0; } if( (strsrch(name, " ") >= 0) || (strsrch(name, "爸") >= 0)) { write("对不起,称号不能用引起误会的单字。\n"); return 0; } if( i%2==0 && !is_chinese(name[i..<0]) ) { write("对不起,称号必须使用中文字。\n"); return 0; } } return 1;}string replace_color(string arg,int flag){ arg = replace_string(arg, "$BLK$", flag?BLK:""); arg = replace_string(arg, "$RED$", flag?RED:""); arg = replace_string(arg, "$GRN$", flag?GRN:""); arg = replace_string(arg, "$YEL$", flag?YEL:""); arg = replace_string(arg, "$BLU$", flag?BLU:""); arg = replace_string(arg, "$MAG$", flag?MAG:""); arg = replace_string(arg, "$CYN$", flag?CYN:""); arg = replace_string(arg, "$WHT$", flag?WHT:""); arg = replace_string(arg, "$HIR$", flag?HIR:""); arg = replace_string(arg, "$HIG$", flag?HIG:""); arg = replace_string(arg, "$HIY$", flag?HIY:""); arg = replace_string(arg, "$HIB$", flag?HIB:""); arg = replace_string(arg, "$HIM$", flag?HIM:""); arg = replace_string(arg, "$HIC$", flag?HIC:""); arg = replace_string(arg, "$HIW$", flag?HIW:""); arg = replace_string(arg, "$NOR$", flag?NOR:""); arg = replace_string(arg, "$BLINK$", flag?BLINK:""); if(flag) arg+=NOR; return arg;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -