--[[ このファイルはRampageAIの一部です。 RampageAIはフリーソフトです; これをFree Software Foundationが公布する GNU一般共有使用許諾の条件のもとで再配布および改変することができます; GNUライセンスバージョン2、または(あなたの選択で)2より以前のバージョンに おいて。 RampageAIは、有用であるという希望を持って配布されます。 ただし*保証なしで*; 市販性か、特定の目的のための適性の暗黙的な保証がなくても。 その他の詳細に関しては、GNU一般共有使用許諾を見てください。 RampageAIと共にGNUの一般共有使用許諾のコピーを同時に受け取るべきです; そうでないなら、以下の所へ書きなさい。 Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA --]] --[[ *** 読んで下さい *** "--" で始まる行は "コメントライン" でコメントになります。 また、"コメントブロック" は、"--[[" で始まり、 "--]]" の行に達するまで 全部の行がコメントになります。 設定可能オプションは単一の "=" と共にそれらの行の上に全て現れます。 例: ThisOptionIsInACommentBlock = true Because you do not need any knowledge of programming to change numbers, do not send any support or help requests with "I do not know lua", "I do not know programming", or other such statements. Doing so will tell me (Faithful) that you have not read your configuration file, and I may ignore your request. For this reason, I will once again go over >>everything<< that you need to know. All options follow the format as follows: OptionName = OptionValue Never, ever change the OptionName. Never. But, if you do not like the setting which is dictated, then you may change OptionValue. Do not worry if you get it wrong. The script checks every option to make sure it has a valid value. If you somehow do get something wrong, it will return it to the default to prevent Ragnarok from giving a lua-error box. As an example, I will show how to make the homunculus run right next to you every time you get too far away. The option that has this setting is shown below as follows: HomunFollowDistance = 3 But we want the homunculus to come next to us, so we change it as follows: HomunFollowDistance = 1 Now relog, and the homunculus will chase right up next to us when we run away. Thats all you need to know! :) --]] ------------------- -- デバッグオプション -- ------------------- --[[ Log()によるデバッグを有効/無効 Disabling this could be useful when attempting to debug your own AddOns using TraceAI() 注意: ROクライアントで/traceaiとタイプしなければならないでしょう --]] Debug = true -- How verbose do you want the log to be? -- (0 is the least verbose, each increment past that makes it more verbose) DebugLevel = 3 -- まさしく最後のTraceAI()出力だけをずっとtraceai.txtに書き込むかどうか SingleLineLogs = false -- 出力する最大の行数(SingleLineLogsが有効の時のみ) LogLines = 30 -- Xミリ秒毎にログに書き出す (0は無効) DebugMark = 20000 --[[ RampageAIがネットワークをどの位使っているか測定して試すべきです。 注意: これは"ハック"ではありません。パケットを途中で奪って 試しません。いくつかのパケットを差し挟みません、 そしてラグナロククライアントを変えません。 RampageAIが生成した外向き帯域がいくらかになるかの見積もりを 試す*だけ*です。 もしそれを信じられないなら、NetUsageMonitor.luaの全コードを見なさい。 どちらか一方を、もしまだ信じられないなら、それを無効にして 去ってください。 --]] EnableNetUsageMonitor = false --------------------------- -- アルケミスト情報 -- --------------------------- -- Total dex (Base + Bonus) AlchemistDex = 30 -- Wearing a phen clip? AlchemistPhen = false ---------------------- -- 距離オプション -- ---------------------- -- オーナーからこの数のセル分より遠くの何かを無視する SightRange = 12 -- 最大=15 (お勧めしません) -- オーナーを追いかけ始めるホムンクルスまでの距離 MaxHomunRange = 12 -- お勧め=12 -- MaxHomunRange は、もしオーナーがホムンクルスの所から離れて動いた時に -- 保つ最低限の距離です。 HomunRangeChange = 4 -- お勧め=4 -- ホムンクルスがオーナーに追従している時に目指すべき距離 HomunFollowDistance = 3 --[[ Should the homunculus always try to stay ahead of its owner? NOTE: This tries to keep it ahead of the alchemist by the number specified in HomunFollowDistance --]] HomunRunAhead = false --[[ Allow the homunculus to ignore sequences to follow its master in the event that it gets stuck behind something? NOTE: Disabling this may cause the script to get "stuck" when following the alchemist. --]] AllowIgnoreOwner = true ------------------- -- 待機動作 -- ------------------- -- Do you want the homunculus to move around when it is not doing anything else? EnableIdleMove = true -- How many ticks (milliseconds) should pass before the idle movement begins TimeBeforeIdle = 1000 -- Start moving around only after the homunculus's HP and SP are above -- these amounts/percents IdleMoveHP = 50 IdleMoveSP = 50 -------------------------------- -- 高度動作コマンド(AMC) -- -------------------------------- -- 詳細は ..\Docs\AdvMove.txt を見てください。 -- 高度動作コマンド(AMC)手順を許可するかどうか EnableAMC = true -- "高速入力" AMCを代わりに使います QuickdialAMC = true -- Xミリ秒以内にいかなる高度動作コマンド(AMC)も受け取れなかったら、 -- 今までのコマンド入力順序をクリアします。 AMCResetTime = 5000 -------------------- -- 攻撃オプション -- -------------------- -- マップ移動/ハエ飛び/コールホム/などの時、デフォルトで攻撃的にする DefaultAggro = false -- Assist the homunculus's owner? AssistOwner = true -- "横殴り" を許可する AllowKS = false --[[ 時々、ホムンクルスが壁の向こう側にいるモンスターを攻撃しようと試みますが、 スクリプトは数字のミリ秒でこれを認識して、そのモンスターを無視するでしょう。 このオプションはその数を設定します。 0 なら無能になるでしょう。 注意: このオプションは500の倍数だけで有効になるでしょう。 --]] ActorIgnoreTime = 5000 -- Should we ignore a monster if it takes to long to kill it? EnableIgnoreAfterTicks = false -- How long should we wait before ignoring it? (minimum 5 seconds. 1 tick = 1 millisecond) ActorIgnoreAfterTicks = 30000 -- このミリ秒毎に新しい目標がないかどうか一度だけチェックします。 AcquireTargetTimeout = 50 --[[ Allow the AI to select a different target, even when it is locked onto a monster? NOTE: This will allow it to change to a higher priority monster if one appears, and it might also start to defend the alchemist sooner. NOTE: This will affect both the alchemist and the homunculus WARNING: This may cause unexpected behaviour. --]] AcquireWhileLocked = false --[[ Sometimes the monster that the homunculus is attacking will get "position lagged" near to where the homunculus is. Because of this, the homunculus will send attacks but they will never happen (because the homunculus is actually too far away!) RampageAI will detect this and attempt to move to a different spot in order to fix this position lag. NOTE: Because RampageAI cannot detect when the homunculus attacks, it uses the times that a monster takes damage to determine if its attacks are working. Therefore, if you use this and your homunculus has low HIT, it will think that its attacks are not working and attempt to move to a different location. --]] EnableAttacksTimeout = false -- enabled? AttacksTimeout = 1500 -- how long since last attack before moving? AttacksMaxTries = 5 -- how many tries before checking the time? -------------------- -- 浮かし(凧引き)オプション -- -------------------- -- Please look inside Monsters.lua to set which monster types to kite. -- How far ahead of the monster should we try to stay KiteDefaultDistance = 6 ------------------------------- -- 受け身/防衛的オプション -- ------------------------------- --[[ 受け身モードでいる間、目標取得を許可する 以下の特殊な設定で、ホムンクルスがそれ自身、オーナー、 パーティメンバーをターゲットしているモンスターを自動的に攻撃し 始めることを許可します。 また、これがfalseに設定されたなら、別の方法で注意されない場合、 他の全てのオプションが効果あるとは限りません。 --]] PassiveDefense = true -- 受け身モードの間攻撃スキルの自動詠唱を許可する。 PassiveSkills = true --[[ 以下の3つのオプションがディフェンス優先順位づけに対応します。 ディフェンス優先順位付けは以下の方法で決まります: 1) Each of the 3 options specifies the number of monsters that need to be attacking a specific thing before that thing's defense gets prioritized. 2) Friends will be checked individually against the PrioritizeFriendDefense number >ONLY< if the option DefendFriends (below) is true. 3) If nothing meets the critera to have its defense prioritized, RampageAI will target the highest priority monster attacking anybody. 4) If a single person meets the criteria to have their defense prioritized, then RampageAI will target the highest priority monster attacking that person. 5) If more than 1 person meets the criteria, RampageAI will judge how many monsters was required to prioritize each person, and decide who to defend first. a) It will always try to defend the person that required the most number of attacking monsters first; however, if there is a tie, it will defend whichever person has more monsters attacking them. - Any of the 3 options may be set to 0 to disable them. もう、混乱しましたか?そうであれば、デフォルトのままにすべきです。 --]] PrioritizeOwnerDefense = 1 PrioritizeHomunDefense = 5 PrioritizeFriendDefense = 4 -------------------- -- 友達オプション -- -------------------- --[[ モンスターから友達を同様に守りますか? 注意: これはAllowKSオプションを止めたとき、友達の横殴りを許可 します。 --]] DefendFriends = true --[[ Sometimes it may be beneficial to automatically add friends that sit/stand within a certain range of you. Rampage AI will temporarily add people to friends if they're within this many tiles from of you. (idea from i2apture of RagnaInfo forums) NOTE: Any negative number will disable it. --]] TemporaryFriendTiles = -1 -- Automatically save the friends list when it gets updated AutoSaveFriends = false --------------------------- -- 一般スキルオプション -- --------------------------- --[[ あらゆるスキル詠唱を許可 注意: falseに設定すると、*すべて* のスキル使用を無効にするでしょう。 --]] AllowSkills = true -- 敵からターゲットされたとき、スキルを手動で敵をターゲットする SkillsCauseAttack = false -- スキルを使った後SPが総量/パーセントより低いならスキルを使わない MinSP = 0 -------------------------- -- 攻撃スキルオプション -- -------------------------- -- 攻撃スキルはバニルミルトのカプリスとフィーリルのムーンライトから成ります。 --[[ Because of the way homunculi skills work, the attack skills are actually ranged attacks that the alchemist uses. This allows us to use the skills at seemingly any range, even if they would be out of range for the homunculus. Set this option to true to take advantage of this bug. --]] IgnoreAttackSkillRange = false -- If the above option is true, this option specifies how far from the alchemist -- a monster can be to be inside range IgnoredRangeFromOwner = 10 --[[ 使う攻撃スキルの最低レベル ホムンクルスはいつも最大レベルを使おうとするでしょうが、十分なSPを 持っていなければ、より下のレベルをチェックするでしょう。 このオプションはそれを、一定レベル以下の攻撃スキルを決して使わない よう制限するでしょう。 5レベルをいつも使うためには、5にセットします。 --]] MinAttackSkillLevel = 1 -- 敵となぐり合いしている間、攻撃スキルの自動詠唱を許可します。 MeleeSkills = true -- 敵を追いかけている間、攻撃スキルの自動詠唱を許可します。 ChaseSkills = true -- Lock onto a target as soon as an attack skill was automatically cast at it -- (this may cause the script to get "stuck") LockOnAttackSkills = false ------------------------- -- その他スキルオプション -- ------------------------- -- サポートスキル(ディフェンス、フリットムーブなど)の自動詠唱許可 SupportSkills = true --[[ Allow automatic casting of heal-skills (Healing Hands and Chaotic Blessings) NOTE: When the homunculus is trying to heal, it will stop casting attack skills to ensure that it will get SP to heal with --]] HealSkills = false --------------------------- -- Auto-Cast Sword Bolts -- --------------------------- -- (様々な人々からの発案) -- Attempt to make use of any of the bolt swords (Ice Falchion / Fireblend) AutoBoltSword = false -- Minimum level of bolts to cast AutoBoltMinLevel = 1 -- How quickly should the homunculus realize that casting a bolt didn't work? -- (in milliseconds) AutoBoltDelay = 200 --------------------- -- Auto-Aid-Potion -- --------------------- -- Enable automatic use of aid potion AutoAidPot = false -- Use Aid Potion *only* when Homunculus's HP is below this amount or percent -- NOTE: Check Misc. Options below for "PercentHP". AidPotHP = 25 -- Lowest "level" of potion to use AidPotLowest = AIDPOT_YELLOW -- Highest "level" of potion to use AidPotHighest = AIDPOT_WHITE --[[ How much time should elapse after the alchemist moves before aid potion is allowed to throw potions? (0 to disable) --]] AidPotWaitAfterMove = 500 --[[ If the homunculus is outside the range of Aid Potion, but matches all of the criteria for a potion to be thrown at it, should it move closer to the alchemist? --]] AidPotMoveCloser = true --[[ This option specifies how it'll increment the type of potion used, as follows: Less than X monsters attacking homunculus: Do not use Aid Pot Between X and X * 2 - 1 monsters attacking: Use lowest level of Aid Pot Between X * 2 and X * 3 - 1 monsters: Use lowest + 1 Aid Pot Etc., etc. This option is "X" Here is an example to clarify for those who do not understand, as well as make this part long for those who choose not to actually read it: If you set this option to "3" it will work as follows: 0 thru 2 monsters attacking homunculus ---> will *NOT* use aid potion 3 thru 5 monsters attacking homunculus ---> will use the lowest level of aid potion 6 thru 8 monsters attacking homunculus ---> will use the next level of aid potion I have given my best effort to describe everything about the way the script works in order to make aid potion configuration as simple as possible. The only way I would be able to better help you configure it the way you like it would be to directly tell you the settings to change, and I will probably not do that. --]] AidPotIncrement = 3 --[[ The Aid-Potion script will automatically detect when the aid potion was not successful, but try again up to X number of times for each level. After it has failed X consequtive times on that level, it will try again on the next higher level. However, since aid potion can fail because the homunculus is around a corner (even if you have enough potions), the tries may be reset every Y number of milliseconds. Sometimes the connection to the server may lag, and the script will be unable to tell if the aid-potion was successful or not. The script watches the homunculus's HP to determine this, so if the HP does not show that it has been healed after Z milliseconds the script will assume the aid-potion has failed. AidPotTriesPerLevel is the option for "X". AidPotTriesReset is the option for "Y". AidPotWaitTime is the option for "Z". --]] AidPotTriesPerLevel = 3 -- 3 tries, that are reset AidPotTriesReset = 60000 -- every 60 seconds, AidPotWaitTime = 200 -- waiting .2 seconds in case of lag ---------------------------------- -- Auto-Homunculus Resurrection -- ---------------------------------- --[[ Enable use of automatically casting Homunculus Resurrection NOTE: Auto-Homunculus Resurrection only works if the Homunculus is close enough to the Alchemist. This script will automatically attempt to bring the homunculus within range, but that may not always be feasible. I would not recommend relying on this to work every time. NOTE: If the homunculus actually dies, the script stops. In the event that the resurrection is successful, the script will start over as if you had just logged in. Please keep this in mind. --]] AutoRes = false --[[ Begin trying to cast Homunculus Resurrection when the Homunculus's HP goes below a certain amount/percent NOTE: Auto-Homunculus Resurrection will only be attempted if the homunculus is losing life. It stops trying to cast when the homunculus stops losing life so that you may gain control of the alchemist once again NOTE: If it stops trying to cast because the homunculus is no longer losing life, aid-potion may still be attempted if monsters are attacking the homunculus --]] AutoResHP = 15 -- Use an "intelligent" routine to decide when a Homunculus Resurrection is necessary AutoResSmart = true -- Time (in milliseconds) between uses of Resurrection AutoResDelay = 400 ----------------------------- -- アミストル専用特殊オプション -- ----------------------------- --[[ もしSupportSkillsが有効なら、アミストルはディフェンスをずっと有効に し続ける(SPが持つ限り)でしょう、オーナーがたくさん、またはより 多くのものに攻撃させるかのどちらかでより長くなります。 オプションを0に設定したら、actorの使用は無効になるでしょう。 (オーナーアルケミストか、ホムンクルス) --]] AmistrBulwarkHomun = 6 -- Aアミストルの攻撃者 AmistrBulwarkOwner = 3 -- アルケミストの攻撃者 -- アミストルのディフェンス(Bulwark)最低レベルを使う AmistrBulwarkMinLevel = 1 --[[ If support skills are allowed, Amistr will attempt to use castling whenever the owner has this many or more things attacking them This option will take precedence over Amistr Bulwark --]] CastlingAttackers = 5 --[[ But Amistr will only use castling if the owner's HP is equal to or lower than a certain amount. NOTE: Be sure to check PercentHP in Misc. Options below --]] CastlingHP = 100 -- The minimum amount of time in milliseconds between casting Castling CastlingDelay = 500 ---------------------------- -- フィーリル専用特殊オプション -- ---------------------------- -- Use duration as casting delay (Filir's Skills are bugged so you can spam them) FilirUseDuration = true -- Level of Flitting to use FlittingLevel = 5 --[[ Use flitting on monsters that (on average) are targetted for at least this number of milliseconds NOTE: This includes time it takes to move up next to them as well. NOTE: To always use flitting as soon as it wears off, set this to 0 --]] FlittingMinTicks = 0 -- Begin saving SP for flitting (again) this many milliseconds after the last use FlittingSPSaveTicks = 20000 -------------------------- -- リーフ専用特殊オプション -- -------------------------- --[[ Minimum level of Healing Hands to use NOTE: Healing Hands will only be used if "HealSkills" (above, in "Other Skill Options") is set to true --]] MinHealingHands = 1 -- Amount of HP that the alchemist should be at or below before Lif casts Healing Hands HealingHandsHP = 50 --------------------------------- -- バニルミルト専用特殊オプション -- --------------------------------- --[[ The only Vanilmirth-specific options deal with Chaotic Blessings. If it decides that either itself or the alchemist are below a certain amount/percent of HP, it will attempt to use Chaotic Blessings to heal them. However, depending on what the max level of Chaotic Blessings is, it will pick the most efficient level to use in order to have the highest chance to heal for the most amount. NOTE: These are only enabled if "HealSkills" (above, in "Other Skill Options") is set to true NOTE: Set either (or both) of the HP values to 0 to disable --]] -- This is the HP that the alchemist should be at before Vanilmirth tries to heal them ChaoticBlessingsOwnerHP = 50 --[[ This is the HP that the homunculus should be at before Vanilmirth tries to heal itself NOTE: There is a bug in RO that makes it so ChaoticBlessings does not heal the homunculus when it is casted. Until this bug is fixed, I recommend leaving ChaoticBlessingsHomunHP at 0 --]] ChaoticBlessingsHomunHP = 0 -- This the max level of Chaotic Blessings to use MaxChaoticBlessings = 1 ------------------------------- -- 位置ズレ修正オプション -- ------------------------------- -- Enable anti-position lag? AntiPosLag = true -- How many times should we try for each move command? PosLagTries = 3 -- How long should it wait in between tries (in milliseconds) PosLagDelay = 200 ------------------- -- その他、オプション -- ------------------- -- Do not allow automatic usage of Alchemist skills, unless the alchemist -- will not go below this amount/percent of SP OwnerMinSP = 0 -- SP 数字はパーセント (絶対量と対照的に) PercentSP = false -- HP 値は、総量から見たパーセントです PercentHP = true -- Wait this number of milliseconds before starting the AI logic -- (Fallen~Angel[堕〜天使]様からの発案) AIStartWait = 1000 --[[ PvPマップにいると仮定する PvPマップの外で予期しない微妙な振舞いを引き起こすかもしれないので、 PvPマップに入ると予想したときだけ、これを有効にしてください。 --]] AssumePVP = false --[[ WoE(GvG)マップにいると仮定する Only enable this if you expect to ONLY go into WoE zones. --]] AssumeWoE = false --[[ PvP/WoE(GvG)エリアを自動決定するには? Enabling this will allow the homunculus to try to attack itself when it first enters a map. If it is able to attack itself, then it will know it is in a PVP zone. NOTE: This only takes effect if AssumePVP and AssumeWoE are both false. NOTE: WoE zones can ONLY be auto-detected by Filirs and Vanilmirths. :( NOTE: You may want to set MinSP to at least: 4 (filir) / 22 (vani), so that the homunculus will always have enough SP to use a skill against itself when it enters a WoE zone. If it does not have enough SP when it enters, it will not be able to distinguish WoE separately from PvM. WARNING: This may cause your homunculus to kill itself if it spawns in a WoE zone with low hp UPDATE: GRAVITY fixed the bug that allowed homunculi to attack themselves, but RampageAI now uses other methods to determine if its in a PVP zone. --]] CheckPVP = true --[[ 「下に動かす」は、攻撃コマンドと同じ ある特定の状況では、ラグナロクオンラインクライアントはバグって、 いかなる敵のAlt+右クリックを無効にするでしょう、その時にホムンクルスが 敵を攻撃することを手動で可能にさせます。このオプションは、 Alt+右クリックで方形にXセル中の敵をホムンクルスが攻撃する許可をします。 範囲の中に倍数があると、それは最も近い方を選択するでしょう。 このオプションはXです。 このオプションを0に設定したら、モンスターの下をAlt+右クリックするだけ、 そしてそれがお勧め設定です。 注意: 高度動作コマンド(AMC)が有効になるとこのオプションは無効になる でしょう。しかしながら、これらはターゲットを攻撃するよう ホムンクルスに命令するAMCです。 --]] MoveIsAttackWhenDistance = 0