mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-26 06:27:45 +00:00
add classjob check to casting actions
This commit is contained in:
parent
3099189cf2
commit
0ceb18a8e1
1 changed files with 20 additions and 1 deletions
|
@ -6,6 +6,7 @@
|
||||||
#include "Actor/Player.h"
|
#include "Actor/Player.h"
|
||||||
|
|
||||||
#include <Exd/ExdDataGenerated.h>
|
#include <Exd/ExdDataGenerated.h>
|
||||||
|
#include "Framework.h"
|
||||||
|
|
||||||
using namespace Sapphire;
|
using namespace Sapphire;
|
||||||
|
|
||||||
|
@ -20,6 +21,9 @@ void World::Manager::ActionMgr::handleAoEPlayerAction( Entity::Player& player, u
|
||||||
Common::FFXIVARR_POSITION3 pos )
|
Common::FFXIVARR_POSITION3 pos )
|
||||||
{
|
{
|
||||||
player.sendDebug( "got aoe act: {0}", actionData->name );
|
player.sendDebug( "got aoe act: {0}", actionData->name );
|
||||||
|
|
||||||
|
auto action = Action::make_Action( player.getAsPlayer(), actionId, actionData, framework() );
|
||||||
|
action->setType( static_cast< Common::HandleActionType >( type ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
void World::Manager::ActionMgr::handleTargetedPlayerAction( Entity::Player& player, uint8_t type,
|
void World::Manager::ActionMgr::handleTargetedPlayerAction( Entity::Player& player, uint8_t type,
|
||||||
|
@ -68,7 +72,22 @@ bool World::Manager::ActionMgr::canPlayerUseAction( Entity::Player& player,
|
||||||
if( actionData.classJob == -1 )
|
if( actionData.classJob == -1 )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// todo: check class/job reqs
|
if( player.getLevel() < actionData.classJobLevel )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if( player.getClass() != static_cast< Common::ClassJob >( actionData.classJob ) )
|
||||||
|
{
|
||||||
|
// check if not a base class action
|
||||||
|
auto exdData = framework()->get< Data::ExdDataGenerated >();
|
||||||
|
assert( exdData );
|
||||||
|
|
||||||
|
auto classJob = exdData->get< Data::ClassJob >( static_cast< uint8_t >( player.getClass() ) );
|
||||||
|
if( !classJob )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if( classJob->classJobParent != actionData.classJob )
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// todo: min tp
|
// todo: min tp
|
||||||
// todo: min mp
|
// todo: min mp
|
||||||
|
|
Loading…
Add table
Reference in a new issue