問題タブ [mmo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - カスタム データ型は、可変サイズの効率を実現するための実行可能なオプションですか?
単一のブール値をバイト ブロックに格納する代わりに、同じブロックに 8 つのブール値を格納しないでください。
例: 01010101 = 8 ブール、1 3 5 7 = false、2 4 6 8 = true。
これは機能しますか?
より良い方法はありますか?
これを行うことの長所と短所は何ですか?
これはネットワーキングに大きな影響を与えますか?
automation - オートホットキー: ウィンドウからテキストをスクレイプする (LOTRO)
私は LOTRO スクリプトをかなり使いこなしていますが、残念ながら、チャットボックスからデータを取得する方法がわかりません。外部マッピング アプリケーションを作成しようとしていますが、次のように入力して、autohotkey が画面からデータ、特に見出しを持つ位置データを自動的に取得するようにしたいと考えています。
チャットボックスの中身。
この画像は imgur にリンクされており、キャプチャしようとしている領域が強調表示されています。

ウィンドウ内のテキストを簡単に強調表示して、メモ帳やその他のワードパッド エディターにコピー アンド ペーストできるので、非常に奇妙に思えます。
次の方法でウィンドウからテキストを収集しようとしましたが、管理者としてスクリプトを実行しても、コントロールやテキストが見つからないようです。
何か案は?
networking - 暗号化せずに MITM 攻撃を回避する方法はありますか?
プレーヤーが認証されると、プレーヤーはランダムな一意の識別トークンを受け取ります。彼が送信したすべてのパケットには、トークンが含まれています。典型的なメッセージは次のとおりです。
問題は、誰かがパケットを見た場合、その人がプレーヤーとして行動し、プレーヤーのすべてのコインをたとえば他の誰かに渡すことができることです。または、プレイヤーのメッセージを読んだり、個人情報を盗む以外のことをしたりします。
そのため、暗号化が必要になると思いました。しかし、私は多くの人がそれに反対しているのを見つけました.1人は「完全なパラノイアだ」とさえ言っています( https://gamedev.stackexchange.com/a/25551/33993 )。
暗号化せずに MITM 攻撃を回避する方法はありますか? そうでない場合、それらを避ける必要はありませんか?
c++ - C++であるポイントを別のポイントに移動するにはどうすればよいですか?
無限の 2D グリッド システム上に 2 つの点があるとします。
最初の点は、(3,5) の X、Y 座標セットにあるユーザー制御の点です。
2 番目のポイントは、(-20, 30) の X、Y 座標セットにあるコンピューター生成ポイントです。
2 番目のポイントを 1 秒ごとに最初のポイントに向かって 5 単位移動させます。最初のポイントに向かってではなく、1 秒ごとに移動する 2 番目のポイントが既にあります。
現在のようにランダムな方向ではなく、2番目のポイントを最初のポイントに向かって移動する方法を知る必要があります....
ちなみにこれはゲーム用で、ポイント2はモンスターがポイント1(プレイヤー)を追いかけています。C++でコーディングされています。
excel - 3つの値の通貨でExcelの数値をフォーマットする
私と友人は、MMO ゲームで使用される通貨として数値を表示するのに役立つスプレッドシートを Excel で作成しようとしています。
Guild Wars 2 でアイテムを売買するためのヘルプとして、このスプレッドシートを作成しようとしています。ゲーム内の通貨は、ユーロやセントなどの数値形式を使用していませんが、代わりに金銀と銅の形式を使用しているため、試しています。この情報を保持できるカスタム値形式を作成します。
これまでのところ、使用可能なものはありますが、もう少し扱いやすくしたいと考えています。
現在の形式は次のとおりです: #"G "##"S "##"C"
これはうまく機能しますが、たとえば 80 銅しかない場合は G と S が表示されないようにしたいと考えています。さらに、各サブ値を異なる色で色分けすることが可能かどうかも疑問に思っていました。負の値がある場合は値全体を処理できることはわかっていますが、私が理解している限り、セル内の数値の個々の部分に色を付けることはできません。
これが可能かどうか誰にもわかりますか?
java - 他のプレイヤー情報を送信する MMO ゲームのアルゴリズムは?
サーバーでの作業を開始しましたが、問題は、各プレイヤーが見ている他のプレイヤーを検出して、周囲のプレイヤーに関する情報を送信できるようにする方法が必要なことです。特定のプレイヤーに。
最初に、2D サークル オブジェクトをプレーヤー オブジェクトにアタッチし、データ構造内のすべてのプレーヤーに対して衝突チェックを行うことを考えましたが、これは非常にパフォーマンスが必要です。これに適したアルゴリズムはありますか? 私を助けてください!
c# - サブサーバー(ログイン)をマスターサーバーに登録 - Photon Server -CJR Gaming MMO Framework
Photon Server を使用した MMO 開発に関する Christian Richards のチュートリアルに従っています。それが何であるかを知らない人のために説明すると、MMO タイプのアーキテクチャを使用して、フォトン フレームワークをゼロから書き直すことを本質的にカバーしています。回避策または修正を見つけた多くの問題に遭遇しましたが、このエラーには困惑しています。サーバーが起動し、プロキシ サーバーとログイン サーバーをロードした後、次のエラーが発生します。サーバーは正常に起動し、正常に検索されますが、サブサーバーを登録しようとするとすぐに、プロキシ ログにこのエラーがスローされます。
プロキシ サーバー ログ:
2015-07-22 14:56:10,892 [1] INFO Photon.SocketServer.ApplicationBase [(null)] アプリケーション停止: AppId=Proxy
2015-07-22 14:57:01,913 [1] INFO Photon.SocketServer.ApplicationBase [(null)] - アプリケーションの開始: AppId=Proxy; AppPath=C:\Photon\deploy\ComplexServer、タイプ=ComplexServer.ComplexProxyServer
2015-07-22 14:57:01,968 [13] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] - AverageCounter の作成: Name=''
2015-07-22 14:57:01,977 [13] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] - NumericCounter の作成: Name=''
2015-07-22 14:57:01,986 [13] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] - CountsPerSecondCounter の作成: Name=''
2015-07-22 14:57:01,993 [13] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] - CountsPerSecondCounter の作成: Name=''
2015-07-22 14:57:02,001 [13] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] - NumericCounter の作成: Name=''
2015-07-22 14:57:02,008 [13] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] - CountsPerSecondCounter の作成: Name=''
2015-07-22 14:57:02,017 [13] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] - NumericCounter の作成: Name=''
2015-07-22 14:57:02,026 [13] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] - CountsPerSecondCounter の作成: Name=''
2015-07-22 14:57:02,035 [13] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] - CountsPerSecondCounter の作成: Name=''
2015-07-22 14:57:02,043 [13] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] - NumericCounter の作成: Name=''
2015-07-22 14:57:02,051 [13] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] - CountsPerSecondCounter の作成: Name=''
2015-07-22 14:57:02,058 [13] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] - CountsPerSecondCounter の作成: Name=''
2015-07-22 14:57:02,066 [13] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] - NumericCounter の作成: Name=''
2015-07-22 14:57:02,084 [13] DEBUG Photon.SocketServer.ApplicationBase [(null)] - OnInit - ConnID=2、ポート 4520 の IP 127.0.0.1、タイプ = TCPListener
2015-07-22 14:57:02,108 [13] DEBUG Photon.SocketServer.Protocol [(null)] - アプリケーション マスター、クライアント バージョン 3.0.5、プロトコル GpBinaryV2 バージョン 1.6 の解析済み初期化メッセージ
2015-07-22 14:57:02,120 [11] DEBUG MMO.Photon.Application.PhotonConnectionCollection [(null)] - 初期化リクエストを受信しました 127.0.0.1:4520 - Photon.SocketServer.InitRequest
2015-07-22 14:57:02,127 [11] DEBUG MMO.Photon.Application.PhotonApplication [(null)] - サブサーバーからの初期化要求を受け取りました
2015-07-22 14:57:02,154 [11] DEBUG Photon.SocketServer.ApplicationBase [(null)] - OnInit - SendResult Ok で ConnId 2 に送信された応答
2015-07-22 14:57:02,331 [7] エラー Photon.SocketServer.ApplicationBase [(null)] - System.NotImplementedException: メソッドまたは操作が実装されていません。MMO.Photon.Application.PhotonRequest.MMO.Framework.IMessage.get_Code() c:\Programming\SoftwareDevelopment\C#\MMO\MMO.Photon\Application\PhotonRequest.cs:line 48 at MMO.Photon.Server.PhotonServerHandlerList .HandleMessage(IMessageメッセージ、PhotonServerPeerピア) c:\Programming\SoftwareDevelopment\C#\MMO\MMO.Photon\Server\PhotonServerHandlerList.cs:MMO.Photon.Server.PhotonServerPeer.OnOperationRequest(OperationRequest operationRequest, SendParameters sendParameters)の140行目c:\Programming\SoftwareDevelopment\C#\MMO\MMO.Photon\Server\PhotonServerPeer.cs:36行目 Photon.SocketServer.ServerToServer.ServerPeerBase.OnReceiveInternal(Byte[] data,
*ご覧のとおり、サブサーバーを登録しようとするまで、初期化応答/要求をメインサーバーとログインに適切に送信します。以下の Login.log を観察し、「サブ サーバーの登録」のタイム スタンプを比較すると、ログイン サーバーがサブ サーバーの登録を試みてからほぼ 1 秒後に上記の例外がスローされることがわかります。
2015-07-22 14:56:10,845 [1] INFO Photon.SocketServer.ApplicationBase [(null)] - アプリケーション停止: AppId=Login 2015-07-22 14:57:01,541 [12] DEBUG Photon.SocketServer.ServerToServer .TemporaryServerPeer [(null)] - OnOutboundConnectionEstablished: 初期化要求の送信 2015-07-22 14:57:01,541 [1] DEBUG MMO.Photon.Application.PhotonApplication [(null)] - 127.0.0.1:4520 2015 でのマスターへの接続-07-22 14:57:01,584 [1] INFO Photon.SocketServer.ApplicationBase [(null)] - アプリケーションの開始: AppId=Login; AppPath=C:\Photon\deploy\ComplexServer, Type=LoginServer.LoginServer 2015-07-22 14:57:01,592 [12] DEBUG Photon.SocketServer.ServerToServer.TemporaryServerPeer [(null)] - SentInitRequest: ConnID=2, ChannelId =0, result=Ok サイズ=41 バイト 2015-07-22 14:57:02,157 [13] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] - AverageCounter の作成:
次のコードは、関連するクラスと思われるものからのものです。
PhotonRequest クラス:
PhotonServerHandlerList クラス:
IMessage インターフェイス: