From d8bbd85abb2f976adc8f9eaa5809a33e0883bfe1 Mon Sep 17 00:00:00 2001 From: Akkadius Date: Fri, 21 Jul 2017 00:46:12 -0500 Subject: [PATCH 1/4] Fix issue with clients logging in locally on the same subnet --- world/client.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/world/client.cpp b/world/client.cpp index 4fd157088..aaf7d4c9c 100644 --- a/world/client.cpp +++ b/world/client.cpp @@ -1281,6 +1281,10 @@ void Client::Clearance(int8 response) } else { zs_addr = zs->GetIP().c_str(); + if (!zs_addr[0]) { + zs_addr = WorldConfig::get()->LocalAddress.c_str(); + } + if(strcmp(zs_addr, "127.0.0.1") == 0) { Log(Logs::Detail, Logs::World_Server, "Local zone address was %s, setting local address to: %s", zs_addr, WorldConfig::get()->LocalAddress.c_str()); From aa8a2ea41bde4d49d483efbf16b2ba33eefee878 Mon Sep 17 00:00:00 2001 From: Paul Coene Date: Fri, 21 Jul 2017 14:56:51 -0400 Subject: [PATCH 2/4] Repair fear pathing to ignore Z aspects and allow FixZ and pathing to handle it. Added the true flag for ResistCheck.Charisma so the proper Charisma bonuses are applied. --- zone/fearpath.cpp | 30 +++++++----------------------- zone/spell_effects.cpp | 2 +- 2 files changed, 8 insertions(+), 24 deletions(-) diff --git a/zone/fearpath.cpp b/zone/fearpath.cpp index ea5bb16d9..e0217bd5e 100644 --- a/zone/fearpath.cpp +++ b/zone/fearpath.cpp @@ -152,28 +152,12 @@ void Mob::CalculateNewFearpoint() Log(Logs::Detail, Logs::None, "No path found to selected node. Falling through to old fear point selection."); } - int loop = 0; - float ranx, rany, ranz; - currently_fleeing = false; - while (loop < 100) //Max 100 tries - { - int ran = 250 - (loop*2); - loop++; - ranx = GetX()+zone->random.Int(0, ran-1)-zone->random.Int(0, ran-1); - rany = GetY()+zone->random.Int(0, ran-1)-zone->random.Int(0, ran-1); - ranz = FindGroundZ(ranx,rany); - if (ranz == -999999) - continue; - float fdist = ranz - GetZ(); - if (fdist >= -12 && fdist <= 12 && CheckCoordLosNoZLeaps(GetX(),GetY(),GetZ(),ranx,rany,ranz)) - { - currently_fleeing = true; - break; - } - } - if (currently_fleeing) - m_FearWalkTarget = glm::vec3(ranx, rany, ranz); - else //Break fear - BuffFadeByEffect(SE_Fear); + int ran = 250; + float ranx = GetX()+zone->random.Int(0, ran-1)-zone->random.Int(0, ran-1); + float rany = GetY()+zone->random.Int(0, ran-1)-zone->random.Int(0, ran-1); + + m_FearWalkTarget = glm::vec3(ranx, rany, GetZ()); + + currently_fleeing = true; } diff --git a/zone/spell_effects.cpp b/zone/spell_effects.cpp index 42b50edf3..2f0d65907 100644 --- a/zone/spell_effects.cpp +++ b/zone/spell_effects.cpp @@ -3640,7 +3640,7 @@ void Mob::DoBuffTic(const Buffs_Struct &buff, int slot, Mob *caster) case SE_Fear: { if (zone->random.Roll(RuleI(Spells, FearBreakCheckChance))) { - float resist_check = ResistSpell(spells[buff.spellid].resisttype, buff.spellid, caster); + float resist_check = ResistSpell(spells[buff.spellid].resisttype, buff.spellid, caster,0,0,true); if (resist_check == 100) break; From a36b37b1ea1724d43aa777e8f13e6cca9d353c5c Mon Sep 17 00:00:00 2001 From: Akkadius Date: Fri, 21 Jul 2017 16:53:27 -0500 Subject: [PATCH 3/4] Adjust syntax --- zone/fearpath.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/zone/fearpath.cpp b/zone/fearpath.cpp index e0217bd5e..6632cc6fa 100644 --- a/zone/fearpath.cpp +++ b/zone/fearpath.cpp @@ -153,11 +153,11 @@ void Mob::CalculateNewFearpoint() } int ran = 250; - float ranx = GetX()+zone->random.Int(0, ran-1)-zone->random.Int(0, ran-1); - float rany = GetY()+zone->random.Int(0, ran-1)-zone->random.Int(0, ran-1); - - m_FearWalkTarget = glm::vec3(ranx, rany, GetZ()); - - currently_fleeing = true; + float ranx = GetX() + zone->random.Int(0, ran - 1) - zone->random.Int(0, ran - 1); + float rany = GetY() + zone->random.Int(0, ran - 1)-zone->random.Int(0, ran - 1); + + m_FearWalkTarget = glm::vec3(ranx, rany, GetZ()); + + currently_fleeing = true; } From e84799e15b9948873ffcab26f335ed9c353e8187 Mon Sep 17 00:00:00 2001 From: Paul Coene Date: Sat, 22 Jul 2017 12:45:21 -0400 Subject: [PATCH 4/4] Went back to older fearpath, only kept change where pathing issues can't cause the fear spell to be dropped. --- zone/fearpath.cpp | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/zone/fearpath.cpp b/zone/fearpath.cpp index e0217bd5e..4d39717b5 100644 --- a/zone/fearpath.cpp +++ b/zone/fearpath.cpp @@ -152,12 +152,26 @@ void Mob::CalculateNewFearpoint() Log(Logs::Detail, Logs::None, "No path found to selected node. Falling through to old fear point selection."); } - int ran = 250; - float ranx = GetX()+zone->random.Int(0, ran-1)-zone->random.Int(0, ran-1); - float rany = GetY()+zone->random.Int(0, ran-1)-zone->random.Int(0, ran-1); - - m_FearWalkTarget = glm::vec3(ranx, rany, GetZ()); - - currently_fleeing = true; + int loop = 0; + float ranx, rany, ranz; + currently_fleeing = false; + while (loop < 100) //Max 100 tries + { + int ran = 250 - (loop*2); + loop++; + ranx = GetX()+zone->random.Int(0, ran-1)-zone->random.Int(0, ran-1); + rany = GetY()+zone->random.Int(0, ran-1)-zone->random.Int(0, ran-1); + ranz = FindGroundZ(ranx,rany); + if (ranz == -999999) + continue; + float fdist = ranz - GetZ(); + if (fdist >= -12 && fdist <= 12 && CheckCoordLosNoZLeaps(GetX(),GetY(),GetZ(),ranx,rany,ranz)) + { + currently_fleeing = true; + break; + } + } + if (currently_fleeing) + m_FearWalkTarget = glm::vec3(ranx, rany, ranz); }