- enemy.lua
- global variable
- 新しい学習項目の管理名作成
- VS_ENEMY_LIMITに、上記の値域 max/min を定義
- function CreateLearnTable()
- function ShowLearnInfo()
- SaveEnemy()
- DecodeEnemyData()
- command.lua
- 学習操作用のコマンド作成
- 自分ルール:関数名は CMD_xxxx。
- メニュー操作前提で、トグルだったり±1動作だったり。
- コマンド置き換えとの共用を考える場合、引数前半は固定ルールあり。
「対象ID」「攻撃モード」。
- GlenelgWatch
- こっちが割と大改造(笑)
- cEnemy.vb:データテーブルのソース。
- New()、新しい項目の列定義追加
- SetRow()、新しい項目の設定処理追加。
値域チェック・是正処置。
これは結構あちこちから呼ばれているので、呼び出し側もあわせて変更。
- LoadOpt()。ファイル読み込み・テーブルへの設定処理。
- SaveOpt()。テーブルの値是正処置、書き込み処理。
- EnemyEdit.vb。画面処理。
- 列表示幅調整。これが地味に面倒(笑)
- 列タイトル追加。
- 列ヘルプ文章追加。
- 列入力エラーチェック処理追加。
上記までは必須。
以下、Watchでの A+S+R設定に加える場合の手間。
- GlenelgWatch用定義ファイル
- master\cmdlist.lua
- A+S+R設定用の表示文字列
- command.lua に定義したCMD_xxxx と呼び出しパラメータを指定。
- command.lua
- 置き換え対象のコマンド作成
- 自分ルール:関数名は CMD_xxxx。
- ID指定可能。それを考慮して。
- usersetting.lua
- function LoadSetting()
- 置換IDと、それに対応する登録対象行動(対応コマンド)を定型で。
REPLACE_LIST[nn] = {func = CMD_xxxx ,prm=0 }
- 上記nnは任意値。
- GlenelgWatch本体
- SettingWin.vb
- SettingWin_Load()。
置換IDと選択用文字列とをテーブルに登録。
- 例:sk_rep(0, 13) = "101" : sk_rep(1, 13) = "全員友達モード設定/解除"
上記 "101" 部分を、usersetting.lua で定義した置換ID nnに。
"全員友達・・・"部分を、利用者に見せたい名称に。
sk_rep(x, y) のy部分は連番。
- Load()
REPLACE_MODEx を定義するForループの終端値を、上記y に。
- Save()
REPLACE_MODEx を定義するForループの終端値を、上記y に。
- ListBoxA93_MouseDown()。
対応するsk_rep(1, y)のCASE文追加し、ヘルプ文章を記載。
ここまで必須。
以下、置き換えに特殊なパラメータが必要な場合。
- AI, command.lua
- function OnMSG_CLICK_OBJ_SKL() 内、REPLACE_CMD を処理するforループ内。
- v.mode(上記置換ID)の値によって、パラメータの追加加工