Help us understand the problem. What is going on with this article?

Dynmap,クライアント側プレイヤー位置情報出力テスト

More than 5 years have passed since last update.

dynmapを実装しているマインクラフトマルチサーバーから、全プレイヤーの位置情報を取得するテスト。(実験中)

手法

1.dynmap以下のすべてのファイルをローカルに保存(保存先のフォルダをdynmapフォルダとする。)
いらないファイルもあると思う。
これのやり方は 項目:ローカル保存方法 を見る。

2.dynmap/config.jsを次のように変える。

config.js
var config={
 url : {
  configuration: '(dynmapのURL)/up/configuration',
  update: '(dynmapのURL)/up/world/{world}/{timestamp}',
  sendmessage: '(dynmapのURL)/up/sendmessage',
  login: '(dynmapのURL)/up/login',
  register: '(dynmapのURL)/up/register',
  tiles: '(dynmapのURL)/tiles/',
  markers: '(dynmapのURL)/tiles/'
 }
};

3.これでdynmap/index.htmlを開けばdynmapが見れる。
すなわち、あとはjavascriptをいじるだけ。

追記:jqueryのクロスドメインサポートをONにしなければなりません。
書き忘れてました。
やり方は、dynmap/index.htmlのscriptタグ内の最初の行に以下の文を足すだけです。

index.html
//追加するコード
jQuery.support.cors = true;

4a.map.js の Dynmap関数内のupdatePlayer関数が、playerのUpdate時に読み込まれる。(予測)
よって、

map.js
//(map.js/Dynmap.prototype.updatePlayerの最後らへんに追加する)
console.log("PlayerLocation["+player.name+"]=" +player.location.x+","+player.location.y+","+player.location.z);

とすればプレイヤーの名前と位置情報のペアが出力できる。

ローカル保存方法

  1. まず、サイト内の関連付けられたファイルをすべて取得するソフトウェアを用いてdynmap以下のファイルを全部ダウンロードする。一応フォルダ名はdynmapにする。私はCompleteGetterを使った。
  2. これだけだとjavascriptで動的に生成されるURLによるファイルなどを取得できないので、以下のファイルを自前でダウンロードする。

dynmap/up/configuration
dynmap/js/index.html内に定義されているjsファイルすべて
(js/chat.js,js/chatballoon.js,...)

これで完了。

注意

・このコードが正しいかどうかはわかりません。

・これはdynmapのソースコードを私的使用のために改変したものです。

atmn
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away