⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 huagu-mianzhang.c

📁 C实现的MUD,对大家基本入门网络游戏很有帮助!
💻 C
字号:
#include <ansi.h>// huagu-mianzhang 化骨绵掌inherit SKILL;mapping *action = ({([  "action" : "$N身形微晃,一招「长恨深入骨」,十指如戟,插向$n的双肩锁骨",    "force" : 200,    "dodge" : 10,    "damage_type" : "内伤",    "lvl"   : 0,    "skill_name" : "长恨深入骨" ,]),([  "action" : "$N出手如风,十指微微抖动,一招「素手裂红裳」抓向$n的前胸",      "force" : 220,    "dodge" : 20,    "damage_type" : "内伤",    "lvl"   : 20,    "skill_name" : "素手裂红裳" ,]),([  "action" : "$N双手忽隐忽现,一招「长风吹落尘」,鬼魅般地抓向$n的肩头",      "force" : 250,    "dodge" : 30,    "damage_type" : "内伤",    "lvl"   : 40,    "skill_name" : "长风吹落尘" ,]),([  "action" : "$N左手当胸画弧,右手疾出,一招「明月映流沙」,猛地抓向$n的额头",    "force" : 290,    "dodge" : 25,    "damage_type" : "内伤",    "lvl"   : 60,    "skill_name" : "明月映流沙" ,]),([  "action" : "$N使一招「森然动四方」,激起漫天的劲风,撞向$n",    "force" : 340,    "dodge" : 40,    "damage_type" : "内伤",    "lvl"   : 80,    "skill_name" : "森然动四方" ,]),([  "action" : "$N面无表情,双臂忽左忽右地疾挥,使出「黯黯侵骨寒」,十指    忽伸忽缩,迅猛无比地袭向$n全身各处大穴",    "force" : 460,    "parry" : 5,    "dodge" : 30,    "damage_type" : "内伤",    "lvl"   : 100,    "skill_name" : "黯黯侵骨寒" ,]),([  "action" : "$N使出「黄沙飘惊雨」,蓦然游身而上,绕着$n疾转数圈,$n正眼  花缭乱间,$N已悄然停在$n身后,右手划出一道光圈,接着右手冲出光圈猛抓$n的后背",      "force" : 430,    "parry" : 20,    "dodge" : 20,    "damage_type" : "内伤",    "lvl"   : 120,    "skill_name" : "黄沙飘惊雨" ,]),([  "action" : "$N突然双手平举,$n一呆,正在猜测间,便见$N嗖的一下将双手    收回胸前,接着一招「白骨无限寒」,五指如钩,直抓向$n的腰间",    "force" : 400,    "dodge" : 35,    "damage_type" : "内伤",    "lvl"   : 140,    "skill_name" : "白骨无限寒" ,]),([      "action": "$N使一招「灵蛇摆尾」,全身骤然一抖,把$n摔倒在地",	"dodge": 130,	"parry": 10,	"force": 20,	"skill_name" : "灵蛇摆尾",	"damage_type": "瘀伤"]),([      "action": "$N左掌内旋,一招「神龙现身」沾顾$n的手腕,同时展臂摇膀,横击$n的前胸",	"dodge": 15,	"parry": 20,	"force": 130,	"skill_name" : "神龙现身",	"damage_type": "瘀伤"]),([      "action": "$N右掌外翻,掌心向上,左掌内翻掌心反向上,一招「双龙绞尾」,\n"		  "抓住$n的手臂,互相绞力",	"dodge": 10,	"parry": 10,	"force": 130,	"skill_name" : "双龙绞尾",	"damage_type": "瘀伤"]),([      "action": "$N双掌交叉,使一招「双龙抢珠」,上搠$n的手臂,右脚前踢$n的右小腿",	"dodge": 15,	"parry": 30,	"force": 160,	"skill_name" : "双龙抢珠",	"damage_type": "瘀伤"]),([      "action": "$N立肘外旋内裹,向左滚推$n的手臂,右手握拳外旋直冲$n的面部,"		   "一招「虎踞龙盘」",	"dodge": 10,	"parry": 10,	"force": 150,	"skill_name" : "虎踞龙盘",	"damage_type": "瘀伤"]),([      "action": "$N右脚虚点,左腿上搠$n的门面,同时右脚反踢$n的腰,「马踩游蛇」",	"dodge": 10,	"parry": 20,	"force": 160,	"skill_name" : "马踩游蛇",	"damage_type": "瘀伤"]),([      "action": "$N右手虚按$n背部,突然回身、摆步、拧腰、抡臂劈打,一记「龙起湖心」\n"		  "猛击$n的$l",	"dodge": 20,	"parry": 20,	"force": 180,	"skill_name" : "龙起湖心",	"damage_type": "瘀伤"]),([      "action": "$N弧线跨步,一招「龙卧高山」,钩踢$n的裆部",	"dodge": 25,	"parry": 10,	"force": 120,	"skill_name" : "龙卧高山",	"damage_type": "瘀伤"]),([      "action": "$N提膝击$n的腿膝,使一招「地动山摇」,出其不意使$n失去重心",	"dodge": 25,	"parry": 20,	"force": 150,	"skill_name" : "地动山摇",	"damage_type": "瘀伤"]),([      "action": "$N速出右拳沿$n右臂滚动,一招「直串龙潭」,边滚边向下直压$n的身体",	"dodge": 30,	"parry": 20,	"force": 160,	"skill_name" : "直串龙潭",	"damage_type": "瘀伤"]),([      "action": "$N出右拳,左手由自己的右臂向前向上翻绕$n的右臂,一招「闪现雷鸣」",	"dodge": 20,	"parry": 30,	"force": 120,	"skill_name" : "闪现雷鸣",	"damage_type": "瘀伤"]),([      "action": "$N速上右步,双手摆动迷惑$n,一招「水拍云崖」,\n"		  "右腿在手的掩护下横击$n的两肋",	"dodge": 20,	"parry": 20,	"force": 160,	"skill_name" : "水拍云崖",	"damage_type": "瘀伤"]),([      "action": "$N凝神聚气,以意念转动脊椎,右手一记「龟蛇竟渡」,\n"		  "以不可抗拒之力击向$n的全身",	"dodge": 15,	"parry": 20,	"force": 180,	"skill_name" : "龟蛇竟渡",	"damage_type": "瘀伤"]),([      "action": "$N出右手与$n的手臂相触,突然翻掌握$n手腕,\n"		  "使出「倒索攀山」,向旁拉带$n",	"dodge": 25,	"parry": 30,	"force": 150,	"skill_name" : "倒索攀山",	"damage_type": "瘀伤"]),});int valid_enable(string usage) { return usage=="strike" ||  usage=="parry"; }  int valid_combine(string combo) { return combo=="shenlong-bashi"; }int valid_learn(object me){    if (me->query_temp("weapon") || me->query_temp("secondary_weapon"))   return notify_fail("练化骨绵掌必须空手。\n");	if (2*(int)me->query_skill("shenlong-xinfa",1) <(int)me->query_skill("shenlong-bashi",1))		return notify_fail("你的神龙心法火候不够,无法继续学化骨绵掌。\n");    if ((int)me->query_skill("force", 1) < 50)   return notify_fail("你的内功心法火候不够,练化骨绵掌会走火入魔。\n");    if ((int)me->query("max_neili") < 300)   return notify_fail("你的内力太弱,无法练化骨绵掌。\n");    return 1;}string query_skill_name(int level){    int i;    for(i = sizeof(action)-1; i >= 0; i--)    if(level >= action[i-1]["lvl"])        return action[i-1]["skill_name"];}mapping query_action(object me, object weapon){    int i, level;    level   = (int)me->query_skill("huagu-mianzhang",1);    for(i = sizeof(action); i > 0; i--)    if(level > action[i-1]["lvl"])        return action[NewRandom(i, 20, level/5)];}int practice_skill(object me){    if ((int)me->query("qi") < 30)        return notify_fail("你的体力太低了。\n");    if ((int)me->query("neili") < 8)        return notify_fail("你的内力不够练化骨绵掌。\n");    if (me->query_skill("jiuyin-zhua", 1) < 60)        me->receive_damage("qi", 15);    else    me->receive_damage("qi", 30);    me->add("neili", -5);    return 1;}string perform_action_file(string action){    return __DIR__"huagu-mianzhang/" + action;}mixed hit_ob(object me, object victim, int damage_bonus){        int amount;        if((int)me->query_skill("huagu-mianzhang")>100){        if( random(damage_bonus) > (int)victim->query_skill("force") / 2        &&  !victim->query_temp("hgmz") )  {                victim->set_temp("hgmz", 1);                amount = 5 * damage_bonus/( 1 + victim->query_con()) + 1;				amount = amount/100;                victim->add_temp("apply/strength", -amount);                victim->start_call_out( (: call_other, __FILE__, "remove_effect", victim, me, amount :), (int)me->query_skill("huagu-mianzhang", 1) / 20);                message_vision(HIB"\n$N登时头晕目眩,立时便欲呕吐,喉间“呃呃呃”的不住作声。\n"NOR, victim);        }}}void remove_effect(object victim, object me, int amount){        victim->delete_temp("hgmz");        victim->add_temp("apply/strength", amount);        message_vision(HIB"\n$N胸腹间气血翻涌,“哇”的一声,又是鲜血,又是清水,大口吐了出来。\n"NOR, victim);        if( me )        victim->receive_wound("qi", amount * 10 + random(amount * 10));        else        victim->receive_wound("qi", amount * 10 + random(amount * 10));}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -