2015/09/04

AI

这个方法是最简单的:
打开RO目录\AI\USER_AI中的AI.LUA,


加在 function        OnATTACK_ST ()
 中在这个函式中有一行
Attack (MyID,MyEnemy)
在他上面加一行,加上面比较好,有的魔物,技能一放就死了,不用多普攻一次
SkillObject(MyID,MySkillLevel,8013,MyEnemy)

技能等级不用设定,在游戏中可以改变使用技能等级
想使用3级善变打怪,你就手动用3级善变去打一次怪,之后生命体就会改用3级善变
想用5级,就手动用5级善变去打一次怪,生命体就会改用5级善变打怪

再来就修改主动攻击的简易改法

找到 function        OnIDLE_ST () 


local        object = GetOwnerEnemy (MyID) ===> 这是找攻击主人的敌人
...
...
end 

object = GetMyEnemy (MyID) ===> 生命体s不能动的原因这里
...
...
end

说明:
GetMyEnemy (MyID)
这个函式中是先判断生命体种类,再去选择被攻还是主动
如果是被动种类会呼叫 GetMyEnemyA (MyID) ===> 找攻击生命体的魔物
如果是主动种类会呼叫 GetMyEnemyB (MyID) ===> 找离主人最近的魔物
但他的内容其没有包含断生命体s,函式的内容在ai档最下面,可以自己去看看

而整个 OnIDLE_ST () 函式在跑时
原本官方,是先找攻击主人的魔物,再去判断被动还是主动
但这样的流程不够好,
最好能先攻击打主人的魔物,再攻击打生命体的魔物,都没有就主动出击找魔物

将原来的 
object = GetMyEnemy (MyID) 
...
...
end
整个内容复制起来,在 end 下面贴上一份,如下面这样

object = GetMyEnemy (MyID) ===> 等下要改成 GetMyEnemyA (MyID)
...
...
end

object = GetMyEnemy (MyID) ===> 等下要改成 GetMyEnemyB (MyID)
...
...
end

也就是

object = GetMyEnemyA (MyID)
...
...
end

object = GetMyEnemyB (MyID) 
...
...
end

修改完成后,寻敌的顺序就变成
先打主人的,再找自己的,都没有就主动出击
这只是简易修改法

GetOwnerEnemy (MyID)
GetMyEnemyA (MyID)
GetMyEnemyB (MyID)
这三个函式其实内容很像,可以写成一个的
如果这样改就不叫简易修改了




最后附上技能代码表
我從 AzzyAI 1.50 中找出來的,自己加上中文對照

-- Homunculus Skills
HLIF_HEAL                = 8001 治愈之手
HLIF_AVOID                = 8002 轻捷移动
HLIF_CHANGE                = 8004 智力变换

HAMI_CASTLE                = 8005 位置互换
HAMI_DEFENCE                = 8006 防御力
HAMI_BLOODLUST                = 8008 血的贪求

HFLI_MOON                = 8009 月光
HFLI_FLEET                = 8010 横越速度
HFLI_SPEED                = 8011 紧急回避
HFLI_SBR44                = 8012 S.B.R.44

HVAN_CAPRICE                = 8013 善变
HVAN_CHAOTIC                = 8014 混乱的祈福
HVAN_SELFDESTRUCT        = 8016 生物爆炸

--Homun S Skills
MUTATION_BASEJOB         = 8017
MH_SUMMON_LEGION         = 8018 召唤军团
MH_NEEDLE_OF_PARALYZE         = 8019 麻痹针
MH_POISON_MIST                 = 8020 毒雾
MH_PAIN_KILLER                 = 8021 止痛剂
MH_LIGHT_OF_REGENE         = 8022 重生之光
MH_OVERED_BOOST                = 8023 超越喷射
MH_ERASER_CUTTER         = 8024 铲除之刃
MH_XENO_SLASHER         = 8025 染血飞刀
MH_SILENT_BREEZE         = 8026 沉默微风
MH_STYLE_CHANGE         = 8027 转换风格
MH_SONIC_CRAW                 = 8028 音速爪
MH_SILVERVEIN_RUSH         = 8029 银色冲刺
MH_MIDNIGHT_FRENZY         = 8030 午夜狂热
MH_STAHL_HORN                 = 8031 角突击
MH_GOLDENE_FERSE         = 8032 黄金右脚
MH_STEINWAND                = 8033 大权杖
MH_HEILIGE_STANGE         = 8034 圣歌
MH_ANGRIFFS_MODUS         = 8035 愤怒模式
MH_TINDER_BREAKER         = 8036 火种破坏者
MH_CBC                         = 8037 C.B.C
MH_EQC                         = 8038 E.Q.C
MH_MAGMA_FLOW                 = 8039 岩浆流动
MH_GRANITIC_ARMOR         = 8040 花岗石铠甲
MH_LAVA_SLIDE                 = 8041 熔岩滑动
MH_PYROCLASTIC                 = 8042 热分裂
MH_VOLCANIC_ASH         = 8043 火山灰


中英对照
Sera :昆虫型;技能总数:4个
MH_SUMMON_LEGION         = 8018 召唤军团
MH_NEEDLE_OF_PARALYZE         = 8019 麻痹针
MH_POISON_MIST                 = 8020 毒雾
MH_PAIN_KILLER                 = 8021 止痛剂

Bayeri :独角兽型;技能总数:5个
MH_STAHL_HORN                 = 8031 角突击
MH_GOLDENE_FERSE         = 8032 黄金右脚
MH_STEINWAND                = 8033 大权杖
MH_HEILIGE_STANGE         = 8034 圣歌
MH_ANGRIFFS_MODUS         = 8035 愤怒模式

Dieter (节食者):熔岩型;技能总数:5个
MH_MAGMA_FLOW                 = 8039 岩浆流动
MH_GRANITIC_ARMOR         = 8040 花岗石铠甲
MH_LAVA_SLIDE                 = 8041 熔岩滑动
MH_PYROCLASTIC                 = 8042 热分裂
MH_VOLCANIC_ASH         = 8043 火山灰

Eleanor :猫型;技能总数:7个
MH_STYLE_CHANGE         = 8027 转换风格
MH_SONIC_CRAW                 = 8028 音速爪
MH_SILVERVEIN_RUSH         = 8029 银色冲刺
MH_MIDNIGHT_FRENZY         = 8030 午夜狂热
MH_TINDER_BREAKER         = 8036 火种破坏者
MH_CBC                         = 8037 C.B.C
MH_EQC                         = 8038 E.Q.C

Eira :妖精型;技能总数:5个
MH_LIGHT_OF_REGENE         = 8022 重生之光
MH_OVERED_BOOST                = 8023 超越喷射
MH_ERASER_CUTTER         = 8024 铲除之刃
MH_XENO_SLASHER         = 8025 染血飞刀
MH_SILENT_BREEZE         = 8026 沉默微风

沒有留言:

張貼留言