diff --git a/deps/datReader/Exd/Structs.h b/deps/datReader/Exd/Structs.h index 115552d1..3eb20130 100644 --- a/deps/datReader/Exd/Structs.h +++ b/deps/datReader/Exd/Structs.h @@ -1808,14 +1808,14 @@ namespace Component::Excel uint8_t Event; uint8_t ConditionType; uint8_t ConditionOperator; - uint8_t VisibleCallback : 1; - uint8_t ConditionCallback : 1; - uint8_t BehaviorCallback : 1; - uint8_t ItemCallback : 1; - uint8_t TargetingPossibleCallback : 1; - uint8_t QualifiedCallback : 1; - uint8_t AnnounceCallback : 1; uint8_t AcceptCallback : 1; + uint8_t AnnounceCallback : 1; + uint8_t QualifiedCallback : 1; + uint8_t TargetingPossibleCallback : 1; + uint8_t ItemCallback : 1; + uint8_t BehaviorCallback : 1; + uint8_t ConditionCallback : 1; + uint8_t VisibleCallback : 1; }; /* 264322 */ diff --git a/src/scripts/quest/classquest/CNJ/ClsCnj000.cpp b/src/scripts/quest/classquest/CNJ/ClsCnj000.cpp index 9771a576..73a2a6e7 100644 --- a/src/scripts/quest/classquest/CNJ/ClsCnj000.cpp +++ b/src/scripts/quest/classquest/CNJ/ClsCnj000.cpp @@ -107,18 +107,12 @@ public: } case Enemy1: { - if( currentKC49 >= 3 ) + if( currentKC49 <= 3 ) { quest.setUI8BH( currentKC49 ); checkQuestCompletion( quest, player ); eventMgr().sendEventNotice( player, getId(), 2, 2, currentKC49, 3 ); } - else if( currentKC49 < 3 ) - { - quest.setUI8BH( currentKC49 ); - eventMgr().sendEventNotice( player, getId(), 2, 2, currentKC49, 3 ); - } - break; } case Enemy2: diff --git a/src/world/Actor/BNpc.cpp b/src/world/Actor/BNpc.cpp index d69294fa..1259f991 100644 --- a/src/world/Actor/BNpc.cpp +++ b/src/world/Actor/BNpc.cpp @@ -775,6 +775,10 @@ void Sapphire::Entity::BNpc::onDeath() m_timeOfDeath = Util::getTimeSeconds(); setOwner( nullptr ); + + auto& exdData = Common::Service< Data::ExdData >::ref(); + auto paramGrowthInfo = exdData.getRow< Component::Excel::ParamGrow >( m_level ); + for( auto& pHateEntry : m_hateList ) { // TODO: handle drops @@ -783,6 +787,7 @@ void Sapphire::Entity::BNpc::onDeath() { auto& playerMgr = Common::Service< World::Manager::PlayerMgr >::ref(); playerMgr.onMobKill( *pPlayer, static_cast< uint16_t >( m_bNpcNameId ), getLayoutId() ); + pPlayer->gainExp( paramGrowthInfo->data().BaseExp ); } } hateListClear();