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