Mapa::setMapWidth(10);
        Mapa::setMapHeight(6);
        Mapa::gerarMapa();
        Mapa::gravarEstrutura(Mapa::getId());
    }
} else {
    $id_mapa = Mapa::novoIdMapa();
    header('Location: mapa-creator.php?map=' . $id_mapa);
    exit;
}
if (count($_POST) > 0) {
    $x = intval($_POST['x']);
    $y = intval($_POST['y']);
    $queda = intval($_POST['queda']);
    $luz = intval($_POST['luz']);
    $area = Mapa::getArea($x, $y);
    $area->setTipo($_POST['tipo']);
    $area->setImagem($_POST['imagem']);
    $area->setDesnivel(intval($_POST['desnivel']));
    $area->setQueda(intval($_POST['queda']));
    $area->setLuz(intval($_POST['luz']));
    Mapa::gravarEstrutura(Mapa::getId());
    header('content-type: application/json');
    echo Mapa::getAreaJson($area);
    //echo ($tipo == AREA_PAREDE) ? 'hex-0-full.png' : 'hex-empty.png';
    exit;
}
if (array_key_exists('x', $_GET) && array_key_exists('y', $_GET)) {
    $x = intval($_GET['x']);
    $y = intval($_GET['y']);
    header('content-type: application/json');
foreach ($linha4 as $area) {
    $area = Mapa::getArea($area->x, $area->y);
    if (!is_null($area)) {
        $area->setCor(array(0, 166, 147));
    }
}
$linha5 = Mapa::linha(newpos(17, 3), newpos(17, 9));
foreach ($linha5 as $area) {
    $area = Mapa::getArea($area->x, $area->y);
    if (!is_null($area)) {
        $area->setCor(array(0, 166, 147));
    }
}
$linha6 = Mapa::linha(newpos(10, 13), newpos(3, 19));
foreach ($linha6 as $area) {
    $area = Mapa::getArea($area->x, $area->y);
    if (!is_null($area)) {
        $area->setCor(array(107, 68, 35));
    }
}
/*
for ($x=0; $x < Mapa::getMapWidth(); $x++) {
   for ($y=0; $y < Mapa::getMapHeight(); $y++) {
       $area = Mapa::getArea($x, $y);
       $dest = new stdClass();
       $dest->x = $x;
       $dest->y = $y;
       $sentido = Mapa::getSentido2D($heroi->getSentido(), $heroi->getPos(), $dest);
       switch ($sentido) {
           case SENTIDO_FRENTE:
               $area->setCor(array(167,211,255));
 public static function novaSessao($id_mapa, $id_campanha = null, $id_personagem = null, $cod_tipo = SESSAO_MESTRE, $tempo_turno = 0, $limite_personagem = 1)
 {
     if ($id_mapa <= 0) {
         throw new Exception('Nenhum mapa selecionado!');
     }
     $id_sessao = md5(uniqid());
     if (in_array($cod_tipo, array(SESSAO_MESTRE, SESSAO_GRUPO))) {
         $id_mestre = ID_JOGADOR;
     } else {
         $id_mestre = null;
     }
     $cod_situacao = SESSAO_ATIVA;
     if ($cod_tipo == SESSAO_GRUPO) {
         $cod_situacao = SESSAO_AGUARDANDO;
     }
     Mapa::carregarEstrutura($id_mapa);
     foreach (Mapa::listarPessoa() as $npc) {
         $area = Mapa::getArea($npc->getX(), $npc->getY());
         if (is_null($area)) {
             throw new Exception("O npc se encontra em uma area invalida. Posição " . $npc->getX() . "." . $npc->getY() . ".");
         }
         $id_instancia = $npc->getId();
         $sentido = $npc->getSentido();
         $npc = Personagem::pegar($npc->getIdOriginal());
         $npc->estruturarCorpo();
         $npc->setIdOriginal($npc->getId());
         $npc->setIdGrupo(2);
         $npc->setId($id_instancia);
         $npc->setPV($npc->getMaxPV());
         $npc->setX($area->getX());
         $npc->setY($area->getY());
         $npc->setPosicao(POSICAO_EM_PE);
         $npc->setSentido($sentido);
         if ($cod_tipo == SESSAO_SOLO) {
             $npc->setAutomatico(true);
             $npc->desativarTurno();
         }
         $area->setPersonagem($npc);
         //echo $npc->getNome()."<br />";
     }
     if (!is_null($id_personagem)) {
         $personagem = Personagem::pegar($id_personagem);
         Mapa::entrar($personagem);
     }
     $data = serialize(Mapa::getMapa());
     $query = "\n            INSERT INTO sessao (\n                id_sessao,\n                id_mestre,\n                id_campanha,\n                id_mapa,\n                cod_tipo,\n                cod_situacao,\n                tempo_turno,\n                limite_personagem,\n                ultimo_turno,\n                data_inclusao,\n                data\n            ) VALUES (\n                '" . do_escape($id_sessao) . "',\n                " . do_full_escape($id_mestre) . ",\n                " . do_full_escape($id_campanha) . ",\n                '" . do_escape($id_mapa) . "',\n                '" . do_escape($cod_tipo) . "',\n                '" . do_escape($cod_situacao) . "',\n                '" . do_escape($tempo_turno) . "',\n                '" . do_escape($limite_personagem) . "',\n                NOW(),\n                NOW(),\n                '" . do_escape($data) . "'\n            )\n        ";
     do_query($query);
     if (!is_null($personagem)) {
         $personagem->setSessao($id_sessao);
     }
     return $id_sessao;
 }
Beispiel #4
0
     $altura = 140;
 }
 $id_arte = intval($_GET['arte']);
 $arte = new Arte($id_arte);
 Mapa::setHexWidth(160);
 Mapa::setHexHeight(140);
 Mapa::setHexSide(80);
 Mapa::setMapWidth(5);
 Mapa::setMapHeight(5);
 Mapa::gerarMapa();
 Mapa::getArea(0, 0)->setTipo(AREA_FORA);
 Mapa::getArea(4, 0)->setTipo(AREA_FORA);
 Mapa::getArea(0, 4)->setTipo(AREA_FORA);
 Mapa::getArea(1, 4)->setTipo(AREA_FORA);
 Mapa::getArea(3, 4)->setTipo(AREA_FORA);
 Mapa::getArea(4, 4)->setTipo(AREA_FORA);
 if ($gerar) {
     $width = Mapa::getTileAreaWidth();
     $height = Mapa::getTileAreaHeight();
     $height -= floor(Mapa::getHexWidth() / 2);
     $image2 = imagecreatetruecolor($width, $height);
     imagealphablending($image2, false);
     imagesavealpha($image2, true);
     $bg = imagecolorallocatealpha($image2, 255, 255, 255, 127);
     imagefilledrectangle($image2, 0, 0, $width, $height, $bg);
 } else {
     $image = Mapa::gerarConfiguracao();
     $width = imagesx($image);
     $height = imagesy($image);
     $height -= floor(Mapa::getHexWidth() / 2);
     $image2 = imagecreatetruecolor($width, $height);
 public function renderizarMenuMovimento()
 {
     if (!$this->podeAtacar()) {
         return;
     }
     $posicao = '';
     $ataquetotal = '';
     $soltar = array();
     foreach ($this->movimentoDisponivel() as $movimento) {
         if (in_array($movimento, array(MV_PEGAR_DIREITA, MV_PEGAR_ESQUERDA))) {
             $url = WEB_PATH . '/' . basename($_SERVER['PHP_SELF']) . "?s=" . Sessao::idSessao() . "&id=" . Sessao::idPersonagemAtual() . "&mov=" . $movimento;
             $area = Mapa::getArea($this->x, $this->y);
             echo "<li><a href=\"#\">Pegar</a>";
             echo "<ul>";
             foreach ($area->listarObjeto() as $item) {
                 if ($item instanceof Arma) {
                     echo '<li><a href="' . $url . '&arma=' . $item->getSlug() . '">' . $item->getNome() . '</a></li>';
                 }
             }
             echo "</ul></li>";
         } elseif ($movimento == MV_ATAQUE_NORMAL) {
             echo "<li><a href=\"#\">" . $this->descreverMovimento($movimento) . "</a>";
             echo "<ul>";
             $this->renderizarMenuAcao($movimento);
             echo "</ul></li>";
         } elseif ($movimento == MV_ARREMESSO) {
             echo "<li><a href=\"#\">" . $this->descreverMovimento($movimento) . "</a>";
             echo "<ul>";
             $this->renderizarMenuArremesso($movimento);
             echo "</ul></li>";
         } elseif ($movimento == MV_ATAQUE_LONGE) {
             echo "<li><a href=\"#\">" . $this->descreverMovimento($movimento) . "</a>";
             echo "<ul>";
             $this->renderizarMenuArremesso($movimento);
             echo "</ul></li>";
         } elseif (in_array($movimento, $this->listarAtaqueTotal())) {
             ob_start();
             echo "  <li><a href=\"#\">" . $this->descreverMovimento($movimento) . "</a>\n";
             echo "    <ul>\n";
             $this->renderizarMenuAcao($movimento);
             echo "    </ul>\n";
             echo "  </li>\n";
             $ataquetotal .= ob_get_contents();
             ob_end_clean();
         } elseif (in_array($movimento, array(MV_SOLTAR_DIREITA, MV_SOLTAR_ESQUERDA))) {
             $item = new stdClass();
             $item->url = basename($_SERVER['PHP_SELF']) . "?s=" . Sessao::idSessao() . "&id=" . Sessao::idPersonagemAtual() . "&mov=" . $movimento;
             if ($movimento == MV_SOLTAR_DIREITA && !is_null($this->mao_direita)) {
                 $item->descricao = $this->mao_direita->getNome() . "(D)";
             } elseif ($movimento == MV_SOLTAR_ESQUERDA && !is_null($this->mao_esquerda)) {
                 $item->descricao = $this->mao_esquerda->getNome() . "(E)";
             }
             $soltar[] = $item;
         } elseif (in_array($movimento, array(MV_LEVANTAR, MV_AGACHAR, MV_JOELHAR, MV_SENTAR, MV_DEITAR))) {
             $url = basename($_SERVER['PHP_SELF']) . "?s=" . Sessao::idSessao() . "&id=" . Sessao::idPersonagemAtual() . "&mov=" . $movimento;
             $posicao .= "<li><a href=\"" . $url . "\">" . $this->descreverMovimento($movimento) . "</a></li>\n";
         } elseif ($movimento == MV_DEFESA_TOTAL) {
             $url = basename($_SERVER['PHP_SELF']) . "?s=" . Sessao::idSessao() . "&id=" . Sessao::idPersonagemAtual() . "&mov=";
             echo "<li><a href=\"#\">Defesa Total</a><ul>";
             echo "  <li><a href=\"" . $url . MV_DEFESA_TOTAL_DUPLA . "\">Defesa Dupla</a></li>";
             echo "  <li><a href=\"" . $url . MV_DEFESA_TOTAL_ESQUIVA . "\">Esquiva Aumentada</a></li>";
             echo "  <li><a href=\"" . $url . MV_DEFESA_TOTAL_APARO . "\">Aparo Aumentado</a></li>";
             echo "  <li><a href=\"" . $url . MV_DEFESA_TOTAL_BLOQUEIO . "\">Bloqueio Aumentado</a></li>";
             echo "</ul></li>";
             //if (in_array($movimento, array(MV_ATAQUE_NORMAL, MV_ATAQUE_TOTAL, MV_DEFESA_TOTAL)))
             //    $url .= "&alvo=".Sessao::idAlvo();
         } else {
             $url = basename($_SERVER['PHP_SELF']) . "?s=" . Sessao::idSessao() . "&id=" . Sessao::idPersonagemAtual() . "&mov=" . $movimento;
             echo "<li><a href=\"" . $url . "\">" . $this->descreverMovimento($movimento) . "</a></li>";
             //if (in_array($movimento, array(MV_ATAQUE_NORMAL, MV_ATAQUE_TOTAL, MV_DEFESA_TOTAL)))
             //    $url .= "&alvo=".Sessao::idAlvo();
         }
     }
     if ($ataquetotal != '') {
         echo "<li><a href=\"#\">Ataque Total</a>\n";
         echo "<ul>" . $ataquetotal . "</ul></li>";
     }
     if ($posicao != '') {
         echo "<li><a href=\"#\">Mudar Posição</a>";
         echo "<ul>" . $posicao . "</ul></li>";
     }
     if (count($soltar) == 1) {
         echo "<li><a href=\"" . $soltar[0]->url . "\">Soltar " . $soltar[0]->descricao . "</a></li>";
     } elseif (count($soltar) > 1) {
         echo "<li><a href=\"#\">Soltar</a>";
         echo "<ul>";
         foreach ($soltar as $item) {
             echo "<li><a href=\"" . $item->url . "\">" . $item->descricao . "</a>";
         }
         echo "</ul></li>";
     }
     //echo "</ul></li>";
 }
Beispiel #6
0
 public static function encontrarInimigo($id_grupo)
 {
     $inimigos = array();
     for ($x = 0; $x < static::getMapWidth(); $x++) {
         for ($y = 0; $y < static::getMapHeight(); $y++) {
             $area = Mapa::getArea($x, $y);
             if (!is_null($area) && !is_null($area->getPersonagem())) {
                 $npc = $area->getPersonagem();
                 if ($npc->getIdGrupo() != $id_grupo && $npc->getCodSituacao() == ATIVO || $npc->getCodSituacao() == ATORDOADO) {
                     $inimigos[] = $npc;
                 }
             }
         }
     }
     return $inimigos;
 }