「server」タグアーカイブ

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

P_20180811_215244追記:お引越し

追記:メインPC入れ替え計画

結局のところ、OSのインストールからし直しております。

(;^ω^)・・

必要なファイルはバックアップとって退避、色々弄りまくったんで若干不安ではあるが、戻せればええなぁ。

最新のUbuntu 18.04LTSではなくて、16.04.5LTSにしました。こっちだと稼働してた実績あるし、まだ、サポート期間終了まで3年あります。

Linuxには、枯れてる方が安心というオキテもありますので。

念の為、3.5GhzまでオーバークロックしたA6-3650を、3.2Ghzまで落としました(定格2.6Ghz・・・)

sc20180812172952せっかくなので、作業した内容は、全て記録しております。

Arma3でLinuxサーバを上げる方に向けて、完全なドキュメントを記事にする予定です(だったらいいな)

steamcmdメモ

ログインに失敗で、Steam Guardでロックされてしまった時、メールで送られたコードを以下のように入力します。

Steam> set_steam_guard_code <code>

追記:メインPC入れ替え計画

P_20180812_181143ちょっと前に、安かったので勢いでポチッてしまったRyzen5 1400を救済するべく。

さっき、マザボが届きました。

ASrock AB350 Gaming-ITX/acというやつ。今どきUSBでデバイス追加できるので、ちっこい方がええかなぁ・・と。集中冷却できるし。

インテルLANと、ヨサゲな音源搭載(ALC1220)してるのが決め手、あと常用極限オーバークロックしたいので、丁度良いスペック。

まだ、これだけでは動きませんけんども・・。

(;´∀`)

あとは、メモリとストレージ(m.2/SATA or NVME)があれば組める。

メインPCの移行なんて、こんな暑い時期にするもんじゃありません(ただ、ただ、メンドイ・・)

メモリ高いんだよなぁ・・、安価時の3倍ですよ、いまだに。

んで、現在利用中のCore i5-4670K(4.3Ghz)PCを、Exileサーバに移行するか、どーか迷ってる。また・・設定するのメンドイ。

追記:お引越し

sc20180814164131OSをインストールし直して、完全にゼロから戻し作業中。

作業はほぼ完了。

まだインしての動作確認はしていないが、ログを見る限りは・・一応動いてる様子。

前回曖昧な感じで環境を構築していた部分を、明らかにしながら、しっかりとメモしております。

(;´∀`)

しかし、OSインスコ後の、この清潔感・・w

自己満でしかありませんが、綺麗な状態のOSをイジるのは、久々なので・・。無駄なモノは一切排除で、Arma3だけしか動いてないLinuxサーバで、サックサクです(今の所は・・)

(追記予定)

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

P_20180728_144402追記:Battleyeヽ(゚∀。)ノウェ

追記:Battleyeのscript.txtの書き方

追記:だめだ

追記:bisign生成方法

追記:1.0.4のinitPlayerLocal.sqf

暑中見舞い申し上げます。

(;´∀`)あつい

モニターに向かい合ってる最中に、ぬこバンディットに狙われそうになった所です。

入力中のテキストを破壊されてしまいます。

昨夜、メインPC(自作)が使用中に謎の電源OFFに・・、遂に壊れたか?!と焦りまくり、オーバークロックしてたので、定格に戻して様子を見てる所。

定格運用は、温度が上がらないのを、改めて知るw

sc20180728145245Battleyeのエラーがどーしても取れなくて、もう、考えつく限り手を尽くしたんですが、まったくしっぽを掴めない。

諦めかけたその時・・。

ふっ、と思い出しました。

initPlayerLocal.sqf(主にトレーダー配置のスクリプト)

これ、1.0.3から1.0.4で書き方が変更されたファイルです。

移行時に、気にはなったけど、同じスクリプトコードだし(やってる事一緒やし)、問題無いだろうと、そのまんまスルーしてました・・。

問題はこいつでした・・。

(;´Д`)Linux環境だからとか関係なかったんや・・

全部コメントアウトして、起動してみたら、動くでやんの・・。

(´;ω;`)ブワッ

超巨大な遠回りをしてしまったようです。

sc20180728150236新しい書き方は、createVehicleうんぬんと、泥臭い書き方では無く、Exileコードを呼び出しで書かれてるようです。

うん・・

全部書き直しですね。

これらコードの出力ツールのEden.pboの更新はされて無いようなので、このファイルは手書きしかなくなってしまったようですね。

追記:1.0.4のinitPlayerLocal.sqf

sc201807281717031.0.4のinitPlayerLocal.sqfはロクに見たことなかったので、何をやってるのかコードを見る。

どーって事無くて、トレーダー毎に、ExileClient_object_trader_createを呼び出してるに過ぎなかった。

んで、バニラでは、トレーダーにくっ付けるオブジェクトなんかをアタッチしてるだけでした(複数ある場合は、別個生成してからアタッチ)

sc20180728171924んで、こちらがEden.pboが出力した以前からのコード部分。

これを単純に、ExileClient_object_trader_createに流してやればええだけのように思えます(アタッチは考慮されてないけど)

0:クラス名
1:アニメーション
2:トレーダー名
3:顔
4:所持品
5:ポジション
6-7:方向(行列データ)

・・とリスト出力されてます。

ExileClient_object_trader_createの引数は。

0:クラス名
1:トレーダー名
2:顔
3:アニメーション
4:ポジション
5:方向(度データ)
6:アタッチオブジェクト

・・となってます。

方向の値だけ行列から、0-359度数に変換できれば、そのまま流せそうです。

VectorDirからDegree(度)に変換してくれる関数があるんじゃなかろうかと思っていたが、無いようだった・・。

※Arma3では、北から東、南、西に0~359度になっていて、VectorDirでは[0,1,0]が北、[0,-1,0]が南、[1,0,0]が東、[-1,0,0]が西になってる

うむむ・・。

Exileフォーラムを眺めてみても、ツール類も無いようだったし、みんなはどーやってんの?

(;´Д`)

※多くはM3Editorでのコード出力を勧めてるようでした

ま、トレーダーって数える程度だし、手作業で書いても大した事ないけどもね。ん・・Eden.pboを書き換えてみようか。

(;^ω^)まだ、マップいじるかもしれないし・・w

追記:bisign生成方法

sc20180729114626余談ですが、メモです。

PBO署名ファイルの生成の仕方です(biKey、bisign)

公式

Arma3Toolsがインストールされたディレクトリ内の、DSSignFile内にコマンドが入ってます。

DSCreateKey.exeで鍵を作って、DSSignFile.exeで生成できるようです。

GUIツールからは出来ないっぽい?

追記:だめだ

またBattleyeエラーが出始めた・・。

(;´Д`)

すっかり心が折れたぞw

最後の手段として残しておいた、これをやるしかありません。

完全無欠にまったくのゼロからの構築ぇ・・

このまま続けてもラチがあきません。この方が早い。

追記:Battleyeのscript.txtの書き方

sc20180801172553あ・・気になってしゃーない。

やっと、Battleyeのscript.txtの書き方のページを見つけました。

A Guide to BattlEye Filters

頭の数字は、キックするか?ログ出しするかという意味らしく、7だと全部ってことのようです。

続けて、キーワード名と、”=!”や”!”で、条件の指定(含まれているかどうか)、そして、対象テキスト文字となってます。

Battleyeでの定義

5 “HMMWV_” !”HMMWV_Ambulance

と書いた場合は、もし、スクリプト中に含まれていた場合はエラーになります。以下、例

スクリプト内

createVehicle [“HMMWV_Ambulance_DES_EP1″,getPosATL player,[],10,”NONE”];

Battleyeは単純な文字列比較で構成されてるようです。

ただ、これらの比較チェックは、サーバ側で行われてるんでしょうし、(チート対策とはいえ)なんだか裏方は忙しそうです。

(;´∀`)

しかしながら、Exile MODでのバニラの定義を覗くと、解析しようにも、恐ろしい長さがあるんです・・。無理っすわ

4万桁とか・・・w

多分、Exile Clientの一部コードが丸っと圧縮されてる雰囲気です。

追記:Battleyeヽ(゚∀。)ノウェ

sc20180803152953ほぼバニラ状態なのに、Battleyeスクリプトで蹴られるのが、どうにも気になって仕方が無い。

継続してネットから情報を探してます(多種多様な言語のページから・・)

(;´Д`)

前に書いたモノでの認識で間違い無いようで、Battleyeエラーが出たなら、スクリプトを確認して、(必要なら)原因のコードをログから拾い上げて、”そのまま”追加すれば良いようです。

BattleyeのKick条件は、ホワイトリストなので、許可すべきアイテムやアクション等は全て、書かなきゃいけないようです(ワイルドカードが利用できるので、多くは、”l_”とか”misc_”等の様に書ける)

追加の方法は、

ログにこんなエラーが出たら「Script restriction #40

scripts.txtの40+2行の所を見て一応確認します。

battleyeディレクトリ内に、.logファイルがあるはずなので、それを開きます。

蹴られたコード(場合によっては複数行)が表示されてます。

それを、”(クオート)と改行を、”¥n”でエスケープシーケンスして、1行にまとめ上げて、!=”・・・”として、最後の行に追加します。

これで終わりですが。

Battleyeの更新のために、サーバ再起動は不要だそうです。ただ、Rconツールなどから、リフレッシュ操作が必要です。

(;´Д`)

やり方は分かったが・・、最初にも言ったけど、おいらのサーバは、ほぼバニラ状態なんだけども、全ての行動やアイテムをテストして、Battleyeデバッグをしなきゃならんのか・・と。二の足を踏んでます。

なんか、違う所に原因があるような気がしてならない。

#デフォのAltisミッションで稼働させても、Kickされる始末

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

sc20180713152941追記:わからん

追記:Battleyeチュートリアル

追記:Battleyeか・・

追記:解決!その一歩が大事

追記:Kickされまくる

追記:DayzSA

追記:サーバ管理者さんのMOD管理

追記:サーバ起動短縮

前回のLinuxでWindows版(Wine)稼働実験に失敗し、モチベーションがゼロになってしまって、放置しておりました。

(;´Д`)

久し振りにサーバを立ち上げ、設定を見直してる所です。

Wineは諦め、初心に戻って、extDB3での環境を”再度”試してみようと思いました。

あれや・・これや・・やってたら、あっさり動きました。。

ヽ(;゚д゚)ノ え・・・・・。

「スランプに入った時、まったく違う事をやってリセットする」なんて言葉をよく耳にしますが、確かに、そのようです。

忘れる前に、行った作業を記録します。

extDB3バージョン 1031

sc20180713153627extDB3のログを見たら、これ。

extDB3: Incompatiable Config Version: 5,  Required Version: 1

バージョンがちゃうぞ

・・と。

じゃ、ご指定通り1にします(つまり、ExileServer1.0.4の方じゃなくて、extDB3のextdb3-conf.iniを利用)

sc20180713153854すると、SQL_CUSTOM関連でエラーが出まくりました。

なにやら、サポート外の書き方のようです(exile.ini)

色々思う所はありますが、余計な事は考えず、エラーを取る方法を優先します。

(;´∀`)

Number of Inputsや、Sanitize Input Value Checkなどの書き方一切が許されてないようです。

先のエラーも含め、extDB3-1031のLinux版の中身が古いんだろうかとも思ってしまう・・が、横に置いておこう。

ここで指摘されたエラーを取っていきます。

ほとんどはコメント”;”にすればOKですが、[markDeleteUnpaidTerritories]の所は、以下を追記します。

SQL2_INPUTS = 0
SQL3_INPUTS = 0

あと、もう一点。

12-DateTime_ISO8601

という書き方も許されないので、上でいう”-DateTime_ISO8601”を丸っと削除します(日付書式の指定なのですが、8601は標準的なモノなので影響ないとは、思いたい・・いずれにせよ要確認)

全部手作業で作業するのは大変なので、テキストエディタの置換で一気に作業すると楽です。

Number of Inputs = 1 を ;Number of Inputs = 1 の様に。

とりあえず動いてる・・だけで、めっさ嬉しい・・。

(;^ω^)

データベース周りがちゃんと動作してるか、確認が必要ですね。

sc20180713154851先日のSteamサマーセールで、この度(いまさら?)、Dayz SAを購入しちゃいました。

(;^ω^)

ボヘミアさんへ、お布施みたいなつもりですけども。

ちょっとだけプレーしましたが、操作方法やらが、全然違うんですね。

印象的には、システム的な古さを感じましたけど(Arma2+αみたいな感じ)、こういうもんなんでしょうか。

しかし過酷です、敵に出会う前に、死にますw。まだ包帯の作り方や食料の取り方も知りません。

追記:サーバ起動短縮

サーバコマンド引数の、-checkSignaturesを取ってみたら、(私の環境では)10秒短縮できました。

具体的には、起動後すぐのSignature testsが実行されません(MODのpboファイルのチェック)

サーバ側のMODチェックは不要じゃないかと思った次第でもあります。

自分のところは、CUP MOD2個(core/terrains)、Zombie&Demonsだけなので、沢山MOD導入してる場合は、効果絶大でしょう。

追記:サーバ管理者さんのMOD管理

sc20180713165351サーバ管理しながら、Arma3プレーヤーもしてると、MODの設定がウザったくなります。

Arma3ランチャーのプリセットで、自鯖用のMODプリセットを作っておくと、とても便利。

既知ならスルーで。

(;´∀`)

追記:DayzSA

20180713210349_1Wikiとか見ない初見好きな旅人なのです。未だ、食料の確保の仕方が分かりません。

今回は珍しく、生き残ってる。

リュックもゲットして、あらゆるモノを見つけ次第拾ってる。

ゾンビとは、戦いたくないので、こっそりと探索(治癒の仕方も分かりません)

20180713211243_1おっ、プレゼントボックス?

中身はなんだろう。

拙作のアドオン(lootbox)に似た情景だったので、ちょっと嬉しい。

20180713211307_1.45弾と、VSS用マグだった。

持ってる唯一の銃(P90?)には、合うはずもない。
20180713211946_1どこに居るのかさっぱり検討もつかない・・。

(;´Д`)

Arma3でチェルナルスのおおよその形は分かってますが。

確か、海沿いを移動し続けてるんですが、よー分からん。

DayzSAをプレーすると、Exileのアイテム湧きが多すぎな印象しかしませんね・・。

要はバランスなんでしょうけども。

追記:Kickされまくる

sc20180714181249ん・・・・

(;´Д`)

サーバはエラー無く稼働してるんだが、インでけない・・。

かれこれ、2日ほど、これに掛かりっきり。

ログには一切の情報が無いので、総当たりでチェックしてるが、まったく光が見えず・・・。

Battleyeでも無い、DBコネクション系でも無い、config.cfgでも無い。ファイヤーウォールでも無い。MODシグネチャでも無し。

ExileServerに付属してくるAltisミッションで立ち上げて(extDB2)も同様だった。

データベースに接続情報が書かれて無いし、ローカル側にミッションファイルがダウンロードされてないので、多分、基本的な設定か何かだと思うんだけど・・。

だとすると、config.cfg位しか無いはずなんだけども、色々試したがアウトやった・・。

sc20180714181629ネット上をヒントを探し徘徊しまくってます。

(;´Д`)

偶然見つけたここ。

若干古めの文書ですが、サーバトラブルの解決方法が書かれてます。

便利かもと、備忘録。

https://forums.bohemia.net/forums/topic/172834-tutorial-debugging-server-issues-eg-not-loading-correctly/

追記:解決!その一歩が大事

20180714192805_1(´;ω;`)ブワッ

なんて久し振りな画面なんでしょう・・。

やっと、1歩前進です・・。

Kickされまくった原因は、とても単純でした(想定どおり)

config.cfgのこの一行。

loopback=true;

開発用にtrueにしてたんです。loopbackするので、同PC(IP)上でしか動作しないモードなんです(開発時はWindows PC上でやってたので)

すっかり忘れてた。

(;´Д`)

※ちゃんとDBにもログイン記録が出てるぅ(歓喜)

また新しいエラーが出てるんですが・・、これは情報があるので、すぐ解決できるでしょう。

Player nabe kicked off by BattlEye: Script Restriction #39

Battleyeスクリプトの書き方を指摘してるようです。Battleyeはカスタムしてないんですけどもね・・。

(;^ω^)なぜぇでしょうか。

sc20180714202724むむ?

このエラーの内容は、その都度違う内容が出るようです。

はて??

この#39(この番号も固定ではない)という数字はどんな意味があるんだろう。

このエラーが出た時は、battleyeディレクトリ内にlogが出力されます(scripts.log)

とはいえ、よく分からない。

private _cfg = configFile >> “CfgVehicles”;
private _supportUnits = (units _group – [_leader]) select {getText (_cfg >> typeOf “
{
private _logic = “Logic” createVehicleLocal [0, 0, 0];
private _trader = (_x select 0) createVeh”

果たして、このコードがどこのファイルかは、分からない・・。

(;´Д`)

当初、battleyeスクリプトかな?と思っていたが、どこにも、こんな記載は無かった。

sc20180714205234なーんとなく、ExileServerかExile本体内部のコードっぽいんだけども。

と何度か実行してたら、ファイル名が出てくる時があった。

アドオン絡みかな。まずは、範囲を限定していかないと。

アドオンは、大昔1.0.3時代にダウンロードして以来、更新してないし、ローカルにてミッションファイルの実行時でのエラーなので、これが犯人で間違いないだろう。

もしくは、データベースを初期化してないので、ゴミデータが悪さをしてるか、のいずれか。

今日はこの辺で寝るッ!m9( ゚д゚)

sudo shutdown 0 ターンッ

sc20180714210200・・久々にSpotifyで聞きながらの作業中。

globeええよ。

( ´∀`)

(どストライクな世代やし)
追記:Battleyeか・・

20180715145758_1。・゚・(ノД`)・゚・。

やっと、動いたぉぉ。

ただし、Battleyeをオフにするとね・・

(;^ω^)

1.0.3の時は動いてた訳なので、基本的な何かでしょう。

今からBattleyeの仕様を理解してスクリプトを全部見直す・・なんて事は絶対避けたい。

クライアント側(つまりミッションファイル)に、問題がある事は確定なので、一個づつ見直すしかありません。

追記:Battleyeチュートリアル

Battleyeスクリプトの書き方に関するドキュメント(英語)を発見したので、備忘録。

How To: BattlEye filters – DO IT YOURSELF!

追記:わからん

(;´Д`)

思いつく限りの試行錯誤をしまくったんだけども、どうしてもBattleyeで蹴られる・・。

なんでぇ・・・