diff --git a/src/libraries b/src/libraries index 376501b8..c71860d7 160000 --- a/src/libraries +++ b/src/libraries @@ -1 +1 @@ -Subproject commit 376501b8f441bd6b6e75b1960b118aabd72fca9d +Subproject commit c71860d79596a93e5668169ac3f0309397c7218c diff --git a/src/servers/Server_Common/Exd/ExdData.cpp b/src/servers/Server_Common/Exd/ExdData.cpp index 40e6e28d..c6785c6c 100644 --- a/src/servers/Server_Common/Exd/ExdData.cpp +++ b/src/servers/Server_Common/Exd/ExdData.cpp @@ -85,7 +85,7 @@ bool Core::Data::ExdData::loadZoneInfo() int16_t map_index = getField< int16_t >( mapDataFields, 12 ); bool is_two_bytes = getField< bool >( mapDataFields, 15 ); - uint8_t weather_rate = getField< uint8_t >( fields, 10 ) > 75 ? 0 : getField< uint8_t >( fields, 10 ); + uint16_t weather_rate = getField< uint16_t >( fields, 10 ) > 75 ? 0 : getField< uint16_t >( fields, 10 ); auto weatherRateFields = weatherRate.get_row( weather_rate ); int32_t aetheryte_index = getField< int32_t >( fields, 20 ); @@ -520,26 +520,26 @@ boost::shared_ptr< Core::Data::QuestInfo > info->quest_level = getField< uint16_t >( row, 4 ); - info->enpc_resident_start = getField< uint32_t >( row, 38 ); - info->enpc_resident_end = getField< uint32_t >( row, 40 ); + info->enpc_resident_start = getField< uint32_t >( row, 40 ); + info->enpc_resident_end = getField< uint32_t >( row, 42 ); - info->reward_exp_factor = getField< uint16_t >( row, 1437 ); - info->reward_gil = getField< uint32_t >( row, 1438 ); - info->reward_gc_seals = getField< uint16_t >( row, 1440 ); + info->reward_exp_factor = getField< uint16_t >( row, 1439 ); + info->reward_gil = getField< uint32_t >( row, 1440 ); + info->reward_gc_seals = getField< uint16_t >( row, 1442 ); - info->reward_item_type = getField< uint8_t >( row, 1447 ); + info->reward_item_type = getField< uint8_t >( row, 1449 ); for( uint32_t i = 0; i < 6; i++ ) { - uint32_t entry = getField< uint32_t >( row, i + 1448 ); + uint32_t entry = getField< uint32_t >( row, i + 1450 ); if( entry > 0 ) info->reward_item.push_back( entry ); - uint8_t entry1 = getField< uint8_t >( row, i + 1455 ); + uint8_t entry1 = getField< uint8_t >( row, i + 1457 ); if( entry1 > 0 ) info->reward_item_count.push_back( entry1 ); - uint8_t entry2 = getField< uint8_t >( row, i + 1462 ); + uint8_t entry2 = getField< uint8_t >( row, i + 1464 ); if( entry2 > 0 ) info->reward_item_stain.push_back( entry2 ); @@ -547,39 +547,39 @@ boost::shared_ptr< Core::Data::QuestInfo > for( uint32_t i = 0; i < 5; i++ ) { - uint32_t entry = getField< uint32_t >( row, i + 1469 ); + uint32_t entry = getField< uint32_t >( row, i + 1471 ); if( entry > 0 ) info->reward_item_optional.push_back( entry ); - uint8_t entry1 = getField< uint8_t >( row, i + 1474 ); + uint8_t entry1 = getField< uint8_t >( row, i + 1476 ); if( entry1 > 0 ) info->reward_item_optional_count.push_back( entry1 ); - uint8_t entry2 = getField< uint8_t >( row, i + 1484 ); + uint8_t entry2 = getField< uint8_t >( row, i + 1486 ); if( entry2 > 0 ) info->reward_item_optional_stain.push_back( entry2 ); } - info->reward_emote = getField< uint8_t >( row, 1489 ); - info->reward_action = getField< uint16_t >( row, 1490 ); - info->reward_action_general1 = getField< uint8_t >( row, 1491 ); - info->reward_action_general2 = getField< uint8_t >( row, 1492 ); - info->reward_other = getField< uint8_t >( row, 1494 ); + info->reward_emote = getField< uint8_t >( row, 1491 ); + info->reward_action = getField< uint16_t >( row, 1492 ); + info->reward_action_general1 = getField< uint8_t >( row, 1493 ); + info->reward_action_general2 = getField< uint8_t >( row, 1494 ); + info->reward_other = getField< uint8_t >( row, 1496 ); - info->instanced_content_unlock = getField< uint32_t >( row, 1497 ); + info->instanced_content_unlock = getField< uint32_t >( row, 1499 ); - info->reward_tome_type = getField< uint8_t >( row, 1499 ); - info->reward_tome_count = getField< uint8_t >( row, 1500 ); + info->reward_tome_type = getField< uint8_t >( row, 1501 ); + info->reward_tome_count = getField< uint8_t >( row, 1502 ); - info->reward_reputation = getField< uint8_t >( row, 1501 ); + info->reward_reputation = getField< uint8_t >( row, 1503 ); for( uint32_t i = 0; i < 50; i++ ) { - std::string entry = getField< std::string >( row, i + 47 ); + std::string entry = getField< std::string >( row, i + 49 ); if( entry.size() > 0 ) { info->script_entity.push_back( entry ); - uint32_t entry1 = getField< uint32_t >( row, i + 97 ); + uint32_t entry1 = getField< uint32_t >( row, i + 99 ); info->script_value.push_back( entry1 ); } } diff --git a/src/servers/Server_Common/Exd/ExdData.h b/src/servers/Server_Common/Exd/ExdData.h index f34e6b35..85c495ee 100644 --- a/src/servers/Server_Common/Exd/ExdData.h +++ b/src/servers/Server_Common/Exd/ExdData.h @@ -33,7 +33,7 @@ namespace Core { uint16_t map_id; int16_t discovery_index; bool is_two_byte; - uint8_t weather_rate; + uint16_t weather_rate; std::map< uint8_t, int32_t> weather_rate_map; int32_t aetheryte_index; diff --git a/src/servers/Server_Common/Network/PacketDef/Ipcs.h b/src/servers/Server_Common/Network/PacketDef/Ipcs.h index b4ade11c..cff0ef1b 100644 --- a/src/servers/Server_Common/Network/PacketDef/Ipcs.h +++ b/src/servers/Server_Common/Network/PacketDef/Ipcs.h @@ -44,88 +44,88 @@ namespace Packets { */ enum ServerZoneIpcType : uint16_t { - Ping = 0x0065, // updated for sb - Init = 0x0066, // updated for sb - Chat = 0x0067, // updated for sb + Ping = 0x0065, + Init = 0x0066, + Chat = 0x0067, ChatBanned = 0x006B, - Logout = 0x0077, // updated for sb + Logout = 0x0077, CFNotify = 0x0078, CFMemberStatus = 0x0079, CFDutyInfo = 0x007A, CFPlayerInNeed = 0x007F, - Playtime = 0x00AF, // updated for sb + Playtime = 0x00B9, // test update SocialRequestError = 0x00AD, - SocialRequestResponse = 0x11AF, - CFRegistered = 0x00B0, - SocialList = 0x00B4, // updated for sb - UpdateSearchInfo = 0x00B6, // updated for sb - InitSearchInfo = 0x00B7, // updated for sb - ServerNotice = 0x00BC, // updated for sb - SetOnlineStatus = 0x00BD, // updated for sb - BlackList = 0x00CA, // updated for sb - LogMessage = 0x00D0, // updated for sb - LinkshellList = 0x00D1, // updated for sb - StatusEffectList = 0x00F0, // updated for sb - Effect = 0x00F1, // updated for sb + SocialRequestResponse = 0x00BB, // updated 4.1 + CFRegistered = 0x00B8, // updated 4.1 + SocialList = 0x00BE, // updated 4.1 + UpdateSearchInfo = 0x10BB, + InitSearchInfo = 0x00BC, // updated 4.1 + ServerNotice = 0x00C6, // updated 4.1 + SetOnlineStatus = 0x00C7, // test update + BlackList = 0x00D4, // updated 4.1 + LogMessage = 0x00D0, + LinkshellList = 0x00D1, + StatusEffectList = 0x00F0, + Effect = 0x00F1, GCAffiliation = 0x00FC, - ActorSetPos = 0x0114, // updated for sb - ActorCast = 0x0116, // updated for sb - PlayerSpawn = 0x0110, // updated for sb - NpcSpawn = 0x0111, // updated for sb - ActorMove = 0x0112, // updated for sb - HateList = 0x011A, // updated for sb borked - UpdateClassInfo = 0x011D, // updated for sb - InitUI = 0x011E, // updated for sb - PlayerStats = 0x011F, // updated for sb - ActorOwner = 0x0120, // updated for sb - PlayerStateFlags = 0x0121, // updated for sb - PlayerClassInfo = 0x0123, // updated for sb - ModelEquip = 0x0124, // updated for sb - ItemInfo = 0x0139, // updated for sb - ContainerInfo = 0x013A, // updated for sb - InventoryTransactionFinish = 0x013B, // updated for sb - InventoryTransaction = 0x013C, // updated for sb - CurrencyCrystalInfo = 0x013D, + ActorSetPos = 0x0114, + ActorCast = 0x0116, + PlayerSpawn = 0x011C, // updated 4.1 + NpcSpawn = 0x011D, // updated 4.1 + ActorMove = 0x011E, // updated 4.1 + HateList = 0x011A, + UpdateClassInfo = 0x011D, + InitUI = 0x012B, // updated 4.1 + PlayerStats = 0x012C, // updated 4.1 + ActorOwner = 0x012D, // updated 4.1 + PlayerStateFlags = 0x013A, // updated 4.1 + PlayerClassInfo = 0x013B, // updated 4.1 + ModelEquip = 0x013C, // updated 4.1 + ItemInfo = 0x014C, // updated 4.1 + ContainerInfo = 0x014D, // updated 4.1 + InventoryTransactionFinish = 0x014E, // updated 4.1 + InventoryTransaction = 0x014F, // updated 4.1 + CurrencyCrystalInfo = 0x0150, // updated 4.1 InventoryActionAck = 0x1139, - UpdateInventorySlot = 0x0140, // updated for sb + UpdateInventorySlot = 0x0153, // updated 4.1 AddStatusEffect = 0x0141, - ActorControl142 = 0x0142, // unchanged for sb - ActorControl143 = 0x0143, // unchanged for sb - ActorControl144 = 0x0144, // unchanged for sb - UpdateHpMpTp = 0x0145, // unchanged for sb + ActorControl142 = 0x0142, + ActorControl143 = 0x0143, + ActorControl144 = 0x0144, + UpdateHpMpTp = 0x0145, - EventPlay = 0x0154, // updated for sb - EventStart = 0x015D, // updated for sb - EventFinish = 0x015E, // updated for sb + EventPlay = 0x0160, // updated 4.1 + EventStart = 0x0169, // updated 4.1 + EventFinish = 0x016A, // updated 4.1 EventLinkshell = 0x0169, - QuestActiveList = 0x0171, // updated for sb - QuestUpdate = 0x0172, // updated for sb - QuestCompleteList = 0x0173, // updated for sb - QuestFinish = 0x0174, // updated for sb + QuestActiveList = 0x017D, // updated 4.1 + QuestUpdate = 0x017E, // updated 4.1 + QuestCompleteList = 0x017F, // updated 4.1 + QuestFinish = 0x0180, // updated 4.1 QuestMessage = 0x0179, - QuestTracker = 0x0181, // updated for sb - ActorSpawn = 0x0190, // todo: split into playerspawn/actorspawn and use opcode 0x110/0x111 - ActorFreeSpawn = 0x0191, // unchanged for sb - InitZone = 0x019A, // unchanged for sb - WeatherChange = 0x01AF, // updated for sb - Discovery = 0x01B2, // updated for sb + QuestTracker = 0x0181, + ActorSpawn = 0x0190, + ActorFreeSpawn = 0x0191, + InitZone = 0x019A, + WeatherChange = 0x01AF, + Discovery = 0x01B2, EorzeaTimeOffset = 0x01B4, CFAvailableContents = 0x01CF, - PrepareZoning = 0x0239, // updated for sb + PrepareZoning = 0x0248, // updated 4.1 // Unknown IPC types that still need to be sent // TODO: figure all these out properly - IPCTYPE_UNK_320 = 0x1FB, - IPCTYPE_UNK_322 = 0x1FD, + IPCTYPE_UNK_320 = 0x0207, // updated 4.1 + IPCTYPE_UNK_322 = 0x0209, // updated 4.1 }; @@ -138,53 +138,53 @@ namespace Packets { { PingHandler = 0x0065, // updated for sb - InitHandler = 0x0066, // updated for sb - ChatHandler = 0x0067, // updated for sb + InitHandler = 0x0066, // updated 4.1 + ChatHandler = 0x00AD, // updated 4.1 - FinishLoadingHandler = 0x0069, // updated for sb + FinishLoadingHandler = 0x0069, // updated 4.1 CFCommenceHandler = 0x006F, CFRegisterDuty = 0x0071, CFRegisterRoulette = 0x0072, - PlayTimeHandler = 0x0073, // updated for sb - LogoutHandler = 0x0074, // updated for sb + PlayTimeHandler = 0x0073, // updated 4.1 + LogoutHandler = 0x0074, // updated 4.1 - CFDutyInfoHandler = 0x0078, + CFDutyInfoHandler = 0x0078, // updated 4.1 ?? - SocialReqSendHandler = 0x00A5, - SocialListHandler = 0x00AA, // updated for sb - SetSearchInfoHandler = 0x00AC, // updated for sb + SocialReqSendHandler = 0x00AE, // updated 4.1 + SocialListHandler = 0x00B3, // updated 4.1 + SetSearchInfoHandler = 0x00B5, // updated 4.1 - ReqSearchInfoHandler = 0x00AD, + ReqSearchInfoHandler = 0x00B6, // updated 4.1 - BlackListHandler = 0x00B7, // updated for sb + BlackListHandler = 0x00C0, // updated 4.1 - LinkshellListHandler = 0x00BF, // updated for sb + LinkshellListHandler = 0x00C8, // updated 4.1 - FcInfoReqHandler = 0x0100, // updated for sb + FcInfoReqHandler = 0x0109, // updated 4.1 - ZoneLineHandler = 0x0107, // updated for sb - ActionHandler = 0x0108, // updated for sb - DiscoveryHandler = 0x0109, // updated for sb + ZoneLineHandler = 0x0110, // updated 4.1 + ActionHandler = 0x0111, // updated 4.1 + DiscoveryHandler = 0x0112, // updated 4.1 - SkillHandler = 0x010B, // updated for sb - GMCommand1 = 0x010C, // updated for sb - GMCommand2 = 0x010D, // updated for sb - UpdatePositionHandler = 0x010F, // updated for sb + SkillHandler = 0x0114, // updated 4.1 + GMCommand1 = 0x0115, // updated 4.1 ?? + GMCommand2 = 0x0116, // updated 4.1 ?? + UpdatePositionHandler = 0x0118, // updated 4.1 - InventoryModifyHandler = 0x0116, // updated for sb + InventoryModifyHandler = 0x011F, // updated 4.1 - TalkEventHandler = 0x011F, // updated for sb - EmoteEventHandler = 0x0120, // updated for sb - WithinRangeEventHandler = 0x0121, // updated for sb - OutOfRangeEventHandler = 0x0122, // updated for sb - EnterTeriEventHandler = 0x0123, // updated for sb + TalkEventHandler = 0x0128, // updated 4.1 + EmoteEventHandler = 0x0129, // updated 4.1 + WithinRangeEventHandler = 0x012A, // updated 4.1 + OutOfRangeEventHandler = 0x012B, // updated 4.1 + EnterTeriEventHandler = 0x012C, // updated 4.1 - ReturnEventHandler = 0x0128, - TradeReturnEventHandler = 0x0129, + ReturnEventHandler = 0x0131, // updated 4.1 + TradeReturnEventHandler = 0x0132, // updated 4.1 - LinkshellEventHandler = 0x013B, - LinkshellEventHandler1 = 0x013C, + LinkshellEventHandler = 0x0144, // updated 4.1 ?? + LinkshellEventHandler1 = 0x0145, // updated 4.1 ?? }; ////////////////////////////////////////////////////////////////////////////////