Identified the extra byte at the end of OP_TargetBuffs/OP_BuffCreate

This commit is contained in:
Michael Cook (mackal) 2015-06-20 14:05:32 -04:00
parent 5481847987
commit 32e880f571
5 changed files with 12 additions and 5 deletions

View File

@ -4733,6 +4733,7 @@ struct BuffIcon_Struct
uint32 entity_id;
uint8 all_buffs;
uint16 count;
uint8 type; // 0 = self buff window, 1 = self target window, 4 = group, 5 = PC, 7 = NPC
BuffIconEntry_Struct entries[0];
};

View File

@ -417,7 +417,7 @@ namespace RoF
outapp->WriteUInt32(0); // Duration
outapp->WriteUInt32(0); // ?
outapp->WriteUInt8(0); // Caster name
outapp->WriteUInt8(0); // Terminating byte
outapp->WriteUInt8(0); // Type
}
FINISH_ENCODE();
@ -454,7 +454,7 @@ namespace RoF
__packet->WriteUInt32(emu->entries[i].num_hits); // Unknown
__packet->WriteString("");
}
__packet->WriteUInt8(!emu->all_buffs); // Unknown
__packet->WriteUInt8(emu->type); // Unknown
FINISH_ENCODE();
}

View File

@ -483,7 +483,7 @@ namespace RoF2
outapp->WriteUInt32(0); // Duration
outapp->WriteUInt32(0); // ?
outapp->WriteUInt8(0); // Caster name
outapp->WriteUInt8(0); // Terminating byte
outapp->WriteUInt8(0); // Type
}
FINISH_ENCODE();
@ -525,7 +525,7 @@ namespace RoF2
__packet->WriteUInt32(emu->entries[i].num_hits); // Unknown
__packet->WriteString("");
}
__packet->WriteUInt8(!emu->all_buffs); // Unknown
__packet->WriteUInt8(emu->type); // Unknown
FINISH_ENCODE();
}

View File

@ -387,7 +387,7 @@ namespace UF
__packet->WriteUInt32(emu->entries[i].num_hits);
__packet->WriteString("");
}
__packet->WriteUInt8(!emu->all_buffs);
__packet->WriteUInt8(emu->type);
FINISH_ENCODE();
/*

View File

@ -5396,6 +5396,12 @@ EQApplicationPacket *Mob::MakeBuffsPacket(bool for_target)
buff->entity_id = GetID();
buff->count = count;
buff->all_buffs = 1;
// there are more types, the client doesn't seem to really care though. The others are also currently hard to fill in here ...
// (see comment in common/eq_packet_structs.h)
if (for_target)
buff->type = IsClient() ? 5 : 7;
else
buff->type = 0;
uint32 index = 0;
for(unsigned int i = 0; i < buff_count; ++i)