mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-31 00:46:46 +00:00
Update to Client::QueuePacket to not attempt to send a packet to a BoT. Not clean, but a broad solution.
This commit is contained in:
+35
-15
@@ -10121,25 +10121,45 @@ void Bot::ProcessRaidInvite(Bot* player_accepting_invite, Client* b_owner) {
|
|||||||
if (group) {//add us all
|
if (group) {//add us all
|
||||||
uint32 free_group_id = raid->GetFreeGroup();
|
uint32 free_group_id = raid->GetFreeGroup();
|
||||||
Client* addClient = nullptr;
|
Client* addClient = nullptr;
|
||||||
|
Bot* addBot = nullptr;
|
||||||
for (int x = 0; x < 6; x++) {
|
for (int x = 0; x < 6; x++) {
|
||||||
if (group->members[x]) {
|
if (group->members[x]) {
|
||||||
Client* c = nullptr;
|
Client* c = nullptr;
|
||||||
if (group->members[x]->IsBot())
|
Bot* b = nullptr;
|
||||||
|
if (group->members[x]->IsBot()) {
|
||||||
|
b = group->members[x]->CastToBot();
|
||||||
|
if (x == 0) {
|
||||||
|
raid->AddBot(b, free_group_id, false, true, false);
|
||||||
|
raid->SetGroupLeader(b->GetName());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
raid->AddBot(b, free_group_id, false, false, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (group->members[x]->IsClient()) {
|
||||||
c = group->members[x]->CastToClient();
|
c = group->members[x]->CastToClient();
|
||||||
|
if (x == 0) {
|
||||||
if (!addClient)
|
raid->AddMember(c, free_group_id, false, true, false);
|
||||||
{
|
raid->SetGroupLeader(c->GetName());
|
||||||
addClient = c;
|
}
|
||||||
raid->SetGroupLeader(addClient->GetName());
|
else {
|
||||||
|
raid->AddMember(c, free_group_id, false, false, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
raid->SendRaidCreate(b_owner);
|
//if (!addClient)
|
||||||
raid->SendMakeLeaderPacketTo(raid->leadername, b_owner);
|
//{
|
||||||
if (group->IsLeader(group->members[x]))
|
// addClient = c;
|
||||||
raid->AddMember(c, free_group_id, false, true);
|
// raid->SetGroupLeader(addClient->GetName());
|
||||||
else
|
//}
|
||||||
raid->AddMember(c, free_group_id);
|
|
||||||
raid->SendBulkRaid(b_owner);
|
//raid->SendRaidCreate(b_owner);
|
||||||
|
//raid->SendMakeLeaderPacketTo(raid->leadername, b_owner);
|
||||||
|
//if (group->IsLeader(group->members[x]))
|
||||||
|
// raid->AddMember(c, free_group_id, false, true);
|
||||||
|
// else
|
||||||
|
// raid->AddMember(c, free_group_id);
|
||||||
|
//raid->SendRaidGroupAdd(b_owner->GetName(), free_group_id);
|
||||||
if (raid->IsLocked()) {
|
if (raid->IsLocked()) {
|
||||||
raid->SendRaidLockTo(b_owner);
|
raid->SendRaidLockTo(b_owner);
|
||||||
}
|
}
|
||||||
@@ -10149,7 +10169,7 @@ void Bot::ProcessRaidInvite(Bot* player_accepting_invite, Client* b_owner) {
|
|||||||
group->DisbandGroup(true);
|
group->DisbandGroup(true);
|
||||||
raid->GroupUpdate(free_group_id);
|
raid->GroupUpdate(free_group_id);
|
||||||
}
|
}
|
||||||
else {
|
else { // Jan 6 this also now works. One player already in a raid, invites one or many bots.
|
||||||
//raid->SendRaidCreate(b_owner);
|
//raid->SendRaidCreate(b_owner);
|
||||||
//raid->SendMakeLeaderPacketTo(raid->leadername, b_owner);
|
//raid->SendMakeLeaderPacketTo(raid->leadername, b_owner);
|
||||||
raid->AddBot(player_accepting_invite);
|
raid->AddBot(player_accepting_invite);
|
||||||
@@ -10346,7 +10366,7 @@ void Bot::ProcessRaidInvite(Bot* player_accepting_invite, Client* b_owner) {
|
|||||||
raid->SendRaidLockTo(b_owner);
|
raid->SendRaidLockTo(b_owner);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else { // neither has a group
|
else { // neither has a group - Jan 6 this appears to work now. One ungrouped player, one/many ungrouped bots
|
||||||
raid = new Raid(b_owner);
|
raid = new Raid(b_owner);
|
||||||
entity_list.AddRaid(raid);
|
entity_list.AddRaid(raid);
|
||||||
raid->SetRaidDetails();
|
raid->SetRaidDetails();
|
||||||
|
|||||||
+1
-1
@@ -813,7 +813,7 @@ void Client::QueuePacket(const EQApplicationPacket* app, bool ack_req, CLIENT_CO
|
|||||||
AddPacket(app, ack_req);
|
AddPacket(app, ack_req);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if(eqs)
|
if(eqs && !IsBot()) //Mitch added the BoTcheck for a fail safe on trying to send a packet to a BoT!
|
||||||
eqs->QueuePacket(app, ack_req);
|
eqs->QueuePacket(app, ack_req);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+5
-8
@@ -188,7 +188,7 @@ void Raid::AddBot(Bot* b, uint32 group, bool rleader, bool groupleader, bool loo
|
|||||||
}
|
}
|
||||||
if (group != RAID_GROUPLESS && groupleader) {
|
if (group != RAID_GROUPLESS && groupleader) {
|
||||||
database.SetRaidGroupLeaderInfo(group, GetID());
|
database.SetRaidGroupLeaderInfo(group, GetID());
|
||||||
UpdateGroupAAs(group);
|
//UpdateGroupAAs(group);
|
||||||
}
|
}
|
||||||
if (group < 12)
|
if (group < 12)
|
||||||
GroupUpdate(group);
|
GroupUpdate(group);
|
||||||
@@ -1227,12 +1227,7 @@ void Raid::SendBulkRaid(Client *to)
|
|||||||
{
|
{
|
||||||
if(strlen(members[x].membername) > 0 && (strcmp(members[x].membername, to->GetName()) != 0)) //don't send ourself
|
if(strlen(members[x].membername) > 0 && (strcmp(members[x].membername, to->GetName()) != 0)) //don't send ourself
|
||||||
{
|
{
|
||||||
#ifdef BOTSS
|
|
||||||
if(!entity_list.GetBotByBotName(members[x].membername))
|
|
||||||
SendRaidAdd(members[x].membername, to);
|
SendRaidAdd(members[x].membername, to);
|
||||||
#else
|
|
||||||
SendRaidAdd(members[x].membername, to);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1342,8 +1337,10 @@ void Raid::GroupUpdate(uint32 gid, bool initial)
|
|||||||
if(strlen(members[x].membername) > 0){
|
if(strlen(members[x].membername) > 0){
|
||||||
if(members[x].GroupNumber == gid){
|
if(members[x].GroupNumber == gid){
|
||||||
if(members[x].member) {
|
if(members[x].member) {
|
||||||
SendGroupUpdate(members[x].member);
|
if (members[x].member->IsClient()) { //Mitch added
|
||||||
SendGroupLeadershipAA(members[x].member, gid);
|
SendGroupUpdate(members[x].member);
|
||||||
|
SendGroupLeadershipAA(members[x].member, gid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user