Ir para conteúdo
Faça parte da equipe! (2024) ×

BnkBrum

Steel Member
  • Total de Posts

    63
  • Registro em

  • Última visita

  • Dias Ganhos

    2
  • WCoins

    46

BnkBrum ganhou no último dia 1 de Janeiro 2021

BnkBrum teve o conteúdo mais curtida!

5 Seguidores

  • ubnt:ubnt
  • mtimaoxd
  • smokernavega
  • gary2
  • JosueChagas

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

BnkBrum's Achievements

Contribuidor

Contribuidor (4/15)

  • Usuário Notório Rara
  • Olá, mundo!
  • Terceirão Rara
  • Notado Rara
  • Agora que já nos conhecemos... Rara

Emblemas Recentes

207

Reputação

  1. BnkBrum

    Log Seletivo

    Alguns tipos de logs gerados são um verdadeiro pesadelo. O log de itens dropados por exemplo, é floodado por itens "lixo" como sets e armas A, B, etc... Uma função que possibilita ser seletivo quanto a qual log gerar, é excepcional para evitar longos arquivos de logs. Dessa forma, pode-se escolher quais itens você deseja que o log seja gerado: if (LogList(ItemDrop->sIndex) == true) { snprintf(temp, sizeof(temp), "MobName:%s dropou o item: %s:%d %d.%d.%d.%d.%d.%d do mob:%s", pMob[conn].MOB.MobName, g_pItemList[ItemDrop->sIndex].Name, ItemDrop->sIndex, ItemDrop->stEffect[0].cEffect, ItemDrop->stEffect[0].cValue, ItemDrop->stEffect[1].cEffect, ItemDrop->stEffect[1].cValue, ItemDrop->stEffect[2].cEffect, ItemDrop->stEffect[2].cValue, pMob[target].MOB.MobName); MobDropLog(pUser[conn].AccountName, pUser[conn].MacAddress, pUser[conn].IP, temp); } Basta alimentar o LogList com o id do item. Que ele irá fazer a leitura dentro da lista abaixo: bool LogList(int itemId) { int List[] = { 4026, //Moeda 1kk 412, //Poeira_de_Oriharucon 413, //Poeira_de_Lactolerium 1774, //Pedra_do_Sábio 2441, //Diamante 2442, //Esmeralda 2443, //Coral 2444, //Garnet 3140, //Pedra_da_Luz 2399, //Âmago_de_Cavalo_Equip_N 2404, //Âmago_de_Cavalo_Equip_B 2400, //Âmago_de_Andaluz_N 2405, //Âmago_de_Andaluz_B 2411, //Âmago_de_Unicórnio 2412, //Âmago_de_Pégasus 2413, //Âmago_de_Unisus 2414, //Âmago_de_Grifo 2416, //Âmago_de_Grifo_Sang 2417, //Âmago_de_Svadilfari 2418, //Âmago_de_Sleipnir 2409, //Âmago_de_Tigre_de_Fogo 2410, //Âmago_de_Dragão_Verm 1741, //Alma_da_Fênix 1740, //Alma_do_Unicórnio 1742, //Pedra_da_Imortalidade 5110, //Ansuz 5111, //Uraz 5112, //Thurisaz 5113, //Fehu 5114, //Raidho 5115, //Kenaz 5116, //Naudhiz 5117, //Gebo 5118, //Wunjo 5119, //Hagalaz 5120, //Isa 5121, //Jara 5122, //Eihwaz 5123, //Perthro 5124, //Elhaz 5125, //Sowilo 5126, //Berkano 5127, //Ehwaz 5128, //Tiwaz 5129, //Mannaz 5130, //Laguz 5131, //Dagaz 5132, //Ing 5133, //Othel }; for (int i = 0; i < (sizeof(List) / 4); i++) { if (itemId == List[i]) return true; } return false; } Para adicionar novos itens, basta adiciona-lo à lista. Não havendo necessidade de alterar nenhuma outra parte do código
  2. Creio que muitos já sabem como fazer esse sistema. Mas alguns podem ainda ter alguma dificuldade pra fazer um filtro desses. Segue o código para filtrar caracteres especiais digitados no chat do jogo, permitindo apenas os que são utilizados normalmente (/+-@=) e já limitando a quantidade de caracteres a serem aceitos. Caso a mensagem não esteja dentro do padrão, ela não será processada MSG_MessageWhisper* m = (MSG_MessageWhisper*)pMsg; std::string command{ m->MobName }; std::string message{ m->String }; std::regex int_regex1("^[A-Za-zÀ-ú0-9/+ =-@_^~]{0,16}$"); std::regex int_regex2("^[A-Za-zÀ-ú0-9/+ =-@_^~]{0,100}$"); if (!std::regex_match(command, int_regex1)) return; if (!std::regex_match(message, int_regex2)) return;
  3. Fiz essa função para gerar uma "senha" aleatória de 5 digitos, utilizando numeros e letras maiúsculas, a fim de criar uma chave "pix" para ser utilizado em um sistema de envio de donate do servidor. Onde o jogador inseria a chave pix de outro e enviava o donate para o mesmo. Achei interessante postar caso alguém queira utilizar em uma função parecida ou em outras questões: #include <iostream> #include <string> #include <cstdlib> #include <ctime> using namespace std; string gerar_senha() { const string caracteres = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; const int TAMANHO_SENHA = 5; string senha; // Inicializa o gerador de números aleatórios srand(time(nullptr)); // Gera a senha com caracteres aleatórios for (int i = 0; i < TAMANHO_SENHA; i++) { int indice_aleatorio = rand() % caracteres.length(); senha += caracteres[indice_aleatorio]; } return senha; }
  4. Eu fiz uma implementação parecida: #include <iostream> #include <random> int NumbGen(int Initial, int Final) { static std::mt19937 rng(std::random_device{}()); static std::uniform_int_distribution<int> dist(Initial, Final); return dist(rng); } Basta definir o numero inicial e o número final a ser gerado. Exemplo: se quer um numero entre 0 e 100 basta usar: NumbGen(0,100)
×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.