Ru-MaNGOS

Вернуться   Ru-MaNGOS > English subforum > Development

Важная информация

Development Development

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.09.2012, 10:03   #1
Amaru
MaNGOS Dev
 
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
Amaru На верном пути
По умолчанию Event stacking

1. Target mob
2. .cast self 64718
3. wait until there are over 9k events
4. .unaura all
5. events do not clean up


Последний раз редактировалось Amaru; 18.09.2012 в 10:05.
Amaru вне форума   Ответить с цитированием
Старый 18.09.2012, 14:15   #2
kid10
Гость
 
Сообщений: n/a
По умолчанию

(I don't know if the following has something to do with this)
but spell 64723 is also casted many many times at the argent tournament.
  Ответить с цитированием
Старый 18.09.2012, 14:19   #3
Amaru
MaNGOS Dev
 
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
Amaru На верном пути
По умолчанию

64723 is triggered by 64718

the source of problem seems to be channeling spells vs. event system

1day uptime = over 9k events (literally) = insane world update diff (lags)
Amaru вне форума   Ответить с цитированием
Старый 03.10.2012, 04:49   #4
schmoozerd
MaNGOS Dev
 
Регистрация: 17.11.2011
Сообщений: 99
Сказал(а) спасибо: 35
Поблагодарили 80 раз(а) в 26 сообщениях
schmoozerd Скоро придёт к известности
По умолчанию

thank you for the report. Sorry for the long delay in giving an answer, but this is a part of code i have never looked at. So i cannot say much, and need serious time to look into this
schmoozerd вне форума   Ответить с цитированием
Старый 23.11.2012, 04:22   #5
schmoozerd
MaNGOS Dev
 
Регистрация: 17.11.2011
Сообщений: 99
Сказал(а) спасибо: 35
Поблагодарили 80 раз(а) в 26 сообщениях
schmoozerd Скоро придёт к известности
По умолчанию

some observations:
the events are stacked for the triggered spell (64723)

The event-handling is this way: it is expected that the events are removed when the spells are finished casting.
as the triggered spells are channeled, and have infinity duration, they never finish casting. (so far so reasonable)

the problem is that the triggered channeled spells are cast triggered, and hence they are not "really" cast like channeled spells, and more important cannot be interrupted.

hence - even as there is only ever 1 triggered aura the triggered channeled spells stack up

possible that we should set triggered channeled spells to be set to be "finished" when they are cast, and then their events would get removed properly.

Edit
This will remove the triggered channeled spells instantly, however the channeled aura will not be removed, so it _might_ be possible that there are no serious side-effects!

Код:
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp
index 7bfa06c..75e15d9 100644
--- a/src/game/Spell.cpp
+++ b/src/game/Spell.cpp
@@ -3594,7 +3594,8 @@ void Spell::handle_immediate()
     // start channeling if applicable (after _handle_immediate_phase for get pe
     if (IsChanneledSpell(m_spellInfo) && m_duration)
     {
-        m_spellState = SPELL_STATE_CASTING;
+        if (!m_IsTriggeredSpell)
+            m_spellState = SPELL_STATE_CASTING;
         SendChannelStart(m_duration);
     }

Последний раз редактировалось schmoozerd; 23.11.2012 в 04:34.
schmoozerd вне форума   Ответить с цитированием
Ответ

« Bobbing apple | Следующей темы нет »

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[11450] Aloow stacking some warlock DoTs newsbot CMaNGOS Commits 0 09.05.2011 02:02
[10973] Implement game event mail sends at event start/stop. newsbot CMaNGOS Commits 2 06.01.2011 13:32
[10182] Allow stacking some tracking bufs, and prevent stacking some other. newsbot CMaNGOS Commits 0 12.07.2010 18:11


Текущее время: 16:53. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot