Example #1
0
 public function gerar($grupo, $id_personagem)
 {
     $regraPersonagem = new Personagem();
     $personagem = $regraPersonagem->pegar($id_personagem);
     /*
             $data = time() - (60 * 60 * 24 * 3);
             $query = "
        SELECT 
            id_tipo
        FROM quest
        WHERE id_personagem = '".do_escape($id_personagem)."'
        AND (
            (
                data_inclusao < '".do_escape(date('Y-m-d h:i:s', $data))."'
                AND cod_situacao <> '".do_escape(QUEST_ATIVA)."'
            ) OR cod_situacao = '".do_escape(QUEST_ATIVA)."'
        )
             ";
             $inativas = get_result_as_string($query, 'id_tipo');
     */
     //var_dump($inativas);
     foreach ($GLOBALS['_quest'] as $id_tipo => $_quest) {
         $quest = new stdClass();
         $quest->id_personagem = $id_personagem;
         $quest->id_tipo = $id_tipo;
         $this->carregar($quest);
         if ($this->elegivel($quest, $grupo)) {
             $data = time() - 60 * 60 * 24 * $_quest['tempo'];
             $query = "\n                    SELECT \n                        COUNT(*) AS 'quantidade'\n                    FROM quest\n                    WHERE id_personagem = '" . do_escape($id_personagem) . "'\n                    AND (\n                        data_inclusao > '" . do_escape(date('Y-m-d h:i:s', $data)) . "'\n                        OR cod_situacao = '" . do_escape(QUEST_ATIVA) . "'\n                    )\n                    AND id_tipo = '" . do_escape($quest->id_tipo) . "'\n                ";
             $quantidade = get_value($query, 'quantidade');
             if ($quantidade == 0) {
                 $quest = new stdClass();
                 $quest->id_personagem = $personagem->id_personagem;
                 $quest->id_tipo = $id_tipo;
                 $inimigos = $_quest['inimigo'];
                 if (is_array($inimigos)) {
                     $quest->objetivo = $inimigos[array_rand($inimigos)];
                 } else {
                     $quest->objetivo = $inimigos;
                 }
                 $quest->cod_situacao = QUEST_ATIVA;
                 $this->inserir($quest);
             }
         }
     }
 }
Example #2
0
<?php

require 'common.inc.php';
$regraPersonagem = new Personagem();
$regraProfissao = new Profissao();
//$personagem = $regraPersonagem->pegar(ID_PERSONAGEM);
//$GLOBALS['_personagem'] = $personagem;
$personagem = $regraPersonagem->pegarAtual();
$id_profissao = intval($_GET['profissao']);
$urlPersonagem = WEB_PATH . '/' . strtolower(sanitize_slug($personagem->nome)) . '_' . $personagem->id_personagem;
$urlPersonagem .= "/crafting/{$id_profissao}";
$mensagem = $regraProfissao->executar($personagem, $id_profissao);
$personagem = $regraPersonagem->pegar(ID_PERSONAGEM);
$GLOBALS['_personagem'] = $personagem;
require 'header.inc.php';
require 'menu-principal.inc.php';
require 'personagem-modal.inc.php';
?>
<div class="container" style="margin-top: 80px">
    <div class="row">
        <div class="col-md-3">
            <?php 
require 'login.inc.php';
?>
        </div>
        <div class="col-md-9">
            <div class="panel panel-default">
                <div class="panel-body">
                    <div class="pull-right">
                        <a class="btn btn-success" href="<?php 
echo $urlPersonagem;
        if (array_key_exists('personagem', $_POST)) {
            $id_personagem = intval($_POST['personagem']);
        }
        if ($id_personagem <= 0) {
            $msgerro = 'Selecione o personagem.';
        }
        if (is_null($msgerro)) {
            $meuPersonagem = Personagem::pegar($id_personagem);
            $meuPersonagem->setSessao(Sessao::idSessao());
            header('Location: sessao-grupo.php?s=' . Sessao::idSessao());
            exit;
        }
    }
    $id_personagem = Personagem::pegarPorSessao();
    if ($id_personagem > 0) {
        $meuPersonagem = Personagem::pegar($id_personagem);
    }
} else {
    $id_mapa = 0;
    $id_personagem = 0;
    $tempo_turno = 0;
    $limite_personagem = 0;
    if (array_key_exists('map', $_GET)) {
        $id_mapa = intval($_GET['map']);
    }
    if (count($_POST) > 0) {
        if (array_key_exists('personagem', $_POST)) {
            $id_personagem = intval($_POST['personagem']);
        }
        if (array_key_exists('tempo_turno', $_POST)) {
            $tempo_turno = intval($_POST['tempo_turno']);
Example #4
0
 public static function timeline($id_jogador = null, $timeline = true, $id_arte = null)
 {
     $query = static::query() . " \n            WHERE feed.id_pai IS NULL\n        ";
     if (!is_null($id_jogador)) {
         $query .= "\n                AND (\n                    feed.id_jogador = '" . do_escape($id_jogador) . "' OR\n                    feed.id_jogador IN (\n                        SELECT id_amigo\n                        FROM jogador_amigo\n                        WHERE id_jogador = '" . do_escape($id_jogador) . "'\n                        UNION\n                        SELECT id_jogador\n                        FROM jogador_amigo\n                        WHERE id_amigo = '" . do_escape($id_jogador) . "'\n                    )\n                )\n            ";
     }
     if (!is_null($id_arte)) {
         $query .= " AND feed.id_arte = '" . do_escape($id_arte) . "' ";
     }
     $query .= " ORDER BY feed.ultima_alteracao DESC";
     echo '<ul class="feeds">';
     echo '<li>';
     if (ID_JOGADOR > 0) {
         echo '<form class="comentario" method="POST" action="' . WEB_PATH . '/ajax-feed.php">';
         echo '<input type="hidden" name="acao" value="inserir" />';
         echo '<input type="hidden" name="cod_tipo" value="' . FEED_COMENTAR . '" />';
         if (!is_null($id_arte)) {
             echo '<input type="hidden" name="id_arte" value="' . $id_arte . '" />';
         }
         echo '<textarea name="comentario" placeholder="Escreva seu comentário aqui" rows="2"></textarea>';
         echo '<input class="button tiny" type="submit" value="comentar">';
         echo '</form>';
     }
     echo '</li>';
     foreach (get_result($query) as $feed) {
         echo '<li>';
         echo '<span class="data">' . humanizeDateDiff(time(), strtotime($feed->ultima_alteracao)) . '</span>';
         echo '<img class="foto has-tip" src="' . WEB_PATH . '/imagem.php?jogador=' . $feed->id_jogador . '" title="' . $feed->nome . '" alt="' . $feed->nome . '" />';
         $texto = '<b>' . $feed->nome . '</b>';
         switch ($feed->cod_tipo) {
             case FEED_CURTIR:
                 $texto .= ' curtiu ';
                 break;
             case FEED_COMPARTILHAR:
                 $texto .= ' compartilhou ';
                 break;
             case FEED_COMENTAR:
                 $texto .= ' comentou ';
                 break;
             case FEED_NOVO_PERSONAGEM:
                 $texto .= ' criou o personagem ';
                 break;
             case FEED_NOVA_ARTE:
                 $texto .= ' incluiu uma nova arte ';
                 break;
             case FEED_NOVA_SESSAO:
                 $texto .= ' está convidando para uma nova sessão ';
                 break;
                 /*
                                 case FEED_DISCURSAO:
                    $texto .= '<br />'.$feed->comentario;
                    break;
                 */
         }
         $form = '<form class="comentario" method="POST" action="' . WEB_PATH . '/ajax-feed.php">';
         $form .= '<input type="hidden" name="acao" value="inserir" />';
         $form .= '<input type="hidden" name="cod_tipo" value="' . FEED_COMENTAR . '" />';
         $form .= '<input type="hidden" name="id_pai" value="' . $feed->id_feed . '" />';
         if (!is_null($feed->id_arte) && $feed->id_arte > 0) {
             $form .= '<input type="hidden" name="id_arte" value="' . $feed->id_arte . '" />';
             $botaoCurtir = static::botaoCurtirArte($feed->id_arte);
             if ($timeline) {
                 $arte = new Arte($feed->id_arte);
                 $texto .= '<a href="' . WEB_PATH . '/arte.php?arte=' . $feed->id_arte . '">' . $arte->getNome() . '</a>.<br />';
                 $texto .= '<a href="' . WEB_PATH . '/arte.php?arte=' . $feed->id_arte . '"><img src="' . $arte->getThumbnail(430, 220) . '" alt="' . $arte->getNome() . '" /></a>';
             }
         }
         if (!is_null($feed->id_personagem) && $feed->id_personagem > 0) {
             $form .= '<input type="hidden" name="id_personagem" value="' . $feed->id_personagem . '" />';
             $botaoCurtir = static::botaoCurtirPersonagem($feed->id_arte);
             $personagem = Personagem::pegar($feed->id_personagem);
             $texto .= '<a href="' . WEB_PATH . '/personagem.php?personagem=' . $feed->id_personagem . '">' . $personagem->getNome() . '</a>.<br />';
             $texto .= '<a href="' . WEB_PATH . '/personagem.php?personagem=' . $feed->id_personagem . '"><img src="' . $personagem->getImagemBase64() . '" alt="' . $personagem->getNome() . '" /></a>';
         }
         if (!is_null($feed->id_sessao)) {
             $form .= '<input type="hidden" name="id_sessao" value="' . $feed->id_sessao . '" />';
             $query = "\n                    SELECT \n                        mapa.nome\n                    FROM sessao\n                    INNER JOIN mapa ON mapa.id_mapa = sessao.id_mapa\n                    WHERE sessao.id_sessao = '" . do_escape($feed->id_sessao) . "'\n                ";
             $nome = get_value($query, 'nome');
             $texto .= ' do mapa <a href="' . WEB_PATH . '/sessao-grupo.php?s=' . $feed->id_sessao . '">' . $nome . '</a>.<br />';
             $botaoCurtir = static::botaoCurtirSessao($feed->id_sessao);
             $botaoCurtir .= ' <a class="button tiny" href="' . WEB_PATH . '/sessao-grupo.php?s=' . $feed->id_sessao . '">Me inscrever</a>';
         }
         $texto .= '<br />' . $feed->comentario;
         $form .= '<textarea name="comentario" placeholder="Escreva seu comentário aqui" rows="2"></textarea>';
         $form .= $botaoCurtir . '<input class="button tiny" type="submit" value="comentar">';
         $form .= '</form>';
         echo '<p>' . $texto . '</p>';
         echo '<ul class="comentarios">';
         $query = static::query() . "\n                WHERE id_pai = '" . $feed->id_feed . "'\n                ORDER BY feed.data_inclusao DESC\n            ";
         foreach (get_result($query) as $comentario) {
             echo '<li>';
             echo '<span class="data">' . humanizeDateDiff(time(), strtotime($comentario->data_inclusao)) . '</span>';
             echo '<img class="foto has-tip" src="' . WEB_PATH . '/imagem.php?jogador=' . $comentario->id_jogador . '" title="' . $comentario->nome . '" alt="' . $comentario->nome . '" />';
             echo '<p>' . $comentario->comentario . '</p></li>';
         }
         if (ID_JOGADOR > 0) {
             echo '<li>' . $form . '</li>';
         }
         echo '</ul>';
         echo '</li>';
     }
     echo '</ul>';
 }
 public function carregarDoPost()
 {
     $this->tipo = $_POST['hex_tipo'];
     if (is_null($this->tipo) || $this->tipo == '') {
         throw new Exception("Selecione o tipo do hexagono.");
     }
     $this->desnivel = intval($_POST['desnivel']);
     $this->queda = intval($_POST['queda']);
     $this->luz = intval($_POST['luz']);
     $this->visibilidade = intval($_POST['visibilidade']);
     $this->dificuldade = intval($_POST['dificuldade']);
     $this->entrada = intval($_POST['entrada']) == 1;
     for ($i = 0; $i <= 5; $i++) {
         if (array_key_exists($i, $_POST['lado'])) {
             $this->setLado($i, $_POST['lado'][$i]);
         }
     }
     $id_npc = intval($_POST['id_npc']);
     if ($id_npc > 0) {
         $npc = Personagem::pegar($id_npc);
         $npc->setSentido(intval($_POST['sentido']));
         $npc->estruturarCorpo();
         $npc->setIdOriginal($npc->getId());
         $npc->setIdGrupo(2);
         $npc->setId(rand(10000, 99999));
         $npc->setPV($npc->getMaxPV());
         $npc->setX($this->getX());
         $npc->setY($this->getY());
         $npc->setPosicao(POSICAO_EM_PE);
         $this->personagem = $npc;
     } else {
         $this->personagem = null;
     }
     $id_mapa_entrada = intval($_POST['id_mapa_entrada']);
     if ($id_mapa_entrada > 0) {
         $this->id_mapa_entrada = $id_mapa_entrada;
     } else {
         $this->id_mapa_entrada = null;
     }
 }
<?php

require 'common.inc.php';
$regraPersonagem = new Personagem();
$regraItem = new Item();
$personagem = $regraPersonagem->pegar(ID_PERSONAGEM);
$GLOBALS['_personagem'] = $personagem;
$urlPersonagem = '/' . strtolower(sanitize_slug($personagem->nome)) . '_' . $personagem->id_personagem;
//var_dump($_GET);
if (array_key_exists('up', $_GET)) {
    $regraPersonagem->subirAtributo($personagem->id_personagem, $_GET['up']);
    $GLOBALS['_personagem'] = $regraPersonagem->pegar(ID_PERSONAGEM);
}
if (count($_POST) > 0) {
    if (array_key_exists('acao', $_POST) && $_POST['acao'] == 'personagem-novo') {
        $personagem = $regraPersonagem->pegarDoPost();
        $id_personagem = $regraPersonagem->inserir($personagem);
        $url = strtolower(sanitize_slug($personagem->nome)) . '_' . $id_personagem . '/upgrade';
        header('Location: ' . $url);
        exit;
    }
}
require 'header.inc.php';
require 'menu-principal.inc.php';
require 'personagem-modal.inc.php';
?>
<div class="container" style="margin-top: 80px">
    <div class="row">
        <div class="col-md-3">
            <?php 
require 'login.inc.php';
Example #7
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;
 }
 public function trabalhar($id_personagem, $id_construcao, $slug, $turno)
 {
     //var_dump($id_personagem, $id_construcao, $slug, $turno);
     $mensagens = array();
     $regraPersonagem = new Personagem();
     $personagem = $regraPersonagem->pegar($id_personagem);
     $construcao = $this->pegar($id_construcao);
     if ($construcao->id_personagem != $id_personagem) {
         $construdor = $regraPersonagem->pegar($construcao->id_personagem);
         $ouro = $construdor->ouro;
         //var_dump($construdor);
     }
     $nh = $personagem->pericias[$slug]->nh;
     $turno = $personagem->turno;
     $maximo = $construcao->teste[$slug]->maximo - $construcao->teste[$slug]->quantidade;
     $sucessos = 0;
     for ($i = 0; $i < 10; $i++) {
         if ($turno <= 0) {
             $mensagens[] = 'A quantidade de turnos acabou.';
             break;
         }
         if ($construcao->id_personagem != $id_personagem) {
             $ouro -= VALOR_TRABALHO;
             if ($ouro < 0) {
                 $mensagens[] = 'Seu ouro acabou.';
                 break;
             }
             $regraPersonagem->gastarOuro($construcao->id_personagem, VALOR_TRABALHO);
             $regraPersonagem->pagarOuro($id_personagem, VALOR_TRABALHO);
         }
         $sucesso = jogar($nh, 8);
         $mensagem = $personagem->nome . ' testeu ' . $personagem->pericias[$slug]->nome;
         if ($sucesso > 0) {
             $mensagem .= ' e obteve ' . $sucesso . ' sucesso(s).';
         } elseif ($sucesso == 0) {
             $mensagem .= ' e não obteve nenhum sucesso.';
         } elseif ($sucesso < 0) {
             $mensagem .= ' e obteve uma falha crítica.';
         }
         if ($construcao->id_personagem != $id_personagem) {
             $mensagem .= ' Você pagou ' . VALOR_TRABALHO . ' gold pelo trabalho.';
         }
         $sucessos += $sucesso;
         $regraPersonagem->gastarTurno($id_personagem, 1);
         $turno--;
         $this->adicionarPericia($id_construcao, $slug, $sucesso);
         if ($sucessos >= $maximo) {
             $mensagens[] = 'Essa parte da obra foi concluída.';
             break;
         }
         $mensagens[] = $mensagem;
     }
     $this->verificar($id_construcao);
     return $mensagens;
 }
Example #9
0
        $area = Mapa::getArea($x, $y);
        if (!is_null($area)) {
            $area->setPersonagem(null);
        }
    }
}
/*
Mapa::getArea(7, 1)->setLado(5, AREA_PAREDE);
Mapa::getArea(6, 2)->setLado(5, AREA_PAREDE);
Mapa::getArea(5, 2)->setLado(5, AREA_PAREDE);
Mapa::getArea(4, 3)->setLado(5, AREA_PAREDE);
*/
Mapa::getArea(7, 3)->setLado(2, AREA_PAREDE);
$ogro = Personagem::pegar(10);
$ogro->setSentido(2);
$heroi = Personagem::pegar(1);
$heroi->setSentido(2);
Mapa::getArea(7, 3)->setPersonagem($ogro);
Mapa::getArea(2, 1)->setPersonagem($heroi);
$linha = Mapa::linha($heroi->getPos(), $ogro->getPos());
foreach ($linha as $area) {
    $area = Mapa::getArea($area->x, $area->y);
    if (!is_null($area)) {
        $area->setCor(array(107, 68, 35));
    }
}
echo Mapa::estaVendo($heroi, $ogro) . "<br />";
/*
for ($x=0; $x < Mapa::getMapWidth(); $x++) {
   for ($y=0; $y < Mapa::getMapHeight(); $y++) {
       $area = Mapa::getArea($x, $y);
Example #10
0
    $x = intval($_POST['x']);
    $y = intval($_POST['y']);
    $queda = intval($_POST['queda']);
    $luz = intval($_POST['luz']);
    $id_npc = intval($_POST['id_npc']);
    $sentido = intval($_POST['sentido']);
    $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']));
    $area->setEntrada($_POST['entrada'] == '1' ? true : false);
    $area->limparPessoa();
    if ($id_npc > 0) {
        $npc = Personagem::pegar($id_npc);
        $npc->setSentido($sentido);
        $area->adicionarPessoa($npc);
        $npc->setCodSituacao(ATIVO);
    }
    Mapa::alterarEstrutura();
    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');
    echo Mapa::getAreaJsonByPos($x, $y);