Пример #1
0
<?php

error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
require 'common.php';
if (!is_null(Mapa::getId())) {
    if (!Mapa::carregarEstrutura(Mapa::getId())) {
        Mapa::setHexHeight(70);
        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);
Пример #2
0
 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;
 }
Пример #3
0
<?php

require '../common.php';
$log = '';
Mapa::carregarEstrutura();
for ($x = 0; $x < Mapa::getMapWidth(); $x++) {
    for ($y = 0; $y < Mapa::getMapHeight(); $y++) {
        $area = Mapa::getArea($x, $y);
        if (!is_null($area)) {
            $area->setPersonagem(null);
        }
    }
}
/*
$ogro = Personagem::pegar(10);
$ogro->setSentido(2);
$heroi = Personagem::pegar(1);
$heroi->setSentido(1);

Mapa::getArea(7, 3)->setPersonagem($ogro);
Mapa::getArea(2, 1)->setPersonagem($heroi);
*/
function newpos($x, $y)
{
    $pos = new stdClass();
    $pos->x = $x;
    $pos->y = $y;
    return $pos;
}
$linha1 = Mapa::linha(newpos(2, 2), newpos(6, 1));
foreach ($linha1 as $area) {
Пример #4
0
function dropDownListTipo($nome, $valor)
{
    echo "<select id=\"{$nome}\" name=\"{$nome}\">\n";
    foreach (MapaArea::listarTipo() as $id_tipo => $tipo) {
        echo "<option value=\"";
        echo $id_tipo;
        if ($id_tipo == $valor) {
            echo "\" selected=\"selected";
        }
        echo "\">";
        echo $tipo;
        echo "</option>";
    }
    echo "</select>";
}
if (!Mapa::carregarEstrutura()) {
    throw new Exception('Mapa não encontrado!');
}
if (array_key_exists('x', $_POST) && array_key_exists('y', $_POST)) {
    $x = intval($_POST['x']);
    $y = intval($_POST['y']);
    $pos = Mapa::getPosByPixel($x, $y);
    header('location: mapa-hex.php?map=' . $_GET['map'] . '&pos=' . $pos->x . '.' . $pos->y);
    exit;
}
$msgerro = null;
$msgsuccess = null;
$x = intval(strstr($_GET['pos'], '.', true));
$y = intval(substr(strstr($_GET['pos'], '.'), 1));
$area = Mapa::getArea($x, $y);
$scroll = Mapa::getScrollByPos($x, $y);