|
[quote=newjoe,8128]貓兄啊 你說的判斷怪物距離及自動閃避功能要放在哪呢? 方不方便PO一下你的攻擊文件內容讓小弟學習學習 在此先謝了[/quote] 以女巫为例:
NTAttack.ntl文件内的function NTA_IsValidMonster(monster)找到if(me.classid == NTC_CHAR_CLASS_SORCERESS)然后如下插入:
if(me.classid == NTC_CHAR_CLASS_SORCERESS)
{
if(me.areaid != 131 && me.areaid != 132 && me.areaid != 124 && me.areaid != 25 && me.areaid != 121)
{
if(GetDistance(me.x,me.y,monster.x,monster.y) < 5)
{
NTM_MoveTo(me.areaid, monster.x+10, monster.y+10);
}
if(GetDistance(me.x,me.y,monster.x,monster.y) < 5)
{
NTM_MoveTo(me.areaid, monster.x-10, monster.y+10);
}
if(GetDistance(me.x,me.y,monster.x,monster.y) < 5)
{
NTM_MoveTo(me.areaid, monster.x-10, monster.y-10);
}
if(GetDistance(me.x,me.y,monster.x,monster.y) < 5)
{
NTM_MoveTo(me.areaid, monster.x+10, monster.y-10);
}
if(GetDistance(me.x,me.y,monster.x,monster.y) < 5)
{
NTM_MoveTo(me.areaid, monster.x, monster.y+10);
}
if(GetDistance(me.x,me.y,monster.x,monster.y) < 5)
{
NTM_MoveTo(me.areaid, monster.x-10, monster.y);
}
if(GetDistance(me.x,me.y,monster.x,monster.y) < 5)
{
NTM_MoveTo(me.areaid, monster.x, monster.y-10);
}
if(GetDistance(me.x,me.y,monster.x,monster.y) < 5)
{
NTM_MoveTo(me.areaid, monster.x+10, monster.y);
}
}
if(NTC_GetSkillLevel(53) > 10 && NTC_GetSkillLevel(64) > 10)
{
if(NTA_GetResistance(monster, NTA_DAMAGE_LIGHTNING) > 80 && NTA_GetResistance(monster, NTA_DAMAGE_COLD) > 80)
{
return false;
}
}
其中前半部分是8个方向的躲怪,去除了一些特殊地图:KP,杀BAAL等躲避并不好,其他地图都生效。
后半部分是我的女巫是冰电双修,遇到冰电免的躲开不打,格式给大家参考。
躲怪部分只是针对当前攻击怪的距离来躲闪。看着基本接近手动的样子,但手段过于原始。一直想搞个近身后判断怪的分布,自动找落脚点坐标的程序,但有能用的也就懒得再搞了。 |
|