1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-25 22:17:45 +00:00

Prperational work for linkshells

This commit is contained in:
Mordred 2017-08-23 23:58:14 +02:00
parent b83ddf9f89
commit 148ba5d09f
5 changed files with 33 additions and 80 deletions

View file

@ -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 );
}

View file

@ -127,43 +127,39 @@ namespace Packets {
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
InitHandler = 0x0066,// updated for sb
ChatHandler = 0x0067,// updated for sb
FinishLoadingHandler = 0x0069,// updated for sb
FinishLoadingHandler = 0x0069, // updated for sb
CFCommenceHandler = 0x006F,
CFRegisterDuty = 0x0071,
CFRegisterRoulette = 0x0072,
PlayTimeHandler = 0x0073,// updated for sb
LogoutHandler = 0x0074,// updated for sb
PlayTimeHandler = 0x0073, // updated for sb
LogoutHandler = 0x0074, // updated for sb
CFDutyInfoHandler = 0x0078,
SocialReqSendHandler = 0x00A5,
SocialListHandler = 0x00AA,// updated for sb
SetSearchInfoHandler = 0x00AC,// updated for sb
SocialListHandler = 0x00AA, // updated for sb
SetSearchInfoHandler = 0x00AC, // updated for sb
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
ActionHandler = 0x0108,// updated for sb
DiscoveryHandler = 0x0109,// updated for sb
ActionHandler = 0x0108, // updated for sb
DiscoveryHandler = 0x0109, // updated for sb
SkillHandler = 0x010B, // updated for sb
GMCommand1 = 0x010C,// updated for sb
GMCommand2 = 0x010D,// updated for sb
GMCommand1 = 0x010C, // updated for sb
GMCommand2 = 0x010D, // updated for sb
UpdatePositionHandler = 0x010F, // updated for sb
InventoryModifyHandler = 0x0116, // updated for sb
@ -176,6 +172,8 @@ namespace Packets {
ReturnEventHandler = 0x0128,
TradeReturnEventHandler = 0x0129,
LinkshellEventHandler = 0x013C,
};
////////////////////////////////////////////////////////////////////////////////

View file

@ -85,6 +85,8 @@ Core::Network::GameConnection::GameConnection( Core::Network::HivePtr pHive,
setZoneHandler( ClientZoneIpcType::ReturnEventHandler, "EventHandlerReturn", &GameConnection::eventHandler );
setZoneHandler( ClientZoneIpcType::TradeReturnEventHandler, "EventHandlerReturn", &GameConnection::eventHandler );
setZoneHandler( ClientZoneIpcType::LinkshellEventHandler, "LinkshellEventHandler", &GameConnection::eventHandler );
setZoneHandler( ClientZoneIpcType::CFDutyInfoHandler, "CFDutyInfoRequest", &GameConnection::cfDutyInfoRequest );
setZoneHandler( ClientZoneIpcType::CFRegisterDuty, "CFRegisterDuty", &GameConnection::cfRegisterDuty );
setZoneHandler( ClientZoneIpcType::CFRegisterRoulette, "CFRegisterRoulette", &GameConnection::cfRegisterRoulette );

View file

@ -129,6 +129,16 @@ void Core::Network::GameConnection::eventHandler( const Packets::GamePacket& inP
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;
}
}
}

View file

@ -569,6 +569,7 @@ void Core::Network::GameConnection::tellHandler( const Packets::GamePacket& inPa
pTargetPlayer->hasStateFlag( PlayerStateFlag::BetweenAreas1 ) )
{
// send error for player between areas
// TODO: implement me
return;
}
@ -576,18 +577,21 @@ void Core::Network::GameConnection::tellHandler( const Packets::GamePacket& inPa
pTargetPlayer->hasStateFlag( PlayerStateFlag::BoundByDuty1 ) )
{
// send error for player bound by duty
// TODO: implement me
return;
}
if( pTargetPlayer->getOnlineStatus() == OnlineStatus::Busy )
{
// send error for player being busy
// TODO: implement me ( i've seen this done with packet type 67 i think )
return;
}
GamePacketNew< FFXIVIpcTell, ServerChatIpcType > tellPacket( pPlayer->getId() );
strcpy( tellPacket.data().msg, msg.c_str() );
strcpy( tellPacket.data().receipientName, targetPcName.c_str() );
// TODO: do these have a meaning?
//tellPacket.data().u1 = 0x92CD7337;
//tellPacket.data().u2a = 0x2E;
//tellPacket.data().u2b = 0x40;