mirror of
https://github.com/EQEmu/Server.git
synced 2026-02-01 10:23:53 +00:00
LDON tweaks, working branch, average_level pass
This commit is contained in:
parent
10ffcf155d
commit
aff1223181
@ -121,6 +121,7 @@ namespace Logs {
|
||||
Expeditions,
|
||||
DynamicZones,
|
||||
Group,
|
||||
Adventure,
|
||||
MaxCategoryID /* Don't Remove this */
|
||||
};
|
||||
|
||||
@ -201,6 +202,7 @@ namespace Logs {
|
||||
"Expeditions",
|
||||
"DynamicZones",
|
||||
"Group",
|
||||
"Adventure",
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@ -636,6 +636,16 @@
|
||||
OutF(LogSys, Logs::Detail, Logs::DynamicZones, __FILE__, __func__, __LINE__, message, ##__VA_ARGS__);\
|
||||
} while (0)
|
||||
|
||||
#define LogAdventure(message, ...) do {\
|
||||
if (LogSys.log_settings[Logs::Adventure].is_category_enabled == 1)\
|
||||
OutF(LogSys, Logs::General, Logs::Adventure, __FILE__, __func__, __LINE__, message, ##__VA_ARGS__);\
|
||||
} while (0)
|
||||
|
||||
#define LogAdventureDetail(message, ...) do {\
|
||||
if (LogSys.log_settings[Logs::Adventure].is_category_enabled == 1)\
|
||||
OutF(LogSys, Logs::Detail, Logs::Adventure, __FILE__, __func__, __LINE__, message, ##__VA_ARGS__);\
|
||||
} while (0)
|
||||
|
||||
#define Log(debug_level, log_category, message, ...) do {\
|
||||
if (LogSys.log_settings[log_category].is_category_enabled == 1)\
|
||||
LogSys.Out(debug_level, log_category, __FILE__, __func__, __LINE__, message, ##__VA_ARGS__);\
|
||||
|
||||
@ -26,6 +26,7 @@ Adventure::Adventure(AdventureTemplate *t)
|
||||
count = 0;
|
||||
assassination_count = 0;
|
||||
instance_id = 0;
|
||||
|
||||
}
|
||||
|
||||
Adventure::Adventure(AdventureTemplate *t, int count, int assassination_count, AdventureStatus status, uint16 instance_id, uint32 time_left)
|
||||
@ -425,3 +426,13 @@ void Adventure::MoveCorpsesToGraveyard()
|
||||
}
|
||||
}
|
||||
|
||||
int Adventure::GetAverageLevel() const
|
||||
{
|
||||
return average_level;
|
||||
}
|
||||
|
||||
void Adventure::SetAverageLevel(int average_level)
|
||||
{
|
||||
Adventure::average_level = average_level;
|
||||
}
|
||||
|
||||
|
||||
@ -87,6 +87,8 @@ public:
|
||||
int GetCount() const { return count; }
|
||||
int GetAssassinationCount() const { return assassination_count; }
|
||||
uint32 GetRemainingTime() const { if(current_timer) { return (current_timer->GetRemainingTime() / 1000); } else { return 0; } }
|
||||
int GetAverageLevel() const;
|
||||
void SetAverageLevel(int average_level);
|
||||
protected:
|
||||
int id;
|
||||
int count;
|
||||
@ -96,6 +98,8 @@ protected:
|
||||
std::list<std::string> players;
|
||||
Timer *current_timer;
|
||||
int instance_id;
|
||||
int average_level;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@ -337,6 +337,10 @@ void AdventureManager::CalculateAdventureRequestReply(const char *data)
|
||||
sra->theme = sar->template_id;
|
||||
sra->id = (*ea_iter)->id;
|
||||
sra->member_count = sar->member_count;
|
||||
sra->average_level = avg_level;
|
||||
|
||||
LogAdventure("[AdventureManager::CalculateAdventureRequestReply] Adventure average level [{}]", avg_level);
|
||||
|
||||
memcpy((pack->pBuffer + sizeof(ServerAdventureRequestAccept_Struct)), (data + sizeof(ServerAdventureRequest_Struct)), (sar->member_count * 64));
|
||||
zoneserver_list.SendPacket(leader->zone(), leader->instance(), pack);
|
||||
delete pack;
|
||||
@ -442,6 +446,8 @@ void AdventureManager::TryAdventureCreate(const char *data)
|
||||
}
|
||||
}
|
||||
|
||||
adv->SetAverageLevel(src->average_level);
|
||||
|
||||
adventure_list.push_back(adv);
|
||||
}
|
||||
|
||||
@ -936,6 +942,10 @@ void AdventureManager::GetZoneData(uint16 instance_id)
|
||||
zd->dest_y = temp->dest_y;
|
||||
zd->dest_z = temp->dest_z;
|
||||
zd->dest_h = temp->dest_h;
|
||||
zd->average_level = current->GetAverageLevel();
|
||||
|
||||
LogAdventure("[AdventureManager::GetZoneData] Adventure average level [{}]", zd->average_level);
|
||||
|
||||
zoneserver_list.SendPacket(0, instance_id, pack);
|
||||
delete pack;
|
||||
}
|
||||
|
||||
@ -325,6 +325,7 @@ Client::Client(EQStreamInterface* ieqs)
|
||||
adv_requested_theme = 0;
|
||||
adv_requested_id = 0;
|
||||
adv_requested_member_count = 0;
|
||||
adv_requested_avg_lvl = 0;
|
||||
|
||||
for(int i = 0; i < XTARGET_HARDCAP; ++i)
|
||||
{
|
||||
@ -5985,18 +5986,24 @@ void Client::SendAdventureCount(uint32 count, uint32 total)
|
||||
FastQueuePacket(&outapp);
|
||||
}
|
||||
|
||||
void Client::NewAdventure(int id, int theme, const char *text, int member_count, const char *members)
|
||||
void Client::NewAdventure(int id, int theme, const char *text, int member_count, const char *members, uint32 avg_level)
|
||||
{
|
||||
size_t text_size = strlen(text);
|
||||
auto outapp = new EQApplicationPacket(OP_AdventureDetails, text_size + 2);
|
||||
strn0cpy((char*)outapp->pBuffer, text, text_size);
|
||||
FastQueuePacket(&outapp);
|
||||
|
||||
adv_requested_id = id;
|
||||
adv_requested_id = id;
|
||||
adv_requested_theme = theme;
|
||||
|
||||
safe_delete_array(adv_requested_data);
|
||||
|
||||
adv_requested_member_count = member_count;
|
||||
adv_requested_data = new char[64 * member_count];
|
||||
adv_requested_avg_lvl = avg_level;
|
||||
adv_requested_data = new char[64 * member_count];
|
||||
|
||||
LogAdventure("[Client::NewAdventure] Adventure average level [{}]", adv_requested_avg_lvl);
|
||||
|
||||
memcpy(adv_requested_data, members, (64 * member_count));
|
||||
}
|
||||
|
||||
|
||||
@ -1270,7 +1270,7 @@ public:
|
||||
void SendAdventureError(const char *error);
|
||||
void SendAdventureDetails();
|
||||
void SendAdventureCount(uint32 count, uint32 total);
|
||||
void NewAdventure(int id, int theme, const char *text, int member_count, const char *members);
|
||||
void NewAdventure(int id, int theme, const char *text, int member_count, const char *members, uint32 avg_level);
|
||||
bool IsOnAdventure();
|
||||
void LeaveAdventure();
|
||||
void AdventureFinish(bool win, int theme, int points);
|
||||
@ -1613,6 +1613,7 @@ protected:
|
||||
int adv_requested_theme;
|
||||
int adv_requested_id;
|
||||
char *adv_requested_data;
|
||||
uint32 adv_requested_avg_lvl;
|
||||
int adv_requested_member_count;
|
||||
char *adv_data;
|
||||
|
||||
|
||||
@ -9037,14 +9037,21 @@ void Client::Handle_OP_LDoNButton(const EQApplicationPacket *app)
|
||||
bool* p = (bool*)app->pBuffer;
|
||||
if (*p == true)
|
||||
{
|
||||
auto pack =
|
||||
new ServerPacket(ServerOP_AdventureRequestCreate,
|
||||
sizeof(ServerAdventureRequestCreate_Struct) + (64 * adv_requested_member_count));
|
||||
ServerAdventureRequestCreate_Struct *sac = (ServerAdventureRequestCreate_Struct*)pack->pBuffer;
|
||||
auto pack = new ServerPacket(
|
||||
ServerOP_AdventureRequestCreate,
|
||||
sizeof(ServerAdventureRequestCreate_Struct) +
|
||||
(64 * adv_requested_member_count));
|
||||
|
||||
ServerAdventureRequestCreate_Struct *sac = (ServerAdventureRequestCreate_Struct *) pack->pBuffer;
|
||||
|
||||
strcpy(sac->leader, GetName());
|
||||
sac->id = adv_requested_id;
|
||||
sac->theme = adv_requested_theme;
|
||||
sac->member_count = adv_requested_member_count;
|
||||
sac->id = adv_requested_id;
|
||||
sac->theme = adv_requested_theme;
|
||||
sac->member_count = adv_requested_member_count;
|
||||
sac->average_level = adv_requested_avg_lvl;
|
||||
|
||||
LogAdventure("[Client::Handle_OP_LDoNButton] Adventure average level [{}]", sac->average_level);
|
||||
|
||||
memcpy((pack->pBuffer + sizeof(ServerAdventureRequestCreate_Struct)), adv_requested_data, (64 * adv_requested_member_count));
|
||||
worldserver.SendPacket(pack);
|
||||
delete pack;
|
||||
|
||||
@ -1688,7 +1688,16 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
|
||||
Client *c = entity_list.GetClientByName(ars->leader);
|
||||
if (c)
|
||||
{
|
||||
c->NewAdventure(ars->id, ars->theme, ars->text, ars->member_count, (const char*)(pack->pBuffer + sizeof(ServerAdventureRequestAccept_Struct)));
|
||||
LogInfo("[ServerOP_AdventureRequestAccept] Adventure average level [{}]", ars->average_level);
|
||||
|
||||
c->NewAdventure(
|
||||
ars->id,
|
||||
ars->theme,
|
||||
ars->text,
|
||||
ars->member_count,
|
||||
(const char *) (pack->pBuffer + sizeof(ServerAdventureRequestAccept_Struct)),
|
||||
ars->average_level
|
||||
);
|
||||
c->ClearPendingAdventureRequest();
|
||||
}
|
||||
break;
|
||||
@ -1811,6 +1820,8 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
|
||||
zone->adv_data = new char[pack->size];
|
||||
memcpy(zone->adv_data, pack->pBuffer, pack->size);
|
||||
ServerZoneAdventureDataReply_Struct* ds = (ServerZoneAdventureDataReply_Struct*)zone->adv_data;
|
||||
|
||||
LogAdventure("[ServerOP_AdventureZoneData] Adventure average level [{}]", ds->average_level);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user