mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-27 14:57:44 +00:00
Prperational work for linkshells
This commit is contained in:
parent
f0213847a3
commit
669f6a177c
5 changed files with 33 additions and 80 deletions
|
@ -1,61 +0,0 @@
|
||||||
// This is an automatically generated chai script template
|
|
||||||
// Content needs to be added by hand to make it function
|
|
||||||
// In order for this script to be loaded, change its extension to .chai
|
|
||||||
|
|
||||||
|
|
||||||
// Quest Script: SubFst004_00027
|
|
||||||
// Quest Name: Preserving the Past
|
|
||||||
// Quest ID: 65563
|
|
||||||
// Start NPC: 1000194
|
|
||||||
// End NPC: 1000789
|
|
||||||
|
|
||||||
class CmnDefCutSceneReplayDef
|
|
||||||
{
|
|
||||||
// Basic quest information
|
|
||||||
var quest_name
|
|
||||||
var quest_id
|
|
||||||
|
|
||||||
// These are the quest vars / flags used in this quest
|
|
||||||
// GetQuestUI8AL
|
|
||||||
// GetQuestUI8BH
|
|
||||||
|
|
||||||
// Available Scenes in this quest, not necessarly all are used
|
|
||||||
attr onScene00000;
|
|
||||||
|
|
||||||
// Quest rewards
|
|
||||||
var RewardExpFactor;
|
|
||||||
var RewardItem;
|
|
||||||
var RewardItemCount;
|
|
||||||
|
|
||||||
// Entities found in the script data of the quest
|
|
||||||
// some of these may be useful
|
|
||||||
var ACTOR0;
|
|
||||||
var ACTOR1;
|
|
||||||
var ACTOR2;
|
|
||||||
var ITEM0;
|
|
||||||
|
|
||||||
def CmnDefCutSceneReplayDef()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
def Scene00000( player, eventId, flags, unk, unk1 )
|
|
||||||
{
|
|
||||||
player.eventPlay(eventId, 0, 0x2000, unk, 1,
|
|
||||||
fun( player, eventId, subEvent, param1, param2, param3 )
|
|
||||||
{
|
|
||||||
player.eventFinish(eventId, 1);
|
|
||||||
} );
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
def CmnDefCutSceneReplay_START(player, actorId, eventId)
|
|
||||||
{
|
|
||||||
var quest = CmnDefCutSceneReplay();
|
|
||||||
var actor = mapActor( actorId );
|
|
||||||
|
|
||||||
player.eventStart( actorId, eventId, 1, 0, 0 );
|
|
||||||
CmnDefCutSceneReplay.Scene00000( player, eventId, 0, 0, 0 );
|
|
||||||
}
|
|
|
@ -127,43 +127,39 @@ namespace Packets {
|
||||||
enum ClientZoneIpcType : uint16_t
|
enum ClientZoneIpcType : uint16_t
|
||||||
{
|
{
|
||||||
|
|
||||||
TellChatHandler = 0x0064,// updated for sb
|
PingHandler = 0x0065, // updated for sb
|
||||||
|
InitHandler = 0x0066, // updated for sb
|
||||||
|
ChatHandler = 0x0067, // updated for sb
|
||||||
|
|
||||||
PingHandler = 0x0065,// updated for sb
|
FinishLoadingHandler = 0x0069, // updated for sb
|
||||||
InitHandler = 0x0066,// updated for sb
|
|
||||||
ChatHandler = 0x0067,// updated for sb
|
|
||||||
|
|
||||||
FinishLoadingHandler = 0x0069,// updated for sb
|
|
||||||
|
|
||||||
CFCommenceHandler = 0x006F,
|
CFCommenceHandler = 0x006F,
|
||||||
CFRegisterDuty = 0x0071,
|
CFRegisterDuty = 0x0071,
|
||||||
CFRegisterRoulette = 0x0072,
|
CFRegisterRoulette = 0x0072,
|
||||||
|
PlayTimeHandler = 0x0073, // updated for sb
|
||||||
PlayTimeHandler = 0x0073,// updated for sb
|
LogoutHandler = 0x0074, // updated for sb
|
||||||
LogoutHandler = 0x0074,// updated for sb
|
|
||||||
|
|
||||||
CFDutyInfoHandler = 0x0078,
|
CFDutyInfoHandler = 0x0078,
|
||||||
|
|
||||||
SocialReqSendHandler = 0x00A5,
|
SocialReqSendHandler = 0x00A5,
|
||||||
SocialListHandler = 0x00AA,// updated for sb
|
SocialListHandler = 0x00AA, // updated for sb
|
||||||
SetSearchInfoHandler = 0x00AC,// updated for sb
|
SetSearchInfoHandler = 0x00AC, // updated for sb
|
||||||
|
|
||||||
ReqSearchInfoHandler = 0x00AD,
|
ReqSearchInfoHandler = 0x00AD,
|
||||||
|
|
||||||
BlackListHandler = 0x00B7,// updated for sb
|
BlackListHandler = 0x00B7, // updated for sb
|
||||||
|
|
||||||
LinkshellListHandler = 0x00BF,// updated for sb
|
LinkshellListHandler = 0x00BF, // updated for sb
|
||||||
|
|
||||||
FcInfoReqHandler = 0x0100,// updated for sb
|
FcInfoReqHandler = 0x0100, // updated for sb
|
||||||
|
|
||||||
ZoneLineHandler = 0x0107, // updated for sb
|
ZoneLineHandler = 0x0107, // updated for sb
|
||||||
ActionHandler = 0x0108,// updated for sb
|
ActionHandler = 0x0108, // updated for sb
|
||||||
|
DiscoveryHandler = 0x0109, // updated for sb
|
||||||
DiscoveryHandler = 0x0109,// updated for sb
|
|
||||||
|
|
||||||
SkillHandler = 0x010B, // updated for sb
|
SkillHandler = 0x010B, // updated for sb
|
||||||
GMCommand1 = 0x010C,// updated for sb
|
GMCommand1 = 0x010C, // updated for sb
|
||||||
GMCommand2 = 0x010D,// updated for sb
|
GMCommand2 = 0x010D, // updated for sb
|
||||||
UpdatePositionHandler = 0x010F, // updated for sb
|
UpdatePositionHandler = 0x010F, // updated for sb
|
||||||
|
|
||||||
InventoryModifyHandler = 0x0116, // updated for sb
|
InventoryModifyHandler = 0x0116, // updated for sb
|
||||||
|
@ -176,6 +172,8 @@ namespace Packets {
|
||||||
|
|
||||||
ReturnEventHandler = 0x0128,
|
ReturnEventHandler = 0x0128,
|
||||||
TradeReturnEventHandler = 0x0129,
|
TradeReturnEventHandler = 0x0129,
|
||||||
|
|
||||||
|
LinkshellEventHandler = 0x013C,
|
||||||
};
|
};
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
|
@ -85,6 +85,8 @@ Core::Network::GameConnection::GameConnection( Core::Network::HivePtr pHive,
|
||||||
setZoneHandler( ClientZoneIpcType::ReturnEventHandler, "EventHandlerReturn", &GameConnection::eventHandler );
|
setZoneHandler( ClientZoneIpcType::ReturnEventHandler, "EventHandlerReturn", &GameConnection::eventHandler );
|
||||||
setZoneHandler( ClientZoneIpcType::TradeReturnEventHandler, "EventHandlerReturn", &GameConnection::eventHandler );
|
setZoneHandler( ClientZoneIpcType::TradeReturnEventHandler, "EventHandlerReturn", &GameConnection::eventHandler );
|
||||||
|
|
||||||
|
setZoneHandler( ClientZoneIpcType::LinkshellEventHandler, "LinkshellEventHandler", &GameConnection::eventHandler );
|
||||||
|
|
||||||
setZoneHandler( ClientZoneIpcType::CFDutyInfoHandler, "CFDutyInfoRequest", &GameConnection::cfDutyInfoRequest );
|
setZoneHandler( ClientZoneIpcType::CFDutyInfoHandler, "CFDutyInfoRequest", &GameConnection::cfDutyInfoRequest );
|
||||||
setZoneHandler( ClientZoneIpcType::CFRegisterDuty, "CFRegisterDuty", &GameConnection::cfRegisterDuty );
|
setZoneHandler( ClientZoneIpcType::CFRegisterDuty, "CFRegisterDuty", &GameConnection::cfRegisterDuty );
|
||||||
setZoneHandler( ClientZoneIpcType::CFRegisterRoulette, "CFRegisterRoulette", &GameConnection::cfRegisterRoulette );
|
setZoneHandler( ClientZoneIpcType::CFRegisterRoulette, "CFRegisterRoulette", &GameConnection::cfRegisterRoulette );
|
||||||
|
|
|
@ -129,6 +129,16 @@ void Core::Network::GameConnection::eventHandler( const Packets::GamePacket& inP
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case ClientZoneIpcType::LinkshellEventHandler:
|
||||||
|
{
|
||||||
|
uint32_t eventId = inPacket.getValAt< uint32_t >( 0x20 );
|
||||||
|
uint16_t subEvent = inPacket.getValAt< uint16_t >( 0x24 );
|
||||||
|
std::string lsName = inPacket.getStringAt( 0x27 );
|
||||||
|
|
||||||
|
abortEventFunc( pPlayer, 0, eventId );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -569,6 +569,7 @@ void Core::Network::GameConnection::tellHandler( const Packets::GamePacket& inPa
|
||||||
pTargetPlayer->hasStateFlag( PlayerStateFlag::BetweenAreas1 ) )
|
pTargetPlayer->hasStateFlag( PlayerStateFlag::BetweenAreas1 ) )
|
||||||
{
|
{
|
||||||
// send error for player between areas
|
// send error for player between areas
|
||||||
|
// TODO: implement me
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -576,18 +577,21 @@ void Core::Network::GameConnection::tellHandler( const Packets::GamePacket& inPa
|
||||||
pTargetPlayer->hasStateFlag( PlayerStateFlag::BoundByDuty1 ) )
|
pTargetPlayer->hasStateFlag( PlayerStateFlag::BoundByDuty1 ) )
|
||||||
{
|
{
|
||||||
// send error for player bound by duty
|
// send error for player bound by duty
|
||||||
|
// TODO: implement me
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( pTargetPlayer->getOnlineStatus() == OnlineStatus::Busy )
|
if( pTargetPlayer->getOnlineStatus() == OnlineStatus::Busy )
|
||||||
{
|
{
|
||||||
// send error for player being busy
|
// send error for player being busy
|
||||||
|
// TODO: implement me ( i've seen this done with packet type 67 i think )
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
GamePacketNew< FFXIVIpcTell, ServerChatIpcType > tellPacket( pPlayer->getId() );
|
GamePacketNew< FFXIVIpcTell, ServerChatIpcType > tellPacket( pPlayer->getId() );
|
||||||
strcpy( tellPacket.data().msg, msg.c_str() );
|
strcpy( tellPacket.data().msg, msg.c_str() );
|
||||||
strcpy( tellPacket.data().receipientName, targetPcName.c_str() );
|
strcpy( tellPacket.data().receipientName, targetPcName.c_str() );
|
||||||
|
// TODO: do these have a meaning?
|
||||||
//tellPacket.data().u1 = 0x92CD7337;
|
//tellPacket.data().u1 = 0x92CD7337;
|
||||||
//tellPacket.data().u2a = 0x2E;
|
//tellPacket.data().u2a = 0x2E;
|
||||||
//tellPacket.data().u2b = 0x40;
|
//tellPacket.data().u2b = 0x40;
|
||||||
|
|
Loading…
Add table
Reference in a new issue