• 🎉 Hey there! I've just launched my brand new server voting platform — Metin2 P Servers 🚀

Not answered MartySama v5.7 Costume Mount issue

Member
Dec
Threads
1
4
0
1
HubMoney
17

AD: Mt2009 - Mobile & PC - 30 January 2026 CHECK THE PRESENTATION!

Hello, the mounts are attached correctly but I can never use. When I press Ctrl+G, it changes the ones in my inventory. When I check the system logs, I see logs like this: Dec 25 03:00:41 :: COMMAND: tkj: ride
Dec 25 03:00:41 :: tkj: USE_ITEM White Lion (inven 1, cell: 1)
Dec 25 03:00:41 :: COMMAND: tkj: ride
Dec 25 03:00:41 :: tkj: USE_ITEM Wild Boar (yellow) (inven 1, cell: 1)
Dec 25 03:00:41 :: COMMAND: tkj: ride
Dec 25 03:00:41 :: tkj: USE_ITEM White Lion (inven 1, cell: 1)
Dec 25 03:00:42 :: COMMAND: tkj: ride
Dec 25 03:00:42 :: tkj: USE_ITEM How can I solve the Wild Boar (yellow) (inven 1, cell: 1) problem?

Also, the item proto is like this: 71226 ³«Å¸ ¼ÒȯÆĞ1 ITEM_COSTUME COSTUME_MOUNT 1 ANTI_DROP | ANTI_SELL | ANTI_GIVE | ANTI_PKDROP | ANTI_STACK | ANTI_MYSHOP QUEST_USE_MULTIPLE | LOG NONE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_MOV_SPEED 20 APPLY_MAX_HP 1500 APPLY_NONE 0 43200 0 0 0 20248 0 0 0 0


and i tried to fix cmd_general but it didnt work

ACMD(do_ride)
{
sys_log(0, "[DO_RIDE] Tetiklendi: %s", ch->GetName());

if (ch->IsDead() || ch->IsStun())
return;

// 1. Zaten biniyorsa in
if (ch->IsHorseRiding())
{
ch->StopRiding();
return;
}
if (ch->GetMountVnum())
{
do_unmount(ch, NULL, 0, 0);
return;
}

// 2. At varsa bin
if (ch->GetHorse() != NULL)
{
ch->StartRiding();
return;
}

// ========================================================================

// ========================================================================

LPITEM pEquipped = NULL;
int iSlotIndex = -1;

// A. Önce Kostüm Slotunu Kontrol Et
#ifdef ENABLE_MOUNT_COSTUME_SYSTEM
if (ch->GetWear(WEAR_COSTUME_MOUNT))
{
pEquipped = ch->GetWear(WEAR_COSTUME_MOUNT);
iSlotIndex = WEAR_COSTUME_MOUNT;
}
#endif


if (!pEquipped)
{
LPITEM pU1 = ch->GetWear(WEAR_UNIQUE1);
if (pU1)
{
DWORD v = pU1->GetVnum();
// Senin 71124 ve diğer mühür aralıkları
if ((v >= 71114 && v <= 71130) || (v >= 52000 && v <= 52100) || v == 71124)
{
pEquipped = pU1;
iSlotIndex = WEAR_UNIQUE1;
}
}
}

if (!pEquipped)
{
LPITEM pU2 = ch->GetWear(WEAR_UNIQUE2);
if (pU2)
{
DWORD v = pU2->GetVnum();
if ((v >= 71114 && v <= 71130) || (v >= 52000 && v <= 52100) || v == 71124)
{
pEquipped = pU2;
iSlotIndex = WEAR_UNIQUE2;
}
}
}

// --- KARAR ANI: BİNEK BULUNDU MU? ---
if (pEquipped != NULL)
{
// Binek Mob Kodunu (Value3) alıyoruz (Örn: 20114 - Beyaz Aslan)
DWORD dwMountVnum = pEquipped->GetValue(3);

if (dwMountVnum == 0)
dwMountVnum = pEquipped->GetValue(2);

if (dwMountVnum > 0)
{

ch->HorseSummon(true, dwMountVnum);

// Sonra bindir
ch->StartRiding();
}
else
{
// Mob kodu yoksa standart kullan
ch->UseItem(TItemPos(EQUIPMENT, iSlotIndex));
}

return;
}
// ========================================================================


// 3. Envanter Döngüsü
for (BYTE i = 0; i < INVENTORY_MAX_NUM; ++i)
{
LPITEM item = ch->GetInventoryItem(i);
if (NULL == item)
continue;

DWORD vnum = item->GetVnum();

bool isMount = item->IsRideItem();
// IsRideItem false dönse bile bizim vnum listesindeyse binek sayalım
if (!isMount)
{
if ((vnum >= 71114 && vnum <= 71130) || (vnum >= 52000 && vnum <= 52100) || vnum == 71124)
isMount = true;
}

if (isMount)
{

if (ch->GetWear(WEAR_UNIQUE1) && (ch->GetWear(WEAR_UNIQUE1)->GetVnum() >= 71114)) continue;
if (ch->GetWear(WEAR_UNIQUE2) && (ch->GetWear(WEAR_UNIQUE2)->GetVnum() >= 71114)) continue;
#ifdef ENABLE_MOUNT_COSTUME_SYSTEM
if (ch->GetWear(WEAR_COSTUME_MOUNT)) continue;
#endif


ch->UseItem(TItemPos(INVENTORY, i));
return;
}
}

ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Atı önce çağırmalısınız."));
}

#ifdef ENABLE_MOVE_CHANNEL
ACMD(DoChangeChannel)
{
char arg1[256];
one_argument(argument, arg1, sizeof(arg1));
if (!*arg1)
return;

WORD channel = 0;
str_to_number(channel, arg1);
if (!channel)
return;

ch->ChangeChannel(channel);
}
#endif
 
Metin2Hub Bot
M2Hub Bot
Feb
Threads
66
2,363
2
1,293
113
HubMoney
1,678
Hello, the mounts are attached correctly but I can never use. When I press Ctrl+G, it changes the ones in my inventory. When I check the system logs, I see logs like this: Dec 25 03:00:41 :: COMMAND: tkj: ride
Dec 25 03:00:41 :: tkj: USE_ITEM White Lion (inven 1, cell: 1)
Dec 25 03:00:41 :: COMMAND: tkj: ride
Dec 25 03:00:41 :: tkj: USE_ITEM Wild Boar (yellow) (inven 1, cell: 1)
Dec 25 03:00:41 :: COMMAND: tkj: ride
Dec 25 03:00:41 :: tkj: USE_ITEM White Lion (inven 1, cell: 1)
Dec 25 03:00:42 :: COMMAND: tkj: ride
Dec 25 03:00:42 :: tkj: USE_ITEM How can I solve the Wild Boar (yellow) (inven 1, cell: 1) problem?

Also, the item proto is like this: 71226 ³«Å¸ ¼ÒȯÆĞ1 ITEM_COSTUME COSTUME_MOUNT 1 ANTI_DROP | ANTI_SELL | ANTI_GIVE | ANTI_PKDROP | ANTI_STACK | ANTI_MYSHOP QUEST_USE_MULTIPLE | LOG NONE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_MOV_SPEED 20 APPLY_MAX_HP 1500 APPLY_NONE 0 43200 0 0 0 20248 0 0 0 0


and i tried to fix cmd_general but it didnt work

ACMD(do_ride)
{
sys_log(0, "[DO_RIDE] Tetiklendi: %s", ch->GetName());

if (ch->IsDead() || ch->IsStun())
return;

// 1. Zaten biniyorsa in
if (ch->IsHorseRiding())
{
ch->StopRiding();
return;
}
if (ch->GetMountVnum())
{
do_unmount(ch, NULL, 0, 0);
return;
}

// 2. At varsa bin
if (ch->GetHorse() != NULL)
{
ch->StartRiding();
return;
}

// ========================================================================

// ========================================================================

LPITEM pEquipped = NULL;
int iSlotIndex = -1;

// A. Önce Kostüm Slotunu Kontrol Et
#ifdef ENABLE_MOUNT_COSTUME_SYSTEM
if (ch->GetWear(WEAR_COSTUME_MOUNT))
{
pEquipped = ch->GetWear(WEAR_COSTUME_MOUNT);
iSlotIndex = WEAR_COSTUME_MOUNT;
}
#endif


if (!pEquipped)
{
LPITEM pU1 = ch->GetWear(WEAR_UNIQUE1);
if (pU1)
{
DWORD v = pU1->GetVnum();
// Senin 71124 ve diğer mühür aralıkları
if ((v >= 71114 && v <= 71130) || (v >= 52000 && v <= 52100) || v == 71124)
{
pEquipped = pU1;
iSlotIndex = WEAR_UNIQUE1;
}
}
}

if (!pEquipped)
{
LPITEM pU2 = ch->GetWear(WEAR_UNIQUE2);
if (pU2)
{
DWORD v = pU2->GetVnum();
if ((v >= 71114 && v <= 71130) || (v >= 52000 && v <= 52100) || v == 71124)
{
pEquipped = pU2;
iSlotIndex = WEAR_UNIQUE2;
}
}
}

// --- KARAR ANI: BİNEK BULUNDU MU? ---
if (pEquipped != NULL)
{
// Binek Mob Kodunu (Value3) alıyoruz (Örn: 20114 - Beyaz Aslan)
DWORD dwMountVnum = pEquipped->GetValue(3);

if (dwMountVnum == 0)
dwMountVnum = pEquipped->GetValue(2);

if (dwMountVnum > 0)
{

ch->HorseSummon(true, dwMountVnum);

// Sonra bindir
ch->StartRiding();
}
else
{
// Mob kodu yoksa standart kullan
ch->UseItem(TItemPos(EQUIPMENT, iSlotIndex));
}

return;
}
// ========================================================================


// 3. Envanter Döngüsü
for (BYTE i = 0; i < INVENTORY_MAX_NUM; ++i)
{
LPITEM item = ch->GetInventoryItem(i);
if (NULL == item)
continue;

DWORD vnum = item->GetVnum();

bool isMount = item->IsRideItem();
// IsRideItem false dönse bile bizim vnum listesindeyse binek sayalım
if (!isMount)
{
if ((vnum >= 71114 && vnum <= 71130) || (vnum >= 52000 && vnum <= 52100) || vnum == 71124)
isMount = true;
}

if (isMount)
{

if (ch->GetWear(WEAR_UNIQUE1) && (ch->GetWear(WEAR_UNIQUE1)->GetVnum() >= 71114)) continue;
if (ch->GetWear(WEAR_UNIQUE2) && (ch->GetWear(WEAR_UNIQUE2)->GetVnum() >= 71114)) continue;
#ifdef ENABLE_MOUNT_COSTUME_SYSTEM
if (ch->GetWear(WEAR_COSTUME_MOUNT)) continue;
#endif


ch->UseItem(TItemPos(INVENTORY, i));
return;
}
}

ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Atı önce çağırmalısınız."));
}

#ifdef ENABLE_MOVE_CHANNEL
ACMD(DoChangeChannel)
{
char arg1[256];
one_argument(argument, arg1, sizeof(arg1));
if (!*arg1)
return;

WORD channel = 0;
str_to_number(channel, arg1);
if (!channel)
return;

ch->ChangeChannel(channel);
}
#endif

Hello dear user,

Your post will be under surveillance by bots for the next few hours.

Forum description : Metin2 private server, Metin2 download, Metin2 support, Metin2 Forum, Metin2 Pvp Servers, Errors, Bugs, Requests, Metin2 Pvp Forum, Everything About Metin2.