diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index a640828f..fbb4fb6b 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -1779,6 +1779,15 @@ void Creature::CheckSpecObject(int new_poly_flags) { if (a8::TIMER_EXEC_EVENT == event) { if (!dead) { + float dmg = GetMaxHP() * mt::Param::s().magma_dec_hp_rate; + float dmg_out = 0.0f; + DecHP(dmg, VP_Magma, + TEXT("battle_server_killer_magma", "magma"), VW_Magma, + VP_Magma, + TEXT("battle_server_killer_magma", "magma"), + dmg_out, + 0, + 0); } } }, diff --git a/server/gameserver/mt/Param.cc b/server/gameserver/mt/Param.cc index edf1f207..b83a2b59 100644 --- a/server/gameserver/mt/Param.cc +++ b/server/gameserver/mt/Param.cc @@ -61,6 +61,8 @@ namespace mt s_.battle_gain_exp_rate_killer = GetFloatParam("battle_gain_exp_rate_killer", 0.5); s_.battle_gain_exp_rate_teammate = GetFloatParam("battle_gain_exp_rate_teammate", 0.3); + s_.magma_dec_hp_rate = GetFloatParam("magma_dec_hp_rate", 0.1); + #ifdef MYDEBUG1 s_.moba_room_time = 60; s_.moba_kill_times = GetIntParam("moba_kill_times", 1); diff --git a/server/gameserver/mt/Param.h b/server/gameserver/mt/Param.h index 8049290f..40cd5dff 100644 --- a/server/gameserver/mt/Param.h +++ b/server/gameserver/mt/Param.h @@ -147,6 +147,7 @@ namespace mt int battling_grass_hide_delay_time = 0; int frag_dinshen_time = 1200; + float magma_dec_hp_rate = 0.1; std::vector block_effect_range; std::vector crit_effect_range;