- Discord
- pvpers.gg
PvP Haritalarında Binek Kullanımını Engelleme
Bazı PvP alanlarında binek kullanımı, oyunculara ekstra hız veya avantaj sağladığı için, savaş dengesini bozabilir. Bu nedenle belirli haritalarda bineğe binmeyi ve binek çağırmayı otomatik olarak engelleyen bir sistem oluşturulmuştur.
Ne İşe Yarar?
Sistemde tanımlı PvP haritalarına giren oyuncular, bineğe binemez veya binek çağıramaz. Böylece tüm oyuncular eşit koşullarda mücadele eder.
Özelleştirilebilir:
Harita kodlarını değiştirerek sistemin etki alanını genişletebilir veya daraltabilirsin. PvP dışı alanları sistemden hariç tutmak mümkündür.
Kod Ekleme Talimatları
Not: Harita ID’lerini kendi PvP sunucu yapına göre özelleştirebilirsin. Sistem esnek şekilde çalışacak şekilde tasarlanmıştır.
Bazı PvP alanlarında binek kullanımı, oyunculara ekstra hız veya avantaj sağladığı için, savaş dengesini bozabilir. Bu nedenle belirli haritalarda bineğe binmeyi ve binek çağırmayı otomatik olarak engelleyen bir sistem oluşturulmuştur.
Ne İşe Yarar?
Sistemde tanımlı PvP haritalarına giren oyuncular, bineğe binemez veya binek çağıramaz. Böylece tüm oyuncular eşit koşullarda mücadele eder.
Özelleştirilebilir:
Harita kodlarını değiştirerek sistemin etki alanını genişletebilir veya daraltabilirsin. PvP dışı alanları sistemden hariç tutmak mümkündür.
Kod Ekleme Talimatları
char.h
dosyasını aç:
Kod:
// BUL:
bool Show (long lMapIndex, long x, long y, long z = LONG_MAX, bool bShowSpawnMotion = false);
// HEMEN ÜSTÜNE EKLE:
bool IS_RIDEABLE_ZONE (int map_index); // PvP harita kontrol fonksiyonu
char_horse.cpp
dosyasını aç:char_item.cpp
dosyasını aç:
Kod:
// BUL:
bool CHARACTER::UseItemEx (LPITEM item, TItemPos DestCell, bool bUseItemToItem, bool bSendUseItemPacket)
// BUL VE ALTINA EKLE:
if (item->IsRideItem())
{
if (!IS_RIDEABLE_ZONE(GetMapIndex()))
{
ChatPacket (CHAT_TYPE_INFO, LC_TEXT ("Bu PvP haritasında binek çağırmak yasaktır."));
return false;
}
}
cmd_general.cpp
dosyasını aç:
Kod:
// BUL:
ACMD (do_ride)
// ÜSTÜNE EKLE:
extern bool IS_RIDEABLE_ZONE (int map_index);
// BUL:
if (ch->IsPolymorphed())
{
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT ("변신 상태에서는 말 위inde olamazsınız."));
return;
}
// ALTINA EKLE:
if (!IS_RIDEABLE_ZONE(ch->GetMapIndex()))
{
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT ("Bu PvP haritasında bineğe binemezsiniz."));
return;
}
cmd_gm.cpp
dosyasını aç:
Kod:
// BUL:
ACMD (do_mount)
// ÜSTÜNE EKLE:
extern bool IS_RIDEABLE_ZONE (int map_index);
// BUL:
if (ch->IsHorseRiding())
{
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT ("Zaten bir binektesiniz."));
return;
}
// ALTINA EKLE:
if (!IS_RIDEABLE_ZONE(ch->GetMapIndex()))
{
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT ("Bu PvP haritasında bineğe binemezsiniz."));
return;
}
input_login.cpp
dosyasını aç:char.cpp
dosyasını aç:
Kod:
// DOSYANIN EN SONUNA EKLE:
bool IS_RIDEABLE_ZONE (int map_index)
{
// PvP haritalarında bineğe binmeyi engelle
switch (map_index)
{
case 113: // Guild War
case 31: // Arena
case 181: // OX Etkinliği
case 209: // Düğün Map
case 210: // Düğün Map 2
return false;
default:
return true;
}
}
Not: Harita ID’lerini kendi PvP sunucu yapına göre özelleştirebilirsin. Sistem esnek şekilde çalışacak şekilde tasarlanmıştır.