Neler yeni
XenForo Bannerlar
Modern AdBlock Uyarısı

Foruma hoş geldin, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Sistem Metin damage limit SQL

Fatih Bulut

Süper Üye
Katılım
6 Kas 2021
Mesajlar
4,158
Tepkime puanı
5,553
Puanları
113
Yaş
32
Konum
Türkiye
Dc
fatihbulut
Max vurulacak damageyi sqlden ayarlar ve reload m ile günceller.

INSTANCE_TYPE_STONE hatası alırsanız.::

Kod:
PythonCharacterModule.cpp içinde

PyModule_AddIntConstant(poModule, "INSTANCE_TYPE_NPC",                    CActorInstance::TYPE_NPC);

//altına ekle

    PyModule_AddIntConstant(poModule, "INSTANCE_TYPE_STONE",                    CActorInstance::TYPE_STONE);

1777291345040.png


Gizli içerik
Bu içeriği görmek için cevap yazmalısınız.
Sistemin orjinali bu. Bu şekilde kullanmak isterseniz:

Damage Limit Sistemi

Bu sistem, belirlenen metin taşları veya özel moblar için maksimum hasar limiti ekler. Böylece oyuncular bu hedeflere belirlenen değerin üzerinde hasar vuramaz.

Server Part

Kod:
char_battle.cpp

İçinde arat:

Kod:
bool CHARACTER::Damage

Aşağıdaki koddan önce:

Kod:
        if (pAttacker)
            SendDamagePacket(pAttacker, dam, damageFlag);

Ekle:

Kod:
        std::map<int, int> damageLimits = {
            {8009, 25000},
            {8010, 30000},
            {8011, 35000},
            {8012, 40000},
            {8013, 45000},
            {8014, 50000},
            {8024, 55000},
            {8025, 60000},
            {8026, 70000},
            {8027, 100000},
            {8127, 100000},
            {8158, 100000}
        };

        auto it = damageLimits.find(GetRaceNum());
        if (it != damageLimits.end() && dam > it->second) {
            dam = it->second;
        }

Dosya:

Kod:
uitarget.py

Kod:
    GRADE_NAME =    {
                        nonplayer.PAWN : localeInfo.TARGET_LEVEL_PAWN,
                        nonplayer.S_PAWN : localeInfo.TARGET_LEVEL_S_PAWN,
                        nonplayer.KNIGHT : localeInfo.TARGET_LEVEL_KNIGHT,
                        nonplayer.S_KNIGHT : localeInfo.TARGET_LEVEL_S_KNIGHT,
                        nonplayer.BOSS : localeInfo.TARGET_LEVEL_BOSS,
                        nonplayer.KING : localeInfo.TARGET_LEVEL_KING,
                    }

Altına ekle:

Kod:
    LIMITE_NIVEL = {
        8009: "25000",
        8010: "30000",
        8011: "35000",
        8012: "40000",
        8013: "45000",
        8014: "50000",
        8024: "55000",
        8025: "60000",
        8026: "70000",
        8027: "100000",
        8127: "100000",
        8158: "100000",
    }

İçinde arat:

Kod:
    def __init__(self):

Arat:

Kod:
        closeButton = ui.Button()

Üstüne ekle:

Kod:
        damageLimitText = ui.TextLine()
        damageLimitText.SetParent(self)
        damageLimitText.SetOutline()
        damageLimitText.SetHorizontalAlignRight()
        damageLimitText.Hide()
        self.damageLimitText = damageLimitText

Aşağıdaki fonksiyondan sonra:

Kod:
    def __ShowMainCharacterMenu(self):

Ekle:

Kod:
    def ShowDamageLimitText(self, vid):
        vnum = nonplayer.GetRaceNumByVID(vid)

        if vnum in self.LIMITE_NIVEL:
            limita_damage = self.LIMITE_NIVEL[vnum]
            self.damageLimitText.SetText("Limita damage este: " + str(limita_damage))
        else:
            self.damageLimitText.SetText("Nu exista limita de damage pentru acest metin.")

        self.damageLimitText.Show()

Arat:

Kod:
    def UpdatePosition(self):

Fonksiyonu bununla değiştir:

Kod:
    def UpdatePosition(self):
        self.SetPosition(wndMgr.GetScreenWidth() / 2 - self.GetWidth() / 2, 10)

        if chr.GetInstanceType(self.vid) == chr.INSTANCE_TYPE_STONE:
            self.SetSize(self.GetWidth(), self.GetHeight() + 20)

            self.ShowDamageLimitText(self.vid)

            self.damageLimitText.SetPosition(self.GetWidth() / 2, 30)
            self.damageLimitText.Show()
        else:
            self.damageLimitText.Hide()
Not

Bu sistemde server tarafı gerçek hasar limitini uygular. Client tarafı ise hedef penceresinde oyuncuya ilgili metin taşı için hasar limitini gösterir.
 

Benzer konular

Forumdan daha fazla yararlanmak için giriş yapın yada üye olun!

Forumdan daha fazla yararlanmak için giriş yapın veya kayıt olun!

Kayıt ol

Forumda bir hesap oluşturmak tamamen ücretsizdir.

Şimdi kayıt ol
Giriş yap

Eğer bir hesabınız var ise lütfen giriş yapın

Giriş yap

Tema düzenleyici

Tema özelletirmeleri

Grafik arka planlar

Granit arka planlar