Add FastRegen* to zone table

This commit is contained in:
Michael Cook (mackal)
2018-09-07 23:54:40 -04:00
parent 7c298a249f
commit 2d84029b37
18 changed files with 54 additions and 45 deletions
+3 -3
View File
@@ -7021,9 +7021,9 @@ void Bot::CalcRestState() {
}
}
RestRegenHP = 6 * (GetMaxHP() / RuleI(Character, RestRegenHP));
RestRegenMana = 6 * (GetMaxMana() / RuleI(Character, RestRegenMana));
RestRegenEndurance = 6 * (GetMaxEndurance() / RuleI(Character, RestRegenEnd));
RestRegenHP = 6 * (GetMaxHP() / zone->newzone_data.FastRegenHP);
RestRegenMana = 6 * (GetMaxMana() / zone->newzone_data.FastRegenMana));
RestRegenEndurance = 6 * (GetMaxEndurance() / zone->newzone_data.FastRegenEndurance);
}
int32 Bot::LevelRegen() {
+3 -6
View File
@@ -290,9 +290,8 @@ int32 Client::CalcHPRegen(bool bCombat)
// another check for IsClient && !(base + item_regen) && Cur_HP <= 0 do --base; do later
if (!bCombat && CanFastRegen() && (IsSitting() || CanMedOnHorse())) {
auto fast_mod = RuleI(Character, RestRegenHP); // TODO: this is actually zone based
auto max_hp = GetMaxHP();
int fast_regen = 6 * (max_hp / fast_mod);
int fast_regen = 6 * (max_hp / zone->newzone_data.FastRegenHP);
if (base < fast_regen) // weird, but what the client is doing
base = fast_regen;
}
@@ -1296,9 +1295,8 @@ int32 Client::CalcManaRegen(bool bCombat)
regen = regen * 100.0f * AreaManaRegen * 0.01f + 0.5f;
if (!bCombat && CanFastRegen() && (IsSitting() || CanMedOnHorse())) {
auto fast_mod = RuleI(Character, RestRegenMana); // TODO: this is actually zone based
auto max_mana = GetMaxMana();
int fast_regen = 6 * (max_mana / fast_mod);
int fast_regen = 6 * (max_mana / zone->newzone_data.FastRegenMana);
if (regen < fast_regen) // weird, but what the client is doing
regen = fast_regen;
}
@@ -2264,9 +2262,8 @@ int32 Client::CalcEnduranceRegen(bool bCombat)
int regen = base;
if (!bCombat && CanFastRegen() && (IsSitting() || CanMedOnHorse())) {
auto fast_mod = RuleI(Character, RestRegenEnd); // TODO: this is actually zone based
auto max_end = GetMaxEndurance();
int fast_regen = 6 * (max_end / fast_mod);
int fast_regen = 6 * (max_end / zone->newzone_data.FastRegenEndurance);
if (aa_regen < fast_regen) // weird, but what the client is doing
aa_regen = fast_regen;
}
+3 -3
View File
@@ -1174,11 +1174,11 @@ void Merc::CalcRestState() {
}
}
RestRegenHP = 6 * (GetMaxHP() / RuleI(Character, RestRegenHP));
RestRegenHP = 6 * (GetMaxHP() / zone->newzone_data.FastRegenHP);
RestRegenMana = 6 * (GetMaxMana() / RuleI(Character, RestRegenMana));
RestRegenMana = 6 * (GetMaxMana() / zone->newzone_data.FastRegenMana);
RestRegenEndurance = 6 * (GetMaxEndurance() / RuleI(Character, RestRegenEnd));
RestRegenEndurance = 6 * (GetMaxEndurance() / zone->newzone_data.FastRegenEndurance);
}
bool Merc::HasSkill(EQEmu::skills::SkillType skill_id) const {
+8 -1
View File
@@ -143,7 +143,10 @@ bool ZoneDatabase::GetZoneCFG(uint32 zoneid, uint16 instance_id, NewZone_Struct
"snow_duration2, " // 53
"snow_duration3, " // 54
"snow_duration4, " // 55
"gravity " // 56
"gravity, " // 56
"FastRegenHP, " // 57
"FastRegenMana, " // 58
"FastRegenEndurance, " // 59
"FROM zone WHERE zoneidnumber = %i AND version = %i",
zoneid, instance_id);
auto results = QueryDatabase(query);
@@ -188,6 +191,10 @@ bool ZoneDatabase::GetZoneCFG(uint32 zoneid, uint16 instance_id, NewZone_Struct
Log(Logs::General, Logs::Debug, "Zone Gravity is %f", zone_data->gravity);
allow_mercs = true;
zone_data->FastRegenHP = atoi(row[57]);
zone_data->FastRegenMana = atoi(row[58]);
zone_data->FastRegenEndurance = atoi(row[59]);
int bindable = 0;
bindable = atoi(row[31]);