virusav
27.05.2010, 15:16
Есть запуск такси, у которого есть несколько эвентов, в которых нпц должен произносить фразы, но текущая реализация команды SCRIPT_COMMAND_TALK позволяет искать ближайшего нпц по коду и в определенном радиусе.
В случае с такси игрок оказывается далеко, поэтому часть фраз говорит игрок, т.к. нпц не находится.
В связи с этим написал патч, чтобы можно было искать по гуиду для таких случаев.
В Map.cpp есть:
Creature* Map::GetCreature(ObjectGuid guid)
{
return m_objectsStore.find<Creature>(guid.GetRawValue(), (Creature*)NULL);
}
В том же файле:
Creature* pBuddy = NULL; // строка уже есть
pBuddy = GetCreature(step.script->datalong4); // добавляю, где step.script->datalong4 = гуид нпц
В итоге ничего не находится.
Отладчик выдает такой же результат.
НПЦ должен находиться данной функцией независимо от расстояния до него от игрока?
В случае с такси игрок оказывается далеко, поэтому часть фраз говорит игрок, т.к. нпц не находится.
В связи с этим написал патч, чтобы можно было искать по гуиду для таких случаев.
В Map.cpp есть:
Creature* Map::GetCreature(ObjectGuid guid)
{
return m_objectsStore.find<Creature>(guid.GetRawValue(), (Creature*)NULL);
}
В том же файле:
Creature* pBuddy = NULL; // строка уже есть
pBuddy = GetCreature(step.script->datalong4); // добавляю, где step.script->datalong4 = гуид нпц
В итоге ничего не находится.
Отладчик выдает такой же результат.
НПЦ должен находиться данной функцией независимо от расстояния до него от игрока?