UGCProjects/Structs.lua

538 lines
18 KiB
Lua
Raw Permalink Normal View History

2025-01-04 23:00:19 +08:00
---@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<PlayerKey, any>
---@field AccountInfo table<PlayerKey, PlayerAccountInfo>
---@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<int32, ItemData>
---@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<int32, BuffSingleItem> 所有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]<int, 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<PlayerKey, PlayerKDAItem>
---@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<int32, UGCPlayerController_C>
---@alias PlayerPawnList table<int32, UGCPlayerPawn_C>
---@alias PlayerStateList table<int32, UGCPlayerState_C>
---@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<PlayerKey, float> SC 获取游戏分数
---@field OnGameEnd fun(Scores:table<PlayerKey, float>) SC 游戏结束
---@field SelectPlayerStart fun(PlayerStartList:table<TeamId, table<int32, APlayerStart>>, Controller:UGCPlayerController_C) S 选择玩家出生点,如果不选择,会使用默认选择方式
---@field OnPlayerPossessed fun(Pawn:UGCPlayerPawn_C, NewController:UGCPlayerController_C) SC 当玩家被控制
---@field OnPawnInit fun(Pawn:UGCPlayerPawn_C, Weapons:table<int32, WeaponInfo>|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<int32, FMiniGameMapIndex> 当前所有玩家选择的地图
---@field Owner UGCGameState_C 默认是 GameSate如果不是可以在具体实例里面实现对应方法
---@field GameConfig table<any> 游戏配置,对应着 MiniGameConfig[self.CurrSelectMap]
---@field CurrMiniMode MiniGameMode 当前小玩法的具体实现,统一入口出口管理
---@field TargetMiniGameCount int32 目标小游戏数量,低于这个数量会自动添加到这个数量
---@field State MiniGameState 模式状态,可以在本实例和 CurrMiniMode 中获取
---@field PlayerData table<PlayerKey, any> 玩家数据
---@field MiniInfo table<int32, any> 小游戏需要同步的数据,会自动执行 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<any> 参数:可以传入内部的参数,可以
---@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)