Files
test/Assets/PerfectWorld/Scripts/Task/ATaskTemplFixedData.cs

661 lines
26 KiB
C#

using System;
using System.Runtime.InteropServices;
using BrewMonster.Scripts.Task;
namespace PerfectWorld.Scripts.Task
{
[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
}
}