1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-26 06:27:45 +00:00

First batch of fixes for 4.1, still quite a few hickups

This commit is contained in:
Mordred 2017-10-10 18:51:17 +02:00
parent 280bd3081b
commit 1cbb8d3577
4 changed files with 112 additions and 112 deletions

@ -1 +1 @@
Subproject commit 376501b8f441bd6b6e75b1960b118aabd72fca9d Subproject commit c71860d79596a93e5668169ac3f0309397c7218c

View file

@ -85,7 +85,7 @@ bool Core::Data::ExdData::loadZoneInfo()
int16_t map_index = getField< int16_t >( mapDataFields, 12 ); int16_t map_index = getField< int16_t >( mapDataFields, 12 );
bool is_two_bytes = getField< bool >( mapDataFields, 15 ); 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 ); auto weatherRateFields = weatherRate.get_row( weather_rate );
int32_t aetheryte_index = getField< int32_t >( fields, 20 ); 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->quest_level = getField< uint16_t >( row, 4 );
info->enpc_resident_start = getField< uint32_t >( row, 38 ); info->enpc_resident_start = getField< uint32_t >( row, 40 );
info->enpc_resident_end = 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_exp_factor = getField< uint16_t >( row, 1439 );
info->reward_gil = getField< uint32_t >( row, 1438 ); info->reward_gil = getField< uint32_t >( row, 1440 );
info->reward_gc_seals = getField< uint16_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++ ) 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 ) if( entry > 0 )
info->reward_item.push_back( entry ); 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 ) if( entry1 > 0 )
info->reward_item_count.push_back( entry1 ); 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 ) if( entry2 > 0 )
info->reward_item_stain.push_back( entry2 ); 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++ ) 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 ) if( entry > 0 )
info->reward_item_optional.push_back( entry ); 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 ) if( entry1 > 0 )
info->reward_item_optional_count.push_back( entry1 ); 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 ) if( entry2 > 0 )
info->reward_item_optional_stain.push_back( entry2 ); info->reward_item_optional_stain.push_back( entry2 );
} }
info->reward_emote = getField< uint8_t >( row, 1489 ); info->reward_emote = getField< uint8_t >( row, 1491 );
info->reward_action = getField< uint16_t >( row, 1490 ); info->reward_action = getField< uint16_t >( row, 1492 );
info->reward_action_general1 = getField< uint8_t >( row, 1491 ); info->reward_action_general1 = getField< uint8_t >( row, 1493 );
info->reward_action_general2 = getField< uint8_t >( row, 1492 ); info->reward_action_general2 = getField< uint8_t >( row, 1494 );
info->reward_other = 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_type = getField< uint8_t >( row, 1501 );
info->reward_tome_count = getField< uint8_t >( row, 1500 ); 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++ ) 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 ) if( entry.size() > 0 )
{ {
info->script_entity.push_back( entry ); 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 ); info->script_value.push_back( entry1 );
} }
} }

View file

@ -33,7 +33,7 @@ namespace Core {
uint16_t map_id; uint16_t map_id;
int16_t discovery_index; int16_t discovery_index;
bool is_two_byte; bool is_two_byte;
uint8_t weather_rate; uint16_t weather_rate;
std::map< uint8_t, int32_t> weather_rate_map; std::map< uint8_t, int32_t> weather_rate_map;
int32_t aetheryte_index; int32_t aetheryte_index;

View file

@ -44,88 +44,88 @@ namespace Packets {
*/ */
enum ServerZoneIpcType : uint16_t enum ServerZoneIpcType : uint16_t
{ {
Ping = 0x0065, // updated for sb Ping = 0x0065,
Init = 0x0066, // updated for sb Init = 0x0066,
Chat = 0x0067, // updated for sb Chat = 0x0067,
ChatBanned = 0x006B, ChatBanned = 0x006B,
Logout = 0x0077, // updated for sb Logout = 0x0077,
CFNotify = 0x0078, CFNotify = 0x0078,
CFMemberStatus = 0x0079, CFMemberStatus = 0x0079,
CFDutyInfo = 0x007A, CFDutyInfo = 0x007A,
CFPlayerInNeed = 0x007F, CFPlayerInNeed = 0x007F,
Playtime = 0x00AF, // updated for sb Playtime = 0x00B9, // test update
SocialRequestError = 0x00AD, SocialRequestError = 0x00AD,
SocialRequestResponse = 0x11AF, SocialRequestResponse = 0x00BB, // updated 4.1
CFRegistered = 0x00B0, CFRegistered = 0x00B8, // updated 4.1
SocialList = 0x00B4, // updated for sb SocialList = 0x00BE, // updated 4.1
UpdateSearchInfo = 0x00B6, // updated for sb UpdateSearchInfo = 0x10BB,
InitSearchInfo = 0x00B7, // updated for sb InitSearchInfo = 0x00BC, // updated 4.1
ServerNotice = 0x00BC, // updated for sb ServerNotice = 0x00C6, // updated 4.1
SetOnlineStatus = 0x00BD, // updated for sb SetOnlineStatus = 0x00C7, // test update
BlackList = 0x00CA, // updated for sb BlackList = 0x00D4, // updated 4.1
LogMessage = 0x00D0, // updated for sb LogMessage = 0x00D0,
LinkshellList = 0x00D1, // updated for sb LinkshellList = 0x00D1,
StatusEffectList = 0x00F0, // updated for sb StatusEffectList = 0x00F0,
Effect = 0x00F1, // updated for sb Effect = 0x00F1,
GCAffiliation = 0x00FC, GCAffiliation = 0x00FC,
ActorSetPos = 0x0114, // updated for sb ActorSetPos = 0x0114,
ActorCast = 0x0116, // updated for sb ActorCast = 0x0116,
PlayerSpawn = 0x0110, // updated for sb PlayerSpawn = 0x011C, // updated 4.1
NpcSpawn = 0x0111, // updated for sb NpcSpawn = 0x011D, // updated 4.1
ActorMove = 0x0112, // updated for sb ActorMove = 0x011E, // updated 4.1
HateList = 0x011A, // updated for sb borked HateList = 0x011A,
UpdateClassInfo = 0x011D, // updated for sb UpdateClassInfo = 0x011D,
InitUI = 0x011E, // updated for sb InitUI = 0x012B, // updated 4.1
PlayerStats = 0x011F, // updated for sb PlayerStats = 0x012C, // updated 4.1
ActorOwner = 0x0120, // updated for sb ActorOwner = 0x012D, // updated 4.1
PlayerStateFlags = 0x0121, // updated for sb PlayerStateFlags = 0x013A, // updated 4.1
PlayerClassInfo = 0x0123, // updated for sb PlayerClassInfo = 0x013B, // updated 4.1
ModelEquip = 0x0124, // updated for sb ModelEquip = 0x013C, // updated 4.1
ItemInfo = 0x0139, // updated for sb ItemInfo = 0x014C, // updated 4.1
ContainerInfo = 0x013A, // updated for sb ContainerInfo = 0x014D, // updated 4.1
InventoryTransactionFinish = 0x013B, // updated for sb InventoryTransactionFinish = 0x014E, // updated 4.1
InventoryTransaction = 0x013C, // updated for sb InventoryTransaction = 0x014F, // updated 4.1
CurrencyCrystalInfo = 0x013D, CurrencyCrystalInfo = 0x0150, // updated 4.1
InventoryActionAck = 0x1139, InventoryActionAck = 0x1139,
UpdateInventorySlot = 0x0140, // updated for sb UpdateInventorySlot = 0x0153, // updated 4.1
AddStatusEffect = 0x0141, AddStatusEffect = 0x0141,
ActorControl142 = 0x0142, // unchanged for sb ActorControl142 = 0x0142,
ActorControl143 = 0x0143, // unchanged for sb ActorControl143 = 0x0143,
ActorControl144 = 0x0144, // unchanged for sb ActorControl144 = 0x0144,
UpdateHpMpTp = 0x0145, // unchanged for sb UpdateHpMpTp = 0x0145,
EventPlay = 0x0154, // updated for sb EventPlay = 0x0160, // updated 4.1
EventStart = 0x015D, // updated for sb EventStart = 0x0169, // updated 4.1
EventFinish = 0x015E, // updated for sb EventFinish = 0x016A, // updated 4.1
EventLinkshell = 0x0169, EventLinkshell = 0x0169,
QuestActiveList = 0x0171, // updated for sb QuestActiveList = 0x017D, // updated 4.1
QuestUpdate = 0x0172, // updated for sb QuestUpdate = 0x017E, // updated 4.1
QuestCompleteList = 0x0173, // updated for sb QuestCompleteList = 0x017F, // updated 4.1
QuestFinish = 0x0174, // updated for sb QuestFinish = 0x0180, // updated 4.1
QuestMessage = 0x0179, QuestMessage = 0x0179,
QuestTracker = 0x0181, // updated for sb QuestTracker = 0x0181,
ActorSpawn = 0x0190, // todo: split into playerspawn/actorspawn and use opcode 0x110/0x111 ActorSpawn = 0x0190,
ActorFreeSpawn = 0x0191, // unchanged for sb ActorFreeSpawn = 0x0191,
InitZone = 0x019A, // unchanged for sb InitZone = 0x019A,
WeatherChange = 0x01AF, // updated for sb WeatherChange = 0x01AF,
Discovery = 0x01B2, // updated for sb Discovery = 0x01B2,
EorzeaTimeOffset = 0x01B4, EorzeaTimeOffset = 0x01B4,
CFAvailableContents = 0x01CF, CFAvailableContents = 0x01CF,
PrepareZoning = 0x0239, // updated for sb PrepareZoning = 0x0248, // updated 4.1
// Unknown IPC types that still need to be sent // Unknown IPC types that still need to be sent
// TODO: figure all these out properly // TODO: figure all these out properly
IPCTYPE_UNK_320 = 0x1FB, IPCTYPE_UNK_320 = 0x0207, // updated 4.1
IPCTYPE_UNK_322 = 0x1FD, IPCTYPE_UNK_322 = 0x0209, // updated 4.1
}; };
@ -138,53 +138,53 @@ namespace Packets {
{ {
PingHandler = 0x0065, // updated for sb PingHandler = 0x0065, // updated for sb
InitHandler = 0x0066, // updated for sb InitHandler = 0x0066, // updated 4.1
ChatHandler = 0x0067, // updated for sb ChatHandler = 0x00AD, // updated 4.1
FinishLoadingHandler = 0x0069, // updated for sb FinishLoadingHandler = 0x0069, // updated 4.1
CFCommenceHandler = 0x006F, CFCommenceHandler = 0x006F,
CFRegisterDuty = 0x0071, CFRegisterDuty = 0x0071,
CFRegisterRoulette = 0x0072, CFRegisterRoulette = 0x0072,
PlayTimeHandler = 0x0073, // updated for sb PlayTimeHandler = 0x0073, // updated 4.1
LogoutHandler = 0x0074, // updated for sb LogoutHandler = 0x0074, // updated 4.1
CFDutyInfoHandler = 0x0078, CFDutyInfoHandler = 0x0078, // updated 4.1 ??
SocialReqSendHandler = 0x00A5, SocialReqSendHandler = 0x00AE, // updated 4.1
SocialListHandler = 0x00AA, // updated for sb SocialListHandler = 0x00B3, // updated 4.1
SetSearchInfoHandler = 0x00AC, // updated for sb 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 ZoneLineHandler = 0x0110, // updated 4.1
ActionHandler = 0x0108, // updated for sb ActionHandler = 0x0111, // updated 4.1
DiscoveryHandler = 0x0109, // updated for sb DiscoveryHandler = 0x0112, // updated 4.1
SkillHandler = 0x010B, // updated for sb SkillHandler = 0x0114, // updated 4.1
GMCommand1 = 0x010C, // updated for sb GMCommand1 = 0x0115, // updated 4.1 ??
GMCommand2 = 0x010D, // updated for sb GMCommand2 = 0x0116, // updated 4.1 ??
UpdatePositionHandler = 0x010F, // updated for sb UpdatePositionHandler = 0x0118, // updated 4.1
InventoryModifyHandler = 0x0116, // updated for sb InventoryModifyHandler = 0x011F, // updated 4.1
TalkEventHandler = 0x011F, // updated for sb TalkEventHandler = 0x0128, // updated 4.1
EmoteEventHandler = 0x0120, // updated for sb EmoteEventHandler = 0x0129, // updated 4.1
WithinRangeEventHandler = 0x0121, // updated for sb WithinRangeEventHandler = 0x012A, // updated 4.1
OutOfRangeEventHandler = 0x0122, // updated for sb OutOfRangeEventHandler = 0x012B, // updated 4.1
EnterTeriEventHandler = 0x0123, // updated for sb EnterTeriEventHandler = 0x012C, // updated 4.1
ReturnEventHandler = 0x0128, ReturnEventHandler = 0x0131, // updated 4.1
TradeReturnEventHandler = 0x0129, TradeReturnEventHandler = 0x0132, // updated 4.1
LinkshellEventHandler = 0x013B, LinkshellEventHandler = 0x0144, // updated 4.1 ??
LinkshellEventHandler1 = 0x013C, LinkshellEventHandler1 = 0x0145, // updated 4.1 ??
}; };
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////