铁血丹心

 找回密码
 我要成为铁血侠客
搜索
查看: 2027|回复: 3

[新手指南] 五毒的二个空手武功代码

[复制链接]
发表于 2009-9-11 08:27 | 显示全部楼层 |阅读模式

马上注册,结交更多侠友!

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
// dusha-zhang.c 毒砂掌 药王谷
// Edit By Vin On 26/2/2001

#include <ansi.h>

inherit SKILL;
string *du=({
"ice_poison",
"ill_dongshang",
"ill_fashao",
"ill_kesou",
"ill_shanghan",
"ill_zhongshu",
"xx_poison",
"cold_poison",
"flower_poison",
"rose_poison",
"x2_poison",
"sanpoison",
"scorpion_poison",
"anqi_poison",
"yf_poison",
"chilian_poison",
"yufeng_poison",
"insect_poison",
"snake_poison",
"wugong_poison",
"zhizhu_poison",
"xiezi_poison",
"chanchu_poison",
});

mapping *action = ({
([      "action": "$N双手不住地忽伸忽缩,手臂关节喀喇声响,右掌一立,左掌啪的一下朝$n$l击去",
        "force" : 80,
        "attack": 28,
        "dodge" : 10,
        "parry" : 5,
        "damage": 160,
        "lvl"   : 0,
        "damage_type": "瘀伤"
]),
([      "action": "$N身形挫动,风声虎虎,接着朝$n连发八掌,一掌快似一掌,一掌猛似一掌",
        "force" : 130,
        "attack": 35,
        "dodge" : 10,
        "parry" : 10,
        "damage": 167,
        "lvl"   : 30,
        "damage_type": "瘀伤"
]),
([      "action": "$N攸地变爪为掌,身子不动,右臂陡长,潜运内力,一掌朝$n$l劈去",
        "force" : 170,
        "attack": 37,
        "dodge" : 20,
        "parry" : 25,
        "damage": 165,
        "lvl"   : 60,
        "damage_type": "瘀伤"
]),
([      "action": "$N一声怪啸,形如飘风,左掌已如风行电挚般拍向$n,掌未到,风先至,迅猛已极",
        "force" : 220,
        "attack": 42,
        "dodge" : 30,
        "parry" : 35,
        "damage": 273,
        "lvl"   : 90,
        "damage_type": "瘀伤"
]),
});

int valid_enable(string usage) { return usage == "strike" || usage == "parry"; }

int valid_combine(string combo) { return combo=="lansha-shou"; }

mapping query_action(object me, object weapon)
{
        int i, level;
        level = (int)me->query_skill("dusha-zhang", 1);
        for (i = sizeof(action); i > 0; i--)
                if (level > action[i-1]["lvl"])
                        return action[NewRandom(i, 20, level / 5)];
}

int valid_learn(object me)
{
        if (me->query_temp("weapon") || me->query_temp("secondary_weapon"))
                return notify_fail("练毒砂掌必须空手。\n");

        if ((int)me->query_skill("force") < 100)
                return notify_fail("你的内功火候不够,无法练毒砂掌。\n");

        if ((int)me->query("max_neili") < 450)
                return notify_fail("你的内力太弱,无法练毒砂掌。\n");

        if (me->query_skill("strike", 1) < me->query_skill("dusha-zhang", 1))
                return notify_fail("你的基本掌法水平有限,无法领会更高深的毒砂掌。\n");
        if (me->query_skill("biyun-xinfa", 1) < 50 && me->query_skill("wudu-shengong", 1) < 50)
                return notify_fail("你的本门内功水平有限,无法领会更高深的毒砂掌。\n");
        return 1;
}

int practice_skill(object me)
{
        if ((int)me->query("qi") < 60)
                return notify_fail("你的体力太低了,先休息一下吧。\n");

        if ((int)me->query("neili") < 70)
                return notify_fail("你的内力不够练毒砂掌。\n");

        if (me->query_skill("dusha-zhang", 1) < 50)
                me->receive_damage("qi", 30);
        else
                me->receive_damage("qi", 40);

        me->add("neili", -60);
        return 1;
}

mixed hit_ob(object me, object victim, int damage_bonus, int factor)
{

        int level, jiali, time,level2;
        object weapon;

        int lvl;
        int flvl;
        int damage,damage2;
object target;

        level = (int) me->query_skill("dusha-zhang",1);
        level2= (int) me->query_skill("dusha-zhang",1);

       
if (random(6)==0 && level>=150 && (me->query_skill_mapped("force") == "wudu-shengong"  || me->query_skill_mapped("force") == "biyun-xinfa"))
{
            victim->receive_damage("qi",random(level)+10);
            victim->receive_wound("qi",15 + random(50));
            victim->apply_condition(du[random(sizeof(du))], 25);
            victim->apply_condition(du[random(sizeof(du))], 25);
            victim->apply_condition(du[random(sizeof(du))], 25);
            victim->apply_condition(du[random(sizeof(du))], 25);
            victim->apply_condition(du[random(sizeof(du))], 25);
            victim->apply_condition(du[random(sizeof(du))], 25);
if (!victim->is_busy()) victim->start_busy(2);       
return WHT "$N" WHT "突然收掌,然后迅速发掌! 掌中尽然有毒砂,这掌风尽然是五颜六色的!\n" WHT "$n" WHT "忽然感到一股莫名的恶心,全身瘫软,嘴皮乌紫。!\n"NOR;
}


}

string perform_action_file(string action)
{
        return __DIR__"dusha-zhang/" + action;
}




int ob_hit(object ob, object me, int damage)
{

        int lvl;
        int flvl;
        int level, jiali, time,level2,damage2;
               int neili, neili2;
  string msg,dodge_skill,*limbs;
        object weapon;
object target;
damage2= (int) ob->query("neili",1)/10;
if (damage2>= 3800) damage2 = 3800;
        level = (int) me->query_skill("dusha-zhang",1);
if (random(7)==0 && level>=150 && (me->query_skill_mapped("force") == "wudu-shengong"  || me->query_skill_mapped("force") == "biyun-xinfa")        )

{
if (!ob->is_busy()) ob->start_busy(3);       
if (me->query("qi") <= me->query("max_qi")*2) me->add("qi",damage2);
if (me->query("eff_qi") <= me->query("max_qi")*2) me->add("eff_qi",damage2);
msg = HIG"$N使出毒功!舔了舔$n流出的鲜血,全身的伤好像好了很多!!\n"NOR;
            message_vision(msg, me, ob);
}
return damage;
}

[发帖际遇]: hxsd去客栈吃饭,碰到郭靖,郭靖请你吃饭,并赠送银两2.
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2009-9-11 08:27 | 显示全部楼层

蓝砂手

// lansha-shou.c 蓝砂手 药王谷
// Edit By Vin On 26/2/2001

#include <ansi.h>
inherit SKILL;
string *du=({
"ice_poison",
"ill_dongshang",
"ill_fashao",
"ill_kesou",
"ill_shanghan",
"ill_zhongshu",
"xx_poison",
"cold_poison",
"flower_poison",
"rose_poison",
"x2_poison",
"sanpoison",
"scorpion_poison",
"anqi_poison",
"yf_poison",
"chilian_poison",
"yufeng_poison",
"insect_poison",
"snake_poison",
"wugong_poison",
"zhizhu_poison",
"xiezi_poison",
"chanchu_poison",
});
mapping *action = ({
([      "action" : "$N跨前一步,双掌陡然攻出,带着丝丝阴风击向$n的$l",
        "force" : 100,
        "attack": 25,
        "dodge" : 15,
        "parry" : 20,
        "damage": 110,
        "damage_type" : "瘀伤"
]),
([      "action" : "$N左掌护胸,右掌掌心带着极寒之气拍向$n的$l",
        "force" : 130,
        "attack": 30,
        "dodge" : 10,
        "parry" : 15,
        "damage": 120,
        "damage_type" : "瘀伤"
]),
([      "action" : "$N双掌拍出满天阴风,忽然右掌悄无声息的拍向$n的$l",
        "force" : 180,
        "attack": 50,
        "dodge" : 20,
        "parry" : 30,
        "damage": 130,
        "damage_type" : "瘀伤"
]),
([      "action" : "$N怪叫一声,身形一跃,左掌快若疾电般击向$n的$l",
        "force" : 210,
        "attack": 65,
        "dodge" : 25,
        "parry" : 20,
        "damage": 135,
        "damage_type" : "瘀伤"
]),
([      "action" : "$N阴笑一声,双掌一错,右掌忽然暴长数尺击向$n的$l",
        "force" : 210,
        "attack": 65,
        "dodge" : 25,
        "parry" : 20,
        "damage": 235,
        "damage_type" : "瘀伤"
]),
([      "action" : "$N身形急晃,一跃而至$n跟前,右掌带着冲天寒气击向$n的$l",
        "force" : 210,
        "attack": 65,
        "dodge" : 25,
        "parry" : 20,
        "damage": 135,
        "damage_type" : "瘀伤"
]),
([      "action" : "$N仰天长啸,双掌掌风似千古不化的寒冰般扑向$n的$l",
        "force" : 210,
        "attack": 65,
        "dodge" : 25,
        "parry" : 20,
        "damage": 135,
        "damage_type" : "瘀伤"
]),
([      "action" : "$N身法陡然一变,掌影千变万幻,令$n无法躲闪",
        "force" : 250,
        "attack": 45,
        "dodge" : 15,
        "parry" : 20,
        "damage": 125,
        "damage_type" : "瘀伤"
]),
([      "action" : "$N仰天一声狂啸,双掌携带着万古冰坚直直贯向$n",
        "force" : 330,
        "attack": 35,
        "dodge" : 25,
        "parry" : 20,
        "damage": 115,
        "damage_type" : "瘀伤"
])
});

int valid_enable(string usage) { return usage == "hand" || usage == "parry"; }

int valid_combine(string combo) { return combo == "lansha-shou"; }

int valid_learn(object me)
{
        if (me->query_temp("weapon") || me->query_temp("secondary_weapon"))
                return notify_fail("练蓝砂手必须空手。\n");

        if ((int)me->query_skill("force") < 100)
                return notify_fail("你的内功火候不够,无法练习蓝砂手。\n");

        if ((int)me->query("max_neili") < 800)
                return notify_fail("你的内力太弱,无法练习蓝砂手。\n");

        if ((int)me->query_skill("hand", 1) < (int)me->query_skill("lansha-shou", 1))
                return notify_fail("你的基本手法水平有限,无法领会更高深的蓝砂手。\n");
        if (me->query_skill("biyun-xinfa", 1) < 50 && me->query_skill("wudu-shengong", 1) < 50)
                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["lvl"])
                        return action["skill_name"];
}

mapping query_action(object me, object weapon)
{
        int i, level;
        level   = (int) me->query_skill("lansha-shou",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") < 50)
                return notify_fail("你的体力太低了。\n");

        if ((int)me->query("neili") < 70)
                return notify_fail("你的内力不够练蓝砂手。\n");

        me->receive_damage("qi", 40);
        me->add("neili", -60);
        return 1;
}

mixed hit_ob(object me, object victim, int damage_bonus, int factor)
{

        int level, jiali, time,level2;
        object weapon;

        int lvl;
        int flvl;
        int damage,damage2;
object target;

        level = (int) me->query_skill("lansha-shou",1);
        level2= (int) me->query_skill("lansha-shou",1);

       
if (random(6)==0 && level>=150 && (me->query_skill_mapped("force") == "wudu-shengong"  || me->query_skill_mapped("force") == "biyun-xinfa"))
{
            victim->receive_damage("qi",random(level)+10);
            victim->receive_wound("qi",15 + random(50));
            victim->apply_condition(du[random(sizeof(du))], 25);
            victim->apply_condition(du[random(sizeof(du))], 25);
            victim->apply_condition(du[random(sizeof(du))], 25);
            victim->apply_condition(du[random(sizeof(du))], 25);
            victim->apply_condition(du[random(sizeof(du))], 25);
            victim->apply_condition(du[random(sizeof(du))], 25);
if (!victim->is_busy()) victim->start_busy(2);       
return HIB "$N" HIB "突然收掌,然后迅速发掌! 掌中尽然有毒砂,这掌风尽然是五颜六色的!\n" HIB "$n" HIB "忽然感到一股莫名的恶心,全身瘫软,嘴皮乌紫。!\n"NOR;
}


}

string perform_action_file(string action)
{
        return __DIR__"lansha-shou/" + action;
}

int ob_hit(object ob, object me, int damage)
{

        int lvl;
        int flvl;
        int level, jiali, time,level2,damage2;
               int neili, neili2;
  string msg,dodge_skill,*limbs;
        object weapon;
object target;
damage2= (int) ob->query("neili",1)/10;
if (damage2>= 2800) damage2 = 2800;
        level = (int) me->query_skill("lansha-shou",1);
if (random(7)==0 && level>=150 && (me->query_skill_mapped("force") == "wudu-shengong"  || me->query_skill_mapped("force") == "biyun-xinfa")        )

{
if (!ob->is_busy()) ob->start_busy(3);       
if (me->query("qi") <= me->query("max_qi")*2) me->add("qi",damage2);
if (me->query("eff_qi") <= me->query("max_qi")*2) me->add("eff_qi",damage2);
msg = HIG"$N使出毒功!舔了舔$n流出的鲜血,全身的伤好像好了很多!!\n"NOR;
            message_vision(msg, me, ob);
}
return damage;
}

[发帖际遇]: hxsd买通太监进宫偷葵花,转手挣到银两8.
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-9-11 10:23 | 显示全部楼层
学习的条件很低啊,应该是初级入门武功,但唐门为什么只有死老太婆会?


刚拜了一圈,发现某7袋弟子也会。

[ 本帖最后由 yren 于 2009-9-11 16:30 编辑 ]
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-9-14 11:56 | 显示全部楼层
毒的伤害高不高啊 把CONDITION也贴一下吧

[发帖际遇]: 冷冷笑在摩天崖发现石破天住所,翻箱倒柜一番后发现银两5。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

小黑屋|手机版|铁血丹心

GMT+8, 2024-12-19 06:15

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表