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

lord320

Silver Member
  • Total de Posts

    383
  • Registro em

  • Última visita

  • WCoins

    175

Tudo que lord320 postou

  1. Disponha isso é só a ponta do iceberg chamado wyd mas espero que tenha sido de grande valia. Estou sempre a disposição
  2. Bom creio que vídeo sobre cada coisa você não irá achar até porque a área de wyd é bem fechada para algumas coisas, porém se cada um contribuir com conhecimento que tem o colega ae pode ser ajudado. Falarei sobre a versão que utilizo, 7.62. 1. Estrutura de Pastas e suas Funções no Servidor WYD: - Uma análise detalhada da estrutura de pastas típica de um servidor WYD. - Descrição das funções de pastas essenciais, como "release", "source", "client", entre outras relevantes para o funcionamento do servidor WYD. - Exemplos práticos de como cada pasta contribui para o correto funcionamento do servidor WYD. Release: Pasta que contém os arquivos do servidor, parte física. Source: Pasta que contém os arquivos da parte lógica do servidor. Client: Pasta que contém os arquivos que capacitam o player a logar e usufruir de tudo que o seu servidor dispõe. Common, Dbsrv, Tmsrv; Common: Contém os arquivos de uso comum do servidor como itemlist, skilldata, arquivos de guild e entre outras coisas como pastas de envio de donate itens e mais, nela você coloca tudo que for utilizar em conjunto de Dbsrv e Tmsrv. Dbsrv: Seria a Data Base ou o Banco de Dados, contém as contas, os personagens e os mobs que são utilizados para criar um novo personagem, logs de experiência e quantidade de itens que o jogo possui. Basicamente nela você trata tudo sobre as contas de necessidade de remover tal item das contas ou adicionar tal item as contas. Apagar personagem, login senha e senha 2 da conta. Tmsrv: Seria o canal do servidor em si, caso queria abrir outro canal precisa de dois desses, Contém os mobs do jogo, logs de o que acontece no jogo de login a apagar um item, onde os mobs irão nascer seja eles de forma comum ou apenas gerados em momentos específicos o que conhecemos como "Boss", contém os mobs e npcs do jogo. Como funciona: a Data Base é ligada ao canal do servidor e ambos usam o comum de acordo com a necessiade programada. 2. Utilização de Clientes de Diferentes Versões em Servidores WYD: - Orientações específicas sobre como integrar clientes de diferentes versões ao servidor WYD. - Explicação detalhada sobre a compatibilidade entre diferentes versões de clientes e servidores WYD. - Estratégias para garantir a estabilidade e a integridade do servidor WYD ao lidar com clientes de diferentes versões. O ideal é trabalhar com um único cliente, mas se for pra trabalhar com vários, você tem que primeiro ter a source de cada um e adaptar a source do servidor as diferenças de acordo com o client em uso Basicamente não existe compatibilidade entre um cliente e outro porque ambos possuem diferenças gritantes as vezes tanto de estrutura quanto a linguagem em que foram programados e a forma que foram. Para garantir estabilidade seja fidedigno na programação dos clientes. 3. Importância da Compilação do Sistema: - Esclarecimento sobre o processo de compilação do sistema do servidor WYD e sua relevância para o funcionamento adequado. - Explicação dos benefícios de compilar o sistema, como otimização de desempenho, correção de erros e garantia de segurança. - Passos detalhados sobre como realizar o processo de compilação de forma eficiente e eficaz. O processo de compilação nada mais é que a junção dos códigos escritos e a transformação deles em um arquivo executável(lógico) para o Sistema Operacional e Arquitetura orientados nas configurações do projeto. Benefícios não existem, não é como um upgrade de memória em um computador por exemplo, o que você pode fazer é corrigir os erros e contornar brechas para que seu jogo seja mais estável e funcional possível dentro dos conhecimentos e habilidades existentes em você. O processo de compilação é eficiente quando existem poucas poucas alterações ou não houveram alterações em arquivos e Cabecalho(.h) que são de uso global(utilizado várias vezes no projeto) O processo de compilação é eficaz quando não exitem erros de paramêtros ou erros de tipificação ou até mesmo a famosa falta do ";" O processo de compilação NO VISUAL STUDIO(Software utilizado no desenvolvimento de wyd) É dividido entre a compilação e a recompilação Compilação: PROCESSO SIMPLES E RÁPIDO DE TRANSFORMAÇÃO DO LÓGICO EM PRÁTICO(.EXE) Recompilação: PROCESSO COMPLEXO E MAIS EXTENSO DE TRANSFORMAÇÃO DO LÓGICO EM PRÁTICO(.EXE) 4. Cliver: O Que é e Como Alterar? - Definição e explicação sobre o conceito de "Cliver" no contexto do servidor WYD. - Orientações passo a passo sobre como alterar o "Cliver" e sua importância para o funcionamento do servidor. Cliver é o que chamamos de porta do client. Altera-se ou no executável ou no hook, é por onde o client comunica-se com o canal(Tmsrv).
  3. if (now.tm_hour == 0) { #define DOMINGO 0// apenas por questão de segurança verificar se o domingo original é 0 mesmo... if (now.tm_wday == SABADO && !sServer.BonusEXP) { SendNotice("+ + + Double Exp ativada+ + +"); sServer.BonusEXP = 200; } if (now.tm_wday == DOMINGO && sServer.BonusEXP) { SendNotice("+ + + Double Exp desativada+ + +"); sServer.BonusEXP = 0; } }
  4. lord320

    POT NO MACRO

    analisa a função no processSecMinTimer.cpp
  5. O que necessariamente seria a correção? O que está acontecendo seja específico.
  6. DoTeleport é a função. Linha de raciocínio: Quero fazer x coisa, o que ou quem no jogo já faz isso, ctrl+f e pesquisa tal coisa ou quem seja item ou mob. Se for item é no useitem.cpp se for mob é Quest.cpp. Tá tudo escrito basta ler e quebrar um pouco a cabeça.
  7. Drop Item Event Settings://Configurações Global de evento evindex 0 // Tipo de Evento ex 1, 2 e 3 evdelete 0 // Se ao fim do evento os itens requeridos poder ser deletados evon 0 // Se o evento está ativo ou não evitem 0 // Item que irá dropar de maneira global evrate 0 // Taxa de queda ou drop do item evstart 0 0 0 1 //Quantindade inical, Quantindade atual , limite de item do evento dropado e se envia a notícia de drop Etc Event Settings:// Configurações ademais double 0 // Ativa e Desativa o Double Exp deadpoint 1 //Ativa e Desativa a perca de exp ao morrer em zonas pvp dungeonevent 1 //Ativa e Desativa o Evento da zona Dungueon "Nativo" statsapphire 30 //Configuração de safiras para o rei requerer x quantidade. battleroyal 413 // Item de recompensa para o Battle Royale "Nativo". Billing Settings: billmode 0 // Não tenho conhecimento preciso sobre mas ao que parece está envolvido com o nível mínimo < 36 freeexp 35 // Nível mínimo para permanencia na área newbie charselbill 0 // Não tenho conhecimento preciso sobre mas ao que parece está envolvido com o nível mínimo < 36 potioncount 10 // Limite de compra de poção naquele Carbuncle_Merc partybonus 100 // Quantidade de bonus o grupo, seria como a quantidade de exp cada membro do grupo deve receber guildboard 0 // Está ligado ao item 446 mas não estudei sobre a função em si. Item Drop Bonus Settings:// Determina a quantidade da taxa de drop dos slots do mob 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 Treasure Settings:// Configuração de evento Dragão de armia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Etc Settings://Mais configurações ademais partydif 250 // Quantidade de nível em que considera-se diferencia de nível kefrastatus 0 // Se o Kefra está morto Ele recebe o id da guild, também se vivo 0, também responsável por mandar a mensagem de login da guild referente que matou o kefra GTorreHour 0 // Hora da guerra de torre RVRHour 0// Hora de Rvr DropItem 0// Se os itens podem ser jogados no chão 1 para sim e 0 para não. BRHour 19// Hora do Battle Royale citado lá em cima maxNightmare 3 // Máximo de grupos dentro das áreas de Pesadelo PotionDelay 100// Quantidade de millisegundos entre um pot e outro
  8. Perfeito. "break;" é uma quebra que faz sair do laço que o switch, que também é uma forma de laço ou loop int minlevel = pMob[conn].extra.ClassMaster == MORTAL ? 1 : 1; int maxlevel = pMob[conn].extra.ClassMaster == MORTAL ? 2 : 2; é uma comparação as variáveis min e max recebem o valor de acordo com a variável ClassMaster, caso ela seja igual a mortal Então(?) recebe x valor, senão(:) recebe o outro valor.
  9. Procura sobre o número da skill ou as referências de ban da source
  10. Muito bom! Poderia ser desta forma também, creio que seja mais viável para adicionar intervalos de index maiores que 2 na função: bool LogList(int itemId) { if (!itemId) return false; if (itemId >= 5110 && itemId <= 5133 || itemId >= 2390 && itemId <= 2419 || itemId >= 2442 && itemId <= 2444 || itemId >= 4026 && itemId <= 4029 || itemId >= 3393 && itemId <= 3396) { return true; } int List[] = { 4026, //Moeda 1kk 412, //Poeira_de_Oriharucon 413, //Poeira_de_Lactolerium 1774, //Pedra_do_Sábio 3140, //Pedra_da_Luz 1741, //Alma_da_Fênix 1740, //Alma_do_Unicórnio 1742, //Pedra_da_Imortalidade }; for (int i = 0; i < (sizeof(List) / 4); i++) { if (itemId == List) return true; } return false; }
  11. Procure por if (!AtWar) no arquivo mobkilled aí lá tem a pedra de cp if (LostPk){ sprintf(temp, g_pMessageStringTable[_DD_PKPointMinus], killer_pkpoint - 75, -LostPk); SendClientMessage(conn, temp); } Aí ou você trabalha com a coordenada do personagem ou com o diâmetro do mapa que é coordenada / 128 == x
  12. 666,Poder_Superior,984.0,255.0.0.0.0,0,0,0,0,0,EF_GRID,0,EF_CLASS,255,EF_VOLATILE,31 Basta adicionar isso na itemlist
  13. lord320

    Rand

    Olá a todos, O título é bem simples e creio que a explicação também. O Termo rand deriva de random que quer dizer aleatório, mas muitas das vezes não entendemos direito como realmente funciona. Geralmente utilizamos em eventos, funções e itens, nesse caso peguei alguns itens muito conhecidos até mesmo para facilitar a explicação. Nesse caso os itens seriam as Pedras de Mob que nos trás as pedras para a composição do sephiroth Tabela usada como base Seguindo a tabela me deparei com o erro que é bem chatinho que consiste em vir apenas x item e nesse caso era a pedra da inteligência então fui a escrita o rand começa do 0 e vai até o limite que você definir geralmente EU inicio ele como: int rd = rand() % 100; Mas nem sempre é necessário ser até 100 pode ser menos ou mais depende do que você deseja fazer. Retomando, comecei a escrever tentando entender o porque disso e passei meus logs e etc e percebi que eu estava definindo de maneira errônea o rand É interessante ressaltar que a utilização de rand individual para funções que utilizam mais de uma vez o rand mesmo é o ideal. Exemplo: Errada: if (dest->sIndex == 1752)//Orc Tropper { if (__rd <= 3) { NextPedra = 1747;//Abismo } else if (__rd > 3 && __rd <= 12) { NextPedra = 1746;//Misericórdia } else if (__rd > 13 && __rd <= 24) { NextPedra = 1745;//Sabedoria } else { NextPedra = 1744;//Inteligencia } } Porque o rand é pra determinar que x coisa pode acontecer caso ele esteja dentro do limite condicionado, porém se você determina que se rd <= 3 você dize que são 4 chances e não são 3% e sim 4 da mesma forma que se o rd >3 e <=12 não são 12% e sim 8% e assim sucessivamente logo todo o código perde o sentido e o rand fica desproporcional. Segue a forma correta. Correta: if (dest->sIndex == 1752)//Orc Tropper { int __rd = rand() % 94;//Utilizado dessa forma pois eu reconfigurei a minha função pois antes utilizava um rand geral. E como disse não existe a necessidade de ser 100% if (__rd <= 2) { NextPedra = 1747;//Abismo } else if (__rd >= 3 && __rd <= 14) { NextPedra = 1746;//Misericórdia } else if (__rd >= 15 && __rd <= 38) { NextPedra = 1745;//Sabedoria } else { NextPedra = 1744;//Inteligencia } } Aqui podemos ver o seguinte: sendo 3 12 ou 24, determinamos que isso pode ocorrer em 3, 12 ou 24 diferentes casos. O estudo para saber qual seria o rand correto. Pedra Lord Orc { 0 1 2 //Abismo 3 4 5 6 7 8 9 10 11 12 13 14//Misericórdia 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38//Sabedoria 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94;//Inteligencia } Pedra Esqueleto { 0 1 2 3 //Abismo 4 5 6 7 8 9 10 11 12 13//Misericórdia 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 //Inteligencia 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89//Sabedoria } Pedra Dragão Lich{ 0 1 2 //Inteligencia 3 4 5 6 7 8 9 10 11//Abismo 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 //Sabedoria 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84//Misericórdia } Pedra do Demonlord{ 0 1 2//Inteligencia 3 4 5 6 7 8 9//Sabedoria 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24//Misericórdia 25 26 27 38 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79//Abismo } Pedra da Manticora{ 0 1 //Reino 2 3 4 5 6 7//Originalidade 8 9 10 11 12 12 14 15 16 17 18 19//Vitória 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69//Beleza } A partir daqui pecebi que os últimos 5 que seriam o rand de 50 seria o último número do 3 +10 e assim sucessivamente então por isso aqui reduziu. Pedra do Gargula de Fogo{ 0 1//Reino 2 3 4 5//Originalidade 6 7 8 9 10 11 12 13 14//Beleza 24 34 44 54 64// Vitória } Pedra do Lugefer{ 0 1//Beleza 2 3 4 5//Reino 6 7 8 9 10 11// Vitória 21 31 41 51 61//Originalidade } Pedra do Rei Demonlord{ 0 1//Beleza 2 3 4// Vitória 5 6 7 8 9 //Originalidade 19 29 39 49 59//Reino } Esse tópico tem única e exclusivamente a intenção de ajudar na compreensão do sistema randômico do wyd, se acha que está errado e consegue corrigir assim o faça de maneira que não seja com insultos palavrões ou desdenho, se não consegue corrigir mantenha-se neutro e caso esse tópico não seja interessante a você ou julgue errado, evite quaisquer tipo de comentário desnecessário, Desde já um beijo!
  14. Top, mas teria que ter o tratamento das cidades de Erion e Karden que são Guerras de Mortais e Arch's respectivamente. OBS: O TRATAMENTO PODE OCORRER EM OUTRO LUGAR....
  15. Veja bem amigo, confira se o index realmente é esse, ao iniciar a tm o arquivo, .new é atualizado com os index corretos(recalculados).
  16. Isso é a reprodução do visual pelo seu processador, isso só corrige se você forçar o gráfico para 3d ou com dll ou com hook.
  17. 8192 É O LIMITE DE INDEX, SÓ NÃO SEI LHE DIZER O PORQUE.
×
×
  • 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.