2 Commits
0.2.0 ... 0.2.2

Author SHA1 Message Date
0101618d89 Fixed sectree not found while loading guild buildings 2024-03-25 07:01:22 +02:00
8579828ca6 Implemented official level update fix 2024-03-11 18:08:24 +02:00
4 changed files with 8 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
- 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
- See the warning above :(

View File

@ -815,6 +815,11 @@ CLand * CManager::FindLandByGuild(DWORD GID)
bool CManager::LoadObject(TObject * pTable, bool isBoot) // from DB
{
// Skip loading if the target map is not available on this core
// Source: https://metin2.dev/topic/23614-solving-a-very-old-problem-what-most-people-ignore/#comment-163073
if (!map_allow_find(pTable->lMapIndex))
return false;
CLand * pkLand = FindLand(pTable->dwLandID);
if (!pkLand)

View File

@ -5851,7 +5851,7 @@ void CHARACTER::ResetPoint(int iLv)
{
BYTE bJob = GetJob();
PointChange(POINT_LEVEL, iLv - GetLevel());
PointChange(POINT_LEVEL, iLv - GetLevel(), false, true);
SetRealPoint(POINT_ST, JobInitialPoints[bJob].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_STAT, ((std::clamp(newLevel, 1, 90) - ch->GetLevel()) * 3) + ch->GetPoint(POINT_LEVEL_STEP));
//<2F><><EFBFBD><EFBFBD>
ch->PointChange(POINT_LEVEL, newLevel - ch->GetLevel());
ch->PointChange(POINT_LEVEL, newLevel - ch->GetLevel(), false, true);
//HP, SP
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));