1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-05-25 19:17:45 +00:00

more job gauge fixes, debug command to set raw gauge data

This commit is contained in:
collett 2020-03-15 22:52:23 +09:00
parent 381af61662
commit 44f6aa49e4
4 changed files with 35 additions and 1 deletions

View file

@ -1148,6 +1148,13 @@ namespace Sapphire::Common
Ruby = 3, Ruby = 3,
}; };
enum class BrdSong : uint8_t
{
Mage = 5,
Army = 0x0A,
Wanderer = 0x0F,
};
union JobGauge union JobGauge
{ {
struct struct
@ -1171,6 +1178,13 @@ namespace Sapphire::Common
uint8_t enochainState; uint8_t enochainState;
} blm; } blm;
struct struct
{
uint16_t songTimer;
uint8_t songStacks;
uint8_t unused;
BrdSong song;
} brd;
struct
{ {
uint8_t feathers; uint8_t feathers;
uint8_t esprit; uint8_t esprit;
@ -1186,13 +1200,16 @@ namespace Sapphire::Common
struct struct
{ {
uint8_t blood; uint8_t blood;
uint8_t unused;
uint16_t darksideTimer; uint16_t darksideTimer;
uint8_t darkArts; uint8_t darkArts;
uint8_t unused2;
uint16_t shadowTimer; uint16_t shadowTimer;
} drk; } drk;
struct struct
{ {
uint8_t ammo; uint8_t ammo;
uint8_t unused;
uint16_t maxTimerDuration; // what is this? uint16_t maxTimerDuration; // what is this?
uint8_t ammoComboStep; uint8_t ammoComboStep;
} gnb; } gnb;
@ -1208,6 +1225,7 @@ namespace Sapphire::Common
struct struct
{ {
uint8_t greasedLightningTimer; uint8_t greasedLightningTimer;
uint8_t unused;
uint8_t greasedLightningStacks; uint8_t greasedLightningStacks;
uint8_t chakra; uint8_t chakra;
uint8_t greasedLightningTimerFreezed; uint8_t greasedLightningTimerFreezed;
@ -1241,7 +1259,7 @@ namespace Sapphire::Common
uint16_t unused; uint16_t unused;
uint8_t aetherflowStacks; uint8_t aetherflowStacks;
uint8_t fairyGauge; uint8_t fairyGauge;
uint8_t seraphTimer; uint16_t seraphTimer;
SchDismissedFairy dismissedFairy; SchDismissedFairy dismissedFairy;
} sch; } sch;
struct struct

View file

@ -2260,6 +2260,12 @@ void Sapphire::Entity::Player::sendActorGauge()
queuePacket( pPacket ); queuePacket( pPacket );
} }
void Sapphire::Entity::Player::gaugeSetRaw( uint8_t* pData )
{
std::memcpy( &m_gauge, pData, 15 );
sendActorGauge();
}
void Sapphire::Entity::Player::gaugeWarSetIb( uint8_t value ) void Sapphire::Entity::Player::gaugeWarSetIb( uint8_t value )
{ {
assert( value >= 0 && value <= 100 ); assert( value >= 0 && value <= 100 );

View file

@ -975,6 +975,7 @@ namespace Sapphire::Entity
////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////
void gaugeClear(); void gaugeClear();
void sendActorGauge(); void sendActorGauge();
void gaugeSetRaw( uint8_t* pData );
void gaugeWarSetIb( uint8_t value ); void gaugeWarSetIb( uint8_t value );
uint8_t gaugeWarGetIb(); uint8_t gaugeWarGetIb();

View file

@ -361,6 +361,15 @@ void Sapphire::World::Manager::DebugCommandMgr::set( char* data, Entity::Player&
} }
} }
} }
else if( subCommand == "gauge" )
{
uint8_t values[15];
std::memset( values, 0, sizeof( values ) );
sscanf( params.c_str(), "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d",
&values[0], &values[1], &values[2], &values[3], &values[4], &values[5], &values[6], &values[7], &values[8],
&values[9], &values[10], &values[11], &values[12], &values[13], &values[14] );
player.gaugeSetRaw( values );
}
else if( subCommand == "visual" ) else if( subCommand == "visual" )
{ {
int32_t id; int32_t id;