using System; using System.Runtime.InteropServices; using BrewMonster.Scripts.Task; namespace PerfectWorld.Scripts.Task { [Serializable] [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct ATaskTemplFixedData { // 任务id // Task ID public uint m_ID; // 任务名称 // Task name [MarshalAs(UnmanagedType.ByValArray, SizeConst = TaskTemplConstants.MAX_TASK_NAME_LEN)] public ushort[] m_szName; // 任务署名 // Task signature [MarshalAs(UnmanagedType.U1)] public bool m_bHasSign; // 署名字符串 // Signature string // skip 4 bytes public ushort[] m_pszSignature; // 任务类型 // Task type public uint m_ulType; // 时间限制 // Time limit public uint m_ulTimeLimit; // 下线任务失败 // Task fails when offline [MarshalAs(UnmanagedType.U1)] public bool m_bOfflineFail; // 任务失败时间 // Task failure time [MarshalAs(UnmanagedType.U1)] public bool m_bAbsFail; public task_tm m_tmAbsFailTime; // 任务开启物品检验不收取 // Don't take items when validating task start [MarshalAs(UnmanagedType.U1)] public bool m_bItemNotTakeOff; // 是否绝对时间 // Whether absolute time [MarshalAs(UnmanagedType.U1)] public bool m_bAbsTime; // 时间段个数 // Number of time periods public uint m_ulTimetable; // 时间方式 // Time method [MarshalAs(UnmanagedType.ByValArray, SizeConst = TaskTemplConstants.MAX_TIMETABLE_SIZE)] public byte[] m_tmType; // 发放起始时间 // Distribution start time // [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0)] [NonSerialized] public task_tm[] m_tmStart; // 发放终止时间 // Distribution end time // [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0)] [NonSerialized] public task_tm[] m_tmEnd; // 发放频率 // Distribution frequency public int m_lAvailFrequency; public int m_lPeriodLimit; // 选择单个子任务执行 // Execute single subtask [MarshalAs(UnmanagedType.U1)] public bool m_bChooseOne; // 随机旋转单个子任务执行 // Randomly rotate single subtask execution [MarshalAs(UnmanagedType.U1)] public bool m_bRandOne; // 子任务是否有顺序 // Whether subtasks have order [MarshalAs(UnmanagedType.U1)] public bool m_bExeChildInOrder; // 失败后是否认为父任务也失败 // Whether parent task fails when subtask fails [MarshalAs(UnmanagedType.U1)] public bool m_bParentAlsoFail; // 子任务成功后父任务成功 // Parent task succeeds when subtask succeeds [MarshalAs(UnmanagedType.U1)] public bool m_bParentAlsoSucc; // 能否放弃此任务 // Whether task can be abandoned [MarshalAs(UnmanagedType.U1)] public bool m_bCanGiveUp; // 是否可重复完成 // Whether task can be repeated [MarshalAs(UnmanagedType.U1)] public bool m_bCanRedo; // 失败后是否可重新完成 // Whether task can be redone after failure [MarshalAs(UnmanagedType.U1)] public bool m_bCanRedoAfterFailure; // 放弃清空任务 // Clear task when abandoned [MarshalAs(UnmanagedType.U1)] public bool m_bClearAsGiveUp; // 是否需要记录 // Whether recording is needed [MarshalAs(UnmanagedType.U1)] public bool m_bNeedRecord; // 玩家被杀死是否认为失败 // Whether task fails when player dies [MarshalAs(UnmanagedType.U1)] public bool m_bFailAsPlayerDie; // 接受者上限 // Maximum number of receivers public uint m_ulMaxReceiver; // 发放区域 // Distribution area [MarshalAs(UnmanagedType.U1)] public bool m_bDelvInZone; public uint m_ulDelvWorld; public uint m_ulDelvRegionCnt; // [MarshalAs(UnmanagedType.ByValArray, SizeConst = TaskTemplConstants.MAX_TASKREGION)] [NonSerialized] public Task_Region[] m_pDelvRegion; // 进入区域任务失败 // Task fails when entering region [MarshalAs(UnmanagedType.U1)] public bool m_bEnterRegionFail; public uint m_ulEnterRegionWorld; public uint m_ulEnterRegionCnt; // [MarshalAs(UnmanagedType.ByValArray, SizeConst = TaskTemplConstants.MAX_TASKREGION)] [NonSerialized] public Task_Region[] m_pEnterRegion; // 离开区域任务失败 // Task fails when leaving region [MarshalAs(UnmanagedType.U1)] public bool m_bLeaveRegionFail; public uint m_ulLeaveRegionWorld; public uint m_ulLeaveRegionCnt; // [MarshalAs(UnmanagedType.ByValArray, SizeConst = TaskTemplConstants.MAX_TASKREGION)] [NonSerialized] public Task_Region[] m_pLeaveRegion; // 离开阵营失败 // Fails when leaving force [MarshalAs(UnmanagedType.U1)] public bool m_bLeaveForceFail; // 传送到特定点 // Teleport to specific point [MarshalAs(UnmanagedType.U1)] public bool m_bTransTo; public uint m_ulTransWldId; public ZONE_VERT m_TransPt; // Monster controller public long m_lMonsCtrl; [MarshalAs(UnmanagedType.U1)] public bool m_bTrigCtrl; // Auto trigger when conditions are met [MarshalAs(UnmanagedType.U1)] public bool m_bAutoDeliver; // Whether to display in exclusive UI [MarshalAs(UnmanagedType.U1)] public bool m_bDisplayInExclusiveUI; [MarshalAs(UnmanagedType.U1)] public bool m_bReadyToNotifyServer; // Whether used in token shop [MarshalAs(UnmanagedType.U1)] public bool m_bUsedInTokenShop; // Death trigger [MarshalAs(UnmanagedType.U1)] public bool m_bDeathTrig; // Whether clear all acquired items [MarshalAs(UnmanagedType.U1)] public bool m_bClearAcquired; // Recommended level public uint m_ulSuitableLevel; // Whether to show prompt [MarshalAs(UnmanagedType.U1)] public bool m_bShowPrompt; // Whether it is a key task [MarshalAs(UnmanagedType.U1)] public bool m_bKeyTask; // Delivery NPC public uint m_ulDelvNPC; // Award NPC public uint m_ulAwardNPC; // Whether it is a skill task [MarshalAs(UnmanagedType.U1)] public bool m_bSkillTask; // Whether can be searched [MarshalAs(UnmanagedType.U1)] public bool m_bCanSeekOut; // Whether show direction [MarshalAs(UnmanagedType.U1)] public bool m_bShowDirection; // Marriage [MarshalAs(UnmanagedType.U1)] public bool m_bMarriage; // Change global key/value public uint m_ulChangeKeyCnt; // [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0)] [NonSerialized] public int[] m_plChangeKey; // [TASK_AWARD_MAX_CHANGE_VALUE] // [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0)] [NonSerialized] public int[] m_plChangeKeyValue; // [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0)] [NonSerialized] public bool[] m_pbChangeType; // Fail on scene switch [MarshalAs(UnmanagedType.U1)] public bool m_bSwitchSceneFail; // Hidden task [MarshalAs(UnmanagedType.U1)] public bool m_bHidden; // Whether deliver skill [MarshalAs(UnmanagedType.U1)] public bool m_bDeliverySkill; public int m_iDeliveredSkillID; public int m_iDeliveredSkillLevel; // Whether show task completion effect [MarshalAs(UnmanagedType.U1)] public bool m_bShowGfxFinished; // Whether change player ranking in PQ [MarshalAs(UnmanagedType.U1)] public bool m_bChangePQRanking; // Compare delivery items with player inventory slots [MarshalAs(UnmanagedType.U1)] public bool m_bCompareItemAndInventory; public uint m_ulInventorySlotNum; // PQ Task related // PQ任务相关 [MarshalAs(UnmanagedType.U1)] public bool m_bPQTask; // Whether it is a PQ task // 是否是PQ任务 public uint m_ulPQExpCnt; // PQ task global variable display // PQ任务全局变量显示 // [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0)] [NonSerialized] public byte[,] m_pszPQExp; // PQ expressions // [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0)] [NonSerialized] public TASK_EXPRESSION[,] m_pPQExpArr; // PQ expression arrays [MarshalAs(UnmanagedType.U1)] public bool m_bPQSubTask; // Whether it is a PQ subtask // 是否PQ子任务 [MarshalAs(UnmanagedType.U1)] public bool m_bClearContrib; // Clear contribution when task starts // 任务开始时清空贡献度 public uint m_ulMonsterContribCnt; // Number of monster types // 怪物种类数量 // [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0)] [NonSerialized] public MONSTERS_CONTRIB[] m_MonstersContrib; // Monster contribution settings // 怪物贡献度设定 // Account Task related // 账号任务相关 public int m_iPremNeedRecordTasksNum; // Number of completed record tasks // 记录完成结果任务完成个数 [MarshalAs(UnmanagedType.U1)] public bool m_bShowByNeedRecordTasksNum; // Show by number of needed record tasks public int m_iPremiseFactionContrib; // Faction contribution // 帮派贡献度 [MarshalAs(UnmanagedType.U1)] public bool m_bShowByFactionContrib; // Show by faction contribution [MarshalAs(UnmanagedType.U1)] public bool m_bAccountTaskLimit; // Whether account limits completion times // 是否账号限制完成次数 [MarshalAs(UnmanagedType.U1)] public bool m_bRoleTaskLimit; // Whether role limits completion times // 是否角色限制完成次数 public uint m_ulAccountTaskLimitCnt; // Account task limit count (deprecated) // 账号限制完成次数,废弃使用了 [MarshalAs(UnmanagedType.U1)] public bool m_bLeaveFactionFail; // Fail when leaving faction [MarshalAs(UnmanagedType.U1)] public bool m_bNotIncCntWhenFailed; // Don't increase count when failed // 是否失败时不增加完成次数 [MarshalAs(UnmanagedType.U1)] public bool m_bNotClearItemWhenFailed; // Don't clear items when failed // 任务失败时不收取任务要求的物品 [MarshalAs(UnmanagedType.U1)] public bool m_bDisplayInTitleTaskUI; // Show in title task UI // 是否显示在称号任务界面里 /* 开启条件 */ /* Opening conditions */ // 变身状态 // Transformation state public byte m_ucPremiseTransformedForm; [MarshalAs(UnmanagedType.U1)] public bool m_bShowByTransformed; // 等级条件 // Level conditions public uint m_ulPremise_Lev_Min; public uint m_ulPremise_Lev_Max; public uint m_bPremCheckMaxHistoryLevel; [MarshalAs(UnmanagedType.U1)] public bool m_bShowByLev; // 转生次数 // Reincarnation times [MarshalAs(UnmanagedType.U1)] public bool m_bPremCheckReincarnation; public uint m_ulPremReincarnationMin; public uint m_ulPremReincarnationMax; [MarshalAs(UnmanagedType.U1)] public bool m_bShowByReincarnation; // 境界 // Realm level [MarshalAs(UnmanagedType.U1)] public bool m_bPremCheckRealmLevel; public uint m_ulPremRealmLevelMin; public uint m_ulPremRealmLevelMax; [MarshalAs(UnmanagedType.U1)] public bool m_bPremCheckRealmExpFull; [MarshalAs(UnmanagedType.U1)] public bool m_bShowByRealmLevel; // 所需道具 // Required items public uint m_ulPremItems; // [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0)] [NonSerialized] public ITEM_WANTED[] m_PremItems; //[MAX_ITEM_WANTED]; [MarshalAs(UnmanagedType.U1)] public bool m_bShowByItems; [MarshalAs(UnmanagedType.U1)] public bool m_bPremItemsAnyOne; // 发放道具 // Given items public uint m_ulGivenItems; public uint m_ulGivenCmnCount; public uint m_ulGivenTskCount; // [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0)] [NonSerialized] public ITEM_WANTED[] m_GivenItems; //[MAX_ITEM_WANTED]; // 押金 // Deposit public uint m_ulPremise_Deposit; [MarshalAs(UnmanagedType.U1)] public bool m_bShowByDeposit; // 声望 // Reputation public long m_lPremise_Reputation; public long m_lPremise_RepuMax; [MarshalAs(UnmanagedType.U1)] public bool m_bShowByRepu; // 完成特定任务(成功?失败?),Task ID最高位1表示条件为失败,0为成功 // Complete specific tasks (success? failure?), Task ID highest bit 1 means failure condition, 0 means success condition public uint m_ulPremise_Task_Count; [MarshalAs(UnmanagedType.ByValArray, SizeConst = TaskTemplConstants.MAX_PREM_TASK_COUNT)] public uint[] m_ulPremise_Tasks; [MarshalAs(UnmanagedType.U1)] public bool m_bShowByPreTask; public uint m_ulPremise_Task_Least_Num; // 多个前提任务需要完成若干个 // Multiple prerequisite tasks need to complete a certain number // 达到特定时期 // Reach specific period public uint m_ulPremise_Period; [MarshalAs(UnmanagedType.U1)] public bool m_bShowByPeriod; // 帮派 // Faction public uint m_ulPremise_Faction; public int m_iPremise_FactionRole; [MarshalAs(UnmanagedType.U1)] public bool m_bShowByFaction; // 性别 // Gender public uint m_ulGender; [MarshalAs(UnmanagedType.U1)] public bool m_bShowByGender; // 职业限制 // Occupation restrictions public uint m_ulOccupations; [MarshalAs(UnmanagedType.ByValArray, SizeConst = TaskTemplConstants.MAX_OCCUPATIONS)] public uint[] m_Occupations; [MarshalAs(UnmanagedType.U1)] public bool m_bShowByOccup; // 夫妻 // Spouse [MarshalAs(UnmanagedType.U1)] public bool m_bPremise_Spouse; [MarshalAs(UnmanagedType.U1)] public bool m_bShowBySpouse; [MarshalAs(UnmanagedType.U1)] public bool m_bPremiseWeddingOwner; [MarshalAs(UnmanagedType.U1)] public bool m_bShowByWeddingOwner; // GM [MarshalAs(UnmanagedType.U1)] public bool m_bGM; // 完美神盾用户 // Perfect Shield user [MarshalAs(UnmanagedType.U1)] public bool m_bShieldUser; // 账号累计充值金额(下限&上限) // Account accumulated recharge amount (lower & upper limit) [MarshalAs(UnmanagedType.U1)] public bool m_bShowByRMB; public uint m_ulPremRMBMin; public uint m_ulPremRMBMax; // 角色相关时间 // Character-related time [MarshalAs(UnmanagedType.U1)] public bool m_bCharTime; [MarshalAs(UnmanagedType.U1)] public bool m_bShowByCharTime; public int m_iCharStartTime; public int m_iCharEndTime; // 为0则为当前时间;为1则为m_tmCharEndTime指定时间; // 0 means current time; 1 means the time specified by m_tmCharEndTime; public task_tm m_tmCharEndTime; public uint m_ulCharTimeGreaterThan; // 关联任务 // Related tasks public uint m_ulPremise_Cotask; public uint m_ulCoTaskCond; // 互斥任务 // Mutually exclusive tasks public uint m_ulMutexTaskCount; [MarshalAs(UnmanagedType.ByValArray, SizeConst = TaskTemplConstants.MAX_MUTEX_TASK_COUNT)] public uint[] m_ulMutexTasks; // 生活技能级别 // Life skill levels [MarshalAs(UnmanagedType.ByValArray, SizeConst = TaskTemplConstants.MAX_LIVING_SKILLS)] public long[] m_lSkillLev; // 动态任务类型 // Dynamic task type public byte m_DynTaskType; // 特殊奖励号,用于运营的活动 // Special award number, used for operational activities public uint m_ulSpecialAward; // 组队信息 // Team information [MarshalAs(UnmanagedType.U1)] public bool m_bTeamwork; // 组队任务 // Team task [MarshalAs(UnmanagedType.U1)] public bool m_bRcvByTeam; // 必须组队接收 // Must be in team to receive [MarshalAs(UnmanagedType.U1)] public bool m_bSharedTask; // 新队员分享任务 // New team members share tasks [MarshalAs(UnmanagedType.U1)] public bool m_bSharedAchieved; // 分享杀怪、物品数量 // Share kill counts and item counts [MarshalAs(UnmanagedType.U1)] public bool m_bCheckTeammate; // 检查队友位置 // Check teammate positions public float m_fTeammateDist; // 队友距离平方值 // Square of teammate distance [MarshalAs(UnmanagedType.U1)] public bool m_bAllFail; // 任意队员失败则全部失败 // Any member fails, all fail [MarshalAs(UnmanagedType.U1)] public bool m_bCapFail; // 队长失败则全部失败 // Leader fails, all fail [MarshalAs(UnmanagedType.U1)] public bool m_bCapSucc; // 队长成功则全队成功 // Leader succeeds, all succeed public float m_fSuccDist; // 成功时队员的距离 // Member distance for success [MarshalAs(UnmanagedType.U1)] public bool m_bDismAsSelfFail; // 队员离队自身失败 // Member leaves team fails itself [MarshalAs(UnmanagedType.U1)] public bool m_bRcvChckMem; // 接任务时检查队员位置 // Check member positions when receiving task public float m_fRcvMemDist; // 接任务时队员距离平方值 // Square of member distance when receiving task [MarshalAs(UnmanagedType.U1)] public bool m_bCntByMemPos; // 队员在有效范围内杀怪有效 // Members in valid range for kill counts public float m_fCntMemDist; // 队员有效的范围 // Valid range for members [MarshalAs(UnmanagedType.U1)] public bool m_bAllSucc; // 任意队员成功则全部成功 // Any member succeeds, all succeed [MarshalAs(UnmanagedType.U1)] public bool m_bCoupleOnly; // 队长队员必须为夫妻 // Leader and member must be spouses [MarshalAs(UnmanagedType.U1)] public bool m_bDistinguishedOcc; // 队伍中不允许有相同的职业 // No same occupations allowed in team // 队伍成员需求 // Team member requirements public uint m_ulTeamMemsWanted; // [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0)] [NonSerialized] public TEAM_MEM_WANTED[] m_TeamMemsWanted; [MarshalAs(UnmanagedType.U1)] public bool m_bShowByTeam; // 前提全局key/value // Premise global key/value [MarshalAs(UnmanagedType.U1)] public bool m_bPremNeedComp; public int m_nPremExp1AndOrExp2; public COMPARE_KEY_VALUE m_Prem1KeyValue; public COMPARE_KEY_VALUE m_Prem2KeyValue; [MarshalAs(UnmanagedType.U1)] public bool m_bPremCheckForce; public int m_iPremForce; [MarshalAs(UnmanagedType.U1)] public bool m_bShowByForce; public int m_iPremForceReputation; [MarshalAs(UnmanagedType.U1)] public bool m_bShowByForceReputation; public int m_iPremForceContribution; // 扣除战功 // Deduct military merit [MarshalAs(UnmanagedType.U1)] public bool m_bShowByForceContribution; public int m_iPremForceExp; // 经验兑换 // Experience exchange [MarshalAs(UnmanagedType.U1)] public bool m_bShowByForceExp; public int m_iPremForceSP; // 元神兑换 // Spirit exchange [MarshalAs(UnmanagedType.U1)] public bool m_bShowByForceSP; public int m_iPremForceActivityLevel; [MarshalAs(UnmanagedType.U1)] public bool m_bShowByForceActivityLevel; [MarshalAs(UnmanagedType.U1)] public bool m_bPremIsKing; [MarshalAs(UnmanagedType.U1)] public bool m_bShowByKing; [MarshalAs(UnmanagedType.U1)] public bool m_bPremNotInTeam; [MarshalAs(UnmanagedType.U1)] public bool m_bShowByNotInTeam; public uint m_iPremTitleNumTotal; public uint m_iPremTitleNumRequired; // [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0)] [NonSerialized] public int[] m_PremTitles; [MarshalAs(UnmanagedType.U1)] public bool m_bShowByTitle; [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)] public int[] m_iPremHistoryStageIndex; // 历史阶段 // Historical stage [MarshalAs(UnmanagedType.U1)] public bool m_bShowByHistoryStage; public uint m_ulPremGeneralCardCount; // 收集的卡牌数量 // Number of collected cards [MarshalAs(UnmanagedType.U1)] public bool m_bShowByGeneralCard; public int m_iPremGeneralCardRank; // 要求某品阶的卡牌数量 // Required number of cards of a certain rank public uint m_ulPremGeneralCardRankCount; [MarshalAs(UnmanagedType.U1)] public bool m_bShowByGeneralCardRank; /* 任务完成的方式及条件 */ /* Task completion methods and conditions */ public uint m_enumMethod; public uint m_enumFinishType; /* 任务方式 */ /* Task methods */ public uint m_ulPlayerWanted; // [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0)] [NonSerialized] public PLAYER_WANTED[] m_PlayerWanted; public uint m_ulMonsterWanted; // [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0)] [NonSerialized] public MONSTER_WANTED[] m_MonsterWanted; public uint m_ulItemsWanted; // [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0)] [NonSerialized] public ITEM_WANTED[] m_ItemsWanted; public uint m_ulGoldWanted; public int m_iFactionContribWanted; public int m_iFactionExpContribWanted; public uint m_ulNPCToProtect; public uint m_ulProtectTimeLen; public uint m_ulNPCMoving; public uint m_ulNPCDestSite; //public ZONE_VERT m_ReachSiteMin; //public ZONE_VERT m_ReachSiteMax; // [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0)] [NonSerialized] public Task_Region[] m_pReachSite; public uint m_ulReachSiteCnt; public uint m_ulReachSiteId; public uint m_ulWaitTime; //藏宝图 使用已接任务列表中的m_iUsefulData1存储 // Treasure map Use m_iUsefulData1 in the list of accepted tasks public enum TREASURE_DISTANCE_LEVEL { DISTANCE_FAR_FAR_AWAY, DISTANCE_FAR, DISTANCE_MEDIUM, DISTANCE_NEAR, DISTANCE_VERY_NEAR, DISTANCE_NUM, } // TREA section public ZONE_VERT m_TreasureStartZone; public byte m_ucZonesNumX; public byte m_ucZonesNumZ; public byte m_ucZoneSide; //public ZONE_VERT m_LeaveSiteMin; //public ZONE_VERT m_LeaveSiteMax; // [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0)] [NonSerialized] public Task_Region[] m_pLeaveSite; public uint m_ulLeaveSiteCnt; public uint m_ulLeaveSiteId; // 完成全局key/value // Complete global key/value [MarshalAs(UnmanagedType.U1)] public bool m_bFinNeedComp; public int m_nFinExp1AndOrExp2; public COMPARE_KEY_VALUE m_Fin1KeyValue; public COMPARE_KEY_VALUE m_Fin2KeyValue; // 需显示的全局变量表达式 // Global variable expressions to display public uint m_ulExpCnt; [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)] public byte[,] m_pszExp; // [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)] [NonSerialized] public TASK_EXPRESSION[,] m_pExpArr; // 需显示的全局变量表达式提示字符串 // Global variable expression prompt strings public uint m_ulTaskCharCnt; // [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)] [NonSerialized] public ushort[,] m_pTaskChar; // 变身状态 // Transformation state public byte m_ucTransformedForm; // 等级 // Level public uint m_ulReachLevel; // 转生次数 // Reincarnation count public uint m_ulReachReincarnationCount; // 境界等级 // Realm level public uint m_ulReachRealmLevel; public uint m_uiEmotion; // 表情动作 // Emotion action /* 任务结束后的奖励 */ /* Rewards after task completion */ public uint m_ulAwardType_S; public uint m_ulAwardType_F; /* 普通和按每个方式 */ /* Normal and per-method rewards */ [NonSerialized] public AWARD_DATA m_Award_S; /* 成功 */ /* Success */ //public uint m_Award_S_ptr; [NonSerialized] public AWARD_DATA m_Award_F; /* 失败 */ /* Failure */ //public uint m_Award_F_ptr; /* 时间比例方式 */ /* Time ratio method */ //TODO: Revert [NonSerialized] public AWARD_RATIO_SCALE m_AwByRatio_S; //public uint m_AwByRatio_S_ptr; [NonSerialized] public AWARD_RATIO_SCALE m_AwByRatio_F; // public uint m_AwByRatio_F_ptr; /* 按获得物比例方式 */ /* Item ratio method */ //TODO: Revert [NonSerialized] public AWARD_ITEMS_SCALE m_AwByItems_S; public uint m_AwByItems_S_ptr; [NonSerialized] public AWARD_ITEMS_SCALE m_AwByItems_F; public uint m_AwByItems_F_ptr; /* 层次结构 */ /* Hierarchy structure */ public uint m_ulParent; public uint m_ulPrevSibling; public uint m_ulNextSibling; public uint m_ulFirstChild; /* 库任务相关 */ /* Library task related */ [MarshalAs(UnmanagedType.U1)] public bool m_bIsLibraryTask; public float m_fLibraryTasksProbability; [MarshalAs(UnmanagedType.U1)] public bool m_bIsUniqueStorageTask; public int m_iWorldContribution; // 世界贡献度要求 // World contribution requirement } }