Ir para conteúdo
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×

Os Melhores

Conteúdo popular

Mostrando conteúdo com a maior reputação em 03/03/2024 in todas as áreas

  1. 100% ATUALIZADO(2025) INTRODUÇÃO A Fox com muito orgulho apresenta seu produto para Grand Chase Classic (Steam/Nexus/Megaxus/Epic Games/etc) Acesse nosso site e tenha acesso à mais produtos exclusivos: Forums - Fox Cheats FUNÇÕES 🎯 Categoria: Mission Hack Auto Kill Delay — Mata todos os mobs da missão automaticamente. Skip Dialog — Pula todos os diálogos possíveis durante a missão. Kill All — Usado junto com o Auto Kill Delay para matar mobs que suportam o sistema. Stealth — Faz com que os mobs não ataquem você. Monster Vac — Agrupa todos os mobs hostis em um único local. Item Vac — Coleta automaticamente todos os itens dropados. Item Hide — Esconde todos os itens da missão para melhor visualização. Auto Boss — Avança automaticamente para a Boss Fight quando disponível. Unlimited Dimensional Time — Permite ficar mais de 15 minutos no portão dimensional. Level Hack [VOID] — Permite jogar o VOID sem precisar ser level 85. Item Spawn — Dropa todos os itens que seriam obtidos na missão. Speed Farm — Carrega uma missão alternativa para acelerar o farm. Damage Mob — Multiplicador de dano que você sofrerá dos mobs. Damage Hack — Aumenta o dano que você causa aos mobs. Auto Portal — Passa as etapas automaticamente sem interação manual. Speed Hack — Acelera a velocidade do jogo. Super Talim Spam — Spama o ataque especial do evento de Talin em qualquer missão. 🏆 Categoria: Mission Result Rank Select — Escolha a pontuação de rank da missão (F até SS). Hits Count — Quantidade de hits que você causou na missão. Combo Count — Número total de combos realizados. Attack Back Count — Número de ataques realizados pelas costas dos inimigos. Hits Takken — Quantidade de hits que você sofreu durante a missão. Damage Count — Total de dano que você causou na missão. 👤 Categoria: Player Stats HP Infinity — Vida infinita para o seu personagem. MP Full — Mana infinita para usar habilidades sem restrição. Hide Nick — Esconde seu nick no jogo [STREAM MODE]. Potion CD — Remove o cooldown para usar poções sem tempo de espera. CoolDown Hack — Remove o cooldown das skills, podendo usar sem limite. Fly Hack — Permite que seu personagem voe livremente. Pet MP — Mana infinita para o seu Pet. Furia Full — Fúria sempre cheia para usar golpes especiais. Item Hack [N] — Permite usar itens do inventário [N] sem possuí-los. Status SS — Aumenta seus atributos para atingir status SS+ e completar eventos/missões especiais. 🤖 Categoria: Bots/Farming Drop Prediction — Permite visualizar os itens que irão dropar dos mobs na missão. Block Dialog — Bloqueia janelas de diálogo para farmar AFK. Anti Kick AFK — Impede o jogo de te expulsar por ficar AFK. Auto Start — Inicia automaticamente as missões. Auto Next Dungeon — Avança automaticamente para a próxima missão. Auto Ready — Confirma "Pronto" automaticamente nas missões. Auto Play Dungeon — Joga automaticamente a missão selecionada. Auto Farm Item — Farma repetidamente o item adicionado na lista. Auto Failed — Faz a missão falhar automaticamente. Auto Farm Cards — Farma cartas automaticamente na missão. 🎮 Categoria: Macros Macro Encubadora — Entra na Encubadora (modo heroico) e farma os itens adicionados no Auto Farm Item. Block Reward Dlg — Bloqueia a janela de recompensas ao final da missão. ENTREGA AUTOMÁTICA COMPRE AQUI OU NO SITE: [Hidden Content] SCREEN SHOTS PREÇOS 30 Dias -> R$39,90 ONDE COMPRAR ? Nosso Site -> Forums - Fox Cheats Nosso Discord : [Hidden Content] COMO USAR Abra o cheat Abra o jogo Seja feliz! DOWNLOAD/SCAN CASO QUEIRA SUPORTE DEDICADO, COM MEMBRO DA EQUIPE INDO EM ANYDESK E TUDO MAIS; AI VOCÊ COMPRA O PRODUTO VIP. [Hidden Content] SCAN X86 : VirusTotal - File - 6ddb4a159c634bc79841a30a3a1238804e2d20e6624e55651705d37dee1e83f6 DOWNLOAD x64 : [Hidden Content] SCAN x64 : VirusTotal - File - f8365bdad743280aa82f47ad3d3cf242421b15445dbe493f9aa894b17342b0d8
    10 pontos
  2. WEBCHEATS A P R E S E N T A ASSISTA A QUALQUER VÍDEO NOS SITES OFICIAIS DE VÍDEOS AULTOS +18 SEM PRECISAR PAGAR NADA! A plataforma a seguir consegue liberar todo e qualquer tipo de vídeos/filmes adultos restritos exclusivamente para assinantes. Você consegue assistir os conteúdos exclusivos sem precisa pagar nada mensalmente! COMO USAR A PLATAFORMA: A plataforma é bem autoexplicativa, não há muito segredo. Acesse o site do Mineiro (link no final do tópico); Vai aparecer diversos sites pornográficos, selecione o site que deseja assistir (Por exemplo, o site da Brad Montana); Em seguida você será redirecionado para adicionar o link do vídeo restrito; Pois bem, o próximo passo é acessar o site oficial da Brad Montana; Agora escolha um vídeo/filme premium, restrito somente para assinantes; Após escolher, copie o link do vídeo no campo de URL e retorne a plataforma do Mineiro; Retornando ao site do Mineiro, cole o link do vídeo no campo em que está sendo pedido; Depois, clique no botão "Quero assistir esse vídeo/filme". Caso queria entender melhor a explicação em vídeo, assista: 𝗢𝗯𝘀.: Quando você clicar no botão "Quero assistir esse vídeo/filme", vai aparecer alguns anúncios pedindo para você permitir a notificação. Basta você ficar recusando/bloqueando. A solicitação dessa notificação vai aparecer umas 6x depois que você recusar, basta ficar recusando que logo você será direcionado para assistir o vídeo em FULL HD. 𝗢𝗯𝘀.: Se você clicar em permitir, os anúncios vão deixar de aparecer. Lembre-se de remover a notificação depois, pois é muito chato. LINK DO SITE [Hidden Content] ESTE MATERIAL ERA EXCLUSIVAMENTE PARA MEMBROS VIP! USE COM MODERAÇÃO!
    6 pontos
  3. UPDATE MARÇO/2024 INTRODUÇÃO Iniciamos o fórum para controlar as vendas dos cheats, todas as noticiais e novidades são postadas lá. Fórum exclusivo para VIP, então se tem interesse em adquirir entre: Forums - Fox Cheats FUNÇÕES AUTO KILL (FUNCIONAL EM EVENTOS E PORTAL) 1 HIT KILL HP HACK (VIDA FICA 500K E NÃO DIMINUI) MP HACK (JÁ INICIA PARTIDA CHEIO, SEM NECESSIDADE DE HIT) TIME FREEZE (COLOCA O TEMPO DA PARTIDA EM 12'59) RANK SS ITEM VAC (TODOS OS ITENS DROPAM NO MESMO LUGAR) MONSTER VAC (TODOS OS MOBS SPAWNAM NO MESMO LUGAR) FLY HACK (AO SEGURAR A TECLA CTRL E PULAR, VOCÊ CONSEGUE VOAR) NO CD (REMOVE O COOL DOWN DAS SKILLS STEALTH (OS MONSTROS NÃO TEM ATACAM) ITEM SPAWN (TODOS OS ITENS DO MAPA SPAWNAM) T. JULGAMENTO (AUMENTA TODOS SEUS ATRIBUTOS) CRITICAL (TODO DANO QUE VOCÊ FIZER SERÁ CRITICO) CONTINENTE HACK - PERMITE VOCÊ ACESSAR QUALQUER CONTINENTE (MESMO QUE NÃO O TENHA LIBERADO) ROOM HACK - PERMITE VOCÊ ACESSAR QUALQUER MISSÃO (MESMO QUE NÃO CUMPRA OS REQUISITOS) TIME FREEZE PROFECIA - DEIXA O TEMPO EM 22 MINUTOS SPEED HACK - AUMENTA A VELOCIDADE DO JOGO EXP HACK UP DO 1 AO 90 EM 5 MINUTOS AUTO BOSS - TE LEVA DIRETO AO BOSS DA MISSÃO BERKAS SOLO - PERMITE JOGAR BERKAS SOLO DEMONSTRAÇÃO SCREEN SHOTS PREÇOS 30 Dias -> R$30,00 90 Dias -> R$70,00 ONDE COMPRAR ? Nosso Site -> Forums - Fox Cheats Link da Loja -> Loja - FoxCheats Nosso Discord : Fox Cheats (discord.com) COMO USAR Abra seu Grand Chase Na tela de Servidores abra o FREE GCH.exe Clique em Injetar Pronto, o menu estará aberto dentro do jogo! QUALQUER PROBLEMA NO DOWNLOAD, DESATIVE SEU ANTI-VÍRUS OBS : PARA USAR O MP HACK, BASTA ATIVAR ANTES DE ENTRAR NA MISSÃO FREE VERSION [hide][Hidden Content]] [Hidden Content]==
    5 pontos
  4. 4 pontos
  5. Meu primeiro combo de qualidade com contas valorant. [Hidden Content]
    3 pontos
  6. Basta deslizar e assistir o quanto quiser de vídeos +18 curtos e longos! [hide][Hidden Content]] Basta clicar na opção do Tiktok e aproveitar os milhares de vídeos!
    3 pontos
  7. Bom após anos longe deste amado fórum, voltei para mostrar um dos meus trabalhos recentes. Trata-se deste bot, no Telegram, para assistir a XVideos Red. Com o bot você consegue assistir de forma rápida e fácil os vídeos do XVideos Red, Brasileirinhas, Tufos E em breve vou adicionar mais site para bot. O bot está no Telegram, então para usar o bot, você tem que ter uma conta no Telegram. No bot Você começa com 3 créditos, mas você consegue mais créditos de graça ou pagando, a escolha é sua. #### A imagem mostra como o bot funciona, basta você enviar a URL (DO CANAL), para o bot, e ele vai te gerar um link para assistir. Ao enviar o link do canal, o bot te volta uma lista de vídeos disponíveis basta clicar no nome do vídeo que você quer assistir/fazer download E pronto, vídeo liberado :) Basta curtir o posto para ver o link atualizado do bot [Hidden Content]
    3 pontos
  8. Caso gostem enviarei mais. DOWNLOAD: [Hidden Content]
    2 pontos
  9. 2 pontos
  10. 2 pontos
  11. Mais de 20 vídeos e diversas fotos. [Hidden Content]
    1 ponto
  12. WEBCHEATS A P R E S E N T A MACRO BINDADO - PUBG O PRODUTO A SEGUIR É DESENVOLVIDO EM AHK, PORTANTO, PRECISA TER INSTALADO O AUTO HOT KEY NA SUA MÁQUINA ANTES DE USAR. FUNÇÕES INCLUSAS ✅ NO RECOIL | ✅ NO SPRAY | ✅ TODAS AS ARMAS DOWNLOAD & SCAN a) DOWNLOAD [Hidden Content] b) SCANNER [Hidden Content] CRÉDITOS Até o momento não conseguir identificar o autor responsável pelo soft.
    1 ponto
  13. [Hidden Content] damage changer hp hack [Hidden Content] scan: [Hidden Content]
    1 ponto
  14. [Hidden Content] //The Mount Essence must also be altered to get the mount leveled from 0~240* _MSG_UseItem.cpp : if (Vol == 16) { char temp2[4096]; if (m->DestType || m->DestPos != 14) { SendItem(a_iConn, m->SourType, m->SourPos, item); return; } STRUCT_ITEM *dest = &pMob[a_iConn].MOB.Equip[14]; if (dest->sIndex < 2330 || dest->sIndex >= 2390 || dest->stEffect[0].sValue <= 0) { SendItem(a_iConn, m->SourType, m->SourPos, item); return; } int mountIndex = (dest->sIndex - 2330) % 30; int amgIndex = (item->sIndex - 2390) % 30; if (mountIndex == 28) mountIndex = 21; if (mountIndex == 27) mountIndex = 10; if (mountIndex != amgIndex) { SendClientMsg(a_iConn, g_pMessageStringTable[_NN_Mount_Not_Match]); SendItem(a_iConn, m->SourType, m->SourPos, item); return; } dest->stEffect[0].sValue = 20000; dest->stEffect[2].cEffect = 100; int level = dest->stEffect[1].cEffect; if (level >= 250 && dest->sIndex >= 2360 && dest->sIndex < 2390) // ***EDIT THIS HERE*** <--- { SendClientMsg(a_iConn, g_pMessageStringTable[_NN_Cant_Upgrade_More]); SendItem(a_iConn, m->SourType, m->SourPos, item); ProcessAdultMount(a_iConn, 0); return; } if (dest->sIndex >= 2360 && dest->sIndex < 2390) { int rate = BASE_GetGrowthRate(dest); int _rand = rand() % 101; if (_rand > rate) // Refinação falhou { int rand2 = rand() % 100; if (rand2 < 20 && dest->stEffect[1].cEffect < 70) { dest->stEffect[1].cEffect--; } if (dest->stEffect[1].cEffect >= 70 && dest->stEffect[1].cEffect % 2 != 0) { if (rand2 < 50) { dest->stEffect[1].cEffect--; } } if (pMob[a_iConn].MOB.Equip[0].sIndex / 10) SendEmotion(a_iConn, 15, 0); else SendEmotion(a_iConn, 20, 0); if (amount > 1) BASE_SetItemAmount(item, amount - 1); else memset(item, 0, 8); sprintf(temp, "%s", g_pMessageStringTable[_NN_Fail_To_Refine]); SendClientMsg(a_iConn, temp); SendItem(a_iConn, m->DestType, m->DestPos, dest); ProcessAdultMount(a_iConn, 0); return; } else { printf(temp, "useitem,mount refine success %d+%d (%d,%d,%d)", dest->sIndex, dest->stEffect[1].cValue, item->stEffect[0].cEffect, item->stEffect[1].cEffect, item->stEffect[2].cEffect); SendClientMsg(a_iConn, "Mount level has risen!"); SendEmotion(a_iConn, 14, 3); MyLog(LogType::Itens, pMob[a_iConn].MOB.MobName, temp, 0, pUser[a_iConn].IP); } } //Please Enjoy
    1 ponto
  15. Olá Hoje estarei compartilhando com vocês um editor que estive desenvolvendo, ele basicamente pega o ItemList.bin e mostra as informações dele, depois você pode tanto salvar em .bin ou gerar um .txt. Para carregar o ItemList.bin no editor, você vai clicar em ItemList na parte superior esquerda do programa e clicar em "Abrir ItemList.bin", assim como mostra na imagem abaixo. Irá abrir uma página para procurar o arquivo, basta escolher o ItemList.bin e clicar em Abrir e as informações serão carregadas. Existe também um botão para pesquisar os itens que deseja, para utiliza-lo é só escrever o nome do item e clicar no botão "Buscar", assim como a imagem abaixo Após fazer as alterações, clique no botão "Salvar alterações", assim como mostra a imagem abaixo. Para criar o ItemList.bin atualizado, basta clicar em ItemList, no canto superior esquerdo e ir em "Gerar ItemList" e depois clicar em ItemList.bin e irá gerar no mesmo local em que você mexeu, será o mesmo arquivo, porém com as informações atualizadas. Para criar o ItemList.txt você irá clicar em ItemList, no canto superior esquerdo e depois ir em "Gerar ItemList" e depois clicar em ItemList.txt, irá abrir o local que deseja criar o arquivo, assim como é mostrado na imagem abaixo OBS: Eu creio que sirva para todas as versões disponíveis atualmente, pelo menos até o 7.59 (7.60), qualquer bug peço que reportem para eu corrigir, estarei preparando a nova versão onde é possível escolher os Effects você mesmo. Eu só testei na versão 7.60 e não tive problemas, mas reportem por favor! CRÉDITOS: Juumper NakiuS SeiTbNao Download: [Hidden Content] SCAN
    1 ponto
  16. WEBCHEATS A P R E S E N T A VALORANT MACRO NO RECOIL O PRODUTO A SEGUIR É DESENVOLVIDO EM AHK, PORTANTO, PRECISA TER INSTALADO O AUTO HOT KEY NA SUA MÁQUINA ANTES DE USAR. MACROS EM AHK É APENAS UMA AUXILIADOR, NÃO É CHEAT PARA RETIRAR O RECOIL (Imagem ilustrativa) DOWNLOAD & SCAN a) DOWNLOAD [Hidden Content] b) SCANNER [Hidden Content] CRÉDITOS Até o momento não conseguir identificar o autor responsável pelo desenvolvimento do AHK.
    1 ponto
  17. Re-upado! Excel [Hidden Content] Tutorial [Hidden Content] Programa de Desnivel [Hidden Content] Processo de aprendizado é demorado, recomendo testar no dragonbound com bots. Caso queria um experiência melhor, recomendo o bot do Pchart do nosso amigo da WC, que está funcionando na Beta e no Gitz.
    1 ponto
  18. REGRAS SERVIÇOS PAGOS Art. 1º Esta seção é exclusivamente destinada à publicação de SERVIÇOS PAGOS (STREAMINGS ETC). Art. 2º É proibido buscar VANTAGENS ECONÔMICAS nas contribuições desta área, exceto para anunciantes. Art. 2.1º É PROIBIDO qualquer tentativa de SPAM ou Divulgações Irregulares nesta área, salvo anunciantes. Art. 2.2º Qualquer que seja a tentativa de Divulgação Irregular nesta área, será devidamente punido. Art. 3º É proibido anunciar vendas de SERVIÇOS PAGOS, STREAMINGS ou CONTAS PREMIUM nesta área, destinada apenas a postagens gratuitas. Para anúncios de venda, utilize a seção MarketPlace. Art. 4º Todos devem estar cientes de que as contas publicadas nesta área podem ter uma vida útil curta. Isso ocorre devido à exposição pública de serviços pagos, sujeitando as contas a alterações e possíveis bloqueios. Art. 5º É PROIBIDO qualquer tipo de reclamação sobre os conteúdos que deixam de funcionar. Esta área é dedicada a conteúdos pagos compartilhados gratuitamente, que podem ter baixa durabilidade, e os colaboradores não têm obrigação de fornecer material de alta qualidade. Art. 6º Todos podem colaborar com conteúdos nesta área de serviços pagos, sem exceções, e sem qualquer obrigação em compartilhar. Art. 7º É PROIBIDO qualquer tentativa de CLICKBAIT nesta área. Art. 8º O uso do HIDE é OBRIGATÓRIA em todas as publicações desta área. Art. 9º Todas as contas publicadas nesta área devem estar visíveis diretamente no tópico para facilitar o acesso. É expressamente PROIBIDO o uso de LINKS que redirecionem o usuário para outros sites, bem como de links para downloads. Qualquer violação dessas regras resultará em uma advertência. Em caso de dúvidas, entre em contato com um moderador ou administrador. Atenciosamente, Equipe WebCheats
    1 ponto
  19. ESSE CHEAT FAZ PARTE DO PROJETO CHEAT SOB DEMANDA Olá! Abaixo segue cheat pro WARTALE!!!! Download: [hide][Hidden Content]] Scan: [Hidden Content] Modo de uso: Abra o cheat e clique em reload, aperte em cima do nick do seu personagem que queira usar o hack e pode apertar em set pid, depois disso vai liberar a caixinha de hack a direita. Caso queira algo diferenciado pode falar comigo no discord, whatsapp ou aqui na webcheats mesmo.
    1 ponto
  20. Baseado no @OneThinker, resolvi criar este tópico liberando um curso de graça a quem não tem uma condição financeira boa. 3.98GB (compactado) via Mega. VEJA OS BÔNUS INCLUSOS Curso de Engenharia Reversa Para que você alcance patamares ainda maiores e consiga se diferenciar ainda mais de quem ja está no mercado, preparamos um mini-curso prático de engenharia reversa de softwares que iremos disponibilizar gratuitamente para todos nossos alunos. Pacote de Ferramentas Além do software essenciais como IDE’s, debuggers,etc, é necessário adquirir diversas ferramentas extras que devem tunar e auxiliar seus desenvolvimentos de cheats e testes com anti-cheats como Loggers, Injetores, Scanners de Memória, gerenciador de processos avançado, etc. Fazer uma compilação de qualidade dessas ferramentas pode sair muito caro ou, pelo menos, muito trabalhoso. Para poupar tempo e dinheiro dos nossos alunos, disponibilizamos uma série de ferramentas, desenvolvidas pela equipe, gratuitamente como bônus. Mini-Curso de Packing e Unpacking Aqui você vai saber como aumentar a proteção dos seus softwares e como retirar praticamente qualquer packer de softwares protegidos, tendo assim acesso ao seu código original! Download: [hide][Hidden Content]] [hide][Hidden Content]]
    1 ponto
  21. Características: * Este cliente vem com uma GUI e HUD extremamente personalizáveis, proporcionando uma interface bonita, mas funcional para interagir, bem como um poderoso sistema de macros que permite alterar quase tudo no cliente pressionando uma tecla. * O Meteor Client apresenta módulos de renderização extremamente personalizáveis que são alimentados por sistemas de renderização limpos e eficientes, proporcionando sobreposições precisas e de alta qualidade que fazem o cliente se sentir incrivelmente moderno e suave. Como baixar / instalar : 1- Baixe o arquivo no link a baixo . 2- abra a pasta '' %appdata% '' . 3- abra apasta '' .minecraft '' . 4- abra a pasta '' mods'' . 5- Coloque o arquivo baixado extraido dentro da pasta '' mods '' * Importante* Seu minecraft deve estar na versão '' FABRIC '' na versão que você baixou o meteor client ex: Baixou o meteor na versão 1.20.1 seu client do minecraft deve estar na versão '' fabric 1.20.1 '' Qualquer duvida pode comentar que estarei lhe ajudando Download: [Hidden Content] Scan: 1.19.4 [Hidden Content] 1.20 [Hidden Content] 1.20.1 [Hidden Content] 1.20.2 [Hidden Content] 1.20.4 [Hidden Content]
    1 ponto
  22. Pack Grátis - Jade Teen Download Pack: [Hidden Content]
    1 ponto
  23. Tópico simples porém direto ! '' Antes de mais nada > Eu só consegui instalar pelo launcher do minecraft original, não tentei pelo pirata !! '' 1- Baixe o arquivo 2- Vá no menu iniciar e digite %appdata% 3- Procure a pasta '' .minecraft '' 4- Após entrar na .minecraft entre na pasta '' versions '' 5- Extraia o arquivo baixado e coloque na pastar '' versions '' 6- Abra seu minecraft launcher e crie uma nova instalação e onde você seleciona a versão você pesquisa '' rise '' e selecione a versão '' release rise '' 7- Inicie seu minecraft e seja feliz ! Link para download: [Hidden Content] Link do scan:
    1 ponto
  24. Salve pessoal, adaptei esse script para ler os arquivos .msh e .bon do WYD no blender 2.8 +, carregando a malha e os ossos, créditos a um amigo que me ajudou no entendimento da base desse conteúdo, não sei o nick dele na WC para usar é muito simples, basta definir o caminho do arquivo .msh e do arquivo .bon correspondente, e também o caminho da textura em jpg ou png. import bpy import os import struct import logging import mathutils from typing import NamedTuple FilePath = "C:\\......\\be010101.msh" FileName = "be010101" FilePathBon = "C:\\.......\\be01.bon" IMAGEPATH = 'C:\\.........\\be010101.png' print("----------------- Start Script -----------------") class BoneNode: def __init__(self, Owner, Children, Matrix): self.Owner = Owner self.Children = Children self.Matrix = Matrix class BoneData: def __init__(self, dwName, Matrix): self.dwName = dwName self.Matrix = Matrix class BoneWeight: def __init__(self, b0Weight, b0Index, b1Weight, b1Index, b2Weight, b2Index, b3Weight, b3Index): self.b0Weight = b0Weight self.b0Index = b0Index self.b1Weight = b1Weight self.b1Index = b1Index self.b2Weight = b2Weight self.b2Index = b2Index self.b3Weight = b3Weight self.b3Index = b3Index print ("---------------------Load Bon---------------------") bNodes = [] TreeNodes = [] with open(FilePathBon, "rb") as binFileBone: binFileBone.seek(0,os.SEEK_END) binFileBoneSize = binFileBone.tell() binFileBone.seek(0,os.SEEK_SET) BytesRead = 0 while(BytesRead < binFileBoneSize): Own = struct.unpack('i', binFileBone.read(4))[0] Chd = struct.unpack('i', binFileBone.read(4))[0] bNodes.append(BoneNode(Own,Chd, None)) BytesRead += 8 print("---------------------Load Mesh-------------------") with open(FilePath, "rb") as file: # b is important -> binary _dwParentID = struct.unpack('i', file.read(4))[0] _dwID = struct.unpack('i', file.read(4))[0] _dwFVF = struct.unpack('i', file.read(4))[0] _sizeVertex = struct.unpack('i', file.read(4))[0] _numFaceInflunce = struct.unpack('i', file.read(4))[0] _numPalette = struct.unpack('i', file.read(4))[0] _VertexCount = struct.unpack('i', file.read(4))[0] _FaceCount = struct.unpack('i', file.read(4))[0] _numFaces = int(_FaceCount / 3) print("dwParent: ",_dwParentID) print("_dwID: ",_dwID) print("_dwFVF: ",_dwFVF) print("_sizeVertex: ",_sizeVertex) print("_numFaceInflunce: ",_numFaceInflunce) print("_numPalette: ",_numPalette) print("_VertexCount: ",_VertexCount) print("_FaceCount: ", _FaceCount) print("_numFaces: ",_numFaces) lVertxPos = [] lNormalPos = [] lUvPos = [] lIndices = [] lBonesPos = [] ldwName = [] lBoneWeight = [] for i in range(0,_numPalette): bMatrix = mathutils.Matrix().to_4x4() bMatrix[0][0] = struct.unpack('f', file.read(4))[0] bMatrix[1][0] = struct.unpack('f', file.read(4))[0] bMatrix[2][0] = struct.unpack('f', file.read(4))[0] bMatrix[3][0] = struct.unpack('f', file.read(4))[0] bMatrix[0][1] = struct.unpack('f', file.read(4))[0] bMatrix[1][1] = struct.unpack('f', file.read(4))[0] bMatrix[2][1] = struct.unpack('f', file.read(4))[0] bMatrix[3][1] = struct.unpack('f', file.read(4))[0] bMatrix[0][2] = struct.unpack('f', file.read(4))[0] bMatrix[1][2] = struct.unpack('f', file.read(4))[0] bMatrix[2][2] = struct.unpack('f', file.read(4))[0] bMatrix[3][2] = struct.unpack('f', file.read(4))[0] bMatrix[0][3] = struct.unpack('f', file.read(4))[0] bMatrix[1][3] = struct.unpack('f', file.read(4))[0] bMatrix[2][3] = struct.unpack('f', file.read(4))[0] bMatrix[3][3] = struct.unpack('f', file.read(4))[0] bMatrix.invert() '''print("Invert2:") print(bMatrix) print(loc, rot, sca)''' loc, rot, sca = bMatrix.decompose() '''loc.z = loc.z * - 1''' bMatrix = mathutils.Matrix().LocRotScale(loc, rot, sca) lBonesPos.append(BoneData(0, bMatrix)) for i in range(0,_numPalette): dwName = struct.unpack('i', file.read(4))[0] lBonesPos[i].dwName = dwName print("dwName: ",dwName) ldwName.append(dwName) for i in range(0,_VertexCount): vX = struct.unpack('f', file.read(4))[0] vY = struct.unpack('f', file.read(4))[0] vZ = struct.unpack('f', file.read(4))[0] Vertex = (vX, vY, vZ) if _numFaceInflunce == 4: bweight0 = struct.unpack('f', file.read(4))[0] bweight1 = struct.unpack('f', file.read(4))[0] bweight2 = struct.unpack('f', file.read(4))[0] bboneIndex0 = struct.unpack('b', file.read(1))[0] bboneIndex1 = struct.unpack('b', file.read(1))[0] bboneIndex2 = struct.unpack('b', file.read(1))[0] struct.unpack('b', file.read(1))[0] bw = BoneWeight(bweight0,bboneIndex0,bweight1,bboneIndex1,bweight2,bboneIndex2, 0, 0) lBoneWeight.append(bw) elif _numFaceInflunce == 3: bweight0 = struct.unpack('f', file.read(4))[0] bweight1 = struct.unpack('f', file.read(4))[0] bboneIndex0 = struct.unpack('b', file.read(1))[0] bboneIndex1 = struct.unpack('b', file.read(1))[0] u1 = struct.unpack('b', file.read(1))[0] u2 = struct.unpack('b', file.read(1))[0] bw = BoneWeight(bweight0,bboneIndex0,bweight1,bboneIndex1,0, 0, 0, 0) lBoneWeight.append(bw) elif _numFaceInflunce == 2: bweight0 = struct.unpack('f', file.read(4))[0] bboneIndex0 = struct.unpack('b', file.read(1))[0] struct.unpack('b', file.read(1))[0] struct.unpack('b', file.read(1))[0] struct.unpack('b', file.read(1))[0] bw = BoneWeight(bweight0,bboneIndex0,0,0,0, 0, 0, 0) lBoneWeight.append(bw) else: print("este arquivo possuie faceinfluence: ", _numFaceInflunce) nX = struct.unpack('f', file.read(4))[0] nY = struct.unpack('f', file.read(4))[0] nZ = struct.unpack('f', file.read(4))[0] Normal = (nX, nY, nZ) uX = struct.unpack('f', file.read(4))[0] uY = struct.unpack('f', file.read(4))[0] uV = (uX,uY * -1) lVertxPos.append(Vertex) lNormalPos.append(Normal) lUvPos.append(uV) for i in range(0, _numFaces): f1 = struct.unpack('H', file.read(2))[0] f2 = struct.unpack('H', file.read(2))[0] f3 = struct.unpack('H', file.read(2))[0] triangulos = (f1, f2, f3) lIndices.append(triangulos) edge = [] new_mesh = bpy.data.meshes.new('mesh') new_mesh.from_pydata(lVertxPos, edge, lIndices) new_mesh.update() obj_mesh = bpy.data.objects.new(FileName, new_mesh) obj_mesh.data.normals_split_custom_set_from_vertices(lNormalPos) obj_mesh.modifiers.new(name = 'Skeleton', type = 'ARMATURE') '''Set UV''' uvlayer = obj_mesh.data.uv_layers.new() obj_mesh.data.uv_layers.active = uvlayer pos = 0 for face in obj_mesh.data.polygons: for vert_idx, loop_idx in zip(face.vertices, face.loop_indices): uvlayer.data[loop_idx].uv = lUvPos[vert_idx] pos += 1 '''mat = bpy.data.materials['Material'] tex = bpy.data.textures.new("SomeName", 'IMAGE') slot = mat.texture_slots.add() slot.texture = tex''' amt = bpy.data.armatures.new('root') Container = bpy.data.objects.new('Armature', amt) obj_mesh.modifiers['Skeleton'].object = Container '''obj_mesh.modifiers['Skeleton'].object = armt''' # make collection new_collection = bpy.data.collections.new('Loaded@'+FileName) bpy.context.scene.collection.children.link(new_collection) new_collection.objects.link(Container) new_collection.objects.link(obj_mesh) obj_mesh.parent = Container bpy.context.view_layer.objects.active = Container bpy.ops.object.mode_set(mode='EDIT') print("-----------------Create Three Node-------------------") class BoneTreeStruct: def __init__(self, dwname, Fater, Bone,Owner,Children ): self.dwname = dwname self.Fater = Fater self.Bone = Bone self.Owner = Owner self.Children = Children ignoreCount = 0 for b in bNodes: if ignoreCount > 0: ignoreCount -= 1 continue chk = BoneTreeStruct(0,0,None,0,0) ischk = False for tr in TreeNodes: if tr.Owner == b.Children: chk = tr ischk = True break if ischk == False: '''chk.Bone = bpy.data.objects.new(str(b.Children), None)''' chk = BoneTreeStruct(b.Children,0, None,b.Children,0) chk.Bone = amt.edit_bones.new(str(b.Children)) chk.Bone.head = (0,0,0) chk.Bone.tail = (0,0,0.1) TreeNodes.append(chk) print("definindo filhos") for fi in bNodes: if fi.Owner == chk.Owner: nFilho = BoneTreeStruct(fi.Children, chk,0,fi.Children,0) '''nFilho.Bone = bpy.data.objects.new(str(fi.Children), None)''' nFilho.Bone = amt.edit_bones.new(str(fi.Children)) nFilho.Bone.head = (0,0,0) nFilho.Bone.tail = (0,0,0.1) nFilho.Bone.parent = chk.Bone TreeNodes.append(nFilho) for bTree in TreeNodes: print(bTree.Bone.name) for dwInfo in lBonesPos: if(int(dwInfo.dwName) == int(bTree.Bone.name)): print("set matrix bone "+str(dwInfo.dwName)) bTree.Bone.matrix = dwInfo.Matrix bpy.context.view_layer.objects.active = obj_mesh vertexGroup = [] for i in range(0,_numPalette): new_vertex_group = bpy.context.active_object.vertex_groups.new(name=str(lBonesPos[i].dwName)) vertexGroup.append(vertexGroup) for i in range(0,_VertexCount): if _numFaceInflunce == 4: bpy.context.active_object.vertex_groups[lBoneWeight[i].b0Index].add([i], lBoneWeight[i].b0Weight, 'ADD') bpy.context.active_object.vertex_groups[lBoneWeight[i].b1Index].add([i], lBoneWeight[i].b1Weight, 'ADD') bpy.context.active_object.vertex_groups[lBoneWeight[i].b2Index].add([i], lBoneWeight[i].b2Weight, 'ADD') elif _numFaceInflunce == 3: bpy.context.active_object.vertex_groups[lBoneWeight[i].b0Index].add([i], lBoneWeight[i].b0Weight, 'ADD') bpy.context.active_object.vertex_groups[lBoneWeight[i].b1Index].add([i], lBoneWeight[i].b1Weight, 'ADD') elif _numFaceInflunce == 2: bpy.context.active_object.vertex_groups[lBoneWeight[i].b0Index].add([i], lBoneWeight[i].b0Weight, 'ADD') else: print("este arquivo possuie faceinfluence: ", _numFaceInflunce) mat = bpy.data.materials.new(name="New_Mat") mat.use_nodes = True bsdf = mat.node_tree.nodes["Principled BSDF"] texImage = mat.node_tree.nodes.new('ShaderNodeTexImage') texImage.image = bpy.data.images.load(IMAGEPATH) mat.node_tree.links.new(bsdf.inputs['Base Color'], texImage.outputs['Color']) if obj_mesh.data.materials: obj_mesh.data.materials[0] = mat else: obj_mesh.data.materials.append(mat)
    1 ponto
  25. Baseado no mapa "Lava Field" existente no WYD Mobile, lembrem-se de alterar os valores do .trn para utilizar o mapa no local de sua preferencia. DOWNLOAD Não sei se é necessário o scan, se necessário eu atualizo o post com o mesmo.
    1 ponto
Esta tabela de classificação está definida para São Paulo/GMT-03:00
×
×
  • 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.