スポンサーサイト

    PAYDAY2 Blacklist Assist

    最近更新中のPAYDAY2のBlacklist MODの補助ツール
    ※特に理由が無い場合は最新バージョンを使用してください。


    ━━━━━━━━━━━━━━━━━━━━━━━━━━━

    上記の広告は1ヶ月以上更新のないブログに表示されています。
    新しい記事を書く事で広告が消せます。

    最近の進捗

    PAYDAY2 Blacklist Assist

    最近更新中のPAYDAY2のBlacklist MODの補助ツール
    ※特に理由が無い場合は最新バージョンを使用してください。


    ━━━━━━━━━━━━━━━━━━━━━━━━━━━

    NGBTOを参考に書いてみた。
    参考にとはいいつつもやはり手さぐりなので数時間もクラッシュと戦ってしまった。
    BLTを導入してからもう半年も経つらしいが、今更logsフォルダの存在に気が付きデバッグがとても捗った。
    SteamLibrary\SteamApps\common\PAYDAY 2\mods\logs

    このフォルダには日付別にテキストファイルでBLTのログが出力される。
    このログはシステムメッセージやチャットなどからLuaファイルの読み込みとエラーなどがすべて記録される。

    それから、クラッシュ時のログでおなじみの
    C:\Users\ユーザ名\AppData\Local\PAYDAY 2\crashlog.txt


    あとは沢山のLuaのリファレンスと沢山のMODのソースを見ながらいじる・・・。
    しかし、実行するのにいちいちPD2を立ち上げなければならない、Luaを変更して再読み込みするためにはPD2を再起動しなければならないと面倒・・・。

    理解していないけれども一応思った通りの動きをするようにはなった。

    スキルとパークとプレイ中のジョブ名あたりも記録できるようにしたい。
    教えて先生。

    このMODを入れてから
    Application has crashed: access violation
    が増えた気がするのでしばらく様子見。

    mod/PD2BLAp/lua/BaseMod.lua

    if RequiredScript == "lib/network/base/networkpeer" then
    --設定
    if not _G.PD2BLAp then
    _G.PD2BLAp = _G.PD2BLAp or {}
    PD2BLAp.Colors = {"ff0000", "00ff04", "1a64f6"} -- RGB
    PD2BLAp.settings = {
    file_path = "mods/PD2BLAp/ConnectionIDList.txt",
    header_list = "Time,Unixtime,SteamID64,Name",
    }
    end


    --ファイルの存在
    function PD2BLAp:FileExists(path)
    local fh = io.open(path, "rb")
    if fh then fh:close() end
    return fh ~= nil
    end

    --デバッグメッセージ
    function PD2BLAp:Debug_Message(message, color, message2)
    if message2 then
    managers.mission._fading_debug_output:script().log(message2, Color(color))
    end
    managers.mission._fading_debug_output:script().log(message, Color(color))
    end

    --Hooks
    Hooks:Add("NetworkManagerOnPeerAdded", "PD2BLAp:PeerAdded", function(peer, peer_id)
    --まずファイルが存在するか確認する
    file_exist_flag = PD2BLAp:FileExists(PD2BLAp.settings.file_path)

    --1行目は項目タイトル
    --1行に1 ID情報を格納
    --ファイルが存在しない場合は新しくファイルを作る
    if file_exist_flag == false then
    f = io.output(PD2BLAp.settings.file_path)
    f:write(PD2BLAp.settings.header_list.."\n")
    f:close()
    else
    f = io.open(PD2BLAp.settings.file_path , "r")
    line = f:read()
    print(line)
    --読み込んだ1行目の項目が最新のものでなければ最新のものに置き換える
    if line ~= PD2BLAp.settings.header_list and line ~= PD2BLAp.settings.header_list.."b" then
    text_all = {} --ファイルの内容

    while true do
    text = f:read()
    table.insert(text_all , text)
    if text == nul then break end
    end
    f:close()

    --書き込み内容を保持しつつ、項目タイトルを更新する
    f = io.open(PD2BLAp.settings.file_path , "w")
    f:write(PD2BLAp.settings.header_list.."\n")
    for i=1, #text_all, 1 do
    f:write(text_all[i].."\n")
    print(text_all[i])
    end
    end

    f:close()
    end

    f = io.open(PD2BLAp.settings.file_path , "a+") --追記で開きなおす

    --書き込む文字列
    write_line = os.date()..","..os.time()..","..peer:user_id()..","..peer:name()

    --PD2BLAp:Debug_Message(write_line, PD2BLAp.Colors[2])

    f:write(write_line.."\n")
    f:close()

    end)
    end
    スポンサーサイト
    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。