Ru-MaNGOS

Вернуться   Ru-MaNGOS > Документация > Новичкам

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

Новичкам Информация для всех новичков, новичкам рекомендуется задавать свои вопросы здесь

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.01.2011, 23:53   #1
Ultra
Гость
 
Сообщений: n/a
По умолчанию Обработчик команды "castspell"

Всем доброго времени суток!
Решил внедрить консольную команду castspell, которая будет кастовать спелл(делаю это для упрошения отладки спеллов, чтобы не заходить на сам сервер, а делать это через консоль)
Код:
bool ChatHandler::HandleSpellDebugCommand(char *args)
+{
+	if (!*args)
+        return false;
+
+	Unit* target = ????;
+
+	uint32 spell = ExtractSpellIdFromLink(&args);
+	if (!spell)
+	    return false;
+
+	SpellEntry const* spellInfo = sSpellStore.LookupEntry(spell);
+         if (!spellInfo)
+	{
+		DEBUG_LOG("Spell %s is not exist in DBC", spell);
+                     return false;
+	}
+	
+
+	target->CastSpell(target, spell, false);
+         DEBUG_LOG("Casting spell %s ...", spell);
+	return true;
+}
не могу не как додуматься как получить ссылку на Unit
  Ответить с цитированием
Старый 07.01.2011, 00:04   #2
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Extract*Target
LordJZ вне форума   Ответить с цитированием
Старый 07.01.2011, 00:10   #3
Ultra
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от LordJZ Посмотреть сообщение
Extract*Target
если можно немного подробнее, не совсем понял о чем речь
  Ответить с цитированием
Старый 07.01.2011, 00:13   #4
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Функции такие. Они вам «как получить ссылку на Unit».

В соседних обработчиках чат команд есть куча примеров использования.
LordJZ вне форума   Ответить с цитированием
Старый 07.01.2011, 00:26   #5
Ultra
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от LordJZ Посмотреть сообщение
Функции такие. Они вам «как получить ссылку на Unit».

В соседних обработчиках чат команд есть куча примеров использования.
Наверно вы имеете введу функции подобные этой ExtractPlayerTarget(...)
но проблема в том что мне необходимо получить указатель на обьект класса Unit
что-то похожее на создание обьект в денамической памяти и передачу его указателя
Код:
Unit* target = new Unit;
без каких либо указаний этой цели в самой комманде.
так сказать мне нужно создать обьект класса и получить ссылку на него
  Ответить с цитированием
Старый 07.01.2011, 00:29   #6
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

А, тогда используйте getSelectedUnit.
LordJZ вне форума   Ответить с цитированием
Старый 07.01.2011, 00:31   #7
Ultra
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от LordJZ Посмотреть сообщение
А, тогда используйте getSelectedUnit.
Данная функция не подойдет тоже по той пречине, что не кто же не выделяет не какую цель..се действия происходят из консоли сервера...
необходимо найти способ создания в денамической памяти временного портотипа Unit
  Ответить с цитированием Полученное предупреждение
Старый 07.01.2011, 00:37   #8
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

А как вы собрались находить Unit без цели?..

Можете прочитать гуид и поискать через него, Unit::GetUnit может быть поможет (не помню, убрали или еще нет эту ужасную функцию).
LordJZ вне форума   Ответить с цитированием
Старый 07.01.2011, 00:41   #9
Ultra
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от LordJZ Посмотреть сообщение
А как вы собрались находить Unit без цели?..
я же говорю что необходимо создать временный обьект Unit который и будет целью и кастером
Код:
Unit *target = new Unit
не подходит проблемы при компиляции...необходимо найти альтернативу.
или вы считаете что каст спелла из консоли не возможен??
  Ответить с цитированием
Старый 07.01.2011, 00:47   #10
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Найти альтернативу чему? Если вы хотите создать объект — создавайте по всем правилам, поищите в коде мангоса как. Но, имхо, это полностью извращенный метод дебага спеллов.
LordJZ вне форума   Ответить с цитированием
Старый 07.01.2011, 00:55   #11
Ultra
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от LordJZ Посмотреть сообщение
Но, имхо, это полностью извращенный метод дебага спеллов.
  Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[10678] Revert "[10675] Ignore BOA items reputation requirements at use." newsbot CMaNGOS Commits 0 04.11.2010 12:30
[10558] Fix spell "Spinning" (64385) for item "Unusual Compass" (45984) newsbot CMaNGOS Commits 0 29.09.2010 23:20
[10257] Fixed typo in "alliance" in recent commit changes. newsbot CMaNGOS Commits 0 24.07.2010 14:30
[10179] Add "missing" spells in commented form for Aura::TriggerSpell() newsbot CMaNGOS Commits 0 11.07.2010 13:40
[9981] For non-player at "offline" delete hostile references. newsbot CMaNGOS Commits 0 27.05.2010 14:01


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


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