1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-25 14:07:46 +00:00
sapphire/scripts/native/aetheryte/Aetheryte.cpp

70 lines
2 KiB
C++
Raw Normal View History

2017-12-12 17:29:31 +11:00
#include "../ScriptObject.h"
2017-12-12 18:03:06 +11:00
#define ACTION_ATTUNE 0x13
#define ACTION_TELEPORT 0x4
#define AetheryteBaseId 0x50000
#define AETHERYTE_MENU_AETHERNET 1
#define AETHERYTE_MENU_HOUSING 2
#define AETHERYTE_MENU_HOME_POINT 3
#define AETHERYTE_MENU_FAVORITE_POINT 4
#define AETHERYTE_MENU_FAVORITE_POINT_SECURITY_TOKEN 5
class Aetheryte : public EventScript
2017-12-12 17:29:31 +11:00
{
public:
Aetheryte() : EventScript( "Aetheryte", EVENTSCRIPT_AETHERYTE_ID )
2017-12-12 17:29:31 +11:00
{}
void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
2017-12-12 18:03:06 +11:00
{
if( player.isAetheryteRegistered( eventId & 0xFFFF ) )
{
player.eventPlay( eventId, 0, 1, []( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
{
if( param1 == 256 ) // set homepoint
{
player.setHomepoint( eventId & 0xFFFF );
player.sendQuestMessage( eventId, 2, 0xEA, 0, 0 );
}
else if( param1 == 512 ) // aethernet access
{
if( param2 == 4 )
2017-12-12 18:03:06 +11:00
{
player.teleport( param3, 2 );
2017-12-12 18:03:06 +11:00
}
else if( param2 == 2 ) // register favored destination
2017-12-12 18:03:06 +11:00
{
2017-12-12 18:03:06 +11:00
}
// else if( param2 == 0xC3E1 ) // register free destination
// {
//
// }
2017-12-12 18:03:06 +11:00
}
} );
}
else
{
player.eventActionStart( eventId, ACTION_ATTUNE, []( Entity::Player& player, uint32_t eventId, uint64_t additional )
{
player.registerAetheryte( eventId & 0xFFFF );
2017-12-12 17:29:31 +11:00
2017-12-12 18:03:06 +11:00
if( player.isActionLearned( ACTION_TELEPORT ) )
{
player.sendQuestMessage( eventId, 0, 2, 0, 0 );
}
else
{
player.sendQuestMessage( eventId, 0, 1, 1, 0 );
player.learnAction( ACTION_TELEPORT );
}
},
[] ( Entity::Player& player, uint32_t eventId, uint64_t additional )
2017-12-12 18:03:06 +11:00
{}, 0 );
}
}
2017-12-12 17:29:31 +11:00
};
EXPORT_SCRIPTOBJECT( Aetheryte )