【GAME】ARMA3 EXILE MODサーバの旅その59

sc20180626161259うむむ、想定していたよりも、Wineの壁はデカかった。

Wineの64ビットはまだ発展途上の段階のようです。

結局振り出し状態です。

。゚(゚´Д`゚)゚。

んで、気分転換に、コメで頂いた他サバ缶様のトラブルのヒントでも探せればと、コードを追っております。

サーバアドオンのAVSというモノで・・・

イマイチ分かってませんけども・・・

(;^ω^)

初期化部分でエラーが謎の動作があるようです(詳しくは前記事のコメント)

sc20180626161717エラーメッセージからサーバ側コード部分にたどり着きました。

AVS_system_database_connect.sqf(41行辺り)

ログで出されたエラーは、ここです。

最初に、データベースに接続テストを行って問題無いようです。

_result = parseSimpleArray (“extDB3” callExtension “9:ADD_DATABASE:exile”);

次に、SQL文を登録する部分です(ハックされないよう事前に文を登録しておくらしい)

_result = parseSimpleArray (“extDB3” callExtension “9:ADD_DATABASE_PROTOCOL:exile:SQL_CUSTOM:AVSDB:avs.ini”);

extDB3仕様

https://bitbucket.org/torndeco/extdb3/wiki/extDB3%20-%20System

sc20180626162055登録するSQL文はこの2つだけ(avs.ini)

めっちゃシンプルです。

しかしながら、提示されたログを見る限り、この部分でエラーとなってるようなのです。

ーーここのどこかにーー

    “Connected to database!” call ExileServer_util_log;
  diag_log “AVS – Connected to database!“;
    ExileServerDatabaseSessionId = “SQL”; //str(round(random(999999)));
    _result = parseSimpleArray (“extDB3” callExtension “9:ADD_DATABASE_PROTOCOL:exile:SQL_CUSTOM:SQL:exile.ini”);
      _result = parseSimpleArray (“extDB3” callExtension “9:ADD_DATABASE_PROTOCOL:exile:SQL_CUSTOM:AVSDB:avs.ini”);
    if ((_result select 0) isEqualTo 0) then
    {
        throw format [“Failed to initialize database protocol: %1”, _result];
    };
   ExileServerStartTime = (parseSimpleArray (“extDB3” callExtension “9:LOCAL_TIME”)) select 1;
    “Database protocol initialized!” call ExileServer_util_log;
    “extDB3” callExtension “9:ADD_PROTOCOL:LOG:TRADING:Exile_TradingLog”;
    “extDB3” callExtension “9:ADD_PROTOCOL:LOG:DEATH:Exile_DeathLog”;
    “extDB3” callExtension “9:ADD_PROTOCOL:LOG:TERRITORY:Exile_TerritoryLog”;
    “extDB3” callExtension “9:LOCK”;

    _isConnected = true;

ーーどこやーー

青字のログが出てないようなので、それ以前での例外エラーです。怪しいのは2つのADD_DATABASE_PROTOCOLでしょうか。

ん?何気なくコードを見ると、何か気になる部分が(濃い赤字

44行:_result = parseSimpleArray (“extDB3” callExtension “9:ADD_DATABASE_PROTOCOL:exile:SQL_CUSTOM:SQL:exile.ini”);

これはExileサーバ側のSQL登録ですけど、なぜここにあるんだ?(exile.ini)

コードを見ると、extDB3のオーバーライド用コードと類似してる部分が多々あるようです(mpmission/Exile_Server_Overrides/ExileServer_system_database_connect.sqf)

※そのまんまコピペした感じです

この重複した部分が悪さをしてる・・とか。。(あくまで推測です)

今日のところはここまで。。٩(′д‵)۶

追記:

完全にフックしてるようでした、多分、これは問題無いはず。

どうでしょ?

どこでエラーになってるのか、対象部分の各行に、diag_log”**** HELLO!! ****”; とか書きたいなぁ・・・・。

(;^ω^)

戯言:

実際にSQL文が書かれている(avs.ini)に、これも書くと丁寧になるかもしれない。

Number of Inputs = 1 (引数の入力数、要はSQL文の”?”の数)

※公式ドキュメントでは、引数の数が合わないとダメとか書かれてる

sc20180626171053readme(導入手順)を読んでみると、vehicleテーブルに項目を追加するんですね。

なんだか怖いw

(;^ω^)

vehicleテーブルに「ammo」を追加して、AVSアドオンでは、この項目だけを読み書きしてるようです。

1.0.3と1.0.4でのDB相違に関係あるかな・・と思って調べたけど、多分無いですね。

(;^ω^)

追記:

フックしてるのは以下の10ファイル。

ExileServer_object_player_createBambi
ExileServer_object_player_database_load
ExileServer_object_vehicle_createNonPersistentVehicle
ExileServer_object_vehicle_createPersistentVehicle
ExileServer_object_vehicle_database_insert
ExileServer_object_vehicle_database_update
ExileServer_object_vehicle_database_load
ExileServer_system_database_connect
ExileServer_world_initialize
ExileServer_object_vehicle_carefulCreateVehicle

怪しいのは、やっぱこのファイル。

#kickが2度実行される不思議な事象があるので、次はここら辺を追います。

「【GAME】ARMA3 EXILE MODサーバの旅その59」への5件のフィードバック

  1. どうもです

    わざわざ詳しく調べてもらって申し訳ないです。
    素人なんでこの辺りはもっと詳しく覚えたいところです・・・w

    確かフックってもともとの処理に別の処理を間を挟むということですよね?それだったらもういっその事AVSの必要な処理文をExileにもって茶ったほうが速そうという・・・(素人感覚ですいませんw)

    後、Number of Inputs = 1って文はこれってextDB3でも使えるんですね、どっかのフォーラムでこの文はextDB2ようで3では全く役に立たない的な会話を見かけてたんでw

    アドオン1つでここまで悩まされるとは・・・

    あ、あとArma3の開発版で駆逐艦?が実装されたそうですよ、昨日私もちょこっとプレイしてみましたが、ミサイルのほうが使い方がわからず断念しましたが主砲がなかなかかっこよかったですねw(ネタバレになってしまったらすいません)
    本格実装したら、潜水艦Modと空母と駆逐艦を併用して何かに活用してみたいところですwDMSミッションとかw

  2. どうも、お疲れです。
    まったく構いませんです気分転換になってますので・・w

    ログ見ながら、具体的にどこでエラーになってるのか分かれば、解決に近づけるんですけども。

    駆逐艦ですか!?知らんかった。。
    駆逐艦ってこた、戦闘艦とか(ちゃんとした)潜水艦も導入しなきゃならないのでは。。
    しかしながら、(若干でも)Arma3内部を知ってしまった私からすると、あまり広げすぎるのも、不安でもありますね。
    モロ、Arma3の起動の遅さに直結しますもん。
    (;^ω^)

  3. Arma3は作りが細かい分、動作とか読み込みがかなり遅いですもんねw自分の場合は遅くても、何とか自分が気に入ったModは入れたいからあれこれ設定するタイプなんで前回みたいRHSとCPUのオンパレードでオーストラリアマップという設定でえげつないことになりましたからね~(遠い目)

  4. ああ。。
    そういえば、goemonさんとこの配信で確認しましたよ。
    FPS15とかでした。
    (;^ω^)
    オーストラリアのFPSガタ落ちは仕様っぽかったw(空港辺り)
    デフォでオブジェクトが多すぎなんでしょうね。
    一方、タキスタンは何も無さ過ぎて、FPS100余裕ww

  5. 自分も空港とかだとそんな感じでした・・・w
    やっぱいいマップほどの代償は痛い・・・・タキスタンで、100はまぁそうですよね・・・w Essekerマップも何とも言えないですし、次のマップはアルティスの冬バージョンもいいかなーってw

コメントを残す

メールアドレスが公開されることはありません。