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

Os Melhores

Conteúdo popular

Mostrando conteúdo com a maior reputação em 06-04-2024 em Posts

  1. 100% ATUALIZADO(MAIO 2024) 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 AutoKill - mata todos os monstros da fase Item Vac - puxa todos os itens dropados para o seu personagem STATUS SS - deixa o Status do seu personagem SS permitindo adentrar em missões que ele não atenda os requisitos [ EX : Berkas, VOID/Vazio,etc] Skip Dialog - pula todos os diálogos automaticamente Item Hide - oculta todos os drops para não encher seu inventário de itens fracos/inuteis Level Hack [VOID] - permite que seu personagem entre na missão VAZIO/VOID mesmo que ele não tenha o level necessário Auto Kill Delay - mata todos os monstros da fase mais lentamente Monster VAC - Puxa todos os mobs para um determinado local do mapa. Auto Boss - Ao entrar na missão você vai direto para o BOSS. Item Spawn - Dropa todos os itens que seriam dropados naquela dungeon INTEIRA. Damage Mob - Com essa função você consegue escolher quanto de dano o mob irá lhe causar. Stage Hack - Completa a fase sozinho, de acordo com os delays que você programar. Speed Hack - Aumenta a velocidade do jogo de acordo com o multiplicador desejado. Rank Select - Define qual é o seu rank naquela dungeon (vocÊ pode escolher a pontuação para ir de F até SS) Time Count - O tempo da missão irá começar contar de 10'43 Time Freeze - O Tempo da missão irá ficar parado em 00:00 Hits Count - Falsifica os logs da partida, com você selecionando quantos hits causou na partida Combo Count - Você seleciona qual foi o combo mais alto que deu na partida, além de falsificar os logs da partida também completa AUTOMATICAMENTE as missões de combo ATK Back Count - Você seleciona quantos ataques por trás realizou na missão, além de falsificar os logs da partida também completa AUTOMATICAMENTE as missões de ataque por trás Hits Taken Count - Falsifica os logs da partida com você selecionando quantos hits sofreu na partida Damage Count - Falsifica os logs da partida com você selecionando quanto de dano causou na partida HP Infinity - Deixa seu HP Infinito MP FULL - Deixa seu MP sempre cheio CRITICAL 100% - Seus ataques sempre serão criticos Furia Infinita - Os personagens que possuem furia terão ela infinita Potion CD - Remove o cooldown das poções Fly Hack - Permite seu personagem voar NO PVP - deixa o dano do inimigo no PVP em 1. CoolDown - Cooldown das skills é 0. Pet MP - Deixa o MP do pet sempre cheio Predict Drop - Permite saber o'que irá dropar na missão só de entrar nela, decidindo assim se a recompensa vale o esforço ou se vale a pena quitar pra trocar o drop Speed Farm - Permite carregar uma missão bem mais fácil no lugar da que você esta jogando, permitindo coletar titulos/abrir todos os mapas muito mais rapido! Auto Title - Starta e completa automaticamente as missões BYPASS ANTICHEAT EMBUTIDO - VOCÊ CONSEGUE JOGAR COM MACROS, COM CHEAT ENGINE ABERTO, WPE PRO E MUITO MAIS QUE O JOGO BLOQUEIA MULTI CLIENT EMBUTIDO - VOCÊ CONSEGUE ABRIR QUANTOS GRANDCHASES O SEU COMPUTADOR AGUENTAR SEM MAQUINAS VIRTUAIS OU COISA DO TIPO! SCREEN SHOTS PREÇOS 30 Dias -> R$33,00 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. [hide][Hidden Content]] SCAN : VirusTotal - File - 6ddb4a159c634bc79841a30a3a1238804e2d20e6624e55651705d37dee1e83f6
    9 pontos
  2. Recomendo não criar novos perfis e usar os que já tem,pode durar mais tempo
    4 pontos
  3. 4 pontos
  4. Pack Grátis - Nati Sweetmlr & Mariana Ladeira & Emanuelly Raquel Nati Sweetmlr Download Pack: [Hidden Content] Mariana Ladeira Download Pack: [Hidden Content] Emanuelly Raquel Download Pack: [Hidden Content]
    4 pontos
  5. Print Screen Tutorial em Escrita Execute o Loader como administrador No Loader, logue em sua conta do fórum Selecione se deseja a area de CFBR/WEST ou PH (O CrossFire West pode ser selecionado a opção Rage,pois não tem a opção legit para wallhack) Selecione a Função Legit e clique em injetar após isso pode abrir o CrossFire o Wallhack á auto on Bom jogo Download/Scanner Download: [hide] [Hidden Content]] Virustotal: [Hidden Content]
    3 pontos
  6. 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]==
    3 pontos
  7. • Pack Grátis - Tati Zaqui • Download Pack: [Hidden Content]
    3 pontos
  8. 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.
    2 pontos
  9. TMSecurity.h #pragma once #include <cstdint> // Para tipos de dados padrão #include <cassert> // Para assert class TMSecurity { public: TMSecurity(); virtual ~TMSecurity(); char GetKeyword(int pos); char GetPasswordKey(); void InitializeKeys(); public: char GameKeyWords[512]; char PasswordKey; }; void MSHDecrypt(unsigned int* v, unsigned int* k); void MSHEncrypt(unsigned int* v, unsigned int* k); char* MSHEncDec(int Mode, const char* filename, char* ptr, int size); unsigned int* getkey(const char* file); TMSecurity.cpp #include "pch.h" #include "TMGlobal.h" const unsigned int DELTA = 0x9E3779B9; //0090AA50 TMSecurity::TMSecurity() //Função Ok { memset(GameKeyWords, 0, 512); PasswordKey = 180; //-76 } //0090AAF0 TMSecurity::~TMSecurity() //Função Ok { memset(GameKeyWords, 0, 512); } //0090AB90 char TMSecurity::GetKeyword(int pos) //Função Ok { char result = 0; if (GameKeyWords[pos]) result = GameKeyWords[pos]; return result; } //0090AC10 char TMSecurity::GetPasswordKey() //Função Ok { return PasswordKey; } //0090AC70 void TMSecurity::InitializeKeys() //Função Ok { std::string fileName = "Conf/VibrantGames.bin"; FILE* fp = NULL; if(!fopen_s(&fp, fileName.c_str(), "rb")) { fseek(fp, 0, 2); int file_size = ftell(fp); rewind(fp); char* buffer = (char*)malloc(file_size); if (buffer) { fread(buffer, 1, file_size, fp); fclose(fp); for (int i = 0; i < file_size; i++) buffer[i] ^= PasswordKey; char* p2 = MSHEncDec(1, (char*)fileName.c_str(), buffer, file_size); if (p2) { if (file_size > 512) file_size = 512; memcpy(&GameKeyWords, p2, file_size); free(p2); free(buffer); } } } else MessageBoxA(0, "Please, reinstall the game, data corrupted!", "Vibrant Games", 0); } //00950210 char* MSHEncDec(int Mode, const char* filename, char* ptr, int size) //Função Ok { if (!filename || !ptr || !size) return NULL; const char* file = filename; for (int i = strlen(filename) - 1; i > 0; i--) { if (filename[i] == '/' || filename[i] == '\\') { file = &filename[i + 1]; break; } } int blocks = size / 8; char* out = (char*)malloc(size); if (!out) return NULL; unsigned int* key = getkey(file); if (!key) { free(out); return NULL; } unsigned char* pout = reinterpret_cast<unsigned char*>(out); unsigned int v[2]; for (int i = 0; i < blocks; i++, ptr += 8, pout += 8) { memcpy(v, ptr, sizeof(v)); if (!Mode) MSHEncrypt(v, key); else MSHDecrypt(v, key); memcpy(pout, v, sizeof(v)); } SecureZeroMemory(key, 4 * sizeof(unsigned int)); free(key); return out; } //00950080 void MSHDecrypt(unsigned int* v, unsigned int* k) //Função Ok { unsigned int v0 = v[0]; unsigned int v1 = v[1]; unsigned int sum = DELTA * 32; for (int i = 0; i < 32; i++) { v1 -= ((v0 << 4) + k[2]) ^ (v0 + sum) ^ ((v0 >> 5) + k[3]); v0 -= ((v1 << 4) + k[0]) ^ (v1 + sum) ^ ((v1 >> 5) + k[1]); sum -= DELTA; } v[0] = v0; v[1] = v1; } //00950440 void MSHEncrypt(unsigned int* v, unsigned int* k) //Função Ok { unsigned int v1 = v[0]; unsigned int v0 = v[1]; unsigned int sum = 0; for (int i = 0; i < 32; i++) { sum += DELTA; v0 += ((v1 << 4) + k[0]) ^ (v1 + sum) ^ ((v1 >> 5) + k[1]); v1 += ((v0 << 4) + k[2]) ^ (v0 + sum) ^ ((v0 >> 5) + k[3]); } v[0] = v0; v[1] = v1; } //00950920 unsigned int* getkey(const char* file) //Função Ok { unsigned int* key = (unsigned int*)malloc(4 * sizeof(unsigned int)); if (!key) return NULL; int len = strlen(file); char* newFile = (char*)malloc(len); if (!newFile) { free(key); return NULL; } for (int i = 0; file[i] && i < len; i++) newFile[i] = tolower(file[i]); memset(key, (13 * len) + 73, 4 * sizeof(unsigned int)); for (int j = 0; j < len; j++) key[j % 4] ^= newFile[j]; free(newFile); return key; } BaseDef.cpp //0067F240 bool BASE_IsEncrypted(const char* file) //Função Ok { FILE* fp = fopen(file, "rb"); if (!fp) return false; bool encrypted = false; int code[3]{}; if (fread(code, 1, 4, fp) == 4) { if(strstr(file, ".msa") || strstr(file, ".vgo")) { if (code[0] && code[0] != 322 && code[0] != 274) encrypted = true; } else if (strstr(file, ".msh") || strstr(file, ".vgm")) { if (code[0]) encrypted = true; } else if (strstr(file, ".wys") || strstr(file, ".vgt")) { if (code[0] && code[0] != 0x30315357 && code[0] != 0x30315457) encrypted = true; } else if (strstr(file, ".wyt") || strstr(file, ".vgi")) { if (code[0] && code[0] != 0x30315457 && code[0] != 0x30315357) encrypted = true; } } fclose(fp); return encrypted; } Criem uma variaval global para a classe TMSecurity, nome original g_pSecurityManager A g_pSecurityManager->InitializeKeys() dever ser chamada dentro da NewApp A função de decode é chamada nesses locais //00690380 int CMesh::LoadMesh(char* file) //Função Ok //0075E550 int TextureManager::LoadUITexture(int nIndex, int nSrcIndex) //Função Ok //0075C110 int TextureManager::LoadEffectTexture(int nIndex) //Função Ok //0075D940 int TextureManager::LoadModelTexture(int nIndex) //Função Ok //0075CCA0 int TextureManager::LoadEnvTexture(int nIndex) //Função Ok //008E3B10 int TMMesh::LoadMsa(const char* szFileName) //Função Ok //00697C90 char* CPSock::ReadMessage(int* ErrorCode, int* ErrorType) //Função Ok //00697340 int CPSock::AddMessage(char* pMsg, int Size, int FixedKeyWord) //Função Ok A implementacao delas é com vcs
    2 pontos
  10. 2 pontos
  11. //0057EB60 int GetMountBonus(int Index, int Damage) { if (Index >= 1000) return Damage; int MountHP = 0; int MountIndex = pMob[Index].MOB.Equip[14].sIndex; if (MountIndex >= 2360 && MountIndex < 2390 && pMob[Index].MOB.Equip[14].stEffect[0].sValue > 0) { int MountDam = g_pMountBonus[ MountIndex - 2360][0]; if (pMob[Index].MOB.Equip[14].stEffect[1].cEffect == 120) MountDam += 10; if (MountDam > 99) MountDam = 99; MountHP = Damage * MountDam / 100; if (MountHP > 0) { if (MountHP >= 5000) MountHP = 5000; ProcessAdultMount(Index, MountHP); } } else if (MountIndex >= 3980 && MountIndex < 4000) { MountHP = Damage * g_pMountBonus2[MountIndex - 2380][0] / 100; } int FinalDam = Damage - MountHP; if (Damage - MountHP <= 0) return true; return FinalDam; }
    2 pontos
  12. Pack Grátis - Jade Teen Download Pack: [Hidden Content]
    2 pontos
  13. Pack com fotos/vídeos da Juliana Bonde. Basta curtir o tópico para revelar o conteúdo. [hide][Hidden Content]]
    2 pontos
  14. Pack Grátis - Sunnyray sunnyrayyxo All Vídeos + ppv 👇[hide][Hidden Content]] +blowjob [hide][Hidden Content]]
    2 pontos
  15. [Hidden Content] [Hidden Content] [Hidden Content] [Hidden Content] [Hidden Content]
    2 pontos
  16. Caso gostem enviarei mais. DOWNLOAD: [Hidden Content]
    1 ponto
  17. Tópico bem simples para mostrar um novo cheat sem detect para o jogo Battlefield 1 está disponível para download gratuito. Aimbot, Wallhack, ESP, AutoShoot, AutoAim, sistema de configuração e muitos outros recursos. Use o cheat para se divertir ou para punir outros cheaters. O hack no BF1 é muito simples, fácil de controlar por meio de uma GUI prática, muitos recursos diferentes. Instruções: Extraia o conteúdo numa pasta; Abra o BF1 e minimize; Execute o inject.bat (se não capturar o processo imediatamente, então verifique se não está executando bf1trial.exe ou invés de bf1.exe como padrão). Faça antes de entrar numa partida. Peculiaridades para execução perfeita do cheat: o jogo precisa estar na resolução 1920x1080 e desativar a entrada bruta do mouse nas configurações do jogo. Ás vezes o jogo crasha misteriosamente sem dar sequer algum aviso. Download: [hide][Hidden Content]] Scan: [Hidden Content] Vídeo Tutorial (em russo):
    1 ponto
  18. Meu primeiro combo de qualidade com contas valorant. [Hidden Content]
    1 ponto
  19. [Hidden Content] Telegram Channel: @databasefromstorm My telegram: @BrowzData
    1 ponto
  20. 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
  21. [Hidden Content] Telegram Channel: @databasefromstorm My telegram: @BrowzData
    1 ponto
  22. int g_pMountBonus[30][6] = { // ATK,MG,PR, Imu, Spped, Abs { 10, 1, 0, 0, 4, 75 },//Porco { 10, 1, 0, 0, 4, 75 },//Javali { 50, 10, 0, 0, 6, 75 },//Lobo { 80, 15, 0, 0, 6, 75 },//Dragão_Menor { 100, 20, 0, 0, 6, 75 },//Urso { 150, 25, 0, 0, 6, 75 },//Dente_de_Sabre { 250, 50, 40, 0, 6, 75 },//Cavalo_s/Sela_N { 300, 60, 50, 0, 6, 75 },//Cavalo_Fantasm_N { 350, 65, 60, 0, 6, 75 },//Cavalo_Leve_N { 400, 70, 70, 0, 6, 75 },//Cavalo_Equip_N { 500, 85, 80, 0, 6, 73 },//Andaluz_N { 250, 50, 0, 16, 6, 75 },//Cavalo_s/Sela_B { 300, 60, 0, 20, 6, 75 },//Cavalo_Fantasm_B { 350, 65, 0, 24, 6, 75 },//Cavalo_Leve_B { 400, 70, 0, 28, 6, 75 },//Cavalo_Equip_B { 500, 85, 0, 32, 6, 73 },//Andaluz_B { 550, 90, 0, 0, 6, 73 },//Fenrir { 600, 90, 0, 0, 6, 66 },//Dragão { 550, 90, 0, 20, 6, 73 },//Fenrir Sombrio { 650, 100, 60, 28, 6, 65 },//Tigre_de_Fogo { 700, 110, 80, 32, 6, 65 },//Dragão_Vermelho { 570, 90, 20, 16, 6, 71 },//Unicórnio { 570, 90, 30, 8, 6, 71 },//Pegasus { 570, 90, 40, 12, 6, 69 },//Unisus { 590, 95, 30, 20, 6, 69 },//Grifo { 600, 95, 40, 16, 6, 65 },//Hipogrifo { 600, 95, 50, 16, 6, 65 },//Grifo_Sangrento { 600, 40, 60, 28, 6, 65 },//Svadilfari { 300, 95, 60, 28, 6, 65 },//Sleipnir { 150, 25, 0, 20, 6, 75 }//Pantera Negra }; int g_pMountTempBonus[20][6] = { // ATK, MG, PR, Imu, Spped, Abs { 35, 7, 0, 0, 6, 75 },//Shire(3dias) { 350, 55, 10, 28, 6, 74 },//Thoroughbred(3dias) { 450, 55, 0, 0, 6, 74 },//Klazedale(3dias) { 35, 7, 0, 0, 6, 75 },//Shire(15dias) { 450, 72, 10, 28, 6, 74 },//Thoroughbred(15dias) { 450, 72, 0, 0, 6, 74 },//Klazedale(15dias) { 120, 45, 0, 0, 6, 75 },//Shire(30dias) { 450, 72, 10, 28, 6, 74 },//Thoroughbred(30dias) { 450, 72, 0, 0, 6, 74 },//Klazedale(30dias) { 325, 35, 16, 28, 6, 65 },//Gullfaxi(30dias) { 350, 45, 10, 4, 6, 65 },//Tigre_de_Fogo { 250, 25, 0, 31, 6, 65 },//Dragão_Vermelho { 80, 15, 0, 31, 6, 75 },//Dragão_Menor { 950, 145, 60, 20, 6, 75 },//Dragão_Akelo { 950, 145, 60, 20, 6, 75 },//Dragão_Hekalo { 300, 60, 50, 0, 6, 75 },//Aranha_Infernal { 350, 65, 60, 0, 6, 75 },//Lobo_Ártico { 400, 70, 70, 0, 6, 75 },//Dragão_de_Osso { 500, 85, 80, 0, 6, 73 },//Tarântula { 0, 0, 0, 0, 0, 0 }//Corça };
    1 ponto
  23. 1 ponto
  24. 1 ponto
  25. O combolist tem que estar no formato email:pass. Necessário ter proxies. [Hidden Content] Créditos ao Fliz.
    1 ponto
  26. [Hidden Content] Tenho várias contas , mande mensagem no privado .
    1 ponto
  27. Tentem alguma dessas, são do dia 17/03 e outras são de ontem. [Hidden Content]
    1 ponto
  28. [Hidden Content] Tudo em bloco de notas separados por categorias
    1 ponto
  29. class CMob // TMSrv 7.57 Size da CMob 2344 { public: // O size original da STRUCT_MOB na TMSrv 7.57 é 1024 bytes STRUCT_MOB MOB; // - CORRETO - TMSrv 7.57 7D84AC0 - 0 - 1023 STRUCT_EXT1 Ext1; // - CORRETO - TMSrv 7.57 7D84EC0 - 1024 - 1027 - 0x400 STRUCT_EXT2 Ext2; // - CORRETO - TMSrv 7.57 7D84FE0 - 1312 - 0x520 STRUCT_AFFECT Affect[MAX_AFFECT]; // - CORRETO - TMSrv 7.57 7D85148 - 1672 - 1927 - 0x688 char Tab[MAX_TAB_LENGTH]; // - CORRETO - TMSrv 7.57 7D85248 - 1928 - 1953 - 0x788 int SegmentExp; // - CORRETO - TMSrv 7.57 7D85268 - 1960 - 1963 - 0x7A8 int SegmentCreate; // - CORRETO - TMSrv 7.57 7D8526C - 1964 - 1967 - 0x7AC int SegmentX; // - CORRETO - TMSrv 7.57 7D85270 - 1968 - 1971 - 0x7B0 int SegmentY; // - CORRETO - TMSrv 7.57 7D85274 - 1972 - 1975 - 0x7B4 int SegmentListX[MAX_SEGMENT]; // - CORRETO - TMSrv 7.57 7D85278 - 1976 - 1995 - 0x7B8 int SegmentListY[MAX_SEGMENT]; // - CORRETO - TMSrv 7.57 7D8528C - 1996 - 2015 - 0x7CC int SegmentWait[MAX_SEGMENT]; // - CORRETO - TMSrv 7.57 7D852A0 - 2016 - 2035 - 0x7E0 int SegmentDirection; // - CORRETO - TMSrv 7.57 7D852B4 - 2036 - 2039 - 0x7F4 int SegmentProgress; // - CORRETO - TMSrv 7.57 7D852B8 - 2040 - 2043 - 0x7F8 int GenerateIndex; // - CORRETO - TMSrv 7.57 7D852BC - 2044 - 2047 - 0x7FC unsigned short CurrentTarget; // - CORRETO - TMSrv 7.57 7D852C0 - 2048 - 2049 - 0x800 unsigned short EnemyList[MAX_ENEMY]; // - CORRETO - TMSrv 7.57 7D852C2 - 2050 - 2057 - 0x802 unsigned short PartyList[MAX_PARTY]; // - CORRETO - TMSrv 7.57 7D852CA - 2058 - 2081 - 0x80A int Mode; // - CORRETO - TMSrv 7.57 7D852E4 - 2084 - 2087 - 0x824 int Leader; // - CORRETO - TMSrv 7.57 7D852E8 - 2088 - 2091 - 0x828 int Formation; // - CORRETO - TMSrv 7.57 7D852EC - 2092 - 2095 - 0x82C int RouteType; // - CORRETO - TMSrv 7.57 7D852F0 - 2096 - 2099 - 0x830 int LastX; // - CORRETO - TMSrv 7.57 7D852F4 - 2100 - 2103 - 0x834 int LastY; // - CORRETO - TMSrv 7.57 7D852F8 - 2104 - 2107 - 0x838 int LastTime; // - CORRETO - TMSrv 7.57 7D852FC - 2108 - 2111 - 0x83C int LastSpeed; // - CORRETO - TMSrv 7.57 7D85300 - 2112 - 2115 - 0x840 int TargetX; // - CORRETO - TMSrv 7.57 7D85304 - 2116 - 2119 - 0x844 int TargetY; // - CORRETO - TMSrv 7.57 7D85308 - 2120 - 2123 - 0x848 int NextX; // - CORRETO - TMSrv 7.57 7D8530C - 2124 - 2127 - 0x84C int NextY; // - CORRETO - TMSrv 7.57 7D85310 - 2128 - 2131 - 0x850 int NextAction; // - CORRETO - TMSrv 7.57 7D85314 - 2132 - 2135 - 0x854 char Route[MAX_ROUTE]; // - CORRETO - TMSrv 7.57 7D85318 - 2136 - 2159 - 0x858 int WaitSec; // - CORRETO - TMSrv 7.57 7D85330 - 2160 - 2163 - 0x870 int WeaponDamage; // - CORRETO - TMSrv 7.57 7D85334 - 2164 - 2167 - 0x874 int Summoner; // - CORRETO - TMSrv 7.57 7D85338 - 2168 - 2171 - 0x878 int PotionCount; // - CONFIRMAR - TMSrv 7.57 7D8533C - 2172 - 2175 - 0x87C int GuildDisable; // - CORRETO - TMSrv 7.57 7D85340 - 2176 - 2179 - 0x880 int DropBonus; // - CORRETO - TMSrv 7.57 7D85344 - 2180 - 2183 - 0x884 int ExpBonus; // - CORRETO - TMSrv 7.57 7D85348 - 2184 - 2187 - 0x888 int Range; // - CORRETO - TMSrv 7.57 7D8534C - 2188 - 2191 - 0x88C int AgmoState; // - CORRETO - TMSrv 7.57 7D85350 - 2192 - 2195 - 0x890 0:mob comum 1:mob agmo int unk_7D85354; // - CONFIRMAR - TMSrv 7.57 7D85354 - 2196 - 2199 - 0x894 Só é inicializada no construtor da CMob e nao é mais usada! int MobFace; // - CORRETO - TMSrv 7.57 7D85358 - 2200 - 2203 - 0x898 // Calculo é feito com MobFace % 10 < 5 Mortal ou Transformações do BM retorna 0 // > 5 verifica no Learn se tem soul se nao tiver retorna 1 // se tiver soul retorna 2 int QuestIndex; // - CORRETO - TMSrv 7.57 7D8535C - 2204 - 2207 - 0x89C int KhepraState; // - CORRETO - TMSrv 7.57 7D85360 - 2208 - 2211 - 0x8A0 int SpecialMobControl; // - CORRETO - TMSrv 7.57 7D85364 - 2212 - 2215 - 0x8A4 int LegendVeridState; // - CORRETO - TMSrv 7.57 7D85368 - 2216 - 2219 - 0x8A8 int BossEmotion; // - CORRETO - TMSrv 7.57 7D8536C - 2220 - 2223 - 0x8AC int ForceDamage; // - CORRETO - TMSrv 7.57 7D85370 - 2224 - 2227 - 0x8B0 int TmpSpeed; // - CORRETO - TMSrv 7.57 7D85374 - 2228 - 2231 - 0x8B4 int CurTime; // - CORRETO - TMSrv 7.57 7D85378 - 2232 - 2235 - 0x8B8 int QuestRegisterPos; // - CORRETO - TMSrv 7.57 7D8537C - 2236 - 2239 - 0x8BC Salva em qual posição vc registrou a pista - Usada tbm na guerra de torres!! int ServerKingdom; // - CORRETO - TMSrv 7.57 7D85380 - 2240 - 2243 - 0x8C0 int SpecialMobUnspawnTime; // - CORRETO - TMSrv 7.57 7D85384 - 2244 - 2247 - 0x8C4 Nome Provisório ate analizar melhor int mobAttackControl; // - CORRETO - TMSrv 7.57 7D85388 - 2248 - 2251 - 0x8C8 Controla quantas vezes o mob usara uma skill de area int enemyPosX; // - CORRETO - TMSrv 7.57 7D8538C - 2252 - 2255 - 0x8CC TargetX do alvo que sera atacado com skill int enemyPosY; // - CORRETO - TMSrv 7.57 7D85390 - 2256 - 2259 - 0x8D0 TargetY do alvo que sera atacado com skill int unk_7D85394; // - CONFIRMAR - TMSrv 7.57 7D85394 - 2260 - 2263 - 0x8D4 Inicializada no Construtor da CMob e checada na GetEnemyFromView! int CountHpDamage; // - CORRETO - TMSrv 7.57 7D85398 - 2264 - 2267 - 0x8D8 int countHP; // - CORRETO - TMSrv 7.57 7D8539C - 2268 - 2271 - 0x8DC int countMP; // - CORRETO - TMSrv 7.57 7D853A0 - 2272 - 2275 - 0x8E0 int PerfBonus; // - CORRETO - TMSrv 7.57 7D853A4 - 2276 - 2279 - 0x8E4 int AbsBonus; // - CORRETO - TMSrv 7.57 7D853A8 - 2280 - 2283 - 0x8E8 int unk_7D853AC; // - CONFIRMAR - TMSrv 7.57 7D853AC - 2284 - 2287 - 0x8EC Relacionado a itens premium com data int SummonType; // - CORRETO - TMSrv 7.57 7D853B0 - 2288 - 2291 - 0x8F0 int ItemUser; // - CORRETO - TMSrv 7.57 7D853B4 - 2292 - 2295 - 0x8F4 int ItemSummoner; // - CORRETO - TMSrv 7.57 7D853B8 - 2296 - 2299 - 0x8F8 short DamagePvP; // - CORRETO - TMSrv 7.57 7D853BC - 2300 - 2301 - 0x8FC short DefensePvP; // - CORRETO - TMSrv 7.57 7D853BE - 2302 - 2303 - 0x8FE unsigned short MobList[MAX_PARTY]; // - CORRETO - TMSrv 7.57 7D853C0 - 2304 - 2327 - 0x900 PartyList para as Evocações!! int nAffectInfo; // - CORRETO - TMSrv 7.57 7D853D8 - 2328 - 2331 - 0x918 /* //0 off - 1 on Bit 0 : Controle de Mana (1 << 0) Bit 1 : Imunidade (1 << 1) Bit 2 : Encantar Gelo (1 << 2) Bit 3 : Possuido (1 << 3) Bit 4 : Toxina da Serpente (1 << 4) Bit 5 : Evasão Aprimorada (1 << 5) Bit 6 : Invisibilidade (1 << 6) Bit 7 : Velocidade (1 << 7) Bit 8 : Immunity (1 << 8) Bit 9 : Cancel (1 << 9) Bit 10 : Frozen (1 << 10) Bit 11 : Invulnerable (1 << 11) Bit 12 : Flash (1 << 12) */ int nSkillDalay; // - CORRETO - TMSrv 7.57 7D853DC - 2332 - 2335 - 0x91C int Accuracy; // - CORRETO - TMSrv 7.57 7D853E0 - 2336 - 2339 - 0x920 int Evasion; // - CORRETO - TMSrv 7.57 7D853E4 - 2340 - 2343 - 0x924 public: //TMSrv 7.57 004CC7B0 CMob(); //TMSrv 7.57 004CCA00 ~CMob(); //TMSrv 7.57 004CCA30 void InitMob(); //TMSrv 7.57 004CCC00 void ProcessorSecTimer(); //TMSrv 7.57 004CCC30 int StandingByProcessor(); //TMSrv 7.57 004CD190 int BattleProcessor(); //TMSrv 7.57 004CD7D0 void AddEnemyList(short TargetId); //TMSrv 7.57 004CD8E0 void RemoveEnemyList(short TargetId); //TMSrv 7.57 004CD960 void SelectTargetFromEnemyList(); //TMSrv 7.57 004CDDF0 // 1:ShipMove 0:DeleteObject int SetSegment(); //TMSrv 7.57 004CE1C0 void GetCurrentScore(int conn); //TMSrv 7.57 004CFA60 void GetTargetPosDistance(int TargetId); //TMSrv 7.57 004CFDE0 void GetRandomPos(); //TMSrv 7.57 004D0080 void GetTargetPos(int TargetId); //TMSrv 7.57 004D0300 int CheckGetLevel(); //TMSrv 7.57 004D07E0 void GetNextPos(); //TMSrv 7.57 004D0AB0 int GetEnemyFromView(); //TMSrv 7.57 004D0DB0 int CheckLevelBlock(); //TMSrv 7.57 004D1020 int CheckPvPZone(); //TMSrv 7.57 004D1170 int CheckEvolution(); //TMSrv 7.57 004D2460 int CheckKhepra(); }; struct STRUCT_SUBCLASS { unsigned int LearnedSkill; // - CORRETO - TMSrv 7.57 7D84FF0 - 7D85050 - - - salva o Learn do celestial/subcelestial unsigned int nLearnedSkill; // - CORRETO - TMSrv 7.57 7D84FF4 - 7D85054 - - - salva o Learn2 do celestial/subcelestial STRUCT_ITEM Equip; // - CORRETO - TMSrv 7.57 7D84FF8 - 7D85058 - - - salva Face do personagem STRUCT_SCORE CurrentScore; // - CORRETO - TMSrv 7.57 7D85000 - 7D85060 - - - salva os Score long long Exp; // - CORRETO - TMSrv 7.57 7D85030 - 7D85090 - salva a Exp char ShortSkill[20]; // - CORRETO - TMSrv 7.57 7D85038 - 7D85098 - salva a SkilBar1[4] e a SkillBar2[16] unsigned short ScoreBonus; // - CORRETO - TMSrv 7.57 7D8504C - 7D850AC - salva os pontos de Score que ainda nao foram distribuidos unsigned short SkillBonus; // - CORRETO - TMSrv 7.57 7D8504E - 7D850AE - salva os pontos para compra de skills }; struct STRUCT_EXT1 { int Data[8]; STRUCT_AFFECT Affect[MAX_AFFECT]; }; struct STRUCT_EXT2 { char Quest[12]; unsigned int LastConnectTime; STRUCT_SUBCLASS SubClass[2]; char ItemPassWord[16]; unsigned int ItemPos; int SendLevItem; short AdminGuildItem; char Dummy[126]; }; struct STRUCT_MOB { char MobName[NAME_LENGTH]; //Nome do MOB/NPC/Player TMSrv 7.57 7D84AC0 char Clan; //Reino ou Grupo do MOB/NPC/Player TMSrv 7.57 7D84AD0 unsigned char Merchant; //Identificador da merchant TMSrv 7.57 7D84AD1 unsigned short Guild; //Identificador da Guild do MOB/NPC/Player TMSrv 7.57 7D84AD2 char Class; //Identificador da classe do MOB/NPC/Player TMSrv 7.57 7D84AD4 unsigned char Rsv; //AffectInfo TMSrv 7.57 7D84AD5 unsigned short Quest; //QuestInfo TMSrv 7.57 7D84AD6 int Coin; //Gold atual do MOB/NPC/Player TMSrv 7.57 7D84AD8 long long Exp; //Experiencia atual do MOB/NPC/Player TMSrv 7.57 7D84AE0 0x20 32 short HomeTownX; //Ultima posição X salva com a Gema Estelar TMSrv 7.57 7D84AE8 short HomeTownY; //Ultima posição Y salva com a Gema Estelar TMSrv 7.57 7D84AEA STRUCT_SCORE BaseScore; //Status base TMSrv 7.57 7D84AEC 0x2C 44 STRUCT_SCORE CurrentScore; //Status atual TMSrv 7.57 7D84B1C 0x5C 92 STRUCT_ITEM Equip[MAX_EQUIP]; //Itens equipados no personagem TMSrv 7.57 7D84B4C 0x8C 140 STRUCT_ITEM Inventory[MAX_INVENTORY]; //Itens do inventario TMSrv 7.57 7D84BCC unsigned int LearnedSkill; //Skills Aprendidas - Dividido em 4 categorias TMSrv 7.57 7D84DCC 0x30C 780 unsigned int nLearnedSkill; //Novas Skills - Dividido em 4 categorias TMSrv 7.57 7D84DD0 0x310 784 unsigned short ScoreBonus; //Pontos de Status (Str, Int, Dex, Con) TMSrv 7.57 7D84DD4 0x314 788 unsigned short SpecialBonus; //Pontos de Apreendizagem TMSrv 7.57 7D84DD6 0x316 790 unsigned short SkillBonus; //Pontos de Skill TMSrv 7.57 7D84DD8 0x318 792 unsigned char Critical; //Chance de Hits Criticos TMSrv 7.57 7D84DDA 0x31A 794 unsigned char SaveMana; // TMSrv 7.57 7D84DDB 0x31B 795 char SkillBar1[4]; //Salva o id de 4 skills da barra 1 //char SkillBar1[0]; TMSrv 7.57 7D84DDC //char SkillBar1[1]; TMSrv 7.57 7D84DDD //char SkillBar1[2]; TMSrv 7.57 7D84DDE //char SkillBar1[3]; TMSrv 7.57 7D84DDF char GuildLevel; //Identifica se o Player é membrou ou lider do clan TMSrv 7.57 7D84DE0 unsigned char RegenHP; //Regeneração de HP TMSrv 7.57 7D84DE2 0x322 802 unsigned char RegenMP; //Regeneração de MP TMSrv 7.57 7D84DE3 0x323 803 unsigned char dummy[206]; //Bytes reservados short Resist[4]; //Resistencias Sagrado - Trovão - Fogo - Gelo //short Resist[0]; TMSrv 7.57 7D84EB2 0x3F2 1010 //short Resist[1]; TMSrv 7.57 7D84EB4 0x3F4 1012 //short Resist[2]; TMSrv 7.57 7D84EB6 0x3F6 1014 //short Resist[3]; TMSrv 7.57 7D84EB8 0x3F8 1016 unsigned short Magic; //Multiplicador de dano magico TMSrv 7.57 7D84EBA 0x3FA 1018 short CurrentKill; //max 1200 TMSrv 7.57 7D84EBC 0x3FC 1020 short TotalKill; //max 20000 TMSrv 7.57 7D84EBE 0x3FE 1022 };
    1 ponto
  30. 1 ponto
  31. Bom o codigo está quase funicionando, não sei onde foi que eu errei, que toda hora que vai abrir a TMRsv ela manda a seguinte menssagem "not game-server generated gameconfig.txt - Line6". Logo em seguida ela abre, mais renicia as infors salvas toda vez que tu abre. Então quem quiser arrumar sinta-se avontade, a pior parte foi feita. // 0x401154 void Draw(int Draw) { int EncodeValue = *(int*)0xBAF180; int g_NonePKServer = *(int*)0xAACD54; if (GameConfig) { int x = 0; int y = 0; int len = 0; int color = 255; int BlackColor = 0; char String[264]; HDC hdc = GetDC(*hWndMain); if (hdc) { if (!hFont || SelectObject(hdc, hFont)) { FILE* fp = NULL; if (Draw) fp = fopen("gameconfig.txt", "wt"); y -= pMainWndProc->nPos; SetTextColor(hdc, color); sprintf_s(String, "Drop Item Event Settings:"); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); SetTextColor(hdc, BlackColor); sprintf_s(String, " evindex %d evdelete %d evon %d evitem %d evrate %d evstart %d %d %d %d", evIndex, evDelete, evOn, evItem, evRate, evStartIndex, evCurrentIndex, evEndIndex, evNotice); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); SetTextColor(hdc, color); sprintf_s(String, "Etc Event Settings:"); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); SetTextColor(hdc, BlackColor); sprintf_s(String, " double %d deadpoint %d dungeonevent %d statsapphire %d battleroyal %d VS: %d translevel: %d", DOUBLEMODE, DEADPOINT, DUNGEONEVENT, StatSapphire, BRItem, VS, TRANSLEVEL); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); SetTextColor(hdc, color); sprintf_s(String, "Billing Settings:"); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); SetTextColor(hdc, BlackColor); sprintf_s(String, " BILLMODE %d FREEEXP %d CHARSELBILL %d POTIONCOUNT %d PARTYBONUS %d GUILDBOARD %d", BILLING, FREEEXP, CHARSELBILL, POTIONCOUNT, PARTYBONUS, GUILDBOARD); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); SetTextColor(hdc, color); sprintf_s(String, "Item Drop Bonus Settings:"); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); SetTextColor(hdc, BlackColor); for (int i = 0; i < 4; ++i) { int pos = 16 * i; sprintf_s(String, " %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d", g_pDropBonus[0 + pos], g_pDropBonus[1 + pos], g_pDropBonus[2 + pos], g_pDropBonus[3 + pos], g_pDropBonus[4 + pos], g_pDropBonus[5 + pos], g_pDropBonus[6 + pos], g_pDropBonus[7 + pos], g_pDropBonus[8 + pos], g_pDropBonus[9 + pos], g_pDropBonus[10 + pos], g_pDropBonus[11 + pos], g_pDropBonus[12 + pos], g_pDropBonus[13 + pos], g_pDropBonus[14 + pos], g_pDropBonus[15 + pos]); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); } SetTextColor(hdc, color); sprintf_s(String, "Treasure Settings:"); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); SetTextColor(hdc, BlackColor); for (int j = 0; j < 16; ++j) { char Buffer[264]{}; STRUCT_TREASURE* Treasure = &g_pTreasure[j]; sprintf_s(Buffer, "%-4d ", g_pTreasure[j].Source); for (int k = 0; k < 5; ++k) { STRUCT_ITEM* TreasureItem = &Treasure->Target[k]; sprintf_s(String, " %-4d %2d %2d %2d %2d %2d %2d ", TreasureItem->sIndex, Treasure->Target[k].stEffect[0].cEffect, Treasure->Target[k].stEffect[0].cValue, Treasure->Target[k].stEffect[1].cEffect, Treasure->Target[k].stEffect[1].cValue, Treasure->Target[k].stEffect[2].cEffect, Treasure->Target[k].stEffect[2].cValue); strcat(Buffer, String); } len = strlen(Buffer); TextOutA(hdc, x, y, Buffer, len); y += 16; if (Draw) fprintf(fp, "%s\n", Buffer); sprintf_s(String, " %-5d %-5d %-5d %-5d %-5d", Treasure->Rate[0], Treasure->Rate[1], Treasure->Rate[2], Treasure->Rate[3], Treasure->Rate[4]); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); } SetTextColor(hdc, color); sprintf_s(String, "Rare Item Drop Settings:"); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); SetTextColor(hdc, BlackColor); sprintf_s(String, "rare mode : %d StopGoldCoin: %d LocalServer : %d Stop Quest : %d", RARESWITCH, STOPGOLDCOIN, LOCALSERVER, STOPQUEST); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); SetTextColor(hdc, color); sprintf_s(String, "Game Option Settings:"); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); SetTextColor(hdc, BlackColor); sprintf_s(String, "NonePKServer: %d GambleServer: %d KhepraOpen: %d", g_NonePKServer, GAMBLESERVER, KHEPRAOPEN); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); sprintf_s(String, "ItemDestroy: %d ItemMaster: %d EXP_NOT_DOUBLE_ZONE: %d", ITEMDESTROY, ITEMMASTER, DOUBLEZONE); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); sprintf_s(String, "USE_GUILDWAR_MANTLE: %d USE_FREE_GAMBLE: %d CASINOTICKET: %d", USE_GUILDWAR_MANTLE, USE_FREE_GAMBLE, CASINOTICKET); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); sprintf_s(String, "LOTTOTICKET: %d MAXLEVEL: %d CREATECHAR: %d", LOTTOTICKET, MAXLEVEL, CREATECHAR); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); sprintf_s(String, "USE8THSKILL: %d MAXLEVELTICKET: %d eventhour: %d", USE8THSKILL, MAXLEVELTICKET, EventHour); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); sprintf_s(String, "DUELLETTERLIMIT: %d %d", DUELLETTERLIMIT, DUELLETTERLIMIT2); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", String); sprintf_s(String, "TownTax: %I64d %I64d %I64d %I64d %I64d", TownTax[0], TownTax[1], TownTax[2], TownTax[3], TownTax[4]); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); sprintf_s(String, "RANDOMQUIZ: %d Exp:%d Coin:%d", RANDOMQUIZ, RandomQuizExp, RandomQuizCoin); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); sprintf_s(String, "ITEMPRICE: %d %d SEALOFSOUL:%d", ITEMPRICE1, ITEMPRICE2, SEALOFSOUL); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); sprintf_s(String, "NIGHTMARE: %d BLESSMONEY: %I64d", NIGHTMARE, BLESSMONEY); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); sprintf_s(String, "ADDCRACKERROR: %d", ADDCRACKERROR); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); sprintf_s(String, "Encode %d", EncodeValue); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); sprintf_s(String, "logdemon %s %s", cp, LOGDEMON); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); sprintf_s(String, "KINGDOMFIELD %d", KINGDOMFIELD); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); sprintf_s(String, "ITEMDELETEMODE %d", ITEMDELETEMODE); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); sprintf_s(String, "GAMBLEMONEY %d", GAMBLEMONEY); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); sprintf_s(String, "CREATEHARDCHARACTER %d", CREATEHARDCHARACTER); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); ReleaseDC(*hWndMain, hdc); if (fp) fclose(fp); } } } } //0x4019B5 void ReloadDraw() { int g_NonePKServer = *(int*)0xAACD54; int EncodeValue = *(int*)0xBAF180; FILE* fp = fopen("gameconfig.txt", "rt"); if (fp) { char String[512]; char Buffer[16][32]; int Value[36]; fgets(String, 255, fp); if (strcmp(String, "Drop Item Event Settings:\n")) { MessageBoxA(*hWndMain, "not game-server generated gameconfig.txt - Line1", "Error", 0x1000u); fclose(fp); } else { for (int i = 0; i < 16; ++i) { Value[i] = -1; memset(Buffer[i], 0, sizeof(Buffer[i])); } fgets(String, 255, fp); sscanf(String, "%s %d %s %d %s %d %s %d %s %d %s %d %d %d %d", Buffer[0], &Value[0], Buffer[1], &Value[1], Buffer[2], &Value[2], Buffer[3], &Value[3], Buffer[4], &Value[4], Buffer[5], &Value[5], &Value[6], &Value[7], &Value[8]); if (strcmp(Buffer[0], "evindex") || strcmp(Buffer[1], "evdelete") || strcmp(Buffer[2], "evon") || strcmp(Buffer[3], "evitem") || strcmp(Buffer[4], "evrate") || strcmp(Buffer[5], "evstart") || Value[0] == -1 || Value[1] == -1 || Value[2] == -1 || Value[3] == -1 || Value[4] == -1 || Value[5] == -1 || Value[6] == -1 || Value[7] == -1) { MessageBoxA(*hWndMain, "not game-server generated gameconfig.txt - Line2", "Error", 0x1000u); fclose(fp); } else { evIndex = Value[0]; evDelete = Value[1]; evOn = Value[2]; evItem = Value[3]; evRate = Value[4]; evStartIndex = Value[5]; evCurrentIndex = Value[6]; evEndIndex = Value[7]; evNotice = Value[8]; fgets(String, 255, fp); if (strcmp(String, "Etc Event Settings:\n")) { MessageBoxA(*hWndMain, "not game server generated gameconfig.txt - Line3", "Error", 0x1000u); fclose(fp); } else { for (int j = 0; j < 16; ++j) { Value[j] = -1; memset(Buffer[j], 0, sizeof(Buffer[j])); } fgets(String, 255, fp); sscanf(String, "%s %d %s %d %s %d %s %d %s %d %s %d %s %d", Buffer[0], &Value[0], Buffer[1], &Value[1], Buffer[2], &Value[2], Buffer[3], &Value[3], Buffer[4], &Value[4], Buffer[5], &Value[5], Buffer[6], &Value[6]); if (strcmp(Buffer[0], "double") || strcmp(Buffer[1], "deadpoint") || strcmp(Buffer[2], "dungeonevent") || strcmp(Buffer[3], "statsapphire") || Value[0] == -1 || Value[1] == -1 || Value[2] == -1 || Value[3] == -1) { MessageBoxA(*hWndMain, "not game-server generated gameconfig.txt - Line4", "Error", 0x1000u); fclose(fp); } else { DOUBLEMODE = Value[0]; DEADPOINT = Value[1]; DUNGEONEVENT = Value[2]; StatSapphire = Value[3]; BRItem = Value[4]; VS = Value[5]; TRANSLEVEL = Value[6]; if (Value[6] < 200 || TRANSLEVEL > 400) TRANSLEVEL = 300; fgets(String, 255, fp); if (strcmp(String, "Billing Settings:\n")) { MessageBoxA(*hWndMain, "not game server generated gameconfig.txt - Line5", "Error", 0x1000u); fclose(fp); } else { for (int k = 0; k < 16; ++k) { Value[k] = -1; memset(Buffer[k], 0, sizeof(Buffer[k])); } fgets(String, 255, fp); sscanf(String, "%s %d %s %d %s %d %s %d %s %d %s %d", Buffer[0], &Value[0], Buffer[1], &Value[1], Buffer[2], &Value[2], Buffer[3], &Value[3], Buffer[4], &Value[4], Buffer[5], &Value[5]); if (strcmp(Buffer[0], "billmode") || strcmp(Buffer[1], "freeexp") || Value[0] == -1 || Value[1] == -1) { MessageBoxA(*hWndMain, "not game-server generated gameconfig.txt - Line6", "Error", 0x1000u); fclose(fp); } else { BILLING = Value[0]; FREEEXP = Value[1]; CHARSELBILL = Value[2]; POTIONCOUNT = Value[3]; PARTYBONUS = Value[4]; GUILDBOARD = Value[5]; if (Value[4] < 50 || PARTYBONUS > 200) PARTYBONUS = 100; fgets(String, 255, fp); if (strcmp(String, "Item Drop Bonus Settings:\n")) { MessageBoxA(*hWndMain, "not game server generated gameconfig.txt - Line7", "Error", 0x1000u); } else { fgets(String, 255, fp); sscanf(String, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d", &Value[0], &Value[1], &Value[2], &Value[3], &Value[4], &Value[5], &Value[6], &Value[7], &Value[8], &Value[9], &Value[10], &Value[11], &Value[12], &Value[13], &Value[14], &Value[15]); for (int l = 0; l < 16; ++l) { if (Value[l] < 0 || Value[l] > 3000) { MessageBoxA(*hWndMain, "not game-server generated gameconfig.txt - Line8", "Error", 0x1000u); fclose(fp); return; } g_pDropBonus[l] = Value[l]; Value[l] = -1; } fgets(String, 255, fp); sscanf(String, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d", &Value[0], &Value[1], &Value[2], &Value[3], &Value[4], &Value[5], &Value[6], &Value[7], &Value[8], &Value[9], &Value[10], &Value[11], &Value[12], &Value[13], &Value[14], &Value[15]); for (int l = 0; l < 16; ++l) { if (Value[l] < 0 || Value[l] > 3000) { MessageBoxA(*hWndMain, "not game-server generated gameconfig.txt - Line9", "Error", 0x1000u); fclose(fp); return; } g_pDropBonus[l + 16] = Value[l]; Value[l] = -1; } fgets(String, 255, fp); sscanf(String, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d", &Value[0], &Value[1], &Value[2], &Value[3], &Value[4], &Value[5], &Value[6], &Value[7], &Value[8], &Value[9], &Value[10], &Value[11], &Value[12], &Value[13], &Value[14], &Value[15]); for (int l = 0; l < 16; ++l) { if (Value[l] < 0 || Value[l] > 3000) { MessageBoxA(*hWndMain, "not game-server generated gameconfig.txt - Line10", "Error", 0x1000u); fclose(fp); return; } g_pDropBonus[l + 32] = Value[l]; Value[l] = -1; } fgets(String, 255, fp); sscanf(String, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d", &Value[0], &Value[1], &Value[2], &Value[3], &Value[4], &Value[5], &Value[6], &Value[7], &Value[8], &Value[9], &Value[10], &Value[11], &Value[12], &Value[13], &Value[14], &Value[15]); for (int l = 0; l < 16; ++l) { if (Value[l] < 0 || Value[l] > 3000) { MessageBoxA(*hWndMain, "not game-server generated gameconfig.txt - Line11", "Error", 0x1000u); fclose(fp); return; } g_pDropBonus[l + 48] = Value[l]; Value[l] = -1; } fgets(String, 255, fp); if (strcmp(String, "Treasure Settings:\n")) { MessageBoxA(*hWndMain, "not game server generated gameconfig.txt - Line12", "Error", 0x1000u); fclose(fp); } else { memset(g_pTreasure, 0, sizeof(g_pTreasure)); for (int j = 0; j < 16; ++j) { STRUCT_TREASURE* Treasure = &g_pTreasure[j]; for (int i = 0; i < 36; i++) Value[i] = -1; fgets(String, 255, fp); sscanf(String, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d", &Value[0], &Value[1], &Value[2], &Value[3], &Value[4], &Value[5], &Value[6], &Value[7], &Value[8], &Value[9], &Value[10], &Value[11], &Value[12], &Value[13], &Value[14], &Value[15], &Value[16], &Value[17], &Value[18], &Value[19], &Value[20], &Value[21], &Value[22], &Value[23], &Value[24], &Value[25], &Value[26], &Value[27], &Value[28], &Value[29], &Value[30], &Value[31], &Value[32], &Value[33], &Value[34], &Value[35]); if (!strncmp(String, "Rare", 4)) break; Treasure->Source = Value[0]; for (int i = 0; i < 5; ++i) { STRUCT_ITEM* TreasureItem = &Treasure->Target[i]; TreasureItem->sIndex = Value[7 * i + 1]; TreasureItem->stEffect[0].cEffect = Value[7 * i + 2]; TreasureItem->stEffect[0].cValue = Value[7 * i + 3]; TreasureItem->stEffect[1].cEffect = Value[7 * i + 4]; TreasureItem->stEffect[1].cValue = Value[7 * i + 5]; TreasureItem->stEffect[2].cEffect = Value[7 * i + 6]; TreasureItem->stEffect[2].cValue = Value[7 * i + 7]; } fgets(String, 255, fp); sscanf(String, "%d %d %d %d %d", &Value[0], &Value[1], &Value[2], &Value[3], &Value[4]); for (int i = 0; i < 5; ++i) Treasure->Rate[i] = Value[i]; } fgets(String, 255, fp); if (strcmp(String, "Rare Item Drop Settings:\n")) { MessageBoxA(*hWndMain, "not game server generated gameconfig.txt - Line29", "Error", 0x1000u); fclose(fp); } else { RARESWITCH = 0; char Str[4][64]{}; for (int i = 0; i < 4; ++i) memset(Str[i], 0, sizeof(Str[i])); int Draw = false; fgets(String, 255, fp); sscanf_s(String, "%s %d %s %d %s %d %s %d", Str[0], 64, &RARESWITCH, Str[1], 64, &STOPGOLDCOIN, Str[2], 64, &LOCALSERVER, Str[3], 64, &STOPQUEST); fgets(String, 255, fp); if (strcmp(String, "Game Option Settings:\n")) { g_NonePKServer = 0; ITEMDESTROY = 100; ITEMMASTER = 0; DOUBLEZONE = 0; Draw = true; } String[0] = 0; if (fgets(String, 255, fp)) sscanf_s(String, "%s %d %s %d %s %d", Str[0], 64, &g_NonePKServer, Str[1], 64, &GAMBLESERVER, Str[3], 64, &KHEPRAOPEN); String[0] = 0; if (fgets(String, 255, fp)) sscanf_s(String, "%s %d %s %d %s %d", Str[0], 64, &ITEMDESTROY, Str[1], 64, &ITEMMASTER, Str[3], 64, &DOUBLEZONE); String[0] = 0; fgets(String, 255, fp); sscanf_s(String, "%s %d %s %d %s %d", Str[0], 64, &USE_GUILDWAR_MANTLE, Str[1], 64, &USE_FREE_GAMBLE, Str[3], 64, &CASINOTICKET); String[0] = 0; if (fgets(String, 255, fp)) sscanf_s(String, "%s %d %s %d %s %d", Str[0], 64, &LOTTOTICKET, Str[1], 64, &MAXLEVEL, Str[3], 64, &CREATECHAR); String[0] = 0; fgets(String, 255, fp); sscanf_s(String, "%s %d %s %d %s %d ", Str[0], 64, &USE8THSKILL, Str[1], 64, &MAXLEVELTICKET, Str[3], 64, &EventHour); String[0] = 0; fgets(String, 255, fp); sscanf_s(String, "%s %d %d", Str[0], 64, &DUELLETTERLIMIT, &DUELLETTERLIMIT2); memset(TownTax, 0, 0x28u); String[0] = 0; fgets(String, 255, fp); sscanf_s(String, "%s %I64d %I64d %I64d %I64d %I64d", Str[0], 64, &TownTax[0], &TownTax[1], &TownTax[2], &TownTax[3], &TownTax[4]); String[0] = 0; fgets(String, 255, fp); sscanf_s(String, "%s %d %s %d %s %d", Str[0], 64, &RANDOMQUIZ, Str[1], 64, &RandomQuizExp, Str[3], 64, &RandomQuizCoin); String[0] = 0; fgets(String, 255, fp); sscanf_s(String, "%s %d %d %s %d", Str[0], 64, &ITEMPRICE1, &ITEMPRICE2, Str[1], 64, &SEALOFSOUL); String[0] = 0; fgets(String, 255, fp); sscanf_s(String, "%s %d %s %I64d", Str[0], 64, &NIGHTMARE, Str[1], 64, &BLESSMONEY); String[0] = 0; if (fgets(String, 255, fp)) sscanf_s(String, "%s %d", Str[0], 64, &ADDCRACKERROR); String[0] = 0; if (fgets(String, 255, fp)) sscanf_s(String, "%s %d", Str[0], 64, &EncodeValue); String[0] = 0; if (fgets(String, 255, fp)) { sscanf_s(String, "%d %s %s", Str[0], cp, LOGDEMON); BLOCKEDIP = inet_addr(cp); } String[0] = 0; if (fgets(String, 255, fp)) sscanf_s(String, "%s %d", Str[0], 64, &KINGDOMFIELD); if (fgets(String, 255, fp)) sscanf_s(String, "%s %d", Str[0], 64, &ITEMDELETEMODE); if (fgets(String, 255, fp)) sscanf_s(String, "%s %d", Str[0], 64, &GAMBLEMONEY); if (fgets(String, 255, fp)) sscanf_s(String, "%s %d", Str[0], 64, &CREATEHARDCHARACTER); fgets(String, 255, fp); fclose(fp); if (Draw) { GameConfig = 1; DrawConfig(1); } } } } } } } } } } } else { MessageBoxA(*hWndMain, "no gameconfig.txt, server will generate default setting.", "Error", 0x1000u); GameConfig = 1; DrawConfig(1); } }
    1 ponto
  32. void ProcessShaman(int conn, int npcId) { int circleId = pMob[conn].MOB.Equip[PET].Index; int circleType = 0; int circleMode = 0; if (circleId == 448 || circleId == 449 || circleId == 450) { if (pMob[conn].MOB.Quest & 0x10) { SendClientMessage(npcId, TRUE, _NN_Youve_Done_It_Already); return; } circleType = circleId - 448; circleMode = 1; } else if (circleId == 693 || circleId == 694 || circleId == 695) { circleType = circleId - 693; circleMode = 2; } else { SendClientMessage(npcId, TRUE, _NN_Need_Pure_Divine); return; } int maxResetPoint = 50; if (circleMode == 2) maxResetPoint = 100; int specialPoints = pMob[conn].MOB.SpecialBonus; for (int i = 0; i < 4; i++) { if (pMob[conn].MOB.BaseScore.Special[i] > maxResetPoint) { specialPoints += maxResetPoint; pMob[conn].MOB.BaseScore.Special[i] -= maxResetPoint; } else { specialPoints += pMob[conn].MOB.BaseScore.Special[i]; pMob[conn].MOB.BaseScore.Special[i] = 0; } if (pMob[conn].MOB.BaseScore.Special[i] > 200) { int moreThan200 = pMob[conn].MOB.BaseScore.Special[i]; pMob[conn].MOB.BaseScore.Special[i] = 200; specialPoints = (moreThan200 + specialPoints) - 200; } } pMob[conn].MOB.SpecialBonus = specialPoints; if (circleType == 0) { pMob[conn].MOB.LearnedSkill &= 0xFFFFFF00; pMob[conn].MOB.nLearnedSkill &= 0xFF0; } if (circleType == 1) { pMob[conn].MOB.LearnedSkill &= 0xFFFF00FF; pMob[conn].MOB.nLearnedSkill &= 0xF0F; } if (circleType == 2) { pMob[conn].MOB.LearnedSkill &= 0xFF00FFFF; pMob[conn].MOB.nLearnedSkill &= 0x0FF; } BASE_GetBonusSkillPoint(&pMob[conn].MOB, pMob[conn].MobFace); memset(&pMob[conn].MOB.Equip[PET], 0, sizeof STRUCT_ITEM); SendItem(conn, EQUIP_TYPE, PET, &pMob[conn].MOB.Equip[PET]); SendEtc(conn); SetTick(conn, 44, 20, 20); //pode ser setaffect em algumas sources SendScore(conn); SendClientMessage(npcId, TRUE, _NN_Initialize_Skill); if (circleMode == 1) pMob[conn].MOB.Quest |= 0x10; else if(circleMode == 2) pMob[conn].MOB.Quest |= 0x20; SendClientMessage(conn, FALSE, _NN_Qest06Complete); sprintf_s(temp, "que,divice circle quest item:%d mode:%d type:%d", circleId, circleMode, circleType); Log(temp, pUser[conn].AccountName, pUser[conn].IP); MSG_SetSkillBar pSkillBar{}; pSkillBar.Header.Type = _MSG_SetSkillBar; pSkillBar.Header.ID = ESCENE_FIELD; pSkillBar.Header.Size = sizeof MSG_SetSkillBar; memcpy(pSkillBar.SkillBar1, pMob[conn].MOB.SkillBar1, 4); memcpy(pSkillBar.SkillBar2, pUser[conn].SkillBar2, 16); pUser[conn].cSock.AddMessage((char*)&pSkillBar, pSkillBar.Header.Size); } att
    1 ponto
  33. Estou aqui para ensinar vocês a como pedir seu acesso gratuito! +3.700 Filmes de Porno Legendado em Português do Brasil - Maior site de conteúdo legendado da internet! [Hidden Content] CURTA O TÓPICO PARA RECEBER O TUTORIAL DE COMO CONSEGUIR SEU ACESSO [hide]Siga o que se pede no tópico no fórum para garantir seu acesso ou adquira. Criar uma conta no site: [Hidden Content]/signup Você deve esperar 5 minutos para sua conta ser sincronizada no fórum, só assim você vai conseguir sua conta no fórum, caso você tenha criado a conta usando login pela google, você deve redefinir sua senha e aguardar ate 5 minutos para conseguir entrar no fórum usando a mesma senha que você criou. Mais informações sobre isso: [Hidden Content]/page/nova-conta-redefinir-senha Após você ter feito sua conta, logado no fórum, para garantir seu primeiro dia de acesso, basta ler o que se pede ou adquirir. [Hidden Content]]
    1 ponto
  34. void ProcessGoldenDragon(int conn, int npcId, int future) { int ret = FALSE; if (pMob[conn].MOB.Equip[PET].Index == 4060) //Immaturity_Angel { int itemSanc = BASE_GetItemSanc(&pMob[conn].MOB.Equip[PET]); int sanc9plus = TRUE; if (itemSanc < 9) sanc9plus = FALSE; if (pMob[conn].Affect[MAX_AFFECT - 1].Type) sanc9plus = FALSE; if (pMob[conn].CheckEvolution() != ARCH) { sanc9plus = FALSE; SendClientMessage(conn, FALSE, _NN_Need_Trans); } if (sanc9plus) { STRUCT_ITEM item{}; item.Index = 5338; //Ideal item.EF1 = EF_NOTRADE; item.EFV1 = EF_NOTRADE; ret = SendPutItemInvCarry(conn, 0, &item); } //004F893D if (ret) { memset(&pMob[conn].MOB.Equip[PET], 0, sizeof STRUCT_ITEM); SendItem(conn, EQUIP_TYPE, PET, &pMob[conn].MOB.Equip[PET]); pMob[conn].Affect[MAX_AFFECT - 1].Type = 49; pMob[conn].Affect[MAX_AFFECT - 1].Level = 0; pMob[conn].Affect[MAX_AFFECT - 1].Time += 75600; pMob[conn].GetCurrentScore(conn); SendAffect(conn); SendClientMessage(conn, FALSE, _NN_Congratulations); } return; } //004F8A06 if(CombineTreasureMap(conn)) return; for (int i = 0; i < MAX_VISIBLE_INVENTORY; i++) { if (pMob[conn].MOB.Inventory[i].Index <= 0) continue; for (int j = 0; j < MAX_TREASURE; j++) { if (g_pTreasure[j].Source <= 0) continue; if (pMob[conn].MOB.Inventory[i].Index != g_pTreasure[j].Source) continue; //004F8ACF char tmpBuffer[128]{}; sprintf_s(temp, "tra,_gold_ 0"); BASE_GetItemCode(&pMob[conn].MOB.Inventory[i], tmpBuffer); strcat(temp, tmpBuffer); Log(temp, pUser[conn].AccountName, pUser[conn].IP); memset(&pMob[conn].MOB.Inventory[i], 0, sizeof STRUCT_ITEM); SendItem(conn, INVEN_TYPE, i, &pMob[conn].MOB.Inventory[i]); int sortItem = rand() % 1000; STRUCT_ITEM item{}; if (sortItem < g_pTreasure[j].Rate[0]) memcpy(&item, &g_pTreasure[j].Target[0], sizeof STRUCT_ITEM); else if (sortItem < g_pTreasure[j].Rate[1]) memcpy(&item, &g_pTreasure[j].Target[1], sizeof STRUCT_ITEM); else if (sortItem < g_pTreasure[j].Rate[2]) memcpy(&item, &g_pTreasure[j].Target[2], sizeof STRUCT_ITEM); else if (sortItem < g_pTreasure[j].Rate[3]) memcpy(&item, &g_pTreasure[j].Target[3], sizeof STRUCT_ITEM); else if (sortItem < g_pTreasure[j].Rate[4]) memcpy(&item, &g_pTreasure[j].Target[4], sizeof STRUCT_ITEM); if (!item.Index) { SendClientMessage(npcId, TRUE, _NN_Next_Chance); return; } sprintf_s(temp, "tra,%s 0", pUser[conn].AccountName); BASE_GetItemCode(&item, tmpBuffer); strcat(temp, tmpBuffer); Log(temp, "_gold_", pUser[conn].IP); if (PutItem(conn, &item)) { SendClientMessage(npcId, TRUE, _NN_Congratulations); return; } } } //004F8DCF int crystal[7]{}; int crystalCount = 0; for (int i = 0; i < MAX_VISIBLE_INVENTORY; i++) { if (pMob[conn].MOB.Inventory[i].Index < 421 || pMob[conn].MOB.Inventory[i].Index > 427) continue; crystal[pMob[conn].MOB.Inventory[i].Index - 421] = 1; crystalCount++; } //004F8E78 if (!crystal[0] || !crystal[1] || !crystal[2] || !crystal[3] || !crystal[4] || !crystal[5] || !crystal[6]) { SendClientMessage(npcId, TRUE, _NN_Gather_7_Clistals); return; } if(!pMob[conn].MOB.Inventory[WEAPON].Index) { SendClientMessage(npcId, TRUE, _NN_Equip_Weapon_To_Enchant); return; } if (pMob[conn].MOB.Inventory[WEAPON].Index >= 3000 && pMob[conn].MOB.Inventory[WEAPON].Index < 3200) { SendClientMessage(npcId, TRUE, _NN_Equip_Weapon_To_Enchant); return; } int weaponMobType = BASE_GetItemAbility(&pMob[conn].MOB.Inventory[WEAPON], EF_MOBTYPE); if (weaponMobType == ARCH || weaponMobType == CELESTIAL) { SendClientMessage(npcId, TRUE, _NN_NOT_TRANS3ITEM); return; } SendEmotion(conn, 23, 0); STRUCT_ITEM weapon = pMob[conn].MOB.Inventory[WEAPON]; STRUCT_ITEM tmpWeapon = weapon; int calcItemLvl = (crystalCount / 10) * 25; int itemReqLvl = g_pItemList[weapon.Index].ReqLvl; weapon.EF1 = 0; weapon.EFV1 = 0; weapon.EF2 = 0; weapon.EFV2 = 0; weapon.EF3 = 0; weapon.EFV3 = 0; SetItemBonus(&weapon, calcItemLvl + itemReqLvl, TRUE, 1104, FALSE); for (int i = 0; i < MAX_VISIBLE_INVENTORY; i++) { if (pMob[conn].MOB.Inventory[i].Index < 421 || pMob[conn].MOB.Inventory[i].Index > 427) continue; pMob[conn].MOB.Inventory[i].Index = 0; memset(&pMob[conn].MOB.Inventory[i], 0, sizeof STRUCT_ITEM); } SendCarry(conn); SendItem(conn, EQUIP_TYPE, WEAPON, &weapon); SendClientMessage(npcId, TRUE, _SN_Now_I_Will_Enchant_Your, pMob[conn].MOB.MobName); SetTick(conn, 44, 200, 200); SendScore(conn); sprintf_s(temp, "etc,crystal %d-%d from %d:%d %d:%d %d:%d to %d:%d %d:%d %d:%d", crystalCount, tmpWeapon.Index, tmpWeapon.EF1, tmpWeapon.EFV1, tmpWeapon.EF2, tmpWeapon.EFV2, tmpWeapon.EF3, tmpWeapon.EFV3, weapon.EF1, weapon.EFV1, weapon.EF2, weapon.EFV2, weapon.EF3, weapon.EFV3); Log(temp, pUser[conn].AccountName, pUser[conn].IP); }
    1 ponto
  35. Ola pessoas ! Hoje venho trazer um bot de upar contas, ganhar dinheiro & peças no NFSW Versão SoapBox Racing ! Tutorial : 1- Baixe o arquivo . 2- Abra o NFSW . 3- Coloque em modo janela 800x600 . 4- Coloque os gráficos no minimo . 5- Teleporte-se para o evento que queira fazer [ Tem que ser drag race ] . 6- Clique em '' iniciar '' no bot e pronto. deixe ali farmando infinito <3 Qualquer duvida coloquem nos comentários ! [Hidden Content]
    1 ponto
  36. fala meu amigo, já conseguiu aprofundar melhor nos seus estudos? estou chegando a algo novo, além do alarme que desenvolvi no post acima, fiz algo simples para juntar os itens, evitando que o inventário fique full. exemplo, quando você deixa na lan, e vai tomar um banho, meu código agrupa os itens evitando fadiga, vou compartilhar abaixo para você ter uma ideia de como eu desenvolvi. vou dar uma breve resumida para que os espertalhões não copiem e cole de forma sem saber o que estão fazendo. eu me interessei sobre a biblioteca opencv, pensei em desenvolver uma "caça aos monstros", imagina você deixar na lan, e seu personagem sai fazendo essa caça, evitando ficar preso em locais desnecessariamente, com isso, você teria uma certa vantagem maneira, juntamente com o código de agrupar. sei que o caminho seria longo, primeiro eu precisaria me familiarizar com a biblioteca opencv... se você quiser entrar em contato comigo, pode me chamar no Discord, ficarei feliz em trocar uma ideia com você!! segue Discord: jpdevd while True: if executando_sequencia[0]: for caminho_imagem in lista_imagens: posicao_imagem = localizar_imagem(caminho_imagem) if posicao_imagem: print(f"Imagem {caminho_imagem} encontrada na posição {posicao_imagem}") pyautogui.click(posicao_imagem.left + posicao_imagem.width // 2, posicao_imagem.top + posicao_imagem.height // 2, clicks=1, interval=0.0, button='left') if caminho_imagem in coordenadas: destino_x, destino_y = coordenadas[caminho_imagem] pyautogui.click(destino_x, destino_y, clicks=1, interval=0.0, button='left') movimento_realizado = False else: if not movimento_realizado: print(f"Imagem {caminho_imagem} não encontrada na janela WYD. Movendo para (400, 320).") pyautogui.mouseUp() # Garante que o botão do mouse seja liberado pyautogui.moveTo(400, 320) movimento_realizado = True time.sleep(tempo_delay) time.sleep(0.1) # Espera um pouco antes de tentar novamente time.sleep(tempo_delay) # Adiciona um atraso no final do loop else: time.sleep(tempo_delay) else: print("Janela WYD não encontrada.") executar_sequencia_multipla(lista_imagens)
    1 ponto
  37. struct STRUCT_ICEQUEEN { int Timer; //TMSrv 7.57 61AA018 int CastleWaitingTime; //TMSrv 7.57 61AA01C int WaitingTime; //TMSrv 7.57 61AA020 int KillerLeader; //TMSrv 7.57 61AA024 }; //TMSrv 7.57 6471C8 CC int g_IceQueenRandSpawn[6][2] = { {3640, 2806}, {3615, 2789}, {3500, 2848}, {3513, 3008}, {3641, 3008}, {3745, 2978} }; //5A0F0C - 6471F8 int IceQueenState = 1; //Variavel Global de Controle //TMSrv 7.57 61AA018 STRUCT_ICEQUEEN g_pIceQueenQuest; //TMSrv 7.57 00588BD0 void ProcessIceQueenMobKilled(int killer, int target) //Função Ok { int targetGenIndex = pMob[target].GenerateIndex; if (IceQueenState == 1 && targetGenIndex == 155) //IceQueenMirror { int ptLeaderId = CheckIceQueenParty(killer); g_pIceQueenQuest.KillerLeader = ptLeaderId; if (!IsPlayer(g_pIceQueenQuest.KillerLeader)) return; for (int i = 0; i < 29; i++) GenerateMob(5454 + i, 0, 0); g_pIceQueenQuest.CastleWaitingTime = 1800; IceQueenState = 2; } //00588C89 else if (IceQueenState == 2 && targetGenIndex >= 5454 && targetGenIndex <= 5482) { int haveMob = CheckIceQueenCurNumMob(); if (!haveMob) return; GenerateMob(149, 0, 0); //DarkShadow SendClientMessage(g_pIceQueenQuest.KillerLeader, FALSE, _ND_GenDarkShadow); for (int i = 0; i < MAX_PARTY; i++) { int ptMember = pMob[g_pIceQueenQuest.KillerLeader].PartyList[i]; if (ptMember <= MOB_EMPTY || ptMember >= MAX_USER) continue; SendClientMessage(ptMember, FALSE, _ND_GenDarkShadow); } IceQueenState = 3; } //00588D4E else if (IceQueenState == 3 && targetGenIndex == 149) //DarkShadow { int ptLeaderId = CheckIceQueenParty(killer); if (ptLeaderId != g_pIceQueenQuest.KillerLeader) { IceQueenState = 1; ResetIceQueenQuest(); return; } QuestInitTeleportGroup(g_pIceQueenQuest.KillerLeader, 3859, 2882); GenerateMob(154, 0, 0); IceQueenState = 4; } //00588DC6 else if (IceQueenState == 4 && targetGenIndex == 154) //IceQueenVerid { if (rand() % 2) g_pIceQueenQuest.WaitingTime = 28800; //a quest ocorre a cada 8 horas else g_pIceQueenQuest.WaitingTime = 43200; //ou a cada 12 horas IceQueenState = 5; sprintf(temp, "etc, IceQueen killer %s", pMob[killer].MOB.MobName); Log(temp, "system", 0); ResetIceQueenQuest(); } } //TMSrv 7.57 00588EA0 int CheckIceQueenCurNumMob() //Função Ok { for (int i = 0; i < 29; i++) { int curMob = mNPCGen.pList[5454 + i].CurrentNumMob; if (curMob > MOB_EMPTY) return FALSE; } return TRUE; } //TMSrv 7.57 00588F10 void InitIceQueenQuest() //Função Ok { g_pIceQueenQuest.Timer = 1200; int spawnPosition = rand() % 6; int curIceQueenGen = mNPCGen.pList[155].CurrentNumMob; if (curIceQueenGen <= 0) { GenerateMob(155, g_IceQueenRandSpawn[spawnPosition][0], g_IceQueenRandSpawn[spawnPosition][1]); return; } int specialMobId = SummonedSpecialMobList[9]; //IceQueenMirror if (specialMobId <= 0) return; if (!pMob[specialMobId].Mode || pMob[specialMobId].Mode == MOB_COMBAT) return; DoTeleport(specialMobId, g_IceQueenRandSpawn[spawnPosition][0], g_IceQueenRandSpawn[spawnPosition][1], FALSE); pMob[specialMobId].LastX = g_IceQueenRandSpawn[spawnPosition][0]; pMob[specialMobId].TargetX = pMob[specialMobId].LastX; pMob[specialMobId].SegmentX = pMob[specialMobId].TargetX; pMob[specialMobId].SegmentListY[0] = pMob[specialMobId].SegmentX; pMob[specialMobId].LastY = g_IceQueenRandSpawn[spawnPosition][1]; pMob[specialMobId].TargetY = pMob[specialMobId].LastY; pMob[specialMobId].SegmentY = pMob[specialMobId].TargetY; pMob[specialMobId].SegmentListX[0] = pMob[specialMobId].SegmentY; for (int i = 1; i < MAX_SEGMENT; i++) { pMob[specialMobId].SegmentListX[i] = (rand() % 5) + g_IceQueenRandSpawn[spawnPosition][0] - 2; pMob[specialMobId].SegmentListY[i] = (rand() % 5) + g_IceQueenRandSpawn[spawnPosition][1] - 2; } } //TMSrv 7.57 00589160 void ResetIceQueenQuest() //Função Ok { if (g_pIceQueenQuest.KillerLeader) { int posX = (rand() % 5) + 3657; int posY = (rand() % 5) + 3128; QuestInitTeleportGroup(g_pIceQueenQuest.KillerLeader, posX, posY); } if (mNPCGen.pList[154].Mode) //IceQueenVerid DeleteMobGenerateId(154, DELETE_UNSPAWN); if (mNPCGen.pList[155].Mode) //IceQueenMirror DeleteMobGenerateId(155, DELETE_UNSPAWN); if (mNPCGen.pList[149].Mode) //DarkShadow DeleteMobGenerateId(149, DELETE_UNSPAWN); for (int i = 0; i < 29; i++) { int curMob = mNPCGen.pList[5454 + i].CurrentNumMob; if (curMob > MOB_EMPTY) DeleteMobGenerateId(5454 + i, DELETE_UNSPAWN); } g_pIceQueenQuest.Timer = 0; g_pIceQueenQuest.CastleWaitingTime = 0; } //TMSrv 7.57 00589280 int CheckIceQueenParty(int conn) //Função Ok { int leader = pMob[conn].Leader; if (leader <= MOB_EMPTY) leader = conn; for (int i = 0; i < MAX_PARTY; i++) { int ptMember = pMob[leader].PartyList[i]; if (IsPlayer(ptMember)) break; } return leader; } //ProcessSecTimer //00563A20 if (IceQueenState == 1) //IceQueen Quest { if (g_pIceQueenQuest.Timer > 0) g_pIceQueenQuest.Timer--; else InitIceQueenQuest(); } else if (IceQueenState == 2 || IceQueenState == 3 || IceQueenState == 4) { if (g_pIceQueenQuest.CastleWaitingTime > 0) g_pIceQueenQuest.CastleWaitingTime--; else { ResetIceQueenQuest(); IceQueenState = 1; } } else if (IceQueenState == 5) { if (g_pIceQueenQuest.WaitingTime > 0) g_pIceQueenQuest.WaitingTime--; else { InitIceQueenQuest(); IceQueenState = 1; } } //MobKilled //004BDA26 - 0056FD17 if (ptMemberCount <= 0 || ptMemberCount > MAX_PARTY + 1 || ptLevelCount <= 0) { GridMulticast(pMob[target].TargetX, pMob[target].TargetY, (MSG_STANDARD*)&pMobKill, FALSE); DeleteMob(target, DELETE_DEAD); if (IceQueenState) ProcessIceQueenMobKilled(killer, target); return; } //Final da MobKilled if (IceQueenState) ProcessIceQueenMobKilled(killer, target);
    1 ponto
  38. bool Exec_MSG_UpdateItem(int conn, char* pMsg) { MSG_UpdateItem* stUpdateItem = (MSG_UpdateItem*)pMsg; if (!pMob[conn].MOB.CurrentScore.Hp && pUser[conn].Mode == USER_PLAY) { SendHpMode(conn); AddCrackError(conn, 1, 16); return false; } int GateID = stUpdateItem->ItemID - 15000; if (GateID >= 0 && GateID < MAX_ITEMLIST) { int State = pItem[GateID].State; int NexState = stUpdateItem->State; if (State != 3 || NexState != 3) { int DoorKey = BASE_GetItemAbility(&pItem[GateID].ITEM, EF_KEYID); int Key = 0; if (DoorKey) { for (int i = 0; i < MAX_CARRY; ++i) { Key = BASE_GetItemAbility(&pMob[conn].MOB.Carry[i], EF_KEYID); if (Key == DoorKey) { memset(&pMob[conn].MOB.Carry[i], 0, sizeof(STRUCT_ITEM)); SendItem(conn, ITEM_PLACE_CARRY, i, &pMob[conn].MOB.Carry[i]); break; } } } if (Key != DoorKey) { if (pItem[GateID].ITEM.sIndex != 773) //Portão do Castelo { if (pItem[GateID].ITEM.sIndex != 359) //Moita SendClientMessage(conn, g_pMessageStringTable[_NN_No_Key]); return false; } } else { int Height = 0; int isUpdate = UpdateItem(GateID, NexState, &Height); if (isUpdate) { stUpdateItem->Height = Height; GridMulticast(pItem[GateID].PosX, pItem[GateID].PosY, (MSG_STANDARD*)stUpdateItem, 0); return false; } } } } else { AddCrackError(conn, 30, 52); snprintf(szLog, 128, "UpdateItem Crash - MAC:%X%X%X%X", pUser[conn].Mac[0], pUser[conn].Mac[1], pUser[conn].Mac[2], pUser[conn].Mac[3]); Log(szLog, pUser[conn].AccountName, pUser[conn].IP); return false; } return false; }
    1 ponto
  39. VALOPY V1.0 - O MELHOR VALORANT CHECKER - [HQ CAPTURE, MUITO RÁPIDO] - Feito um verificador Valorant para todos vocês usarem É muito rápido em pegar tudo sobre a conta. - Eu agradeceria se você quisesse e representasse meu perfil para me apoiar. Obrigado. Preview:
    1 ponto
  40. Acessem: [hide][Hidden Content]] Acesse o LINK 2 no link acima!
    1 ponto
  41. 1 ponto
  42. Lords Mobile [Hidden Content] Shadow Fight III [Hidden Content]
    1 ponto
  43. Nome do jogo: Prison Empire Tycoon - Idle Game Versão do jogo: 2.6.5 Precisa de OBB: Não Precisa de Root: Não Mod Assinado: Sim Recursos do MOD 1. Dinheiro ilimitado (O dinheiro aumenta durante as compras) Download: Scan: Créditos: Bedo13
    1 ponto
  44. Cheat Básico GuardianTale Site : Guardian Priston Tale ServerUP Imagem Cheat: [Hidden Content] 1º Abra o PT e Logue 2º Abra o Cheat Guardian e Aperte F11 ! 3º Aperte F11 rapido, após abrir o cheat tem alguns segundos para ativa-lo porque a Proteção irá finalizar ele! 4º Bom Game ^^ Download : [Hidden Content] Scan : [Hidden Content]
    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.