書くことがないよ・・・.

    PAYDAY2 Blacklist Assist

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


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

    とりあえず広告消しに作りたいものとやりたいことなど.

    作りたいもの忘備録
    ・TF2 Server利用者記録プラグイン(データベースとの連携)
    ・TF2 Jump SRプラグイン(すでにあるものを動くようにする?)
    ・TF2 Simple timerプラグイン(AIさんが作っていたような簡単なもの)
    ・ARK MOD 同一アイテムを一括ぽいすて

    やりたいこと
    ・TF2 Jumpサーバで何かイベント
    ・TF2 Dodgeballサーバ再構築
    ・TF2 Jumpbot関係
    ・raspberry piで何か
    ・インターネットを介す通信を使ったプログラム(C#)
    スポンサーサイト

    新年のご挨拶

    PAYDAY2 Blacklist Assist

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


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

    あけましておめでとうございます.

    去年はほとんど更新していなかったどころか,広告を1か月も放置する始末でした.

    今年はぼちぼちなにか書いていきたいなと考えておりますが,どうなることやら.

    去年の記事を見てざっと振り返ってみました.

    ○1月
    まだまだPAYDAY2現役の様子
    PAYDAY2BLAの開発とMODを弄繰り回していた頃

    ○2月
    相変わらずPAYDAY2をごにょごにょ


    ○3月
    PAYDAY2BLAでPAYDAY2のマルチマッチング直後にユーザデータを取得するため,初めてのPAYDAY2のMOD作成
    ただし,この頃からゲーム自体の起動時間・遊ぶ時間はほぼなし
    PAYDAY2を起動するのはもっぱらデバッグ作業

    nanasi2dazeiという方とフレンドになるも,PD2BLAのフレンドチェック機能デバッグ時にチータと判明し通報.
    PAYDAY2関係のフレンドは申請された際に必ずチートチェックを行っている(チータが多すぎるため),初回チェック時はチートを使っていなかったにもかかわらず,1週間後ほどして使っていたので非常に驚いた.

    ○4月
    PAYDAY2のMODいじり
    DisgaeaPCを購入,コントローラでの操作がしづらいということでMODを導入
    TF2に復帰(前回さほど遊んでいなかったので復帰というのかは怪しいが・・・)

    ○5月
    TF2で強くなりたいと思いローカルで練習環境を整えるが,環境を整えて満足する.
    更新が滞り始める,2016年初の広告.

    ○6月
    Steamのいろいろなゲームに手を出す

    ○7月
    リアルの要件でC#プログラミング
    PAYDAY2の話題だけチェック,ゲームには全く触れない.

    ○8月
    リアルの要件でVBAプログラミング,慣れない言語は難しい,

    ○9月
    PAYDAY2のクラッシュ対応関係の記事の最終更新日
    TF2のとあるディスコードチャンネルにお世話になり始める
    上の関係ででTF2のジャンプサーバを立てる(Windows)

    ○10月
    リアルとTF2関係が忙しかったのか記事無し
    TF2のジャンプサーバをメインPCで24時間稼働していると月々の電気代が2000円以上上がるのでサーバーPCを購入
    月々の電気代が1000円以上減る,素敵.
    SRCDS関係のサーバを複数建てる,Linuxをまともに使ったのは初めて,触れたのは10年ぶりくらいなので慣れるのに大変!

    ○11月
    リアルが忙しい
    広告でっぱなし

    ○12月
    リアルが忙しい
    広告でっぱなし

    こんなところです.
    触れたプログラミング言語が多かったというところが特徴かと思いました.
    ・C# (いろいろ)
    ・Lua (PAYDAY2)
    ・VBA (リアルの要件)
    ・Matlab (リアルの要件)
    ・fortran (リアルの要件)
    ・HTML (TF2関係)
    ・javascript (TF2関係)
    ・php (TF2関係)
    ・SourcePawn (TF2関係)
    ・SQL (TF2関係)

    Team fortress 2 コミュニティサーバの建て方

    PAYDAY2 Blacklist Assist

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


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

    書く予定

    とりあえず広告けし

    明日書きます、きっと書きます。

    PAYDAY2 起動しない・クラッシュ原因について探る

    PAYDAY2 Blacklist Assist

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


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

    PAYDAY2が起動しなくなった時の対処例です。

    よくあるタイミング順に書いているつもりです。
    -16/01/22 「●(初回起動時から)そもそも起動しない」の項目を追加
    -16/06/05 「AppData」フォルダに関する補足を追加
    -16/09/29 「BLT導入で起動しなくなった」の項目を追加

    ●いろいろいじる前のお約束



    すべて自己責任で行ってください。

    ○セーブデータのバックアップは定期的に行いましょう

    PAYDAY2 セーブデータ手動バックアップ(batファイル)
    http://rinatl.blog.fc2.com/blog-entry-695.html

    ○クラッシュログの場所

    クラッシュ時のダイアログやクラッシュログを読むことも重要。
    クラッシュ時のエラーナンバーや文字列で検索すると有用な情報が手に入るかもしれません。
    C:\Users\ユーザ名\AppData\Local\PAYDAY 2\crashlog.txt

    ※AppDataフォルダは隠しフォルダなので通常の設定では見られません。
    上記アドレスを直接入力する。もしくは、アドレスバーに%appdata%と入力する。もしくは隠しフォルダを表示する設定に変更する。


    上記ログが無い場合は
    \SteamLibrary\SteamApps\common\PAYDAY 2\payday2_win32_release_XXXXX_crash_YYYYY.mdmp
    文字化けしているが、少し下にスクロールすると文字化けしていない場所があるので、そこを見ましょう。

    crashlog.txtの見方
    まず、crashlog.txtは今までのクラッシュログをすべて記録しています。最新のログは一番下にあります。

    PD2Crash6_log_.jpg

    こういう場合も
    PD2Crash7_log.jpg
    こちらはMODではなく、PAYDAY2自体の問題のようで。

    ●(初回起動時から)そもそも起動しない


    症状:ゲームをインストールしてすぐ、バニラ(MODなどを導入していない状態)なのに起動しようとすると
    「起動しています」からすぐに「同期しています」の表示が出るだけでゲームが正常に起動できない。


    オンボードグラフィックスチップを使っている方によく起こっているようです。

    ①条件


    まずは、クラッシュログを見ましょう。
    この症状の場合前述した
    C:\Users\ユーザ名\AppData\Local\PAYDAY 2\crashlog.txt

    にcrashlog.txtが無い場合があります、crashlog.txtが無い場合は
    \SteamLibrary\SteamApps\common\PAYDAY 2\payday2_win32_release_XXXXX_crash_YYYYY.mdmp

    をメモ帳などで開いてみましょう。
    文字化けしていますが、少し下にスクロールすると画像のように読める場所があると思います。

    PD2Crash6_log_minidmp.jpg

    この画像のように、

    Application has crashed: access violation
    -------------------------------
    Callstack:
    AcLayers (???) GetHookAPIs
    KERNELBASE (???) ResetEvent
    -------------------------------
    Current thread: Renderer
    -------------------------------
    GPU : Intel(R) HD Graphics 4000 / igdumdim32.dll[10.18.10.4276]


    に近い条件となっていれば、以下の方法で解決出来る可能性があります。
    (例では Intel(R) HD Graphics 4000になっていますが、オンボードであればバージョンが違っても)

    http://steamcommunity.com/app/218620/discussions/14/490123938441183185/

    上記サイトを日本語訳すると

    ②下記サイトからファイルをダウンロードし、解凍、PAYDAY2フォルダに配置する


    http://www.nexusmods.com/newvegas/mods/34778/

    解凍するとd3d9.dllがあるので
    \SteamLibrary\SteamApps\common\PAYDAY 2\

    に配置する。

    pd2crashd3d9.jpg

    ③renderer_settings.xmlからウィンドウモードにする


    C:\Users\ユーザ名\AppData\Local\PAYDAY 2\renderer_settings.xml

    を開き、windowed = "false"の値をtrueに書き換える。

    pd2crashd_renderer.jpg

    作業が終わりましたら、PAYDAY2を起動してみましょう。

    そもそも、
    C:\Users\ユーザ名\AppData\Local\PAYDAY 2\renderer_settings.xml

    が無いという方は次の項目へ


    ④下記サイトからrenderer_settings.xmlの雛形をダウンロードし、配置する


    http://www.mediafire.com/download/axmc1cx6uqbmq8v/renderer_settings.xml

    C:\Users\ユーザ名\AppData\Local\PAYDAY 2\

    にダウンロードしたxmlファイルを配置してください。

    作業が終わりましたら、PAYDAY2を起動してみましょう。


    ●MODを入れたら起動しなくなった。


    BLT導入で起動しなくなった


    バニラ(MODを何も導入していない、既存ファイルの書き換えも行っていない状態)では起動するが、BLT(IPHLPAPI.dll)を導入すると起動しなくなった場合、管理者権限でゲーム(payday2_win32_release.exe)を起動すると改善されることがあるようです。

    以上の情報をくださった方の環境とクラッシュログです。

    環境
    windows10
    Intel(R) HD Graphics 4000

    導入MOD
    Payday2BLT_r11_r5
    _JP_MOD_BLT8

    ログ
    IPHLPAPI (???) luaL_where
    IPHLPAPI (???) UnregisterPrioPostReq
    payday2_win32_release (???) ???
    payday2_win32_release (???) ???
    payday2_win32_release (???) ???
    payday2_win32_release (???) ???
    payday2_win32_release (???) ???
    payday2_win32_release (???) ???
    payday2_win32_release (???) zip_get_name
    ntdll (???) RtlFreeHeap
    ntdll (???) ZwQueryVirtualMemory
    KERNELBASE (???) VirtualQueryEx
    KERNELBASE (???) SetUnhandledExceptionFilter
    KERNELBASE (???) SetUnhandledExceptionFilter
    payday2_win32_release (???) ???
    payday2_win32_release (???) zip_get_name



    (すでにいくつかのMODを導入している状態に)新しいMODを導入で起動しなくなった


    導入したMOD単体の問題か、すでに導入していたMODとの相性問題の可能性が高いです。

    HoxHudと日本語MODが競合することがあるそうです。


    また、ごくまれではありますが、ダウンロードに失敗しているなどしてファイルが壊れているとクラッシュの原因になります。

    起動するだけであれば、起動出来ていた状態(MODを導入する前)に戻すだけでよいでしょう。
    MOD導入の際にPAYDAY2を構成するファイルを書き換えた場合(PAYDAY 2/assetsフォルダ内のbundleファイルの書き換えなど)は、ゲームキャッシュの整合性を確認する必要があるでしょう。

    どのMODと競合しているのか判定する場合は導入MODを半分抜き、起動するかの確認、起動すれば残り半分だけを導入し確認というようにしていくと判定しやすいかと思います。


    ●アップデートで起動しなくなった。

    ①MODを抜く
    特にHoxHudはアップデートによる変化に弱く、入れているだけで起動時にクラッシュすることがあります。
    アンインストールするには
    ・PAYDAY 2\IPHLPAPI.dll、
    ・PAYDAY 2\lib\Native\HoxHud.dll

    どちらか、もしくはどちらも削除する。

    ○PAYDAY2ゲームデータの場所


    \SteamLibrary\SteamApps\common\PAYDAY 2\

    Steamクライアントのゲームプロパティからも開けます。

    BLTint_2.jpg


    ●特定のタイミングでクラッシュする


    関係しそうなMODを抜いてみる。
    また、MODの公開場所や関連フォーラムやMODの名前や関連するキーワードを調べてみることが有効です。

    ●よくわからないが起動しなくなった。

    (これが一番厄介だが、一番多い。)

    ①ゲームキャッシュの整合性を確認する


    PD2Crash3.jpg

    ②再インストールする


    PAYDAY2を一度アンインストールしてから、インストールする。
    かなり大きいファイル群なので時間がかかります。

    ○起動しなくなった直前にした行動を振り返る
    振り返り、環境の変化を見直す。

    ③グラフィックカードのドライバを変える

    最新が必ずしも最良とは限りません。

    ○もうこの辺までくると、あとは考えられる可能性をすべて試してみるしかない(と思う)

    主にファイルの破損を疑う。

    ④Visual C++ 再頒布可能パッケージ(x86,x64共に)の再インストール

    Visual C++ 2008 SP1 再頒布可能パッケージ (x86)
    https://www.microsoft.com/ja-jp/download/details.aspx?id=5582
    Visual C++ 2008 SP1 再頒布可能パッケージ (x64)
    https://www.microsoft.com/ja-jp/download/details.aspx?id=2092

    Visual C++ 2010 SP1 再頒布可能パッケージ (x86)
    https://www.microsoft.com/ja-jp/download/details.aspx?id=8328
    Visual C++ 2010 SP1 再頒布可能パッケージ (x64)
    https://www.microsoft.com/ja-jp/download/details.aspx?id=13523

    Visual Studio 2012 更新プログラム 4 の Visual C++ 再頒布可能パッケージ
    http://www.microsoft.com/ja-jp/download/details.aspx?id=30679

    Visual Studio 2013 の Visual C++ 再頒布可能パッケージ(x86 x64)
    http://www.microsoft.com/ja-JP/download/details.aspx?id=40784

    ○Microsoft .NET Frameworkの再インストール

    Microsoft .NET Framework 3.5 Service Pack 1 (フル パッケージ)
    https://www.microsoft.com/ja-jp/download/details.aspx?id=25150

    Microsoft .NET Framework 4.5
    https://www.microsoft.com/ja-jp/download/details.aspx?id=30653

    ⑤DirectXの再インストール

    DirectX エンド ユーザー ランタイム Web インストーラ
    http://www.microsoft.com/ja-jp/download/details.aspx?id=35

    ○設定データやセーブデータの破損を疑う


    ⑥PAYDAY2画面設定の削除

    C:\Users\ユーザ名\AppData\Local\PAYDAY 2\renderer_settings.xml


    ⑦セーブデータの削除

    必ずローカルにバックアップを取ってから!!!
    標準設定ではローカルにセーブデータが無ければSteamクラウドからダウンロードしてしまうので設定を変えておく必要がある。
    Steamクラウドのチェックボックスを外しておく。

    Steamクラウドと進行状況が違うと警告が出るので、状況に応じて適切に選択してください。

    C:\Program Files (x86)\Steam\userdata\ランダムな数列\218620\

    PD2Crash4.jpg

    どちらかのファイルが壊れているだけでもクラュシュする。
    どちらが壊れているか特定するには片方ずつを元の場所に戻し、起動できるか試す。
    ・save000.sav おそらく設定情報が保存されている(?)
    ・save098.sav 進行状況が保存されている


    ⑧DLCを抜いてみる

    プロパティからチェックを外すだけ。
    PD2Crash5.jpg

    配列の宣言とアクセス方法

    PAYDAY2 Blacklist Assist

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


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

    VBAかじったので忘備録
    数時間いじった程度の知識量

    宣言方法とそれぞれのアクセス方法について例を示しています。
    タイトルのジャグ配列は一番最後です。

    (一次元)配列

    excel_exp_array1.png

    宣言方法1


    Dim x(3) As Variant
    x(0) = "a"
    x(1) = "b"
    x(2) = "c"
    x(3) = "d"

    ※Dim x(i) As Variantで用意されるiは要素数ではなく、要素の添え字なので要素数-1を指定する。

    宣言方法2


    Dim x(0 To 4) As Variant
    x(0) = "a"
    x(1) = "b"
    x(2) = "c"
    x(3) = "d"

    ※Dim x(i To j) As Variantのiは自由に決められる。i=1 j=3とすると、x(1)から3個の要素数を確保する。

    宣言方法3


    Dim x As Variant
    x = Array("a","b","c","d")

    ※動的配列の場合はReDimを使用する

    アクセス方法


    x(1)
    x(3)
    など


    多次元配列

    excel_exp_array.png
    3行4列の二次元配列

    宣言方法1


    Dim x(2,3) As Variant
    x(0,0) = "a"
    x(0,1) = "b"
    ...
    x(2,3) = "i"

    宣言方法2


    Dim x(0 To 3, 0 To 4) As Variant
    初期値の設定方法は宣言方法1と同じなので省略する。

    宣言方法3


    Dim x As Variant
    x = Array(Array("a", "b", "c", "d"), Array("e", ....), .... Array(..., "i"))
    ほぼジャグ配列の考え方、配列の中に配列を宣言する方法。

    ※次元数を増やす場合はDim x(i, j, k ...) As Variant

    アクセス方法1


    宣言方法1,2の場合はこちら
    x(0,0) = "a"
    x(0,1) = "b"
    ...
    x(2,3) = "i"

    宣言方法3の場合はこちら
    x(0)(0) = "a"
    x(i)(j) = k

    ジャグ配列

    excel_exp_jugarray.png

    ジャグ配列は何行何列と言えるのか・・・?
    あえて言うならば3行4列の二次元ジャグ配列

    宣言方法1


    Dim x As Variant
    x = Array(Array("a", "b", "c"), Array("d", "e"), Array("f", "g", "h", "i"))

    宣言方法2(試していないので動作不明)


    事前に配列を複数個宣言しておいて、他の配列に入れるという方法でもよいかもしれない。
    Dim x As Variant
    Dim i As Variant
    i = Array("a", "b", "c")
    Dim j As Variant
    j = Array("d", "e")
    Dim k As Variant
    k = Array("f", "g", "h", "i")
    x = Array(i, j, k)

    アクセス方法


    x(0)(0) = "a"
    x(i)(j) = k


    おまけ


    動的配列の割り当て


    Dim x As Variant
    x = Array("a", "b")

    x(0) -> a
    x(1) -> b

    ReDim x(3)でxの要素数を添え字3個までの4個を確保する
    ただし、注意しなければならないのはこの際これまでの要素をすべて削除し、サイズを変更する点。
    つまり
    x(0) ->
    x(1) ->
    となる。

    要素を引き継ぎつつ、サイズを変更する場合は

    ReDim Preserve x(3)

    とする必要がある。


    要素数を調べる関数


    LBound関数 -> 引数で指定した配列で使用できる最も小さいインデックス番号を返す
    UBound関数 -> 引数で指定した配列で使用できる最も大きいインデックス番号を返す

    使用例
    Dim x As Variant
    x = Array("a","b","c","d")

    LBound(x)とした場合は0
    UBound(x)とした場合は3
    を返す。