NeatElves
21.11.2021, 18:41
Если кому скучно и есть желание помочь - нужно проверить совпадение скриптовок по ядру. Для чего, - больно много в последнее время скриптов завязано на хардкорный код в ядре, олд разрабы брали нас во внимание, нынешним - трава от колен до пояса. За всем не успеешь уследить.
Пример:
std::vector<GossipNPCEvents> activeEvents;
if (sGameEventMgr.IsActiveHoliday(HOLIDAY_FEAST_OF_WI NTER_VEIL))
activeEvents.push_back(GOSSIP_EVENT_WINTER_VEIL);
if (sGameEventMgr.IsActiveHoliday(HOLIDAY_LUNAR_FESTI VAL))
activeEvents.push_back(GOSSIP_EVENT_LUNAR_FESTIVAL );
if (sGameEventMgr.IsActiveHoliday(HOLIDAY_HALLOWS_END ))
activeEvents.push_back(GOSSIP_EVENT_HALLOWS_END);
if (sGameEventMgr.IsActiveHoliday(HOLIDAY_BREWFEST))
activeEvents.push_back(GOSSIP_EVENT_BREWFEST);
if (sGameEventMgr.IsActiveHoliday(HOLIDAY_PIRATES_DAY ))
activeEvents.push_back(GOSSIP_EVENT_PIRATES_DAY);
if (sGameEventMgr.IsActiveHoliday(HOLIDAY_FIRE_FESTIV AL))
activeEvents.push_back(GOSSIP_EVENT_MIDSUMMER);
if (sGameEventMgr.IsActiveEvent(GAME_EVENT_BEFORE_THE _STORM))
activeEvents.push_back(GOSSIP_EVENT_DARK_PORTAL);
if (sGameEventMgr.IsActiveEvent(GAME_EVENT_SPIRIT_OF_ COMPETITION))
activeEvents.push_back(GOSSIP_EVENT_SPIRIT_OF_COMP ETITION);
if (activeEvents.size() > 0)
m_chosenEvent = activeEvents[urand(0, activeEvents.size() - 1)];
Как видно - если переменная холидей - то все играет, если эвент по номеру - туши свечи.
з.ы. Либо намекните, пусть думают над выносом таких хардов в отдельную таблицу или конфиг-файл (как пример) : переменная базы --> имя в ядре
Пример:
std::vector<GossipNPCEvents> activeEvents;
if (sGameEventMgr.IsActiveHoliday(HOLIDAY_FEAST_OF_WI NTER_VEIL))
activeEvents.push_back(GOSSIP_EVENT_WINTER_VEIL);
if (sGameEventMgr.IsActiveHoliday(HOLIDAY_LUNAR_FESTI VAL))
activeEvents.push_back(GOSSIP_EVENT_LUNAR_FESTIVAL );
if (sGameEventMgr.IsActiveHoliday(HOLIDAY_HALLOWS_END ))
activeEvents.push_back(GOSSIP_EVENT_HALLOWS_END);
if (sGameEventMgr.IsActiveHoliday(HOLIDAY_BREWFEST))
activeEvents.push_back(GOSSIP_EVENT_BREWFEST);
if (sGameEventMgr.IsActiveHoliday(HOLIDAY_PIRATES_DAY ))
activeEvents.push_back(GOSSIP_EVENT_PIRATES_DAY);
if (sGameEventMgr.IsActiveHoliday(HOLIDAY_FIRE_FESTIV AL))
activeEvents.push_back(GOSSIP_EVENT_MIDSUMMER);
if (sGameEventMgr.IsActiveEvent(GAME_EVENT_BEFORE_THE _STORM))
activeEvents.push_back(GOSSIP_EVENT_DARK_PORTAL);
if (sGameEventMgr.IsActiveEvent(GAME_EVENT_SPIRIT_OF_ COMPETITION))
activeEvents.push_back(GOSSIP_EVENT_SPIRIT_OF_COMP ETITION);
if (activeEvents.size() > 0)
m_chosenEvent = activeEvents[urand(0, activeEvents.size() - 1)];
Как видно - если переменная холидей - то все играет, если эвент по номеру - туши свечи.
з.ы. Либо намекните, пусть думают над выносом таких хардов в отдельную таблицу или конфиг-файл (как пример) : переменная базы --> имя в ядре