//----------------------------------------------------------------------------------------------------------------------------
static void OnTimeProcAll();
static ReaderClass<RoleDataEx>*  ReaderBase( );
static ReaderClass<NPCData>*  ReaderNPC( );
static ReaderClass<SampleRoleData>*  ReaderSampleRoleData( );
static ReaderClass<DB_ItemFieldStruct>*  ReaderRD_Field( );
static ReaderClass<DB_AbilityStruct>*  ReaderRD_Ability( );
static ReaderClass<DB_BaseFriendStruct>*  ReaderRD_BaseFriendStruct( );
static ReaderClass<DB_MailStruct>*  ReaderRD_MailItem( );
static ReaderClass<DB_MailStruct>*  ReaderRD_MailBase( );

static ReaderClass<DB_ACItemStruct>*		ReaderRD_ACBase( );
static ReaderClass<DB_ACItemHistoryStruct>*	ReaderRD_ACHistory( );
static ReaderClass<DB_NPC_MoveBaseStruct>*	ReaderRD_NPC_MoveBase( );

static ReaderClass<GuildMemberStruct>*	ReaderRD_GuildMember( );
static ReaderClass<GuildBaseStruct>*	ReaderRD_GuildBase( );
static ReaderClass<GuildBoardStruct>*	ReaderRD_GuildBoard( );

static ReaderClass<RoleDataEx>*  ReaderGMTool( );
static ReaderClass<BaseAbilityStruct>*  Reader_Ability_GMTools( );
static ReaderClass<SkillValueStruct>*  Reader_SkillValue_GMTools( );
static ReaderClass<ItemFieldStruct>*  Reader_ItemField_GMTools( );
static ReaderClass<RoleValueData>*  Reader_RoleValueData_GMTools( );
//-------------------------------------------------------------------------------------------------------------------------
/*
typedef int					 (*GenerateItemVersionFunction)     ( int OrgObjID );
typedef	GameObjDbStruct*	 (*GetObjDBFunction)			    ( int OrgID );
typedef	RoleDataEx*			 (*GetRoleDataFunction)		        ( int LocalID );
typedef bool				 (*NewItemInitFunction)		        ( ItemFieldStruct& Item , int OrgObjID  );
typedef void				 (*UpDateEventFunction)		        ( RoleData *player , RoleUpdateEvent );
*/
//----------------------------------------------------------------------------------------------------------------------------
//	外部CallBack函式
//----------------------------------------------------------------------------------------------------------------------------


static  function< GameObjDbStructEx*(int) >             St_GetObjDB;
static  function< RoleDataEx*(int) >                    St_GetRoleData;
static  function< int(int) >                            St_GenerateItemVersion;
static  function< bool(ItemFieldStruct&,int,int) >      St_NewItemInit;
static  function< void(RoleDataEx*, RoleUpdateEvent) >  St_UpDateEvent;
static  function< bool(RoleDataEx*, RoleDataEx*) >      St_PrcoessDead;
static  function< bool(RoleDataEx*,MagicProcInfo*) >    St_SpellMagic;
static  function< int(int,float,float,float,float,int) >St_CreateObj;
static  function< bool(int,int) >						St_AddToPartition;

//----------------------------------------------------------------------------------------------------------------------------
//外部 CallBack空函式
//----------------------------------------------------------------------------------------------------------------------------
static GameObjDbStructEx*	Empty_GetObjDB				        ( int OrgID ){return NULL;};
static RoleDataEx*			Empty_GetRoleData			        ( int LocalID ){return NULL;};
static int  				Empty_GenerateItemVersionFunction	( int OrgObjID ){return 0;};
static bool					Empty_NewitemInit					( ItemFieldStruct& Item , int OrgObjID , int LV ){return false;};
static void					Empty_UpDateEvent					( RoleDataEx *player , RoleUpdateEvent ){};
static bool					Empty_PrcoessDead                   ( RoleDataEx*, RoleDataEx* ){return false;};
static bool					Empty_SpellMagic                    ( RoleDataEx*,MagicProcInfo* ){ return false;}
static int					Empty_CreateObj						( int ObjID , float x , float y , float z , float dir , int count ){ return -1;}
static bool					Empty_AddToPartition( int GItemID , int RoomID ){ return false;};