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

DwarfDev

Bronze Member
  • Total de Posts

    127
  • Registro em

  • Última visita

  • WCoins

    49

Últimos Visitantes

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

DwarfDev's Achievements

Dedicado

Dedicado (5/15)

  • Terceirão Rara
  • Olá, mundo!
  • Lenda viva! Rara
  • Querido Rara
  • Notado Rara

Emblemas Recentes

925

Reputação

  1. Sem muita enrolação: [Hidden Content] Fique a vontade para fazer o seu Fork e PullRequests. Esse framework foi utilizado para bots em alguns servidores. Se não me engano a source atual ERA utilizada no WYD NIX. Mas provavelmente não funciona mais. Para atender outros servidores ou servidores pessoais você terá que atualizar as structs ou o funcionamento de algum metodo. Essa source contem alguns macros já prontos, como por exemplo: Auto Lan Auto Quest Auto Pot Auto Ration Auto Drop Attack Macro (Skill / Melee / Ranged) Exemplos de implementação Macro skill var skillWorker = new SkillWorker(client) { Skills = new List<GameSkills>() {GameSkills.Inferno, GameSkills.Nevasca}, Id = Guid.NewGuid().ToString() }; skillWorker.Start(); Mover até armia var moveWorker = new MoveWorker(client) { Hpa = true, Destination = new Position() { X = (short)2100, Y = (short)2100 }, Id = Guid.NewGuid().ToString() }; moveWorker.Start(); Auto drop com adicionais: var drops = new List<DropItem>() { new DropItem() { ItemId = 419, // Resto DropActionType = DropActionType.Keep, // Manter DropItemClass = ItemClass.None, // Dropa qualquer classe, D, E etc.. DropItemEfvConfigs = new List<DropItemEfvConfig>() { //Somente se vir pack de 10 ou superior new DropItemEfvConfig() { Efv = GameEfv.EF_AMOUNT, Value = 10 } } } }; var dropWorker = new DropWorker(client, drops); dropWorker.Start(); ReadMe: WYD Framework Visão Geral O WYD Framework em C# é uma poderosa biblioteca que simplifica a comunicação com um servidor do jogo chamado WYD (With Your Destiny). Este framework é construído em C# e utiliza o .NET 7. Ele oferece uma variedade de funcionalidades que permitem a criação de bots e aplicativos para interagir com o jogo de forma automatizada. Funcionalidades Principais O WYD Framework oferece uma série de funcionalidades essenciais para interagir com o servidor do jogo WYD. Algumas das principais funcionalidades incluem: Movimentação do personagem dentro do mundo do jogo. Utilização do chat para comunicação com outros jogadores. Conexão com o servidor do jogo. Manipulação de eventos importantes do objeto WClient, incluindo: PlayerChanged: Evento disparado quando as informações do jogador são alteradas. ScoreUpdated: Evento disparado quando a pontuação do jogador é atualizada. PartyJoined: Evento disparado quando o jogador se junta a uma festa. PartyReceived: Evento disparado quando o jogador recebe um convite para uma festa. PartyLeft: Evento disparado quando o jogador deixa uma festa. LogMessageReceived: Evento disparado quando uma mensagem de log é recebida. ConnectionChanged: Evento disparado quando o estado da conexão é alterado. Como Começar Para criar uma instância do WYD Framework, siga os passos abaixo: Inclua a DLL ou o projeto do WYD Framework em seu projeto C#. Utilize o código a seguir para criar uma nova instância do WClient: var wydClienteConfig = new ClientConfiguration() { Credentials = new ClientCredentials() { Numeric = "1213", Password = "123", Username = "123" }, ConnectionConfiguration = new() { ServerIp = "192.168.2.1", ServerClientVersion = 0x7556, ServerPort = 8281 }, GeneralConfig = new GeneralConfig() { Behavior = new BehaviorConfig() { NotifyGuilded = false, ReviveRandom = true, ReviveAfterSeconds = 1000, TurnoffWorkersOnDeath = true }, Id = Guid.NewGuid().ToString() }, HwidInfo = new HwidInfo() { HardDisk = "", MoboManufacturer = "MSI", MoboName = "B550" }, QuizConfiguration = new QuizConfiguration() { QuestionResponses = new List<QuizQuestionResponse>() { new QuizQuestionResponse() { Question = "Que nivel começa?", Answer = "1" } } } }; var wydCliente = WClient.Build(wydClienteConfig); Agora você está pronto para começar a usar o WYD Framework para interagir com o servidor do jogo WYD de forma automatizada. Requisitos Certifique-se de que seu projeto atenda aos seguintes requisitos: Plataforma .NET 7. Referência à DLL ou ao projeto do WYD Framework. Contribuição Este projeto é de código aberto e aceita contribuições da comunidade. Se você deseja contribuir ou relatar problemas, sinta-se à vontade para fazê-lo no repositório do projeto. Licença Este projeto é distribuído sob a licença MIT. Consulte o arquivo LICENSE para obter detalhes sobre os termos de uso. Este é um projeto em andamento e estamos constantemente trabalhando para melhorá-lo!
  2. Não vou dar suporte, se você não tem ideia de como funcionam essas tecnologias abaixo, recomendo nem entrar em contato: JavaScript / CSS / HTML Docker C# / .Net Tecnologias utilizadas na aplicação: JavaScript / CSS / HTML SvelteKit AWS S3 Docker C# / .Net RavenDB Caso queira, vendo apenas o Framework que abstrai a comunicação com os servidores, e que contem macros, login e etc. Exemplo de implementação com o framework em C#: newClient = new Client(new ClientConfiguration { ProxyConfiguration = proxyConfiguration, QuizConfiguration = new QuizConfiguration { QuestionResponses = session.Query<QuizQuestionResponse>().ToList() }, ConnectionConfiguration = new ConnectionConfiguration { ServerIp = "XX.XXX.XX.XXX", ServerPort = 8281, ServerClientVersion = 7556, ServerForce = 1, Keytable = siteConfig.Keytable }, Credentials = credentialsDb.Adapt<ClientCredentials>(), HwidInfo = credentialsDb.HwidInfo, GeneralConfig = generalConfigDb }); newClient.OwnerId = userDb.Id; newClient.Id = Guid.Parse(credentialsDb.Id); Task.Run(async () => { await newClient.SendConnect(); Task.Delay(100); newClient.SendLogin(); Task.Delay(1000); newClient.SendNumeric(); Task.Delay(1000); if (newClient.Charlist.Charnames.Count(x => !string.IsNullOrEmpty(x)) == 1) newClient.SendWorld(0); }); Funcionamento:
  3. É um pouco chato mesmo... Se não me engano, seu MOB também fica na moblist então é mais fácil você ir procurando a moblist (você vai precisar de qualquer jeito imagino). Lá vai ter a coordenada, hp, nome etc de todos os mobs do jogo inclusive você.
  4. Eu te passei isso em umas respostas acima
  5. Nada hehe. Na verdade os bots mais comuns que andam vendendo por ai é via memória. Mas cada um tem suas peculiaridades: Pros de usar a memória do jogo: - Após pronto é relativamente fácil atualizar os Address, afinal a estrutura do jogo é bem parecida na maioria dos servidores - Costuma funcionar em vários servidores mesmo sem mexer em nada - É possível fazer de duas maneiras: Interno/Externo, sendo interno via injeção de DLL, e externo via leitura/escrita de memória por aplicação externa(dai o nome) - É mais fácil burlar proteções como diferentes criptografias, calculo da keytable etc pois quem vai fazer esse tipo de coisa é o próprio cliente. Contras: - O cliente do jogo é pesado - Apesar de cortar um bom trabalho manual (filtra itens etc), você vai ter limitações com os recursos da propria maquina, afinal o WYD é mal otimizado pros dias de hoje. - Sofre muito com IP Block, afinal fazer tunneling para cada cliente não é uma tarefa muito simples Pros de usar pacote: - Não sofre com IP Block, é relativamente fácil burlar. - É leve, dependendo da implementação você sozinho vira metade do servidor - Há mais espaço para automação do que o cliente Contras: - A manutenção é trabalhosa, sofre muito com qualquer coisa: Update nas structs, na keytable etc. - Para cada servidor pode ter certeza que vai ter que refazer boa parte do codigo. A ideia que você teve de fazer via CV é bem interessante. Tenho algo parecido que filtra itens por adicional/tipo utilizando apenas reconhecimento de imagem e o controle do mouse. Esse pra quem quer algo safe é o melhor que existe. Não interage com o cliente então a chance de ban é bem reduzida. Tem muito conteúdo aqui na WC que vai te ajudar bastante.
  6. É bem simples obter o x,y do jogo. Usa o cheat engine e faz por eliminação. Ex: se está em 2100, pesquisa short 2100 no CE. Mova pra 2101, pesquise 2101, mova pra 2102 pesquise por 2102 e por ai vai. Mas já vou avisando, mover player é uma tarefa um pouco mais trabalhosa via memória. Me salve o engano, você tem que escrever a coordenada para qual deseja mover em uma parte especifica da memória, onde uma espécie de "event loop" do proprio cliente vai acabar lendo em alguma iteração. Em C++ seria o ideal trabalhar com esse tipo de coisa, mas também é possível em C#.
  7. Não tenho problema em comentar hehe. Foram diversas tecnologias pra chegar nesse patamar ai. Comecei esse projeto conversando com o @Maverick. Foi criada uma Framework abstraindo todo o processo de comunicação do Cliente com o Servidor pois a ideia inicial era refazer o Cliente em Unity. Acabou que devido alguns pedidos virou isso ai haha. Tudo que foi usado tá aqui: C# / .Net7 SvelteKit (Web) Wireguard (Proxy) RavenDB (Controle de Licenças e mais algumas coisas) Selenium (Criação de contas do servidor) Nginx Dind(Docker in docker) para controle de instâncias Kubernetes para orquestração do Docker Docker ML.Net (Treinamento para algumas funcionalidades) A Framework ficou bem leve, a ultima vez que testei deu pra rodar 200 instâncias consumindo 20% de um processador single core e 3gb de ram. Tem algumas coisas pra arrumar mas no geral funciona muito bem. O próximo passo que eu estava dando é treinando as contas para aprenderem a fazer pista de runas, mas acabei ficando com preguiça no meio do processo (Demora demais com reinforcement learning)
  8. Bem, estava conversando com um amigo, e ele me mostrou um server que estava com algo diferente nas criptografias e me perguntou se eu conseguia fazer um bot pro servidor. Estava com um projeto parado a um tempo, e resolvi ver quão hard era. Não demorou muito, mas acabei descobrindo como funcionava. Só que tem um detalhe interessante na história, o cara acabou prejudicando o próprio servidor. As alterações que ele fez no Enc/Dec acabou gerando um monte de problemas. A alteração fez com que o alguns pacotes fossem ignorados de ambos os lados(já viu onde isso vai dar né?), um verdadeiro caos. Vários clicks e eventos simplesmente não ocorriam porque o servidor não processava direito os pacotes. Ai eu lanço a pergunta: Até onde vai a proteção? De todos os servers que olhei ultimamente, vi todo tipo de tentativa de impedir bots, mas nenhum de fato conseguia. Alguns com quiz diferenciado, outros faziam o NPC andar e por ai vai. Mas nada disso impede quem realmente quer fazer algo no teu servidor. É relativamente fácil passar por cima dessas mecânicas. Afinal até mesmo grandes jogos com uma equipe grande de desenvolvedores, sofrem com bots. Ex: New World, Albion, Lost Ark. E ai, no fim, você ferrou todos os seus jogadores e não impediu nada . Estava tentando entender o que a comunidade pensa sobre isso e se alguem de fato teve alguma solução eficiente contra isso.
×
×
  • 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.