|
Новичкам Информация для всех новичков, новичкам рекомендуется задавать свои вопросы здесь |
|
Опции темы | Поиск в этой теме | Опции просмотра |
08.11.2010, 00:46 | #1 |
Администратор
|
SCRIPT_COMMAND_DESPAWN_SELF
Есть команда SCRIPT_COMMAND_DESPAWN_SELF, которая позволяет деспавнить нпц, но если нпц заспавнен мертвым, то ничего не происходит.
Проходим такую цепочку: Код:
pCreature->ForcedDespawn(step.script->despawn.despawnDelay); void Creature::ForcedDespawn(uint32 timeMSToDespawn) void Creature::RemoveCorpse() Код:
if ((getDeathState() != CORPSE && !m_isDeadByDefault) || (getDeathState() != ALIVE && m_isDeadByDefault)) Через определенное время деспавненный труп снова должен появиться в мире, поэтому проблем быть не должно. Если все-таки подобные действия в отношении заспавненных трупов должны происходить только для отдельных случаев, то можно добавить параметр в RemoveCorpse, с которым нпц будет принудительно деспавнен в любом состоянии. Есть ли в этом смысл, и какой из вариантов правильнее? 2. Данная команда также необходима для го, т.к. в случаях со спеллами с активацией можно кастовать на одном и том же го, т.к. состояние активации не сохраняется. Как лучше реализовать деспавн го? Решение проблемы с деспавном хотя бы данной командой помогут избавиться от проблем багоюзанья, т.е. множественного каста на одной цели. |
08.11.2010, 01:26 | #2 |
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
Если в первом случае !m_isDeadByDefault заменить на m_isDeadByDefault, что потеряем?
Хотя... Всё равно не понимаю, почему проверка не проходится... |
08.11.2010, 01:54 | #3 |
Администратор
|
Не проходим вторую проверку:
Код:
getDeathState() != ALIVE && m_isDeadByDefault |
08.11.2010, 08:14 | #4 | |
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
Цитата:
m_isDeadByDefault - по умолчанию мёртвый, я думал, это и осзначает, что он спавнится мёртвым - тоже проходит значит. В любом случае копать под m_isDeadByDefault надо... |
|
08.11.2010, 11:19 | #5 |
YTDB Dev
Регистрация: 06.03.2010
Сообщений: 259
Сказал(а) спасибо: 28
Поблагодарили 280 раз(а) в 136 сообщениях
|
Вопрос - заспавнен мертвым, вы имеете ввиду колонку DeathState ?)
|
08.11.2010, 18:12 | #6 |
Администратор
|
Да, `DeathState`=1.
|
08.11.2010, 19:05 | #7 |
YTDB Dev
Регистрация: 06.03.2010
Сообщений: 259
Сказал(а) спасибо: 28
Поблагодарили 280 раз(а) в 136 сообщениях
|
Колонка в базе осталась как память, не нужна она более, не нужна.) Разобрались уже, все через аддоны идет, видимо раньше в эту механику не сильно углублялись и ввели эту колонку, а теперь она как память...))))
Может и правда, убрать ее пора ?) Последний раз редактировалось NeatElves; 08.11.2010 в 19:18. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[9577] Implement SCRIPT_COMMAND_DESPAWN_SELF (self = creature in this context) | newsbot | CMaNGOS Commits | 0 | 12.03.2010 18:40 |