Fethi Polat 1
Fethi Polat
xranzei 1
xranzei
Bvural41 1
Bvural41
kralhakan2009 1
kralhakan2009
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Vahsi Uzman 1
Vahsi Uzman
Cannn6161 1
Cannn6161
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

HP ve SP çalma fixi

  • Konuyu başlatan Konuyu başlatan asas501
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 1
  • Görüntüleme Görüntüleme 2K

asas501

Level 5
TM Üye
Katılım
30 Mar 2009
Konular
143
Mesajlar
694
Online süresi
25m 9s
Reaksiyon Skoru
137
Altın Konu
0
TM Yaşı
17 Yıl 2 Ay 13 Gün
Başarım Puanı
149
MmoLira
128
DevLira
0
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!

pasha37 nin konusudur isteyen daha rahat ulaşsın diye açıyorum

Hp çalma;


Önceki çalışma mantığı >
Efsun varsa her hasarda 1/10 oranla aktif olur
iCurHP tanımlı olmadığı için sadece varolan orana "1" ekler, %5 HP Çalma efsunu varsa 6 hp çalar


Düzenlenmiş şekilde çalışma mantığı >

Efsun varsa her hasar efsun oranı % kaç ise o oranda aktif olur
iCurHP değeri CurrentHP yani o anki varolan hp miktarına tanımlandı dolayısıyla mantık şu şekil değiştirildi Minimum(hasar, Maksimum(0, MevcutHP))


Koşullar düzenlendi, hp kontrolü eklendi
FLY çok küçük olduğundan medium olarak düzenlendi( Medium HP FLY ve SMALL SP FLY oranı )


Sp çalma;


Önceki çalışma mantığı >
Efsun varsa her hasarda 1/10 oranla aktif olur
Hedef mob ise sp yerine hp çalar
iCurHP ve iCurSP tanımlı olmadığı için var olan orana 1 ekler.


Düzenlenmiş şekilde çalışma mantığı >
Efsun varsa her hasar efsun oranı % kaç ise o oranda aktif olur
Hedef mob ise bu efsunu pas geçer
iCurSP değeri CurrentSP olarak düzenlendi, dolayısıyla mantık şu şekil değiştirildi Minimum(hasar, Maksimum(0, MevcutSP))


Koşullar düzenlendi, sp kontrolü eklendi
FLY çok küçük olduğundan medium olarak düzenlendi




%5 oranla ortalama çalma miktarları 6-20 arası ikisi içinde maksimum oran %50 ayarlanmış. Maksimumda ortalama 60-200 arası çalma mevcut


*char_battle.cpp

Kod:
            if (pAttacker->GetPoint(POINT_STEAL_HP))
            {
                int pct = 1;


                if (number(1, 10) <= pct)
                {
                    int iHP = MIN(dam, MAX(0, iCurHP)) * pAttacker->GetPoint(POINT_STEAL_HP) / 100;


                    if (iHP > 0 && GetHP() >= iHP)
                    {
                        CreateFly(FLY_HP_SMALL, pAttacker);
                        pAttacker->PointChange(POINT_HP, iHP);
                        PointChange(POINT_HP, -iHP);
                    }
                }
            }


            // SP ½ºÆ¿
            if (pAttacker->GetPoint(POINT_STEAL_SP))
            {
                int pct = 1;


                if (number(1, 10) <= pct)
                {
                    int iCur;


                    if (IsPC())
                        iCur = iCurSP;
                    else
                        iCur = iCurHP;


                    int iSP = MIN(dam, MAX(0, iCur)) * pAttacker->GetPoint(POINT_STEAL_SP) / 100;


                    if (iSP > 0 && iCur >= iSP)
                    {
                        CreateFly(FLY_SP_SMALL, pAttacker);
                        pAttacker->PointChange(POINT_SP, iSP);


                        if (IsPC())
                            PointChange(POINT_SP, -iSP);
                    }
                }
            }
Değiştir:
Kod:
            int iStealHP_ptr = pAttacker->GetPoint(POINT_STEAL_HP);
            if (iStealHP_ptr)
            {
                if (number(1, 100) <= iStealHP_ptr)
                {
                    int iHP = MIN(dam, MAX(0, GetHP())) * pAttacker->GetPoint(POINT_STEAL_HP) / 100;


                    if ((pAttacker->GetHP() > 0) && (pAttacker->GetHP() + iHP < pAttacker->GetMaxHP()) && (GetHP() > 0) && (iHP > 0))
                    {
                        CreateFly(FLY_HP_MEDIUM, pAttacker);


                        pAttacker->PointChange(POINT_HP, iHP);
                        PointChange(POINT_HP, -iHP);
                    }
                }
            }


            // SP ½ºÆ¿
            int iStealSP_ptr = pAttacker->GetPoint(POINT_STEAL_SP);
            if (iStealSP_ptr)
            {
                if (IsPC() && pAttacker->IsPC()) {
                    if (number(1, 100) <= iStealSP_ptr)
                    {
                        int iSP = MIN(dam, MAX(0, GetSP())) * pAttacker->GetPoint(POINT_STEAL_SP) / 100;


                        if ((pAttacker->GetSP() > 0) && (pAttacker->GetSP() + iSP < pAttacker->GetMaxSP()) && (GetSP() > 0) && (iSP > 0))
                        {
                            CreateFly(FLY_SP_MEDIUM, pAttacker);
                            pAttacker->PointChange(POINT_SP, iSP);


                            PointChange(POINT_SP, -iSP);
                        }
                    }
                }
            }
 
güncel :)
 

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

Geri
Üst