---@class PlayerAccountInfo ---@field UID int32 ---@field PlayerName string ---@field TeamID int32 ---@field Gender bool ---@field PlatformGender bool ---@field PlayerLevel int32 ---@field SegmentLevel int32 ---@field IconURL string ---@field AvatarBoxId int32 ---@alias IsSucceed bool ---@class GameStatePlayerDatas ---@field ArchiveData table ---@field AccountInfo table ---@class ArchiveData ---@field GameTimes int32 游戏次数 ---@field WinTimes int32 赢游戏次数 ---@class EUILayerGroup ---@field Negative int32 ---@field Least int32 ---@field Bottom int32 ---@field Low int32 ---@field MainUI int32 ---@field Medium int32 ---@field High int32 ---@field Top int32 ---@field Toppest int32 ---@field Notice int32 ---@class FTimerDelegate ---@class ItemData ---@field ItemID int32 ---@field InstanceID int32 ---@field Count int32 ---@field Type int32 ---@field SubType int32 ---@field IsAvatar bool ---@class BP_BuffManager ---@alias ItemDataList table ---@class BuffAction ---@field ApplyBuff fun(BuffType: int32, OwnerActor: AActor, ContinueTime: float, ...) 应用 Buff ---@field RemoveBuff fun(BuffType: int32, OwnerActor: AActor, ContinueTime: float, ...) 应用 Buff ---@field Vars any 各种数据 ---@class EBuffExecType Buff 执行类型 ---@field ByTimes int32 通过次数,次数为零的时候就删除该 Buff ---@field ByDuration int32 通过时间,每隔一段时间就会执行一次 ---@field ByTimesAndDuration int32 同时存在次数限制和时间限制,次数到了就会结束,时间到了也会结束 ---@class BuffSingleItem ---@field StartTime float 开始时间 ---@field EndTime float Buff结束时间 ---@field PlayerKey int32 拥有者的玩家 Key ---@field BuffId int32 BuffId ---@field Inst BuffAction Buff 对应执行的文件 ---@field Vars table|any 存放的数据 ---@class BuffItem ---@field BuffId int32| string | any Buff ID ---@field Items table 所有Buff ---@field ContinueTime float Buff持续时间 ---@field ContinueTimes int32 持续次数 ---@class NextUseBuffTimeStruct ---@field StartTime float ---@field EndTime float ---@class TableItemBase ---@field ItemName string ---@field Desc string ---@field WrapperClass string ---@field SmallIcon string ---@field BigIcon string ---@field BigTexture UTexture2D ---@field SmallTexture UTexture2D ---@class WeaponTableItem : TableItemBase ---@field ItemSubId int32 ---@field TypeNew EWeaponTypeNew 类型 ---@field IconPath string ---@field Enable bool ---@class TypeNameItem ---@field Chinese string ---@field English string ---@class WeaponTypeNameItem : TypeNameItem ---@field SubId string ---@class WeaponPartItem ---@field ID int32 ---@field Name string ---@field Desc string ---@field Type EWeaponPartType ---@field Alias string ---@field Icon string ---@field IconTexture UTexture2D ---@class AmmoTableItem ---@field ItemName string ---@field Desc string ---@field Count int32 ---@field SmallIcon string ---@class ItemId: int32 ---@class PlayerKey:uint32 ---@class TeamId: int32 ---@class PlayerPawn: UGCPlayerPawn_C ---@class EUIType: int32 ---@class Vector: FVector ---@class Vector3D: Vector ---@class uint:uint32 ---@class int: int32 ---@class PlayerKeys: LuaTable[PlayerKey] ---@class RoundInfo ---@field CurrRoundTime int32 当前回合次数 ---@field RoundState RoundState 当前回合次数 ---@field RoundCountTime float 回合倒计时 ---@field RoundSettleCountTime float 回合结算倒计时 ---@class BuffActionInfoItem ---@field Name string ---@field Path string ---@field EnableInit boolean ---@class PlayerDamageItem ---@field Damage float ---@field PlayerKey PlayerKey ---@class PlayerKDAItem ---@field Kill int32 ---@field Dead int32 ---@field Assist int32 ---@alias PlayerKDAList table ---@class PlayerKDAItem1:PlayerKDAItem ---@field PlayerKey int32 ---@field Score float ---@class HUDConfigItem ---@field Path string ---@field bShowOnce bool ---@alias LuaTable:table ---@class Timer 定时器类 ---@field InsertTimer fun(IntervalTime:float, Fun:fun(), IsLoop: bool):TimerHandler 添加定时器 ---@field RemoveTimer fun(Handle:TimerHandler) 移除定时器 ---@class GameplayStatics:UGameplayStatics ---@class STExtraGameplayStatics: USTExtraGameplayStatics ---@class FMiniMapInfo ---@field MapPath string ---@field MapCentre FVector ---@field MapSize float ---@field MapScale float ---@class LevelItem ---@field Icon string ---@field IconSelect string ---@field ShowName string ---@field MapName string ---@field MiniMapInfo FMiniMapInfo ---@class CircleConfigItem ---@field Delay float ---@field Center FVector ---@field Radius float ---@field MoveTime float ---@field Damage float ---@class EMoveType ---@field ROTATE int32 ---@field MOVE int32 ---@class FSyncLocation ---@field Location FVector ---@field Rotation FRotator ---@class MovingActorInfo ---@field MoveType EMoveType ---@field Speed float 速度 ---@field Delay float 延迟时间 ---@field StartPos FVector 起始位置 ---@field StartRot FRotator 起始旋转 ---@field EndPos FVector 终点位置 ---@field CurrPos FVector 当前位置 ---@field CurrRot FRotator 当前旋转 ---@field DeltaPos FVector 每帧移动距离 ---@field StartMoveTime float 开 始移动时间(使用当前游戏时间作为开始) = CurrTime ---@field TotalMoveTime float 全程移动时间(从起始点移动到终点的时间) ---@field MoveTime float 当前已经移动的时间(从起始点到现在的时间) = CurrTime - StartMoveTime ---@field IsMove bool 是否移动 ---@field MoveDirection FVector 移动方向(每秒的移动方向,注意:该值在默认范围 MovingActorsManager.FrameTime 内改变无效) ---@field Rotation FRotator 旋转方向(每秒旋转的方向) ---@field Func fun(Actor: AActor, DeltaTime: float):bool, FVector, FRotator, bool 当前函数 ---@class PlayerKDA_DamageItem ---@field Damage float ---@field KDA PlayerKDAItem1 ---@field PlayerKey int32 ---@class FBuffAction ---@field GetOwnerPawn fun():UGCPlayerPawn_C ---@field LuaDoAction fun():boolean ---@field LuaUndoAction fun():boolean ---@field LuaResetAction fun():boolean ---@field LuaUpdateAction fun(DeltaSeconds:float):boolean ---@class EWeaponTypes ---@field Melee int32 近战 ---@field Sniper int32 狙击枪 ---@field Rifle int32 步枪 ---@field SubmachineGun int32 冲锋枪 ---@field MachineGun int32 机枪 ---@field Pistol int32 手枪 ---@field Special int32 特殊武器 ---@class EWeaponPartType ---@field Best int32 最好的 ---@field Muzzle int32 枪口 ---@field Grip int32 握把 ---@field Telescope int32 瞄准镜 ---@field Magazine int32 弹匣 ---@field ButtStock int32 枪托 ---@class EBombType 炸弹类型 ---@field Grenade int32 手榴弹 ---@field FireBomb int32 燃烧弹 ---@field StunGrenade int32 震爆弹 ---@field SmokeBomb int32 烟雾弹 ---@class PlayerAttributeItem ---@field MaxHealth float 最大血量,这个是 百分比 ---@field Damage float 伤害乘积,产生的伤害会 * 这个数 也是百分比 ---@field BodySize float 体型 也是百分比 ---@field Speed float 速度 百分比 ---@field Shield float 伤害减免 具体值 ---@class EWeaponIdType 武器 ID 类型 ---@field Rifle int32 步枪 ---@field Submachine int32 冲锋枪 ---@field Sniper int32 狙击枪 ---@field ShotGun int32 霰弹枪 ---@field MachineGun int32 机枪 ---@field Pistol int32 手枪 ---@field RPG int32 RPG ---@field Melee int32 近战武器 ---@field Special int32 特殊武器 ---@class ECustomItemType ---@field Weapon int32 武器 ---@field Part int32 配件 ---@field Bullet int32 子弹 ---@field Equipment int32 装备 ---@field Skin int32 皮肤 ---@field Supplies int32 补给品 ---@class PlayerInitEquipmentItem ---@field ItemName string|int32 ---@field ItemCount int32 ---@field ItemCount int32 ---@class SceneObjItem ---@field IsLimit bool 是否开启限制;不开启限制每一个 Item 都会有一个 ---@field RefreshTime float 刷新的时间 ---@field TotalCount float 当前的数量,如果是 > 1 的,那么就按照这个整数来计算,如果是 <= 1 的,那么就按 百分比 来计算 ---@field EventType int32 ---@field MinLimit int32 场景上最小限制数,当百分比低于这个的时候按这个计数 ---@field Enable bool 是否启用,如果不启用,那么直接删除 ---@class ESceneObjType ---@field Buff int32 ---@field Weapon int32 ---@field Supply int32 ---@class EPawnBenefitType ---@field Health int32 ---@field Damage int32 ---@field Speed int32 ---@field Jump int32 ---@field MaxHealth int32 ---@field BodySize int32 ---@field Energy int32 ---@class EGameProgress ---@field NON_START int32 ---@field PREPARE int32 ---@field GAMING int32 ---@field ENDED int32 ---@class EDamage_KDA_SortRule 排序 ---@field Damage int32 伤害排序 ---@field Kill int32 击杀排序 ---@field KDA int32 KDA 排序 ---@field KDA_Damage int32 KDA 和伤害 排序 ---@field Custom int32 自定义排序 ---@class ESceneObjectType ---@field Count int32 ---@field Percent int32 ---@class ESupplyType ---@field Drink int32 ---@field Injection int32 ---@field Pills int32 ---@field Bandage int32 ---@field FirstAid int32 ---@field FirstAidbox int32 ---@class VehicleItemInfo ---@field Name string ---@field Path string ---@class MoveItemScriptBase ---@field MoveLength float ---@field Init fun() ---@field Move fun(InActor:AActor, InDeltaTime:float, InTimeInterval:float):FVector ---@field Rotate fun(InActor:AActor, InDeltaTime:float, InTimeInterval:float):FRotator ---@field GetStaticMeshString fun():string, FTransform ---@class MachineItemScriptBase ---@field bEnableMachine bool 是否启动 ---@field bEnableTick bool 是否启动 ---@field Init fun() ---@field Execute fun(InPawn:UGCPlayerPawn_C) ---@field Tick fun(dt:float, st:float) ---@field Exit fun(InPawn:UGCPlayerPawn_C) ---@field ToString fun():string ---@field SetEnable fun():string ---@class MiniGameManager ---@class MiniGameMapType ---@alias PlayerControllerList table ---@alias PlayerPawnList table ---@alias PlayerStateList table ---@class MiniGameMode ---@field Owner MiniGameManager ---@field MapIndex int32 ---@field CreateTime float ---@field bGameEnd bool ---@field bCanRespawn bool ---@field State MiniGameState ---@field Init fun(MiniGameManager:FMiniGameManager, ...) SC 游戏初始化执行函数,后面的参数是通过 Config 参数列表中传入的 ---@field OnPrepare fun() SC 游戏初始化执行函数 ---@field OnPrepareEnd fun() SC 游戏准备阶段结束,开始小游戏 ---@field OnTick fun(InDeltaTime:float, InServerTime:float) Tick 函数 ---@field OnAlready fun() SC 地图加载完成 ---@field SetState fun(InState:MiniGameState) S 设置游戏进程时可以执行的操作 ---@field OnRoundStart fun(InTimes:int32) SC 游戏回合开始准备 ---@field OnRoundFormalStart fun(InTimes:int32, InTime:float) SC 游戏回合开始准备 ---@field OnRoundEnd fun(InTimes:int32, Winner:int32, InTime:float) SC 回合结束,进入回合结算阶段 ---@field GetRoundWinner fun(InTimes:int32) SC 获取本回合胜利者 ---@field GetMiniInfo fun(InName:string) SC 获取内部数据 ---@field GetScore fun():table SC 获取游戏分数 ---@field OnGameEnd fun(Scores:table) SC 游戏结束 ---@field SelectPlayerStart fun(PlayerStartList:table>, Controller:UGCPlayerController_C) S 选择玩家出生点,如果不选择,会使用默认选择方式 ---@field OnPlayerPossessed fun(Pawn:UGCPlayerPawn_C, NewController:UGCPlayerController_C) SC 当玩家被控制 ---@field OnPawnInit fun(Pawn:UGCPlayerPawn_C, Weapons:table|nil) SC 玩家初始化操作 ---@field OnPlayerTakeDamage fun(DamagedActor:UGCPlayerPawn_C, Damage:float, DamageType:EDamageType, EventInstigator:UGCPlayerController_C) S 玩家修改伤害函数 ---@field BPReceiveDamage fun(DamagedActor:UGCPlayerPawn_C, Damage:float, DamageType:EDamageType, InstigatedBy:UGCPlayerController_C, DamageCauser:AActor) SC 玩家接收到伤害函数 ---@field OnPlayerDead fun(DeadPlayerKey:PlayerKey, KillerPlayerKey:PlayerKey) SC 当玩家死亡 ---@field OnPlayerRespawn fun(InPlayerKey:PlayerKey) SC 当玩家重生 ---@field OnPlayerLeave fun(InPlayerKey:PlayerKey) S 当玩家退出时 ---@field OnPlayerGetWeapon fun(Pawn:UGCPlayerPawn_C, Weapon:ASTExtraWeapon) S 当玩家使用武器的时候 ---@field OnWeaponBulletHit fun(Pawn:UGCPlayerPawn_C, ShootWeapon:ASTExtraShootWeapon, Bullet:ASTExtraShootWeapon, HitInfo:FHitResult) S 当玩家使用武器的时候 ---@field OnRep_State fun(InOld:MiniGameState) C 当改变属性的时候执行 ---@field OnRep_RoundTimes fun(InOld:float) C 当改变属性的时候执行 ---@field OnRep_xxx fun(InOld:any) C 当改变属性的时候执行 ---@class FMiniGameMapIndex: int32 ---@class UNewButton:UButton ---@class UNewCheckBox:UCheckBox ---@class FMiniGameManager 游戏模式管理器,需要引入 GlobalTickTool 文件 ---@field SelectMaps table 当前所有玩家选择的地图 ---@field Owner UGCGameState_C 默认是 GameSate,如果不是可以在具体实例里面实现对应方法 ---@field GameConfig table 游戏配置,对应着 MiniGameConfig[self.CurrSelectMap] ---@field CurrMiniMode MiniGameMode 当前小玩法的具体实现,统一入口出口管理 ---@field TargetMiniGameCount int32 目标小游戏数量,低于这个数量会自动添加到这个数量 ---@field State MiniGameState 模式状态,可以在本实例和 CurrMiniMode 中获取 ---@field PlayerData table 玩家数据 ---@field MiniInfo table 小游戏需要同步的数据,会自动执行 OnRep_xxx 函数,TODO 后续把这个抽出来单独作为一个类实现 ---@field ReceiveBeginPlay fun() SC ---@field OnTick fun(InDeltaTime:float, InServerTime:float 服务器时间) SC tick 函数 ---@field OnClientAlready fun() 客户端准备就绪 ---@field ChangeTime fun(InTime:float) S 由于全局倒计时只有一个时间(所有状态互斥),因此可以改变任意流程的倒计时 ---@field OnGameActive fun() SC 游戏初始化(不需要用它,太早) ---@field OnGameStart fun() SC 游戏正式开始(在准备地图结束后会执行) ---@field OnBeforeGameStart fun(InTime:int32) S 在游戏开始前每秒执行一次 ---@field OnGameEnd fun() SC 会自动执行结算模式,在此处是 GameEnd ---@field LoadMiniGame fun(InMiniType:FMiniGameMapIndex) SC 加载服务器客户端的单个玩法,如果单个玩法加载失败,则会循环下一个加载,直到所有已选择的玩法加载完成或者全部失败 ---@field UnLoadMiniGame fun() SC 卸载玩法 ---@field OnMiniGameTimeCount fun(InVal: float) SC 玩法倒计时(全局只有这一个倒计时) ---@field OnMiniGameEnd fun() 玩法结束 ---@field OnMiniGameSwitch fun() 玩法切换 ---@field SetRoundTimes fun(InTimes:float) SC 设置回合数 ---@field OnRep_RoundTimes fun(InOld:int32) 回合数客户端同步回调 ---@field OnRep_State fun(InOld:FMiniGameMapIndex) 状态客户端同步回调 ---@field SetMiniInfo fun() 设置同步 MiniInfo ---@field SetGameInfo fun(InName:string, InInfo:any) 设置游戏数据 ---@field SendRPC fun(InRPCName:string, ...:vararg) SC 发送RPC,传入函数会自动导到对应函数名的函数上 ---@field OnPrepareEnd fun() SC 准备结束 ---@field GetReplicatedProperties fun():string,string,string,vararg SC 获取需要同步的变量 ---@field MakeRepProps fun() SC 组装 Props,别用 ---@alias String string ---@alias Object UObject ---@alias Rotator FRotator ---@alias Class UClass ---@alias Controller AController ---@alias TArray table ---@alias LuatTable table ---@alias LuaTable table ---@alias Float float ---@alias STExtraWeapon ASTExtraShootWeapon ---@alias WeaponManagerComponent UWeaponManagerComponent ---@alias PlayerController UGCPlayerController_C ---@class EBuffState ---@field None int32 ---@field Using int32 ---@field Cooling int32 ---@class FBuffConfigItem ---@field Name string ---@field Script string ---@field Desc string ---@field Icon string ---@field Continue float 如果是 -1, 那么就是永久的,如果是 nil,就是添加的时候执行的;如果是 0 表示没有持续时间,如果 > 0, 表示当前是持续执行这么长时间的 ---@field Cooldown float 如果 >0 表示有这么长时间的冷却,该值只在 Stack <= 1 或者 == nil 的时候有用;否则不起作用 ---@field Params table 参数:可以传入内部的参数,可以 ---@class SlateBlueprintLibrary:USlateBlueprintLibrary ---@class WidgetLayoutLibrary:UWidgetLayoutLibrary ---@class PoisonConfigItem ---@field delaytime float 延迟时间,当倒计时结束的时候会显示提示,提示结束之后才会开始刷圈 ---@field SafeZoneAppeartime float 刷圈前的时间 ---@field lasttime float 刷圈时间 ---@field blueradius float 蓝圈半径 ---@field whiteradius float 白圈半径 ---@field pain float 伤害 ---@class ManagerBase ---@field OnClientAlready fun() ---@field OnMapLoadComplete fun() ---@field OnPlayerLogin fun(InPlayerKey:PlayerKey) ---@field OnPlayerLeave fun(InPlayerKey:PlayerKey) ---@field OnPawnInit fun(Pawn:UGCPlayerPawn_C) ---@field OnPlayerTakeDamage fun(DamagedActor:UGCPlayerPawn_C, Damage:float, DamageType:EDamageType, EventInstigator:UGCPlayerController_C) ---@field OnPlayerDead fun(DeadPlayerKey:PlayerKey, KillerPlayerKey:PlayerKey) ---@field BPReceiveDamage fun(DamagedActor:UGCPlayerPawn_C, Damage:float, DamageType:EDamageType, InstigatedBy:UGCPlayerController_C, DamageCauser:AActor) ---@field OnPlayerRespawn fun(InPlayerKey:PlayerKey) ---@field OnPlayerPossessed fun(Pawn:UGCPlayerPawn_C, NewController:UGCPlayerController_C) ---@field OnPlayerPickup fun(PlayerController:UGCPlayerController_C, Target:AActor, ItemID:int32, Count:int32) ---@field OnPlayerGetWeapon fun(InPawn:UGCPlayerPawn_C, Weapon:ASTExtraWeapon) ---@field OnWeaponBulletHit fun(InPawn:UGCPlayerPawn_C, ShootWeapon:ASTExtraShootWeapon, Bullet:AProjectileBulletBase, HitInfo:FHitResult) ---@field OnPlayerShoot fun(InPawn:UGCPlayerPawn_C, ShootWeapon:ASTExtraShootWeapon, BulletID:int32)