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; }
$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>"; }
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; }