#ifndef __PG_CLICONNECT_H__
#define __PG_CLICONNECT_H__
#pragma warning (disable:4949)
#include "../NetWakerPGEnum.h"
#include "../../RoleData/RoleDataEx.h"
#pragma unmanaged
//----------------------------------------------------------------------------------------

//Local Server -> Client
//玩家角色區域ID
struct PG_CliConnect_LtoC_PlayerItemID
{
    GamePGCommandEnum	Command;
    Int32	GItemID;
    Int32   WorldGUID;

    PG_CliConnect_LtoC_PlayerItemID()
    {
        Command = EM_PG_CliConnect_LtoC_PlayerItemID;
    }
};
//----------------------------------------------------------------------------------------
//Local Server -> Client
//玩家角色連結到此區域回傳成功與否
struct PG_CliConnect_LtoC_ZoneInfo
{
    GamePGCommandEnum	Command;
    Int16	ZoneID;		//區域id


    PG_CliConnect_LtoC_ZoneInfo()
    {
        Command = EM_PG_CliConnect_LtoC_ZoneInfo;
    }
};
//----------------------------------------------------------------------------------------
//Local Server -> Client
//傳送角色基本資料
struct PG_CliConnect_LtoC_PlayerData
{
    GamePGCommandEnum	Command;

    //角色基本資料(Client 端需要用到的部分)
    BaseRoleData	BaseData;

    PG_CliConnect_LtoC_PlayerData()
    {
        Command = EM_PG_CliConnect_LtoC_PlayerData;
    }
};

//----------------------------------------------------------------------------------------
//Local Server -> Client 
//通知角色換區(鎖所有的角色公能)
struct PG_CliConnect_LtoC_PrepareChangeZone
{
    GamePGCommandEnum	Command;

    PG_CliConnect_LtoC_PrepareChangeZone()
    {
        Command = EM_PG_CliConnect_LtoC_PrepareChangeZone;
    }
};
//----------------------------------------------------------------------------------------
//Local Server -> Client 
//通知角色換區完成
struct PG_CliConnect_LtoC_ChangeZoneOK
{
    GamePGCommandEnum	Command;

    PG_CliConnect_LtoC_ChangeZoneOK()
    {
        Command = EM_PG_CliConnect_LtoC_ChangeZoneOK;
    }
};
//----------------------------------------------------------------------------------------
//Client -> Server
//要求登出
struct PG_CliConnect_CtoL_RequestLogout
{
    GamePGCommandEnum	Command;

    PG_CliConnect_CtoL_RequestLogout()
    {
        Command = EM_PG_CliConnect_CtoL_RequestLogout;
    }
};
//----------------------------------------------------------------------------------------
//換區通知
// Local -> Local
struct PG_CliConnect_LtoL_ChangeZoneNodify
{
    GamePGCommandEnum	Command;
    RoleDataEx          Role;
	int					SrcZoneID;

    PG_CliConnect_LtoL_ChangeZoneNodify()
    {
        Command = EM_PG_CliConnect_LtoL_ChangeZoneNodify;
    }
};
//----------------------------------------------------------------------------------------
//換區通知
// Local -> Local
struct PG_CliConnect_LtoL_ChangeZoneNodifyOK
{
	GamePGCommandEnum	Command;

	int		GItemID;
	int		ZoneID;

	PG_CliConnect_LtoL_ChangeZoneNodifyOK()
	{
		Command = EM_PG_CliConnect_LtoL_ChangeZoneNodifyOK;
	}
};
//----------------------------------------------------------------------------------------
// Server -> Client
//修改物件資訊

struct PG_CliConnect_LtoC_ModifyNPCInfo
{
    GamePGCommandEnum	Command;
    ModifyNPCInfo       Info;

    PG_CliConnect_LtoC_ModifyNPCInfo()
    {
        Command = EM_PG_CliConnect_LtoC_ModifyNPCInfo;
    }
};
//----------------------------------------------------------------------------------------
// Client -> Server
// 要求修改
struct PG_CliConnect_CtoL_ModifyNPCInfo
{
    GamePGCommandEnum	Command;
    ModifyNPCInfo       Info;

    PG_CliConnect_CtoL_ModifyNPCInfo()
    {
        Command = EM_PG_CliConnect_CtoL_ModifyNPCInfo;
    }
};
//----------------------------------------------------------------------------------------
// Client -> Local 
//要求取得某NPC的移動資訊
struct PG_CliConnect_CtoL_GetNPCMoveInfoRequest
{
	GamePGCommandEnum	Command;
	int					GUID;

	PG_CliConnect_CtoL_GetNPCMoveInfoRequest()
	{
		Command = EM_PG_CliConnect_CtoL_GetNPCMoveInfoRequest;
	}
};
//----------------------------------------------------------------------------------------
// Local -> Client 
// NPC的移動資訊
struct PG_CliConnect_LtoC_GetNPCMoveInfoResult
{
	GamePGCommandEnum	Command;
	int		TotalCount;
	int		GUID;			//NPCDBID
	int		IndexID;		//位置
	NPC_MoveBaseStruct Base;

	PG_CliConnect_LtoC_GetNPCMoveInfoResult()
	{
		Command = EM_PG_CliConnect_LtoC_GetNPCMoveInfoResult;
	}
};
//----------------------------------------------------------------------------------------
// Client -> Local
//----------------------------------------------------------------------------------------
struct PG_CliConnect_CtoL_SaveNPCMoveInfo
{
	GamePGCommandEnum	Command;
	int		TotalCount;
	int		GUID;			//NPCDBID
	int		IndexID;		//位置
	NPC_MoveBaseStruct Base;

	PG_CliConnect_CtoL_SaveNPCMoveInfo()
	{
		Command = EM_PG_CliConnect_CtoL_SaveNPCMoveInfo;
	}
};

//----------------------------------------------------------------------------------------
#pragma managed
#endif //__PG_CLICONNECT_H__