PVPゲーム作成を補助するプラグインです。
- 複数ゲームの同時進行
- チーム同士の攻撃キャンセル
- スコアの管理
- 時間制限の管理
- チーム配分
- 人数制限
- 人数差制限
- Minecraft内でのマップ作成とスポーン地点設定、その他マップ管理
- チームチャット`/tc [message]`
github
Qiitaの記事
チームデスマッチ
# マップの設定
コマンド`/map`で出てくるフォームで操作します。
- map name
識別に使われます。同じ名前は使用不可能です。
- map level name
フォームを出したプレイヤーのLevelがマップのLevelになります。
- spawn points group
マップの`スポーン地点グループ`はチームのスポーン地点はと一致します。
(スポーン地点グループはランダムで割り当てられる)
# API
`Game`はIDとTYPEを持っています。
IDはそれぞれユニークな物で、API側で指定します。
TYPEは重複しても大丈夫な物で、ユーザーが指定します。
TYPEは複数種類のゲームモード(チーデス、ドミネーション)を作るときに役立ちます。
GameTypeListなどのクラスを作り管理することを推奨します。
## Mapに関するAPI
### マップを選択
## ゲームを操作するAPI
### ゲームを作成
### ゲームを登録
### ゲームをスタート
### ゲームを終了
## ゲームデータを取得するAPI
### すべてのゲームを取得
### IDからゲームを取得
### TYPEからゲームを取得
### チームを取得
## プレイヤーに関するAPI
### ゲームに参加
### チームを移動
### ゲームから抜ける
## 試合に関するAPI
### スコアを追加
### マップに登録されたスポーン地点を、ランダムにセット
## プレイヤーデータに関するAPI
### 名前からプレイヤーデータを取得
### 特定の試合に参加しているプレイヤーデータを取得
### 特定のチームに参加しているプレイヤーデータを取得
# イベント一覧
## PlayerJoinedGameEvent
プレイヤーがゲームに参加したときに呼び出されます
## PlayerMovedGameEvent
プレイヤーがチームを移動したときに呼び出されます
## PlayerKilledPlayerEvent
プレイヤーが相手に倒されたときに呼び出されます
## AddedScoreEvent
スコアが追加されたときに呼び出されます
## PlayerQuitGameEvent
プレイヤーがゲームから抜けたときに呼び出されます
## StartedGameEvent
ゲームが開始されたときに呼び出されます
### UpdatedGameTimerEvent
ゲームの経過時間が更新されたときに呼び出されます
# 依存関係
[form_builder](https://github.com/MineDeepRock/form_builder)
[slot_menu_system](https://github.com/MineDeepRock/slot_menu_system)
↑2つを導入してください
# Composerで補完する
repositoriesに以下を追加
requireに以下を追加
- 複数ゲームの同時進行
- チーム同士の攻撃キャンセル
- スコアの管理
- 時間制限の管理
- チーム配分
- 人数制限
- 人数差制限
- Minecraft内でのマップ作成とスポーン地点設定、その他マップ管理
- チームチャット`/tc [message]`
github
Qiitaの記事
チームデスマッチ
# マップの設定
コマンド`/map`で出てくるフォームで操作します。
- map name
識別に使われます。同じ名前は使用不可能です。
- map level name
フォームを出したプレイヤーのLevelがマップのLevelになります。
- spawn points group
マップの`スポーン地点グループ`はチームのスポーン地点はと一致します。
(スポーン地点グループはランダムで割り当てられる)
# API
`Game`はIDとTYPEを持っています。
IDはそれぞれユニークな物で、API側で指定します。
TYPEは重複しても大丈夫な物で、ユーザーが指定します。
TYPEは複数種類のゲームモード(チーデス、ドミネーション)を作るときに役立ちます。
GameTypeListなどのクラスを作り管理することを推奨します。
## Mapに関するAPI
### マップを選択
PHP:
use pocketmine\utils\TextFormat;use team_game_system\TeamGameSystem;
use team_game_system\model\Team;
$teams = [
Team::asNew("RED",TextFormat::RED),
Team::asNew("Blue",TextFormat::BLUE),
];
$map = TeamGameSystem::selectMap("map_name", $teams);
### ゲームを作成
PHP:
use pocketmine\utils\TextFormat;
use team_game_system\model\Game;
use team_game_system\model\GameType
use team_game_system\model\Team;
$teams = [
Team::asNew("RED",TextFormat::RED),
Team::asNew("Blue",TextFormat::BLUE),
];
$game = Game::asNew(new GameType("TDM", $map, $teams));
//↓設定しなくてもOK
$game->setMaxPlayersCount(30);//試合に参加できる最大人数
$game->setMaxPlayersDifference(1);//チーム間の人数差制限
$game->setMaxScore(50);//勝利判定スコア
$game->setTimeLimit(600);//時間制限(秒)
PHP:
use team_game_system\TeamGameSystem;
TeamGameSystem::registerGame($game);
PHP:
use team_game_system\TeamGameSystem;
TeamGameSystem::startGame($scheduler, $gameId);
PHP:
use team_game_system\TeamGameSystem;
TeamGameSystem::finishedGame($gameId);
### すべてのゲームを取得
PHP:
use team_game_system\TeamGameSystem;
TeamGameSystem::getAllGames();
PHP:
use team_game_system\TeamGameSystem;
TeamGameSystem::getGame($gameId);
PHP:
use team_game_system\model\GameType;
use team_game_system\TeamGameSystem;
TeamGameSystem::findGamesByType(new GameType("TDM"));
PHP:
use team_game_system\model\GameType;
use team_game_system\TeamGameSystem;
TeamGameSystem::getTeam($gameId, $teamId);
### ゲームに参加
PHP:
use team_game_system\TeamGameSystem;
TeamGameSystem::joinGame($plyaer, $gameId);
PHP:
use team_game_system\TeamGameSystem;
TeamGameSystem::joinGame($plyaer, $gameId);
PHP:
use team_game_system\TeamGameSystem;
TeamGameSystem::quitGame($plyaer);
### スコアを追加
PHP:
use team_game_system\model\Score;
use team_game_system\TeamGameSystem;
TeamGameSystem::addScore($gameId,$teamId,new Score(1));
PHP:
use team_game_system\TeamGameSystem;
TeamGameSystem::setSpawnPoint($player);
### 名前からプレイヤーデータを取得
PHP:
use team_game_system\TeamGameSystem;
TeamGameSystem::getPlayerData($player);
PHP:
use team_game_system\TeamGameSystem;
TeamGameSystem::getGamePlayersData($gameId);
PHP:
use team_game_system\TeamGameSystem;
TeamGameSystem::getTeamPlayersData($teamId);
## PlayerJoinedGameEvent
プレイヤーがゲームに参加したときに呼び出されます
## PlayerMovedGameEvent
プレイヤーがチームを移動したときに呼び出されます
## PlayerKilledPlayerEvent
プレイヤーが相手に倒されたときに呼び出されます
## AddedScoreEvent
スコアが追加されたときに呼び出されます
## PlayerQuitGameEvent
プレイヤーがゲームから抜けたときに呼び出されます
## StartedGameEvent
ゲームが開始されたときに呼び出されます
### UpdatedGameTimerEvent
ゲームの経過時間が更新されたときに呼び出されます
# 依存関係
[form_builder](https://github.com/MineDeepRock/form_builder)
[slot_menu_system](https://github.com/MineDeepRock/slot_menu_system)
↑2つを導入してください
# Composerで補完する
repositoriesに以下を追加
JSON:
{
"type": "git",
"name": "mine_deep_rock/team_game_system",
"url": "https://github.com/MineDeepRock/team_game_system"
}
JSON:
"mine_deep_rock/team_game_system": "dev-master",