mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-19 12:21:34 +00:00
Add model/race offset to FixZ calc (KLS)
This commit is contained in:
parent
e88cd61097
commit
6d8b96068d
@ -1,6 +1,24 @@
|
|||||||
EQEMu Changelog (Started on Sept 24, 2003 15:50)
|
EQEMu Changelog (Started on Sept 24, 2003 15:50)
|
||||||
-------------------------------------------------------
|
-------------------------------------------------------
|
||||||
|
|
||||||
|
== 9/17/2017 ==
|
||||||
|
Akkadius: Add model/race offset to FixZ calc (KLS)
|
||||||
|
Akkadius: Fix 95% of food/water consumption issues, if there are additional modifiers for race/class combos - those will need to be applied
|
||||||
|
|
||||||
|
Stages should be put in place if not already:
|
||||||
|
https://wiki.project1999.com/Food_and_drink#Stages_of_Hunger_and_Thirst
|
||||||
|
|
||||||
|
Values stored in the database are 0-6000, previously we capped it at 6000 but previous math would have normal values in the 60k+ range in order for food to be consumed at a reasonable rate. We are now using more native logic where 1 = 1 minute, following logic:
|
||||||
|
|
||||||
|
(Minutes)
|
||||||
|
0 - 5 - This is a snack.
|
||||||
|
6 - 20 - This is a meal.
|
||||||
|
21 - 30 - This is a hearty meal.
|
||||||
|
31 - 40 - This is a banquet size meal.
|
||||||
|
41 - 50 - This meal is a feast!
|
||||||
|
51 - 60 - This is an enduring meal!
|
||||||
|
61 - X - This is a miraculous meal!
|
||||||
|
|
||||||
== 7/14/2017 ==
|
== 7/14/2017 ==
|
||||||
Akkadius: HP Update tuning - HP Updates are now forced when a client is targeted
|
Akkadius: HP Update tuning - HP Updates are now forced when a client is targeted
|
||||||
Akkadius: Client position updates should be smoother (granted the client has a good connection)
|
Akkadius: Client position updates should be smoother (granted the client has a good connection)
|
||||||
|
|||||||
@ -950,6 +950,7 @@ public:
|
|||||||
float GetGroundZ(float new_x, float new_y, float z_offset=0.0);
|
float GetGroundZ(float new_x, float new_y, float z_offset=0.0);
|
||||||
void SendTo(float new_x, float new_y, float new_z);
|
void SendTo(float new_x, float new_y, float new_z);
|
||||||
void SendToFixZ(float new_x, float new_y, float new_z);
|
void SendToFixZ(float new_x, float new_y, float new_z);
|
||||||
|
float GetZOffset() const;
|
||||||
void FixZ();
|
void FixZ();
|
||||||
void NPCSpecialAttacks(const char* parse, int permtag, bool reset = true, bool remove = false);
|
void NPCSpecialAttacks(const char* parse, int permtag, bool reset = true, bool remove = false);
|
||||||
inline uint32 DontHealMeBefore() const { return pDontHealMeBefore; }
|
inline uint32 DontHealMeBefore() const { return pDontHealMeBefore; }
|
||||||
|
|||||||
@ -850,7 +850,7 @@ void Mob::FixZ() {
|
|||||||
{
|
{
|
||||||
/* Any more than 5 in the offset makes NPC's hop/snap to ceiling in small corridors */
|
/* Any more than 5 in the offset makes NPC's hop/snap to ceiling in small corridors */
|
||||||
float new_z = this->FindGroundZ(m_Position.x, m_Position.y, 5);
|
float new_z = this->FindGroundZ(m_Position.x, m_Position.y, 5);
|
||||||
new_z += (this->GetSize() / 1.55);
|
new_z += this->GetZOffset();
|
||||||
|
|
||||||
auto duration = timer.elapsed();
|
auto duration = timer.elapsed();
|
||||||
|
|
||||||
@ -884,6 +884,113 @@ void Mob::FixZ() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float Mob::GetZOffset() const {
|
||||||
|
float offset = 3.125f;
|
||||||
|
|
||||||
|
switch (race) {
|
||||||
|
case 436:
|
||||||
|
offset = 0.577f;
|
||||||
|
break;
|
||||||
|
case 430:
|
||||||
|
offset = 0.5f;
|
||||||
|
break;
|
||||||
|
case 432:
|
||||||
|
offset = 1.9f;
|
||||||
|
break;
|
||||||
|
case 435:
|
||||||
|
offset = 0.93f;
|
||||||
|
break;
|
||||||
|
case 450:
|
||||||
|
offset = 0.938f;
|
||||||
|
break;
|
||||||
|
case 479:
|
||||||
|
offset = 0.8f;
|
||||||
|
break;
|
||||||
|
case 451:
|
||||||
|
offset = 0.816f;
|
||||||
|
break;
|
||||||
|
case 437:
|
||||||
|
offset = 0.527f;
|
||||||
|
break;
|
||||||
|
case 439:
|
||||||
|
offset = 1.536f;
|
||||||
|
break;
|
||||||
|
case 415:
|
||||||
|
offset = 1.0f;
|
||||||
|
break;
|
||||||
|
case 438:
|
||||||
|
offset = 0.776f;
|
||||||
|
break;
|
||||||
|
case 452:
|
||||||
|
offset = 0.776f;
|
||||||
|
break;
|
||||||
|
case 441:
|
||||||
|
offset = 0.816f;
|
||||||
|
break;
|
||||||
|
case 440:
|
||||||
|
offset = 0.938f;
|
||||||
|
break;
|
||||||
|
case 468:
|
||||||
|
offset = 1.0f;
|
||||||
|
break;
|
||||||
|
case 459:
|
||||||
|
offset = 1.0f;
|
||||||
|
break;
|
||||||
|
case 462:
|
||||||
|
offset = 1.5f;
|
||||||
|
break;
|
||||||
|
case 530:
|
||||||
|
offset = 1.2f;
|
||||||
|
break;
|
||||||
|
case 549:
|
||||||
|
offset = 0.5f;
|
||||||
|
break;
|
||||||
|
case 548:
|
||||||
|
offset = 0.5f;
|
||||||
|
break;
|
||||||
|
case 547:
|
||||||
|
offset = 0.5f;
|
||||||
|
break;
|
||||||
|
case 604:
|
||||||
|
offset = 1.2f;
|
||||||
|
break;
|
||||||
|
case 653:
|
||||||
|
offset = 5.9f;
|
||||||
|
break;
|
||||||
|
case 658:
|
||||||
|
offset = 4.0f;
|
||||||
|
break;
|
||||||
|
case 323:
|
||||||
|
offset = 5.0f;
|
||||||
|
break;
|
||||||
|
case 663:
|
||||||
|
offset = 5.0f;
|
||||||
|
break;
|
||||||
|
case 664:
|
||||||
|
offset = 4.0f;
|
||||||
|
break;
|
||||||
|
case 703:
|
||||||
|
offset = 9.0f;
|
||||||
|
break;
|
||||||
|
case 688:
|
||||||
|
offset = 5.0f;
|
||||||
|
break;
|
||||||
|
case 669:
|
||||||
|
offset = 7.0f;
|
||||||
|
break;
|
||||||
|
case 687:
|
||||||
|
offset = 2.0f;
|
||||||
|
break;
|
||||||
|
case 686:
|
||||||
|
offset = 2.0f;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
offset = 3.125f;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0.2 * GetSize() * offset;
|
||||||
|
}
|
||||||
|
|
||||||
int ZoneDatabase::GetHighestGrid(uint32 zoneid) {
|
int ZoneDatabase::GetHighestGrid(uint32 zoneid) {
|
||||||
|
|
||||||
std::string query = StringFormat("SELECT COALESCE(MAX(id), 0) FROM grid WHERE zoneid = %i", zoneid);
|
std::string query = StringFormat("SELECT COALESCE(MAX(id), 0) FROM grid WHERE zoneid = %i", zoneid);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user