Krutzo 1
Krutzo
shrpnl 1
shrpnl
Best Studio 1
Best Studio
D 1
delimuratt
Aliyldrim 1
Aliyldrim
Mt2Hizmet 1
Mt2Hizmet
noisiv 1
noisiv
Manwe Work 1
Manwe Work
melankolıa18 1
melankolıa18
Agora Metin2 1
Agora Metin2
Cannn6161 1
Cannn6161
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Metin damage limit SQL

nugano

Arione2..
Uzman
Katılım
12 Eki 2009
Konular
113
Mesajlar
1,139
Çözüm
15
Online süresi
3mo 4d
Reaksiyon Skoru
432
Altın Konu
0
TM Yaşı
16 Yıl 7 Ay 28 Gün
Başarım Puanı
226
MmoLira
5,711
DevLira
78
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

Max vurulacak damageyi sqlden ayarlar ve reload m ile günceller.
[CODE lang="cpp" title="INSTANCE_TYPE_STONE hatası alırsanız.:"]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);[/CODE]

tablo.jpg





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

Dosya:


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;
        }

Client Part

Dosya:

Kod:
uitarget.py

Arat:

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.​
 
Moderatör tarafında düzenlendi:

En Çok Reaksiyon Alan Mesajlar

Someone previously published a similar system, but it was for Boss. Would adding this line to the system make it work for Stone as well?
 
Teşekkürler
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst