作者laechan (小太保)
看板mud_sanc
标题[wizs] 怪物特殊攻击参数及设定
时间Thu Jul 11 16:47:17 2013
这东西我想在暑假定案,我的构想是,废弃使用 special
及 special_fun 的做法,改成在 mob 的 special_attack
里面实做一个函数。
一、怪物在持续呼叫 continue_attack 函数的过程中,
会经常 random 判断是否呼叫 special_attack 函
数。怪物等级越高 random 值越高。
该判断会受到沉默术的影响,怪物被沉默成功时不呼
叫。
二、special_attack 函数会读取怪物身上 special_attack
参数,先得到有几个攻击,再用 random switch 去跑
届时就可依攻击种类,看玩家身上有哪些参数来决定
有效无效,例如定身攻击遇到圣体附身会无效这类的
三、指令 con 新增观看该怪物会哪些特殊攻击的段落。
/std/gmonster.c
void continue_attack()
{ MOB_D->continue_attack(this_object()); }
void execute_attack ()
{ MOB_D->execute_attack(this_object()); }
void normal_attack(object tar)
{ MOB_D->normal_attack(this_object(),tar); }
主要修改 mob_d.c 即可:
void execute_attack (object me)
{
object tar,wp;
int ss,special_ok;
if(!me) return ;
if(me->query_temp("countdown_attack")>0) return ;
if(!tar=me->query_current_attacker()) return ;
// 特攻
ss=(int)me->query("special")-(int)me->query("god-damn_effect")/10;
ss=ss+1;
if( ss>99 || 1+ss >2+random(100))
{
tar=defend_attack(me,tar);
call_other(me,"special_fun",me,tar);
return ;
}
假设 god-damn 也影响这类特攻频率,那原则上 god-damn
是进阶技能,应设定为无视怪物设定全面影响,但是它无法
拔除怪物的特攻,只能降低其频率这样。
(目前是这样设定的)
则上面的程式段只需 insert 一条与 special_attack 有
关的判断即可。
不难写,实装了会公告。
最後,RO 有做一项设计就是当你的属性达到多少时,对某
些特殊攻击可免疫,圣殿也可以做这个,数值的话,我想就
定 10000 吧。
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.61.157.53
1F:推 AresMars :推正规化 07/11 18:02