- Mesaj
- 280
- Çözümler
- 21
- Beğeni
- 209
- Puan
- 414
- Ticaret Puanı
- 0
Yapmış olduğum aşama sisteminde bonuslara karaktere affect ile veriyordum ama çık-gir yapınca aşama birikiyordu bir türlü düzeltemedim bende pointchange ile
vermeyi denedim sistemde yükselt dediğimde bonusları veriyor sorun yok ama çık-gir yapınca sıfırlanıyor nasıl bir yol izlemem lazım bu durumda yardımcı olabilir misiniz?
vermeyi denedim sistemde yükselt dediğimde bonusları veriyor sorun yok ama çık-gir yapınca sıfırlanıyor nasıl bir yol izlemem lazım bu durumda yardımcı olabilir misiniz?
Kod:
void CStageSystem::ApplyStageAffects(LPCHARACTER ch)
{
if (!ch)
return;
int lvl = ch->GetStageLevel();
int oldATT = ch->stageATTBonus;
int oldHP = ch->stageHPBonus;
int oldEXP = ch->stageEXPBonus;
ch->stageATTBonus = lvl;
ch->PointChange(POINT_ATTBONUS_MONSTER, ch->stageATTBonus - oldATT);
if (lvl >= 5)
ch->stageHPBonus = 1000;
else
ch->stageHPBonus = 0;
ch->PointChange(POINT_MAX_HP, ch->stageHPBonus - oldHP);
if (lvl == 10)
ch->stageEXPBonus = 10;
else
ch->stageEXPBonus = 0;
ch->PointChange(POINT_EXP_DOUBLE_BONUS, ch->stageEXPBonus - oldEXP);
ch->ChatPacket(CHAT_TYPE_INFO, "[Stage Bonus] ATT+%d | HP+%d | EXP+%d",
ch->stageATTBonus, ch->stageHPBonus, ch->stageEXPBonus);
}