parent
503dc913a9
commit
24a1ccf3a2
18 changed files with 7929 additions and 3927 deletions
|
@ -946,7 +946,7 @@ void Entity::CalculateSpellBonuses(ItemStatsValues* stats){
|
|||
bool race_match = false;
|
||||
while(itr.Next()) {
|
||||
if (itr.value->race_req.size() > 0) {
|
||||
for (int8 i; i < itr.value->race_req.size(); i++) {
|
||||
for (int8 i = 0; i < itr.value->race_req.size(); i++) {
|
||||
if (GetRace() == itr.value->race_req[i]) {
|
||||
race_match = true;
|
||||
}
|
||||
|
|
|
@ -46,6 +46,9 @@ public:
|
|||
for(iter = global_faction_list.begin();iter != global_faction_list.end(); iter++){
|
||||
safe_delete(iter->second);
|
||||
}
|
||||
|
||||
hostile_factions.clear();
|
||||
friendly_factions.clear();
|
||||
}
|
||||
sint32 GetDefaultFactionValue(int32 faction_id){
|
||||
if(global_faction_list.count(faction_id) > 0 && global_faction_list[faction_id])
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,4 +1,4 @@
|
|||
/*
|
||||
/*
|
||||
EQ2Emulator: Everquest II Server Emulator
|
||||
Copyright (C) 2007 EQ2EMulator Development Team (http://www.eq2emulator.net)
|
||||
|
||||
|
@ -112,7 +112,7 @@ int EQ2Emu_lua_GetSpellName(lua_State* state);
|
|||
|
||||
//Misc
|
||||
int EQ2Emu_lua_SpawnSet(lua_State* state);
|
||||
int EQ2Emu_lua_KillSpawn(lua_State* state);
|
||||
int EQ2Emu_lua_KillSpawn(lua_State* state);
|
||||
int EQ2Emu_lua_KillSpawnByDistance(lua_State* state);
|
||||
int EQ2Emu_lua_SpawnSetByDistance(lua_State* state);
|
||||
int EQ2Emu_lua_SetRequiredQuest(lua_State* state);
|
||||
|
@ -240,8 +240,8 @@ int EQ2Emu_lua_Harvest(lua_State* state);
|
|||
int EQ2Emu_lua_SetCompleteFlag(lua_State* state);
|
||||
int EQ2Emu_lua_CanReceiveQuest(lua_State* state);
|
||||
|
||||
int EQ2Emu_lua_HasCollectionsToHandIn(lua_State *state);
|
||||
int EQ2Emu_lua_HandInCollections(lua_State *state);
|
||||
int EQ2Emu_lua_HasCollectionsToHandIn(lua_State* state);
|
||||
int EQ2Emu_lua_HandInCollections(lua_State* state);
|
||||
|
||||
int EQ2Emu_lua_UseWidget(lua_State* state);
|
||||
int EQ2Emu_lua_SummonPet(lua_State* state);
|
||||
|
@ -280,7 +280,7 @@ int EQ2Emu_lua_ToggleFollow(lua_State* state);
|
|||
int EQ2Emu_lua_IsFollowing(lua_State* state);
|
||||
int EQ2Emu_lua_SetTempVariable(lua_State* state);
|
||||
int EQ2Emu_lua_GetTempVariable(lua_State* state);
|
||||
int EQ2Emu_lua_GiveQuestItem(lua_State*state);
|
||||
int EQ2Emu_lua_GiveQuestItem(lua_State* state);
|
||||
int EQ2Emu_lua_SetQuestRepeatable(lua_State* state);
|
||||
|
||||
int EQ2Emu_lua_AddWard(lua_State* state);
|
||||
|
@ -405,4 +405,7 @@ int EQ2Emu_lua_GetPCTOfHP(lua_State* state);
|
|||
int EQ2Emu_lua_GetPCTOfPower(lua_State* state);
|
||||
int EQ2Emu_lua_GetBoundZoneID(lua_State* state);
|
||||
int EQ2Emu_lua_Evac(lua_State* state);
|
||||
int EQ2Emu_lua_GetSpellTier(lua_State* state);
|
||||
int EQ2Emu_lua_GetSpellID(lua_State* state);
|
||||
int EQ2Emu_lua_ProcHate(lua_State* state);
|
||||
#endif
|
File diff suppressed because it is too large
Load diff
|
@ -136,7 +136,7 @@ void PlayerGroup::GroupChatMessage(Spawn* from, const char* message) {
|
|||
deque<GroupMemberInfo*>::iterator itr;
|
||||
for(itr = m_members.begin(); itr != m_members.end(); itr++) {
|
||||
GroupMemberInfo* info = *itr;
|
||||
if(info->client && info->client->GetCurrentZone())
|
||||
if(info && info->client && info->client->GetCurrentZone())
|
||||
info->client->GetCurrentZone()->HandleChatMessage(info->client, from, 0, CHANNEL_GROUP_SAY, message, 0);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -296,6 +296,8 @@ int16 PlayerSkillList::CalculateSkillValue(int32 skill_id, int16 current_val){
|
|||
}
|
||||
return new_val;
|
||||
}
|
||||
|
||||
return current_val;
|
||||
}
|
||||
|
||||
int16 PlayerSkillList::CalculateSkillMaxValue(int32 skill_id, int16 max_val) {
|
||||
|
|
|
@ -472,7 +472,7 @@ uchar* Spawn::spawn_pos_changes(Player* player, int16 version){
|
|||
player->pos_mutex.writelock(__FUNCTION__, __LINE__);
|
||||
uchar* orig_packet = player->GetSpawnPosPacketForXOR(id);
|
||||
packet->ResetData();
|
||||
InitializePosPacketData(player, packet);
|
||||
InitializePosPacketData(player, packet, true);
|
||||
string* data = packet->serializeString();
|
||||
int32 size = data->length();
|
||||
uchar* xor_pos_packet = player->GetTempPosPacketForXOR();
|
||||
|
@ -1283,7 +1283,7 @@ int32 Spawn::GetTransporterID(){
|
|||
return transporter_id;
|
||||
}
|
||||
|
||||
void Spawn::InitializePosPacketData(Player* player, PacketStruct* packet){
|
||||
void Spawn::InitializePosPacketData(Player* player, PacketStruct* packet, bool bSpawnUpdate) {
|
||||
int16 version = packet->GetVersion();
|
||||
packet->setDataByName("pos_grid_id", appearance.pos.grid_id);
|
||||
bool include_heading = true;
|
||||
|
@ -1351,6 +1351,8 @@ void Spawn::InitializePosPacketData(Player* player, PacketStruct* packet){
|
|||
packet->setDataByName("pos_z_velocity", static_cast<sint16>(GetSpeedZ() * 32));
|
||||
}
|
||||
|
||||
bool bSendSpeed = true;
|
||||
|
||||
if (IsWidget() && ((Widget*)this)->GetMultiFloorLift()) {
|
||||
Widget* widget = (Widget*)this;
|
||||
|
||||
|
@ -1377,7 +1379,9 @@ void Spawn::InitializePosPacketData(Player* player, PacketStruct* packet){
|
|||
packet->setDataByName("pos_y3", y);
|
||||
packet->setDataByName("pos_z3", z);
|
||||
}
|
||||
else {
|
||||
//If this is a spawn update or this spawn is currently moving we can send these values, otherwise set speed and next_xyz to 0
|
||||
//This fixes the bug where spawns with movement scripts face south when initially spawning if they are at their target location.
|
||||
else if (bSpawnUpdate || memcmp(&appearance.pos.X, &appearance.pos.X2, sizeof(float) * 3) != 0) {
|
||||
packet->setDataByName("pos_next_x", appearance.pos.X2);
|
||||
packet->setDataByName("pos_next_y", appearance.pos.Y2);
|
||||
packet->setDataByName("pos_next_z", appearance.pos.Z2);
|
||||
|
@ -1386,6 +1390,10 @@ void Spawn::InitializePosPacketData(Player* player, PacketStruct* packet){
|
|||
packet->setDataByName("pos_y3", appearance.pos.Y3);
|
||||
packet->setDataByName("pos_z3", appearance.pos.Z3);
|
||||
}
|
||||
else
|
||||
{
|
||||
bSendSpeed = false;
|
||||
}
|
||||
//packet->setDataByName("pos_unknown2", 4, 2);
|
||||
|
||||
int16 speed_multiplier = rule_manager.GetGlobalRule(R_Spawn, SpeedMultiplier)->GetInt16(); // was 1280, 600 and now 300... investigating why
|
||||
|
@ -1397,7 +1405,7 @@ void Spawn::InitializePosPacketData(Player* player, PacketStruct* packet){
|
|||
packet->setDataByName("pos_speed", player->GetPosPacketSpeed() * speed_multiplier);
|
||||
packet->setDataByName("pos_side_speed", player->GetSideSpeed() * speed_multiplier);
|
||||
}
|
||||
else {
|
||||
else if (bSendSpeed) {
|
||||
packet->setDataByName("pos_speed", GetSpeed() * speed_multiplier);
|
||||
}
|
||||
|
||||
|
@ -2195,8 +2203,13 @@ void Spawn::CalculateRunningLocation(bool stop){
|
|||
void Spawn::FaceTarget(float x, float z){
|
||||
float angle;
|
||||
|
||||
double diff_x=x - GetX();
|
||||
double diff_z=z - GetZ();
|
||||
double diff_x = x - GetX();
|
||||
double diff_z = z - GetZ();
|
||||
|
||||
//If we're very close to the same spot don't bother changing heading
|
||||
if (sqrt(diff_x * diff_x * diff_z * diff_z) < .1) {
|
||||
return;
|
||||
}
|
||||
|
||||
if(diff_z==0){
|
||||
if(diff_x > 0)
|
||||
|
|
|
@ -337,8 +337,7 @@ public:
|
|||
last_heading_angle = heading;
|
||||
if (heading != 180)
|
||||
heading = (heading - 180) * 64;
|
||||
SetPos(&appearance.pos.Dir1, (sint16)heading, updateFlags);
|
||||
SetPos(&appearance.pos.Dir2, (sint16)heading, updateFlags);
|
||||
SetHeading((sint16)heading, (sint16)heading, updateFlags);
|
||||
}
|
||||
void SetPitch(sint16 pitch1, sint16 pitch2, bool updateFlags = true){
|
||||
SetPos(&appearance.pos.Pitch1, (sint16)pitch1, updateFlags);
|
||||
|
@ -840,7 +839,7 @@ public:
|
|||
int32 GetTransporterID();
|
||||
bool MeetsSpawnAccessRequirements(Player* player);
|
||||
|
||||
void InitializePosPacketData(Player* player, PacketStruct* packet);
|
||||
void InitializePosPacketData(Player* player, PacketStruct* packet, bool bSpawnUpdate = false);
|
||||
void InitializeInfoPacketData(Player* player, PacketStruct* packet);
|
||||
void InitializeVisPacketData(Player* player, PacketStruct* packet);
|
||||
void InitializeHeaderPacketData(Player* player, PacketStruct* packet, int16 index);
|
||||
|
|
|
@ -1316,7 +1316,7 @@ bool SpellProcess::CastProcessedSpell(LuaSpell* spell, bool passive){
|
|||
if (i == 0 && !spell->spell->GetSpellData()->not_maintained) {
|
||||
spell->caster->AddMaintainedSpell(spell);
|
||||
//((Entity*)target)->AddMaintainedSpell(spell);
|
||||
LogWrite(SPELL__ERROR, 0, "AddMaintained", "%s", ((Entity*)target)->GetName());
|
||||
LogWrite(SPELL__DEBUG, 0, "Spell", "AddMaintained on %s", ((Entity*)target)->GetName());
|
||||
}
|
||||
|
||||
SpellEffects* effect = ((Entity*)target)->GetSpellEffect(spell->spell->GetSpellID());
|
||||
|
|
|
@ -883,7 +883,7 @@ bool Client::HandlePacket(EQApplicationPacket *app) {
|
|||
if(zar)
|
||||
{
|
||||
firstlogin = zar->isFirstLogin ( );
|
||||
LogWrite(ZONE__INFO, 0, "ZoneAuth", "Access Key: %u, Character Name: %s, Account ID: %u", zar->GetAccessKey(), zar->GetCharacterName(), zar->GetAccountID());
|
||||
LogWrite(ZONE__INFO, 0, "ZoneAuth", "Access Key: %u, Character Name: %s, Account ID: %u, Client Data Version: %u", zar->GetAccessKey(), zar->GetCharacterName(), zar->GetAccountID(), version);
|
||||
if(database.loadCharacter(zar->GetCharacterName(), zar->GetAccountID(), this)){
|
||||
version = request->getType_int16_ByName("version");
|
||||
MDeletePlayer.writelock(__FUNCTION__, __LINE__);
|
||||
|
|
|
@ -2015,6 +2015,9 @@ void ZoneServer::ProcessSpawnLocation(int32 location_id, bool respawn)
|
|||
CalculateSpawnGroup(spawn_location_list[location_id]);
|
||||
|
||||
LogWrite(SPAWN__TRACE, 0, "Spawn", "Exit %s", __FUNCTION__);
|
||||
|
||||
// need to unlock the list before we exit the function
|
||||
MSpawnLocationList.releasereadlock(__FUNCTION__, __LINE__);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -75,22 +75,39 @@ to zero and treated like placeholders." />
|
|||
</Data>
|
||||
</Struct>-->
|
||||
<Struct Name="LS_WorldList" ClientVersion="1" OpcodeName="OP_WorldListMsg">
|
||||
<Data ElementName="num_worlds" Type="int8" />
|
||||
<Data ElementName="world_list" Type="Array" ArraySizeVariable="num_worlds">
|
||||
<Data ElementName="id" Type="int32" Size="1" />
|
||||
<Data ElementName="name" Type="EQ2_16Bit_String" />
|
||||
<Data ElementName="name2" Type="EQ2_16Bit_String" />
|
||||
<Data ElementName="tag" Type="int8" Size="1" />
|
||||
<Data ElementName="locked" Type="int8" Size="1" />
|
||||
<Data ElementName="hidden" Type="int8" Size="1" />
|
||||
<Data ElementName="unknown" Type="int8" Size="1" />
|
||||
<Data ElementName="num_players" Type="int16" Size="1" />
|
||||
<Data ElementName="load" Type="int8" Size="1" />
|
||||
<Data ElementName="number_online_flag" Type="int8" Size="1" />
|
||||
<Data ElementName="feature_set" Type="int8" Size="2" />
|
||||
<Data ElementName="allowed_races" Type="int32" Size="1" />
|
||||
</Data>
|
||||
<Data ElementName="unknown2" Type="int8" />
|
||||
<Data ElementName="num_worlds" Type="int8" />
|
||||
<Data ElementName="world_list" Type="Array" ArraySizeVariable="num_worlds">
|
||||
<Data ElementName="id" Type="int32" Size="1" />
|
||||
<Data ElementName="name" Type="EQ2_16Bit_String" />
|
||||
<Data ElementName="name2" Type="EQ2_16Bit_String" />
|
||||
<Data ElementName="tag" Type="int8" Size="1" />
|
||||
<Data ElementName="locked" Type="int8" Size="1" />
|
||||
<Data ElementName="hidden" Type="int8" Size="1" />
|
||||
<Data ElementName="unknown" Type="int8" Size="1" />
|
||||
<Data ElementName="num_players" Type="int16" Size="1" />
|
||||
<Data ElementName="load" Type="int8" Size="1" />
|
||||
<Data ElementName="number_online_flag" Type="int8" Size="1" />
|
||||
<Data ElementName="feature_set" Type="int8" Size="1" />
|
||||
<Data ElementName="allowed_races" Type="int32" Size="1" />
|
||||
</Data>
|
||||
</Struct>
|
||||
<Struct Name="LS_WorldList" ClientVersion="60100" OpcodeName="OP_WorldListMsg">
|
||||
<Data ElementName="num_worlds" Type="int8" />
|
||||
<Data ElementName="world_list" Type="Array" ArraySizeVariable="num_worlds">
|
||||
<Data ElementName="id" Type="int32" Size="1" />
|
||||
<Data ElementName="name" Type="EQ2_16Bit_String" />
|
||||
<Data ElementName="name2" Type="EQ2_16Bit_String" />
|
||||
<Data ElementName="tag" Type="int8" Size="1" />
|
||||
<Data ElementName="locked" Type="int8" Size="1" />
|
||||
<Data ElementName="hidden" Type="int8" Size="1" />
|
||||
<Data ElementName="unknown" Type="int8" Size="1" />
|
||||
<Data ElementName="num_players" Type="int16" Size="1" />
|
||||
<Data ElementName="load" Type="int8" Size="1" />
|
||||
<Data ElementName="number_online_flag" Type="int8" Size="1" />
|
||||
<Data ElementName="feature_set" Type="int8" Size="2" />
|
||||
<Data ElementName="allowed_races" Type="int32" Size="1" />
|
||||
</Data>
|
||||
<Data ElementName="unknown2" Type="int8" />
|
||||
</Struct>
|
||||
<Struct Name="LS_WorldUpdate" ClientVersion="1" OpcodeName="OP_WorldStatusChangeMsg">
|
||||
<Data ElementName="server_id" Type="int32" Size="1" />
|
||||
|
|
|
@ -1923,6 +1923,123 @@
|
|||
<Data ElementName="activity_timer" Type="int32" Size="1" />
|
||||
<Data ElementName="unknown18" Type="int8" Size="68" />-->
|
||||
</Struct>
|
||||
<Struct Name="Substruct_SpawnInfoStruct" ClientVersion="67633" >
|
||||
<Data ElementName="model_type" Type="int32" Size="1" />
|
||||
<Data ElementName="soga_model_type" Type="int32" Size="1" />
|
||||
<Data ElementName="equipment_types" Type="int32" Size="25" />
|
||||
<Data ElementName="unknown7a" Type="int16" Size="2" />
|
||||
<Data ElementName="unknown7aa" Type="int16" Size="2" />
|
||||
<Data ElementName="hair_type_id" Type="int16" Size="1" />
|
||||
<Data ElementName="unknown30" Type="int16" Size="1" />
|
||||
<Data ElementName="facial_hair_type_id" Type="int16" Size="1" />
|
||||
<Data ElementName="unknown30a" Type="int16" Size="1" />
|
||||
<Data ElementName="wing_type_id" Type="int16" Size="1" />
|
||||
<Data ElementName="unknown30b" Type="int16" Size="1" />
|
||||
<Data ElementName="chest_type_id" Type="int16" Size="1" />
|
||||
<Data ElementName="unknown30c" Type="int16" Size="1" />
|
||||
<Data ElementName="legs_type_id" Type="int16" Size="1" />
|
||||
<Data ElementName="unknown_new_type_id" Type="int16" Size="1" />
|
||||
<Data ElementName="unknown30d" Type="int16" Size="1" />
|
||||
<Data ElementName="unknown30e" Type="int16" Size="1" />
|
||||
<Data ElementName="soga_hair_type_id" Type="int16" Size="1" />
|
||||
<Data ElementName="unknown30f" Type="int16" Size="1" />
|
||||
<Data ElementName="soga_facial_hair_type_id" Type="int16" Size="1" />
|
||||
<Data ElementName="unknown30g" Type="int16" Size="1" />
|
||||
<Data ElementName="mount_type" Type="int32" />
|
||||
<Data ElementName="combat_voice" Type="int32" Size="1" />
|
||||
<Data ElementName="emote_voice" Type="int32" Size="1" />
|
||||
<Data ElementName="unknown17" Type="int32" Size="1" />
|
||||
<Data ElementName="visual_flag" Type="int8" Size="1" />
|
||||
<Data ElementName="interaction_flag" Type="int8" Size="1" />
|
||||
<Data ElementName="unknown60055" Type="int8" Size="18" />
|
||||
<Data ElementName="equipment_colors" Type="EQ2_Color" Size="25" />
|
||||
<Data ElementName="unknown7b" Type="EQ2_Color" Size="2" />
|
||||
<Data ElementName="hair_type_color" Type="EQ2_Color" />
|
||||
<Data ElementName="hair_face_color" Type="EQ2_Color" />
|
||||
<Data ElementName="wing_color1" Type="EQ2_Color" />
|
||||
<Data ElementName="unknown10" Type="EQ2_Color" Size="3" />
|
||||
<Data ElementName="equipment_highlights" Type="EQ2_Color" Size="25" />
|
||||
<Data ElementName="unknown7c" Type="EQ2_Color" Size="2" />
|
||||
<Data ElementName="hair_type_highlight_color" Type="EQ2_Color" />
|
||||
<Data ElementName="hair_face_highlight_color" Type="EQ2_Color" />
|
||||
<Data ElementName="wing_color2" Type="EQ2_Color" />
|
||||
<Data ElementName="unknown11" Type="EQ2_Color" Size="3" />
|
||||
<Data ElementName="soga_hair_type_color" Type="EQ2_Color" />
|
||||
<Data ElementName="soga_hair_type_highlight_color" Type="EQ2_Color" />
|
||||
<Data ElementName="soga_hair_face_color" Type="EQ2_Color" />
|
||||
<Data ElementName="soga_hair_face_highlight_color" Type="EQ2_Color" />
|
||||
<Data ElementName="skin_color" Type="EQ2_Color" Size="1" />
|
||||
<Data ElementName="eye_color" Type="EQ2_Color" Size="1" />
|
||||
<Data ElementName="soga_eye_color" Type="EQ2_Color" />
|
||||
<Data ElementName="soga_skin_color" Type="EQ2_Color" />
|
||||
<Data ElementName="kunark_unknown_color1" Type="EQ2_Color" />
|
||||
<Data ElementName="kunark_unknown_color2" Type="EQ2_Color" />
|
||||
<Data ElementName="unknown12" Type="EQ2_Color" Size="1" />
|
||||
<Data ElementName="eye_type" Type="sint8" Size="3" />
|
||||
<Data ElementName="ear_type" Type="sint8" Size="3" />
|
||||
<Data ElementName="eye_brow_type" Type="sint8" Size="3" />
|
||||
<Data ElementName="cheek_type" Type="sint8" Size="3" />
|
||||
<Data ElementName="lip_type" Type="sint8" Size="3" />
|
||||
<Data ElementName="chin_type" Type="sint8" Size="3" />
|
||||
<Data ElementName="nose_type" Type="sint8" Size="3" />
|
||||
<Data ElementName="body_size" Type="sint8" Size="1" />
|
||||
<Data ElementName="body_size_unknown" Type="sint8" Size="1" />
|
||||
<Data ElementName="unknown14a" Type="int8" Size="3" />
|
||||
<Data ElementName="soga_eye_type" Type="sint8" Size="3" />
|
||||
<Data ElementName="soga_ear_type" Type="sint8" Size="3" />
|
||||
<Data ElementName="soga_eye_brow_type" Type="sint8" Size="3" />
|
||||
<Data ElementName="soga_cheek_type" Type="sint8" Size="3" />
|
||||
<Data ElementName="soga_lip_type" Type="sint8" Size="3" />
|
||||
<Data ElementName="soga_chin_type" Type="sint8" Size="3" />
|
||||
<Data ElementName="soga_nose_type" Type="sint8" Size="3" />
|
||||
<Data ElementName="unknown14b" Type="int8" Size="2" />
|
||||
<Data ElementName="mount_color" Type="EQ2_Color" /><!--index 464-->
|
||||
<Data ElementName="mount_saddle_color" Type="EQ2_Color" />
|
||||
<Data ElementName="hair_color1" Type="EQ2_Color" />
|
||||
<Data ElementName="hair_color2" Type="EQ2_Color" />
|
||||
<Data ElementName="hair_highlight" Type="EQ2_Color" />
|
||||
<Data ElementName="soga_hair_color1" Type="EQ2_Color" />
|
||||
<Data ElementName="soga_hair_color2" Type="EQ2_Color" />
|
||||
<Data ElementName="soga_hair_highlight" Type="EQ2_Color" />
|
||||
<Data ElementName="action_state" Type="int32" Size="1" />
|
||||
<Data ElementName="visual_state" Type="int32" Size="1" />
|
||||
<Data ElementName="mood_state" Type="int32" Size="1" />
|
||||
<Data ElementName="emote_state" Type="int32" Size="1" />
|
||||
<Data ElementName="unknown600552" Type="int8" Size="52" />
|
||||
<Data ElementName="spell_effects" Substruct="Substruct_TargetSpellEffects" Size="30" />
|
||||
<Data ElementName="target_id" Type="int32" Size="1" />
|
||||
<Data ElementName="follow_target" Type="int32" Size="1" />
|
||||
<Data ElementName="size_unknown" Type="int32" />
|
||||
<Data ElementName="unknown3b" Type="int8" Size="4" />
|
||||
<Data ElementName="spawn_type" Type="int8" Size="1" />
|
||||
<Data ElementName="icon" Type="int8" Size="1" />
|
||||
<Data ElementName="activity_status" Type="int32" Size="1" />
|
||||
<Data ElementName="unknownpk1" Type="int8" Size="2" />
|
||||
<Data ElementName="activity_timer" Type="int32" Size="1" />
|
||||
<Data ElementName="unknown600554" Type="int8" Size="4" />
|
||||
<Data ElementName="hp_remaining" Type="int32" Size="1" />
|
||||
<Data ElementName="power_percent" Type="int32" Size="1" />
|
||||
<Data ElementName="unknown600553" Type="int8" Size="4" />
|
||||
<Data ElementName="size_mod" Type="int8" Size="1" />
|
||||
<Data ElementName="size_type" Type="int8" Size="1" />
|
||||
<Data ElementName="unknown600553b" Type="int8" Size="3" />
|
||||
<Data ElementName="unknown4" Type="int8" />
|
||||
<Data ElementName="unknown67633" Type="int8" Size="3" />
|
||||
<Data ElementName="level" Type="int8" />
|
||||
<Data ElementName="unknown5" Type="int8" Size="1" />
|
||||
<Data ElementName="heroic_flag" Type="int8" Size="1" />
|
||||
<Data ElementName="unknown67633b" Type="int8" Size="1" />
|
||||
<Data ElementName="unknown7" Type="int32" Size="1" />
|
||||
<Data ElementName="race" Type="int8" Size="1" />
|
||||
<Data ElementName="gender" Type="int8" Size="1" />
|
||||
<Data ElementName="class" Type="int8" Size="1" />
|
||||
<Data ElementName="difficulty" Type="int8" Size="1" />
|
||||
<Data ElementName="unknown21" Type="int8" Size="3" /><!--
|
||||
<Data ElementName="unknownz5" Type="int16" Size="1" />
|
||||
<Data ElementName="unknown6" Type="int8" Size="1" />
|
||||
<Data ElementName="activity_timer" Type="int32" Size="1" />
|
||||
<Data ElementName="unknown18" Type="int8" Size="68" />-->
|
||||
</Struct>
|
||||
<Struct Name="WS_SpawnStruct_Footer" ClientVersion="1">
|
||||
<Data ElementName="name" Type="EQ2_16Bit_String" Size="1" />
|
||||
<Data ElementName="unknown" Type="int32" Size="2" />
|
||||
|
@ -2188,10 +2305,14 @@
|
|||
<Data ElementName="vis" Substruct="Substruct_SpawnVisualizationInfoStruct" Size="1" />
|
||||
<Data ElementName="info" Substruct="Substruct_SpawnInfoStruct" Size="1" />
|
||||
</Struct>
|
||||
|
||||
<Struct Name="WS_SpawnStruct" ClientVersion="60055">
|
||||
<Data ElementName="position" Substruct="Substruct_SpawnPositionStruct" Size="1" />
|
||||
<Data ElementName="vis" Substruct="Substruct_SpawnVisualizationInfoStruct" Size="1" />
|
||||
<Data ElementName="info" Substruct="Substruct_SpawnInfoStruct" Size="1" />
|
||||
</Struct>
|
||||
<Struct Name="WS_SpawnStruct" ClientVersion="67633">
|
||||
<Data ElementName="position" Substruct="Substruct_SpawnPositionStruct" Size="1" />
|
||||
<Data ElementName="vis" Substruct="Substruct_SpawnVisualizationInfoStruct" Size="1" />
|
||||
<Data ElementName="info" Substruct="Substruct_SpawnInfoStruct" Size="1" />
|
||||
</Struct>
|
||||
</EQ2Emulator>
|
File diff suppressed because it is too large
Load diff
|
@ -75,22 +75,39 @@ to zero and treated like placeholders." />
|
|||
</Data>
|
||||
</Struct>-->
|
||||
<Struct Name="LS_WorldList" ClientVersion="1" OpcodeName="OP_WorldListMsg">
|
||||
<Data ElementName="num_worlds" Type="int8" />
|
||||
<Data ElementName="world_list" Type="Array" ArraySizeVariable="num_worlds">
|
||||
<Data ElementName="id" Type="int32" Size="1" />
|
||||
<Data ElementName="name" Type="EQ2_16Bit_String" />
|
||||
<Data ElementName="name2" Type="EQ2_16Bit_String" />
|
||||
<Data ElementName="tag" Type="int8" Size="1" />
|
||||
<Data ElementName="locked" Type="int8" Size="1" />
|
||||
<Data ElementName="hidden" Type="int8" Size="1" />
|
||||
<Data ElementName="unknown" Type="int8" Size="1" />
|
||||
<Data ElementName="num_players" Type="int16" Size="1" />
|
||||
<Data ElementName="load" Type="int8" Size="1" />
|
||||
<Data ElementName="number_online_flag" Type="int8" Size="1" />
|
||||
<Data ElementName="feature_set" Type="int8" Size="2" />
|
||||
<Data ElementName="allowed_races" Type="int32" Size="1" />
|
||||
</Data>
|
||||
<Data ElementName="unknown2" Type="int8" />
|
||||
<Data ElementName="num_worlds" Type="int8" />
|
||||
<Data ElementName="world_list" Type="Array" ArraySizeVariable="num_worlds">
|
||||
<Data ElementName="id" Type="int32" Size="1" />
|
||||
<Data ElementName="name" Type="EQ2_16Bit_String" />
|
||||
<Data ElementName="name2" Type="EQ2_16Bit_String" />
|
||||
<Data ElementName="tag" Type="int8" Size="1" />
|
||||
<Data ElementName="locked" Type="int8" Size="1" />
|
||||
<Data ElementName="hidden" Type="int8" Size="1" />
|
||||
<Data ElementName="unknown" Type="int8" Size="1" />
|
||||
<Data ElementName="num_players" Type="int16" Size="1" />
|
||||
<Data ElementName="load" Type="int8" Size="1" />
|
||||
<Data ElementName="number_online_flag" Type="int8" Size="1" />
|
||||
<Data ElementName="feature_set" Type="int8" Size="1" />
|
||||
<Data ElementName="allowed_races" Type="int32" Size="1" />
|
||||
</Data>
|
||||
</Struct>
|
||||
<Struct Name="LS_WorldList" ClientVersion="60100" OpcodeName="OP_WorldListMsg">
|
||||
<Data ElementName="num_worlds" Type="int8" />
|
||||
<Data ElementName="world_list" Type="Array" ArraySizeVariable="num_worlds">
|
||||
<Data ElementName="id" Type="int32" Size="1" />
|
||||
<Data ElementName="name" Type="EQ2_16Bit_String" />
|
||||
<Data ElementName="name2" Type="EQ2_16Bit_String" />
|
||||
<Data ElementName="tag" Type="int8" Size="1" />
|
||||
<Data ElementName="locked" Type="int8" Size="1" />
|
||||
<Data ElementName="hidden" Type="int8" Size="1" />
|
||||
<Data ElementName="unknown" Type="int8" Size="1" />
|
||||
<Data ElementName="num_players" Type="int16" Size="1" />
|
||||
<Data ElementName="load" Type="int8" Size="1" />
|
||||
<Data ElementName="number_online_flag" Type="int8" Size="1" />
|
||||
<Data ElementName="feature_set" Type="int8" Size="2" />
|
||||
<Data ElementName="allowed_races" Type="int32" Size="1" />
|
||||
</Data>
|
||||
<Data ElementName="unknown2" Type="int8" />
|
||||
</Struct>
|
||||
<Struct Name="LS_WorldUpdate" ClientVersion="1" OpcodeName="OP_WorldStatusChangeMsg">
|
||||
<Data ElementName="server_id" Type="int32" Size="1" />
|
||||
|
|
|
@ -1923,6 +1923,123 @@
|
|||
<Data ElementName="activity_timer" Type="int32" Size="1" />
|
||||
<Data ElementName="unknown18" Type="int8" Size="68" />-->
|
||||
</Struct>
|
||||
<Struct Name="Substruct_SpawnInfoStruct" ClientVersion="67633" >
|
||||
<Data ElementName="model_type" Type="int32" Size="1" />
|
||||
<Data ElementName="soga_model_type" Type="int32" Size="1" />
|
||||
<Data ElementName="equipment_types" Type="int32" Size="25" />
|
||||
<Data ElementName="unknown7a" Type="int16" Size="2" />
|
||||
<Data ElementName="unknown7aa" Type="int16" Size="2" />
|
||||
<Data ElementName="hair_type_id" Type="int16" Size="1" />
|
||||
<Data ElementName="unknown30" Type="int16" Size="1" />
|
||||
<Data ElementName="facial_hair_type_id" Type="int16" Size="1" />
|
||||
<Data ElementName="unknown30a" Type="int16" Size="1" />
|
||||
<Data ElementName="wing_type_id" Type="int16" Size="1" />
|
||||
<Data ElementName="unknown30b" Type="int16" Size="1" />
|
||||
<Data ElementName="chest_type_id" Type="int16" Size="1" />
|
||||
<Data ElementName="unknown30c" Type="int16" Size="1" />
|
||||
<Data ElementName="legs_type_id" Type="int16" Size="1" />
|
||||
<Data ElementName="unknown_new_type_id" Type="int16" Size="1" />
|
||||
<Data ElementName="unknown30d" Type="int16" Size="1" />
|
||||
<Data ElementName="unknown30e" Type="int16" Size="1" />
|
||||
<Data ElementName="soga_hair_type_id" Type="int16" Size="1" />
|
||||
<Data ElementName="unknown30f" Type="int16" Size="1" />
|
||||
<Data ElementName="soga_facial_hair_type_id" Type="int16" Size="1" />
|
||||
<Data ElementName="unknown30g" Type="int16" Size="1" />
|
||||
<Data ElementName="mount_type" Type="int32" />
|
||||
<Data ElementName="combat_voice" Type="int32" Size="1" />
|
||||
<Data ElementName="emote_voice" Type="int32" Size="1" />
|
||||
<Data ElementName="unknown17" Type="int32" Size="1" />
|
||||
<Data ElementName="visual_flag" Type="int8" Size="1" />
|
||||
<Data ElementName="interaction_flag" Type="int8" Size="1" />
|
||||
<Data ElementName="unknown60055" Type="int8" Size="18" />
|
||||
<Data ElementName="equipment_colors" Type="EQ2_Color" Size="25" />
|
||||
<Data ElementName="unknown7b" Type="EQ2_Color" Size="2" />
|
||||
<Data ElementName="hair_type_color" Type="EQ2_Color" />
|
||||
<Data ElementName="hair_face_color" Type="EQ2_Color" />
|
||||
<Data ElementName="wing_color1" Type="EQ2_Color" />
|
||||
<Data ElementName="unknown10" Type="EQ2_Color" Size="3" />
|
||||
<Data ElementName="equipment_highlights" Type="EQ2_Color" Size="25" />
|
||||
<Data ElementName="unknown7c" Type="EQ2_Color" Size="2" />
|
||||
<Data ElementName="hair_type_highlight_color" Type="EQ2_Color" />
|
||||
<Data ElementName="hair_face_highlight_color" Type="EQ2_Color" />
|
||||
<Data ElementName="wing_color2" Type="EQ2_Color" />
|
||||
<Data ElementName="unknown11" Type="EQ2_Color" Size="3" />
|
||||
<Data ElementName="soga_hair_type_color" Type="EQ2_Color" />
|
||||
<Data ElementName="soga_hair_type_highlight_color" Type="EQ2_Color" />
|
||||
<Data ElementName="soga_hair_face_color" Type="EQ2_Color" />
|
||||
<Data ElementName="soga_hair_face_highlight_color" Type="EQ2_Color" />
|
||||
<Data ElementName="skin_color" Type="EQ2_Color" Size="1" />
|
||||
<Data ElementName="eye_color" Type="EQ2_Color" Size="1" />
|
||||
<Data ElementName="soga_eye_color" Type="EQ2_Color" />
|
||||
<Data ElementName="soga_skin_color" Type="EQ2_Color" />
|
||||
<Data ElementName="kunark_unknown_color1" Type="EQ2_Color" />
|
||||
<Data ElementName="kunark_unknown_color2" Type="EQ2_Color" />
|
||||
<Data ElementName="unknown12" Type="EQ2_Color" Size="1" />
|
||||
<Data ElementName="eye_type" Type="sint8" Size="3" />
|
||||
<Data ElementName="ear_type" Type="sint8" Size="3" />
|
||||
<Data ElementName="eye_brow_type" Type="sint8" Size="3" />
|
||||
<Data ElementName="cheek_type" Type="sint8" Size="3" />
|
||||
<Data ElementName="lip_type" Type="sint8" Size="3" />
|
||||
<Data ElementName="chin_type" Type="sint8" Size="3" />
|
||||
<Data ElementName="nose_type" Type="sint8" Size="3" />
|
||||
<Data ElementName="body_size" Type="sint8" Size="1" />
|
||||
<Data ElementName="body_size_unknown" Type="sint8" Size="1" />
|
||||
<Data ElementName="unknown14a" Type="int8" Size="3" />
|
||||
<Data ElementName="soga_eye_type" Type="sint8" Size="3" />
|
||||
<Data ElementName="soga_ear_type" Type="sint8" Size="3" />
|
||||
<Data ElementName="soga_eye_brow_type" Type="sint8" Size="3" />
|
||||
<Data ElementName="soga_cheek_type" Type="sint8" Size="3" />
|
||||
<Data ElementName="soga_lip_type" Type="sint8" Size="3" />
|
||||
<Data ElementName="soga_chin_type" Type="sint8" Size="3" />
|
||||
<Data ElementName="soga_nose_type" Type="sint8" Size="3" />
|
||||
<Data ElementName="unknown14b" Type="int8" Size="2" />
|
||||
<Data ElementName="mount_color" Type="EQ2_Color" /><!--index 464-->
|
||||
<Data ElementName="mount_saddle_color" Type="EQ2_Color" />
|
||||
<Data ElementName="hair_color1" Type="EQ2_Color" />
|
||||
<Data ElementName="hair_color2" Type="EQ2_Color" />
|
||||
<Data ElementName="hair_highlight" Type="EQ2_Color" />
|
||||
<Data ElementName="soga_hair_color1" Type="EQ2_Color" />
|
||||
<Data ElementName="soga_hair_color2" Type="EQ2_Color" />
|
||||
<Data ElementName="soga_hair_highlight" Type="EQ2_Color" />
|
||||
<Data ElementName="action_state" Type="int32" Size="1" />
|
||||
<Data ElementName="visual_state" Type="int32" Size="1" />
|
||||
<Data ElementName="mood_state" Type="int32" Size="1" />
|
||||
<Data ElementName="emote_state" Type="int32" Size="1" />
|
||||
<Data ElementName="unknown600552" Type="int8" Size="52" />
|
||||
<Data ElementName="spell_effects" Substruct="Substruct_TargetSpellEffects" Size="30" />
|
||||
<Data ElementName="target_id" Type="int32" Size="1" />
|
||||
<Data ElementName="follow_target" Type="int32" Size="1" />
|
||||
<Data ElementName="size_unknown" Type="int32" />
|
||||
<Data ElementName="unknown3b" Type="int8" Size="4" />
|
||||
<Data ElementName="spawn_type" Type="int8" Size="1" />
|
||||
<Data ElementName="icon" Type="int8" Size="1" />
|
||||
<Data ElementName="activity_status" Type="int32" Size="1" />
|
||||
<Data ElementName="unknownpk1" Type="int8" Size="2" />
|
||||
<Data ElementName="activity_timer" Type="int32" Size="1" />
|
||||
<Data ElementName="unknown600554" Type="int8" Size="4" />
|
||||
<Data ElementName="hp_remaining" Type="int32" Size="1" />
|
||||
<Data ElementName="power_percent" Type="int32" Size="1" />
|
||||
<Data ElementName="unknown600553" Type="int8" Size="4" />
|
||||
<Data ElementName="size_mod" Type="int8" Size="1" />
|
||||
<Data ElementName="size_type" Type="int8" Size="1" />
|
||||
<Data ElementName="unknown600553b" Type="int8" Size="3" />
|
||||
<Data ElementName="unknown4" Type="int8" />
|
||||
<Data ElementName="unknown67633" Type="int8" Size="3" />
|
||||
<Data ElementName="level" Type="int8" />
|
||||
<Data ElementName="unknown5" Type="int8" Size="1" />
|
||||
<Data ElementName="heroic_flag" Type="int8" Size="1" />
|
||||
<Data ElementName="unknown67633b" Type="int8" Size="1" />
|
||||
<Data ElementName="unknown7" Type="int32" Size="1" />
|
||||
<Data ElementName="race" Type="int8" Size="1" />
|
||||
<Data ElementName="gender" Type="int8" Size="1" />
|
||||
<Data ElementName="class" Type="int8" Size="1" />
|
||||
<Data ElementName="difficulty" Type="int8" Size="1" />
|
||||
<Data ElementName="unknown21" Type="int8" Size="3" /><!--
|
||||
<Data ElementName="unknownz5" Type="int16" Size="1" />
|
||||
<Data ElementName="unknown6" Type="int8" Size="1" />
|
||||
<Data ElementName="activity_timer" Type="int32" Size="1" />
|
||||
<Data ElementName="unknown18" Type="int8" Size="68" />-->
|
||||
</Struct>
|
||||
<Struct Name="WS_SpawnStruct_Footer" ClientVersion="1">
|
||||
<Data ElementName="name" Type="EQ2_16Bit_String" Size="1" />
|
||||
<Data ElementName="unknown" Type="int32" Size="2" />
|
||||
|
@ -2188,10 +2305,14 @@
|
|||
<Data ElementName="vis" Substruct="Substruct_SpawnVisualizationInfoStruct" Size="1" />
|
||||
<Data ElementName="info" Substruct="Substruct_SpawnInfoStruct" Size="1" />
|
||||
</Struct>
|
||||
|
||||
<Struct Name="WS_SpawnStruct" ClientVersion="60055">
|
||||
<Data ElementName="position" Substruct="Substruct_SpawnPositionStruct" Size="1" />
|
||||
<Data ElementName="vis" Substruct="Substruct_SpawnVisualizationInfoStruct" Size="1" />
|
||||
<Data ElementName="info" Substruct="Substruct_SpawnInfoStruct" Size="1" />
|
||||
</Struct>
|
||||
<Struct Name="WS_SpawnStruct" ClientVersion="67633">
|
||||
<Data ElementName="position" Substruct="Substruct_SpawnPositionStruct" Size="1" />
|
||||
<Data ElementName="vis" Substruct="Substruct_SpawnVisualizationInfoStruct" Size="1" />
|
||||
<Data ElementName="info" Substruct="Substruct_SpawnInfoStruct" Size="1" />
|
||||
</Struct>
|
||||
</EQ2Emulator>
|
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue