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

Composições Odin (secretas)


wendertx
 Compartilhar

Pergunta

Bom dia, uso a Source 7556.

Por algum motivo, todas as secretas são compostas menos a do vento.

Alguém pode me dar um help aqui?

Tenho o código o Odin aqui(no final)

E fui tentar configurar as runas manualmente pra receber a secreta do vento mas ele não reconheceu.

Se eu esqueci algo ou se tenho que desativar o Odin nativo, como faço?

Ps.: Armas cele, refinação vai de boas, só secreta do vento mesmo.

Código inteiro do Odin:

#include "stdafx.h"

#include "Functions.h"

#include "Timer.h"

 

#define RATE_RefOdin 0

#define RATE_CompOdin 100

 

 

int Packets::GetChanceRefOdin(STRUCT_ITEM *Item)

{

if ((Item->EFV1 >= 234 && Item->EFV1 < 238) ||

(Item->EFV2 >= 234 && Item->EFV2 < 238) ||

(Item->EFV3 >= 234 && Item->EFV3 < 238))

return 5;

else if ((Item->EFV1 >= 238 && Item->EFV1 < 242) ||

(Item->EFV2 >= 238 && Item->EFV2 < 242) ||

(Item->EFV3 >= 238 && Item->EFV3 < 242))

return 3;

else if ((Item->EFV1 >= 242 && Item->EFV1 < 246) ||

(Item->EFV2 >= 242 && Item->EFV2 < 246) ||

(Item->EFV3 >= 242 && Item->EFV3 < 246))

return 2;

else if ((Item->EFV1 >= 246 && Item->EFV1 < 250) ||

(Item->EFV2 >= 246 && Item->EFV2 < 250) ||

(Item->EFV3 >= 246 && Item->EFV3 < 250))

return 1;

else

return 0;

}

bool Packets::OdinFixRefinação(int32_t client, MSG_STANDARD* packet)

{

 

 

St_Odin *p = (St_Odin*)packet;

STRUCT_MOB *player = (STRUCT_MOB*)NativeFunctions::getMobFromIndex(p->Header.ClientId);

 

if (p->Header.ClientId <= 0 || p->Header.ClientId >= 1000)

return false;

 

for (INT8 i = 0; i < 7; i++)

{

if (p->Slot == 0xFF)

return false;

 

else if (memcmp(&p->ItemId, &player->Inventory[p->Slot], sizeof STRUCT_ITEM))

return false;

 

else if (p->ItemId.Index != player->Inventory[p->Slot].Index)

return false;

 

else if (p->ItemId.Index < 0 || p->ItemId.Index > 6500)

return false;

}

 

 

if (p->ItemId[0].Index == 4043 && p->ItemId[1].Index == 4043)

{

if (p->ItemId[3].Index != 3338)

{

NativeFunctions::sendClientMessage(p->Header.ClientId, "Algo está errado com a combinação.");

NativeFunctions::sendClientSignalParm(p->Header.ClientId, 0x7530, 0x3A7, 2);

return true;

}

else if (p->ItemId[4].Index != 3338)

{

NativeFunctions::sendClientMessage(p->Header.ClientId, "Algo está errado com a combinação.");

NativeFunctions::sendClientSignalParm(p->Header.ClientId, 0x7530, 0x3A7, 2);

return true;

}

else if (p->ItemId[5].Index != 3338)

{

NativeFunctions::sendClientMessage(p->Header.ClientId, "Algo está errado com a combinação.");

NativeFunctions::sendClientSignalParm(p->Header.ClientId, 0x7530, 0x3A7, 2);

return true;

}

else if (p->ItemId[6].Index != 3338)

{

NativeFunctions::sendClientMessage(p->Header.ClientId, "Algo está errado com a combinação.");

NativeFunctions::sendClientSignalParm(p->Header.ClientId, 0x7530, 0x3A7, 2);

return true;

}

 

for (INT8 i = 0; i < sizeof(NotCharms) / sizeof(INT16); i++)

{

if (player->Inventory[p->Slot[2]].Index == NotCharms)

{

NativeFunctions::sendClientMessage(p->Header.ClientId, "Algo está errado com a combinação.");

NativeFunctions::sendClientSignalParm(p->Header.ClientId, 0x7530, 0x3A7, 2);

return true;

}

}

 

INT16 RefDoItem = Packets::GetItemSanc(&p->ItemId[2]);

 

if (RefDoItem <= 233 || RefDoItem >= 250)

{

NativeFunctions::sendClientMessage(p->Header.ClientId, "A refinação do item deve estar entre +11 e +14.");

NativeFunctions::sendClientSignalParm(p->Header.ClientId, 0x7530, 0x3A7, 2);

return true;

}

 

UINT8 chances = RATE_RefOdin;

chances += (BASE_GetItemSanc(&p->ItemId[3]) + 2);

chances += (BASE_GetItemSanc(&p->ItemId[4]) + 2);

chances += (BASE_GetItemSanc(&p->ItemId[5]) + 2);

chances += (BASE_GetItemSanc(&p->ItemId[6]) + 2);

chances += GetChanceRefOdin(&p->ItemId[2]);

 

for (INT8 e = 3; e < 7; e++)

memset(&player->Inventory[p->Slot[e]], 0, sizeof STRUCT_ITEM);

 

memset(&player->Inventory[p->Slot[0]], 0, sizeof STRUCT_ITEM);

memset(&player->Inventory[p->Slot[1]], 0, sizeof STRUCT_ITEM);

 

 

 

srand(time(NULL) / 5 * (rand() % 500) * 5);

 

if ((rand() % 100) <= chances)

{

NativeFunctions::sendEmotion(p->Header.ClientId, 14, 3);

Functions::RefinarItemMais(&player->Inventory[p->Slot[2]], 4);

 

NativeFunctions::sendClientMessage(p->Header.ClientId, "Sucesso na refinação.");

Log(Functions::stringFormat("%s ref %s sucess", player->Name, pItem(player->Inventory[p->Slot[2]].Index)->Name), "AlquimistaOdim", 0);

}

else

{

NativeFunctions::sendEmotion(client, 15, 2);

Functions::RefinarItemMais(&player->Inventory[p->Slot[2]], -4);

 

NativeFunctions::sendClientMessage(p->Header.ClientId, "Refinação falhou.");

Log(Functions::stringFormat("%s ref %s fail", player->Name, pItem(player->Inventory[p->Slot[2]].Index)->Name), "AlquimistaOdim", 0);

 

}

for (int i = 0; i < 7; i++)

NativeFunctions::sendItem(p->Header.ClientId, (int)SlotType::Inventory, p->Slot, &player->Inventory[p->Slot]);

 

NativeFunctions::sendEtc(p->Header.ClientId);

NativeFunctions::sendScore(p->Header.ClientId);

NativeFunctions::sendClientSignalParm(p->Header.ClientId, 0x7530, 0x3A7, 2);

 

return true;

}

else

{

//Slot 0 Item: Emblema_da_Proteção

//Slot 1 Item : Pacote_Lactolerium

//Slot 2 Item : Armadura_Rake

//Slot 3 Item : Refinação_Abençoada

//Slot 4 Item : Refinação_Abençoada

//Slot 5 Item : Refinação_Abençoada

//Slot 6 Item : Pedra_Secreta_(Vento

if (p->ItemId[0].Index == 4043 && p->ItemId[1].Index == 3448 || p->ItemId[0].Index == 3448 && p->ItemId[1].Index == 4043)

{

for (INT8 i = 0; i < sizeof(NotCharms) / sizeof(INT16); i++)

{

if (player->Inventory[p->Slot[2]].Index == NotCharms)

{

NativeFunctions::sendClientMessage(p->Header.ClientId, "Algo está errado com a combinação.");

NativeFunctions::sendClientSignalParm(p->Header.ClientId, 0x7530, 0x3A7, 2);

return true;

}

}

 

INT16 RefDoItem = Functions::GetItemSanc(&p->ItemId[2]);

 

if (RefDoItem <= 233 || RefDoItem >= 250)

{

NativeFunctions::sendClientMessage(p->Header.ClientId, "A refinação do item deve estar entre +11 e +14.");

NativeFunctions::sendClientSignalParm(p->Header.ClientId, 0x7530, 0x3A7, 2);

 

return true;

}

else

{

NativeFunctions::sendClientMessage(p->Header.ClientId, "Impossivel fazer isso");

NativeFunctions::sendClientSignalParm(p->Header.ClientId, 0x7530, 0x3A7, 2);

 

return true;

}

return true;

 

}

if (p->ItemId[0].Index == 3448 && p->ItemId[1].Index == 3448)

{

for (INT8 i = 0; i < sizeof(NotCharms) / sizeof(INT16); i++)

{

if (player->Inventory[p->Slot[2]].Index == NotCharms)

{

NativeFunctions::sendClientMessage(p->Header.ClientId, "Algo está errado com a combinação.");

NativeFunctions::sendClientSignalParm(p->Header.ClientId, 0x7530, 0x3A7, 2);

 

return true;

}

}

 

INT16 RefDoItem = Functions::GetItemSanc(&p->ItemId[2]);

 

if (RefDoItem <= 233 || RefDoItem >= 250)

{

NativeFunctions::sendClientMessage(p->Header.ClientId, "A refinação do item deve estar entre +11 e +14.");

NativeFunctions::sendClientSignalParm(p->Header.ClientId, 0x7530, 0x3A7, 2);

 

return true;

}

else

{

NativeFunctions::sendClientMessage(p->Header.ClientId, "Impossivel fazer isso");

NativeFunctions::sendClientSignalParm(p->Header.ClientId, 0x7530, 0x3A7, 2);

 

return true;

}

return true;

}

 

if (p->ItemId[0].Index == 5122 && p->ItemId[1].Index == 5119)

{

if (p->ItemId[2].Index != 5132)

{

NativeFunctions::sendClientMessage(p->Header.ClientId, "Algo está errado com a combinação.");

NativeFunctions::sendClientSignalParm(p->Header.ClientId, 0x7530, 0x3A7, 2);

return true;

}

else if (p->ItemId[3].Index != 5120)

{

NativeFunctions::sendClientMessage(p->Header.ClientId, "Algo está errado com a combinação.");

NativeFunctions::sendClientSignalParm(p->Header.ClientId, 0x7530, 0x3A7, 2);

return true;

}

else if (p->ItemId[4].Index != 5130)

{

NativeFunctions::sendClientMessage(p->Header.ClientId, "Algo está errado com a combinação.");

NativeFunctions::sendClientSignalParm(p->Header.ClientId, 0x7530, 0x3A7, 2);

return true;

}

else if (p->ItemId[5].Index != 5133)

{

NativeFunctions::sendClientMessage(p->Header.ClientId, "Algo está errado com a combinação.");

NativeFunctions::sendClientSignalParm(p->Header.ClientId, 0x7530, 0x3A7, 2);

return true;

}

else if (p->ItemId[6].Index != 5123)

{

NativeFunctions::sendClientMessage(p->Header.ClientId, "Algo está errado com a combinação.");

NativeFunctions::sendClientSignalParm(p->Header.ClientId, 0x7530, 0x3A7, 2);

return true;

}

for (INT8 j = 0; j < 7; j++)//deleta todos os itens

{

memset(&player->Inventory[p->Slot[j]], 0, sizeof STRUCT_ITEM);

NativeFunctions::sendItem(p->Header.ClientId, (int)SlotType::Inventory, p->Slot[j], &player->Inventory[p->Slot[j]]);

}

static const STRUCT_ITEM vento[] = { 5337, 0, 0, 0, 0, 0, 0 };

NativeFunctions::putItem(p->Header.ClientId, &vento[0]);

NativeFunctions::sendEtc(p->Header.ClientId);

NativeFunctions::sendEmotion(p->Header.ClientId, 14, 3);

NativeFunctions::sendClientMessage(p->Header.ClientId, "Composição concluída.");

}

 

return true;

}

}

bool Packets::OdinFixArmaCele(int32_t client, MSG_STANDARD* packet)

{

 

St_Odin *p = (St_Odin*)packet;

STRUCT_MOB *player = (STRUCT_MOB*)NativeFunctions::getMobFromIndex(p->Header.ClientId);

 

if (p->Header.ClientId <= 0 || p->Header.ClientId >= 1000)

return true;

 

for (INT8 i = 0; i < 7; i++)

{

if (p->Slot == 0xFF)

return true;

 

else if (memcmp(&p->ItemId, &player->Inventory[p->Slot], sizeof STRUCT_ITEM))

return true;

 

else if (p->ItemId.Index != player->Inventory[p->Slot].Index)

return true;

 

else if (p->ItemId.Index < 0 || p->ItemId.Index > 6500)

return true;

}

srand(time(NULL) / 5 * (rand() % 500) * 5);

int Chance = rand() % 100;

 

int EquivalenteID = -1, Equivale;

 

if (p->ItemId[0].Index == 1901 || p->ItemId[0].Index == 1902 || p->ItemId[0].Index == 1903 || p->ItemId[0].Index == 1904 || p->ItemId[0].Index == 1905 || p->ItemId[0].Index == 1906 || p->ItemId[0].Index == 1907 || p->ItemId[0].Index == 1908 || p->ItemId[0].Index == 1909 || p->ItemId[0].Index == 1910 || p->ItemId[0].Index == 1714)

{

static int ArmaSelado[] = { 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1714 };

static int ArmaEquiva[] = { 2491, 2551, 2611, 2671, 2731, 2791, 2859, 2863, 2895, 2935, 1711 };

 

 

 

 

for (int i = 0; i < sizeof(ArmaSelado) / sizeof(int); i++)

{

if (p->ItemId[0].Index == ArmaSelado)

{

EquivalenteID = i;

break;

}

}

 

if (EquivalenteID == -1)

return true;

 

if (ArmaSelado[EquivalenteID] == 1714)

Equivale = ArmaEquiva[EquivalenteID];

else

Equivale = ArmaEquiva[EquivalenteID] + 3;

 

if (p->ItemId[1].Index >= ArmaEquiva[EquivalenteID] && p->ItemId[1].Index <= Equivale)

{

int Selado = Functions::GetItemSanc(&p->ItemId[0]);

int Arch = Functions::GetItemSanc(&p->ItemId[1]);

if (Selado != 9)

{

NativeFunctions::sendClientMessage(p->Header.ClientId, "Item Selado deve ser +9");

return true;

}

if (Arch < 27 && Arch > 30)

{

NativeFunctions::sendClientMessage(p->Header.ClientId, "Item Arch deve ser +15");

return true;

}

if (p->ItemId[2].Index != 772)

{

NativeFunctions::sendClientMessage(p->Header.ClientId, "Equipe a Jóia_da_Escuridão");

return true;

}

 

 

if (p->ItemId[3].Index != 5334 || p->ItemId[4].Index != 5335 || p->ItemId[5].Index != 5336 || p->ItemId[6].Index != 5337)

{

NativeFunctions::sendClientMessage(p->Header.ClientId, "Coloque as Pedras Secretas em Ordem");

return true;

}

if (!ReturnCorrectitem(p->ItemId[0].Index, p->ItemId[1].Index))

{

NativeFunctions::sendClientMessage(p->Header.ClientId, "Selado não confere!");

return true;

}

if (Chance <= RATE_CompOdin)

{

STRUCT_ITEM sGiveItem;

BASE_ClearItem(&sGiveItem);

 

memcpy(&sGiveItem, &player->Inventory[p->Slot[1]], sizeof STRUCT_ITEM);//salva o item arch

sGiveItem.Index = ReturnCorrectitem(p->ItemId[0].Index, p->ItemId[1].Index); //conserva os adds e muda apenas o ID

for (INT8 j = 0; j < 7; j++)//deleta todos os itens

{

memset(&player->Inventory[p->Slot[j]], 0, sizeof STRUCT_ITEM);

NativeFunctions::sendItem(p->Header.ClientId, (int)SlotType::Inventory, p->Slot[j], &player->Inventory[p->Slot[j]]);

}

NativeFunctions::sendNotice(Functions::stringFormat("%s compôs com sucesso o item: %s", player->Name, pItem(sGiveItem.Index)->Name));

BASE_SetItemSanc(&sGiveItem, 0, 0);

NativeFunctions::putItem(p->Header.ClientId, &sGiveItem);

NativeFunctions::sendEtc(p->Header.ClientId);

BASE_ClearItem(&sGiveItem);

NativeFunctions::sendEmotion(p->Header.ClientId, 14, 3);

NativeFunctions::sendClientMessage(p->Header.ClientId, "Composição concluída.");

Log(Functions::stringFormat("%s comp %s sucess", player->Name, pItem(ReturnCorrectitem(p->ItemId[0].Index, p->ItemId[1].Index))->Name), "AlquimistaOdim", 0);

 

NativeFunctions::sendClientSignalParm(p->Header.ClientId, 0x7530, 0x3A7, 2);

return true;

}

else

{

STRUCT_ITEM GiveItem;

BASE_ClearItem(&GiveItem);

 

memcpy(&GiveItem, &player->Inventory[p->Slot[1]], sizeof STRUCT_ITEM);//salva o item arch

for (INT8 j = 0; j < 7; j++)//deleta todos os itens

{

memset(&player->Inventory[p->Slot[j]], 0, sizeof STRUCT_ITEM);

NativeFunctions::sendItem(p->Header.ClientId, (int)SlotType::Inventory, p->Slot[j], &player->Inventory[p->Slot[j]]);

}

NativeFunctions::putItem(p->Header.ClientId, &GiveItem);

BASE_ClearItem(&GiveItem);

 

NativeFunctions::sendEmotion(client, 15, 2);

NativeFunctions::sendClientMessage(p->Header.ClientId, "Composição Falhou.");

Log(Functions::stringFormat("%s comp %s fail", player->Name, pItem(ReturnCorrectitem(p->ItemId[0].Index, p->ItemId[1].Index))->Name), "AlquimistaOdim", 0);

NativeFunctions::sendClientSignalParm(p->Header.ClientId, 0x7530, 0x3A7, 2);

return true;

}

}

else

{

NativeFunctions::sendClientMessage(p->Header.ClientId, "Item equivalente não confere!");

return true;

}

return true;

}

if (p->ItemId[0].Index == 1234 || p->ItemId[0].Index == 1235 || p->ItemId[0].Index == 1236 || p->ItemId[0].Index == 1237 || p->ItemId[0].Index == 1369 || p->ItemId[0].Index == 1370 || p->ItemId[0].Index == 1371 || p->ItemId[0].Index == 1372 || p->ItemId[0].Index == 1519 || p->ItemId[0].Index == 1520 || p->ItemId[0].Index == 1521 || p->ItemId[0].Index == 1522 || p->ItemId[0].Index == 1669 || p->ItemId[0].Index == 1670 || p->ItemId[0].Index == 1671 || p->ItemId[0].Index == 1672)

{

 

static int SetSelado[] = { 1234, 1235, 1236, 1237, 1369, 1370, 1371, 1372, 1519, 1520, 1521, 1522, 1669, 1670, 1671, 1672 };

static int SetEquiva[] = { 1221, 1222, 1223, 1224, 1356, 1357, 1358, 1359, 1506, 1507, 1508, 1509, 1656, 1657, 1658, 1659 };

for (int i = 0; i < sizeof(SetSelado) / sizeof(int); i++)

{

if (p->ItemId[0].Index == SetSelado)

{

EquivalenteID = i;

break;

}

}

 

if (EquivalenteID == -1)

return true;

 

if (p->ItemId[1].Index == SetEquiva[EquivalenteID])

{

int Selado = Functions::GetItemSanc(&p->ItemId[0]);

int Arch = Functions::GetItemSanc(&p->ItemId[1]);

if (Selado != 9)

{

NativeFunctions::sendClientMessage(p->Header.ClientId, "Item Selado deve ser +9");

return true;

}

if (Arch < 27 && Arch > 30)

{

NativeFunctions::sendClientMessage(p->Header.ClientId, "Item Arch deve ser +15");

return true;

}

if (p->ItemId[2].Index != 542)

{

NativeFunctions::sendClientMessage(p->Header.ClientId, "Equipe a Pedra Lunar");

return true;

}

if (ReturnCorrectitem(p->ItemId[0].Index, p->ItemId[1].Index) == 0)

{

NativeFunctions::sendClientMessage(p->Header.ClientId, "Algo está errado!");

return true;

}

 

if (p->ItemId[3].Index != 5334 || p->ItemId[4].Index != 5335 || p->ItemId[5].Index != 5336 || p->ItemId[6].Index != 5337)

{

NativeFunctions::sendClientMessage(p->Header.ClientId, "Coloque as Pedras Secretas em Ordem");

return true;

}

 

if (Chance <= RATE_CompOdin)

{

STRUCT_ITEM sGiveItem;

BASE_ClearItem(&sGiveItem);

 

memcpy(&sGiveItem, &player->Inventory[p->Slot[1]], sizeof STRUCT_ITEM);//salva o item arch

sGiveItem.Index = ReturnCorrectitem(p->ItemId[0].Index, p->ItemId[1].Index); //conserva os adds e muda apenas o ID

for (INT8 j = 0; j < 7; j++)//deleta todos os itens

{

memset(&player->Inventory[p->Slot[j]], 0, sizeof STRUCT_ITEM);

NativeFunctions::sendItem(p->Header.ClientId, (int)SlotType::Inventory, p->Slot[j], &player->Inventory[p->Slot[j]]);

}

NativeFunctions::sendNotice(Functions::stringFormat("%s compôs com sucesso o item: %s", player->Name, pItem(sGiveItem.Index)->Name));

BASE_SetItemSanc(&sGiveItem, 0, 0);

NativeFunctions::putItem(p->Header.ClientId, &sGiveItem);

NativeFunctions::sendEtc(p->Header.ClientId);

NativeFunctions::sendScore(p->Header.ClientId);

BASE_ClearItem(&sGiveItem);

NativeFunctions::sendEmotion(p->Header.ClientId, 14, 3);

NativeFunctions::sendClientMessage(p->Header.ClientId, "Composição concluída.");

Log(Functions::stringFormat("%s comp %s sucess", player->Name, pItem(ReturnCorrectitem(p->ItemId[0].Index, p->ItemId[1].Index))->Name), "AlquimistaOdim", 0);

NativeFunctions::sendClientSignalParm(p->Header.ClientId, 0x7530, 0x3A7, 2);

return true;

}

else

{

STRUCT_ITEM GiveItem;

BASE_ClearItem(&GiveItem);

 

memcpy(&GiveItem, &player->Inventory[p->Slot[1]], sizeof STRUCT_ITEM);//salva o item arch

for (INT8 j = 0; j < 7; j++)//deleta todos os itens

{

memset(&player->Inventory[p->Slot[j]], 0, sizeof STRUCT_ITEM);

NativeFunctions::sendItem(p->Header.ClientId, (int)SlotType::Inventory, p->Slot[j], &player->Inventory[p->Slot[j]]);

}

NativeFunctions::putItem(p->Header.ClientId, &GiveItem);

BASE_ClearItem(&GiveItem);

 

NativeFunctions::sendEmotion(client, 15, 2);

NativeFunctions::sendClientMessage(p->Header.ClientId, "Composição Falhou.");

Log(Functions::stringFormat("%s comp %s fail", player->Name, pItem(ReturnCorrectitem(p->ItemId[0].Index, p->ItemId[1].Index))->Name), "AlquimistaOdim", 0);

NativeFunctions::sendClientSignalParm(p->Header.ClientId, 0x7530, 0x3A7, 2);

return true;

}

}

else

{

NativeFunctions::sendClientMessage(p->Header.ClientId, "Item equivalente não confere!");

return true;

}

return true;

}

 

return true;

}

 

 

Na struct.h onde são citadas as composições das secretas:

 

static const int CompoeSecretas[4][8] = {

{ 5126, 5127, 5121, 5114, 5125, 5111, 5118, 5334 },//agua

{ 5131, 5113, 5115, 5116, 5125, 5112, 5114, 5335 }, //terra

{ 5110, 5124, 5117, 5129, 5114, 5125, 5128, 5336 }, //sol

{ 5122, 5119, 5132, 5120, 5130, 5133, 5123, 5337 } //Vento

};

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
Bom dia, uso a Source 7556.

Por algum motivo, todas as secretas são compostas menos a do vento.

Alguém pode me dar um help aqui?

Tenho o código o Odin aqui(no final)

E fui tentar configurar as runas manualmente pra receber a secreta do vento mas ele não reconheceu.

Se eu preciso desativar o Odin nativo, como faço?

 

Código inteiro do Odin:

 

Na struct.h onde são citadas as composições das secretas:

provavelmente a case não esteja formulado e nem a estrutura dela em si, só analisando

Link para o comentário
Compartilhar em outros sites

  • 0
Bom dia, uso a Source 7556.

Por algum motivo, todas as secretas são compostas menos a do vento.

Alguém pode me dar um help aqui?

Tenho o código o Odin aqui(no final)

E fui tentar configurar as runas manualmente pra receber a secreta do vento mas ele não reconheceu.

Se eu esqueci algo ou se tenho que desativar o Odin nativo, como faço?

Ps.: Armas cele, refinação vai de boas, só secreta do vento mesmo.

Código inteiro do Odin:

 

 

Na struct.h onde são citadas as composições das secretas:

isso e devido a nativa esta verificando apenas uma runa...mais a correção e bem simples

ou você pode abri a tm no ollydbg e fazer as correções ou pegar isso aqui e colocar no se

patch.lua.

 

 

É necessário se cadastrar para acessar o conteúdo.

Precisa de ajuda?
Fale comigo.
Discord: sc2allin

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • 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.