スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Minecraft PE用HungerGamesプラグイン作りました【PocketMine-MPプラグイン】
PocketMine-MPで建てたサーバーをハンガーゲームズサーバーにする「PocketHungerGames」というプラグインを作ったので紹介したいと思います。

ダウンロードはこちらのPocketMineフォーラムからどうぞ

ダイレクトリンクも用意しましたが、こちらは更新しない事が多いのでフォーラムからのダウンロードを推奨します。

ゲームの進行


まずはゲームをプレイする側(ゲスト)の方向けに、基本的な遊び方についての説明をさせていただきます。

PocketHungerGamesを導入したサーバーは、参加者が集まるのを待つ「ロビー待機」と実際にハンガーゲームズを行う「試合」の2つのモードを自動的に繰り返します。ゲストの方は試合中にサーバーに参加することはできず、「Now the tournament is going on. Please join later.」と表示され部屋を追い出される仕様になっています。


ロビー待機中は、プレイヤー間の攻撃やブロックの設置/破壊、チェストへの干渉などはできません。おとなしく試合が開始されるのを待ちましょう。一定時間経った時に二人以上のプレイヤーが集まっていれば「試合」が開始されます。この時にアイテムや防具等を装着していても、全て剥奪されるので注意してください。

試合が開始されると、まずプレイヤー達はスタート地点のどこかにランダムでテレポートされます。その後少しの間「無敵状態」となりお互いに攻撃することができなくなるので、この内に素材や武器などの調達を行っておきましょう。


集めたアイテムを駆使してプレイヤー同士戦い合い、最後まで生き残ったプレイヤーがその試合の勝者となります。


死亡した場合は自動的にサーバーから追い出されるので、次の試合のロビー待機時間になるまで外で待っていなければなりません。


プレイヤーステータス


ロビー待機時間中にサーバーに入ると以下のようなメッセージが表示され、そのプレイヤーのステータスや戦績などが確認できるようになっています。

• level:レベル。詳細は後述。
• exp:経験値。
• win:ゲームで勝利した回数。
• kill:プレイヤーを殺した回数。
• death:死亡した回数。
• k/d:キル率。kill / (kill + death)。
• coin:コイン、KITの購入に使用する。詳細は後述。


この一覧はサーバーに入った時だけでなく、チャット欄に"/hg"と入力する事でいつでも表示可能です(HungerGamesの頭文字から/hg)。ただ、戦績やレベルが反映されるのはその試合が終了した時なので注意してください。

経験値とレベル


プレイヤーをキルしたりゲームに勝利したりすると経験値が溜まり、一定数溜まるとレベルが上がります。溜まった経験値や現在のレベルは"/hg"コマンドで確認でき、またチャットで発言した際にもユーザ名欄にレベルが表示されるようになっています。


Kitについて


プレイヤーは「Kit」というアイテムやスキル(実装中)が入った様々な特殊能力を購入する事ができます。Kitを購入するには「Coin」が必要となったり、中には購入に一定以上のレベルが必要となる物もありタダでは貰えません。

チャットで"/kit"と入力する事でKitに関する情報を確認することができます。所持しているCoinの枚数、Kitがそれぞれ表示されます。


売られているKitの一覧を表示するには"/kit list"または"/kit ls"と入力してください。


「Kit名($値段:#必要レベル)」といった形式で表示されます。
Kitは"/kit [kit名]"で購入する事ができます。



購入に必要なCoinは、サーバーに入った時に支給されたりプレイヤーをキルする事で入手でき、新しい試合が始まるとリセットされます。Kitの購入は試合中だけでなくロビー待機中にも行えますが、支給されるのはゲーム開始時です。また購入できるKitは1試合につき5つまでで、同じKitを複数購入する事はできません。

プラグインの設定方法


PocketHungerGamesについて一通りの遊び方の説明を終えたので、今度はサーバーホストの方向けに様々な機能や設定方法について説明させていただきます。基本マルチプレイはゲストでしか参加しない方でも、プラグインの仕様が理解できるので見ておいて損はないと思います。

フィールドの設定


プラグインを導入して最初に行う設定はフィールドの設定になります。ここでのフィールドというのは、プレイヤーのスタートポイントやロビーのポイントなどの設定のひとまとまりのことを言います。このフィールドを設定していないと、ゲームを始めようにもスタート地点が指定されていないので始められません。

まずは新しいフィールドを追加しましょう。コンソール画面から"/hg addfield [フィールド名]"と入力し実行してください。フィールド名にはアルファベットまたは数字のみ使用できます。
106_1.png

フィールドが追加されたのを確認できたら"/hg fieldinfo [さっきのフィールド名]"と入力してそのフィールドについての情報を見てみましょう。まだロビーの場所もスタート地点も設定されていない空の状態です。
106_2.png

では次にロビー地点を設定しましょう。"/hg setlobby [さっきのフィールド名] [x] [y] [z]"で設定できます。ここで指定した座標がロビー地点となり、ロビー待機時間中のスポーン地点となります。
106_3.png

最後にスタート地点の設定です。"/hg addpoint [さっきのフィールドの名] [x] [y] [z]"で設定できます。スタート地点は複数設定することができ、プレイヤーはそれらの内のどれかにランダムでスポーンします。
106_4.png

また、一度設定したスタート地点を削除したい時は"/hg rmpoint [さっきのフィールド名] [No]"で削除できます。
106_5.png

保存したフィールド一覧は"/hg fieldlist"で確認できます。
106_6.png

ゲームの稼働


フィールドの設定が終わったところで、HungerGamesを稼働してみましょう。"/hg run"で稼働できます。
106_7.png

フィールドが設定の中からランダムで選択された後、ロビー待機モードになります。フィールドを自分で指定したい場合は"/hg run [フィールド名]"で稼働しましょう。

稼働中のHungerGamesをストップしたい時には"/hg stop"を使用してください。ロビー待機中でも試合中でもこのコマンドでHungerGamesを終了させることができます。
106_8.png

ロビー待機中にまだ待機時間が残っている中プレイヤーが揃ってしまい、さっさと始めたいぜ!という時には"/hg start"を使用してください。残りのロビー待機時間が一気に10秒になります。
img

ロビー待機時間が0になり、かつワールド内にプレイヤーが2人以上存在していれば試合モードになります。この時ワールドのバックアップも開始します。最初の60秒間は無敵時間です。

試合中のブロックの設置/破壊を許可するかどうかを変更することができるので、自分のサーバーに合うように設定しておきましょう。"/hg protect [on | off]"でオンにするとワールドプロテクトが掛かり、プレイヤーはブロックに干渉する事ができなくなります。この設定は次回以降にも反映されます。
106_9.png

現在のプレイヤーの生存者等の情報を見たい時は"/hg status"、"/hg stat"コマンドを使用してください。
img

生き残りが1人になると試合が終了し、サーバー内にいるプレイヤーを全員追い出した後にロビー待機モードに戻ります。制限時間内に勝者が決まらなかった場合も、同じく全員追い出しロビー待機に入ります。

試合終了からロビー待機に戻る際に、ワールドデータのバックアップからワールドを試合直前の状態に復元します。この時一緒にワールド内に存在するチェストの中身も復元します。

試合を中断する場合に"/hg stop"を使ってもワールドは復元されるようになっていますが、標準コマンドの"/stop"を使ってサーバー自体を閉じてしまうと復元が行われないので注意してください。

各種制限時間の設定


ロビー待機時間や試合時間、無敵時間は変更することができるようになっています。それぞれ"/hg settime lobby [time]"、"/hg settime play [time]"、"/hg settime invincible [time]"で設定できます。[time]には制限時間を秒で指定してください。
106_10.png

Kitの設定


Kitとはプレイヤーが購入するとアイテムやスキルを得ることができるツールです。このKitはサーバーホストが自分で作成できるようになっているので、その作り方を紹介します。

新しいキットを追加するには"/kit add [キット名] [値段] [必要レベル]"を実行してください。これで空のキットが作成されます。

"/kit info [さっきのキット名]"を実行すると空のキットが作成されていることを確認できると思います。

空のキットにはアイテムまたはスキルを格納できるスロットがそれぞれ5つずつ存在しています。ここにアイテムを追加するには"/kit additem [さっきのキット名] [アイテムID] (ダメージ値) (個数)"を使用します。ダメージ値と個数は省略することができ、省略した場合されぞれ0と1が割り当てられます。(今更ですが記事内のコマンド表記において省略できるパラメータには"()"を使用しています)

作成したキット一覧は"/kit list"で確認できます。キットを削除したい時は"/kit rm [キット名]"を実行してください。

その他機能


プレイヤーの戦績は"/hg record"で表示することができます。主に、プレイヤーのレベル、プレイ回数、勝利数、敗北数、キル数、デス数、キル率を確認できます。
106_11.png

フィールドの設定で指定した座標が正しいかどうかを確認できるように、ロビー地点とスタート地点それぞれの場所に看板を立てるマーカー機能があります。"/hg marker [on | off]"で設置/撤去が可能です。全てのフィールドのロビー地点とスタート地点に目印としての看板が設置されます。
img

ワールド内の時間は、標準だと昼間(day)に固定されていますが、夜中(night)に固定することもできます。"/hg locktime [day | night]"コマンドを使用してください。
106_12.png

PocketHungerGamesはPocketMoneyプラグインに対応していて、導入されている場合には優勝者に賞金が与えられるようになっています。デフォルトでは$1000ですが、"/hg setprize [amount]"で変更可能です。

これはPocketMine-MPのマルチワールド機能を知っている方にしか意味がない機能ですが、フィールドには座標だけでなくlevelも指定できるようになっているので、フィールド毎に別のワールドを使う、なんてことも可能となっています。フィールド作成時に"/hg addfield [フィールド名] [level名]"とするとlevelを指定できます。levelが指摘されていないフィールドでは、自動的にゲーム開始時点でのデフォルトlevelを使用します。
106_13.png

コマンド一覧


コンソール用:
hg run (field):PocketHungerGamesを稼働する
hg start:待ち時間を飛ばして試合を開始する
hg stop:PocketHungerGamesを終了する
hg addfield [field](level):フィールドを追加する
hg rmfield [field]:フィールドを削除する
hg fieldinfo [field]:フィールドについての情報を表示する
hg fieldlist:フィールド一覧を表示する
hg setlobby [field] [x] [y] [z]:フィールドのロビー地点を設定する
hg addpoint [field] [x] [y] [z]:フィールドのスタート地点を追加する
hg rmpoint [field] [No]:フィールドのスタート地点を削除する
hg status:試合の状況を表示する
hg record:プレイヤーの戦績一覧を表示する
hg settime [lobby/invincible/play] [time]:各種制限時間を変更する
hg setprize [amount]:賞金の額を変更する
hg marker [on/off]:フィールドで指定された各ポイントにマーカーを設置/撤去する
hg protect [on/off]:試合中のワールドプロテクトをON/OFFする
hg locktime [day/night]:昼/夜で時間を固定する
kit add [kit]:キットを追加する
kit rm [kit]:キットを削除する
kit additem [kit] [itemid] (damage) (count):キットにアイテムを追加する
kit info [kit]:キットについての情報を表示する
kit list:キット一覧を表示する
kit rmitem :キットからアイテムを除外する[kit]
kit addskill :キットにスキルを追加する[kit]
kit rmskill :キットからスキルを除外する[kit]


プレイヤー用:
hg:ステータスや戦績を表示する
kit:キットに関する情報を表示する
kit list:キット一覧を表示する
kit [kitname]:キットを購入する

関連記事
スポンサーサイト

Pagination

Trackback

Trackback URL

http://mattyaphone.blog.fc2.com/tb.php/106-edd46647

Comment

はむかつ

なにこれ楽しそう
  • URL
  • 2013/09/24 12:05

waawaa

記事ちがいですが失礼します!
プラグインの作り方の記事の続きが読みたいです!!
  • URL
  • 2013/10/06 16:37

yam

これ、C言語ですかね?
  • URL
  • 2013/10/07 02:04

ひまじん

Lv.下げたい経験値いじってLv.あげすぎた。
  • URL
  • 2013/11/19 01:45
  • Edit

このコメントは管理者の承認待ちです
  • 2014/01/23 20:29

このコメントは管理者の承認待ちです
  • 2014/06/14 21:33

Post Your Comment

コメント:登録フォーム
公開設定

Utility

Profile

Author:おまっちゃお
ブログ開設日:2011/12/31
本ブログの記事の内容を参考にして起こった如何なるトラブルに対しても管理人は一切の責任を取りません。全て自己責任でお願いします。

CATEGORY

Search

リポジトリ

http://dl.dropbox.com/u/35617758/apt/

ブロとも申請フォーム

アクセス解析

Powered By FC2ブログ

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。