Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate

Autor Topic: FUENTE LEGADO BASE PIKE 4.3 (MUSERVER+DB+CLIENTE+SOURCE)  (Visto 1730 veces)

guiespi, hola23, saske98 and 7 Guests are viewing this topic.

Offline samsunggon #60 Posteado: Today at 07:27:50 AM

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 466
  • Gracias recibida: 2625
  • ph
FIX FOR JEWEL BANK+POST ITEM+PVP CTRL +AUTO WEAR

AUTO WEAR IF YOU TRY TO POST ITEM YOUR OWN WINGS/ITEMS
sample your sm wings cant post items and direct to wear in wings slot
this fix is to prevent auto wear if your own items you want to POST

ItemMove.cpp

Code: [Select]
void RightClickMoveItem()
{
// ============================================================
// ✅ FIX: Block auto-wear if CTRL is pressed (PK mode)
// ============================================================
if (GetKeyState(VK_CONTROL) & 0x8000)
{
return; // Do NOT auto-equip the item
}

// ============================================================
// ✅ ORIGINAL RIGHT-CLICK LOGIC
// ============================================================

if (!ppMousePress(VK_RBUTTON) || PickedItem || ItemMove)
{
return;
}

if (pCheckWindow(pWindowThis(), 9) == 0 && pCheckWindow(pWindowThis(), 13) == 0) // ChaosBox ~ Inventory
{
return;
}

ItemMove = false;
SourceFlag = -1;

SourceSlot = *(DWORD*)((DWORD)InventoryThis(pWindowThis()) + 284);
TargetSlot = -1;

if (SourceSlot >= 0 && SourceSlot < INVENTORY_WEAR_SIZE)
{
if (*(DWORD*)MAIN_CURRENT_MAP == 10 || *(DWORD*)MAIN_CURRENT_MAP == 39)
{
if (SourceSlot == 7 &&
GetItemEquipedIndex(8) != GET_ITEM(13, 3) &&
GetItemEquipedIndex(8) != GET_ITEM(13, 4) &&
GetItemEquipedIndex(8) != GET_ITEM(13, 37))
{
return;
}

if (SourceSlot == 8 &&
(GetItemEquipedIndex(8) == GET_ITEM(13, 3) ||
GetItemEquipedIndex(8) == GET_ITEM(13, 4) ||
GetItemEquipedIndex(8) == GET_ITEM(13, 37)) &&
GetItemEquipedIndex(7) == 0xFFFF)
{
return;
}
}

DWORD ItemStruct = GetItemEquiped(SourceSlot);

if (ItemStruct && GetItemEquipedIndex(SourceSlot) != 0xFFFF)
{
ITEM_INFO2* lpItemInfo = GetItemInfo(*(WORD*)ItemStruct);

TargetSlot = InventoryFindEmptySlot(InventoryThis(pWindowThis()), lpItemInfo->Width, lpItemInfo->Height);

if (TargetSlot != -1)
{
SendRequestEquipmentItem(0, SourceSlot, ItemStruct, 0, INVENTORY_WEAR_SIZE + TargetSlot);
ResetMouseRButton();
ItemMove = true;
SourceFlag = 0;
}
}
}
else
{
int InventoryMain = InventoryFindItemSlot(GetMyInventoryCtrl(InventoryThis(pWindowThis()), 0), pCursorX, pCursorY);
int InventoryExpand1 = InventoryFindItemSlot(GetMyInventoryCtrl(InventoryThis(pWindowThis()), 1), pCursorX, pCursorY);
int InventoryExpand2 = InventoryFindItemSlot(GetMyInventoryCtrl(InventoryThis(pWindowThis()), 2), pCursorX, pCursorY);

if (pCheckWindow(pWindowThis(), 9) != 0)
{
DWORD MixItemStruct = (DWORD)InventoryFindItem(MixGetMyInventoryCtrl(MixInventoryThis(pWindowThis())), pCursorX, pCursorY);

if (MixItemStruct)
{
ITEM_INFO2* lpItemInfo = GetItemInfo(*(WORD*)MixItemStruct);

SourceSlot = InventoryFindItemSlot(MixGetMyInventoryCtrl(MixInventoryThis(pWindowThis())), pCursorX, pCursorY);
TargetSlot = InventoryFindEmptySlot(InventoryThis(pWindowThis()), lpItemInfo->Width, lpItemInfo->Height);

if (SourceSlot != -1 && TargetSlot != -1)
{
SendRequestEquipmentItem(3, SourceSlot, MixItemStruct, 0, INVENTORY_WEAR_SIZE + TargetSlot);
ResetMouseRButton();
ItemMove = true;
SourceFlag = 1;
}
}
else
{
DWORD InventoryCtrl = -1;

DWORD ItemStruct = (DWORD)InventoryFindItemAtPt(InventoryThis(pWindowThis()), pCursorX, pCursorY, &InventoryCtrl);

if (ItemStruct)
{
ITEM_INFO2* lpItemInfo = GetItemInfo(*(WORD*)ItemStruct);

if (InventoryMain != -1)
SourceSlot = INVENTORY_WEAR_SIZE + InventoryMain;
else if (InventoryExpand1 != -1)
SourceSlot = INVENTORY_EXT1_SIZE + InventoryExpand1;
else if (InventoryExpand2 != -1)
SourceSlot = INVENTORY_EXT2_SIZE + InventoryExpand2;

TargetSlot = InventoryMixFindEmptySlot(MixGetMyInventoryCtrl(MixInventoryThis(pWindowThis())), lpItemInfo->Width, lpItemInfo->Height);

if (SourceSlot != -1 && TargetSlot != -1)
{
SendRequestEquipmentItem(0, SourceSlot, ItemStruct, 3, TargetSlot);
ResetMouseRButton();
ItemMove = true;
SourceFlag = 0;
}
}
}
}
else
{
if (pCheckWindow(pWindowThis(), 7) != 0 || pCheckWindow(pWindowThis(), 8) != 0) // Trade ~ Warehouse
{
return;
}

DWORD InventoryCtrl = -1;

DWORD ItemStruct = (DWORD)InventoryFindItemAtPt(InventoryThis(pWindowThis()), pCursorX, pCursorY, &InventoryCtrl);

if (ItemStruct)
{
if (InventoryMain != -1)
SourceSlot = INVENTORY_WEAR_SIZE + InventoryMain;
else if (InventoryExpand1 != -1)
SourceSlot = INVENTORY_EXT1_SIZE + InventoryExpand1;
else if (InventoryExpand2 != -1)
SourceSlot = INVENTORY_EXT2_SIZE + InventoryExpand2;

TargetSlot = GetInventoryWearSlot(*(WORD*)ItemStruct);

if (SourceSlot != -1 && TargetSlot != 0xFF)
{
SendRequestEquipmentItem(0, SourceSlot, ItemStruct, 0, TargetSlot);
ResetMouseRButton();
ItemMove = true;
SourceFlag = 0;
}
}
}
}
}

CustomJewelBank.cpp

Code: [Select]
void InvetoryItemOver(int This)
{
lpItemObj item = (lpItemObj) * (DWORD*)(This + 84);

if (item)
{
if (GetKeyState(VK_RBUTTON) & 0x8000 && GetKeyState(VK_SHIFT) & 0x8000)
{
int start = 12;
if (*(DWORD*)(This + 44) == 200)
{
start = 12;
}
else if (*(DWORD*)(This + 44) == 44)
{
start = 76;
}
else if (*(DWORD*)(This + 44) == 131)
{
start = 108;
}

int Slot = item->PosX + (item->PosY * 8) + start;

gCustomJewelBank.JewelBankSend(Slot);
}
}

((void(__thiscall*)(int))0x007DCF20)(This);
}

void CCustomJewelBank::Load()
{
//SetCompleteHook(0xE8, 0x007DD0D9, &InvetoryItemOver);
}

post_item.cpp

Code: [Select]
void HookRenderItemToolTip(int a1)
{
((void(__cdecl*)()) 0x007DCF20)();
lpItemObj item = (lpItemObj) * (DWORD*)(a1 + 84);
//===Fix Move Item

//===
if (gInterface.CheckWindow(8))
{
return;
}
DWORD uniqId = 0;
if (item) {
int pos = -1;
if (a1 == *(DWORD*)(*(DWORD*)0x098670B8 + 0x18))
{
uniqId = item->UniqueID;
}
else if (a1 == *(DWORD*)(*(DWORD*)0x098670B8 + 0x1C))
{
uniqId = item->UniqueID + 0x10000000;
}
else if (a1 == *(DWORD*)(*(DWORD*)0x098670B8 + 0x20))
{
uniqId = item->UniqueID + 0x20000000;
}
//
// CTRL + Right Click (block equip / block move)
if ((GetKeyState(VK_RBUTTON) & 0x8000) && (GetKeyState(VK_CONTROL) & 0x8000))
{
JCItemPublic.PostItemProc(uniqId); // your link item function
return; // IMPORTANT: block default MU behavior
}

else
{
// === Right click = Jewel Bank ===
if (GetKeyState(VK_RBUTTON) & 0x8000 && GetKeyState(VK_SHIFT) & 0x8000)
{
// panel: normal / expanded / 2nd inventory
int panel = *(DWORD*)(a1 + 44);


if (panel == 200 || panel == 44 || panel == 131)
{
int start = (panel == 200) ? 12 : (panel == 44) ? 76 : 108;
int Slot = item->PosX + (item->PosY * 8) + start;

gCustomJewelBank.JewelBankSend(Slot);
return;
}
}
// === Default Right click = move / equip etc ===
if (!pIsKeyRepeat(VK_CONTROL))
{
JCItemPublic.CDActionItem(item);
return;
}
}
}
}


credits: ChatGpt

100% Working for me no error / bugs
I used the MuSever he released to modify an IP address, opened MIAN, but couldn't create a character. Is there something not set correctly? Please advise


check dataserver logs if have error?

because mine i use the ready database
and create account using in game creation

and all working


DISCORD: valentino1515


Offline smil158 #61 Posteado: Today at 07:38:04 AM

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 14
  • Gracias recibida: 3
  • cn
FIX FOR JEWEL BANK+POST ITEM+PVP CTRL +AUTO WEAR

AUTO WEAR IF YOU TRY TO POST ITEM YOUR OWN WINGS/ITEMS
sample your sm wings cant post items and direct to wear in wings slot
this fix is to prevent auto wear if your own items you want to POST

ItemMove.cpp

Code: [Select]
void RightClickMoveItem()
{
// ============================================================
// ✅ FIX: Block auto-wear if CTRL is pressed (PK mode)
// ============================================================
if (GetKeyState(VK_CONTROL) & 0x8000)
{
return; // Do NOT auto-equip the item
}

// ============================================================
// ✅ ORIGINAL RIGHT-CLICK LOGIC
// ============================================================

if (!ppMousePress(VK_RBUTTON) || PickedItem || ItemMove)
{
return;
}

if (pCheckWindow(pWindowThis(), 9) == 0 && pCheckWindow(pWindowThis(), 13) == 0) // ChaosBox ~ Inventory
{
return;
}

ItemMove = false;
SourceFlag = -1;

SourceSlot = *(DWORD*)((DWORD)InventoryThis(pWindowThis()) + 284);
TargetSlot = -1;

if (SourceSlot >= 0 && SourceSlot < INVENTORY_WEAR_SIZE)
{
if (*(DWORD*)MAIN_CURRENT_MAP == 10 || *(DWORD*)MAIN_CURRENT_MAP == 39)
{
if (SourceSlot == 7 &&
GetItemEquipedIndex(8) != GET_ITEM(13, 3) &&
GetItemEquipedIndex(8) != GET_ITEM(13, 4) &&
GetItemEquipedIndex(8) != GET_ITEM(13, 37))
{
return;
}

if (SourceSlot == 8 &&
(GetItemEquipedIndex(8) == GET_ITEM(13, 3) ||
GetItemEquipedIndex(8) == GET_ITEM(13, 4) ||
GetItemEquipedIndex(8) == GET_ITEM(13, 37)) &&
GetItemEquipedIndex(7) == 0xFFFF)
{
return;
}
}

DWORD ItemStruct = GetItemEquiped(SourceSlot);

if (ItemStruct && GetItemEquipedIndex(SourceSlot) != 0xFFFF)
{
ITEM_INFO2* lpItemInfo = GetItemInfo(*(WORD*)ItemStruct);

TargetSlot = InventoryFindEmptySlot(InventoryThis(pWindowThis()), lpItemInfo->Width, lpItemInfo->Height);

if (TargetSlot != -1)
{
SendRequestEquipmentItem(0, SourceSlot, ItemStruct, 0, INVENTORY_WEAR_SIZE + TargetSlot);
ResetMouseRButton();
ItemMove = true;
SourceFlag = 0;
}
}
}
else
{
int InventoryMain = InventoryFindItemSlot(GetMyInventoryCtrl(InventoryThis(pWindowThis()), 0), pCursorX, pCursorY);
int InventoryExpand1 = InventoryFindItemSlot(GetMyInventoryCtrl(InventoryThis(pWindowThis()), 1), pCursorX, pCursorY);
int InventoryExpand2 = InventoryFindItemSlot(GetMyInventoryCtrl(InventoryThis(pWindowThis()), 2), pCursorX, pCursorY);

if (pCheckWindow(pWindowThis(), 9) != 0)
{
DWORD MixItemStruct = (DWORD)InventoryFindItem(MixGetMyInventoryCtrl(MixInventoryThis(pWindowThis())), pCursorX, pCursorY);

if (MixItemStruct)
{
ITEM_INFO2* lpItemInfo = GetItemInfo(*(WORD*)MixItemStruct);

SourceSlot = InventoryFindItemSlot(MixGetMyInventoryCtrl(MixInventoryThis(pWindowThis())), pCursorX, pCursorY);
TargetSlot = InventoryFindEmptySlot(InventoryThis(pWindowThis()), lpItemInfo->Width, lpItemInfo->Height);

if (SourceSlot != -1 && TargetSlot != -1)
{
SendRequestEquipmentItem(3, SourceSlot, MixItemStruct, 0, INVENTORY_WEAR_SIZE + TargetSlot);
ResetMouseRButton();
ItemMove = true;
SourceFlag = 1;
}
}
else
{
DWORD InventoryCtrl = -1;

DWORD ItemStruct = (DWORD)InventoryFindItemAtPt(InventoryThis(pWindowThis()), pCursorX, pCursorY, &InventoryCtrl);

if (ItemStruct)
{
ITEM_INFO2* lpItemInfo = GetItemInfo(*(WORD*)ItemStruct);

if (InventoryMain != -1)
SourceSlot = INVENTORY_WEAR_SIZE + InventoryMain;
else if (InventoryExpand1 != -1)
SourceSlot = INVENTORY_EXT1_SIZE + InventoryExpand1;
else if (InventoryExpand2 != -1)
SourceSlot = INVENTORY_EXT2_SIZE + InventoryExpand2;

TargetSlot = InventoryMixFindEmptySlot(MixGetMyInventoryCtrl(MixInventoryThis(pWindowThis())), lpItemInfo->Width, lpItemInfo->Height);

if (SourceSlot != -1 && TargetSlot != -1)
{
SendRequestEquipmentItem(0, SourceSlot, ItemStruct, 3, TargetSlot);
ResetMouseRButton();
ItemMove = true;
SourceFlag = 0;
}
}
}
}
else
{
if (pCheckWindow(pWindowThis(), 7) != 0 || pCheckWindow(pWindowThis(), 8) != 0) // Trade ~ Warehouse
{
return;
}

DWORD InventoryCtrl = -1;

DWORD ItemStruct = (DWORD)InventoryFindItemAtPt(InventoryThis(pWindowThis()), pCursorX, pCursorY, &InventoryCtrl);

if (ItemStruct)
{
if (InventoryMain != -1)
SourceSlot = INVENTORY_WEAR_SIZE + InventoryMain;
else if (InventoryExpand1 != -1)
SourceSlot = INVENTORY_EXT1_SIZE + InventoryExpand1;
else if (InventoryExpand2 != -1)
SourceSlot = INVENTORY_EXT2_SIZE + InventoryExpand2;

TargetSlot = GetInventoryWearSlot(*(WORD*)ItemStruct);

if (SourceSlot != -1 && TargetSlot != 0xFF)
{
SendRequestEquipmentItem(0, SourceSlot, ItemStruct, 0, TargetSlot);
ResetMouseRButton();
ItemMove = true;
SourceFlag = 0;
}
}
}
}
}

CustomJewelBank.cpp

Code: [Select]
void InvetoryItemOver(int This)
{
lpItemObj item = (lpItemObj) * (DWORD*)(This + 84);

if (item)
{
if (GetKeyState(VK_RBUTTON) & 0x8000 && GetKeyState(VK_SHIFT) & 0x8000)
{
int start = 12;
if (*(DWORD*)(This + 44) == 200)
{
start = 12;
}
else if (*(DWORD*)(This + 44) == 44)
{
start = 76;
}
else if (*(DWORD*)(This + 44) == 131)
{
start = 108;
}

int Slot = item->PosX + (item->PosY * 8) + start;

gCustomJewelBank.JewelBankSend(Slot);
}
}

((void(__thiscall*)(int))0x007DCF20)(This);
}

void CCustomJewelBank::Load()
{
//SetCompleteHook(0xE8, 0x007DD0D9, &InvetoryItemOver);
}

post_item.cpp

Code: [Select]
void HookRenderItemToolTip(int a1)
{
((void(__cdecl*)()) 0x007DCF20)();
lpItemObj item = (lpItemObj) * (DWORD*)(a1 + 84);
//===Fix Move Item

//===
if (gInterface.CheckWindow(8))
{
return;
}
DWORD uniqId = 0;
if (item) {
int pos = -1;
if (a1 == *(DWORD*)(*(DWORD*)0x098670B8 + 0x18))
{
uniqId = item->UniqueID;
}
else if (a1 == *(DWORD*)(*(DWORD*)0x098670B8 + 0x1C))
{
uniqId = item->UniqueID + 0x10000000;
}
else if (a1 == *(DWORD*)(*(DWORD*)0x098670B8 + 0x20))
{
uniqId = item->UniqueID + 0x20000000;
}
//
// CTRL + Right Click (block equip / block move)
if ((GetKeyState(VK_RBUTTON) & 0x8000) && (GetKeyState(VK_CONTROL) & 0x8000))
{
JCItemPublic.PostItemProc(uniqId); // your link item function
return; // IMPORTANT: block default MU behavior
}

else
{
// === Right click = Jewel Bank ===
if (GetKeyState(VK_RBUTTON) & 0x8000 && GetKeyState(VK_SHIFT) & 0x8000)
{
// panel: normal / expanded / 2nd inventory
int panel = *(DWORD*)(a1 + 44);


if (panel == 200 || panel == 44 || panel == 131)
{
int start = (panel == 200) ? 12 : (panel == 44) ? 76 : 108;
int Slot = item->PosX + (item->PosY * 8) + start;

gCustomJewelBank.JewelBankSend(Slot);
return;
}
}
// === Default Right click = move / equip etc ===
if (!pIsKeyRepeat(VK_CONTROL))
{
JCItemPublic.CDActionItem(item);
return;
}
}
}
}


credits: ChatGpt

100% Working for me no error / bugs
I used the MuSever he released to modify an IP address, opened MIAN, but couldn't create a character. Is there something not set correctly? Please advise


check dataserver logs if have error?

because mine i use the ready database
and create account using in game creation

and all working
The logs of the data server are all normal. So you mean there's an issue with the DB I restored, right?


Offline samsunggon #62 Posteado: Today at 07:39:32 AM

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 466
  • Gracias recibida: 2625
  • ph
FIX FOR JEWEL BANK+POST ITEM+PVP CTRL +AUTO WEAR

AUTO WEAR IF YOU TRY TO POST ITEM YOUR OWN WINGS/ITEMS
sample your sm wings cant post items and direct to wear in wings slot
this fix is to prevent auto wear if your own items you want to POST

ItemMove.cpp

Code: [Select]
void RightClickMoveItem()
{
// ============================================================
// ✅ FIX: Block auto-wear if CTRL is pressed (PK mode)
// ============================================================
if (GetKeyState(VK_CONTROL) & 0x8000)
{
return; // Do NOT auto-equip the item
}

// ============================================================
// ✅ ORIGINAL RIGHT-CLICK LOGIC
// ============================================================

if (!ppMousePress(VK_RBUTTON) || PickedItem || ItemMove)
{
return;
}

if (pCheckWindow(pWindowThis(), 9) == 0 && pCheckWindow(pWindowThis(), 13) == 0) // ChaosBox ~ Inventory
{
return;
}

ItemMove = false;
SourceFlag = -1;

SourceSlot = *(DWORD*)((DWORD)InventoryThis(pWindowThis()) + 284);
TargetSlot = -1;

if (SourceSlot >= 0 && SourceSlot < INVENTORY_WEAR_SIZE)
{
if (*(DWORD*)MAIN_CURRENT_MAP == 10 || *(DWORD*)MAIN_CURRENT_MAP == 39)
{
if (SourceSlot == 7 &&
GetItemEquipedIndex(8) != GET_ITEM(13, 3) &&
GetItemEquipedIndex(8) != GET_ITEM(13, 4) &&
GetItemEquipedIndex(8) != GET_ITEM(13, 37))
{
return;
}

if (SourceSlot == 8 &&
(GetItemEquipedIndex(8) == GET_ITEM(13, 3) ||
GetItemEquipedIndex(8) == GET_ITEM(13, 4) ||
GetItemEquipedIndex(8) == GET_ITEM(13, 37)) &&
GetItemEquipedIndex(7) == 0xFFFF)
{
return;
}
}

DWORD ItemStruct = GetItemEquiped(SourceSlot);

if (ItemStruct && GetItemEquipedIndex(SourceSlot) != 0xFFFF)
{
ITEM_INFO2* lpItemInfo = GetItemInfo(*(WORD*)ItemStruct);

TargetSlot = InventoryFindEmptySlot(InventoryThis(pWindowThis()), lpItemInfo->Width, lpItemInfo->Height);

if (TargetSlot != -1)
{
SendRequestEquipmentItem(0, SourceSlot, ItemStruct, 0, INVENTORY_WEAR_SIZE + TargetSlot);
ResetMouseRButton();
ItemMove = true;
SourceFlag = 0;
}
}
}
else
{
int InventoryMain = InventoryFindItemSlot(GetMyInventoryCtrl(InventoryThis(pWindowThis()), 0), pCursorX, pCursorY);
int InventoryExpand1 = InventoryFindItemSlot(GetMyInventoryCtrl(InventoryThis(pWindowThis()), 1), pCursorX, pCursorY);
int InventoryExpand2 = InventoryFindItemSlot(GetMyInventoryCtrl(InventoryThis(pWindowThis()), 2), pCursorX, pCursorY);

if (pCheckWindow(pWindowThis(), 9) != 0)
{
DWORD MixItemStruct = (DWORD)InventoryFindItem(MixGetMyInventoryCtrl(MixInventoryThis(pWindowThis())), pCursorX, pCursorY);

if (MixItemStruct)
{
ITEM_INFO2* lpItemInfo = GetItemInfo(*(WORD*)MixItemStruct);

SourceSlot = InventoryFindItemSlot(MixGetMyInventoryCtrl(MixInventoryThis(pWindowThis())), pCursorX, pCursorY);
TargetSlot = InventoryFindEmptySlot(InventoryThis(pWindowThis()), lpItemInfo->Width, lpItemInfo->Height);

if (SourceSlot != -1 && TargetSlot != -1)
{
SendRequestEquipmentItem(3, SourceSlot, MixItemStruct, 0, INVENTORY_WEAR_SIZE + TargetSlot);
ResetMouseRButton();
ItemMove = true;
SourceFlag = 1;
}
}
else
{
DWORD InventoryCtrl = -1;

DWORD ItemStruct = (DWORD)InventoryFindItemAtPt(InventoryThis(pWindowThis()), pCursorX, pCursorY, &InventoryCtrl);

if (ItemStruct)
{
ITEM_INFO2* lpItemInfo = GetItemInfo(*(WORD*)ItemStruct);

if (InventoryMain != -1)
SourceSlot = INVENTORY_WEAR_SIZE + InventoryMain;
else if (InventoryExpand1 != -1)
SourceSlot = INVENTORY_EXT1_SIZE + InventoryExpand1;
else if (InventoryExpand2 != -1)
SourceSlot = INVENTORY_EXT2_SIZE + InventoryExpand2;

TargetSlot = InventoryMixFindEmptySlot(MixGetMyInventoryCtrl(MixInventoryThis(pWindowThis())), lpItemInfo->Width, lpItemInfo->Height);

if (SourceSlot != -1 && TargetSlot != -1)
{
SendRequestEquipmentItem(0, SourceSlot, ItemStruct, 3, TargetSlot);
ResetMouseRButton();
ItemMove = true;
SourceFlag = 0;
}
}
}
}
else
{
if (pCheckWindow(pWindowThis(), 7) != 0 || pCheckWindow(pWindowThis(), 8) != 0) // Trade ~ Warehouse
{
return;
}

DWORD InventoryCtrl = -1;

DWORD ItemStruct = (DWORD)InventoryFindItemAtPt(InventoryThis(pWindowThis()), pCursorX, pCursorY, &InventoryCtrl);

if (ItemStruct)
{
if (InventoryMain != -1)
SourceSlot = INVENTORY_WEAR_SIZE + InventoryMain;
else if (InventoryExpand1 != -1)
SourceSlot = INVENTORY_EXT1_SIZE + InventoryExpand1;
else if (InventoryExpand2 != -1)
SourceSlot = INVENTORY_EXT2_SIZE + InventoryExpand2;

TargetSlot = GetInventoryWearSlot(*(WORD*)ItemStruct);

if (SourceSlot != -1 && TargetSlot != 0xFF)
{
SendRequestEquipmentItem(0, SourceSlot, ItemStruct, 0, TargetSlot);
ResetMouseRButton();
ItemMove = true;
SourceFlag = 0;
}
}
}
}
}

CustomJewelBank.cpp

Code: [Select]
void InvetoryItemOver(int This)
{
lpItemObj item = (lpItemObj) * (DWORD*)(This + 84);

if (item)
{
if (GetKeyState(VK_RBUTTON) & 0x8000 && GetKeyState(VK_SHIFT) & 0x8000)
{
int start = 12;
if (*(DWORD*)(This + 44) == 200)
{
start = 12;
}
else if (*(DWORD*)(This + 44) == 44)
{
start = 76;
}
else if (*(DWORD*)(This + 44) == 131)
{
start = 108;
}

int Slot = item->PosX + (item->PosY * 8) + start;

gCustomJewelBank.JewelBankSend(Slot);
}
}

((void(__thiscall*)(int))0x007DCF20)(This);
}

void CCustomJewelBank::Load()
{
//SetCompleteHook(0xE8, 0x007DD0D9, &InvetoryItemOver);
}

post_item.cpp

Code: [Select]
void HookRenderItemToolTip(int a1)
{
((void(__cdecl*)()) 0x007DCF20)();
lpItemObj item = (lpItemObj) * (DWORD*)(a1 + 84);
//===Fix Move Item

//===
if (gInterface.CheckWindow(8))
{
return;
}
DWORD uniqId = 0;
if (item) {
int pos = -1;
if (a1 == *(DWORD*)(*(DWORD*)0x098670B8 + 0x18))
{
uniqId = item->UniqueID;
}
else if (a1 == *(DWORD*)(*(DWORD*)0x098670B8 + 0x1C))
{
uniqId = item->UniqueID + 0x10000000;
}
else if (a1 == *(DWORD*)(*(DWORD*)0x098670B8 + 0x20))
{
uniqId = item->UniqueID + 0x20000000;
}
//
// CTRL + Right Click (block equip / block move)
if ((GetKeyState(VK_RBUTTON) & 0x8000) && (GetKeyState(VK_CONTROL) & 0x8000))
{
JCItemPublic.PostItemProc(uniqId); // your link item function
return; // IMPORTANT: block default MU behavior
}

else
{
// === Right click = Jewel Bank ===
if (GetKeyState(VK_RBUTTON) & 0x8000 && GetKeyState(VK_SHIFT) & 0x8000)
{
// panel: normal / expanded / 2nd inventory
int panel = *(DWORD*)(a1 + 44);


if (panel == 200 || panel == 44 || panel == 131)
{
int start = (panel == 200) ? 12 : (panel == 44) ? 76 : 108;
int Slot = item->PosX + (item->PosY * 8) + start;

gCustomJewelBank.JewelBankSend(Slot);
return;
}
}
// === Default Right click = move / equip etc ===
if (!pIsKeyRepeat(VK_CONTROL))
{
JCItemPublic.CDActionItem(item);
return;
}
}
}
}


credits: ChatGpt

100% Working for me no error / bugs
I used the MuSever he released to modify an IP address, opened MIAN, but couldn't create a character. Is there something not set correctly? Please advise


check dataserver logs if have error?

because mine i use the ready database
and create account using in game creation

and all working
The logs of the data server are all normal. So you mean there's an issue with the DB I restored, right?

yes

im using mssql server 2014
and no error / bugs


DISCORD: valentino1515


Offline smil158 #63 Posteado: Today at 07:55:51 AM

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 14
  • Gracias recibida: 3
  • cn
FIX FOR JEWEL BANK+POST ITEM+PVP CTRL +AUTO WEAR

AUTO WEAR IF YOU TRY TO POST ITEM YOUR OWN WINGS/ITEMS
sample your sm wings cant post items and direct to wear in wings slot
this fix is to prevent auto wear if your own items you want to POST

ItemMove.cpp

Code: [Select]
void RightClickMoveItem()
{
// ============================================================
// ✅ FIX: Block auto-wear if CTRL is pressed (PK mode)
// ============================================================
if (GetKeyState(VK_CONTROL) & 0x8000)
{
return; // Do NOT auto-equip the item
}

// ============================================================
// ✅ ORIGINAL RIGHT-CLICK LOGIC
// ============================================================

if (!ppMousePress(VK_RBUTTON) || PickedItem || ItemMove)
{
return;
}

if (pCheckWindow(pWindowThis(), 9) == 0 && pCheckWindow(pWindowThis(), 13) == 0) // ChaosBox ~ Inventory
{
return;
}

ItemMove = false;
SourceFlag = -1;

SourceSlot = *(DWORD*)((DWORD)InventoryThis(pWindowThis()) + 284);
TargetSlot = -1;

if (SourceSlot >= 0 && SourceSlot < INVENTORY_WEAR_SIZE)
{
if (*(DWORD*)MAIN_CURRENT_MAP == 10 || *(DWORD*)MAIN_CURRENT_MAP == 39)
{
if (SourceSlot == 7 &&
GetItemEquipedIndex(8) != GET_ITEM(13, 3) &&
GetItemEquipedIndex(8) != GET_ITEM(13, 4) &&
GetItemEquipedIndex(8) != GET_ITEM(13, 37))
{
return;
}

if (SourceSlot == 8 &&
(GetItemEquipedIndex(8) == GET_ITEM(13, 3) ||
GetItemEquipedIndex(8) == GET_ITEM(13, 4) ||
GetItemEquipedIndex(8) == GET_ITEM(13, 37)) &&
GetItemEquipedIndex(7) == 0xFFFF)
{
return;
}
}

DWORD ItemStruct = GetItemEquiped(SourceSlot);

if (ItemStruct && GetItemEquipedIndex(SourceSlot) != 0xFFFF)
{
ITEM_INFO2* lpItemInfo = GetItemInfo(*(WORD*)ItemStruct);

TargetSlot = InventoryFindEmptySlot(InventoryThis(pWindowThis()), lpItemInfo->Width, lpItemInfo->Height);

if (TargetSlot != -1)
{
SendRequestEquipmentItem(0, SourceSlot, ItemStruct, 0, INVENTORY_WEAR_SIZE + TargetSlot);
ResetMouseRButton();
ItemMove = true;
SourceFlag = 0;
}
}
}
else
{
int InventoryMain = InventoryFindItemSlot(GetMyInventoryCtrl(InventoryThis(pWindowThis()), 0), pCursorX, pCursorY);
int InventoryExpand1 = InventoryFindItemSlot(GetMyInventoryCtrl(InventoryThis(pWindowThis()), 1), pCursorX, pCursorY);
int InventoryExpand2 = InventoryFindItemSlot(GetMyInventoryCtrl(InventoryThis(pWindowThis()), 2), pCursorX, pCursorY);

if (pCheckWindow(pWindowThis(), 9) != 0)
{
DWORD MixItemStruct = (DWORD)InventoryFindItem(MixGetMyInventoryCtrl(MixInventoryThis(pWindowThis())), pCursorX, pCursorY);

if (MixItemStruct)
{
ITEM_INFO2* lpItemInfo = GetItemInfo(*(WORD*)MixItemStruct);

SourceSlot = InventoryFindItemSlot(MixGetMyInventoryCtrl(MixInventoryThis(pWindowThis())), pCursorX, pCursorY);
TargetSlot = InventoryFindEmptySlot(InventoryThis(pWindowThis()), lpItemInfo->Width, lpItemInfo->Height);

if (SourceSlot != -1 && TargetSlot != -1)
{
SendRequestEquipmentItem(3, SourceSlot, MixItemStruct, 0, INVENTORY_WEAR_SIZE + TargetSlot);
ResetMouseRButton();
ItemMove = true;
SourceFlag = 1;
}
}
else
{
DWORD InventoryCtrl = -1;

DWORD ItemStruct = (DWORD)InventoryFindItemAtPt(InventoryThis(pWindowThis()), pCursorX, pCursorY, &InventoryCtrl);

if (ItemStruct)
{
ITEM_INFO2* lpItemInfo = GetItemInfo(*(WORD*)ItemStruct);

if (InventoryMain != -1)
SourceSlot = INVENTORY_WEAR_SIZE + InventoryMain;
else if (InventoryExpand1 != -1)
SourceSlot = INVENTORY_EXT1_SIZE + InventoryExpand1;
else if (InventoryExpand2 != -1)
SourceSlot = INVENTORY_EXT2_SIZE + InventoryExpand2;

TargetSlot = InventoryMixFindEmptySlot(MixGetMyInventoryCtrl(MixInventoryThis(pWindowThis())), lpItemInfo->Width, lpItemInfo->Height);

if (SourceSlot != -1 && TargetSlot != -1)
{
SendRequestEquipmentItem(0, SourceSlot, ItemStruct, 3, TargetSlot);
ResetMouseRButton();
ItemMove = true;
SourceFlag = 0;
}
}
}
}
else
{
if (pCheckWindow(pWindowThis(), 7) != 0 || pCheckWindow(pWindowThis(), 8) != 0) // Trade ~ Warehouse
{
return;
}

DWORD InventoryCtrl = -1;

DWORD ItemStruct = (DWORD)InventoryFindItemAtPt(InventoryThis(pWindowThis()), pCursorX, pCursorY, &InventoryCtrl);

if (ItemStruct)
{
if (InventoryMain != -1)
SourceSlot = INVENTORY_WEAR_SIZE + InventoryMain;
else if (InventoryExpand1 != -1)
SourceSlot = INVENTORY_EXT1_SIZE + InventoryExpand1;
else if (InventoryExpand2 != -1)
SourceSlot = INVENTORY_EXT2_SIZE + InventoryExpand2;

TargetSlot = GetInventoryWearSlot(*(WORD*)ItemStruct);

if (SourceSlot != -1 && TargetSlot != 0xFF)
{
SendRequestEquipmentItem(0, SourceSlot, ItemStruct, 0, TargetSlot);
ResetMouseRButton();
ItemMove = true;
SourceFlag = 0;
}
}
}
}
}

CustomJewelBank.cpp

Code: [Select]
void InvetoryItemOver(int This)
{
lpItemObj item = (lpItemObj) * (DWORD*)(This + 84);

if (item)
{
if (GetKeyState(VK_RBUTTON) & 0x8000 && GetKeyState(VK_SHIFT) & 0x8000)
{
int start = 12;
if (*(DWORD*)(This + 44) == 200)
{
start = 12;
}
else if (*(DWORD*)(This + 44) == 44)
{
start = 76;
}
else if (*(DWORD*)(This + 44) == 131)
{
start = 108;
}

int Slot = item->PosX + (item->PosY * 8) + start;

gCustomJewelBank.JewelBankSend(Slot);
}
}

((void(__thiscall*)(int))0x007DCF20)(This);
}

void CCustomJewelBank::Load()
{
//SetCompleteHook(0xE8, 0x007DD0D9, &InvetoryItemOver);
}

post_item.cpp

Code: [Select]
void HookRenderItemToolTip(int a1)
{
((void(__cdecl*)()) 0x007DCF20)();
lpItemObj item = (lpItemObj) * (DWORD*)(a1 + 84);
//===Fix Move Item

//===
if (gInterface.CheckWindow(8))
{
return;
}
DWORD uniqId = 0;
if (item) {
int pos = -1;
if (a1 == *(DWORD*)(*(DWORD*)0x098670B8 + 0x18))
{
uniqId = item->UniqueID;
}
else if (a1 == *(DWORD*)(*(DWORD*)0x098670B8 + 0x1C))
{
uniqId = item->UniqueID + 0x10000000;
}
else if (a1 == *(DWORD*)(*(DWORD*)0x098670B8 + 0x20))
{
uniqId = item->UniqueID + 0x20000000;
}
//
// CTRL + Right Click (block equip / block move)
if ((GetKeyState(VK_RBUTTON) & 0x8000) && (GetKeyState(VK_CONTROL) & 0x8000))
{
JCItemPublic.PostItemProc(uniqId); // your link item function
return; // IMPORTANT: block default MU behavior
}

else
{
// === Right click = Jewel Bank ===
if (GetKeyState(VK_RBUTTON) & 0x8000 && GetKeyState(VK_SHIFT) & 0x8000)
{
// panel: normal / expanded / 2nd inventory
int panel = *(DWORD*)(a1 + 44);


if (panel == 200 || panel == 44 || panel == 131)
{
int start = (panel == 200) ? 12 : (panel == 44) ? 76 : 108;
int Slot = item->PosX + (item->PosY * 8) + start;

gCustomJewelBank.JewelBankSend(Slot);
return;
}
}
// === Default Right click = move / equip etc ===
if (!pIsKeyRepeat(VK_CONTROL))
{
JCItemPublic.CDActionItem(item);
return;
}
}
}
}


credits: ChatGpt

100% Working for me no error / bugs
I used the MuSever he released to modify an IP address, opened MIAN, but couldn't create a character. Is there something not set correctly? Please advise


check dataserver logs if have error?

because mine i use the ready database
and create account using in game creation

and all working
The logs of the data server are all normal. So you mean there's an issue with the DB I restored, right?

yes

im using mssql server 2014
and no error / bugs
I used MS SQL Server 2008 and switched to another database, but the same error still occurred. I crashed. This is my incorrect image https://imgur.com/a/xG5tDNw


Offline 2ooooo2 #64 Posteado: Today at 11:33:15 AM

  • 0 puntos por ventas
  • *
  • Rank: Dedicado
  • Posts: 32
  • Gracias recibida: 3
  • ve
FIX FOR JEWEL BANK+POST ITEM+PVP CTRL +AUTO WEAR

AUTO WEAR IF YOU TRY TO POST ITEM YOUR OWN WINGS/ITEMS
sample your sm wings cant post items and direct to wear in wings slot
this fix is to prevent auto wear if your own items you want to POST

ItemMove.cpp

Code: [Select]
void RightClickMoveItem()
{
// ============================================================
// ✅ FIX: Block auto-wear if CTRL is pressed (PK mode)
// ============================================================
if (GetKeyState(VK_CONTROL) & 0x8000)
{
return; // Do NOT auto-equip the item
}

// ============================================================
// ✅ ORIGINAL RIGHT-CLICK LOGIC
// ============================================================

if (!ppMousePress(VK_RBUTTON) || PickedItem || ItemMove)
{
return;
}

if (pCheckWindow(pWindowThis(), 9) == 0 && pCheckWindow(pWindowThis(), 13) == 0) // ChaosBox ~ Inventory
{
return;
}

ItemMove = false;
SourceFlag = -1;

SourceSlot = *(DWORD*)((DWORD)InventoryThis(pWindowThis()) + 284);
TargetSlot = -1;

if (SourceSlot >= 0 && SourceSlot < INVENTORY_WEAR_SIZE)
{
if (*(DWORD*)MAIN_CURRENT_MAP == 10 || *(DWORD*)MAIN_CURRENT_MAP == 39)
{
if (SourceSlot == 7 &&
GetItemEquipedIndex(8) != GET_ITEM(13, 3) &&
GetItemEquipedIndex(8) != GET_ITEM(13, 4) &&
GetItemEquipedIndex(8) != GET_ITEM(13, 37))
{
return;
}

if (SourceSlot == 8 &&
(GetItemEquipedIndex(8) == GET_ITEM(13, 3) ||
GetItemEquipedIndex(8) == GET_ITEM(13, 4) ||
GetItemEquipedIndex(8) == GET_ITEM(13, 37)) &&
GetItemEquipedIndex(7) == 0xFFFF)
{
return;
}
}

DWORD ItemStruct = GetItemEquiped(SourceSlot);

if (ItemStruct && GetItemEquipedIndex(SourceSlot) != 0xFFFF)
{
ITEM_INFO2* lpItemInfo = GetItemInfo(*(WORD*)ItemStruct);

TargetSlot = InventoryFindEmptySlot(InventoryThis(pWindowThis()), lpItemInfo->Width, lpItemInfo->Height);

if (TargetSlot != -1)
{
SendRequestEquipmentItem(0, SourceSlot, ItemStruct, 0, INVENTORY_WEAR_SIZE + TargetSlot);
ResetMouseRButton();
ItemMove = true;
SourceFlag = 0;
}
}
}
else
{
int InventoryMain = InventoryFindItemSlot(GetMyInventoryCtrl(InventoryThis(pWindowThis()), 0), pCursorX, pCursorY);
int InventoryExpand1 = InventoryFindItemSlot(GetMyInventoryCtrl(InventoryThis(pWindowThis()), 1), pCursorX, pCursorY);
int InventoryExpand2 = InventoryFindItemSlot(GetMyInventoryCtrl(InventoryThis(pWindowThis()), 2), pCursorX, pCursorY);

if (pCheckWindow(pWindowThis(), 9) != 0)
{
DWORD MixItemStruct = (DWORD)InventoryFindItem(MixGetMyInventoryCtrl(MixInventoryThis(pWindowThis())), pCursorX, pCursorY);

if (MixItemStruct)
{
ITEM_INFO2* lpItemInfo = GetItemInfo(*(WORD*)MixItemStruct);

SourceSlot = InventoryFindItemSlot(MixGetMyInventoryCtrl(MixInventoryThis(pWindowThis())), pCursorX, pCursorY);
TargetSlot = InventoryFindEmptySlot(InventoryThis(pWindowThis()), lpItemInfo->Width, lpItemInfo->Height);

if (SourceSlot != -1 && TargetSlot != -1)
{
SendRequestEquipmentItem(3, SourceSlot, MixItemStruct, 0, INVENTORY_WEAR_SIZE + TargetSlot);
ResetMouseRButton();
ItemMove = true;
SourceFlag = 1;
}
}
else
{
DWORD InventoryCtrl = -1;

DWORD ItemStruct = (DWORD)InventoryFindItemAtPt(InventoryThis(pWindowThis()), pCursorX, pCursorY, &InventoryCtrl);

if (ItemStruct)
{
ITEM_INFO2* lpItemInfo = GetItemInfo(*(WORD*)ItemStruct);

if (InventoryMain != -1)
SourceSlot = INVENTORY_WEAR_SIZE + InventoryMain;
else if (InventoryExpand1 != -1)
SourceSlot = INVENTORY_EXT1_SIZE + InventoryExpand1;
else if (InventoryExpand2 != -1)
SourceSlot = INVENTORY_EXT2_SIZE + InventoryExpand2;

TargetSlot = InventoryMixFindEmptySlot(MixGetMyInventoryCtrl(MixInventoryThis(pWindowThis())), lpItemInfo->Width, lpItemInfo->Height);

if (SourceSlot != -1 && TargetSlot != -1)
{
SendRequestEquipmentItem(0, SourceSlot, ItemStruct, 3, TargetSlot);
ResetMouseRButton();
ItemMove = true;
SourceFlag = 0;
}
}
}
}
else
{
if (pCheckWindow(pWindowThis(), 7) != 0 || pCheckWindow(pWindowThis(), 8) != 0) // Trade ~ Warehouse
{
return;
}

DWORD InventoryCtrl = -1;

DWORD ItemStruct = (DWORD)InventoryFindItemAtPt(InventoryThis(pWindowThis()), pCursorX, pCursorY, &InventoryCtrl);

if (ItemStruct)
{
if (InventoryMain != -1)
SourceSlot = INVENTORY_WEAR_SIZE + InventoryMain;
else if (InventoryExpand1 != -1)
SourceSlot = INVENTORY_EXT1_SIZE + InventoryExpand1;
else if (InventoryExpand2 != -1)
SourceSlot = INVENTORY_EXT2_SIZE + InventoryExpand2;

TargetSlot = GetInventoryWearSlot(*(WORD*)ItemStruct);

if (SourceSlot != -1 && TargetSlot != 0xFF)
{
SendRequestEquipmentItem(0, SourceSlot, ItemStruct, 0, TargetSlot);
ResetMouseRButton();
ItemMove = true;
SourceFlag = 0;
}
}
}
}
}

CustomJewelBank.cpp

Code: [Select]
void InvetoryItemOver(int This)
{
lpItemObj item = (lpItemObj) * (DWORD*)(This + 84);

if (item)
{
if (GetKeyState(VK_RBUTTON) & 0x8000 && GetKeyState(VK_SHIFT) & 0x8000)
{
int start = 12;
if (*(DWORD*)(This + 44) == 200)
{
start = 12;
}
else if (*(DWORD*)(This + 44) == 44)
{
start = 76;
}
else if (*(DWORD*)(This + 44) == 131)
{
start = 108;
}

int Slot = item->PosX + (item->PosY * 8) + start;

gCustomJewelBank.JewelBankSend(Slot);
}
}

((void(__thiscall*)(int))0x007DCF20)(This);
}

void CCustomJewelBank::Load()
{
//SetCompleteHook(0xE8, 0x007DD0D9, &InvetoryItemOver);
}

post_item.cpp

Code: [Select]
void HookRenderItemToolTip(int a1)
{
((void(__cdecl*)()) 0x007DCF20)();
lpItemObj item = (lpItemObj) * (DWORD*)(a1 + 84);
//===Fix Move Item

//===
if (gInterface.CheckWindow(8))
{
return;
}
DWORD uniqId = 0;
if (item) {
int pos = -1;
if (a1 == *(DWORD*)(*(DWORD*)0x098670B8 + 0x18))
{
uniqId = item->UniqueID;
}
else if (a1 == *(DWORD*)(*(DWORD*)0x098670B8 + 0x1C))
{
uniqId = item->UniqueID + 0x10000000;
}
else if (a1 == *(DWORD*)(*(DWORD*)0x098670B8 + 0x20))
{
uniqId = item->UniqueID + 0x20000000;
}
//
// CTRL + Right Click (block equip / block move)
if ((GetKeyState(VK_RBUTTON) & 0x8000) && (GetKeyState(VK_CONTROL) & 0x8000))
{
JCItemPublic.PostItemProc(uniqId); // your link item function
return; // IMPORTANT: block default MU behavior
}

else
{
// === Right click = Jewel Bank ===
if (GetKeyState(VK_RBUTTON) & 0x8000 && GetKeyState(VK_SHIFT) & 0x8000)
{
// panel: normal / expanded / 2nd inventory
int panel = *(DWORD*)(a1 + 44);


if (panel == 200 || panel == 44 || panel == 131)
{
int start = (panel == 200) ? 12 : (panel == 44) ? 76 : 108;
int Slot = item->PosX + (item->PosY * 8) + start;

gCustomJewelBank.JewelBankSend(Slot);
return;
}
}
// === Default Right click = move / equip etc ===
if (!pIsKeyRepeat(VK_CONTROL))
{
JCItemPublic.CDActionItem(item);
return;
}
}
}
}


credits: ChatGpt

100% Working for me no error / bugs
I used the MuSever he released to modify an IP address, opened MIAN, but couldn't create a character. Is there something not set correctly? Please advise


check dataserver logs if have error?

because mine i use the ready database
and create account using in game creation

and all working
The logs of the data server are all normal. So you mean there's an issue with the DB I restored, right?

yes

im using mssql server 2014
and no error / bugs
I used MS SQL Server 2008 and switched to another database, but the same error still occurred. I crashed. This is my incorrect image https://imgur.com/a/xG5tDNw

crea la cuenta por titan editor si la crea por alli la base de datos esta bien....


Offline pokimon #65 Posteado: Today at 12:06:00 PM

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 26
  • Gracias recibida: 3
  • th
how to increase fps
An error occurred. Unable to change job class 1 with the Priest NPC.


Offline pokimon #66 Posteado: Today at 12:08:06 PM

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 26
  • Gracias recibida: 3
  • th
el acc se ve bien... lo que no se ve es el custom ranking se queda cargando y no aparece nada alguien sabe porque?

 el custom ranking si funciona perfecto bro.
An error occurred. Unable to change job class 1 with the Priest NPC.


Online Genius05 #67 Posteado: Today at 03:52:35 PM | Modificado: Today at 03:58:56 PM by Genius05

  • 0 puntos por ventas
  • *
  • Rank: Experto
  • Posts: 165
  • Gracias recibida: 133
  • ve
el acc se ve bien... lo que no se ve es el custom ranking se queda cargando y no aparece nada alguien sabe porque?

 el custom ranking si funciona perfecto bro.
An error occurred. Unable to change job class 1 with the Priest NPC.
quien tiene el fix de chaosbox. y el info del tiempo de chaos castle.¿?
https://imgur.com/a/ULOilmZ


Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate


 

Related Topics

  Subject / Started by Replies Last post
69 Replies
10988 Views
Last post September 17, 2025, 03:09:17 AM
by hofer
18 Replies
25880 Views
Last post August 27, 2025, 03:55:44 AM
by kodai
5 Replies
7144 Views
Last post September 26, 2022, 04:06:08 PM
by Betell Host
20 Replies
4429 Views
Last post April 11, 2025, 12:03:23 AM
by Nexus
1 Replies
2128 Views
Last post April 11, 2025, 09:59:33 PM
by Peluuca