本文整理汇总了PHP中pocketmine\level\Position::getLevel方法的典型用法代码示例。如果您正苦于以下问题:PHP Position::getLevel方法的具体用法?PHP Position::getLevel怎么用?PHP Position::getLevel使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pocketmine\level\Position
的用法示例。
在下文中一共展示了Position::getLevel方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: startDuel
/**
* Really starts the duel after countdown
*/
public function startDuel()
{
Server::getInstance()->getScheduler()->cancelTask($this->countdownTaskHandler->getTaskId());
$player1 = $this->players[0];
$player2 = $this->players[1];
$pos_player1 = Position::fromObject($this->position, $this->position->getLevel());
$pos_player1->x += self::PLAYER_1_OFFSET_X;
$pos_player2 = Position::fromObject($this->position, $this->position->getLevel());
$pos_player2->x += self::PLAYER_2_OFFSET_X;
$player1->teleport($pos_player1, 90, 0);
$player2->teleport($pos_player2, -90, 0);
// Fix start time
$this->startTime = new DateTime('now');
$player1->sendTip(TextFormat::RED . "You are strarting a duel !");
$player1->sendMessage(" ");
$player1->sendMessage(TextFormat::RED . TextFormat::BOLD . "++++++++=++++++++");
$player1->sendMessage(TextFormat::AQUA . ">" . TextFormat::RESET . " You're starting a duel against : " . $player2->getName() . " !");
$player1->sendMessage(TextFormat::AQUA . ">" . TextFormat::RESET . " You have 3min !");
$player1->sendMessage(TextFormat::AQUA . ">" . TextFormat::RESET . " Good luck :) !");
$player1->sendMessage(TextFormat::RED . TextFormat::BOLD . "++++++++=++++++++");
$player1->sendMessage(" ");
$player1->sendTip(TextFormat::RED . "You are strarting a duel !");
$player2->sendMessage(" ");
$player2->sendMessage(TextFormat::RED . TextFormat::BOLD . "++++++++=++++++++");
$player2->sendMessage(TextFormat::AQUA . ">" . TextFormat::RESET . " You're starting a duel against : " . $player1->getName() . " !");
$player2->sendMessage(TextFormat::AQUA . ">" . TextFormat::RESET . " You have 3min !");
$player2->sendMessage(TextFormat::AQUA . ">" . TextFormat::RESET . " Good luck :) !");
$player2->sendMessage(TextFormat::RED . TextFormat::BOLD . "++++++++=++++++++");
$player2->sendMessage(" ");
// Launch the end round task
$task = new RoundCheckTask(OneVsOne::getInstance());
$task->arena = $this;
$this->taskHandler = Server::getInstance()->getScheduler()->scheduleDelayedTask($task, self::ROUND_DURATION * 20);
}
示例2: startDuel
/**
* Really starts the duel after countdown
*/
public function startDuel()
{
Server::getInstance()->getScheduler()->cancelTask($this->countdownTaskHandler->getTaskId());
$player1 = $this->players[0];
$player2 = $this->players[1];
$pos_player1 = Position::fromObject($this->position, $this->position->getLevel());
$pos_player1->x += self::PLAYER_1_OFFSET_X;
$pos_player2 = Position::fromObject($this->position, $this->position->getLevel());
$pos_player2->x += self::PLAYER_2_OFFSET_X;
$player1->teleport($pos_player1, 90, 0);
$player2->teleport($pos_player2, -90, 0);
$this->sparyParticle($player1);
$this->sparyParticle($player2);
$player1->setGamemode(0);
$player2->setGamemode(0);
// Give kit
foreach ($this->players as $player) {
$this->giveKit($player);
}
// Fix start time
$this->startTime = new DateTime('now');
$player1->sendTip(OneVsOne::getMessage("duel_tip"));
$player1->sendMessage(OneVsOne::getMessage("duel_start"));
$player2->sendTip(OneVsOne::getMessage("duel_tip"));
$player2->sendMessage(OneVsOne::getMessage("duel_start"));
// Launch the end round task
$task = new RoundCheckTask(OneVsOne::getInstance());
$task->arena = $this;
$this->taskHandler = Server::getInstance()->getScheduler()->scheduleDelayedTask($task, self::ROUND_DURATION * 20);
}
示例3: execute
public function execute(CommandSender $sender, $commandLabel, array $args)
{
if (!$this->testPermission($sender)) {
return true;
}
if (!$sender instanceof Player and count($args) < 4) {
$sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
return false;
}
if ($sender instanceof Player and count($args) < 4) {
$pos = $sender->getPosition();
} else {
$level = $sender->getServer()->getLevelByName($args[3]);
if (!$level instanceof Level) {
$sender->sendMessage(TextFormat::RED . "Invalid level name");
return false;
}
$pos = new Position((int) $args[0], (int) $args[1], (int) $args[2], $level);
}
if (!isset($args[4]) or $args[0] != "regenerate") {
$chunk = $pos->getLevel()->getChunk($pos->x >> 4, $pos->z >> 4);
McRegion::getRegionIndex($chunk->getX(), $chunk->getZ(), $x, $z);
$sender->sendMessage("Region X: {$x} Region Z: {$z}");
} elseif ($args[4] == "regenerate") {
foreach ($sender->getServer()->getOnlinePlayers() as $p) {
if ($p->getLevel() == $pos->getLevel()) {
$p->kick(TextFormat::AQUA . "A chunk of this chunk is regenerating, please re-login.", false);
}
}
$pos->getLevel()->regenerateChunk($pos->x >> 4, $pos->z >> 4);
}
return true;
}
示例4: getChest
public function getChest()
{
if ($this->hasPattern()) {
return $this->pattern->getChestTile();
}
$tile = $this->position->getLevel()->getTile($this->position);
if ($tile instanceof \pocketmine\tile\Chest) {
return $tile;
} else {
return false;
}
}
示例5: spawnTo
public function spawnTo(Player $player)
{
if ($player->getLevel() === $this->pos->getLevel()) {
$pk = new AddItemEntityPacket();
$pk->eid = $this->eid;
$pk->item = $this->item;
$pk->x = $this->pos->x + 0.5;
$pk->y = $this->pos->y;
$pk->z = $this->pos->z + 0.5;
$pk->speedX = $pk->speedY = $pk->speedZ = 0;
$player->dataPacket($pk);
}
}
示例6: __construct
public function __construct(Position $a, Vector3 $b)
{
$this->raw0 = $a;
if (!$b instanceof Position) {
$b = new Position($b->getX(), $b->getY(), $b->getZ(), $a->getLevel());
}
$this->raw1 = $b;
if ($a->getLevel()->getName() !== $b->getLevel()->getName()) {
trigger_error("Positions of different levels (\"" . $a->getLevel()->getName() . "\" and \"" . $b->getLevel()->getName() . "\" passed to constructor of " . get_class($this), E_USER_WARNING);
}
$this->bake();
parent::__construct();
// call this at the last because it has to bake before acquiring
}
示例7: putPosition
public function putPosition(Position $position)
{
$this->putLong($position->x);
$this->putShort($position->y);
$this->putLong($position->z);
$this->putString($position->isValid() ? $position->getLevel()->getName() : "");
}
示例8: setHome
public function setHome(IPlayer $player, Position $pos)
{
$n = strtolower($player->getName());
$l = "l-" . strtolower($pos->getLevel()->getName());
$this->homes[$l][$n] = [$pos->getX(), $pos->getY(), $pos->getZ()];
$this->saveHomes();
}
示例9: __construct
public function __construct(Position $center, $size, $what = \null)
{
$this->level = $center->getLevel();
$this->source = $center;
$this->size = \max($size, 0);
$this->what = $what;
}
示例10: runNoteBlockSound
public static function runNoteBlockSound(Position $pos, $pitch, $type = NoteBlock::PIANO_OR_HARP, $players = null)
{
if (!is_array($players)) {
if ($players instanceof Player) {
$players = [$players];
} elseif ($players == null) {
$players = $pos->getLevel()->getChunkPlayers($pos->x >> 4, $pos->z >> 4);
} else {
return false;
}
}
$soundPk = new BlockEventPacket();
$soundPk->x = $pos->x;
$soundPk->y = $pos->y;
$soundPk->z = $pos->z;
$soundPk->case1 = $type;
$soundPk->case2 = $pitch;
$setNoteBlockPk = new UpdateBlockPacket();
$setNoteBlockPk->records[] = [$pos->x, $pos->z, $pos->y, 25, 0, UpdateBlockPacket::FLAG_NONE];
$realBlock = $pos->getLevel()->getBlock($pos);
$setRealBlockPk = new UpdateBlockPacket();
$setRealBlockPk->records[] = [$pos->x, $pos->z, $pos->y, $realBlock->getID(), $realBlock->getDamage(), UpdateBlockPacket::FLAG_NONE];
Server::getInstance()->batchPackets($players, [$setNoteBlockPk, $soundPk, $setRealBlockPk], false);
return true;
}
示例11: __construct
public function __construct(Position $center, $size, $what = null, bool $dropItem = true)
{
$this->level = $center->getLevel();
$this->source = $center;
$this->size = max($size, 0);
$this->what = $what;
$this->dropItem = $dropItem;
}
示例12: operate
public function operate(Position $anchor)
{
if (is_int($this->delta)) {
throw new \BadMethodCallException("MacroOperation is of type TRUE (wait) not FALSE (operate) thus cannot be operated");
}
$anchor->getLevel()->setBlock($anchor->add($this->delta), $this->block, false, true);
// update
}
示例13: dropExpOrb__api200
public static function dropExpOrb__api200(Position $source, $exp = 1, Vector3 $motion = \null, $delay = 40)
{
$motion = $motion === \null ? new Vector3(\lcg_value() * 0.2 - 0.1, 0.4, \lcg_value() * 0.2 - 0.1) : $motion;
$entity = Entity::createEntity("ExperienceOrb", $source->getLevel()->getChunk($source->getX() >> 4, $source->getZ() >> 4, \true), new \pocketmine\nbt\tag\CompoundTag("", ["Pos" => new \pocketmine\nbt\tag\ListTag("Pos", [new \pocketmine\nbt\tag\DoubleTag("", $source->getX()), new \pocketmine\nbt\tag\DoubleTag("", $source->getY()), new \pocketmine\nbt\tag\DoubleTag("", $source->getZ())]), "Motion" => new \pocketmine\nbt\tag\ListTag("Motion", [new \pocketmine\nbt\tag\DoubleTag("", $motion->x), new \pocketmine\nbt\tag\DoubleTag("", $motion->y), new \pocketmine\nbt\tag\DoubleTag("", $motion->z)]), "Rotation" => new \pocketmine\nbt\tag\ListTag("Rotation", [new \pocketmine\nbt\tag\FloatTag("", \lcg_value() * 360), new \pocketmine\nbt\tag\FloatTag("", 0)]), "Health" => new \pocketmine\nbt\tag\ShortTag("Health", 20), "PickupDelay" => new \pocketmine\nbt\tag\ShortTag("PickupDelay", $delay)]));
if ($entity instanceof ExperienceOrb) {
$entity->setExp($exp);
}
$entity->spawnToAll();
}
示例14: savePosition
public function savePosition(Position $pos, $pitch = 0, $yaw = 0)
{
$this->data["x"] = $pos->x;
$this->data["y"] = $pos->y;
$this->data["z"] = $pos->z;
$this->data["pitch"] = $pitch;
$this->data["yaw"] = $yaw;
$this->data["levelName"] = $pos->getLevel()->getFolderName();
}
示例15: checkMove
public function checkMove(Position $p)
{
if (!$this->cfg["mines"]) {
return false;
}
$bl = [];
for ($i = 1; $i < 4; $i++) {
$bl[$i] = $p->getLevel()->getBlockIdAt($p->getX(), $p->getY() - $i, $p->getZ());
}
for ($i = 1; $i < 3; $i++) {
if ($bl[$i] == $this->mine["block1"]) {
if (isset($this->mine["block2"]) && $this->mine["block2"] != $bl[$i + 1]) {
continue;
}
// explode!
$p->getLevel()->setBlockIdAt($p->getX(), $p->getY() - $i, $p->getZ(), 0);
$this->scorchit(new Position($p->getX() + 0.5, $p->getY() - $i + 0.5, $p->getZ() + 0.5, $p->getLevel()), new Vector3(0, 0, 0), 1);
return false;
}
}
return false;
}