mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-06-03 22:57:45 +00:00
Merge ec6729ebbd
into b36402119e
This commit is contained in:
commit
38e4ca6c0f
387 changed files with 12776 additions and 2916 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -113,7 +113,7 @@ src/common/Version\.cpp
|
|||
.mtime_cache
|
||||
|
||||
# generated script loader files
|
||||
src/servers/sapphire_zone/Script/Scripts/*/ScriptLoader.cpp
|
||||
src/servers/Scripts/*/ScriptLoader.cpp
|
||||
|
||||
# cotire generated files/folders
|
||||
cotire/
|
||||
|
|
|
@ -51,5 +51,6 @@ add_subdirectory( "src/tools/exd_common_gen" )
|
|||
add_subdirectory( "src/tools/exd_struct_gen" )
|
||||
add_subdirectory( "src/tools/exd_struct_test" )
|
||||
add_subdirectory( "src/tools/quest_parser" )
|
||||
add_subdirectory( "src/tools/discovery_parser" )
|
||||
#add_subdirectory("src/tools/pcb_reader")
|
||||
#add_subdirectory("src/tools/event_object_parser")
|
||||
|
|
|
@ -47,3 +47,7 @@ ALTER TABLE `charainfo` CHANGE `Mounts` `Mounts` BINARY(15) NULL DEFAULT NULL;
|
|||
ALTER TABLE `charainfo` CHANGE `Orchestrion` `Orchestrion` BINARY(40) NULL DEFAULT NULL;
|
||||
ALTER TABLE `charainfo` CHANGE `Minions` `Minions` BINARY(37) NULL DEFAULT NULL;
|
||||
ALTER TABLE `charainfo` CHANGE `QuestCompleteFlags` `QuestCompleteFlags` VARBINARY(396) NULL DEFAULT NULL;
|
||||
ALTER TABLE `charainfo` ADD COLUMN `EquipDisplayFlags` INT(3) NULL DEFAULT '0' AFTER `GMRank`;
|
||||
|
||||
ALTER TABLE `charainfofriendlist` CHANGE `CharacterId` `ContentId` bigint(20) NULL DEFAULT NULL;
|
||||
ALTER TABLE `charainfofriendlist` CHANGE `CharacterIdList` `ContentIdList` blob NULL DEFAULT NULL;
|
4422
sql/update_discovery.sql
Normal file
4422
sql/update_discovery.sql
Normal file
File diff suppressed because it is too large
Load diff
|
@ -481,6 +481,8 @@ namespace Core {
|
|||
|
||||
RemoveName = 0xA8,
|
||||
|
||||
SetBGM = 0xA1,
|
||||
|
||||
ScreenFadeOut = 0xAA,
|
||||
|
||||
ZoneIn = 0xC8,
|
||||
|
@ -560,9 +562,11 @@ namespace Core {
|
|||
SetFavorite = 0x1FC,
|
||||
LearnTeleport = 0x1FD,
|
||||
|
||||
ArmoryErrorMsg = 0x201,
|
||||
|
||||
AchievementPopup = 0x203,
|
||||
SetStatusIcon = 0x1F8,
|
||||
LimitBreakGauge = 0x1F9, // Max level, amount, build type (chop sound), lb type(0=pve lb 1=pvp lb)
|
||||
SetHomepoint = 0x1FB,
|
||||
SetFavorite = 0x1FC,
|
||||
LearnTeleport = 0x1FD,
|
||||
|
||||
Unk7 = 0x205, // LogMessage?
|
||||
AchievementMsg = 0x206,
|
||||
|
@ -586,126 +590,38 @@ namespace Core {
|
|||
Dismount = 0x3a0
|
||||
};
|
||||
|
||||
enum struct ChatType : uint16_t
|
||||
{
|
||||
LogKindError,
|
||||
ServerDebug,
|
||||
ServerUrgent,
|
||||
ServerNotice,
|
||||
Unused4,
|
||||
Unused5,
|
||||
Unused6,
|
||||
Unused7,
|
||||
Unused8,
|
||||
Unused9,
|
||||
Say,
|
||||
Shout,
|
||||
Tell,
|
||||
TellReceive,
|
||||
Party,
|
||||
Alliance,
|
||||
LS1,
|
||||
LS2,
|
||||
LS3,
|
||||
LS4,
|
||||
LS5,
|
||||
LS6,
|
||||
LS7,
|
||||
LS8,
|
||||
FreeCompany,
|
||||
Unused25,
|
||||
Unused26,
|
||||
NoviceNetwork,
|
||||
CustomEmote,
|
||||
StandardEmote,
|
||||
Yell,
|
||||
Unknown31,
|
||||
PartyUnk2,
|
||||
Unused33,
|
||||
Unused34,
|
||||
Unused35,
|
||||
Unused36,
|
||||
Unused37,
|
||||
Unused38,
|
||||
Unused39,
|
||||
Unused40,
|
||||
BattleDamage,
|
||||
BattleFailed,
|
||||
BattleActions,
|
||||
BattleItems,
|
||||
BattleHealing,
|
||||
BattleBeneficial,
|
||||
BattleDetrimental,
|
||||
BattleUnk48,
|
||||
BattleUnk49,
|
||||
Unused50,
|
||||
Unused51,
|
||||
Unused52,
|
||||
Unused53,
|
||||
Unused54,
|
||||
Unused55,
|
||||
Echo,
|
||||
SystemMessage,
|
||||
SystemErrorMessage,
|
||||
BattleSystem,
|
||||
GatheringSystem,
|
||||
NPCMessage,
|
||||
LootMessage,
|
||||
Unused63,
|
||||
CharProgress,
|
||||
Loot,
|
||||
Crafting,
|
||||
Gathering,
|
||||
NPCAnnouncement,
|
||||
FCAnnouncement,
|
||||
FCLogin,
|
||||
RetainerSale,
|
||||
PartySearch,
|
||||
PCSign,
|
||||
DiceRoll,
|
||||
NoviceNetworkNotice,
|
||||
Unknown76,
|
||||
Unused77,
|
||||
Unused78,
|
||||
Unused79,
|
||||
GMTell,
|
||||
GMSay,
|
||||
GMShout,
|
||||
GMYell,
|
||||
GMParty,
|
||||
GMFreeCompany,
|
||||
GMLS1,
|
||||
GMLS2,
|
||||
GMLS3,
|
||||
GMLS4,
|
||||
GMLS5,
|
||||
GMLS6,
|
||||
GMLS7,
|
||||
GMLS8,
|
||||
GMNoviceNetwork,
|
||||
Unused95,
|
||||
Unused96,
|
||||
Unused97,
|
||||
Unused98,
|
||||
Unused99,
|
||||
Unused100
|
||||
};
|
||||
SetFestival = 0x386, // param1: festival.exd index
|
||||
|
||||
enum EquipDisplayFlags : uint8_t
|
||||
{
|
||||
HideNothing = 0x0,
|
||||
HideHead = 0x1,
|
||||
HideWeapon = 0x2,
|
||||
LegacyMark = 0x4,
|
||||
ToggleOrchestrionUnlock = 0x396,
|
||||
Dismount = 0x3A0,
|
||||
|
||||
// Duty Recorder
|
||||
BeginReplayAck = 0x3A1,
|
||||
EndReplayAck = 0x3A2,
|
||||
|
||||
// PvP Duel
|
||||
SetPvPState = 0x5E0, // param3 must be 6 to engage a duel (hardcoded in the client)
|
||||
EndDuelSession = 0x5E1, // because someone went oob?
|
||||
StartDuelCountdown = 0x5E2, // begins a countdown; also does some duel bgm thing.
|
||||
StartDuel = 0x5E3, // actually all it does is set the challenger actor id;
|
||||
DuelResultScreen = 0x5E4, // win/lose thing, also reset a target id just like what EndDuelSession does.
|
||||
|
||||
// Duty Action
|
||||
SetDutyActionId = 0x5E8, // ContentExAction
|
||||
SetDutyActionHud = 0x5E9, // disable/enable
|
||||
SetDutyActionActive = 0x5EA,
|
||||
SetDutyActionRemaining = 0x5EB,
|
||||
};
|
||||
|
||||
Visor = 0x40,
|
||||
};
|
||||
|
||||
enum SkillType : uint8_t
|
||||
{
|
||||
Normal = 0x1,
|
||||
MountSkill = 0xD,
|
||||
};
|
||||
enum EquipDisplayFlags : uint8_t
|
||||
{
|
||||
HideNothing = 0x0,
|
||||
HideHead = 0x1,
|
||||
HideWeapon = 0x2,
|
||||
HideLegacyMark = 0x4,
|
||||
|
||||
enum SocialCategory : uint8_t
|
||||
{
|
||||
|
@ -734,9 +650,9 @@ namespace Core {
|
|||
|
||||
enum class SocialRequestResponse : uint8_t
|
||||
{
|
||||
Decline,
|
||||
Accept,
|
||||
Cancel,
|
||||
Decline = 0,
|
||||
Accept = 1,
|
||||
Cancel = 2
|
||||
};
|
||||
|
||||
typedef std::vector< PlayerStateFlag > PlayerStateFlagList;
|
||||
|
|
|
@ -29,7 +29,7 @@ void Core::Db::CharaDbConnection::doPrepareStatements()
|
|||
"FavoritePoint, RestPoint, StartTown, ActiveTitle, TitleList, Achievement, "
|
||||
"Aetheryte, HowTo, Minions, Mounts, Orchestrion, EquippedMannequin, ConfigFlags, "
|
||||
"QuestCompleteFlags, OpeningSequence, QuestTracking, GrandCompany, "
|
||||
"GrandCompanyRank, Discovery, GMRank, Unlocks, CFPenaltyUntil "
|
||||
"GrandCompanyRank, Discovery, GMRank, EquipDisplayFlags, Unlocks, CFPenaltyUntil "
|
||||
"FROM charainfo WHERE CharacterId = ?;", CONNECTION_SYNC );
|
||||
|
||||
|
||||
|
@ -43,7 +43,7 @@ void Core::Db::CharaDbConnection::doPrepareStatements()
|
|||
"Class = ?, Status = ?, TotalPlayTime = ?, HomePoint = ?, FavoritePoint = ?, RestPoint = ?, "
|
||||
"ActiveTitle = ?, TitleList = ?, Achievement = ?, Aetheryte = ?, HowTo = ?, Minions = ?, Mounts = ?, Orchestrion = ?, "
|
||||
"EquippedMannequin = ?, ConfigFlags = ?, QuestCompleteFlags = ?, OpeningSequence = ?, "
|
||||
"QuestTracking = ?, GrandCompany = ?, GrandCompanyRank = ?, Discovery = ?, GMRank = ?, Unlocks = ?, "
|
||||
"QuestTracking = ?, GrandCompany = ?, GrandCompanyRank = ?, Discovery = ?, GMRank = ?, EquipDisplayFlags = ?, Unlocks = ?, "
|
||||
"CFPenaltyUntil = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
|
||||
|
||||
|
||||
|
@ -51,6 +51,10 @@ void Core::Db::CharaDbConnection::doPrepareStatements()
|
|||
"Class, ContentId, BirthDay, BirthMonth "
|
||||
"FROM charainfo WHERE CharacterId = ?;", CONNECTION_SYNC );
|
||||
|
||||
prepareStatement( CHARA_SEL_MINIMAL_FROM_CONTENTID, "SELECT Name, Customize, ModelEquip, TerritoryId, GuardianDeity, "
|
||||
"Class, ContentId, BirthDay, BirthMonth "
|
||||
"FROM charainfo WHERE ContentId = ?;", CONNECTION_SYNC );
|
||||
|
||||
prepareStatement( CHARA_INS, "INSERT INTO charainfo (AccountId, CharacterId, ContentId, Name, Hp, Mp, "
|
||||
"Customize, Voice, IsNewGame, TerritoryId, PosX, PosY, PosZ, PosR, ModelEquip, "
|
||||
"IsNewAdventurer, GuardianDeity, Birthday, BirthMonth, Class, Status, FirstClass, "
|
||||
|
@ -97,6 +101,7 @@ void Core::Db::CharaDbConnection::doPrepareStatements()
|
|||
prepareStatement( CHARA_UP_GRANDCOMPANYRANKS, "UPDATE charainfo SET GrandCompanyRank = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
|
||||
prepareStatement( CHARA_UP_DISCOVERY, "UPDATE charainfo SET Discovery = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
|
||||
prepareStatement( CHARA_UP_GMRANK, "UPDATE charainfo SET GMRank = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
|
||||
prepareStatement( CHARA_UP_EQUIPDISPLAYFLAGS, "UPDATE charainfo SET EquipDisplayFlags = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
|
||||
prepareStatement( CHARA_UP_UNLOCKS, "UPDATE charainfo SET Unlocks = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
|
||||
prepareStatement( CHARA_UP_CFPENATLY, "UPDATE charainfo SET CFPenaltyUntil = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
|
||||
|
||||
|
@ -133,7 +138,7 @@ void Core::Db::CharaDbConnection::doPrepareStatements()
|
|||
/// ITEM GLOBAL
|
||||
prepareStatement( CHARA_ITEMGLOBAL_INS, "INSERT INTO charaglobalitem ( CharacterId, ItemId, catalogId, UPDATE_DATE ) VALUES ( ?, ?, ?, NOW() );", CONNECTION_BOTH );
|
||||
|
||||
// SOCIAL GROUPS
|
||||
|
||||
|
||||
|
||||
prepareStatement( CHARA_SOCIAL_FRIENDS_INS, "INSERT INTO charainfofriendlist ( ContentId, ContentIdList, InviteDataList, UPDATE_DATE ) VALUES ( ?, ?, ?, NOW() );", CONNECTION_SYNC ); // todo: maybe not sync
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@ enum CharaDbStatements : uint32_t
|
|||
{
|
||||
CHARA_SEL,
|
||||
CHARA_SEL_MINIMAL,
|
||||
CHARA_SEL_MINIMAL_FROM_CONTENTID,
|
||||
CHARA_SEARCHINFO_SEL,
|
||||
CHARA_QUEST_SEL,
|
||||
CHARA_INS,
|
||||
|
@ -55,6 +56,7 @@ enum CharaDbStatements : uint32_t
|
|||
CHARA_UP_GRANDCOMPANYRANKS,
|
||||
CHARA_UP_DISCOVERY,
|
||||
CHARA_UP_GMRANK,
|
||||
CHARA_UP_EQUIPDISPLAYFLAGS,
|
||||
CHARA_UP_UNLOCKS,
|
||||
CHARA_UP_CFPENATLY,
|
||||
CHARA_SEARCHINFO_INS,
|
||||
|
@ -75,6 +77,8 @@ enum CharaDbStatements : uint32_t
|
|||
|
||||
CHARA_ITEMGLOBAL_INS,
|
||||
|
||||
CHARA_SOCIAL_FRIENDS_INS,
|
||||
|
||||
MAX_STATEMENTS
|
||||
};
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,6 +1,3 @@
|
|||
/**
|
||||
* Structural definitions common to all FFXIV:ARR packets.
|
||||
*/
|
||||
#ifndef _CORE_NETWORK_PACKETS_COMMON_H
|
||||
#define _CORE_NETWORK_PACKETS_COMMON_H
|
||||
|
||||
|
@ -25,7 +22,7 @@ namespace Packets {
|
|||
*
|
||||
* std::stringstream buf;
|
||||
* buf << pkt_hdr;
|
||||
* for (int i = 0; i < n; i++)
|
||||
* for( int i = 0; i < n; i++ )
|
||||
* {
|
||||
* buf << pkt_seg_hdr[i];
|
||||
* buf << {pkt_seg_data[i]};
|
||||
|
@ -46,6 +43,8 @@ namespace Packets {
|
|||
*
|
||||
* 0 4 8 12 14 16
|
||||
* +-------------------------------+---------------+-------+-------+
|
||||
* | unknown_0 | unknown_8 |
|
||||
* +-------------------------------+---------------+-------+-------+
|
||||
* | timestamp | size | cType | count |
|
||||
* +---+---+-------+---------------+---------------+-------+-------+
|
||||
* | ? |CMP| ? | ? |
|
||||
|
@ -54,13 +53,10 @@ namespace Packets {
|
|||
*/
|
||||
struct FFXIVARR_PACKET_HEADER
|
||||
{
|
||||
|
||||
/** Unknown data, no actual use has been determined */
|
||||
uint64_t unknown_0;
|
||||
uint64_t unknown_8;
|
||||
/**
|
||||
* Represents the number of milliseconds since epoch that the packet was
|
||||
* sent.
|
||||
*/
|
||||
/** Represents the number of milliseconds since epoch that the packet was sent. */
|
||||
uint64_t timestamp;
|
||||
/** The size of the packet header and its payload */
|
||||
uint32_t size;
|
||||
|
@ -74,14 +70,14 @@ struct FFXIVARR_PACKET_HEADER
|
|||
uint32_t unknown_24;
|
||||
};
|
||||
|
||||
inline ostream& operator<<(ostream& os, const FFXIVARR_PACKET_HEADER& hdr)
|
||||
inline ostream& operator << ( ostream& os, const FFXIVARR_PACKET_HEADER& hdr )
|
||||
{
|
||||
return os.write(reinterpret_cast<const char*>(&hdr), sizeof hdr);
|
||||
return os.write( reinterpret_cast< const char* >( &hdr ), sizeof hdr );
|
||||
}
|
||||
|
||||
inline istream& operator>>(istream& is, FFXIVARR_PACKET_HEADER& hdr)
|
||||
inline istream& operator >> ( istream& is, FFXIVARR_PACKET_HEADER& hdr )
|
||||
{
|
||||
return is.read(reinterpret_cast<char*>(&hdr), sizeof hdr);
|
||||
return is.read( reinterpret_cast< char* >( &hdr ), sizeof hdr );
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -92,7 +88,7 @@ inline istream& operator>>(istream& is, FFXIVARR_PACKET_HEADER& hdr)
|
|||
*
|
||||
* 0 4 8 12 16
|
||||
* +---------------+---------------+---------------+-------+-------+
|
||||
* | size | source_actor | target_actor | type | ? |
|
||||
* | size | source_actor | target_actor | type | pad |
|
||||
* +---------------+---------------+---------------+-------+-------+
|
||||
* | |
|
||||
* : type-specific data of length, size, follows :
|
||||
|
@ -109,22 +105,20 @@ struct FFXIVARR_PACKET_SEGMENT_HEADER
|
|||
uint32_t target_actor;
|
||||
/** The segment type. (1, 2, 3, 7, 8, 9, 10) */
|
||||
uint16_t type;
|
||||
uint16_t _reserved_E;
|
||||
uint16_t padding;
|
||||
};
|
||||
|
||||
inline ostream& operator<<(ostream& os, const FFXIVARR_PACKET_SEGMENT_HEADER& hdr)
|
||||
inline ostream& operator << ( ostream& os, const FFXIVARR_PACKET_SEGMENT_HEADER& hdr )
|
||||
{
|
||||
return os.write(reinterpret_cast<const char*>(&hdr), sizeof hdr);
|
||||
return os.write( reinterpret_cast< const char* >( &hdr ), sizeof hdr );
|
||||
}
|
||||
|
||||
inline istream& operator>>(istream& is, FFXIVARR_PACKET_SEGMENT_HEADER& hdr)
|
||||
inline istream& operator >> ( istream& is, FFXIVARR_PACKET_SEGMENT_HEADER& hdr )
|
||||
{
|
||||
return is.read(reinterpret_cast<char*>(&hdr), sizeof hdr);
|
||||
return is.read( reinterpret_cast< char* >( &hdr ), sizeof hdr );
|
||||
}
|
||||
|
||||
// TODO: Include structures for the individual packet segment types
|
||||
|
||||
template <int T> struct FFXIVIpcBasePacket
|
||||
template < int T > struct FFXIVIpcBasePacket
|
||||
{
|
||||
/** Creates a constant representing the IPC type */
|
||||
enum { _ServerIpcType = T };
|
||||
|
@ -133,7 +127,7 @@ template <int T> struct FFXIVIpcBasePacket
|
|||
struct FFXIVARR_PACKET_RAW
|
||||
{
|
||||
FFXIVARR_PACKET_SEGMENT_HEADER segHdr;
|
||||
std::vector<uint8_t> data;
|
||||
std::vector< uint8_t > data;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -142,7 +136,7 @@ struct FFXIVARR_PACKET_RAW
|
|||
*
|
||||
* 0 4 6 8 12 16
|
||||
* +-------+-------+------+----------+---------------+---------------+
|
||||
* | 14 00 | type | ?? | serverId | timestamp | ??? |
|
||||
* | 14 00 | type | pad | serverId | timestamp | pad1 |
|
||||
* +-------+-------+------+----------+---------------+---------------+
|
||||
* | |
|
||||
* : data :
|
||||
|
@ -153,24 +147,22 @@ struct FFXIVARR_IPC_HEADER
|
|||
{
|
||||
uint16_t reserved;
|
||||
uint16_t type;
|
||||
uint16_t unknown_2;
|
||||
uint16_t padding;
|
||||
uint16_t serverId;
|
||||
uint32_t timestamp;
|
||||
uint32_t unknown_C;
|
||||
uint32_t padding1;
|
||||
};
|
||||
|
||||
inline ostream& operator<<(ostream& os, const FFXIVARR_IPC_HEADER& hdr)
|
||||
inline ostream& operator << ( ostream& os, const FFXIVARR_IPC_HEADER& hdr )
|
||||
{
|
||||
return os.write(reinterpret_cast<const char*>(&hdr), sizeof hdr);
|
||||
return os.write( reinterpret_cast< const char* >( &hdr ), sizeof hdr );
|
||||
}
|
||||
|
||||
inline istream& operator>>(istream& is, FFXIVARR_IPC_HEADER& hdr)
|
||||
inline istream& operator >> ( istream& is, FFXIVARR_IPC_HEADER& hdr )
|
||||
{
|
||||
return is.read(reinterpret_cast<char*>(&hdr), sizeof hdr);
|
||||
return is.read( reinterpret_cast< char* >( &hdr ), sizeof hdr );
|
||||
}
|
||||
|
||||
|
||||
|
||||
} /* Packets */
|
||||
} /* Network */
|
||||
} /* Core */
|
||||
|
|
|
@ -23,7 +23,7 @@ void Core::Network::Packets::GamePacket::setHeader( uint16_t size, uint16_t type
|
|||
m_segHdr.type = type;
|
||||
m_segHdr.source_actor = id1;
|
||||
m_segHdr.target_actor = id2;
|
||||
m_segHdr._reserved_E = 0x00;
|
||||
//m_segHdr._reserved_E = 0x00;
|
||||
m_subType = subType;
|
||||
|
||||
m_timeStamp = static_cast< uint32_t >( time( nullptr ) );
|
||||
|
@ -88,7 +88,7 @@ Core::Network::Packets::GamePacket::~GamePacket()
|
|||
void Core::Network::Packets::GamePacket::savePacket()
|
||||
{
|
||||
char filename[20];
|
||||
sprintf( filename, "dump_0x%x.dat", m_subType );
|
||||
sprintf( filename, "dump_0x%x_%i.dat", m_subType, Util::getTimeMs() );
|
||||
FILE * fp = nullptr;
|
||||
fp = fopen( filename, "wb" );
|
||||
fwrite( &m_dataBuf[0], 1, m_segHdr.size, fp );
|
||||
|
|
|
@ -16,11 +16,11 @@ namespace Packets {
|
|||
// Must forward define these in order to enable the compiler to produce the
|
||||
// correct template functions.
|
||||
|
||||
template <typename T, typename T1>
|
||||
template < typename T, typename T1 >
|
||||
class GamePacketNew;
|
||||
|
||||
template <typename T, typename T1>
|
||||
std::ostream& operator<< ( std::ostream& os, const GamePacketNew<T, T1>& packet );
|
||||
template < typename T, typename T1 >
|
||||
std::ostream& operator<< ( std::ostream& os, const GamePacketNew< T, T1 >& packet );
|
||||
|
||||
template< class T >
|
||||
using ZoneChannelPacket = GamePacketNew< T, ServerZoneIpcType >;
|
||||
|
@ -31,11 +31,11 @@ using ChatChannelPacket = GamePacketNew< T, ServerChatIpcType >;
|
|||
/**
|
||||
* The base implementation of a game packet. Needed for parsing packets.
|
||||
*/
|
||||
template <typename T1>
|
||||
class GamePacketNewBase
|
||||
template < typename T1 >
|
||||
class FFXIVPacketBase
|
||||
{
|
||||
public:
|
||||
virtual ~GamePacketNewBase() = default;
|
||||
virtual ~FFXIVPacketBase() = default;
|
||||
/**
|
||||
* @brief Gets the IPC type of this packet. (Useful for determining the
|
||||
* type of a parsed packet.)
|
||||
|
@ -49,8 +49,8 @@ public:
|
|||
* type that represents just the IPC data portion (the bytes after the initial
|
||||
* 32 byte header information.)
|
||||
*/
|
||||
template <typename T, typename T1>
|
||||
class GamePacketNew : public GamePacketNewBase<T1>
|
||||
template < typename T, typename T1 >
|
||||
class GamePacketNew : public FFXIVPacketBase< T1 >
|
||||
{
|
||||
public:
|
||||
/**
|
||||
|
@ -58,7 +58,7 @@ public:
|
|||
* @param sourceActorId The source actor id.
|
||||
* @param targetActorId The target actor id.
|
||||
*/
|
||||
GamePacketNew<T, T1>( uint32_t sourceActorId, uint32_t targetActorId )
|
||||
GamePacketNew< T, T1 >( uint32_t sourceActorId, uint32_t targetActorId )
|
||||
{
|
||||
initialize();
|
||||
m_segHdr.source_actor = sourceActorId;
|
||||
|
@ -69,7 +69,7 @@ public:
|
|||
* @brief Constructs a new game packet with the specified actors.
|
||||
* @param sourceActorId The source and target actor id.
|
||||
*/
|
||||
GamePacketNew<T, T1>( uint32_t bothActorId )
|
||||
GamePacketNew< T, T1 >( uint32_t bothActorId )
|
||||
{
|
||||
initialize();
|
||||
m_segHdr.source_actor = bothActorId;
|
||||
|
@ -109,7 +109,7 @@ public:
|
|||
* @param actorId The source actor id.
|
||||
* @return This IPC packet object (can be used for chaining).
|
||||
*/
|
||||
GamePacketNew<T, T1> sourceActor( uint32_t actorId )
|
||||
GamePacketNew< T, T1 > sourceActor( uint32_t actorId )
|
||||
{
|
||||
m_segHdr.source_actor = actorId;
|
||||
return this;
|
||||
|
@ -129,7 +129,7 @@ public:
|
|||
* @param actorId The target actor id.
|
||||
* @return This IPC packet object (can be used for chaining).
|
||||
*/
|
||||
GamePacketNew<T, T1> targetActor( uint32_t actorId )
|
||||
GamePacketNew< T, T1 > targetActor( uint32_t actorId )
|
||||
{
|
||||
m_segHdr.target_actor = actorId;
|
||||
return this;
|
||||
|
@ -144,7 +144,7 @@ public:
|
|||
return m_segHdr.target_actor;
|
||||
};
|
||||
|
||||
friend std::ostream& operator<< <> ( std::ostream& os, const GamePacketNew<T, T1>& packet );
|
||||
friend std::ostream& operator<< <> ( std::ostream& os, const GamePacketNew< T, T1 >& packet );
|
||||
|
||||
friend class GamePacketFactory;
|
||||
|
||||
|
@ -205,7 +205,7 @@ private:
|
|||
};
|
||||
};
|
||||
|
||||
template <typename T, typename T1>
|
||||
template < typename T, typename T1 >
|
||||
std::ostream& operator<<( std::ostream& os, const GamePacketNew<T, T1>& packet )
|
||||
{
|
||||
#if 0
|
||||
|
|
|
@ -11,80 +11,67 @@ namespace Core
|
|||
{
|
||||
namespace Packets
|
||||
{
|
||||
PacketParseResult getHeader(
|
||||
const std::vector< uint8_t > &buffer,
|
||||
const uint32_t offset,
|
||||
FFXIVARR_PACKET_HEADER &header)
|
||||
PacketParseResult getHeader( const std::vector< uint8_t > &buffer,
|
||||
const uint32_t offset,
|
||||
FFXIVARR_PACKET_HEADER &header )
|
||||
{
|
||||
const auto headerSize = sizeof( FFXIVARR_PACKET_HEADER );
|
||||
|
||||
// Check if we have enough bytes in the buffer.
|
||||
auto remainingBytes = buffer.size() - offset;
|
||||
if ( remainingBytes < headerSize )
|
||||
{
|
||||
if( remainingBytes < headerSize )
|
||||
return Incomplete;
|
||||
}
|
||||
|
||||
// Copy packet header.
|
||||
memcpy( &header, buffer.data() + offset, headerSize );
|
||||
|
||||
if ( !checkHeader(header) )
|
||||
{
|
||||
if( !checkHeader(header) )
|
||||
return Malformed;
|
||||
}
|
||||
|
||||
return Success;
|
||||
}
|
||||
|
||||
PacketParseResult getSegmentHeader(
|
||||
const std::vector< uint8_t > &buffer,
|
||||
const uint32_t offset,
|
||||
FFXIVARR_PACKET_SEGMENT_HEADER &header)
|
||||
PacketParseResult getSegmentHeader( const std::vector< uint8_t > &buffer,
|
||||
const uint32_t offset,
|
||||
FFXIVARR_PACKET_SEGMENT_HEADER &header )
|
||||
{
|
||||
const auto headerSize = sizeof( FFXIVARR_PACKET_SEGMENT_HEADER );
|
||||
|
||||
// Check if we have enough bytes in the buffer.
|
||||
auto remainingBytes = buffer.size() - offset;
|
||||
if (remainingBytes < headerSize)
|
||||
{
|
||||
if( remainingBytes < headerSize )
|
||||
return Incomplete;
|
||||
}
|
||||
|
||||
// Copy segment header
|
||||
memcpy(&header, buffer.data() + offset, headerSize);
|
||||
memcpy( &header, buffer.data() + offset, headerSize );
|
||||
|
||||
return Success;
|
||||
}
|
||||
|
||||
PacketParseResult getPackets(
|
||||
const std::vector< uint8_t > &buffer,
|
||||
const uint32_t offset,
|
||||
const FFXIVARR_PACKET_HEADER &packetHeader,
|
||||
std::vector< FFXIVARR_PACKET_RAW > &packets)
|
||||
PacketParseResult getPackets( const std::vector< uint8_t > &buffer,
|
||||
const uint32_t offset,
|
||||
const FFXIVARR_PACKET_HEADER &packetHeader,
|
||||
std::vector< FFXIVARR_PACKET_RAW > &packets )
|
||||
{
|
||||
// sanity check: check there's enough bytes in the buffer
|
||||
const auto bytesExpected = packetHeader.size - sizeof(struct FFXIVARR_PACKET_HEADER);
|
||||
if ( buffer.size() - offset < bytesExpected )
|
||||
{
|
||||
const auto bytesExpected = packetHeader.size - sizeof( struct FFXIVARR_PACKET_HEADER );
|
||||
if( buffer.size() - offset < bytesExpected )
|
||||
return Incomplete;
|
||||
}
|
||||
|
||||
// Loop each message
|
||||
uint32_t count = 0;
|
||||
uint32_t bytesProcessed = 0;
|
||||
while ( count < packetHeader.count )
|
||||
while( count < packetHeader.count )
|
||||
{
|
||||
FFXIVARR_PACKET_RAW rawPacket;
|
||||
|
||||
// Copy ipc packet message
|
||||
const auto packetResult = getPacket(buffer, offset + bytesProcessed, rawPacket);
|
||||
if ( packetResult != Success )
|
||||
{
|
||||
const auto packetResult = getPacket( buffer, offset + bytesProcessed, rawPacket );
|
||||
if( packetResult != Success )
|
||||
return packetResult;
|
||||
}
|
||||
|
||||
|
||||
// NOTE: isn't rawPacket is allocated on stack?
|
||||
// why is okay to do this?
|
||||
// why is okay to do this?
|
||||
packets.push_back( rawPacket );
|
||||
|
||||
// Add message size and count
|
||||
|
@ -94,34 +81,25 @@ namespace Core
|
|||
|
||||
// sanity check: check if we processed all bytes.
|
||||
// this check can fail if size of messages don't add up to size reported from packet header.
|
||||
if ( bytesExpected != bytesProcessed )
|
||||
{
|
||||
if( bytesExpected != bytesProcessed )
|
||||
return Malformed;
|
||||
}
|
||||
|
||||
return Success;
|
||||
}
|
||||
|
||||
PacketParseResult getPacket(
|
||||
const std::vector< uint8_t > &buffer,
|
||||
const uint32_t offset,
|
||||
FFXIVARR_PACKET_RAW &packet
|
||||
)
|
||||
PacketParseResult getPacket( const std::vector< uint8_t > &buffer, const uint32_t offset,
|
||||
FFXIVARR_PACKET_RAW &packet )
|
||||
{
|
||||
// Copy segment header
|
||||
const auto headerResult = getSegmentHeader(buffer, offset, packet.segHdr);
|
||||
if ( headerResult != Success )
|
||||
{
|
||||
const auto headerResult = getSegmentHeader( buffer, offset, packet.segHdr );
|
||||
if( headerResult != Success )
|
||||
return headerResult;
|
||||
}
|
||||
|
||||
// Check header sanity and it's size
|
||||
if ( !checkSegmentHeader( packet.segHdr ) )
|
||||
{
|
||||
if( !checkSegmentHeader( packet.segHdr ) )
|
||||
return Malformed;
|
||||
}
|
||||
|
||||
const auto dataOffset = offset + sizeof(struct FFXIVARR_PACKET_SEGMENT_HEADER);
|
||||
const auto dataOffset = offset + sizeof( struct FFXIVARR_PACKET_SEGMENT_HEADER );
|
||||
const auto dataSize = packet.segHdr.size;
|
||||
|
||||
// Allocate data buffer and copy
|
||||
|
@ -131,30 +109,24 @@ namespace Core
|
|||
return Success;
|
||||
}
|
||||
|
||||
bool checkHeader(const FFXIVARR_PACKET_HEADER &header)
|
||||
bool checkHeader( const FFXIVARR_PACKET_HEADER &header )
|
||||
{
|
||||
// Max size of the packet is capped at 1MB for now.
|
||||
if ( header.size > 1 * 1024 * 1024 )
|
||||
{
|
||||
if( header.size > 1 * 1024 * 1024 )
|
||||
return false;
|
||||
}
|
||||
|
||||
// Max number of message is capped at 255 for now.
|
||||
if ( header.count > 255 )
|
||||
{
|
||||
if( header.count > 255 )
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool checkSegmentHeader(const FFXIVARR_PACKET_SEGMENT_HEADER &header)
|
||||
|
||||
bool checkSegmentHeader( const FFXIVARR_PACKET_SEGMENT_HEADER &header )
|
||||
{
|
||||
// Max size of individual message is capped at 256KB for now.
|
||||
if ( header.size > 256 * 1024 )
|
||||
{
|
||||
if( header.size > 256 * 1024 )
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -7,14 +7,14 @@
|
|||
#include <chrono>
|
||||
|
||||
|
||||
Core::Network::Packets::PacketContainer::PacketContainer( void )
|
||||
Core::Network::Packets::PacketContainer::PacketContainer()
|
||||
{
|
||||
memset( &m_ipcHdr, 0, sizeof( FFXIVARR_PACKET_HEADER ) );
|
||||
m_ipcHdr.size = sizeof( FFXIVARR_PACKET_HEADER );
|
||||
m_ipcHdr.count = 0;
|
||||
}
|
||||
|
||||
Core::Network::Packets::PacketContainer::~PacketContainer( void )
|
||||
Core::Network::Packets::PacketContainer::~PacketContainer()
|
||||
{
|
||||
m_entryList.clear();
|
||||
}
|
||||
|
|
|
@ -16,14 +16,14 @@ class GamePacket;
|
|||
class PacketContainer
|
||||
{
|
||||
public:
|
||||
PacketContainer( void );
|
||||
~PacketContainer( void );
|
||||
PacketContainer();
|
||||
~PacketContainer();
|
||||
|
||||
void addPacket( GamePacket pEntry );
|
||||
|
||||
FFXIVARR_PACKET_HEADER m_ipcHdr;
|
||||
|
||||
std::vector<GamePacket> m_entryList;
|
||||
std::vector< GamePacket > m_entryList;
|
||||
|
||||
std::string toString();
|
||||
|
||||
|
|
|
@ -45,11 +45,10 @@ namespace Packets {
|
|||
enum ServerZoneIpcType : uint16_t
|
||||
{
|
||||
|
||||
// static opcode ( the ones that rarely if ever change )
|
||||
// static opcode ( the ones that rarely, if ever, change )
|
||||
Ping = 0x0065,
|
||||
Init = 0x0066,
|
||||
|
||||
ActorSpawn = 0x0190, // DEPRECATED
|
||||
ActorFreeSpawn = 0x0191,
|
||||
InitZone = 0x019A,
|
||||
|
||||
|
@ -62,130 +61,132 @@ namespace Packets {
|
|||
///////////////////////////////////////////////////
|
||||
|
||||
ChatBanned = 0x006B,
|
||||
Logout = 0x0077,
|
||||
Logout = 0x0077, // updated 4.3
|
||||
CFNotify = 0x0078,
|
||||
CFMemberStatus = 0x0079,
|
||||
CFDutyInfo = 0x007A,
|
||||
CFPlayerInNeed = 0x007F,
|
||||
|
||||
SocialRequestError = 0x00AD,
|
||||
|
||||
Playtime = 0x00DF, // updated 4.2
|
||||
CFRegistered = 0x00B8, // updated 4.1
|
||||
CancelAllianceForming = 0x00C6, // updated 4.2
|
||||
Chat = 0x00E1, // updated 4.2
|
||||
SocialRequestResponse = 0x00E5, // updated 4.1
|
||||
SocialRequestReceive = 0x00E6, // updated 4.2
|
||||
SocialList = 0x00E7, // updated 4.2
|
||||
|
||||
UpdateSearchInfo = 0x00EA, // updated 4.2
|
||||
InitSearchInfo = 0x00EB, // updated 4.2
|
||||
Chat = 0x00F7, // updated 4.3
|
||||
SocialList = 0x00FD, // updated 4.3
|
||||
|
||||
ServerNotice = 0x00F0, // updated 4.2
|
||||
SetOnlineStatus = 0x00F1, // updated 4.2
|
||||
UpdateSearchInfo = 0x0100, // updated 4.3
|
||||
InitSearchInfo = 0x0101, // updated 4.3
|
||||
|
||||
CountdownInitiate = 0x00FB, // updated 4.2
|
||||
CountdownCancel = 0x00FC, // updated 4.2
|
||||
ServerNotice = 0x0106, // updated 4.3
|
||||
SetOnlineStatus = 0x0107, // updated 4.3
|
||||
|
||||
BlackList = 0x00FF, // updated 4.2
|
||||
CountdownInitiate = 0x0111, // updated 4.3
|
||||
CountdownCancel = 0x0112, // updated 4.3
|
||||
|
||||
BlackList = 0x0115, // updated 4.3
|
||||
|
||||
LogMessage = 0x00D0,
|
||||
|
||||
LinkshellList = 0x0106, // updated 4.2
|
||||
SetCharacterFCInfo = 0x0114, // updated 4.2
|
||||
StatusEffectList = 0x0125, // updated 4.2
|
||||
Effect = 0x0128, // updated 4.2
|
||||
PersistantEffect = 0x013B, // updated 4.2
|
||||
LinkshellList = 0x011C, // updated 4.3
|
||||
SetCharaFCTag = 0x013B, // updated 4.3
|
||||
SetFreeCompanyInfo = 0x013D, // updated 4.3
|
||||
|
||||
StatusEffectList = 0x014E, // updated 4.3
|
||||
Effect = 0x0151, // updated 4.3
|
||||
PersistantEffect = 0x0158, // updated 4.3
|
||||
|
||||
GCAffiliation = 0xCCFC, // OUTDATED
|
||||
|
||||
PlayerSpawn = 0x015C, // updated 4.2
|
||||
NpcSpawn = 0x015D, // updated 4.2
|
||||
ActorMove = 0x015E, // updated 4.2
|
||||
ActorSetPos = 0x0160, // updated 4.2
|
||||
PlayerSpawn = 0x0172, // updated 4.3
|
||||
NpcSpawn = 0x0173, // updated 4.3
|
||||
ActorMove = 0x0174, // updated 4.3
|
||||
ActorSetPos = 0x0176, // updated 4.3
|
||||
|
||||
ActorCast = 0x0162, // updated 4.2
|
||||
ActorCast = 0x0178, // updated 4.3
|
||||
|
||||
HateList = 0x0165, // updated 4.2
|
||||
HateList = 0x017B, // updated 4.3
|
||||
|
||||
ObjectSpawn = 0x0167, // updated 4.2
|
||||
ObjectDespawn = 0x0168, // updated 4.2
|
||||
UpdateClassInfo = 0x0169, // updated 4.2
|
||||
|
||||
InitUI = 0x016B, // updated 4.2
|
||||
PlayerStats = 0x016C, // updated 4.2
|
||||
ActorOwner = 0x016D, // updated 4.2 ?
|
||||
PlayerStateFlags = 0x016E, // updated 4.2
|
||||
PlayerClassInfo = 0x016F, // updated 4.2
|
||||
ModelEquip = 0x0170, // updated 4.2
|
||||
|
||||
ItemInfo = 0x017A, // updated 4.2
|
||||
ContainerInfo = 0x017B, // updated 4.2
|
||||
InventoryTransactionFinish = 0x017C, // updated 4.2
|
||||
InventoryTransaction = 0x017D, // updated 4.2
|
||||
CurrencyCrystalInfo = 0x017E, // updated 4.2
|
||||
ObjectSpawn = 0x017D, // updated 4.3
|
||||
ObjectDespawn = 0x017E, // updated 4.3
|
||||
|
||||
InventoryActionAck = 0x0180, // updated 4.2 ?
|
||||
UpdateInventorySlot = 0x0181, // updated 4.2
|
||||
|
||||
EventPlay = 0x018E, // updated 4.2
|
||||
DirectorPlayScene = 0x0192, // updated 4.2
|
||||
InitUI = 0x0181, // updated 4.3
|
||||
PlayerStats = 0x0182, // updated 4.3
|
||||
ActorOwner = 0x0183, // updated 4.3 ?
|
||||
PlayerStateFlags = 0x0184, // updated 4.3
|
||||
PlayerClassInfo = 0x0185, // updated 4.3
|
||||
ModelEquip = 0x0186, // updated 4.3
|
||||
|
||||
EventStart = 0x0198, // updated 4.2
|
||||
EventFinish = 0x0199, // updated 4.2
|
||||
UpdateClassInfo = 0x018A, // updated 4.3
|
||||
|
||||
ItemInfo = 0x0190, // updated 4.3
|
||||
ContainerInfo = 0x0192, // updated 4.3
|
||||
InventoryTransactionFinish = 0x0193, // updated 4.3
|
||||
InventoryTransaction = 0x0194, // updated 4.3
|
||||
CurrencyCrystalInfo = 0x0197, // updated 4.3
|
||||
|
||||
UpdateInventorySlot = 0x0198, // updated 4.3
|
||||
|
||||
EventPlay = 0x01A6, // updated 4.3
|
||||
DirectorPlayScene = 0x01AA, // updated 4.3
|
||||
|
||||
EventStart = 0x01AF, // updated 4.3
|
||||
EventFinish = 0x01B0, // updated 4.3
|
||||
|
||||
EventLinkshell = 0x1169,
|
||||
|
||||
QuestMessage = 0x01B8, // updated 4.2
|
||||
QuestTracker = 0x01BD, // updated 4.2
|
||||
QuestActiveList = 0x01C3, // updated 4.3
|
||||
QuestUpdate = 0x01C4, // updated 4.3
|
||||
QuestCompleteList = 0x01C5, // updated 4.3
|
||||
|
||||
QuestFinish = 0x01B0, // updated 4.2
|
||||
MSQTrackerComplete = 0x01B1, // updated 4.2
|
||||
MSQTrackerProgress = 0x01B2, // updated 4.2
|
||||
QuestFinish = 0x01C6, // updated 4.3
|
||||
MSQTrackerComplete = 0x01C7, // updated 4.3
|
||||
MSQTrackerProgress = 0x01C8, // updated 4.3
|
||||
|
||||
QuestActiveList = 0x01AD, // updated 4.2
|
||||
QuestMessage = 0x01CE, // updated 4.3
|
||||
|
||||
QuestUpdate = 0x01AE, // updated 4.2
|
||||
QuestCompleteList = 0x01AF, // updated 4.2
|
||||
QuestTracker = 0x01D3, // updated 4.3
|
||||
|
||||
Mount = 0x01CD, // updated 4.2
|
||||
Mount = 0x01E3, // updated 4.3
|
||||
|
||||
DirectorVars = 0x01CF, // updated 4.2
|
||||
|
||||
WeatherChange = 0x01EA, // updated 4.2
|
||||
PlayerTitleList = 0x01EB, // updated 4.2
|
||||
Discovery = 0x01EC, // updated 4.2
|
||||
|
||||
EorzeaTimeOffset = 0x01EE, // updated 4.2
|
||||
|
||||
EquipDisplayFlags = 0x01FA, // updated 4.2
|
||||
DirectorVars = 0x01E5, // updated 4.3
|
||||
|
||||
CFAvailableContents = 0x01FD, // updated 4.2
|
||||
|
||||
PrepareZoning = 0x027C, // updated 4.2
|
||||
ActorGauge = 0x027D, // updated 4.2
|
||||
WeatherChange = 0x0200, // updated 4.3
|
||||
PlayerTitleList = 0x0201, // updated 4.3
|
||||
Discovery = 0x0202, // updated 4.3
|
||||
|
||||
EorzeaTimeOffset = 0x0204, // updated 4.3
|
||||
|
||||
EquipDisplayFlags = 0x0210, // updated 4.3
|
||||
|
||||
DuelChallenge = 0x0277, // 4.2; this is responsible for opening the ui
|
||||
PerformNote = 0x0286, // updated 4.3
|
||||
|
||||
PrepareZoning = 0x0291, // updated 4.3
|
||||
ActorGauge = 0x0292, // updated 4.3
|
||||
|
||||
|
||||
PerformNote = 0x0286, // updated 4.2
|
||||
|
||||
// Unknown IPC types that still need to be sent
|
||||
// TODO: figure all these out properly
|
||||
IPCTYPE_UNK_320 = 0x0235, // updated 4.2
|
||||
IPCTYPE_UNK_322 = 0x0237, // updated 4.2
|
||||
IPCTYPE_UNK_320 = 0x024C, // updated 4.3
|
||||
IPCTYPE_UNK_322 = 0x024E, // updated 4.3
|
||||
|
||||
};
|
||||
|
||||
// TODO: Include structures for the individual packet segment types
|
||||
|
||||
/**
|
||||
* Client IPC Zone Type Codes.
|
||||
*/
|
||||
enum ClientZoneIpcType : uint16_t
|
||||
{
|
||||
|
||||
PingHandler = 0x0065, // unchanged 4.2
|
||||
InitHandler = 0x0066, // unchanged 4.2
|
||||
PingHandler = 0x0065, // unchanged 4.3
|
||||
InitHandler = 0x0066, // unchanged 4.3
|
||||
|
||||
FinishLoadingHandler = 0x0069, // unchanged 4.2
|
||||
FinishLoadingHandler = 0x0069, // unchanged 4.3
|
||||
|
||||
CFCommenceHandler = 0x006F,
|
||||
|
||||
|
@ -193,22 +194,24 @@ namespace Packets {
|
|||
|
||||
CFRegisterDuty = 0x0071,
|
||||
CFRegisterRoulette = 0x0072,
|
||||
PlayTimeHandler = 0x0073, // unchanged 4.2
|
||||
LogoutHandler = 0x0074, // unchanged 4.2
|
||||
PlayTimeHandler = 0x0073, // unchanged 4.3
|
||||
LogoutHandler = 0x0074, // unchanged 4.3
|
||||
|
||||
CFDutyInfoHandler = 0x0078, // updated 4.2
|
||||
|
||||
SocialReqSendHandler = 0x00AE, // updated 4.1
|
||||
CreateCrossWorldLS = 0x00AF, // updated 4.3
|
||||
|
||||
ChatHandler = 0x00C7, // updated 4.2
|
||||
ChatHandler = 0x00D3, // updated 4.3
|
||||
|
||||
SocialListHandler = 0x00CF, // updated 4.2
|
||||
ReqSearchInfoHandler = 0x00D4, // updated 4.2
|
||||
SetSearchInfoHandler = 0x00D2, // updated 4.2
|
||||
SocialListHandler = 0x00DB, // updated 4.3
|
||||
ReqSearchInfoHandler = 0x00E0, // updated 4.3
|
||||
SetSearchInfoHandler = 0x00DE, // updated 4.3
|
||||
|
||||
BlackListHandler = 0x00E0, // updated 4.2
|
||||
BlackListHandler = 0x00EC, // updated 4.3
|
||||
PlayerSearchHandler = 0x00E2, // updated 4.2
|
||||
|
||||
LinkshellListHandler = 0x00E8, // updated 4.2
|
||||
LinkshellListHandler = 0x00F4, // updated 4.3
|
||||
|
||||
FcInfoReqHandler = 0x011A, // updated 4.2
|
||||
|
||||
|
@ -217,34 +220,34 @@ namespace Packets {
|
|||
ReqCountdownInitiate = 0x012C, // updated 4.2
|
||||
ReqCountdownCancel = 0x012D, // updated 4.2
|
||||
|
||||
ZoneLineHandler = 0x0130, // updated 4.2
|
||||
ActionHandler = 0x0131, // updated 4.2
|
||||
DiscoveryHandler = 0x0132, // updated 4.2
|
||||
ZoneLineHandler = 0x013C, // updated 4.3
|
||||
ActionHandler = 0x013D, // updated 4.3
|
||||
DiscoveryHandler = 0x013E, // updated 4.3
|
||||
|
||||
SkillHandler = 0x0134, // updated 4.2
|
||||
GMCommand1 = 0x0135, // updated 4.2
|
||||
GMCommand2 = 0x0136, // updated 4.2
|
||||
UpdatePositionHandler = 0x0138, // updated 4.2
|
||||
UpdatePositionInstance = 0x0177, // updated 4.2
|
||||
SkillHandler = 0x0140, // updated 4.3
|
||||
GMCommand1 = 0x0141, // updated 4.3
|
||||
GMCommand2 = 0x0142, // updated 4.3
|
||||
|
||||
InventoryModifyHandler = 0x013F, // updated 4.2
|
||||
UpdatePositionHandler = 0x0144, // updated 4.3
|
||||
UpdatePositionInstance = 0x0183, // updated 4.3
|
||||
|
||||
TalkEventHandler = 0x0148, // updated 4.2
|
||||
EmoteEventHandler = 0x0149, // updated 4.2
|
||||
WithinRangeEventHandler = 0x014A, // updated 4.2
|
||||
OutOfRangeEventHandler = 0x014B, // updated 4.2
|
||||
EnterTeriEventHandler = 0x014C, // updated 4.2
|
||||
InventoryModifyHandler = 0x014B, // updated 4.3
|
||||
|
||||
ReturnEventHandler = 0x0151, // updated 4.2
|
||||
TradeReturnEventHandler = 0x0152, // updated 4.2
|
||||
TalkEventHandler = 0x0154, // updated 4.3
|
||||
EmoteEventHandler = 0x0155, // updated 4.3
|
||||
WithinRangeEventHandler = 0x0156, // updated 4.3
|
||||
OutOfRangeEventHandler = 0x0157, // updated 4.3
|
||||
EnterTeriEventHandler = 0x0158, // updated 4.3
|
||||
|
||||
ReturnEventHandler = 0x015D, // updated 4.3
|
||||
TradeReturnEventHandler = 0x015E, // updated 4.3
|
||||
|
||||
LinkshellEventHandler = 0x0144, // updated 4.1 ??
|
||||
LinkshellEventHandler1 = 0x0145, // updated 4.1 ??
|
||||
LinkshellEventHandler = 0x0150, // updated 4.1 ??
|
||||
LinkshellEventHandler1 = 0x0151, // updated 4.1 ??
|
||||
|
||||
PerformNoteHandler = 0x0160,
|
||||
PerformNoteHandler = 0x029B, // updated 4.3
|
||||
|
||||
ReqEquipDisplayFlagsChange = 0x016C, // updated 4.2
|
||||
ReqEquipDisplayFlagsChange = 0x0178, // updated 4.3
|
||||
|
||||
|
||||
};
|
||||
|
|
|
@ -87,8 +87,10 @@ struct FFXIVIpcCharList : FFXIVIpcBasePacket<LobbyCharList>
|
|||
uint32_t index;
|
||||
uint32_t padding2;
|
||||
uint16_t serverId;
|
||||
uint16_t serverId1;
|
||||
char nameChara[32];
|
||||
char nameServer[32];
|
||||
char nameServer1[32];
|
||||
char charDetailJson[1030];
|
||||
} charaDetails[2];
|
||||
|
||||
|
|
|
@ -82,25 +82,28 @@ struct FFXIVIpcPlayTime : FFXIVIpcBasePacket<Playtime>
|
|||
struct PlayerEntry {
|
||||
uint64_t contentId;
|
||||
uint32_t timestamp;
|
||||
uint8_t bytes[4];
|
||||
uint32_t padding;
|
||||
uint8_t status; // bitmask. friend: if it's a request, if added, recipient/sender
|
||||
uint8_t unknown; // maybe bitmask? a value of 4 sets it to linkshell request
|
||||
uint8_t entryIcon; // observed in friend group icon, sideffects for displaying text
|
||||
uint8_t unavailable; // bool
|
||||
uint16_t zoneId;
|
||||
uint8_t grandCompany;
|
||||
uint8_t unknown_43_1;
|
||||
uint8_t unknown_43_2;
|
||||
uint8_t grandCompany;
|
||||
uint8_t clientLanguage;
|
||||
uint8_t knownLanguages; // bitmask, J 0x01, E 0x02, D 0x04, F 0x08
|
||||
uint8_t searchComment; // bool
|
||||
char bytes1[6];
|
||||
uint8_t knownLanguages; // bitmask, J 0x01, E 0x02, D 0x04, F 0x08
|
||||
uint8_t searchComment; // bool
|
||||
char bytes1[4];
|
||||
uint64_t onlineStatusMask;
|
||||
Common::ClassJob classJob;
|
||||
uint8_t padding;
|
||||
uint8_t padding_1;
|
||||
uint16_t level;
|
||||
uint16_t padding2;
|
||||
uint16_t padding_2;
|
||||
uint8_t one;
|
||||
char name[0x20];
|
||||
char fcTag[5];
|
||||
uint32_t unknown_p1; // Added 4.2
|
||||
};
|
||||
|
||||
struct FFXIVIpcSocialRequestReceive : FFXIVIpcBasePacket<SocialRequestReceive>
|
||||
|
@ -123,6 +126,8 @@ struct FFXIVIpcSocialRequestReceive : FFXIVIpcBasePacket<SocialRequestReceive>
|
|||
|
||||
struct FFXIVIpcSocialRequestError : FFXIVIpcBasePacket<SocialRequestError>
|
||||
{
|
||||
uint32_t unknown_p1; // Added on 4.2, unknown. Possibly padding/crossworld related
|
||||
uint32_t unknown_p2;
|
||||
uint32_t messageId; // if 0 then type's message is used (type must 2/4/5 or it wont print)
|
||||
Common::SocialCategory category; // 2 - friend request, 4 - fc petition, 5 - fc invitation, anything else and wont print
|
||||
uint8_t unknown; // possibly padding
|
||||
|
@ -136,7 +141,8 @@ struct FFXIVIpcSocialRequestResponse : FFXIVIpcBasePacket<SocialRequestResponse>
|
|||
uint64_t contentId;
|
||||
uint32_t unknown;
|
||||
Common::SocialCategory category; // Common::SocialCategory
|
||||
Common::SocialRequestResponse response; // Common::SocialRequestResponse
|
||||
Common::SocialRequestExecute execute; // Common::SocialRequestResponse
|
||||
uint8_t unknown2; // possibly padding
|
||||
char name[0x20];
|
||||
uint16_t padding;
|
||||
};
|
||||
|
@ -654,37 +660,14 @@ struct FFXIVIpcInitZone : FFXIVIpcBasePacket<InitZone>
|
|||
*/
|
||||
struct FFXIVIpcInitUI : FFXIVIpcBasePacket<InitUI>
|
||||
{
|
||||
// plain C types for a bit until the packet is actually fixed.
|
||||
// makes conversion between different editors easier.
|
||||
uint64_t contentId;
|
||||
uint32_t unknown8;
|
||||
uint32_t unknownC;
|
||||
uint32_t charId;
|
||||
uint32_t restedExp;
|
||||
uint16_t unknown18;
|
||||
uint8_t maxLevel;
|
||||
uint8_t expansion;
|
||||
uint8_t unknown1A;
|
||||
uint8_t race;
|
||||
uint8_t tribe;
|
||||
uint8_t gender;
|
||||
uint8_t currentJob;
|
||||
uint8_t currentClass;
|
||||
uint8_t deity;
|
||||
uint8_t namedayMonth;
|
||||
uint8_t namedayDay;
|
||||
uint8_t cityState;
|
||||
uint8_t homepoint;
|
||||
uint8_t unknown26; // 2 if "warrior of light"
|
||||
uint8_t petHotBar;
|
||||
uint8_t companionRank;
|
||||
uint8_t companionStars;
|
||||
uint8_t companionSp;
|
||||
uint8_t companionUnk2B;
|
||||
uint8_t companionColor;
|
||||
uint8_t companionFavoFeed;
|
||||
uint8_t companionUnk2E;
|
||||
float companionTimePassed;
|
||||
uint32_t companionCurrentExp;
|
||||
uint32_t unknown38;
|
||||
uint32_t unknown3C;
|
||||
uint32_t fishCaught;
|
||||
uint32_t useBaitCatalogId;
|
||||
|
@ -694,60 +677,91 @@ struct FFXIVIpcInitUI : FFXIVIpcBasePacket<InitUI>
|
|||
uint16_t pvpStats[6];
|
||||
uint16_t playerCommendations;
|
||||
uint16_t pvpStats1;
|
||||
uint8_t frontlineCampaigns[4];
|
||||
uint16_t frontlineCampaigns[4];
|
||||
uint16_t frontlineCampaignsWeekly;
|
||||
uint8_t currentRelic;
|
||||
uint8_t currentBook;
|
||||
uint8_t masterCrafterMask;
|
||||
uint8_t unknown69;
|
||||
uint8_t unknown6A;
|
||||
uint8_t unknown6B;
|
||||
uint8_t unknown6C[4];
|
||||
uint8_t unknown70[61];
|
||||
uint8_t preNamePadding;
|
||||
char name[32];
|
||||
uint8_t unknownOword[16];
|
||||
uint8_t unknownDE[2];
|
||||
uint16_t currentRelic;
|
||||
uint16_t currentBook;
|
||||
uint16_t masterCrafterMask;
|
||||
uint16_t unknown69;
|
||||
uint16_t unknown6A;
|
||||
uint16_t unknown6B;
|
||||
uint16_t unknown6C[4];
|
||||
uint16_t unknown50[34];
|
||||
uint16_t unknown18;
|
||||
uint16_t maxLevel;
|
||||
uint16_t expansion;
|
||||
uint16_t unknown76;
|
||||
uint16_t race;
|
||||
uint16_t tribe;
|
||||
uint16_t gender;
|
||||
uint16_t currentJob;
|
||||
uint16_t currentClass;
|
||||
uint16_t deity;
|
||||
uint16_t namedayMonth;
|
||||
uint16_t namedayDay;
|
||||
uint16_t cityState;
|
||||
uint16_t homepoint;
|
||||
uint16_t unknown26;
|
||||
uint16_t petHotBar;
|
||||
uint16_t companionRank;
|
||||
uint16_t companionStars;
|
||||
uint16_t companionSp;
|
||||
uint16_t companionUnk2B;
|
||||
uint16_t companionColor;
|
||||
uint16_t companionFavoFeed;
|
||||
uint16_t companionUnk89;
|
||||
uint16_t companionUnk90[5];
|
||||
uint16_t unknown90[7];
|
||||
uint16_t unknown9E;
|
||||
uint16_t unknownA0;
|
||||
uint32_t exp[25];
|
||||
uint16_t unknown564[16];
|
||||
uint32_t pvpFrontlineOverall1st;
|
||||
uint32_t pvpFrontlineOverall2nd;
|
||||
uint32_t pvpFrontlineOverall3rd;
|
||||
uint16_t relicBookCompletion1[4];
|
||||
uint16_t levels[25];
|
||||
uint16_t levelsPadding;
|
||||
uint32_t exp[25];
|
||||
uint8_t unlockBitmask[64];
|
||||
uint8_t aetheryte[16];
|
||||
uint8_t discovery[421];
|
||||
uint8_t howto[33];
|
||||
uint8_t minions[37];
|
||||
uint8_t chocoboTaxiMask[8];
|
||||
uint8_t contentClearMask[108];
|
||||
uint8_t contentClearPadding;
|
||||
uint16_t unknown428[8];
|
||||
uint8_t companionBardingMask[8];
|
||||
uint8_t companionEquippedHead;
|
||||
uint8_t companionEquippedBody;
|
||||
uint8_t companionEquippedFeet;
|
||||
uint8_t companionUnk4[4];
|
||||
uint8_t companion_fields[11];
|
||||
uint8_t companion_name[21];
|
||||
uint8_t companionDefRank;
|
||||
uint8_t companionAttRank;
|
||||
uint8_t companionHealRank;
|
||||
uint8_t mountGuideMask[15];
|
||||
uint8_t fishingGuideMask[89];
|
||||
uint8_t fishingSpotVisited[25];
|
||||
uint16_t unknown15C[8];
|
||||
uint16_t fishingRecordsFish[26];
|
||||
uint16_t fishingRecordsFishWeight[26];
|
||||
uint8_t unknownMask554[15];
|
||||
uint8_t unknownMask4Padding;
|
||||
uint8_t unknown564[19];
|
||||
uint8_t rankAmalJaa;
|
||||
uint8_t rankSylph;
|
||||
uint8_t rankKobold;
|
||||
uint8_t rankSahagin;
|
||||
uint8_t rankIxal;
|
||||
uint8_t rankVanu;
|
||||
uint8_t rankVath;
|
||||
uint8_t rankMoogle;
|
||||
uint8_t rankKojin;
|
||||
uint8_t rankAnata;
|
||||
uint16_t unknownMask554[44];
|
||||
uint16_t companion_name[21];
|
||||
uint16_t companionDefRank;
|
||||
uint16_t companionAttRank;
|
||||
uint16_t companionHealRank;
|
||||
uint16_t mountGuideMask[16];
|
||||
char name[32];
|
||||
uint16_t unknownOword[16];
|
||||
uint16_t unknown258;
|
||||
uint16_t unlockBitmask[64];
|
||||
uint16_t aetheryte[17];
|
||||
uint16_t discovery[421];
|
||||
uint16_t howto[33];
|
||||
uint16_t minions[38];
|
||||
uint16_t chocoboTaxiMask[8];
|
||||
uint16_t contentClearMask[111];
|
||||
uint16_t contentClearPadding;
|
||||
uint16_t unknown428[8];
|
||||
uint16_t companionBardingMask[8];
|
||||
uint16_t companionEquippedHead;
|
||||
uint16_t companionEquippedBody;
|
||||
uint16_t companionEquippedFeet;
|
||||
uint16_t companionUnk4[4];
|
||||
uint16_t companion_fields[11];
|
||||
uint16_t fishingGuideMask[89];
|
||||
uint16_t fishingSpotVisited[25];
|
||||
uint16_t unknownMask4Padding;
|
||||
uint16_t rankAmalJaa;
|
||||
uint16_t rankSylph;
|
||||
uint16_t rankKobold;
|
||||
uint16_t rankSahagin;
|
||||
uint16_t rankIxal;
|
||||
uint16_t rankVanu;
|
||||
uint16_t rankVath;
|
||||
uint16_t rankMoogle;
|
||||
uint16_t rankKojin;
|
||||
uint16_t rankAnata;
|
||||
uint16_t expAmalJaa;
|
||||
uint16_t expSylph;
|
||||
uint16_t expKobold;
|
||||
|
@ -758,42 +772,38 @@ struct FFXIVIpcInitUI : FFXIVIpcBasePacket<InitUI>
|
|||
uint16_t expMoogle;
|
||||
uint16_t expKojin;
|
||||
uint16_t expAnata;
|
||||
uint8_t unknown596[10];
|
||||
uint16_t unknown596[10];
|
||||
uint16_t unknown5A0[5];
|
||||
uint8_t unknownMask59E[5];
|
||||
uint8_t unknown5A3[18];
|
||||
uint8_t unknownMask5C1[28];
|
||||
uint8_t unknown_03411;
|
||||
uint16_t unknownMask59E[5];
|
||||
uint16_t unknown5A3[18];
|
||||
uint16_t unknownMask5C1[28];
|
||||
uint16_t unknown_03411;
|
||||
uint32_t unknownDword5E0;
|
||||
uint8_t relicBookCompletion[12];
|
||||
uint8_t sightseeingMask[26];
|
||||
uint16_t unknown_XXX;
|
||||
uint32_t pvpFrontlineOverall1st;
|
||||
uint32_t pvpFrontlineOverall2nd;
|
||||
uint32_t pvpFrontlineOverall3rd;
|
||||
uint16_t pvpFrontlineWeekly1st;
|
||||
uint16_t pvpFrontlineWeekly2nd;
|
||||
uint16_t pvpFrontlineWeekly3rd;
|
||||
uint8_t unknown61E;
|
||||
uint8_t unknown61F[32];
|
||||
uint8_t unknown63F[22];
|
||||
uint8_t tripleTriadCards[28];
|
||||
uint8_t unknown671[11];
|
||||
uint8_t unknownMask67C[22];
|
||||
uint8_t unknown692[3];
|
||||
uint8_t orchestrionMask[40];
|
||||
uint8_t hallOfNoviceCompleteMask[3];
|
||||
uint8_t unknownMask6C0[11];
|
||||
uint8_t unknownMask6CB[16];
|
||||
uint8_t unknown6DB[14];
|
||||
uint8_t unlockedRaids[28];
|
||||
uint8_t unlockedDungeons[18];
|
||||
uint8_t unlockedGuildhests[10];
|
||||
uint8_t unlockedTrails[7];
|
||||
uint8_t unlockedPvp[5];
|
||||
uint8_t unknownMask72D[28];
|
||||
uint8_t unknownMask749[18];
|
||||
uint8_t unknown749[23];
|
||||
uint16_t relicBookCompletion2[8];
|
||||
uint16_t sightseeingMask[26];
|
||||
uint16_t unknown_XXX;
|
||||
uint16_t unknown61E[20];
|
||||
uint16_t unknown656[29];
|
||||
uint16_t unknown63F[22];
|
||||
uint16_t tripleTriadCards[28];
|
||||
uint16_t unknown671[11];
|
||||
uint16_t unknownMask67C[22];
|
||||
uint16_t unknown692[3];
|
||||
uint16_t orchestrionMask[40];
|
||||
uint16_t hallOfNoviceCompleteMask[3];
|
||||
uint16_t unknownMask6C0[11];
|
||||
uint16_t unknownMask6CB[16];
|
||||
uint16_t unknown6DB[14];
|
||||
uint16_t unlockedRaids[28];
|
||||
uint16_t unlockedDungeons[18];
|
||||
uint16_t unlockedGuildhests[10];
|
||||
uint16_t unlockedTrials[7];
|
||||
uint16_t unlockedPvp[5];
|
||||
uint16_t unknownMask72D[28];
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -1044,7 +1054,7 @@ struct FFXIVIpcEventStart : FFXIVIpcBasePacket<EventStart>
|
|||
/* 000D */ uint8_t param2;
|
||||
/* 000E */ uint16_t padding;
|
||||
/* 0010 */ uint32_t param3;
|
||||
/* 0014 */ uint32_t contentId;
|
||||
/* 0014 */ uint32_t padding1;
|
||||
};
|
||||
|
||||
|
||||
|
@ -1081,7 +1091,8 @@ struct FFXIVIpcDirectorPlayScene : FFXIVIpcBasePacket<DirectorPlayScene>
|
|||
uint8_t param4;
|
||||
uint8_t padding1[3];
|
||||
uint32_t param5;
|
||||
uint8_t unknown[0x40];
|
||||
uint8_t unknown8[0x08];
|
||||
uint8_t unknown[0x38];
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -1407,6 +1418,18 @@ struct FFXIVIpcObjectDespawn : FFXIVIpcBasePacket<ObjectDespawn>
|
|||
uint8_t padding[7];
|
||||
};
|
||||
|
||||
struct FFXIVIpcDuelChallenge : FFXIVIpcBasePacket<DuelChallenge>
|
||||
{
|
||||
uint8_t otherClassJobId;
|
||||
uint8_t otherLevel; // class job level
|
||||
uint8_t challengeByYou; // 0 if the other challenges you, 1 if you challenges the other.
|
||||
uint8_t otherItemLevel;
|
||||
|
||||
uint32_t otherActorId;
|
||||
|
||||
char otherName[32];
|
||||
};
|
||||
|
||||
|
||||
} /* Server */
|
||||
} /* Packets */
|
||||
|
|
|
@ -14,7 +14,7 @@ set(RUNTIME_OUTPUT_DIRECTORY "${SCRIPT_LIB_DIR}")
|
|||
file(GLOB children "${CMAKE_CURRENT_SOURCE_DIR}/*" )
|
||||
foreach(_scriptDir ${children})
|
||||
get_filename_component(_name "${_scriptDir}" NAME_WE)
|
||||
if(IS_DIRECTORY ${_scriptDir} AND NOT ${_name} MATCHES "CMakeFiles")
|
||||
if(IS_DIRECTORY ${_scriptDir} AND NOT ${_name} MATCHES "CMakeFiles" AND NOT ${_name} MATCHES "\\.dir$")
|
||||
message("discovered plugin lib: ${_scriptDir} (${_name})")
|
||||
|
||||
file(GLOB_RECURSE SCRIPT_BUILD_FILES "${_scriptDir}/*.cpp")
|
||||
|
|
|
@ -4,88 +4,6 @@
|
|||
#include <Forwards.h>
|
||||
#include <Script/NativeScriptApi.h>
|
||||
|
||||
enum EventFlags
|
||||
{
|
||||
NONE = 0,
|
||||
NO_DEFAULT_CAMERA = 0x00000001,
|
||||
FADE_OUT = 0x00000002,
|
||||
INVIS_ENPC = 0x00000004,
|
||||
INVIS_EOBJ = 0x00000008,
|
||||
INVIS_BNPC = 0x00000010,
|
||||
INVIS_OTHER_PC = 0x00000020,
|
||||
INVIS_PARTY_PC = 0x00000040,
|
||||
INVIS_PARTY_BUDDY = 0x10000000,
|
||||
INVIS_GATHERING_POINT = 0x00000080,
|
||||
INVIS_AETHERYTE = 0x00000100,
|
||||
INVIS_TREASURE = 0x00000200,
|
||||
CONDITION_CUTSCENE = 0x00000400,
|
||||
HIDE_UI = 0x00000800,
|
||||
INVIS_ALL = 0xF80003FC,
|
||||
AUTO_LOC_CAMERA = 0x00001000,
|
||||
HIDE_HOTBAR = 0x00002000,
|
||||
INVINCIBLE = 0x00004000,
|
||||
SILENT_ENTER_TERRI_ENV = 0x00008000,
|
||||
SILENT_ENTER_TERRI_BGM = 0x00010000,
|
||||
SILENT_ENTER_TERRI_SE = 0x00020000,
|
||||
SILENT_ENTER_TERRI_ALL = 0x00038000,
|
||||
DISABLE_SKIP = 0x00080000,
|
||||
HIDE_FESTIVAL = 0x00200000,
|
||||
DISABLE_STEALTH = 0x00400000,
|
||||
ROLLBACK_HIDE_UI = 0x00800000,
|
||||
LOCK_HUD = 0x01000000,
|
||||
LOCK_HOTBAR = 0x02000000,
|
||||
DISABLE_CANCEL_EMOTE = 0x04000000,
|
||||
INVIS_AOE = 0x08000000,
|
||||
INVIS_ALLIANCE_PC = 0x20000000,
|
||||
INVIS_ALLIANCE_BUDDY = 0x40000000,
|
||||
INVIS_COMPANION = 0x80000000,
|
||||
SET_BASE = 0xF8400EFB,
|
||||
SET_INVIS_BASE = 0xF8400FFF,
|
||||
SET_EOBJ_BASE = 0xF8400EF3
|
||||
};
|
||||
|
||||
enum EventTypes
|
||||
{
|
||||
EVENT_TALK = 1,
|
||||
EVENT_EMOTE = 2,
|
||||
EVENT_DISTANCE_BELOW = 3,
|
||||
EVENT_DISTANCE_OVER = 4,
|
||||
EVENT_BATTLE_REWARD = 5,
|
||||
EVENT_CRAFT = 6,
|
||||
EVENT_NEST = 7,
|
||||
EVENT_EVENT_ITEM = 8,
|
||||
EVENT_DROP = 9,
|
||||
EVENT_WITHIN_RANGE = 10,
|
||||
EVENT_OUTSIDE_RANGE = 11,
|
||||
EVENT_GAME_START = 12,
|
||||
EVENT_GAME_PROGRESS = 13,
|
||||
EVENT_ENTER_TERRITORY = 15,
|
||||
EVENT_GAME_COME_BACK = 17,
|
||||
EVENT_ACTION_RESULT = 18,
|
||||
EVENT_MATERIA_CRAFT = 19,
|
||||
EVENT_FISHING = 20,
|
||||
EVENT_UI = 21,
|
||||
EVENT_HOUSING = 22,
|
||||
EVENT_SAY = 23,
|
||||
EVENT_TABLE_GAME = 24
|
||||
};
|
||||
|
||||
enum EventFinishState
|
||||
{
|
||||
UNLOCK = 1,
|
||||
KEEPLOCK = 0
|
||||
};
|
||||
|
||||
enum DamageType
|
||||
{
|
||||
STD_DAMAGE = 0X03,
|
||||
STD_HEAL = 0X04,
|
||||
STD_MP_LOSS = 0X0A,
|
||||
STD_MP_GAIN = 0X0B,
|
||||
STD_TP_LOSS = 0X0C,
|
||||
STD_TP_GAIN = 0X0D
|
||||
};
|
||||
|
||||
|
||||
#include <Event/EventDefs.h>
|
||||
|
||||
#endif //SAPPHIRE_SCRIPTOBJECT_H
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
#include <Script/NativeScriptApi.h>
|
||||
|
||||
#include "ActionSprint3.cpp"
|
||||
|
||||
const ScriptObject* ptrs[] =
|
||||
{
|
||||
static_cast< ScriptObject* >( new ActionSprint3 ),
|
||||
|
||||
nullptr
|
||||
};
|
||||
|
||||
extern "C" EXPORT const ScriptObject** getScripts()
|
||||
{
|
||||
return ptrs;
|
||||
}
|
|
@ -21,11 +21,11 @@ public:
|
|||
{
|
||||
if( player.isAetheryteRegistered( eventId & 0xFFFF ) )
|
||||
{
|
||||
player.eventPlay( eventId, 2, 0, []( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
|
||||
player.playScene( eventId, 2, 0, []( Entity::Player& player, const Event::SceneResult& result )
|
||||
{
|
||||
if( param1 == 256 )
|
||||
if( result.param1 == 256 )
|
||||
{
|
||||
player.teleport( param2, 2 );
|
||||
player.teleport( result.param2, 2 );
|
||||
}
|
||||
} );
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ public:
|
|||
player.eventActionStart( eventId, ACTION_ATTUNE, []( Entity::Player& player, uint32_t eventId, uint64_t additional )
|
||||
{
|
||||
player.registerAetheryte( eventId & 0xFFFF );
|
||||
player.eventPlay( eventId, 3, 0, 0, 0 );
|
||||
player.playScene( eventId, 3, 0, 0, 0 );
|
||||
},
|
||||
[] ( Entity::Player& ply, uint32_t evntId, uint64_t additional )
|
||||
{
|
||||
|
|
|
@ -23,20 +23,19 @@ public:
|
|||
{
|
||||
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 )
|
||||
player.playScene( eventId, 0, 1, []( Entity::Player& player, const Event::SceneResult& result )
|
||||
{
|
||||
if( param1 == 256 ) // set homepoint
|
||||
if( result.param1 == 256 ) // set homepoint
|
||||
{
|
||||
player.setHomepoint( eventId & 0xFFFF );
|
||||
player.sendQuestMessage( eventId, 2, 0xEA, 0, 0 );
|
||||
}
|
||||
else if( param1 == 512 ) // aethernet access
|
||||
player.setHomepoint( result.eventId & 0xFFFF );
|
||||
player.sendQuestMessage( result.eventId, 2, 0xEA, 0, 0 );
|
||||
} else if( result.param1 == 512 ) // aethernet access
|
||||
{
|
||||
if( param2 == 4 )
|
||||
if( result.param2 == 4 )
|
||||
{
|
||||
player.teleport( param3, 2 );
|
||||
player.teleport( result.param3, 2 );
|
||||
}
|
||||
else if( param2 == 2 ) // register favored destination
|
||||
else if( result.param2 == 2 ) // register favored destination
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -10,25 +10,25 @@ public:
|
|||
|
||||
void Scene00000( Entity::Player& player )
|
||||
{
|
||||
auto callback = [ this ]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
|
||||
auto callback = [this]( Entity::Player& player, const Event::SceneResult& result )
|
||||
{
|
||||
if( param2 != 0 )
|
||||
if( result.param2 != 0 )
|
||||
{
|
||||
Scene00001( player, param2 );
|
||||
Scene00001( player, result.param2 );
|
||||
}
|
||||
};
|
||||
|
||||
player.eventPlay( getId(), 0, 0x2000, 0, 1, callback );
|
||||
player.playScene( getId(), 0, 0x2000, 0, 1, callback );
|
||||
}
|
||||
|
||||
void Scene00001( Entity::Player& player, uint16_t returnScene )
|
||||
{
|
||||
auto callback = []( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
|
||||
auto callback = []( Entity::Player& player, const Event::SceneResult& result )
|
||||
{
|
||||
// todo: this is fucked
|
||||
};
|
||||
|
||||
player.eventPlay( getId(), 1, 0xFB2EC8F8, 0, 1, returnScene, callback );
|
||||
player.playScene( getId(), 1, 0xFB2EC8F8, 0, 1, returnScene, callback );
|
||||
}
|
||||
|
||||
void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
|
||||
|
|
|
@ -11,39 +11,39 @@ public:
|
|||
// menu
|
||||
void Scene00000( Entity::Player& player )
|
||||
{
|
||||
auto callback = [ this ]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
|
||||
auto callback = [this]( Entity::Player& player, const Event::SceneResult& result )
|
||||
{
|
||||
if( param2 > 0 )
|
||||
Scene00001( player, param2 );
|
||||
if( result.param2 > 0 )
|
||||
Scene00001( player, result.param2 );
|
||||
};
|
||||
|
||||
player.eventPlay( getId(), 0, 0x2000, 0, 1, callback );
|
||||
player.playScene( getId(), 0, 0x2000, 0, 1, callback );
|
||||
}
|
||||
|
||||
// lay down
|
||||
void Scene00001( Entity::Player& player, uint16_t param )
|
||||
{
|
||||
auto callback = [ this ]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
|
||||
auto callback = [this]( Entity::Player& player, const Event::SceneResult& result )
|
||||
{
|
||||
Scene00002( player, param2 );
|
||||
Scene00002( player, result.param2 );
|
||||
};
|
||||
|
||||
player.eventPlay( getId(), 1, 0xF32E48F8, 0, 1, param, callback );
|
||||
player.playScene( getId(), 1, 0xF32E48F8, 0, 1, param, callback );
|
||||
}
|
||||
|
||||
// logout
|
||||
void Scene00002( Entity::Player& player, uint16_t param )
|
||||
{
|
||||
player.eventPlay( getId(), 2, 0xF32E48F8, 0, 1, param, nullptr );
|
||||
player.playScene( getId(), 2, 0xF32E48F8, 0, 1, param, nullptr );
|
||||
}
|
||||
|
||||
// wake up
|
||||
void Scene00100( Entity::Player& player )
|
||||
{
|
||||
auto callback = []( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
|
||||
{};
|
||||
auto callback = []( Entity::Player& player, const Event::SceneResult& result )
|
||||
{ };
|
||||
|
||||
player.eventPlay( getId(), 100, 0x800, 0, 0, callback );
|
||||
player.playScene( getId(), 100, 0x800, 0, 0, callback );
|
||||
}
|
||||
|
||||
void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
|
||||
|
@ -51,7 +51,7 @@ public:
|
|||
Scene00000( player );
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
{
|
||||
Scene00100( player );
|
||||
}
|
||||
|
|
|
@ -14,9 +14,9 @@ public:
|
|||
|
||||
void Scene00001( Entity::Player& player )
|
||||
{
|
||||
auto callback = [ this ]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
|
||||
auto callback = [this]( Entity::Player& player, const Event::SceneResult& result )
|
||||
{
|
||||
switch( param2 )
|
||||
switch( result.param2 )
|
||||
{
|
||||
case ACTION_CREATE:
|
||||
Scene00002( player );
|
||||
|
@ -32,25 +32,25 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
player.eventPlay( getId(), 1, 0, 0, 0, callback );
|
||||
player.playScene( getId(), 1, 0, 0, 0, callback );
|
||||
}
|
||||
|
||||
// create linkshell
|
||||
void Scene00002( Entity::Player& player )
|
||||
{
|
||||
player.eventPlay( getId(), 2, 0, 0, 0 );
|
||||
player.playScene( getId(), 2, 0, 0, 0 );
|
||||
}
|
||||
|
||||
// rename linkshell
|
||||
void Scene00003( Entity::Player& player )
|
||||
{
|
||||
player.eventPlay( getId(), 3, 0, 0, 0 );
|
||||
player.playScene( getId(), 3, 0, 0, 0 );
|
||||
}
|
||||
|
||||
// remove linkshell
|
||||
void Scene00004( Entity::Player& player )
|
||||
{
|
||||
player.eventPlay( getId(), 4, 0, 0, 0 );
|
||||
player.playScene( getId(), 4, 0, 0, 0 );
|
||||
}
|
||||
|
||||
void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
|
||||
|
|
|
@ -10,7 +10,7 @@ public:
|
|||
|
||||
void Scene00000( Entity::Player& player )
|
||||
{
|
||||
player.eventPlay( getId(), 0, 0x2000, 0, 1 );
|
||||
player.playScene( getId(), 0, 0x2000, 0, 1 );
|
||||
}
|
||||
|
||||
void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
#include <Script/NativeScriptApi.h>
|
||||
|
||||
#include "Aethernet.cpp"
|
||||
#include "Aetheryte.cpp"
|
||||
#include "HouFurOrchestrion.cpp"
|
||||
#include "CmnDefInnBed.cpp"
|
||||
#include "CmnDefCutSceneReplay.cpp"
|
||||
#include "CmnDefLinkShell.cpp"
|
||||
|
||||
const ScriptObject* ptrs[] =
|
||||
{
|
||||
static_cast< ScriptObject* >( new Aethernet ),
|
||||
static_cast< ScriptObject* >( new Aetheryte ),
|
||||
static_cast< ScriptObject* >( new HouFurOrchestrion ),
|
||||
static_cast< ScriptObject* >( new CmnDefInnBed ),
|
||||
static_cast< ScriptObject* >( new CmnDefCutSceneReplay ),
|
||||
static_cast< ScriptObject* >( new CmnDefLinkShell ),
|
||||
|
||||
nullptr
|
||||
};
|
||||
|
||||
extern "C" EXPORT const ScriptObject** getScripts()
|
||||
{
|
||||
return ptrs;
|
||||
}
|
|
@ -31,7 +31,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -1,547 +0,0 @@
|
|||
#include <Script/NativeScriptApi.h>
|
||||
|
||||
#include "pvp/TheFeastTeamRanked.cpp"
|
||||
#include "pvp/SealRockSeize.cpp"
|
||||
#include "pvp/TheFeast4on4Ranked.cpp"
|
||||
#include "pvp/TheFeast4on4LightParty.cpp"
|
||||
#include "pvp/TheFeastRanked.cpp"
|
||||
#include "pvp/TheFieldsofGloryShatter.cpp"
|
||||
#include "pvp/TheFeastTraining.cpp"
|
||||
#include "pvp/Astragalos.cpp"
|
||||
#include "pvp/TheFeast4on4Training.cpp"
|
||||
#include "pvp/TheFeastCustomMatchFeastingGrounds.cpp"
|
||||
#include "pvp/TheFeastCustomMatchLichenweed.cpp"
|
||||
#include "pvp/TheBorderlandRuinsSecure.cpp"
|
||||
#include "pvp/TheFeastCustomMatchCrystalTower.cpp"
|
||||
#include "dungeons/TheTamTaraDeepcroft.cpp"
|
||||
#include "dungeons/DomaCastle.cpp"
|
||||
#include "dungeons/HullbreakerIsleHard.cpp"
|
||||
#include "dungeons/Snowcloak.cpp"
|
||||
#include "dungeons/TheGreatGubalLibrary.cpp"
|
||||
#include "dungeons/TheWanderersPalace.cpp"
|
||||
#include "dungeons/Xelphatol.cpp"
|
||||
#include "dungeons/TheLostCityofAmdaporHard.cpp"
|
||||
#include "dungeons/SaintMociannesArboretum.cpp"
|
||||
#include "dungeons/BardamsMettle.cpp"
|
||||
#include "dungeons/TheTamTaraDeepcroftHard.cpp"
|
||||
#include "dungeons/KuganeCastle.cpp"
|
||||
#include "dungeons/TheDrownedCityofSkalla.cpp"
|
||||
#include "dungeons/ShisuioftheVioletTides.cpp"
|
||||
#include "dungeons/CuttersCry.cpp"
|
||||
#include "dungeons/HellsLid.cpp"
|
||||
#include "dungeons/TheVault.cpp"
|
||||
#include "dungeons/TheStoneVigilHard.cpp"
|
||||
#include "dungeons/Sastasha.cpp"
|
||||
#include "dungeons/TheFractalContinuum.cpp"
|
||||
#include "dungeons/TheLostCityofAmdapor.cpp"
|
||||
#include "dungeons/TheAurumVale.cpp"
|
||||
#include "dungeons/SohrKhai.cpp"
|
||||
#include "dungeons/TheSunkenTempleofQarnHard.cpp"
|
||||
#include "dungeons/Neverreap.cpp"
|
||||
#include "dungeons/TheAntitower.cpp"
|
||||
#include "dungeons/Halatali.cpp"
|
||||
#include "dungeons/TheAery.cpp"
|
||||
#include "dungeons/PharosSiriusHard.cpp"
|
||||
#include "dungeons/CastrumMeridianum.cpp"
|
||||
#include "dungeons/TheGreatGubalLibraryHard.cpp"
|
||||
#include "dungeons/SohmAl.cpp"
|
||||
#include "dungeons/TheTempleoftheFist.cpp"
|
||||
#include "dungeons/TheKeeperoftheLake.cpp"
|
||||
#include "dungeons/AmdaporKeepHard.cpp"
|
||||
#include "dungeons/TheWanderersPalaceHard.cpp"
|
||||
#include "dungeons/CastrumAbania.cpp"
|
||||
#include "dungeons/AlaMhigo.cpp"
|
||||
#include "dungeons/PharosSirius.cpp"
|
||||
#include "dungeons/TheStoneVigil.cpp"
|
||||
#include "dungeons/TheThousandMawsofTotoRak.cpp"
|
||||
#include "dungeons/BrayfloxsLongstopHard.cpp"
|
||||
#include "dungeons/DzemaelDarkhold.cpp"
|
||||
#include "dungeons/SohmAlHard.cpp"
|
||||
#include "dungeons/HaukkeManor.cpp"
|
||||
#include "dungeons/HullbreakerIsle.cpp"
|
||||
#include "dungeons/TheFractalContinuumHard.cpp"
|
||||
#include "dungeons/TheSirensongSea.cpp"
|
||||
#include "dungeons/BaelsarsWall.cpp"
|
||||
#include "dungeons/HalataliHard.cpp"
|
||||
#include "dungeons/TheAetherochemicalResearchFacility.cpp"
|
||||
#include "dungeons/SastashaHard.cpp"
|
||||
#include "dungeons/CopperbellMinesHard.cpp"
|
||||
#include "dungeons/TheSunkenTempleofQarn.cpp"
|
||||
#include "dungeons/AmdaporKeep.cpp"
|
||||
#include "dungeons/TheDuskVigil.cpp"
|
||||
#include "dungeons/BrayfloxsLongstop.cpp"
|
||||
#include "dungeons/HaukkeManorHard.cpp"
|
||||
#include "dungeons/CopperbellMines.cpp"
|
||||
#include "dungeons/ThePraetorium.cpp"
|
||||
#include "questbattles/RaisingtheSword.cpp"
|
||||
#include "questbattles/InterdimensionalRift.cpp"
|
||||
#include "questbattles/CuriousGorgeMeetsHisMatch.cpp"
|
||||
#include "questbattles/WithHeartandSteel.cpp"
|
||||
#include "questbattles/OneLifeforOneWorld.cpp"
|
||||
#include "questbattles/ABloodyReunion.cpp"
|
||||
#include "questbattles/MatsubaMayhem.cpp"
|
||||
#include "questbattles/BloodontheDeck.cpp"
|
||||
#include "questbattles/OurCompromise.cpp"
|
||||
#include "questbattles/Naadam.cpp"
|
||||
#include "questbattles/InThalsName.cpp"
|
||||
#include "questbattles/TheResonant.cpp"
|
||||
#include "questbattles/OurUnsungHeroes.cpp"
|
||||
#include "questbattles/DarkwingDragon.cpp"
|
||||
#include "questbattles/BloodDragoon.cpp"
|
||||
#include "questbattles/ASpectaclefortheAges.cpp"
|
||||
#include "questbattles/ItsProbablyaTrap.cpp"
|
||||
#include "questbattles/TheBattleonBekko.cpp"
|
||||
#include "questbattles/TheHeartoftheProblem.cpp"
|
||||
#include "questbattles/TheOrphansandtheBrokenBlade.cpp"
|
||||
#include "questbattles/TheCarteneauFlatsHeliodrome.cpp"
|
||||
#include "questbattles/ReturnoftheBull.cpp"
|
||||
#include "questbattles/TheFaceofTrueEvil.cpp"
|
||||
#include "questbattles/WhenClansCollide.cpp"
|
||||
#include "raids/AlexanderTheArmoftheSonSavage.cpp"
|
||||
#include "raids/TheLabyrinthoftheAncients.cpp"
|
||||
#include "raids/SigmascapeV30.cpp"
|
||||
#include "raids/TheVoidArk.cpp"
|
||||
#include "raids/SyrcusTower.cpp"
|
||||
#include "raids/DeltascapeV20.cpp"
|
||||
#include "raids/TheFinalCoilofBahamutTurn1.cpp"
|
||||
#include "raids/SigmascapeV20Savage.cpp"
|
||||
#include "raids/TheFinalCoilofBahamutTurn3.cpp"
|
||||
#include "raids/SigmascapeV30Savage.cpp"
|
||||
#include "raids/TheBindingCoilofBahamutTurn2.cpp"
|
||||
#include "raids/AlexanderTheSouloftheCreatorSavage.cpp"
|
||||
#include "raids/DunScaith.cpp"
|
||||
#include "raids/DeltascapeV40Savage.cpp"
|
||||
#include "raids/TheSecondCoilofBahamutTurn1.cpp"
|
||||
#include "raids/AlexanderTheHeartoftheCreatorSavage.cpp"
|
||||
#include "raids/DeltascapeV40.cpp"
|
||||
#include "raids/TheSecondCoilofBahamutSavageTurn2.cpp"
|
||||
#include "raids/TheSecondCoilofBahamutTurn3.cpp"
|
||||
#include "raids/TheUnendingCoilofBahamutUltimate.cpp"
|
||||
#include "raids/TheSecondCoilofBahamutTurn2.cpp"
|
||||
#include "raids/TheWorldofDarkness.cpp"
|
||||
#include "raids/SigmascapeV10.cpp"
|
||||
#include "raids/AlexanderTheBurdenoftheSonSavage.cpp"
|
||||
#include "raids/TheFinalCoilofBahamutTurn2.cpp"
|
||||
#include "raids/AlexanderTheBurdenoftheFatherSavage.cpp"
|
||||
#include "raids/AlexanderTheHeartoftheCreator.cpp"
|
||||
#include "raids/TheBindingCoilofBahamutTurn4.cpp"
|
||||
#include "raids/AlexanderTheBreathoftheCreatorSavage.cpp"
|
||||
#include "raids/AlexanderTheEyesoftheCreatorSavage.cpp"
|
||||
#include "raids/AlexanderTheArmoftheFatherSavage.cpp"
|
||||
#include "raids/DeltascapeV30.cpp"
|
||||
#include "raids/AlexanderTheFistoftheFather.cpp"
|
||||
#include "raids/DeltascapeV10.cpp"
|
||||
#include "raids/DeltascapeV10Savage.cpp"
|
||||
#include "raids/SigmascapeV40Savage.cpp"
|
||||
#include "raids/AlexanderTheCuffoftheSon.cpp"
|
||||
#include "raids/AlexanderTheFistoftheSonSavage.cpp"
|
||||
#include "raids/TheSecondCoilofBahamutSavageTurn3.cpp"
|
||||
#include "raids/AlexanderTheArmoftheFather.cpp"
|
||||
#include "raids/AlexanderTheCuffoftheSonSavage.cpp"
|
||||
#include "raids/TheBindingCoilofBahamutTurn5.cpp"
|
||||
#include "raids/SigmascapeV20.cpp"
|
||||
#include "raids/AlexanderTheCuffoftheFather.cpp"
|
||||
#include "raids/TheSecondCoilofBahamutSavageTurn1.cpp"
|
||||
#include "raids/TheBindingCoilofBahamutTurn1.cpp"
|
||||
#include "raids/AlexanderTheBurdenoftheSon.cpp"
|
||||
#include "raids/AlexanderTheBreathoftheCreator.cpp"
|
||||
#include "raids/TheFinalCoilofBahamutTurn4.cpp"
|
||||
#include "raids/DeltascapeV30Savage.cpp"
|
||||
#include "raids/AlexanderTheFistoftheSon.cpp"
|
||||
#include "raids/AlexanderTheFistoftheFatherSavage.cpp"
|
||||
#include "raids/AlexanderTheArmoftheSon.cpp"
|
||||
#include "raids/TheBindingCoilofBahamutTurn3.cpp"
|
||||
#include "raids/SigmascapeV40.cpp"
|
||||
#include "raids/TheSecondCoilofBahamutTurn4.cpp"
|
||||
#include "raids/AlexanderTheCuffoftheFatherSavage.cpp"
|
||||
#include "raids/SigmascapeV10Savage.cpp"
|
||||
#include "raids/DeltascapeV20Savage.cpp"
|
||||
#include "raids/TheWeepingCityofMhach.cpp"
|
||||
#include "raids/TheRoyalCityofRabanastre.cpp"
|
||||
#include "raids/AlexanderTheBurdenoftheFather.cpp"
|
||||
#include "raids/AlexanderTheEyesoftheCreator.cpp"
|
||||
#include "raids/TheSecondCoilofBahamutSavageTurn4.cpp"
|
||||
#include "raids/AlexanderTheSouloftheCreator.cpp"
|
||||
#include "AkhAfahAmphitheatreExtreme.cpp"
|
||||
#include "guildhests/HeroontheHalfShell.cpp"
|
||||
#include "guildhests/BasicTrainingEnemyStrongholds.cpp"
|
||||
#include "guildhests/ShadowandClaw.cpp"
|
||||
#include "guildhests/AnnoytheVoid.cpp"
|
||||
#include "guildhests/StingingBack.cpp"
|
||||
#include "guildhests/FlickingSticksandTakingNames.cpp"
|
||||
#include "guildhests/SolemnTrinity.cpp"
|
||||
#include "guildhests/UndertheArmor.cpp"
|
||||
#include "guildhests/LongLivetheQueen.cpp"
|
||||
#include "guildhests/AllsWellthatEndsintheWell.cpp"
|
||||
#include "guildhests/MorethanaFeeler.cpp"
|
||||
#include "guildhests/PullingPoisonPosies.cpp"
|
||||
#include "guildhests/WardUp.cpp"
|
||||
#include "guildhests/BasicTrainingEnemyParties.cpp"
|
||||
#include "trials/TheStrikingTreeHard.cpp"
|
||||
#include "trials/TheJadeStoaExtreme.cpp"
|
||||
#include "trials/TheMinstrelsBalladThordansReign.cpp"
|
||||
#include "trials/TheBowlofEmbersHard.cpp"
|
||||
#include "trials/TheSingularityReactor.cpp"
|
||||
#include "trials/ContainmentBayS1T7Extreme.cpp"
|
||||
#include "trials/ContainmentBayS1T7.cpp"
|
||||
#include "trials/TheHowlingEyeHard.cpp"
|
||||
#include "trials/TheStrikingTreeExtreme.cpp"
|
||||
#include "trials/Emanation.cpp"
|
||||
#include "trials/SpecialEventI.cpp"
|
||||
#include "trials/TheLimitlessBlueExtreme.cpp"
|
||||
#include "trials/ThePoolofTributeExtreme.cpp"
|
||||
#include "trials/BattleontheBigBridge.cpp"
|
||||
#include "trials/TheRoyalMenagerie.cpp"
|
||||
#include "trials/BattleintheBigKeep.cpp"
|
||||
#include "trials/UrthsFount.cpp"
|
||||
#include "trials/EmanationExtreme.cpp"
|
||||
#include "trials/TheJadeStoa.cpp"
|
||||
#include "trials/TheHowlingEyeExtreme.cpp"
|
||||
#include "trials/TheBowlofEmbers.cpp"
|
||||
#include "trials/TheChrysalis.cpp"
|
||||
#include "trials/TheStepsofFaith.cpp"
|
||||
#include "trials/ARelicReborntheChimera.cpp"
|
||||
#include "trials/ContainmentBayP1T6.cpp"
|
||||
#include "trials/TheMinstrelsBalladNidhoggsRage.cpp"
|
||||
#include "trials/ThokastThokExtreme.cpp"
|
||||
#include "trials/ThornmarchExtreme.cpp"
|
||||
#include "trials/TheLimitlessBlueHard.cpp"
|
||||
#include "trials/ContainmentBayP1T6Extreme.cpp"
|
||||
#include "trials/TheNavelExtreme.cpp"
|
||||
#include "trials/SpecialEventII.cpp"
|
||||
#include "trials/TheWhorleaterExtreme.cpp"
|
||||
#include "trials/TheMinstrelsBalladUltimasBane.cpp"
|
||||
#include "trials/ContainmentBayZ1T9.cpp"
|
||||
#include "trials/TheFinalStepsofFaith.cpp"
|
||||
#include "trials/ThokastThokHard.cpp"
|
||||
#include "trials/AkhAfahAmphitheatreHard.cpp"
|
||||
#include "trials/CapeWestwind.cpp"
|
||||
#include "trials/TheMinstrelsBalladShinryusDomain.cpp"
|
||||
#include "trials/ContainmentBayZ1T9Extreme.cpp"
|
||||
#include "trials/SpecialEventIII.cpp"
|
||||
#include "trials/ThornmarchHard.cpp"
|
||||
#include "trials/TheDragonsNeck.cpp"
|
||||
#include "trials/TheNavelHard.cpp"
|
||||
#include "trials/TheWhorleaterHard.cpp"
|
||||
#include "trials/TheNavel.cpp"
|
||||
#include "trials/TheBowlofEmbersExtreme.cpp"
|
||||
#include "trials/ARelicReborntheHydra.cpp"
|
||||
#include "trials/ThePoolofTribute.cpp"
|
||||
#include "trials/TheHowlingEye.cpp"
|
||||
#include "deepdungeon/ThePalaceoftheDeadFloors181190.cpp"
|
||||
#include "deepdungeon/ThePalaceoftheDeadFloors6170.cpp"
|
||||
#include "deepdungeon/ThePalaceoftheDeadFloors151160.cpp"
|
||||
#include "deepdungeon/ThePalaceoftheDeadFloors4150.cpp"
|
||||
#include "deepdungeon/ThePalaceoftheDeadFloors5160.cpp"
|
||||
#include "deepdungeon/ThePalaceoftheDeadFloors3140.cpp"
|
||||
#include "deepdungeon/ThePalaceoftheDeadFloors1120.cpp"
|
||||
#include "deepdungeon/ThePalaceoftheDeadFloors110.cpp"
|
||||
#include "deepdungeon/ThePalaceoftheDeadFloors141150.cpp"
|
||||
#include "deepdungeon/ThePalaceoftheDeadFloors161170.cpp"
|
||||
#include "deepdungeon/ThePalaceoftheDeadFloors131140.cpp"
|
||||
#include "deepdungeon/ThePalaceoftheDeadFloors7180.cpp"
|
||||
#include "deepdungeon/ThePalaceoftheDeadFloors101110.cpp"
|
||||
#include "deepdungeon/ThePalaceoftheDeadFloors171180.cpp"
|
||||
#include "deepdungeon/ThePalaceoftheDeadFloors2130.cpp"
|
||||
#include "deepdungeon/ThePalaceoftheDeadFloors191200.cpp"
|
||||
#include "deepdungeon/ThePalaceoftheDeadFloors121130.cpp"
|
||||
#include "deepdungeon/ThePalaceoftheDeadFloors111120.cpp"
|
||||
#include "deepdungeon/ThePalaceoftheDeadFloors91100.cpp"
|
||||
#include "deepdungeon/ThePalaceoftheDeadFloors8190.cpp"
|
||||
#include "treasurehunt/TheAquapolis.cpp"
|
||||
#include "treasurehunt/TheLostCanalsofUznair.cpp"
|
||||
#include "treasurehunt/TheHiddenCanalsofUznair.cpp"
|
||||
#include "hallofthenovice/InteractwiththeBattlefield.cpp"
|
||||
#include "hallofthenovice/AvoidEngagedTargets.cpp"
|
||||
#include "hallofthenovice/AvoidAreaofEffectAttacks.cpp"
|
||||
#include "hallofthenovice/HealMultipleAllies.cpp"
|
||||
#include "hallofthenovice/ExecuteaCombotoIncreaseEnmity.cpp"
|
||||
#include "hallofthenovice/AssistAlliesinDefeatingaTarget.cpp"
|
||||
#include "hallofthenovice/HealanAlly.cpp"
|
||||
#include "hallofthenovice/EngageMultipleTargets.cpp"
|
||||
#include "hallofthenovice/FinalExercise.cpp"
|
||||
#include "hallofthenovice/EngageEnemyReinforcements.cpp"
|
||||
#include "hallofthenovice/ExecuteaRangedAttacktoIncreaseEnmity.cpp"
|
||||
#include "hallofthenovice/ExecuteaComboinBattle.cpp"
|
||||
#include "hallofthenovice/DefeatanOccupiedTarget.cpp"
|
||||
#include "hallofthenovice/AccrueEnmityfromMultipleTargets.cpp"
|
||||
#include "events/TheValentionesCeremony.cpp"
|
||||
#include "events/TheHauntedManor.cpp"
|
||||
|
||||
const ScriptObject* ptrs[] =
|
||||
{
|
||||
static_cast< ScriptObject* >( new TheFeastTeamRanked ),
|
||||
static_cast< ScriptObject* >( new SealRockSeize ),
|
||||
static_cast< ScriptObject* >( new TheFeast4on4Ranked ),
|
||||
static_cast< ScriptObject* >( new TheFeast4on4LightParty ),
|
||||
static_cast< ScriptObject* >( new TheFeastRanked ),
|
||||
static_cast< ScriptObject* >( new TheFieldsofGloryShatter ),
|
||||
static_cast< ScriptObject* >( new TheFeastTraining ),
|
||||
static_cast< ScriptObject* >( new Astragalos ),
|
||||
static_cast< ScriptObject* >( new TheFeast4on4Training ),
|
||||
static_cast< ScriptObject* >( new TheFeastCustomMatchFeastingGrounds ),
|
||||
static_cast< ScriptObject* >( new TheFeastCustomMatchLichenweed ),
|
||||
static_cast< ScriptObject* >( new TheBorderlandRuinsSecure ),
|
||||
static_cast< ScriptObject* >( new TheFeastCustomMatchCrystalTower ),
|
||||
static_cast< ScriptObject* >( new TheTamTaraDeepcroft ),
|
||||
static_cast< ScriptObject* >( new DomaCastle ),
|
||||
static_cast< ScriptObject* >( new HullbreakerIsleHard ),
|
||||
static_cast< ScriptObject* >( new Snowcloak ),
|
||||
static_cast< ScriptObject* >( new TheGreatGubalLibrary ),
|
||||
static_cast< ScriptObject* >( new TheWanderersPalace ),
|
||||
static_cast< ScriptObject* >( new Xelphatol ),
|
||||
static_cast< ScriptObject* >( new TheLostCityofAmdaporHard ),
|
||||
static_cast< ScriptObject* >( new SaintMociannesArboretum ),
|
||||
static_cast< ScriptObject* >( new BardamsMettle ),
|
||||
static_cast< ScriptObject* >( new TheTamTaraDeepcroftHard ),
|
||||
static_cast< ScriptObject* >( new KuganeCastle ),
|
||||
static_cast< ScriptObject* >( new TheDrownedCityofSkalla ),
|
||||
static_cast< ScriptObject* >( new ShisuioftheVioletTides ),
|
||||
static_cast< ScriptObject* >( new CuttersCry ),
|
||||
static_cast< ScriptObject* >( new HellsLid ),
|
||||
static_cast< ScriptObject* >( new TheVault ),
|
||||
static_cast< ScriptObject* >( new TheStoneVigilHard ),
|
||||
static_cast< ScriptObject* >( new Sastasha ),
|
||||
static_cast< ScriptObject* >( new TheFractalContinuum ),
|
||||
static_cast< ScriptObject* >( new TheLostCityofAmdapor ),
|
||||
static_cast< ScriptObject* >( new TheAurumVale ),
|
||||
static_cast< ScriptObject* >( new SohrKhai ),
|
||||
static_cast< ScriptObject* >( new TheSunkenTempleofQarnHard ),
|
||||
static_cast< ScriptObject* >( new Neverreap ),
|
||||
static_cast< ScriptObject* >( new TheAntitower ),
|
||||
static_cast< ScriptObject* >( new Halatali ),
|
||||
static_cast< ScriptObject* >( new TheAery ),
|
||||
static_cast< ScriptObject* >( new PharosSiriusHard ),
|
||||
static_cast< ScriptObject* >( new CastrumMeridianum ),
|
||||
static_cast< ScriptObject* >( new TheGreatGubalLibraryHard ),
|
||||
static_cast< ScriptObject* >( new SohmAl ),
|
||||
static_cast< ScriptObject* >( new TheTempleoftheFist ),
|
||||
static_cast< ScriptObject* >( new TheKeeperoftheLake ),
|
||||
static_cast< ScriptObject* >( new AmdaporKeepHard ),
|
||||
static_cast< ScriptObject* >( new TheWanderersPalaceHard ),
|
||||
static_cast< ScriptObject* >( new CastrumAbania ),
|
||||
static_cast< ScriptObject* >( new AlaMhigo ),
|
||||
static_cast< ScriptObject* >( new PharosSirius ),
|
||||
static_cast< ScriptObject* >( new TheStoneVigil ),
|
||||
static_cast< ScriptObject* >( new TheThousandMawsofTotoRak ),
|
||||
static_cast< ScriptObject* >( new BrayfloxsLongstopHard ),
|
||||
static_cast< ScriptObject* >( new DzemaelDarkhold ),
|
||||
static_cast< ScriptObject* >( new SohmAlHard ),
|
||||
static_cast< ScriptObject* >( new HaukkeManor ),
|
||||
static_cast< ScriptObject* >( new HullbreakerIsle ),
|
||||
static_cast< ScriptObject* >( new TheFractalContinuumHard ),
|
||||
static_cast< ScriptObject* >( new TheSirensongSea ),
|
||||
static_cast< ScriptObject* >( new BaelsarsWall ),
|
||||
static_cast< ScriptObject* >( new HalataliHard ),
|
||||
static_cast< ScriptObject* >( new TheAetherochemicalResearchFacility ),
|
||||
static_cast< ScriptObject* >( new SastashaHard ),
|
||||
static_cast< ScriptObject* >( new CopperbellMinesHard ),
|
||||
static_cast< ScriptObject* >( new TheSunkenTempleofQarn ),
|
||||
static_cast< ScriptObject* >( new AmdaporKeep ),
|
||||
static_cast< ScriptObject* >( new TheDuskVigil ),
|
||||
static_cast< ScriptObject* >( new BrayfloxsLongstop ),
|
||||
static_cast< ScriptObject* >( new HaukkeManorHard ),
|
||||
static_cast< ScriptObject* >( new CopperbellMines ),
|
||||
static_cast< ScriptObject* >( new ThePraetorium ),
|
||||
static_cast< ScriptObject* >( new RaisingtheSword ),
|
||||
static_cast< ScriptObject* >( new InterdimensionalRift ),
|
||||
static_cast< ScriptObject* >( new CuriousGorgeMeetsHisMatch ),
|
||||
static_cast< ScriptObject* >( new WithHeartandSteel ),
|
||||
static_cast< ScriptObject* >( new OneLifeforOneWorld ),
|
||||
static_cast< ScriptObject* >( new ABloodyReunion ),
|
||||
static_cast< ScriptObject* >( new MatsubaMayhem ),
|
||||
static_cast< ScriptObject* >( new BloodontheDeck ),
|
||||
static_cast< ScriptObject* >( new OurCompromise ),
|
||||
static_cast< ScriptObject* >( new Naadam ),
|
||||
static_cast< ScriptObject* >( new InThalsName ),
|
||||
static_cast< ScriptObject* >( new TheResonant ),
|
||||
static_cast< ScriptObject* >( new OurUnsungHeroes ),
|
||||
static_cast< ScriptObject* >( new DarkwingDragon ),
|
||||
static_cast< ScriptObject* >( new BloodDragoon ),
|
||||
static_cast< ScriptObject* >( new ASpectaclefortheAges ),
|
||||
static_cast< ScriptObject* >( new ItsProbablyaTrap ),
|
||||
static_cast< ScriptObject* >( new TheBattleonBekko ),
|
||||
static_cast< ScriptObject* >( new TheHeartoftheProblem ),
|
||||
static_cast< ScriptObject* >( new TheOrphansandtheBrokenBlade ),
|
||||
static_cast< ScriptObject* >( new TheCarteneauFlatsHeliodrome ),
|
||||
static_cast< ScriptObject* >( new ReturnoftheBull ),
|
||||
static_cast< ScriptObject* >( new TheFaceofTrueEvil ),
|
||||
static_cast< ScriptObject* >( new WhenClansCollide ),
|
||||
static_cast< ScriptObject* >( new AlexanderTheArmoftheSonSavage ),
|
||||
static_cast< ScriptObject* >( new TheLabyrinthoftheAncients ),
|
||||
static_cast< ScriptObject* >( new SigmascapeV30 ),
|
||||
static_cast< ScriptObject* >( new TheVoidArk ),
|
||||
static_cast< ScriptObject* >( new SyrcusTower ),
|
||||
static_cast< ScriptObject* >( new DeltascapeV20 ),
|
||||
static_cast< ScriptObject* >( new TheFinalCoilofBahamutTurn1 ),
|
||||
static_cast< ScriptObject* >( new SigmascapeV20Savage ),
|
||||
static_cast< ScriptObject* >( new TheFinalCoilofBahamutTurn3 ),
|
||||
static_cast< ScriptObject* >( new SigmascapeV30Savage ),
|
||||
static_cast< ScriptObject* >( new TheBindingCoilofBahamutTurn2 ),
|
||||
static_cast< ScriptObject* >( new AlexanderTheSouloftheCreatorSavage ),
|
||||
static_cast< ScriptObject* >( new DunScaith ),
|
||||
static_cast< ScriptObject* >( new DeltascapeV40Savage ),
|
||||
static_cast< ScriptObject* >( new TheSecondCoilofBahamutTurn1 ),
|
||||
static_cast< ScriptObject* >( new AlexanderTheHeartoftheCreatorSavage ),
|
||||
static_cast< ScriptObject* >( new DeltascapeV40 ),
|
||||
static_cast< ScriptObject* >( new TheSecondCoilofBahamutSavageTurn2 ),
|
||||
static_cast< ScriptObject* >( new TheSecondCoilofBahamutTurn3 ),
|
||||
static_cast< ScriptObject* >( new TheUnendingCoilofBahamutUltimate ),
|
||||
static_cast< ScriptObject* >( new TheSecondCoilofBahamutTurn2 ),
|
||||
static_cast< ScriptObject* >( new TheWorldofDarkness ),
|
||||
static_cast< ScriptObject* >( new SigmascapeV10 ),
|
||||
static_cast< ScriptObject* >( new AlexanderTheBurdenoftheSonSavage ),
|
||||
static_cast< ScriptObject* >( new TheFinalCoilofBahamutTurn2 ),
|
||||
static_cast< ScriptObject* >( new AlexanderTheBurdenoftheFatherSavage ),
|
||||
static_cast< ScriptObject* >( new AlexanderTheHeartoftheCreator ),
|
||||
static_cast< ScriptObject* >( new TheBindingCoilofBahamutTurn4 ),
|
||||
static_cast< ScriptObject* >( new AlexanderTheBreathoftheCreatorSavage ),
|
||||
static_cast< ScriptObject* >( new AlexanderTheEyesoftheCreatorSavage ),
|
||||
static_cast< ScriptObject* >( new AlexanderTheArmoftheFatherSavage ),
|
||||
static_cast< ScriptObject* >( new DeltascapeV30 ),
|
||||
static_cast< ScriptObject* >( new AlexanderTheFistoftheFather ),
|
||||
static_cast< ScriptObject* >( new DeltascapeV10 ),
|
||||
static_cast< ScriptObject* >( new DeltascapeV10Savage ),
|
||||
static_cast< ScriptObject* >( new SigmascapeV40Savage ),
|
||||
static_cast< ScriptObject* >( new AlexanderTheCuffoftheSon ),
|
||||
static_cast< ScriptObject* >( new AlexanderTheFistoftheSonSavage ),
|
||||
static_cast< ScriptObject* >( new TheSecondCoilofBahamutSavageTurn3 ),
|
||||
static_cast< ScriptObject* >( new AlexanderTheArmoftheFather ),
|
||||
static_cast< ScriptObject* >( new AlexanderTheCuffoftheSonSavage ),
|
||||
static_cast< ScriptObject* >( new TheBindingCoilofBahamutTurn5 ),
|
||||
static_cast< ScriptObject* >( new SigmascapeV20 ),
|
||||
static_cast< ScriptObject* >( new AlexanderTheCuffoftheFather ),
|
||||
static_cast< ScriptObject* >( new TheSecondCoilofBahamutSavageTurn1 ),
|
||||
static_cast< ScriptObject* >( new TheBindingCoilofBahamutTurn1 ),
|
||||
static_cast< ScriptObject* >( new AlexanderTheBurdenoftheSon ),
|
||||
static_cast< ScriptObject* >( new AlexanderTheBreathoftheCreator ),
|
||||
static_cast< ScriptObject* >( new TheFinalCoilofBahamutTurn4 ),
|
||||
static_cast< ScriptObject* >( new DeltascapeV30Savage ),
|
||||
static_cast< ScriptObject* >( new AlexanderTheFistoftheSon ),
|
||||
static_cast< ScriptObject* >( new AlexanderTheFistoftheFatherSavage ),
|
||||
static_cast< ScriptObject* >( new AlexanderTheArmoftheSon ),
|
||||
static_cast< ScriptObject* >( new TheBindingCoilofBahamutTurn3 ),
|
||||
static_cast< ScriptObject* >( new SigmascapeV40 ),
|
||||
static_cast< ScriptObject* >( new TheSecondCoilofBahamutTurn4 ),
|
||||
static_cast< ScriptObject* >( new AlexanderTheCuffoftheFatherSavage ),
|
||||
static_cast< ScriptObject* >( new SigmascapeV10Savage ),
|
||||
static_cast< ScriptObject* >( new DeltascapeV20Savage ),
|
||||
static_cast< ScriptObject* >( new TheWeepingCityofMhach ),
|
||||
static_cast< ScriptObject* >( new TheRoyalCityofRabanastre ),
|
||||
static_cast< ScriptObject* >( new AlexanderTheBurdenoftheFather ),
|
||||
static_cast< ScriptObject* >( new AlexanderTheEyesoftheCreator ),
|
||||
static_cast< ScriptObject* >( new TheSecondCoilofBahamutSavageTurn4 ),
|
||||
static_cast< ScriptObject* >( new AlexanderTheSouloftheCreator ),
|
||||
static_cast< ScriptObject* >( new AkhAfahAmphitheatreExtreme ),
|
||||
static_cast< ScriptObject* >( new HeroontheHalfShell ),
|
||||
static_cast< ScriptObject* >( new BasicTrainingEnemyStrongholds ),
|
||||
static_cast< ScriptObject* >( new ShadowandClaw ),
|
||||
static_cast< ScriptObject* >( new AnnoytheVoid ),
|
||||
static_cast< ScriptObject* >( new StingingBack ),
|
||||
static_cast< ScriptObject* >( new FlickingSticksandTakingNames ),
|
||||
static_cast< ScriptObject* >( new SolemnTrinity ),
|
||||
static_cast< ScriptObject* >( new UndertheArmor ),
|
||||
static_cast< ScriptObject* >( new LongLivetheQueen ),
|
||||
static_cast< ScriptObject* >( new AllsWellthatEndsintheWell ),
|
||||
static_cast< ScriptObject* >( new MorethanaFeeler ),
|
||||
static_cast< ScriptObject* >( new PullingPoisonPosies ),
|
||||
static_cast< ScriptObject* >( new WardUp ),
|
||||
static_cast< ScriptObject* >( new BasicTrainingEnemyParties ),
|
||||
static_cast< ScriptObject* >( new TheStrikingTreeHard ),
|
||||
static_cast< ScriptObject* >( new TheJadeStoaExtreme ),
|
||||
static_cast< ScriptObject* >( new TheMinstrelsBalladThordansReign ),
|
||||
static_cast< ScriptObject* >( new TheBowlofEmbersHard ),
|
||||
static_cast< ScriptObject* >( new TheSingularityReactor ),
|
||||
static_cast< ScriptObject* >( new ContainmentBayS1T7Extreme ),
|
||||
static_cast< ScriptObject* >( new ContainmentBayS1T7 ),
|
||||
static_cast< ScriptObject* >( new TheHowlingEyeHard ),
|
||||
static_cast< ScriptObject* >( new TheStrikingTreeExtreme ),
|
||||
static_cast< ScriptObject* >( new Emanation ),
|
||||
static_cast< ScriptObject* >( new SpecialEventI ),
|
||||
static_cast< ScriptObject* >( new TheLimitlessBlueExtreme ),
|
||||
static_cast< ScriptObject* >( new ThePoolofTributeExtreme ),
|
||||
static_cast< ScriptObject* >( new BattleontheBigBridge ),
|
||||
static_cast< ScriptObject* >( new TheRoyalMenagerie ),
|
||||
static_cast< ScriptObject* >( new BattleintheBigKeep ),
|
||||
static_cast< ScriptObject* >( new UrthsFount ),
|
||||
static_cast< ScriptObject* >( new EmanationExtreme ),
|
||||
static_cast< ScriptObject* >( new TheJadeStoa ),
|
||||
static_cast< ScriptObject* >( new TheHowlingEyeExtreme ),
|
||||
static_cast< ScriptObject* >( new TheBowlofEmbers ),
|
||||
static_cast< ScriptObject* >( new TheChrysalis ),
|
||||
static_cast< ScriptObject* >( new TheStepsofFaith ),
|
||||
static_cast< ScriptObject* >( new ARelicReborntheChimera ),
|
||||
static_cast< ScriptObject* >( new ContainmentBayP1T6 ),
|
||||
static_cast< ScriptObject* >( new TheMinstrelsBalladNidhoggsRage ),
|
||||
static_cast< ScriptObject* >( new ThokastThokExtreme ),
|
||||
static_cast< ScriptObject* >( new ThornmarchExtreme ),
|
||||
static_cast< ScriptObject* >( new TheLimitlessBlueHard ),
|
||||
static_cast< ScriptObject* >( new ContainmentBayP1T6Extreme ),
|
||||
static_cast< ScriptObject* >( new TheNavelExtreme ),
|
||||
static_cast< ScriptObject* >( new SpecialEventII ),
|
||||
static_cast< ScriptObject* >( new TheWhorleaterExtreme ),
|
||||
static_cast< ScriptObject* >( new TheMinstrelsBalladUltimasBane ),
|
||||
static_cast< ScriptObject* >( new ContainmentBayZ1T9 ),
|
||||
static_cast< ScriptObject* >( new TheFinalStepsofFaith ),
|
||||
static_cast< ScriptObject* >( new ThokastThokHard ),
|
||||
static_cast< ScriptObject* >( new AkhAfahAmphitheatreHard ),
|
||||
static_cast< ScriptObject* >( new CapeWestwind ),
|
||||
static_cast< ScriptObject* >( new TheMinstrelsBalladShinryusDomain ),
|
||||
static_cast< ScriptObject* >( new ContainmentBayZ1T9Extreme ),
|
||||
static_cast< ScriptObject* >( new SpecialEventIII ),
|
||||
static_cast< ScriptObject* >( new ThornmarchHard ),
|
||||
static_cast< ScriptObject* >( new TheDragonsNeck ),
|
||||
static_cast< ScriptObject* >( new TheNavelHard ),
|
||||
static_cast< ScriptObject* >( new TheWhorleaterHard ),
|
||||
static_cast< ScriptObject* >( new TheNavel ),
|
||||
static_cast< ScriptObject* >( new TheBowlofEmbersExtreme ),
|
||||
static_cast< ScriptObject* >( new ARelicReborntheHydra ),
|
||||
static_cast< ScriptObject* >( new ThePoolofTribute ),
|
||||
static_cast< ScriptObject* >( new TheHowlingEye ),
|
||||
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors181190 ),
|
||||
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors6170 ),
|
||||
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors151160 ),
|
||||
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors4150 ),
|
||||
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors5160 ),
|
||||
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors3140 ),
|
||||
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors1120 ),
|
||||
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors110 ),
|
||||
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors141150 ),
|
||||
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors161170 ),
|
||||
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors131140 ),
|
||||
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors7180 ),
|
||||
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors101110 ),
|
||||
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors171180 ),
|
||||
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors2130 ),
|
||||
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors191200 ),
|
||||
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors121130 ),
|
||||
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors111120 ),
|
||||
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors91100 ),
|
||||
static_cast< ScriptObject* >( new ThePalaceoftheDeadFloors8190 ),
|
||||
static_cast< ScriptObject* >( new TheAquapolis ),
|
||||
static_cast< ScriptObject* >( new TheLostCanalsofUznair ),
|
||||
static_cast< ScriptObject* >( new TheHiddenCanalsofUznair ),
|
||||
static_cast< ScriptObject* >( new InteractwiththeBattlefield ),
|
||||
static_cast< ScriptObject* >( new AvoidEngagedTargets ),
|
||||
static_cast< ScriptObject* >( new AvoidAreaofEffectAttacks ),
|
||||
static_cast< ScriptObject* >( new HealMultipleAllies ),
|
||||
static_cast< ScriptObject* >( new ExecuteaCombotoIncreaseEnmity ),
|
||||
static_cast< ScriptObject* >( new AssistAlliesinDefeatingaTarget ),
|
||||
static_cast< ScriptObject* >( new HealanAlly ),
|
||||
static_cast< ScriptObject* >( new EngageMultipleTargets ),
|
||||
static_cast< ScriptObject* >( new FinalExercise ),
|
||||
static_cast< ScriptObject* >( new EngageEnemyReinforcements ),
|
||||
static_cast< ScriptObject* >( new ExecuteaRangedAttacktoIncreaseEnmity ),
|
||||
static_cast< ScriptObject* >( new ExecuteaComboinBattle ),
|
||||
static_cast< ScriptObject* >( new DefeatanOccupiedTarget ),
|
||||
static_cast< ScriptObject* >( new AccrueEnmityfromMultipleTargets ),
|
||||
static_cast< ScriptObject* >( new TheValentionesCeremony ),
|
||||
static_cast< ScriptObject* >( new TheHauntedManor ),
|
||||
|
||||
nullptr
|
||||
};
|
||||
|
||||
extern "C" EXPORT const ScriptObject** getScripts()
|
||||
{
|
||||
return ptrs;
|
||||
}
|
|
@ -21,7 +21,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -19,7 +19,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -19,7 +19,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -19,7 +19,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -19,7 +19,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -19,7 +19,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -19,7 +19,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -19,7 +19,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -19,7 +19,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -19,7 +19,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -19,7 +19,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -19,7 +19,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -19,7 +19,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -27,7 +27,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -27,7 +27,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -19,7 +19,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -19,7 +19,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -19,7 +19,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -21,7 +21,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -21,7 +21,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -17,7 +17,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -140,7 +140,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -57,7 +57,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -49,7 +49,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -17,7 +17,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -40,7 +40,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -46,7 +46,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -17,7 +17,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -87,7 +87,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -71,7 +71,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -63,7 +63,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -57,7 +57,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -17,7 +17,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -117,7 +117,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -68,7 +68,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -73,7 +73,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -61,7 +61,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -87,7 +87,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -17,7 +17,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -85,7 +85,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -48,7 +48,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -17,7 +17,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -17,7 +17,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -52,7 +52,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -49,7 +49,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -17,7 +17,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -69,9 +69,9 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
{
|
||||
player.directorPlayScene( getId(), 1, NO_DEFAULT_CAMERA | HIDE_HOTBAR, 0, 0xA );
|
||||
|
||||
}
|
||||
|
||||
};
|
|
@ -57,7 +57,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -17,7 +17,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -63,7 +63,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -17,7 +17,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -17,7 +17,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -17,7 +17,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -17,7 +17,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -17,7 +17,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -17,7 +17,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -39,7 +39,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -17,7 +17,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -17,7 +17,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -17,7 +17,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -17,7 +17,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -17,7 +17,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -17,7 +17,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -52,7 +52,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -72,7 +72,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -63,7 +63,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -133,7 +133,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -17,7 +17,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -54,7 +54,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -47,7 +47,8 @@ public:
|
|||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||
uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue