Просмотр полной версии : Расовые тотемы
С версии 3.3.0 вроде у шаманов каждой расы свой внешний вид тотемов. На чистом ядре и базе это не реализовано. Это необходимо реализовать в базе или в самом ядре?
В ядре. Разные шкурки друидов тоже пока не реализованы.
А внешний вид и т.д. разве не к базе должен иметь отношение?
Не внешний вид, а модельки, выборочно глянул несколько по кешу 3.3.2 - что в базе, что в кеше 1в1.
А внешний вид и т.д. разве не к базе должен иметь отношение?
Внешний вид имеет отношение только к клиенту, а никак не к базе или серверу. А вот выбор модели моба или перса делается в ядре. Именно сервер сообщает клиенту, какую модель вывести для данного моба или перса.
Alexstrasza
18.02.2010, 00:03
вообще-то работает, у тауренов деревянные по виду, у дренеев каменные "баночки"
если нужно:
MaNGOS/0.16.0 (* * Revision 9356 - *) for Linux_x64 (little-endian)
Using script library: ScriptDev2 (for MaNGOS 986e5b76ae8758d8c895edce483c8cb84801c57d +) Revision 1573 (Unix)
Using World DB: YTDB_0.11.0_R534_MaNGOS_R9356_SD2_R1573_ACID_R303_ RuDB_R34.9
клиент 3.3.2 enGB
Про дренеев и тауренов всё давно ясно, а вот то, что теперь там же должны выдаваться отдельные модельки для троллей, орков и в перспективе дворфов - это да. Надо поковырять-поискать, где там оно происходит в ядре.
Про дренеев и тауренов всё давно ясно, а вот то, что теперь там же должны выдаваться отдельные модельки для троллей, орков и в перспективе дворфов - это да. Надо поковырять-поискать, где там оно происходит в ядре.
Поковыряйтесь и результаты нам сюда :)
Где ломать - найдено, а вот как - большой и долгий вопрос, учитывая глубину моих сишных познаний)))
./src/game/Totem.cpp
// select totem model in dependent from owner team
CreatureInfo const *cinfo = GetCreatureInfo();
if(owner->GetTypeId() == TYPEID_PLAYER && cinfo)
{
uint32 display_id = sObjectMgr.ChooseDisplayId(((Player*)owner)->GetTeam(), cinfo);
CreatureModelInfo const *minfo = sObjectMgr.GetCreatureModelRandomGender(display_id );
if (minfo)
display_id = minfo->modelid;
SetDisplayId(display_id);
}
И сама функция в ./src/game/ObjectMgr.cpp
uint32 ObjectMgr::ChooseDisplayId(uint32 team, const CreatureInfo *cinfo, const CreatureData *data /*= NULL*/)
{
// Load creature model (display id)
if (data && data->displayid)
return data->displayid;
// use defaults from the template
uint32 display_id;
// DisplayID_A is used if no team is given
if (team == HORDE)
{
if(cinfo->DisplayID_H[0])
display_id = cinfo->DisplayID_H[1] ? cinfo->DisplayID_H[urand(0,1)] : cinfo->DisplayID_H[0];
else
display_id = cinfo->DisplayID_H[1];
if(!display_id)
display_id = cinfo->DisplayID_A[0] ? cinfo->DisplayID_A[0] : cinfo->DisplayID_A[1];
}
else
{
if(cinfo->DisplayID_A[0])
display_id = cinfo->DisplayID_A[1] ? cinfo->DisplayID_A[urand(0,1)] : cinfo->DisplayID_A[0];
else
display_id = cinfo->DisplayID_A[1];
if(!display_id)
display_id = cinfo->DisplayID_H[0] ? cinfo->DisplayID_H[0] : cinfo->DisplayID_H[1];
}
return display_id;
}
Предположительно, нужно GetTeam() махнуть на GetRace(), и в функции уже переписать на расы. Вопрос в том, кто ещё юзает ChooseDisplayId(), так что раскопки продолжаются.
В крайнем случаем добавить
sObjectMgr.ChooseDisplayIdTotem функцию например
и в ней уже делать по расам
Например мобы используют выбор модели
Да, пожалуй новая функция будет правильней, что там ещё мэйнтейнеры придумают непонятно, а как времянку можно жестко прописать для рас дисплеиды. Теперь шукаем моделвьювер)
vBulletin® v3.8.4, Copyright ©2000-2024, Jelsoft Enterprises Ltd. Перевод: zCarot