フォーラムご利用の方へお知らせ
投稿の前に「ガイドライン」をご確認ください。これらに反する書き込みは削除・規制の対象となります。

Re: CxTools Version 015 beta 001 公開

このトピックの投稿一覧へ

なし Re: CxTools Version 015 beta 001 公開

msg# 1.10
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2009-3-24 18:55
ghost127  少尉   投稿数: 184
LimitedAddrと、EnvidPlusは、分ってましたが反応がさまざまですね。
本人確認にIPを使わない使う方法も幾つかアイディアはありますが、どれもクライアント側にパッチなりCXなりの導入が必要になるので難しいところです。
現状他に手段が無いのに「有効にするならサーバ管理者が責任とれ」とかのたまうのは卑怯だとは思ってます。
クライアント改造無しって前提で他に何か手段あるかなぁ…

さて、全レスたいむ。
>>msg# 1.2 >KoNaKona
>こんにちは。特殊の鯖缶です
>早速の更新ありがとうございました。早速適応しているところです。
あんな致命的なバグを出したら急ぎもします。
そのワリには1週間も掛かってしまって申し訳ない。

>同一IPの接続制限は使えるのではないかと思います。
よかった…
さて公開するぞと思って見返してみたらその提案してくださった書き込みが投票数1の点数ゼロ(つまり否定票が入った?)だったので後で不安になりまして。

>CXBanも有効になりましたし、ひとまずほっとしました。
>また何かありましたら、CXフォーラムの方に書きたいと思います。
>ありがとうございました。
こちらこそありがとうございました。
完全に見落としていたので、たまに鯖缶な人さんとKoNaKonaさんの書き込みが無ければ気づかないところでした。

>>msg# 1.3 >TKMAGURO
>更新お疲れ様です。どっかのマグロです。
>さっそくWMP_Sniper's Editionで使ってみました。
Modパックはほとんど状況を知らないのですが、公式にあるのはckベースのようですがf2版があるのですか。
武器名やwishのマップ名を変更してもうまく動きますか?
というかVersionChangerでいじったEXEのサポートとか完全放置ですいません。
1.8f2をベースにしたXXXX/1.8形式のバージョンに対応できるように手直ししてみます。

>>msg# 1.4 >たまに鯖缶な人
>更新お疲れ様です。楽しみにしていました。
>早速導入して色々試してみましたので、感想等を書き込みます。
ありがとうございます。
自分ではサーバを立てないので、実際に運用しか感想は為になります。

>・server call関連
>鯖を立てたまま部屋で他の事をしている時もあるので、ServerCallAlwaysが何気に嬉しいです。
アクティブの場合に鳴らないようにしたこと自体忘れていたので、今回のそれは本当に気まぐれでした。
・・・やってみる物ですね。

>・envid、addr関連
>私も当面はLimitedAddrは無効、EnvidPlusのみを有効にして様子を見る事にします。
えーと、16真数であるか10進数であるかの違いしかないので、片方有効にしようが両方有効にしようが大して変わらない気がします。
EnvidPlusの方はLimitedAddrのみだとユーザ側で有効活用しづらいだろうって事でつけた機能で、LimitedAddr+envidのような位置づけです。
片方だけにして様子見するのであれば、LimitedAddrのみにすることをオススメします。
ぁー、でもユーザが情報を取得したってログを出さないと様子が見えませんね、そういえば。
ログ付けときます。

>オペレータで一通りコマンドを試していて気付いたのですが、
>CxBanを実行したあとに直前のCxBanを解除しようとしてもう一度CxBanを実行すると、
>CxBanは解除されても通常のBanが掛かった状態になるようです。
>つまり、CxBan対象者を救済するためには再びCxBanを実行した後に通常のunbanも
>しなければならない。
>説明が分かり辛いかもしれないのですが、もしそういう仕様でしたらすみません。
仕様といえば仕様です
↓言い訳タイム
・現在の仕様ではCxBan検査→ban検査→idban検査という三段階の検査体制で、CxBanを解除しても残りの二つの条件には関与しない。
・現在の仕様では、cxbanコマンドはブラックリストにユーザを追加して、CxBanチェックを実行するコマンドである。
・CxBanチェックは、利用時にホワイトリストに登録が無くcxunbanカウントがゼロの場合にauto kickする、追加のauto kick(unknown)である。
↑イメージ的にはこんな感じで。

なので「ホワイトリストに登録が無く」「cxunbanカウントがゼロで」「直前にauto kickされたユーザに対してcxbanを行い」「cxban(パラメータ無し)を実行した場合」には指摘されたような動作が起きますが、これはただ単に「二回連続でauto kickされたユーザがauto banされた」だけと言えます。
一応、筋が通ってはいますが、直感的ではないのは重々承知です。
分りにくい理由はチェックが三重であること、cxbanコマンドがauto kickのトリガーでしかないこと、の二つだと思います。

一つ目に対して、3つをCxBan側に統一する予定はありますがauto banと互換性のある上手い実装が思いつきません。
で、ずっと放置でした。
CxBanの時間指定オプションが、デフォルトで4になっているのは、auto cxbanってのをコッソリ考えていたからだったりします。
例によって上手い方法が思いつかず放置したわけですがotz

CxBanチェックの段階で実行手段としてauto kickを使ってるのはそっちしか調べてなかったからです。手抜きといわれたらそれまでですね。
が・・・そうですね。対処してみます。
cxbanのときに、ban対象のユーザを見つけたらauto kickに処理を委譲するのではなく、CX側で切断のトリガを立てることにします。
無いとは思いますが副作用がちょっと予想できないので、問題があったらまた報告してください。

>とりあえず今日できた事はこのくらいです。
>何かあればまた報告します。
はい、よろしくお願いします。

>@wishやSimple10(ClanMode1)を見ていて思い付きました。
>自動選択されるステージを上から順番に開始させることは可能でしょうか。
可能です。

>>msg# 1.5 >ゲスト
>すでにパッチがでていますよ
そんな面白そうなサイトがあったのかっ

で、パッチ調べてて気づいたんですが、本家の方って初期状態でauto offに見えますが微妙に違うんですね。
使ったことが無いので自動的に開始しないこと自体知りませんでしたが、その辺りも再現するべきかな・・・?

>>msg# 1.7 >ゲスト
>でも、CXでも実装してほしいです
>パッチだと一回当ててしまうと元に戻せませんからね
>CxだとON/OFFの切り替えがすぐできるので・・・
iniファイルをわざわざ書き換えてloadするってのは切り替えが簡単だといえるのだろうか。
それはともかく、やってみます。

>(昔無理だと言われたけれど、CXが初期に比べてあれだけ軽くなったので、WCも軽くできるんじゃね?と思ってます どうでしょうか?)
CXが初期に重かった要因は
・プログラム的に割り込む部分(フック)に、全てのパッチで共通のコードを使用していてCX側のどの処理を呼び出すかを毎回「検索」していた
→パッチ適用ルーチンを拡張して、内部的に自己書き換えコードっぽいなにかを実装して検索処理を省いた
・パケット処理に割り込む部分(フック)で、干渉する必要の無いパケットでも上記処理を経由してチェックを通していた
→パッチ適用ルーチンを拡張して、パケット単位で割り込めるようにした
・クラッシュする系統のバグが多かったためログ出力を埋め込んだが、それが頻繁にDiskIOを行っていた
→嫌疑のある部分を修正したりしていたが、f2用に全て書き直したので今のところその手のログは作っていない。
・Iniファイルの読み込みで、毎回ファイルから読み込んでいた。またそれをWinAPIで行っていた。
→自作ルーチンで置き換えて、メモリ上にデータを保持してDiskIOを省く構造にした。
などだと思ってます。
自分の持っている環境ではどういうわけかさほど重くなかったので、どれが一番有効だったのか分りません。
で、WCが重い理由ですが…サーバ側でマップ開始の瞬間に処理落ちが起きるのは確かですが、それ以上にパケットが溢れているのが重い最大の要因だと思います。
・マップ上の武器の回収パケット(最大49パケットくらい)、これをサーバに居る全員に送る
・マップ上へ武器の再配置パケット(最大49パケットくらい)、これをサーバに居る全員に送る
・人間の武器の仮配置パケット(最大12パケット)、これをサーバに居る全員に送る
・人間の武器の装備命令パケット(最大12パケット)、これをサーバに居る全員に送る
・上の一覧を見れば分るとおり大量の(最大49*12+最大49*12+最大12*12+最大12*12 =最大1464)パケットを送っているので、サーバ側でfillしないようにウェイトを掛けている
・クライアント側は、上の一覧すべてのパケット(最大122)をゲーム開始直後のパフォーマンスが低い時期に一気に送りつけられて、処理が間に合わずfillが多発する
ちなみに、fillが発生する要件は1フレームに30パケットくらいです。
サーバ側でウェイトは掛けますが、どう考えても限界超えてますね、はい。
コレばっかりはどうしようもないので軽くはなりません。
ゲーム開始後にゆっくりと武器を置き換えても良いですが、処理が大変なのと置き換え中に武器を利用できるのであまりよろしくありません。
クライアントが1.8f2だと持っている武器を消滅させる作業が一段階増えるので、現在ではマトモに動くように作り直すともっと重くなります。

>>msg# 1.8 >ゲスト
>CXが関係してるかはわかりませんが、
>オートキックのdistanceの誤作動が確認されました。
>場所は恐らく最新のCXを使っていると思われるRankaさんのサーバです。
>ステージは関係なくゲーム開始直後に発砲すると発生します。
>自分の記憶では過去に開始直後に発砲して蹴られた事はないので、
>もしかしたら、CXが原因ではないかと思い報告させていただきました。

うわぁぁぁ・・・またやらかした・・・
そうです、CXのバグです。
すぐ直しますっ

とりあえずその暴発するチート対策機能を無効化する場合はIniファイルのCxToolセクションのRemoteを0にしてもらえれば良い筈です。
投票数:58 平均点:5.00

投稿ツリー

  条件検索へ


サイト内検索
オンライン状況
27 人のユーザが現在オンラインです。 (13 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 27

もっと...