Untitled
unknown
plain_text
4 months ago
17 kB
8
Indexable
void CHARACTER_MANAGER::SendDataPlayer(LPCHARACTER ch)
{
if (ch && !ch->GetDesc())
return;
const int iServerTime = time(NULL);
const BYTE bSubIdx = EVENT_MANAGER_LOAD;
TPacketGCEventManager p;
p.header = HEADER_GC_EVENT_MANAGER;
std::vector<TEvent> m_vec{};
bool bClear = true;
bool bSended = false;
TEMP_BUFFER buf;
DWORD j = 0;
while (j < m_eventData.size())
{
m_vec.emplace_back(m_eventData[j]);
if (m_vec.size() == 25)
{
{
buf.reset();
BYTE bCount = m_vec.size();
p.size = sizeof(TPacketGCEventManager) + sizeof(BYTE) + sizeof(int) + sizeof(bool) + sizeof(BYTE) + (bCount * sizeof(TEvent));
buf.write(&p, sizeof(TPacketGCEventManager));
buf.write(&bSubIdx, sizeof(BYTE));
buf.write(&iServerTime, sizeof(int));
buf.write(&bClear, sizeof(bool));
buf.write(&bCount, sizeof(BYTE));
buf.write(m_vec.data(), bCount * sizeof(TEvent));
if (ch)
{
ch->GetDesc()->Packet(buf.read_peek(), buf.size());
}
else
{
const DESC_MANAGER::DESC_SET& c_ref_set = DESC_MANAGER::instance().GetClientSet();
for (const auto& desc : c_ref_set)
{
if (desc->GetCharacter())
desc->Packet(buf.read_peek(), buf.size());
}
}
if (bClear)
bClear = false;
bSended = true;
m_vec.clear();
}
}
++j;
}
if (m_vec.size() || !bSended)
{
buf.reset();
BYTE bCount = m_vec.size();
p.size = sizeof(TPacketGCEventManager) + sizeof(BYTE) + sizeof(int) + sizeof(bool) + sizeof(BYTE) + (bCount * sizeof(TEvent));
buf.write(&p, sizeof(TPacketGCEventManager));
buf.write(&bSubIdx, sizeof(BYTE));
buf.write(&iServerTime, sizeof(int));
buf.write(&bClear, sizeof(bool));
buf.write(&bCount, sizeof(BYTE));
buf.write(m_vec.data(), bCount * sizeof(TEvent));
if (ch)
{
ch->GetDesc()->Packet(buf.read_peek(), buf.size());
}
else
{
const DESC_MANAGER::DESC_SET& c_ref_set = DESC_MANAGER::instance().GetClientSet();
for (const auto& desc : c_ref_set)
{
if (desc->GetCharacter())
desc->Packet(buf.read_peek(), buf.size());
}
}
}
const auto event = CheckEventIsActive(BEGGINER_EVENT, ch->GetEmpire());
if (event != NULL && ch->GetQuestFlag("event_manager.is_new_player") == 0 && ch->GetLevel() == 0)
{
ch->AutoGiveItem(event->dwValue[0],event->dwValue[1]);
ch->ChatPacket(CHAT_TYPE_INFO,"[LS;9000067]");
ch->SetQuestFlag("event_manager.is_new_player",1);
}
if(ch->GetLevel() == 0)
ch->PointChange(POINT_LEVEL, 1);
}
}
}
}
}
}
}
}
}
}
}
}
}Editor is loading...
Leave a Comment