Scarlet 1
Scarlet
noisiv 1
noisiv
Manwe Work 1
Manwe Work
farkmt2official 1
farkmt2official
Mt2Hizmet 1
Mt2Hizmet
Hikaye Ekle

HP ve SP çalma fixi

  • Konuyu başlatan Konuyu başlatan Koray'
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 7
  • Görüntüleme Görüntüleme 2K
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!

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ı )

ss2015-09-17at02.22.22.jpg


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

Arat:
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);
}
}
}
}
 
Moderatör tarafında düzenlendi:
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