1
0
Fork 0

Implemented official level update fix

This commit is contained in:
Exynox 2024-03-11 18:08:24 +02:00
parent 3f1ce57fa1
commit 8579828ca6
3 changed files with 3 additions and 2 deletions

View File

@ -89,6 +89,7 @@ This is a very serious security risk and one of the reasons this project is stil
### Gameplay ### Gameplay
- Fixed invisibility bug on login/respawn/teleport etc. - Fixed invisibility bug on login/respawn/teleport etc.
- Fixed player level not updating [(thread)](https://metin2.dev/topic/30612-official-level-update-fix-reversed/)
### Exploits ### Exploits
- See the warning above :( - See the warning above :(

View File

@ -5851,7 +5851,7 @@ void CHARACTER::ResetPoint(int iLv)
{ {
BYTE bJob = GetJob(); BYTE bJob = GetJob();
PointChange(POINT_LEVEL, iLv - GetLevel()); PointChange(POINT_LEVEL, iLv - GetLevel(), false, true);
SetRealPoint(POINT_ST, JobInitialPoints[bJob].st); SetRealPoint(POINT_ST, JobInitialPoints[bJob].st);
SetPoint(POINT_ST, GetRealPoint(POINT_ST)); SetPoint(POINT_ST, GetRealPoint(POINT_ST));

View File

@ -862,7 +862,7 @@ namespace quest
ch->PointChange(POINT_SUB_SKILL, newLevel < 10 ? 0 : newLevel - std::max(ch->GetLevel(), 9)); ch->PointChange(POINT_SUB_SKILL, newLevel < 10 ? 0 : newLevel - std::max(ch->GetLevel(), 9));
ch->PointChange(POINT_STAT, ((std::clamp(newLevel, 1, 90) - ch->GetLevel()) * 3) + ch->GetPoint(POINT_LEVEL_STEP)); ch->PointChange(POINT_STAT, ((std::clamp(newLevel, 1, 90) - ch->GetLevel()) * 3) + ch->GetPoint(POINT_LEVEL_STEP));
//·¹º§ //·¹º§
ch->PointChange(POINT_LEVEL, newLevel - ch->GetLevel()); ch->PointChange(POINT_LEVEL, newLevel - ch->GetLevel(), false, true);
//HP, SP //HP, SP
ch->SetRandomHP((newLevel - 1) * Random::get(JobInitialPoints[ch->GetJob()].hp_per_lv_begin, JobInitialPoints[ch->GetJob()].hp_per_lv_end)); ch->SetRandomHP((newLevel - 1) * Random::get(JobInitialPoints[ch->GetJob()].hp_per_lv_begin, JobInitialPoints[ch->GetJob()].hp_per_lv_end));
ch->SetRandomSP((newLevel - 1) * Random::get(JobInitialPoints[ch->GetJob()].sp_per_lv_begin, JobInitialPoints[ch->GetJob()].sp_per_lv_end)); ch->SetRandomSP((newLevel - 1) * Random::get(JobInitialPoints[ch->GetJob()].sp_per_lv_begin, JobInitialPoints[ch->GetJob()].sp_per_lv_end));