1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-30 16:17:46 +00:00

Effect IPC updated; Definitions for status effect exd;

This commit is contained in:
Maru 2017-10-10 23:08:52 -03:00
parent 3288ed7ca8
commit dcf38ce2ac
3 changed files with 32 additions and 4 deletions

View file

@ -136,6 +136,16 @@ bool Core::Data::ExdData::loadStatusEffectInfo()
StatusEffectInfo info { 0 }; StatusEffectInfo info { 0 };
info.id = id; info.id = id;
info.name = getField< std::string >( fields, 0 ); info.name = getField< std::string >( fields, 0 );
info.lock_movement = getField< bool >( fields, 7 ); // 7
info.lock_actions = getField< bool >( fields, 9 ); // 9
info.lock_control = getField< bool >( fields, 10 ); // 10
info.transfiguration = getField< bool >( fields, 11 ); // 11
info.can_dispel = getField< bool >( fields, 13 ); // 13
info.is_permanent = getField< bool >( fields, 15 ); // 15
info.inflicted_by_actor = getField< bool >( fields, 17 ); // 17
info.is_fc_buff = getField< bool >( fields, 21 ); // 21
info.invisibility = getField< bool >( fields, 22 ); // 22
m_statusEffectInfoMap[id] = info; m_statusEffectInfoMap[id] = info;
} }
@ -355,6 +365,9 @@ bool Core::Data::ExdData::loadActionInfo()
uint16_t toggle_status_id = getField< uint16_t >( fields, 42 ); // 42 uint16_t toggle_status_id = getField< uint16_t >( fields, 42 ); // 42
bool affects_position = getField< bool >( fields, 47 ); // 47 bool affects_position = getField< bool >( fields, 47 ); // 47
bool no_effect_in_battle = getField< bool >( fields, 60 ); // 60
info->id = id; info->id = id;
info->name = name; info->name = name;
info->category = category; info->category = category;
@ -389,6 +402,8 @@ bool Core::Data::ExdData::loadActionInfo()
info->toggle_status_id = toggle_status_id; info->toggle_status_id = toggle_status_id;
info->affects_position = affects_position; info->affects_position = affects_position;
info->no_effect_in_battle = no_effect_in_battle;
// If action type is SingleTarget with an AoE radius set, or if action type isn't SingleTarget // If action type is SingleTarget with an AoE radius set, or if action type isn't SingleTarget
info->is_aoe = ( info->aoe_type == 1 && info->aoe_width != 0 ) || ( info->aoe_type != 1 ); info->is_aoe = ( info->aoe_type == 1 && info->aoe_width != 0 ) || ( info->aoe_type != 1 );

View file

@ -255,7 +255,11 @@ namespace Core {
bool affects_position; // 47 bool affects_position; // 47
bool no_effect_in_battle; // 60
bool is_aoe; // Internal only bool is_aoe; // Internal only
}; };
struct EventItemInfo struct EventItemInfo
@ -270,6 +274,15 @@ namespace Core {
{ {
uint32_t id; uint32_t id;
std::string name; // 0 std::string name; // 0
bool lock_movement; // 7
bool lock_actions; // 9
bool lock_control; // 10
bool transfiguration; // 11
bool can_dispel; // 13
bool is_permanent; // 15
bool inflicted_by_actor; // 17
bool is_fc_buff; // 21
bool invisibility; // 22
}; };
class ExdData class ExdData

View file

@ -66,8 +66,8 @@ namespace Packets {
BlackList = 0x00D4, // updated 4.1 BlackList = 0x00D4, // updated 4.1
LogMessage = 0x00D0, LogMessage = 0x00D0,
LinkshellList = 0x00D1, LinkshellList = 0x00D1,
StatusEffectList = 0x00FA, StatusEffectList = 0x00FA, // updated 4.1
Effect = 0x00F1, Effect = 0x00FB, // updated 4.1
GCAffiliation = 0x00FC, GCAffiliation = 0x00FC,
ActorSetPos = 0x0114, ActorSetPos = 0x0114,
@ -94,7 +94,7 @@ namespace Packets {
ActorControl142 = 0x0142, ActorControl142 = 0x0142,
ActorControl143 = 0x0143, ActorControl143 = 0x0143,
ActorControl144 = 0x0144, ActorControl144 = 0x0144,
UpdateHpMpTp = 0x0145, UpdateHpMpTp = 0x0145, // updated 4.1