Aethre

www.pvpers.gg
Katılım
19 Haz 2024
Konular
383
Mesajlar
477
Beğeniler
789
GG Coin
14,220
Ticaret Değeri - 0%
0   0   0
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ı

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ç:
Gizlenmiş içeriği görüntüleyebilmek için Giriş Yap ya da Kayıt Ol
Bu işlem, 15 saniyeden az sürer.


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ç:
Gizlenmiş içeriği görüntüleyebilmek için Giriş Yap ya da Kayıt Ol
Bu işlem, 15 saniyeden az sürer.

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.
 
Etkinlikler için kullanılabilir yine bu tarz özellikler sağolun hocam
 
bugün on numara paylaşımlar yaptın yine üstad teşekkürler paylaşım için :HYPERSL:
 
Geri
Üst Alt