Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Olá a todos, eu fiz um talking acction com o god apenas para estatistica do server. Consegui pegar qualquer coluna da tabela, com o getDataString, porem não consigo pegar a quantidade de rows afetados..

O select em questão é esse. 

db.getResult("SELECT * FROM `players` where `created` > unix_timestamp(CURRENT_TIMESTAMP()) - 86400;") -- (com esse select vc pega os ultimos jogadores criados nas ultimas 24 horas)

 

e eu fiz a lista com os nomes dos jogadores utilizando 

getDataString("name") 

 

Mas não consigo pegar a quantidade total de jogadores novos .  Alguem pode me ajudar? Grato desde ja.

Link para o post
Compartilhar em outros sites
2 minutos atrás, Dwarfer disse:

db.getResult("SELECT COUNT(*) FROM `players` where `created` > unix_timestamp(CURRENT_TIMESTAMP()) - 86400;")

 

Obrigado pela atenção, então eu tentei com o count mas eu não consegui achar o parametro pra pegar ele no getDataString() .

Link para o post
Compartilhar em outros sites

Ah, entendi sua dúvida. Assim:

local total = db.getResult("SELECT COUNT(*) as count FROM `players` where `created` > unix_timestamp(CURRENT_TIMESTAMP()) - 86400;")

doPlayerSendTextMessage(cid, 18, total:getDataInt("count"))

Contato:

 

Link para o post
Compartilhar em outros sites
10 minutos atrás, Dwarfer disse:

Ah, entendi sua dúvida. Assim:

local total = db.getResult("SELECT COUNT(*) as count FROM `players` where `created` > unix_timestamp(CURRENT_TIMESTAMP()) - 86400;")

doPlayerSendTextMessage(cid, 18, total:getDataInt("count"))

Vlw amigo deu certo.

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por Imperius
      O propósito é criar uma nova função em creaturescripts que será acionada toda vez que um novo report (CTRL + R) for aberto.
       
      Eu implementei para enviar uma notificação no grupo do Telegram, contendo os dados do report.
       
      Isso garantirá que os GMs tenham acesso aos reports dos jogadores mesmo quando não estiverem logados, e também evitará que algum report seja perdido caso o jogador saia do servidor.
      A parte do Telegram é apenas um exemplo. Você pode ajustar o script para executar outras ações desejadas.
       
      creatureevent.cpp:
      Dentro deste arquivo, localize a função:
       
      uint32_t CreatureEvent::executeChannelLeave(Player* player, uint16_t channelId, UsersMap usersMap)  
      abaixo dela, adicione:
       
      uint32_t CreatureEvent::executeOpenRuleViolation(Player* player, std::string message) { if (!m_interface->reserveEnv()) { std::clog << "[Error - CreatureEvent::executeOpenRuleViolation] Call stack overflow." << std::endl; return 0; } ScriptEnviroment* env = m_interface->getEnv(); env->setScriptId(m_scriptId, m_interface); lua_State* L = m_interface->getState(); m_interface->pushFunction(m_scriptId); lua_pushnumber(L, env->addThing(player)); lua_pushstring(L, message.c_str()); bool result = m_interface->callFunction(2); m_interface->releaseEnv(); return result; }  
      Após, procure por:
       
      std::string CreatureEvent::getScriptEventName() const  
      abaixo de:
       
      case CREATURE_EVENT_CHANNEL_LEAVE: return "onLeaveChannel";  
      adicione:
       
      case CREATURE_EVENT_OPEN_RULE_VIOLATION: return "onOpenRuleViolation";  
      Agora, procure por:
       
      std::string CreatureEvent::getScriptEventParams() const  
      abaixo de:
       
      case CREATURE_EVENT_CHANNEL_LEAVE: return "cid, channel, users";  
      adicione:
       
      case CREATURE_EVENT_OPEN_RULE_VIOLATION: return "cid, message";  
      Procure por:
       
      bool CreatureEvent::configureEvent(xmlNodePtr p)  
      abaixo de:
       
      else if(tmpStr == "leavechannel") m_type = CREATURE_EVENT_CHANNEL_LEAVE;  
      adicione:
       
      else if(tmpStr == "openruleviolation") m_type = CREATURE_EVENT_OPEN_RULE_VIOLATION;  
       
      creatureevent.h:
      Dentro deste arquivo, localize:
       
      enum CreatureEventType_t  
      adicione "CREATURE_EVENT_OPEN_RULE_VIOLATION" como o último item de enum CreatureEventType_t
       
      Exemplo:
       
      enum CreatureEventType_t { // ... CREATURE_EVENT_OPEN_RULE_VIOLATION };  
      Agora, procure por:
       
      uint32_t executeChannelLeave(Player* player, uint16_t channelId, UsersMap usersMap);  
      abaixo dela, adicione:
       
      uint32_t executeOpenRuleViolation(Player* player, std::string message);  
      game.cpp:
      Dentro deste arquivo, localize:
       
      bool Game::playerReportRuleViolation(Player* player, const std::string& text)  
      e substitua por:
       
      bool Game::playerReportRuleViolation(Player* player, const std::string& text) { //Do not allow reports on multiclones worlds since reports are name-based if(g_config.getNumber(ConfigManager::ALLOW_CLONES)) { player->sendTextMessage(MSG_INFO_DESCR, "Rule violation reports are disabled."); return false; } cancelRuleViolation(player); boost::shared_ptr<RuleViolation> rvr(new RuleViolation(player, text, time(NULL))); ruleViolations[player->getID()] = rvr; ChatChannel* channel = g_chat.getChannelById(CHANNEL_RVR); if(!channel) return false; for(UsersMap::const_iterator it = channel->getUsers().begin(); it != channel->getUsers().end(); ++it) it->second->sendToChannel(player, SPEAK_RVR_CHANNEL, text, CHANNEL_RVR, rvr->time); CreatureEventList joinEvents = player->getCreatureEvents(CREATURE_EVENT_OPEN_RULE_VIOLATION); for(CreatureEventList::iterator it = joinEvents.begin(); it != joinEvents.end(); ++it) (*it)->executeOpenRuleViolation(player, text); return true; }  
      Agora é só compilar a source.
       
      depois em "data > creaturescripts > creaturescripts.xml", adicione:
       
      <event type="login" name="loginNotifyRuleViolation" script="notifyRuleViolation.lua"/> <event type="openruleviolation" name="openNotifyRuleViolation" script="notifyRuleViolation.lua"/>  
      em "data > creaturescripts > scripts", crie um arquivo notifyRuleViolation.lua e adicione:
       
      function onOpenRuleViolation(cid, message) local config = { token = "", -- Token do seu BOT no Telegram chatId = "" -- ID do chat do Telegram que será enviado a notificação. } local message = "Player: "..getCreatureName(cid).."\n\nReport:\n"..message.."" message = string.gsub(message, "\n", "%%0A") local url = "https://api.telegram.org/bot"..config.token.."/sendMessage" local data = "chat_id="..config.chatId.."&text="..message.."" local curl = io.popen('curl -d "'..data..'" "'..url..'"'):read("*a") return true end function onLogin(cid) registerCreatureEvent(cid, "openNotifyRuleViolation") return true end  
       
      Demonstração:
      1. Jogador abre um novo report (CTRL + R)

      2. notifyRuleViolation.lua, definido em creaturescripts.xml, é acionado para enviar uma notificação ao grupo do Telegram.
       

       
    • Por luanluciano93
      Olá, esse tutorial é uma parte do tópico principal: "Tutorial completo de infraestrutura para montar um servidor TFS 1.x no Ubuntu 22.04" ... 

      Ele faz parte da 2º instalação da pilha LEMP no Ubuntu 22.04: a MariaDB.
       
      PASSO 1 - COMO INSTALAR O SERVIDOR DE BANCO DE DADOS MariaDB
       
      O MariaDB é um sistema de gerenciamento de banco de dados de código aberto, usado com frequência como uma alternativa ao MySQL. Ele é desenvolvido por ex-membros da equipe do MySQL que estão preocupados que o Oracle possa transformar o MySQL em um produto de código fechado.

      Digite o seguinte comando para instalar o MariaDB no Ubuntu 22.04, após iniciar, é necessário digitar Y para prosseguir ... 
      sudo apt install mariadb-server Depois de instalado, o servidor MariaDB deve ser automaticamente visualizado.
       
      Use o comando a seguir para verificar seu status: 
      sudo systemctl status mariadb Irá aparecer o seguinte resultado:

       
      Como vocês podem ver em verde: active (running), ou seja, está ativo e funcionando.
       
      Você pode também conferir a versão do MariaDB instalado com o comando: 
      mariadb --version Eu obtive como resposta em 05JUL22: mariadb Ver 15.1 Distrib 10.6.7-MariaDB
       
      PASSO 2 - CONFIGURANDO O MARIADB
       
      O próximo passo será executar o script de segurança incluído. Esse script modifica algumas das opções padrões menos seguras referentes, por exemplo, a logins root remotos e usuários de exemplo.
       
      Execute o script de segurança:
      sudo mysql_secure_installation Isso levará você a uma série de prompts onde é possível fazer algumas alterações nas opções de segurança de sua instalação do MariaDB.

      O primeiro prompt pedirá que digite a senha atual do root do banco de dados. Como ainda não configuramos uma senha, pressione ENTER para indicar “nenhuma”,

       
      Em seguida, o sistema irá perguntar se você quer usar o unix_socket, pois ele garante que ninguém possa fazer o login no usuário root do MARIADB sem a devida autorização. Digite que sim (Y)

      Ativar a autenticação unix_socket? [S/n]
       
      Em seguida, digite Y para definir a senha raiz do servidor MariaDB.


      ATENÇÃO: A SENHA QUE VOCÊ DEFINIR SERÁ A SENHA DO SERVIDOR SQL, ELA SERÁ USADA PARA CONEXÃO DO  SITE E DO SERVIDOR AO BANCO DE DADOS! GUARDE-A BEM!

      Em seguida, você pode pressionar ENTER (com ENTER é escolhido a resposta padrão, que sempre é mostrada em maiúsculo. Nesse caso será o Y) para responder a todas as perguntas restantes:


      - Remover usuários anônimos? [Sim/n]
      - Não permitir login root remotamente? [Sim/n]
      - Remover banco de dados de teste e acesso a ele? [Sim/n]
      - Recarregar as tabelas de privilégios garantirá que todas as alterações feitas até agora entrará em vigor imediatamente. Recarregar tabelas de privilégios agora?  [Sim/n]

      Esta etapa é um requisito básico para a segurança do banco de dados MariaDB.
       
      A princípio é isso!
       
      Siga as atualizações no tópico principal: "Tutorial completo de infraestrutura para montar um servidor TFS 1.x no Ubuntu 22.04" ... 
       
       
      Fontes:
      - https://conectandonet.com.br/blog/como-instalar-a-pilha-lemp-no-ubuntu-20-04-server-desktop/
      - https://www.digitalocean.com/community/tutorials/how-to-install-mariadb-on-ubuntu-20-04-pt
       
       
       
       
       
       
    • Por L3K0T
      Olá galera, hoje vim trazer para vocês alguns comandos uteis, pra serem executados no seu banco de dados "Mysql" lá aonde guarda todas as informações do jogo. *"execute o comando, mais antes faça o backup da sua Data Base e lembrando faça isso com o servidor desligado"
       
       
      1° UPDATE `accounts` SET premdays = 0, lastday = 0; - Remove todos os dias VIP ou P.A de todos os players. .
      UPDATE `accounts` SET premdays = 0, lastday = 0;  
      2° UPDATE `accounts` SET `premdays` = `premdays` + 7; - Adiciona +7 dias de VIP ou P.A para todos os players.
      UPDATE `accounts` SET `premdays` = `premdays` + 7;  
      3° UPDATE `players` SET `posx` = 111, `posy` = 222, `posz` = 7; - Manda todos mundo para certa posição do mapa.
      UPDATE `players` SET `posx` = 111, `posy` = 222, `posz` = 7;  
      4° UPDATE `players` SET `blessings` = 0; - Limpa todas as bless de todos os players e se no lugar do 0 você por 31 você adiciona todas as bless;
      UPDATE `players` SET `blessings` = 0;  
      5° DELETE FROM `player_deaths`, `killers`, `player_killers`, `environment_killers`; - Limpa todo o histórico de morte dos players.
      DELETE FROM `player_deaths`, `killers`, `player_killers`, `environment_killers`;  
      6° DELETE FROM `players` WHERE `level` < 50 AND `lastlogin` < UNIX_TIMESTAMP() - 20 * 24 * 60 * 60  - Deleta players que não loga em 20 dias e que são levels -50
      DELETE FROM `players` WHERE `level` < 50 AND `lastlogin` < UNIX_TIMESTAMP() - 20 * 24 * 60 * 60    
      7° UPDATE `players` SET `world_id` = 0; - altera o mundo de todos os players, que é configurado no config.lua do seu servidor, pode 1, 2, 3 etc..
      UPDATE `players` SET `world_id` = 0;  
      8° UPDATE `players` SET `promotion` = 1; - da promotion da vocação para todos os players quando VIP.
      UPDATE `players` SET `promotion` = 1;  
      9° UPDATE `accounts` SET `premiun_points` = `premium_points` +30; - adiciona 30 Premium Points para todos os players.
      UPDATE `accounts` SET `premiun_points` = `premium_points` +30;  
       
      é isso galera, durante os meses eu irei atualizar esse tópico, um multissímo obrigado.
       

    • Por Fir3element
      Reporte qualquer bug encontrado.
       
      - Mudanças:
      * opcode adicionado
      * Monstros andando em cima de corpos
      * War system arrumado
      * Anti-divulgação melhorado
      * Cast system arrumado
      * Crash bugs arrumados
      * Adicionado exhaust ao comprar/vender items
      * Account manager com opção para cidades
      * /ghost stacking arrumado
      * !disband arrumado
      * Erros no linux arrumado
      * Aleta som arrumado
      * Bug nos rings arrumado
      * Adicionado suporte para Visual Studio
      * Remover battle ao entrar em PZ
      * Não pode jogar lixo em casas
      * Salt removido
       
      - Downloads:
      * Distro (x32): https://github.com/Fir3element/binaries/raw/master/x32-windows.zip
      * Distro (x64): https://github.com/Fir3element/binaries/raw/master/x64-windows.zip
      * Requisitos: Microsoft Visual C++ Redistributable Package
      * Source + datapack: https://github.com/Fir3element/3777/archive/refs/heads/main.zip
       
      - Scans:
      * Distro (x32): https://virustotal.com/pt/file/6683a91273b848a39ac21288da9d3abde341436744d6846e35a477c8e7c8f5f7/analysis/1480675335/
      * Distro (x64): https://virustotal.com/pt/file/21028857bb1124f19e0353e7f5775c8f66afc4f87f29df9cf4ab8ca1a046b816/analysis/1480675394/
      * Source + datapack: https://virustotal.com/pt/file/3761b48ee19f3f540d4c4a48c35c73c89a85615876307073494b1dcfed464d36/analysis/1480675473/
    • Por Nightz
      O OT Server Ready (OSR) é um software básico que desenvolvi juntamente com o apoio da 4YouStart feito para auxiliar aqueles que tem mais dificuldade com a parte de infraestrutura.
       
      Veja funcionando:
       
       
      Avisos:
      O software está em BETA. Em caso de qualquer problema envie uma resposta nesse post. Quero lembrar que qualquer cópia dessa postagem sem a devida autorização não é permitida.  
      O OSR instala e configura os seguintes softwares/bibliotecas (visão geral):
       
      - Apache2 - php5 - MySQL 5.5 - phpmyadmin - Todas bibliotecas para compilar/rodar um OT Server O sistema suporta os seguintes sistemas operacionais:
      Debian 7.x Ubuntu 12.x Ubuntu 14.x Para instalar o OT Server Ready, utilize as seguintes instruções:
      Lembrete: utilize-o apenas em um servidor novo, recém formatado.
       
      Para instalar no Debian:
      apt-get update apt-get install -y gcc wget http://scripts.4youstart.com/ot-server-ready-debian chmod 777 ot-server-ready-debian ./ot-server-ready-debian SENHA Para instalar no Ubuntu:
      apt-get update apt-get install -y gcc wget http://scripts.4youstart.com/ot-server-ready-ubuntu chmod 777 ot-server-ready-ubuntu ./ot-server-ready-ubuntu SENHA Substitua a palavra "SENHA" na última linha da instalação pela senha que deseja utilizar no phpmyadmin e MySQL. Recomenda-se que utilize a mesma senha do que a senha do servidor, mas pode utilizar qualquer uma.
       
      Versão atual do Software:
      v0.2 [23/11/2015] Lista de bibliotecas instaladas:
      v0.1: apache2 php5 libapache2-mod-php5 php5-mcrypt mysql-client-5.5 mysql-server-5.5 mysql-common libboost-all-dev libgmp3-dev liblua5.1-0 liblua5.1-0-dev liblua50 liblua50-dev liblualib50 liblualib50-dev lua50 lua5.1 libsqlite0-dev libsqlite3-dev sqlite3 libmysql++-dev libmysqlclient-dev libxml2-dev libxml++2.6-dev cpp gcc g++ make automake autoconf pkg-config subversion liblua5.1-sql-mysql-dev liblua5.1-sql-sqlite3-dev zlib1g-dev zlib1g libcrypto++-dev libcrypto++ libcurl4-openssl-dev phpmyadmin v0.2: zip unzip build-essential libboost-dev libwww-perl ccache libboost-filesystem-dev libboost-regex-dev libboost-system-dev libboost-thread-dev libssl-dev   Façam bom proveito

      Foi anexado ao post o script para ubuntu
      ot-server-ready-ubuntu
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo