![]() |
cast lianhua源码分析(原创)
50级的buddhism cast lianhua和100级的cast lianhua效果有区别吗?谁有源码分析一下呀.
自己分析了。如下: int cast(object me) { int skill; me=this_player(); if( (int)me->query_skill("buddhism", 1) < 50 ) return notify_fail("你的大乘佛法等级不够。\n"); if( (int)me->query("mana") < 300 ) return notify_fail("你的法力不够。\n"); if( (int)me->query("kee") < 300 ) return notify_fail("你的气血不足。\n"); if( (int)me->query("sen") < 300 ) return notify_fail("你的精神不足。\n");//cat lianhua大乘等级至少要 50级,法力300以上,气血300以上,精神300以上。 if( (int)me->query_temp("anti_magic") ) return notify_fail("你已经在运功中了。\n"); skill = me->query_skill("spells");//法术有效登记 me->add("mana", -100); me->receive_damage("kee", 30); me->receive_damage("sen", 30);//施法费法力100,气血30,精神30 message_vision( HIC"$N微一凝神,背后幻出一朵白莲,五色毫光闪现。\n" NOR, me); me->set_temp("anti_magic", skill);//抗魔法系数=法术有效等级 me->start_call_out( (: call_other, __FILE__, "remove_effect", me, skill/3 :), skill); if( me->is_fighting() ) me->start_busy(3);//如果在战斗中自己busy 3秒。 return 1; } void remove_effect(object me, int amount) { me->delete_temp("anti_magic"); tell_object(me, "你身后的白莲渐渐隐去了。\n"); return; } ************* if( victim->query_temp("anti_magic") ) { adjust=(int)victim->query_temp("anti_magic");//抗魔法系数 if( (int)victim->query("mana") < adjust) success=0;//法力小于抗魔法系数则失败 else success=1;//否则成功 if( success ) { victim->add("mana", -adjust);//成功后减法力值=抗魔法系数 damage_qi=damage_qi - adjust/2; damage_shen=damage_shen - adjust/2;//收到的伤害气血和精神各减抗魔法系数/2 if ( damage_qi > 0 || damage_shen > 0 ) message_vision("\n只见$N身后幻出千朵白莲,挡住了$n的攻势。\n", victim, winner); //抵挡住一些伤害 else message_vision("\n只见$N身后幻出千朵白莲,将$n的攻势尽数化解。\n", victim, winner); //毫发无伤 } } 综上,因为抗魔法系数=法术有效等级,提高buddhism的有效等级是化解法术伤害的关键参数。 |
回复: cast lianhua
挺好,为啥没人回复这技术贴呢。
|
回复: cast lianhua
引用:
|
回复: cast lianhua
加了声望!:em25::em25:
|
回复: cast lianhua
太复杂了,看不懂。。。新人只需要结果
|
所有时间均为格林尼治时间 +9, 现在的时间是 00:34. |
Powered by SPLS
版权所有 2001-2023 水泊梁山
皖ICP备05012024号
站长 fengyue