• 🎉 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

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,381
2
1,308
113
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.
 
AdBlock Detected

We get it, advertisements are annoying!

Sure, ad-blocking software does a great job at blocking ads, but it also blocks useful features of our website. For the best site experience please disable your AdBlocker.

I've Disabled AdBlock