PDA

Просмотр полной версии : [11648] Environmental damage timer


Den
17.03.2011, 19:29
Урон должен наносится с интервалом в две секунды.

diff --git a/src/game/Player.cpp b/src/game/Player.cpp
index d187d68..6c93aa9 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -1048,7 +1048,7 @@ void Player::HandleDrowning(uint32 time_diff)
// Timer limit - need deal damage
if (m_MirrorTimer[BREATH_TIMER] < 0)
{
- m_MirrorTimer[BREATH_TIMER]+= 1*IN_MILLISECONDS;
+ m_MirrorTimer[BREATH_TIMER] += 2 * IN_MILLISECONDS;
// Calculate and deal damage
// TODO: Check this formula
uint32 damage = GetMaxHealth() / 5 + urand(0, getLevel()-1);
@@ -1084,7 +1084,7 @@ void Player::HandleDrowning(uint32 time_diff)
// Timer limit - need deal damage or teleport ghost to graveyard
if (m_MirrorTimer[FATIGUE_TIMER] < 0)
{
- m_MirrorTimer[FATIGUE_TIMER]+= 1*IN_MILLISECONDS;
+ m_MirrorTimer[FATIGUE_TIMER] += 2 * IN_MILLISECONDS;
if (isAlive()) // Calculate and deal damage
{
uint32 damage = GetMaxHealth() / 5 + urand(0, getLevel()-1);
@@ -1117,7 +1117,7 @@ void Player::HandleDrowning(uint32 time_diff)
m_MirrorTimer[FIRE_TIMER]-=time_diff;
if (m_MirrorTimer[FIRE_TIMER] < 0)
{
- m_MirrorTimer[FIRE_TIMER]+= 1*IN_MILLISECONDS;
+ m_MirrorTimer[FIRE_TIMER] += 2 * IN_MILLISECONDS;
// Calculate and deal damage
// TODO: Check this formula
uint32 damage = urand(600, 700);

Vladimir
06.06.2011, 11:51
В http://www.wowwiki.com/Drowning написано: "or they will begin to take large chunks of health damage every second"
Конечно wowwiki не всегда точна - но хотелось бы какое-то обоснование.

Den
18.06.2011, 08:57
мангос: http://www.youtube.com/watch?v=n73-U9HAM8c
оф: http://www.youtube.com/watch?v=STJwP2SdSNo

Патч обновлен:
diff --git a/src/game/Player.cpp b/src/game/Player.cpp
index 71495a4..5eb9acf 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -1036,7 +1036,7 @@ void Player::HandleDrowning(uint32 time_diff)
// Timer limit - need deal damage
if (m_MirrorTimer[BREATH_TIMER] < 0)
{
- m_MirrorTimer[BREATH_TIMER]+= 1*IN_MILLISECONDS;
+ m_MirrorTimer[BREATH_TIMER] += 2 * IN_MILLISECONDS;
// Calculate and deal damage
// TODO: Check this formula
uint32 damage = GetMaxHealth() / 5 + urand(0, getLevel()-1);
@@ -1072,7 +1072,7 @@ void Player::HandleDrowning(uint32 time_diff)
// Timer limit - need deal damage or teleport ghost to graveyard
if (m_MirrorTimer[FATIGUE_TIMER] < 0)
{
- m_MirrorTimer[FATIGUE_TIMER]+= 1*IN_MILLISECONDS;
+ m_MirrorTimer[FATIGUE_TIMER] += 2 * IN_MILLISECONDS;
if (isAlive()) // Calculate and deal damage
{
uint32 damage = GetMaxHealth() / 5 + urand(0, getLevel()-1);
@@ -1105,7 +1105,7 @@ void Player::HandleDrowning(uint32 time_diff)
m_MirrorTimer[FIRE_TIMER]-=time_diff;
if (m_MirrorTimer[FIRE_TIMER] < 0)
{
- m_MirrorTimer[FIRE_TIMER]+= 1*IN_MILLISECONDS;
+ m_MirrorTimer[FIRE_TIMER] += 2 * IN_MILLISECONDS;
// Calculate and deal damage
// TODO: Check this formula
uint32 damage = urand(600, 700);

Vladimir
19.06.2011, 01:45
Ну это тоже вроде не прямое доказательсво учитывая разницу в версиях, но вроде нет соббщений что это менялось в 4.x.

В [11648]. Спасибо. Такое-же время было и в 2.x/1.x ?