Fethi Polat 1
Fethi Polat
TuZaKK 1
TuZaKK
xranzei 1
xranzei
Agresifizm 1
Agresifizm
Bvural41 1
Bvural41
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Can Öcalan 1
Can Öcalan
Hikaye Ekle

HP/SP Absorbe fix

  • Konuyu başlatan Konuyu başlatan Koray'
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 22
  • Görüntüleme Görüntüleme 6K
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Ayyıldız2 | 2008 TR Yapısı • 1-99 Orta Emek Destan • Oto Avsız • 10 Temmuz 21:00 HEMEN TIKLA!

Önceki çalışma mantığı >
Efsun varsa her hasarda %80 oranla aktif olur


Düzenlenmiş şekilde çalışma mantığı >
Efsun varsa her hasar efsun oranı % kaç ise o oranda aktif olur


%12 oran ile tek seferde 100-300 hp/sp emer
Koşullar düzenlendi, -(eksi) hp yada sp ile ölündüğünde kendi kendilerinden absorbe etme hatası vardı giderildi
FLY küçük olduğundan big olarak düzenlendi

xxxx.jpg




*char_battle.cpp

Arat:
Kod:
if (pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) && number(0, 4) > 0) // 80% È®·ü
{
int i = MIN(dam, iCurHP) * pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) / 100;


if (i)
{
CreateFly(FLY_HP_SMALL, pAttacker);
pAttacker->PointChange(POINT_HP, i);
}
}


// Ä¥ ¶§¸¶´Ù SPȸº¹
if (pAttacker->GetPoint(POINT_HIT_SP_RECOVERY) && number(0, 4) > 0) // 80% È®·ü
{
int i = MIN(dam, iCurHP) * pAttacker->GetPoint(POINT_HIT_SP_RECOVERY) / 100;


if (i)
{
CreateFly(FLY_SP_SMALL, pAttacker);
pAttacker->PointChange(POINT_SP, i);
}
}


Değiştir:
Kod:
int iAbsoHP_ptr = pAttacker->GetPoint(POINT_HIT_HP_RECOVERY);
if (iAbsoHP_ptr)
{
if (number(1, 100) <= iAbsoHP_ptr) {
int iHPAbso = MIN(dam, GetHP()) * pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) / 100;


if ((pAttacker->GetHP() > 0) && (pAttacker->GetHP() + iHPAbso < pAttacker->GetMaxHP()) && (GetHP() > 0) && (iHPAbso > 0))
{
CreateFly(FLY_HP_BIG, pAttacker);
pAttacker->PointChange(POINT_HP, iHPAbso);
}
}
}


// Ä¥ ¶§¸¶´Ù SPȸº¹
int iAbsoSP_ptr = pAttacker->GetPoint(POINT_HIT_SP_RECOVERY);
if (iAbsoSP_ptr)
{
if (number(1, 100) <= iAbsoSP_ptr) {
int iSPAbso = MIN(dam, GetSP()) * pAttacker->GetPoint(POINT_HIT_SP_RECOVERY) / 100;


if ((pAttacker->GetSP() > 0) && (pAttacker->GetSP() + iSPAbso < pAttacker->GetMaxSP()) && (GetSP() > 0) && (iSPAbso > 0))
{
CreateFly(FLY_SP_BIG, pAttacker);
pAttacker->PointChange(POINT_SP, iSPAbso);
}
}
}


*Not:
Kod:
[COLOR=#333333][FONT=Verdana]POINT_ERROR:[/FONT][/COLOR]
şeklinde syserr alırsanız aşağıdaki işlemi yapın;

*char.cpp açın
Bul:
Kod:
[COLOR=#333333][FONT=Verdana]sys_err("POINT_ERROR: %s type %d val %d (max: %d)", GetName(), val, max_val);[/FONT][/COLOR]

Değiştir:
Kod:
[COLOR=#333333][FONT=Verdana]sys_err("POINT_ERROR: %s type %d val %d (max: %d)", GetName(), type, val, max_val);[/FONT][/COLOR]
 
Moderatör tarafında düzenlendi:
Önceki çalışma mantığı >
Efsun varsa her hasarda %80 oranla aktif olur


Düzenlenmiş şekilde çalışma mantığı >
Efsun varsa her hasar efsun oranı % kaç ise o oranda aktif olur


Emme oranı artırıldı, %12 oran ile tek seferde 500-600 hp/sp emer
Koşullar düzenlendi, -(eksi) hp yada sp ile ölündüğünde kendi kendilerinden absorbe etme hatası vardı giderildi
FLY küçük olduğundan big olarak düzenlendi( )



*char_battle.cpp

Arat:
Kod:
            if (pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) && number(0, 4) > 0) // 80% È®·ü
            {
                int i = MIN(dam, iCurHP) * pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) / 100;


                if (i)
                {
                    CreateFly(FLY_HP_SMALL, pAttacker);
                    pAttacker->PointChange(POINT_HP, i);
                }
            }


            // Ä¥ ¶§¸¶´Ù SPȸº¹
            if (pAttacker->GetPoint(POINT_HIT_SP_RECOVERY) && number(0, 4) > 0) // 80% È®·ü
            {
                int i = MIN(dam, iCurHP) * pAttacker->GetPoint(POINT_HIT_SP_RECOVERY) / 100;


                if (i)
                {
                    CreateFly(FLY_SP_SMALL, pAttacker);
                    pAttacker->PointChange(POINT_SP, i);
                }
            }


Değiştir:
Kod:
            int iAbsoHP_ptr = pAttacker->GetPoint(POINT_HIT_HP_RECOVERY);
            if (iAbsoHP_ptr)
            {
                if (number(1, 100) <= iAbsoHP_ptr) {
                    int iHPAbso = MIN(dam, GetHP()) * pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) / 50;


                    if ((pAttacker->GetHP() > 0) && (pAttacker->GetHP() + iHPAbso < pAttacker->GetMaxHP()) && (GetHP() > 0) && (iHPAbso > 0))
                    {
                        CreateFly(FLY_HP_BIG, pAttacker);
                        pAttacker->PointChange(POINT_HP, iHPAbso);
                    }
                }
            }


            // Ä¥ ¶§¸¶´Ù SPȸº¹
            int iAbsoSP_ptr = pAttacker->GetPoint(POINT_HIT_SP_RECOVERY);
            if (iAbsoSP_ptr)
            {
                if (number(1, 100) <= iAbsoSP_ptr) {
                    int iSPAbso = MIN(dam, GetSP()) * pAttacker->GetPoint(POINT_HIT_SP_RECOVERY) / 50;


                    if ((pAttacker->GetSP() > 0) && (pAttacker->GetSP() + iSPAbso < pAttacker->GetMaxSP()) && (GetSP() > 0) && (iSPAbso > 0))
                    {
                        CreateFly(FLY_SP_BIG, pAttacker);
                        pAttacker->PointChange(POINT_SP, iSPAbso);
                    }
                }
            }


aga bunları ekliyorum buiild etmiyor kodları ayarlı şekilde bi siteye upload edebilirmisin
 
Son düzenleme:
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

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

Geri
Üst