作者laechan (小太保)
看板mud_sanc
标题Re: [wizs] 问题请教(二十四)
时间Thu Jul 21 20:37:25 2011
※ 引述《amosdeus (幽素)》之铭言:
: 第一个问题:
: 6061 11/11 laechan R: [问题] 法术施展间隔
: 以前有, ready_attack 大概是这样, 假设发特攻 +a,
: 发法术 +b, 发动 en 攻击 +c
: a+c > 一回合极限 -> 下一回合 en 不发动
: b+c > 一回合极限 -> 下一回合 en 不发动
: 通常特攻的 ready_attack 都会比较短.
: =================================================
: 但是因为 ready_attack 的累加经常出问题, 出问题时
: 玩家在战斗中就会一直发不出攻击, 所以就取消了相关
: 判断.
: 请问现在用什麽参数当作特攻的延迟时间
: 作用是新的技能使用的到
: _slash
: //剑术加速 20% Plain in 2011.07.19
: //剑术攻击速度增加 Fencing quicken
: if(me->query("skill/kencing quicken"))
: {
: me_ra = me->query("ready_attack");
: me_ra = ( me_ra / 10 ) * 2;
: me->add("ready_attack",-me_ra);
: }
既然只有新的技能会使用到,你可以自己写,参数设在 temp_data
区的 time_record 栏位即可,例如
me->add_temp("time_record/ready_slash",-me_ra);
: 第二个问题:
: 请问如何玩家使用wp时 special 能够被执行
: 新的技能的构想是当剑士学习到 魔法剑专精(Improved Magicslash)
: 装备剑类武器读取 me->query("skill/improved magicslash")
技能英文名尽量取短一点,比方 xxx-magic slash。
: 可以执行剑类武器时 special 或者应该从哪个函数去作修改。
: Plain@Sanc
这个东西本来就有,那比较有可能的就是被 /* */ 掉了。
> grep -n special_fun *.c
[/adm/daemons/mob_d.c]
383: call_other(me,"special_fun",me,tar);
392: call_other(wp,"special_fun",me,tar);
> grep -n special_fun *
[/adm/daemons/user_d.20100609]
1354: wp->special_fun(me,tar);
所以我才会说,请不要把前人的 /* */ 或 // 拿掉,不然
到时找不到屍体,要复原很困难。
这东西原先是写在 /adm/daemons/user_d.c 的 execute_attack
函数里头,这很合理,玩家欲执行每次的 en/普攻 时就顺便读
取武器的 special 值来随机执行武器特殊攻击...
/*
else if(wp=me->query_wp())
{
if(wp->query("special") > random(100))
{
wp->special_fun(me,tar);
return ;
}
}
*/
因为没有注明移除原因,所以不清楚为何移除,但移除一定是有
理由的(我猜跟当初的 debug 1 的 bug 有关)。
要复原可以,前提是:
1. special 值不能被滥设(很多都设 9x 以上,有设等於没设)
2. 我会额外加几个判断来防止它被瞬间大量执行。
(用 time_record 来做就可)
wp 的 special_fun 写法跟 mob 的 special_fun 写法相同。
Belldandy.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.117.9.179