查看单个帖子
旧 2006-03-21   #1
voon
中级会员
级别:2 | 在线时长:15小时 | 升级还需:15小时级别:2 | 在线时长:15小时 | 升级还需:15小时
 
voon 的头像
 
注册: 06年01月28日
来自: 客栈
帖子: 52
声望力: 20
声望: 26 voon 初领妙道
积分:7
精华:1
现金:147两梁山币
资产:147两梁山币
致谢数: 0
获感谢文章数:1
获会员感谢数:1
【总站】【原创】武功,法g,perform

今天,想跟大家讨论一些西游记里的武功,法术和perform. 我想开发以及更改一些已经在西游记里的武功,法术和perform. 首先,我们来看看

五庄观 - 八仙阵
大家都知道五庄观里的八仙阵,到了100k或以上的武学,就等于废物了。为何,不把八仙阵upgrade一番呢? 我们可以把八仙阵改改。 当玩家的spells, taiyi都过了level 100,八仙阵就不再只做武力攻击了。 把code换一换,让八仙random cast zhenhuo. 每一个八仙人物所cast的zhenhuo,效果以及功力可以再和玩家的道行,spells和taiyi配合, 弄得强一点。 这么一来,八仙阵就不再是废物啦。 因此,灭妖的时候,8个八仙,有几个是做武力攻击,有的就cast zhenhuo. 当然,这也意味着,那些做武力攻击的,都会miss,或伤害不大,而cast zhenhuo的,就会有一些很理想的效果啦。

五庄观 - ]有perform的武功
相信大家都J同,]有perform的武功,都是垃圾吧...就好像五庄观里的yange-blade,学了,没有perform,灭妖或打架,都不是很有用。五庄观既然有这么多不同的武功,为设么我们不能把全部都连贯起来?我们可以从原本的perform staff/perform hammer 着手。 我们可以加个perform blade,然后再大大增加原本的powerup damage.玩家可以学了伏魔杖,学开山锤和yange-blade,做三次的powerup。 当然,基本的powerup需要80级的镇元神功,80级的三清剑法/晓风残月剑法和相关的hammer,blade或staff skill。然后,每增加20级的镇元神功和三清剑法/晓风残月剑法,玩家就可以再次perform powerup.结果,在120级镇元神功和三清剑法/晓风残月剑法,玩家的damage就会非常的可观了。玩家perform staff后,只能perform blade或perform hammer.第二次的perform后,玩家就只可以perform blade而已。打个例子:
玩家perform blade, 攻击力x2
玩家再perform hammer, 攻击力x3
玩家最后perform staff, 攻击力x4, 而招式则是伏魔杖。当然除了增加攻击力,我们可以加有效轻功,有效招架等技能。

五庄观 - 三清剑法
三清剑法,乃道家剑法。一剑化三清,乃神雕侠侣里面所提到的。为设么同样是道家剑法,我们的三清剑就不能化三清? 化三清,就是连续出三招,busy对手。相信,这也不会很难写吧?

千手 - level 300后
level 300的千手,perform qianyan后,身后就会化出1000只手了。我们可以在加个perform,把1000只手的合十,和身攻向对手,以内力,法力对敌人做出比例的气血和精神的伤害。

我在此附上了一些自己写的perform,供大家发表意见。
*********************************************************************
「千手合十」
*********************************************************************#include <ansi.h>

inherit SSERVER;

int perform(object me, object target)
{
string msg;
int force,mana;
object obj = find_player(target);

if( !target ) target = offensive_target(me);

if( !target
|| !target->is_character()
|| target->is_corpse()
|| !obj
|| target==me)
return notify_fail("你要攻击谁?\n");

if (obj)
return notify_fail("不能对玩家施展「千手合十」!!!\n");

if(!me->is_fighting())
return notify_fail("你们没有在打架!\n");

if((int)me->query("force") < 1000 )
return notify_fail("你的内力不足!\n");

if( (int)me->query("mana") < 1000 )
return notify_fail("你的法力不足!\n");

if((int)me->query_skill("qianshou", 1) < 300)
return notify_fail("你的千手等级不够,不能使用这一招!\n");

if(!(int)me->query_temp("powerup") )
return notify_fail("千眼未开,如何千手合十?\n");

me->delete("env/brief_message");
target->delete("env/brief_message");

msg = HIY"\n$N一个筋斗翻在半空, 凝聚全身功力, 身后千手以及双掌纷纷合十, 顿时间霞光四射。\n";
if (me->query_skill_mapped("spells")="buddhism" ||
me->query_skill_mapped("spells")="dao" ||
me->query_skill_mapped("spells")="taiyi" ||
me->query_skill_mapped("spells")="gouhunshu")
msg += HIY"金光"NOR;
else if (me->query_skill_mapped("spells")="seashengtong")
msg += HIC"寒光"NOR;
else if (me->query_skill_mapped("spells")="moonshentong")
msg += HIW"白光"NOR;
else if (me->query_skill_mapped("spells")="yaofa" ||
me->query_skill_mapped("spells")="dengxian-dafa")
msg += HIR"红光"NOR;
else
msg += "霞光";

msg += HIY"闪过之后, $N已经在$n身上当胸穿过!!\n"NOR;
message_vision(msg, me, target);
me->add("force", -1000);
me->add("mana", -1000);
force = me->query("force");
mana = me->query("mana");

target->receive_damage("kee",force); // damage from remaining force points. 1 force point = 1 kee damage
target->receive_damage("sen",mana); // damage from remaining mana points. 1 mana point = 1 sen damage
target->receive_damage("kee",1000); // 1 hand = 1 kee damage
target->receive_damage("sen",1000); // 1 hand = 1 sen damage

me->set("force", 0); // set force and mana to 0
me->set("mana", 0);

COMBAT_D->report_status(target);
COMBAT_D->report_status(me);
if( !target->is_fighting(me) ) {
if( living(target) ) {
if( userp(target) ) target->fight_ob(me);
else target->kill_ob(me);
}
}

me->start_busy(3);
return 1;
}
*********************************************************************化剑为杖
*********************************************************************#include <ansi.h>

inherit F_DBASE;
inherit SSERVER;

void remove_effect(object me, object target, int amount);

int perform(object me, object target)
{
int skill_ssword, skill_sword, skill_force,attack_amount,skill_dodge,powerup;
string *msg = ({
CYN"$N 招式一转,一招「群魔伏首」,手中的$w带出飞沙走石般的杖风压向$n的$l。\n $n连忙向旁闪了开去。$n只是睁大着眼睛,仿佛不相信$N剑招里居然变得如此稀奇古怪。"NOR,
CYN"只见$N略略一退,旋即一个跨步,$w划出一道弧光刺向$n$l。\n$n变色斜睨,背上惊出了一阵冷汗,逼不得已往后滚。"NOR,
});

powerup = 0;

if( !me->is_fighting())
return notify_fail("「化剑为杖」只有在战斗中才能使用。\n");

if (me->query_skill_mapped("force")!="zhenyuan-force")
return notify_fail("「化剑为杖」必须配合镇元神功才能使用。\n");

if((int)me->query_skill("fumo-zhang", 1) < 80)
return notify_fail("你的伏魔杖级别还不够,使用这一招会有困难!\n");

if( (int)me->query_temp("powerup_staff") )
{
powerup = powerup + 1;
return notify_fail("你已经化剑为杖了。\n");
}
if( (int)me->query_temp("powerup_hammer") )
{
powerup = powerup + 1;
}
if( (int)me->query_temp("powerup_blade") )
{
powerup = powerup + 1;
}

skill_ssword = me->query_skill("sanqing-jian");
if (skill_ssword<(40 * powerup))
return notify_fail("你三清剑法等级还不够。\n");


skill_force=me->query_skill("zhenyuan-force");
if (skill_force<(40 * powerup))
return notify_fail("你的镇元神功不够纯熟。\n");

skill_sword=me->query_skill("sword");
if (skill_sword<(40 * powerup))
return notify_fail("你的基本剑术太差劲了。\n");

if( (int)me->query("force") < (50 * powerup) )
return notify_fail("你的内力不够。\n");

me->add("force", -(50 * powerup));
message_vision(msg[random(sizeof(msg))], me);

attack_amount=skill_ssword /2;

me->add_temp("apply/damage",attack_amount);
me->set_temp("powerup_staff", 1);
me->start_call_out( (: call_other, __FILE__, "remove_effect",
me,attack_amount,powerup:), skill_ssword/20);

return 1;
}

void remove_effect(object me, int attack_amount, int powerup)
{
me->add_temp("apply/damage", -(attack_amount * powerup));
me->delete_temp("powerup_staff");
message_vision(
HIY"$N深吸了一口气,收起招式.\n"NOR,me);
}

*********************************************************************化剑为锤
*********************************************************************#include <ansi.h>

inherit F_DBASE;
inherit SSERVER;

void remove_effect(object me, object target, int amount);

int perform(object me, object target)
{
int skill_ssword, skill_sword, skill_force,attack_amount,skill_dodge,powerup;
string *msg = ({
CYN"$N 招式一转,一招「五丁开山」,手中的$w举重若轻,势若疯虎地向$n$l连连砸去。\n $n连忙向旁闪了开去。$n只是睁大着眼睛,仿佛不相信$N剑招里居然变得如此稀奇古怪。"NOR,
CYN"只见$N稍一运气,手中的$w上中下连扫三圈,逼得$n连退不迭。\n$n变色斜睨,背上惊出了一阵冷汗,逼不得已往后滚。"NOR,
});

if( !me->is_fighting())
return notify_fail("「化剑为锤」只有在战斗中才能使用。\n");

if (me->query_skill_mapped("force")!="zhenyuan-force")
return notify_fail("「化剑为锤」必须配合镇元神功才能使用。\n");

if((int)me->query_skill("kaishan-chui", 1) < 80)
return notify_fail("你的开山锤级别还不够,使用这一招会有困难!\n");

if( (int)me->query_temp("powerup_staff") )
{
powerup = powerup + 1;
}
if( (int)me->query_temp("powerup_hammer") )
{
powerup = powerup + 1;
return notify_fail("你已经化剑为锤了。\n");
}
if( (int)me->query_temp("powerup_blade") )
{
powerup = powerup + 1;
}


skill_ssword = me->query_skill("sanqing-jian");
if (skill_ssword<(40 * powerup))
return notify_fail("你三清剑法等级还不够。\n");


skill_force=me->query_skill("zhenyuan-force");
if (skill_force<(40 * powerup))
return notify_fail("你的镇元神功不够纯熟。\n");

skill_sword=me->query_skill("sword");
if (skill_sword<(40 * powerup))
return notify_fail("你的基本剑术太差劲了。\n");

if( (int)me->query("force") < (50 * powerup) )
return notify_fail("你的内力不够。\n");


me->add("force", -(50 * powerup));
message_vision(msg[random(sizeof(msg))], me);

attack_amount=skill_ssword /2;

me->add_temp("apply/damage",attack_amount);
me->set_temp("powerup_staff", 1);
me->start_call_out( (: call_other, __FILE__, "remove_effect",
me,attack_amount,powerup:), skill_ssword/20);

return 1;

}

void remove_effect(object me, int attack_amount, int powerup)
{
me->add_temp("apply/damage", -(attack_amount * powerup));
me->delete_temp("powerup_staff");
message_vision(
HIY"$N深吸了一口气,收起招式.\n"NOR,me);
}


*********************************************************************
化剑为刀
*********************************************************************#include <ansi.h>

inherit F_DBASE;
inherit SSERVER;

void remove_effect(object me, object target, int amount);

int perform(object me, object target)
{
int skill_ssword, skill_sword, skill_force,attack_amount,skill_dodge,powerup;
string *msg = ({
CYN"$N 招式一转,手中$w一晃,由下至上撩向$n的$l,一招「孤城落日」使得恰到好处。\n$n只是连声叫怪,措手不及地胡乱招架。"NOR,
CYN"$N手中$w飘摇不定,招式一转,一招「大漠穷秋」斜斜的砍向$n的$l\n$n一惊,狼狈不堪地跳了开去。"NOR,
});

powerup = 0;

if( !me->is_fighting())
return notify_fail("「化剑为刀」只有在战斗中才能使用。\n");

if (me->query_skill_mapped("force")!="zhenyuan-force")
return notify_fail("「化剑为刀」必须配合镇元神功才能使用。\n");

if((int)me->query_skill("yange-blade", 1) < 80)
return notify_fail("你的雁歌刀法级别还不够,使用这一招会有困难!\n");

if( (int)me->query_temp("powerup_staff") )
{
powerup = powerup + 1;
}
if( (int)me->query_temp("powerup_hammer") )
{
powerup = powerup + 1;
}
if( (int)me->query_temp("powerup_blade") )
{
powerup = powerup + 1;
return notify_fail("你已经化剑为刀了。\n");
}

skill_ssword = me->query_skill("sanqing-jian");
if (skill_ssword<(40 * powerup))
return notify_fail("你三清剑法等级还不够。\n");


skill_force=me->query_skill("zhenyuan-force");
if (skill_force<(40 * powerup))
return notify_fail("你的镇元神功不够纯熟。\n");

skill_sword=me->query_skill("sword");
if (skill_sword<(40 * powerup))
return notify_fail("你的基本剑术太差劲了。\n");

if( (int)me->query("force") < (50 * powerup) )
return notify_fail("你的内力不够。\n");

me->add("force", -(50 * powerup));
message_vision(msg[random(sizeof(msg))], me);
target->start_busy(2);
attack_amount=skill_ssword/2;

me->add_temp("apply/damage",attack_amount);
me->set_temp("powerup_staff", 1);
me->start_call_out( (: call_other, __FILE__, "remove_effect",
me,attack_amount,powerup:), skill_ssword/20);

return 1;
}

void remove_effect(object me, int attack_amount, int powerup)
{
me->set_temp("apply/damage", -(attack_amount * powerup));
me->delete_temp("powerup_staff");
message_vision(
HIY"$N深吸了一口气,收起招式.\n"NOR,me);
}
*********************************************************************
帅哥 voon 当前离线  
回复时引用此帖