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); } } } }
<?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']);
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';
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; }
$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);
$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);