1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-25 14:07:46 +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 );
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 );
}
}

View file

@ -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;

View file

@ -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 ??
};
////////////////////////////////////////////////////////////////////////////////