BnkBrum ganhou no último dia 1 de Janeiro 2021
BnkBrum teve o conteúdo mais curtida!
5 Seguidores
Últimos Visitantes
O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.
BnkBrum's Achievements
-
JosueChagas começou a seguir BnkBrum
-
BnkBrum começou a seguir Random Function , [SOURCE] WYD WARRIORS vrs: Global , Log Seletivo e 2 outros
-
BnkBrum obteve troféu Ouro
-
BnkBrum obteve troféu Prata
-
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
- 4 respostas
-
- 57
-
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;
-
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; }
-
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)
- 6 respostas
-
- 11