Exemplo n.º 1
0
 /**
  * Отрисовка миникарты
  * @param Player $char
  * @return array
  */
 public function techMinimap(Player $char)
 {
     $con = $this->container->get('database_connection');
     $room = $char->getRoom();
     $roomAnchor = $room->getAnchor();
     $zone = $room->getZone();
     $maptest = $this->roomRepository->getTypesForMap($roomAnchor, $zone, $con);
     // TODO: сделать кастомизацию ограничительных тайлов
     // Кастомные ограничительные тайлы
     if (is_array($maptest) && $zone == "starships") {
         foreach ($maptest as $dir => $direction) {
             if (!$direction) {
                 $maptest[$dir] = "cosmos";
             }
         }
     }
     $result = $maptest;
     return $result;
 }
Exemplo n.º 2
0
 /**
  * Телепортация к персонажу
  * @param Player $char
  * @param        $arguments
  * @return array
  */
 public function jumptp(Player $char, $arguments)
 {
     $result = array();
     if ($arguments && $arguments[1]) {
         $charName = $char->getUsername();
         // приведение первого аргумента введенной команды в нижний регистр
         $targetPlayer = mb_strtolower($arguments[1], 'UTF-8');
         $playersOnlineIds = $this->container->get('datachannel')->getOnlineIds();
         $playersOnline = $this->playerRepository->findPlayersOnline($playersOnlineIds);
         foreach ($playersOnline as $player) {
             /** @var Player $player */
             $playerName = $player->getUsernameCanonical();
             $playerNameFull = $player->getUsername();
             if (strpos($playerName, $targetPlayer) !== false) {
                 // если персонаж найден
                 $result["system"] = "Ты прыгнул к {$playerNameFull}!";
                 // перемещение
                 $destinationRoom = $player->getRoom();
                 $char->setRoom($destinationRoom);
                 $this->em->persist($char);
                 $this->em->flush();
                 // отправка сообщения адресату
                 $result["3rd"] = array($player);
                 $result["3rdecho"] = array("system" => "{$charName} прыгнул к тебе!");
                 return $result;
             }
         }
     } else {
         $result["system"] = "Персонаж не найден. Применение: jumptp [имя-персонажа]";
     }
     return $result;
 }