660 lines
26 KiB
C#
660 lines
26 KiB
C#
using System;
|
|
using System.Runtime.InteropServices;
|
|
|
|
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
|
|
}
|
|
} |