2020年2月7日金曜日

GearSwapで/ma "magic-name" <me> <st>が正常動作しない件

「/ma ケアル <me> <st>」を実行すると、通常はユーザーの入力を待ってからケアル詠唱を行います。しかし、GearSwap を使っているとユーザーの入力を待たずに瞬時にケアル詠唱が行われてしまいます。

これは、GearSwap が3つ目までの入力引数しかチェックしないためです。なので4つ目の入力値(<st>)を確認するように GearSwap を修正することで、正常動作するようになります。

以下、修正方法です。

・flow.lua

(1) 78行目から85行目までをコメントアウト
--[[ if val2 then
        if type(val2) == 'table' and val2.type then logit(' : '..val2.type)
        else
            logit(' : Unknown type val2- '..tostring(val2))
        end
    else
        logit(' : nil-or-false')
    end]]

(2) 214行目:4つ目の引数を追加
return equip_sets_exit(swap_type,ts,val1,val2)

(3) 229行目:4つ目の引数を追加
function equip_sets_exit(swap_type,ts,val1,val2)

(4) 282行目:4つ目の引数を見て st_flag = true を動作させるように変更
if st_targs[val1.target.raw] or st_targs[val2] then
    -- st targets
    st_flag = true




・triggers.lua

(1) 56行目:変数 val2 を追加
local abil, temptarg, temp_mob_arr, val2

(2) 73行目 :4つ目の引数を val2 に代入する処理を追加
    temptarg, temp_mob_arr = valid_target(splitline[3])
    val2 = splitline[4]
elseif validabils[language][unified_prefix] then
    temptarg, temp_mob_arr = valid_target(splitline[2])
    val2 = splitline[3]
end
※ val2 = splitline[3] の方は、例えば「/ra <t> <st> 」のような場合

(3) 157行目:4つ目の引数を追加
return equip_sets('pretarget',-1,spell,val2)

上記の修正で<me> <st>が正常動作するようになると思います。




0 件のコメント:

コメントを投稿