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

add status entries to EffectResult packet

This commit is contained in:
NotAdam 2019-07-21 17:44:29 +10:00
parent d5f4e7a2b8
commit 0b6ee6e265
2 changed files with 21 additions and 13 deletions

View file

@ -349,14 +349,19 @@ namespace Sapphire::Network::Packets::Server
uint32_t max_hp;
uint16_t max_mp;
uint16_t max_something;
uint8_t effect_index; // which position do i display this
uint8_t unknown3;
uint16_t effect_id;
uint16_t param;
uint16_t unknown5; // Sort this out (old right half of power/param property)
float duration;
uint32_t actor_id1;
uint8_t unknown4[52];
struct StatusEntry
{
uint8_t index; // which position do i display this
uint8_t unknown3;
uint16_t id;
uint16_t param;
uint16_t unknown5; // Sort this out (old right half of power/param property)
float duration;
uint32_t sourceActorId;
} statusEntries[4];
uint32_t unknown4;
};
/**

View file

@ -460,18 +460,21 @@ void Sapphire::Entity::Chara::addStatusEffect( StatusEffect::StatusEffectPtr pEf
auto statusEffectAdd = makeZonePacket< FFXIVIpcEffectResult >( getId() );
statusEffectAdd->data().actor_id = pEffect->getTargetActorId();
statusEffectAdd->data().actor_id1 = pEffect->getSrcActorId();
statusEffectAdd->data().current_hp = getHp();
statusEffectAdd->data().current_mp = getMp();
statusEffectAdd->data().current_tp = getTp();
statusEffectAdd->data().duration = static_cast< float >( pEffect->getDuration() ) / 1000;
statusEffectAdd->data().effect_id = pEffect->getId();
statusEffectAdd->data().effect_index = nextSlot;
statusEffectAdd->data().max_hp = getMaxHp();
statusEffectAdd->data().max_mp = getMaxMp();
statusEffectAdd->data().max_something = 1;
//statusEffectAdd->data().unknown2 = 28;
statusEffectAdd->data().param = pEffect->getParam();
auto& status = statusEffectAdd->data().statusEntries[0];
status.sourceActorId = pEffect->getSrcActorId();
status.duration = static_cast< float >( pEffect->getDuration() ) / 1000;
status.id = pEffect->getId();
status.index = nextSlot;
status.param = pEffect->getParam();
sendToInRangeSet( statusEffectAdd, isPlayer() );
}