- 追加された行はこの色です。
- 削除された行はこの色です。
*傭兵AI [#yf513407]
ホムンクルスのようにAIを利用して行動を制御できます。~
AIは、ホムンクルスAIを流用したファイルが新規追加されます。~
*傭兵AI [#dfc99ce4]
傭兵は、ホムンクルスと同じようにAIを利用して行動を制御できます。~
傭兵のAIは、ホムンクルスAIを流用した''AI_M.lua''が新規追加されます。~
日本ROのAI更新と変更はリヒタルゼンアップデート以来になります。~
しかし、日本での実装は年中になるかすら不明((Gung-Ho社の手のひらの上にある。))です。~
**AI [#y7b5384e]
-デフォルトは''ノンアクティブ状態''
-''AI_M.lua''で行動を制御
-''AI_M.lua''の中身はホムンクルスAIの''AI.lua''とほとんど同じ
**AI [#zbd45f05]
-デフォルトは''ノンアクティブ状態'':非先攻型(GetMyEnemyA使用) 。
-''AI_M.lua''で行動を制御します。
--''AI.lua''はホムンクルスを制御するファイルです。
-''AI_M.lua''の中身はホムンクルスAIの''AI.lua''とほとんど同じ。
-''&color(red){Const.luaはホムンクルスAIと共通};''
-AI_M.luaの''M''は、傭兵(''&color(darkgreen){M};ercenary'')の頭文字。~
-AI_M.luaの''M''は、傭兵(''&color(darkgreen){M};ercenary'')の頭文字です。
-''/merai'' で傭兵デフォルトAIと傭兵カスタムAIを切り替えます。
-スクロール、傭兵のスキルはショートカットに登録可能
-[[Azzy Mercenary AI>http://pc3merchant.net/index.php?AI%BE%DC%BA%D9%2FAzzy]]が一番、使いやすい。(2008年5月3日現在)
**フォルダ構成 [#ja23d981]
**フォルダ構成 [#g81b372b]
-''&color(red){赤:追加ファイル};''
-''&color(darkgreen){緑:更新ファイル};''
-./:''ROクライアントインストールフォルダ''
-./AI/
--AI.lua
--''&color(red){AI_M.lua};''
--''&color(darkgreen){Const.lua};''(アップデート)
--Util.lua
-''&color(red){./AI/USER_AI/};''
--''&color(red){AI_M.lua};'' : "./AI/AI_M.lua"と同一
--''&color(red){Const.lua};'' : "./AI/Const.lua"と同一
**変更 [#j6b637b5]
***上:AI.lua / 下:AI_M.lua [#s2cb9489]
-グローバル変数
**変更点 [#pa416f2b]
-GetV用定数に''V_MERTYPE=12''(傭兵種類)が追加されます。
-傭兵種類を表す定数''ARCHER01〜10''、''LANCER01〜10''、''SWORDMAN01〜10''が追加されます。
-''SkillObject関数が成否結果&color(red){(0/1)};を返す''ようになりました。
--今までは先に敵が死んだり場合などで、スキル成否を判定できなかったが、出来るように
なった模様。
--戻り値を使って判定している箇所が追加されていました。
-ホムンクルスと違い、傭兵は攻城戦で&color(red){''エンペリウムを攻撃することが出来ません。''};
MyID = 0 -- ホムンクルス id
MySkill = 0 -- ホムンクルスの スキル
MySkillLevel = 0 -- ホムンクルスの スキル レベル
**&aname(Reference){参考}; [#z9a753f1]
+[[傭兵AI差分>Mercenary/AI_diff]]
+[[リンク>Link]]
-[[らくがき@iRO - 新世界編>http://zero.kitaguni.tv/]]
--[[らくがき@iRO - 新世界編:2008年04月21日>http://zero.kitaguni.tv/d2008-04-21.html]]
MyID = 0 -- 傭兵 id
MySkill = 0 -- 傭兵の スキル
MySkillLevel = 0 -- 傭兵の スキル レベル
-function OnATTACK_ST ()
SkillObject (MyID,MySkillLevel,MySkill,MyEnemy)
if (1 == SkillObject(MyID,MySkillLevel,MySkill,MyEnemy)) then
MyEnemy = 0
end
-function GetMyEnemy (myid)
local result = 0
local type = GetV (V_HOMUNTYPE,myid)
if (type == LIF or type == LIF_H or type == AMISTR or type == AMISTR_H or type == LIF2 or type == LIF_H2 or type == AMISTR2 or type == AMISTR_H2) then
result = GetMyEnemyA (myid)
elseif (type == FILIR or type == FILIR_H or type == VANILMIRTH or type == VANILMIRTH_H or type == FILIR2 or type == FILIR_H2 or type == VANILMIRTH2 or type == VANILMIRTH_H2) then
result = GetMyEnemyB (myid)
end
return result
local result = 0
local type = GetV (V_MERTYPE,myid)
if (type >= ARCHER01 and type <= SWORDMAN10) then
result = GetMyEnemyA (myid)
else
result = GetMyEnemyB (myid)
end
return result
***Const.lua(上:旧 / 下:新) [#rf4205b9]
--------------------------------------------
-- ホムンクルス 種類
--------------------------------------------
LIF = 1
AMISTR = 2
FILIR = 3
VANILMIRTH = 4
LIF2 = 5
AMISTR2 = 6
FILIR2 = 7
VANILMIRTH2 = 8
LIF_H = 9
AMISTR_H = 10
FILIR_H = 11
VANILMIRTH_H = 12
LIF_H2 = 13
AMISTR_H2 = 14
FILIR_H2 = 15
VANILMIRTH_H2 = 16
--------------------------------------------
--------------------------------------------
-- ホムンクルス 種類
--------------------------------------------
LIF = 1
AMISTR = 2
FILIR = 3
VANILMIRTH = 4
LIF_H = 5
AMISTR_H = 6
FILIR_H = 7
VANILMIRTH_H = 8
--------------------------------------------
**追加 [#f34a40d1]
***Const.lua [#nd37a1e2]
V_MERTYPE = 12 -- 傭兵 種類
--------------------------------------------
-- 傭兵 種類
--------------------------------------------
ARCHER01 = 1
ARCHER02 = 2
ARCHER03 = 3
ARCHER04 = 4
ARCHER05 = 5
ARCHER06 = 6
ARCHER07 = 7
ARCHER08 = 8
ARCHER09 = 9
ARCHER10 = 10
LANCER01 = 11
LANCER02 = 12
LANCER03 = 13
LANCER04 = 14
LANCER05 = 15
LANCER06 = 16
LANCER07 = 17
LANCER08 = 18
LANCER09 = 19
LANCER10 = 20
SWORDMAN01 = 21
SWORDMAN02 = 22
SWORDMAN03 = 23
SWORDMAN04 = 24
SWORDMAN05 = 25
SWORDMAN06 = 26
SWORDMAN07 = 27
SWORDMAN08 = 28
SWORDMAN09 = 29
SWORDMAN10 = 30
--------------------------------------------