📄 long2.c
字号:
return notify_fail("你要看谁的状态?\n"); my = query_entire_dbase(); printf(HIC"≡"HIY"──────────────────────────────"HIC"≡\n"NOR);printf(HIC"精力:"NOR"%s%3d/ %3d %s(%3d%%) "HIC"气血:"NOR"%s%3d/ %3d %s(%3d%%)\n", status_color(my["jing"], my["eff_jing"]), my["jing"],my["eff_jing"], status_color(my["eff_jing"], my["max_jing"]), my["eff_jing"] * 100 / my["max_jing"], status_color(my["qi"], my["eff_qi"]), my["qi"], my["eff_qi"], status_color(my["eff_qi"], my["max_qi"]), my["eff_qi"] * 100 / my["max_qi"] ); printf(HIW"主人: "HIG"%s"NOR"\t\t"HIW"经验: "HIG"%d"NOR"\t\t"HIW"杀气: "HIG"%d"NOR"\n"NOR, my["host_id"], my["combat_exp"],my["bellicosity"] ); printf(HIY"悟性: "HIG"%d"NOR"\t\t"HIY"根骨: "HIG"%d"NOR"\t\t"HIY"容貌: "HIG"%d"NOR"\n"NOR, query_int(), query_con(),query_per() ); printf(HIY"身法: "HIG"%d"NOR"\t\t"HIY"臂力: "HIG"%d"NOR"\t\t"HIY"福缘: "HIG"%d"NOR"\n"NOR, query_dex(), query_str(),query_kar() ); printf(HIY"内力: "HIG"%d"NOR"\t\t"HIY"内力上限: "HIG"%d"NOR"\t\t\n"NOR, query("neili"), query("max_neili") ); at_pt= COMBAT_D->skill_power(this_object(), "unarmed", SKILL_USAGE_ATTACK); pa_pt= COMBAT_D->skill_power(this_object(), "parry", SKILL_USAGE_DEFENSE); do_pt= COMBAT_D->skill_power(this_object(), "dodge", SKILL_USAGE_DEFENSE); printf(HIR"攻击力: %d\t"NOR+HIR"防御力: %d\t\n"NOR, at_pt+1, pa_pt/2+do_pt/2+1 ); printf("/cmds/skill/skills"->pet_skill(this_object())); printf(HIC"≡"HIY"──────────────────────────────"HIC"≡\n"NOR);return 1;}// 永久跟随主人 (by xbd)int chat(){ object me = query("possessed"); int i, ratio, chance, rnd, flag = 0; string *msg, *emotes, cmd; object *inv, *killer; if (!me) { if( environment() && !is_fighting() ) call_out("leave", 0); return 0; } if( !environment(me) ) return 0; if( !environment() ) return 0; if( query_temp("is_unconcious") ) return 0; if (environment(this_object()) != environment(me) && !is_fighting() && !is_busy() && query_leader() == me) { command("say 主人等等我!!!"); move(environment(me)); command("say 主人,别走那么快,我差点跟不上了!"); } if (!is_busy()) { if (arrayp(msg = get_auto_actions("powerup"))) for (i = 0; i < sizeof(msg); i++) if (functionp(msg[i])) evaluate(msg[i]); } if (living(me) && !me->is_ghost() && me->is_killing() && me->is_fighting() && !is_fighting() && !is_killing() && !is_busy() && intp(ratio = (int)me->query("env/save_me")) && ratio > 0 && ( me->query("qi") * 100 / me->query("max_qi") <= ratio || me->query("jing") * 100 / me->query("max_jing") <= ratio)) { if (environment(this_object()) != environment(me)) { command("say 不好,主人有危险!!!"); move(environment(me)); } command("say 主人有难,我一定会誓死保护你的!!!"); if (arrayp(killer = me->query_enemy())) for (i = 0; i < sizeof(killer); i++) if (objectp(killer[i])) { this_object()->fight_ob(killer[i]); killer[i]->fight_ob(this_object()); this_object()->fight_ob(killer[i]); killer[i]->fight_ob(this_object()); } } if (query("neili") > 100 && query("max_neili") > 200 && !is_busy()) { if (query("eff_jing") && query("jing") * 100 / query("eff_jing") <= 80) command("exert regenerate"); if (query("eff_qi") && query("qi") >= 0 && query("qi") * 100 / query("eff_qi") <= 80) command("exert recover"); if (query("eff_qi") && query("qi") >= 0 && query("max_qi") && !is_fighting() && !query("mute") && query_skill_mapped("force") && query("eff_qi") < query("max_qi") && query("eff_qi") >= query("max_qi") / 3) command("exert heal"); if (query("max_neili") && query("neili") * 100 / query("max_neili") <= 80 && !is_fighting() && query_skill_mapped("force")) { i = 1 + (int)query_skill("force") / 15 * (1 + (int)query_skill("force") / 100); command(sprintf("dazuo %d", i)); } } if (is_fighting()) { for (i = 1; i <= 5; i++) if (stringp(cmd = query(sprintf("ticks/%d", i)))) { command(cmd); flag = 1; } if (flag) return 1; } if( !chance = (int)query(is_fighting()? "chat_chance_combat": "chat_chance") ) return 0; if( arrayp(msg = query(is_fighting()? "chat_msg_combat": "chat_msg"))) { if( query_temp("is_unconcious") ) return 0; if( random(100) < chance ) { rnd = random(sizeof(msg)); if( stringp(msg[rnd]) ) say(msg[rnd]); else if( functionp(msg[rnd]) ) return evaluate(msg[rnd]); } return 1; } return 1;}void leave(){ if(!objectp(query("possessed"))) { set_heart_beat(1); command("say 主人不在,我回家算了。"); command("emote 往人群里一闪就不见了。"); destruct(this_object()); } set_heart_beat(1);}int do_lingwu(string arg){ object me=this_player(); string special; int bl,sl; string msg; if( !living(this_object()) ) return notify_fail("嗯....你得先把" + this_object()->name() + "弄醒再说。\n");if (me->query("id")!=query("host_id"))return notify_fail("你无权使用这个命令!\n");if (this_object()->is_busy())return notify_fail("她正忙着呢!\n"); if (environment(me)->query("pigging")) return notify_fail("你还是专心拱猪吧!\n"); if (me->is_busy()) return notify_fail("你现在正忙着呢。\n"); if( (int)me->query("qi") < 50 ) return notify_fail("你没有那么多的气!\n"); if( (int)me->query("jing") < 50 ) return notify_fail("你现在精不够!\n");if( environment(me)->query("outdoors") ) return notify_fail(HIY"\n不要影响别人,还是找一个室内的地方吧。\n"NOR); if (environment(me)->query("sleep_room")) return notify_fail("卧室不能讨论,会影响别人休息。\n"); if( environment(me)->query("no_beg") && environment(me)->query("no_fight") && environment(me)->query("no_steal")) return notify_fail(HIY"\n不要影响别人,还是找一个别的地方吧。\n"NOR); if( me->is_fighting() ) return notify_fail("你已经在战斗中了,学一点实战经验吧。\n"); if (!living(me)) return 0; if (me->is_busy() || me->is_fighting()) return notify_fail("你正忙着呢。\n"); if (me->query("potential") - me->query("learned_points") < 0) return notify_fail("你的潜能太少了!\n"); if (!arg) return notify_fail("你要与"+query("name")+"讨论什么?\n"); if (!me->query_skill(arg,1)) return notify_fail("你不会这种技能。\n"); if (!(special=me->query_skill_mapped(arg))) return notify_fail("这个武功好像从特殊技能中领悟。\n"); bl=me->query_skill(arg,1); if (bl > me->query("jing") || me->query("jing")*100/me->query("max_jing") < 20) { me->receive_damage("jing",bl/2); return notify_fail("你没办法集中精神。\n"); } if(me->query("potential") < 100 ) return notify_fail("你的潜能太少了!\n"); sl=me->query_skill(special,1); if (bl > sl) return notify_fail("你的"+to_chinese(special)+"造诣不够,无法对更深一层的"+CHINESE_D->chinese(arg)+"进行讨论。\n"); write(HIY"你和"+query("name")+HIY"席地而坐,开始对"+to_chinese(arg)+HIY"的使用方法和体会进行和讨论。\n"NOR); me->receive_damage("jing",bl/2); me->improve_skill(arg,sl/5+2); write(HIG"在"+query("name")+HIG"的帮助和你的努力下。\n你对"+to_chinese(arg)+HIG"好像有了更深一层的了解!\n"NOR); return 1;}int do_heji(object me, string arg){ int same_place; string couple_id; string couple_name; object couple; object target;object weapon,weapon1; int extra,extra1; string msg;me=this_player();weapon = me->query_temp("weapon");weapon1 = this_object()->query_temp("weapon");if (!weapon) return notify_fail("你没有武器!\n");if (!weapon1) return notify_fail("她没有武器!\n");if (me->query("id")!=query("host_id"))return notify_fail("你无权使用这个命令!\n");if (this_object()->is_busy())return notify_fail("她正忙着呢!\n"); if (me->is_busy()) return notify_fail("你现在正忙着呢。\n"); if (this_object()->is_busy()) return notify_fail("她现在正忙着呢。\n"); if (environment(me)->query("no_fight")) return notify_fail("这里不能战斗。\n"); if (! arg) { me->clean_up_enemy(); target = me->select_opponent(); } else target = present(arg, environment(me)); if (! target || ! me->is_fighting(target)) return notify_fail("合击只能对两人都在战斗中的对手使用。\n"); if (! target || ! this_object()->is_fighting(target)) return notify_fail("合击只能对两人都在战斗中的对手使用。\n"); if( target->is_busy() ) return notify_fail(target->name() + "目前正自顾不暇,放胆攻击吧!\n"); message_combatd(HIY " $N" HIY "和$n" HIY "两人眼神一交,心意已" "然相通,不由的会心一笑,只见二人身形一错,霎时\n" " 已经向" + target->name() + "攻出数招!\n" NOR, me, this_object());if (random(this_object()->query("combat_exp")) >target->query("combat_exp")/3){ msg = HIG " "+query("name")+ HIG "弹" + weapon1->name() + HIG"轻吟,宛若黄莺出谷,飘身而进,手中的" + weapon1->name() + HIG "化作流星夜雨,披向"+target->query("name")+" " HIG "。\n" NOR;target->start_busy(4);msg += HIR " 结果"+target->query("name")+HIR"被"+query("name")+HIR"闹个手忙脚乱,惊慌失措,呆在当场,不知如何应对!\n" NOR;message_combatd(msg, me, target); message_combatd(HIW" " + me->name() + HIW"见" + query("name") + HIW"得手,急向前跃,补足了" + query("name") + HIW"的破绽,并连连出招!\n" NOR, me, this_object()); msg = HIC " " + me->name() + HIC"纵声长啸,一股杀气凛然而起,天" "地登时色变,$N" HIC "挟风雷万钧之势,压向"+target->query("name")+HIC" 。\n" NOR;extra=(int)me->query_skill("force",1)/10;extra1=(int)this_object()->query_skill("force",1)/10; me->add_temp("apply/attack", extra); me->add_temp("apply/damage", extra); this_object()->add_temp("apply/attack", extra1); this_object()->add_temp("apply/damage", extra1); COMBAT_D->do_attack(me,target, weapon, TYPE_REGULAR,msg);msg = HIC " " + query("name") + HIC"紧跟着,从左面又是一击!\n" NOR; COMBAT_D->do_attack(this_object(),target, weapon1, TYPE_REGULAR,msg);msg = HIW " " + me->query("name") + HIW"紧跟着,从右面又是一击!\n" NOR; COMBAT_D->do_attack(me,target, weapon, TYPE_REGULAR,msg);msg = HIC " " + query("name") + HIC"最后,从上面补足一击!\n" NOR; COMBAT_D->do_attack(this_object(),target, weapon1, TYPE_REGULAR,msg); me->add_temp("apply/attack", -extra); me->add_temp("apply/damage", -extra); this_object()->add_temp("apply/attack", -extra1); this_object()->add_temp("apply/damage", -extra1);me->add("neili",200);this_object()->add("neili",200);me->start_busy(1);this_object()->start_busy(1);}else{ message_combatd(" " + target->name() + "急向后跃,跳出了被合击的范围!\n" NOR, me, this_object());me->add("neili",200);this_object()->add("neili",200);me->start_busy(2);this_object()->start_busy(2);} return 1;}int do_lian(string arg){ object me = this_player(), ob = this_object(); object where = environment(me); string skillname; int skill, skill_basic, times, pertimes; int neili, jing, qi; seteuid(getuid()); if (me->query("id") != query("host_id")) return notify_fail("你无权使用这个命令!\n"); if( !arg ) return notify_fail("你想让她练习什么武功?\n"); if ((sscanf(arg, "%s %d", arg, times)!=2 )) return notify_fail("指令格式:lianxi <技能种类> <次数>\n"); if( !living(ob) ) return notify_fail("嗯....你得先把" + ob->name() + "弄醒再说。\n"); if (where->query("pigging")) return notify_fail("你还是专心拱猪吧!\n"); if (where->query("sleep_room")) return notify_fail("卧室不能互练,会影响别人休息。\n"); if( environment(me)->query("no_beg") && environment(me)->query("no_fight") && environment(me)->query("no_steal")) return notify_fail(HIY"\n不要影响别人,还是找一个别的地方吧。\n"NOR); if (me->is_busy()) return notify_fail("你现在正忙着呢。\n"); if( me->is_fighting() ) return notify_fail("你已经在战斗中了,学一点实战经验吧。\n"); if (ob->is_busy()) return notify_fail("她现在正忙着呢。\n"); if( ob->is_fighting() ) return notify_fail("她已经在战斗中了,学一点实战经验吧。\n"); if ( times < 1 || times > 30) return notify_fail("互练次数必须大于一次,但不能超过三十次。\n"); if( !stringp(skillname = ob->query_skill_mapped(arg)) ) return notify_fail("你只能练习用 enable 指定的特殊技能。\n"); skill_basic = ob->query_skill(arg, 1); skill = ob->query_skill(skillname, 1); if( skill < 1 ) return notify_fail("她好像还没有学过这项技能吧?\n"); if( skill_basic < 1 ) return notify_fail("她对这方面的技能还是一窍不通,最好从先从基本学起。\n"); if( skill_basic/2 <= skill/3 ) return notify_fail("她的基本功火候未到,必须先打好基础才能继续提高。\n"); notify_fail("她现在不能练习这项技能。\n");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -