最近の進捗

    PAYDAY2 Blacklist Assist

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


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

    PD2BLAの進捗

    ランキング機能は相変わらず放置中、いろいろ考えてはいるのだけれど、実装するのに必要な知識が足りないことと、拡張性を持たせて実装したいので悩み中。

    今後バックグラウンドで自動判定することを考えると、Warning判定が出たときに何か音を鳴らすとかしてもいいかもしれない。

    細かい変更だけども、AchievementDetailのバーの位置を変更して常に全ての行が見えるようにした。
    バーと表が被っているのがのがデザイン的に不恰好だっただけ。
    ついでにスクリーンショットのメニューも追加。
    手軽に絞り込みできる機能をつける予定。(UnlockTime LIKE 'XXX'のXXXを自動的に挿入するような)

    76561198147063532_AchievementDetail_20160305162153.png


    あとはフレンドを一括でチェックする機能。
    ただし、こちらはSteamとPD2StatsAPIに連続アクセスするので没になるかも。
    一応最低でも1秒以内に連続アクセスすることは無いように配慮しているが、それでいいのか?
    SteamBan情報は数百のIDに対して1度で取得できるが、AchievementとPD2Statsは1IDに対して1度のアクセスが必要。

    PD2BLA1_15_0_0_1.jpg
    (今話題のこの方!ちなみにフレンドが被害にあったので間違いなく黒。
    この人が出現するとSWATは死ぬ、残らず死ぬ。)

    PD2でユーザが接続を要求したときにバックグラウンドで勝手に判定する機能を考え中。
    プロセス間通信にはいろいろ方法があるけれど、ログを後でも見られたほうがいいかなということでテキストファイルに出力していく形で実装しようかと。
    そうなると、PD2側にMODを導入してもらわないといけなくなるが、Luaの勉強にもなるしいいかなーと、書き始めたはいいもののぜんぜん知らない言語だとはかどらないはかどらない。

    でも、思い通りに動くと楽しいね!
    実行もコマンドラインですぐ、実行速度も速いし。

    ということで、とりあえずLuaでちょろっと書いてみた。
    C#ならもっとコンパクトに書けるのに、うーん。

    ファイルを開いて、閉じて、開いて、閉じて、開く!
    すごく無駄!
    どうすれば・・・。
    (あと、Syntaxのハイライトされない)


    --http://symfoware.blog68.fc2.com/blog-entry-454.html

    --http://lua.tips/index.php?Lua%20implements_func_io
    -- 対象のfilenameのファイルが存在するかどうか。
    -- 対象のファイルのフルパス。もしくは、カレントからの相対パス。
    --戻り値bool
    function io.file_exists(path)
    local fh = io.open(path, "rb")
    if fh then fh:close() end
    return fh ~= nil
    end

    br = "n" -- 改行
    header_list = "SteamID64,Name" --出力する項目タイトル

    --まずファイルが存在するか確認する
    file_path = "ConnectedList.txt"
    file_exist_flag = io.file_exists(file_path)

    --1行目は項目タイトル
    --1行に1 ID情報を格納

    --ファイルが存在しない場合は新しくファイルを作る
    if file_exist_flag == false then
    f = io.output(file_path)
    f:write(header_list..br)
    f:close()
    else
    f = io.open(file_path , "r")
    line = f:read()
    print(line)
    --読み込んだ1行目の項目が最新のものでなければ最新のものに置き換える
    if line ~= header_list and line ~= header_list..br 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(file_path , "w")
    f:write(header_list..br)
    for i=1, #text_all, 1 do
    f:write(text_all[i]..br)
    print(text_all[i])
    end
    end

    f:close()
    end

    f = io.open(file_path , "a+") --追記で開きなおす
    --ID情報の書き出し処理
    f:close()
    スポンサーサイト