无限火力

This commit is contained in:
gxx 2025-01-14 17:23:50 +08:00
parent a96088d573
commit 72d8b70c6a
93 changed files with 211 additions and 108 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -7,7 +7,7 @@ ProjectShortPath=/InfFire/
StartMapName=/InfFire/UGCmap StartMapName=/InfFire/UGCmap
MapMode=0 MapMode=0
bIsBigWorld=0 bIsBigWorld=0
Version=1.29.13.13030 Version=1.30.21.13232
UpdateVersion=5 UpdateVersion=5
GameModePath=/InfFire/Asset/Blueprint/UGCGameMode.UGCGameMode_C GameModePath=/InfFire/Asset/Blueprint/UGCGameMode.UGCGameMode_C
DefaultLevelDirectorPath=/Asset/Blueprint/UGCLevelDirector.UGCLevelDirector_C DefaultLevelDirectorPath=/Asset/Blueprint/UGCLevelDirector.UGCLevelDirector_C
@ -38,6 +38,8 @@ BeyondRankNum=10
TeamScoreCalculation=0 TeamScoreCalculation=0
bUseMultiModeMatchSetting=0 bUseMultiModeMatchSetting=0
MultiModeSettingNum=0 MultiModeSettingNum=0
bIsAllowStageMatching=0
TeamSettings="{\"TeamSettings\": []}"
[MiniMap] [MiniMap]
ZoomRatios=400 ZoomRatios=400
@ -51,13 +53,13 @@ SwitchesInMaps=((Key="r.Mobile.EnableIBL",Value=0),(Key="s.StreamableDelegateLim
PlayBindingArray=[] PlayBindingArray=[]
[JobOption] [JobOption]
LastJobId=600042509 LastJobId=-1
LastWindowsJobId=600027738 LastWindowsJobId=-1
LastAndroidJobId=600027735 LastAndroidJobId=-1
LastIOSJobId=600027738 LastIOSJobId=-1
PakOnly=1 PakOnly=0
LastSkipBake=True LastSkipBake=False
LastTargetPlatform=LinuxServer+WindowsNoEditor+Android_ETC2+IOS+OpenHarmony_ETC2 LastTargetPlatform=LinuxServer
[UGCUploadOption] [UGCUploadOption]
PlatformIndex=0 PlatformIndex=0

View File

@ -1,36 +0,0 @@
---@class BP_Machine_BaseItem_C:BP_MachineBase_C
---@field Capsule UCapsuleComponent
--Edit Below--
local BP_MachineBase = require("Script.Blueprint.SceneObj.Machine.BP_MachineBase")
local BP_Machine_BaseItem = BP_MachineBase:new();
function BP_Machine_BaseItem:ReceiveBeginPlay()
self.SuperClass.ReceiveBeginPlay(self);
self:LuaInit(self.Capsule);
end
--[[
function BP_Machine_BaseItem:ReceiveTick(DeltaTime)
self.SuperClass.ReceiveTick(self, DeltaTime);
end
--]]
function BP_Machine_BaseItem:ReceiveEndPlay()
BP_MachineBase = nil;
self.SuperClass.ReceiveEndPlay(self);
end
--[[
function BP_Machine_BaseItem:GetReplicatedProperties()
return
end
--]]
--[[
function BP_Machine_BaseItem:GetAvailableServerRPCs()
return
end
--]]
return BP_Machine_BaseItem;

View File

@ -2,6 +2,7 @@
---@field Capsule UCapsuleComponent ---@field Capsule UCapsuleComponent
---@field StaticMesh UStaticMeshComponent ---@field StaticMesh UStaticMeshComponent
---@field JumpLength int32 ---@field JumpLength int32
---@field NewVar_0 bool
--Edit Below-- --Edit Below--
local BP_MachineBase = require("Script.Blueprint.SceneObj.Machine.BP_MachineBase") local BP_MachineBase = require("Script.Blueprint.SceneObj.Machine.BP_MachineBase")

View File

@ -6,21 +6,21 @@
UGCGameSystem.UGCRequire('Script.Common.ue_enum_custom') UGCGameSystem.UGCRequire('Script.Common.ue_enum_custom')
require('Script.Global.Global') require('Script.Global.Global')
local UGCGameState = {}; local UGCGameState = {};
--- 服务器时间 --- 服务器时间
UGCGameState.ServerTime = 0; UGCGameState.ServerTime = 0;
--- 服务器时间 - 客户端时间的差值;如果想在服务器求客户端时间:当前时间 - 该值; --- 服务器时间 - 客户端时间的差值;如果想在服务器求客户端时间:当前时间 - 该值;
UGCGameState.ServerTimeDiff = 0; UGCGameState.ServerTimeDiff = 0;
--- 地图数据 --- 地图数据
UGCGameState.MapData = { SelectMapIndex = {}; }; UGCGameState.MapData = { SelectMapIndex = {}; };
---@type table<TeamId, table<int32, PlayerKey>> 玩家 Key 列表 ---@type table<TeamId, table<int32, PlayerKey>> 玩家 Key 列表
UGCGameState.PlayerList = {}; UGCGameState.PlayerList = {};
--- 游戏进程数据 --- 游戏进程数据
UGCGameState.CountDownTime = 0; UGCGameState.CountDownTime = 0;
UGCGameState.AccountTable = {}; UGCGameState.AccountTable = {};
UGCGameState.ArchiveTable = {}; UGCGameState.ArchiveTable = {};
UGCGameState.PlayerKDAs = {}; UGCGameState.PlayerKDAs = {};
function UGCGameState:ReceiveBeginPlay() function UGCGameState:ReceiveBeginPlay()
--- 初始化 --- 初始化
@ -33,19 +33,23 @@ function UGCGameState:ReceiveBeginPlay()
if MiniGameManager == nil then if MiniGameManager == nil then
MiniGameManager = require("Script.Blueprint.Mini.MiniGameManager") MiniGameManager = require("Script.Blueprint.Mini.MiniGameManager")
end end
if GlobalBeginTool then GlobalBeginTool:ReceiveBeginPlay(); end if GlobalBeginTool then
GlobalBeginTool:ReceiveBeginPlay();
end
table.func(MiniGameManager, "ReceiveBeginPlay", self); table.func(MiniGameManager, "ReceiveBeginPlay", self);
end end
function UGCGameState:ReceiveTick(DeltaTime) function UGCGameState:ReceiveTick(DeltaTime)
if GlobalTickTool then GlobalTickTool:ReceiveTick(DeltaTime, self:GetServerTime()); end if GlobalTickTool then
GlobalTickTool:ReceiveTick(DeltaTime, self:GetServerTime());
end
end end
function UGCGameState:ReceiveEndPlay() function UGCGameState:ReceiveEndPlay()
DefaultSettings = nil; DefaultSettings = nil;
EventTypes = nil; EventTypes = nil;
GameState = nil; GameState = nil;
LocalPlayerKey = nil; LocalPlayerKey = nil;
LocalPlayerController = nil; LocalPlayerController = nil;
UnableTable(); UnableTable();
UnableTool(); UnableTool();
@ -78,8 +82,12 @@ end
---@param InArchiveData table<ArchiveData> ---@param InArchiveData table<ArchiveData>
---@param InAccountData table<PlayerAccountInfo> ---@param InAccountData table<PlayerAccountInfo>
function UGCGameState:HandlePlayerDatas(InPlayerKey, InArchiveData, InAccountData, IgnoreList) function UGCGameState:HandlePlayerDatas(InPlayerKey, InArchiveData, InAccountData, IgnoreList)
InArchiveData.GameTimes = (InArchiveData.GameTimes or 0) + 1; -- 又多玩了一局游戏 InArchiveData.GameTimes = (InArchiveData.GameTimes or 0) + 1; -- 又多玩了一局游戏
self.ArchiveTable[InPlayerKey] = InArchiveData; self.ArchiveTable[InPlayerKey] = TableHelper.DeepCopy(InArchiveData);
if ArchiveTable[InPlayerKey] == nil then
UGCLogSystem.Log("[UGCGameState:HandlePlayerDatas] 执行")
ArchiveTable[InPlayerKey] = InArchiveData;
end
for i, v in pairs(IgnoreList) do for i, v in pairs(IgnoreList) do
self.ArchiveTable[InPlayerKey][v] = nil; self.ArchiveTable[InPlayerKey][v] = nil;
end end
@ -90,27 +98,33 @@ function UGCGameState:HandlePlayerDatas(InPlayerKey, InArchiveData, InAccountDat
end end
function UGCGameState:OnRep_PlayerKDAs() function UGCGameState:OnRep_PlayerKDAs()
if table.isEmpty(self.PlayerKDAs) then return end if table.isEmpty(self.PlayerKDAs) then
return
end
UGCEventSystem.SendEvent(EventTypes.AllPlayerKDAChange, self:HandleAllKDAs()); UGCEventSystem.SendEvent(EventTypes.AllPlayerKDAChange, self:HandleAllKDAs());
end end
function UGCGameState:HandleAllKDAs() function UGCGameState:HandleAllKDAs()
if table.isEmpty(self.PlayerKDAs) then return; end if table.isEmpty(self.PlayerKDAs) then
return ;
end
local AllKDAs = {}; local AllKDAs = {};
local Max = 0; local Max = 0;
for PlayerKey, KD in pairs(self.PlayerKDAs) do for PlayerKey, KD in pairs(self.PlayerKDAs) do
local Kill = KD[1] or 0; local Kill = KD[1] or 0;
local Dead = KD[2] or 0; local Dead = KD[2] or 0;
table.insert(AllKDAs, { table.insert(AllKDAs, {
Kill = Kill, Kill = Kill,
Dead = Dead, Dead = Dead,
IsSelf = LocalPlayerKey == PlayerKey, IsSelf = LocalPlayerKey == PlayerKey,
PlayerKey = PlayerKey, PlayerKey = PlayerKey,
}); });
if PlayerKey == LocalPlayerKey then if PlayerKey == LocalPlayerKey then
LocalKillNum = Kill; LocalKillNum = Kill;
end end
if Max < Kill then Max = Kill; end if Max < Kill then
Max = Kill;
end
end end
MaxKillNum = Max; MaxKillNum = Max;
table.sort(AllKDAs, function(a, b) table.sort(AllKDAs, function(a, b)
@ -128,7 +142,7 @@ function UGCGameState:HandleAllKDAs()
local Item = AllKDAs[i]; local Item = AllKDAs[i];
if Kill == Item.Kill then if Kill == Item.Kill then
else else
No = i; No = i;
Kill = Item.Kill; Kill = Item.Kill;
end end
AllKDAs[i].No = No; AllKDAs[i].No = No;
@ -141,13 +155,14 @@ function UGCGameState:OnRep_ArchiveTable()
ArchiveTable = self.ArchiveTable; ArchiveTable = self.ArchiveTable;
if table.isEmpty(ArchiveTable) then return ; end if table.isEmpty(ArchiveTable) then return ; end
if LocalPlayerKey == nil then return ; end if LocalPlayerKey == nil then return ; end
if ArchiveTable[LocalPlayerKey] == nil then return; end if ArchiveTable[LocalPlayerKey] == nil then return ; end
local GameTimes = ArchiveTable[LocalPlayerKey].GameTimes
if GameTimes ~= nil and GameTimes <= DefaultSettings.ShowFaceNoticeGameTimes then --local GameTimes = ArchiveTable[LocalPlayerKey].GameTimes
if not DefaultSettings.EnableTest then --if GameTimes ~= nil and GameTimes <= DefaultSettings.ShowFaceNoticeGameTimes then
WidgetManager:ShowPanel(WidgetConfig.EUIType.FaceNotice, false); -- if not DefaultSettings.EnableTest then
end -- WidgetManager:ShowPanel(WidgetConfig.EUIType.FaceNotice, false);
end -- end
--end
end end
function UGCGameState:OnRep_AccountTable() function UGCGameState:OnRep_AccountTable()
@ -190,13 +205,19 @@ function UGCGameState:LoadMap(MapNameList)
end end
function UGCGameState:OnRep_LoadMapName() function UGCGameState:OnRep_LoadMapName()
if table.isEmpty(self.LoadMapName) then return ; end if table.isEmpty(self.LoadMapName) then
return ;
end
UGCLogSystem.LogTree(string.format("[UGCGameState:OnRep_LoadMapName] self.LoadMapName ="), self.LoadMapName); UGCLogSystem.LogTree(string.format("[UGCGameState:OnRep_LoadMapName] self.LoadMapName ="), self.LoadMapName);
local LoadedMaps = {}; local LoadedMaps = {};
for i, v in pairs(self.LoadMapName) do for i, v in pairs(self.LoadMapName) do
if v.Load then table.insert(LoadedMaps, v.Name); end if v.Load then
table.insert(LoadedMaps, v.Name);
end
end
if table.isEmpty(LoadedMaps) then
return ;
end end
if table.isEmpty(LoadedMaps) then return ; end
UGCEventSystem.SendEvent(EventTypes.OnMapLoaded, LoadedMaps); UGCEventSystem.SendEvent(EventTypes.OnMapLoaded, LoadedMaps);
MiniGameManager:OnMapLoadComplete() MiniGameManager:OnMapLoadComplete()
-- 加载小地图 -- 加载小地图
@ -244,12 +265,14 @@ function UGCGameState:UnloadMap()
LevelStreamTool.UnLoadStreamLevels(MapNames, { Object = self, Func = self.UnLoadMapFinish }, false); LevelStreamTool.UnLoadStreamLevels(MapNames, { Object = self, Func = self.UnLoadMapFinish }, false);
self.MapData.SelectMapIndex = {}; self.MapData.SelectMapIndex = {};
-- 重置 ClientAlready -- 重置 ClientAlready
self.bInitOnce = false; self.bInitOnce = false;
end end
end end
function UGCGameState:OnRep_MapData() function UGCGameState:OnRep_MapData()
if table.isEmpty(self.MapData.SelectMapIndex) then return end if table.isEmpty(self.MapData.SelectMapIndex) then
return
end
--self:LoadMinimap(self.MapData.SelectMapIndex); --self:LoadMinimap(self.MapData.SelectMapIndex);
end end
@ -279,7 +302,9 @@ end
function UGCGameState:OnMapLoaded() function UGCGameState:OnMapLoaded()
--- 加载地图上的东西 --- 加载地图上的东西
UGCLogSystem.Log("[UGCGameState:OnMapLoaded] 执行") UGCLogSystem.Log("[UGCGameState:OnMapLoaded] 执行")
UGCEventSystem.SetTimer(self, function() self:PostOnMapLoaded(); end, 2); UGCEventSystem.SetTimer(self, function()
self:PostOnMapLoaded();
end, 2);
-- 检测一下是否有默认地图 -- 检测一下是否有默认地图
MiniGameManager:OnMapLoadComplete(); MiniGameManager:OnMapLoadComplete();
for i, v in pairs(self.LoadMapName) do for i, v in pairs(self.LoadMapName) do
@ -393,7 +418,9 @@ UGCGameState.bInitOnce = false;
UGCGameState.HasPoison = 0; UGCGameState.HasPoison = 0;
function UGCGameState:OnClientAlready() function UGCGameState:OnClientAlready()
if self.bInitOnce then return end if self.bInitOnce then
return
end
UGCEventSystem.SendEvent(EventTypes.ClientAlready) UGCEventSystem.SendEvent(EventTypes.ClientAlready)
local ServerTime = self:GetServerTime() local ServerTime = self:GetServerTime()
@ -445,7 +472,7 @@ end
function UGCGameState:BeforeReset(InTime) function UGCGameState:BeforeReset(InTime)
for i, v in pairs(UGCGameSystem.GetAllPlayerController(false)) do for i, v in pairs(UGCGameSystem.GetAllPlayerController(false)) do
local PlayerKey = v.PlayerKey; local PlayerKey = v.PlayerKey;
local Pawn = UGCGameSystem.GetPlayerPawnByPlayerKey(PlayerKey); local Pawn = UGCGameSystem.GetPlayerPawnByPlayerKey(PlayerKey);
if UE.IsValidPawn(Pawn) then if UE.IsValidPawn(Pawn) then
Pawn:K2_DestroyActor(); Pawn:K2_DestroyActor();
end end
@ -456,7 +483,9 @@ end
function UGCGameState:ResetKill() function UGCGameState:ResetKill()
-- 重置其他的 -- 重置其他的
for i, v in pairs(UGCGameSystem.GetAllPlayerController(false)) do v:ResetGame(); end for i, v in pairs(UGCGameSystem.GetAllPlayerController(false)) do
v:ResetGame();
end
end end
--- 重置游戏 --- 重置游戏
@ -496,7 +525,9 @@ function UGCGameState:ClearWrappers()
UE.FindActorsByClass(self:GetWrapperClass(), InTable, function(InIndex, InActor) UE.FindActorsByClass(self:GetWrapperClass(), InTable, function(InIndex, InActor)
return InActor:GetOwner() == nil; return InActor:GetOwner() == nil;
end); end);
for i, v in pairs(InTable) do v:K2_DestroyActor(); end for i, v in pairs(InTable) do
v:K2_DestroyActor();
end
end end
----------------------------------------- 武器 ----------------------------------------- ----------------------------------------- 武器 -----------------------------------------
@ -508,8 +539,12 @@ end
----------------------------------------- 载具 ----------------------------------------- ----------------------------------------- 载具 -----------------------------------------
--- 清空地面上的载具 --- 清空地面上的载具
function UGCGameState:ClearVehicles() function UGCGameState:ClearVehicles()
if table.isEmpty(self.Vehicles) then self:FindVehicles(); end if table.isEmpty(self.Vehicles) then
for i, v in pairs(self.Vehicles) do v:K2_DestroyActor(); end self:FindVehicles();
end
for i, v in pairs(self.Vehicles) do
v:K2_DestroyActor();
end
self.Vehicles = {}; self.Vehicles = {};
end end
@ -525,7 +560,9 @@ end
-- 查找载具 -- 查找载具
function UGCGameState:FindVehicles() function UGCGameState:FindVehicles()
if table.isEmpty(self.Vehicles) then self:LoadVehicles(); end if table.isEmpty(self.Vehicles) then
self:LoadVehicles();
end
return self.Vehicles; return self.Vehicles;
end end
@ -564,7 +601,9 @@ function UGCGameState:SelectMiniType(InMiniType)
end end
function UGCGameState:OnRep_CurrMiniType() function UGCGameState:OnRep_CurrMiniType()
if self.CurrMiniType < 0 then return ; end if self.CurrMiniType < 0 then
return ;
end
if MiniGameManager ~= nil then if MiniGameManager ~= nil then
MiniGameManager:LoadMiniGame(self.CurrMiniType); MiniGameManager:LoadMiniGame(self.CurrMiniType);
end end
@ -603,7 +642,9 @@ function UGCGameState:SetMiniInfo(InMiniInfo)
end end
function UGCGameState:OnRep_MiniInfo(InOld) function UGCGameState:OnRep_MiniInfo(InOld)
if table.isEmpty(self.MiniInfo) then return ; end if table.isEmpty(self.MiniInfo) then
return ;
end
-- 发送出去 -- 发送出去
UGCLogSystem.LogTree(string.format("[UGCGameState:OnRep_MiniInfo] MiniInfo"), self.MiniInfo) UGCLogSystem.LogTree(string.format("[UGCGameState:OnRep_MiniInfo] MiniInfo"), self.MiniInfo)
if MiniGameManager then if MiniGameManager then
@ -653,7 +694,9 @@ function UGCGameState:CustomLog(Color, InStr, ...)
if self.CustomLogList == nil then if self.CustomLogList == nil then
self.CustomLogList = {}; self.CustomLogList = {};
GlobalTickTool:AddTick(self, function(o, dt, st) GlobalTickTool:AddTick(self, function(o, dt, st)
if table.isEmpty(o.CustomLogList) then return ; end if table.isEmpty(o.CustomLogList) then
return ;
end
-- 发送 RPC -- 发送 RPC
UnrealNetwork.CallUnrealRPC_Multicast(self, "CustomLog", o.CustomLogList); UnrealNetwork.CallUnrealRPC_Multicast(self, "CustomLog", o.CustomLogList);
o.CustomLogList = {}; o.CustomLogList = {};

View File

@ -30,7 +30,7 @@ function UGCPlayerState:UpdateWeaponAttachment(Pawn, InWeapon)
ArchiveTable[self.PlayerKey].Weapons[ItemId] = Parts; ArchiveTable[self.PlayerKey].Weapons[ItemId] = Parts;
UGCLogSystem.Log("[UGCPlayerState:UpdateWeaponAttachment] 更新配件"); UGCLogSystem.Log("[UGCPlayerState:UpdateWeaponAttachment] 更新配件");
-- 直接保存即可(主要是没几把枪) -- 直接保存即可(主要是没几把枪)
UGCPlayerStateSystem.SavePlayerArchiveData(self.UID, ArchiveTable[self.PlayerKey]); UGCPlayerStateSystem.SavePlayerArchiveData(AccountTable[self.PlayerKey].UID, ArchiveTable[self.PlayerKey]);
end end
--function UGCPlayerState:GetReplicatedProperties() --function UGCPlayerState:GetReplicatedProperties()

View File

@ -0,0 +1,91 @@
-- auto exported game_attributes
-- including native attributes and custom attributes
---@enum UGCNativeGameAttributeType
UGCNativeGameAttributeType = {
--Character [血量-Health],
Character_Health = 'Health',
--Character [最大血量-HealthMax],
Character_HealthMax = 'HealthMax',
--Character [技能急速-SkillCDRecoverRate],
Character_SkillCDRecoverRate = 'SkillCDRecoverRate',
--Character [无描述-SignalHP],
Character_SignalHP = 'SignalHP',
--Character [当前能量值-EnergyCurrent],
Character_EnergyCurrent = 'Energy|EnergyCurrent',
--Character [UGC移动速度倍率-UGCGeneralMoveSpeedScale],
Character_UGCGeneralMoveSpeedScale = 'UGCGeneralMoveSpeedScale',
---------------------------------------------------------
--Weapon [换弹时间影响因子-ReloadTimeFactorWrapper],
Weapon_ReloadTimeFactorWrapper = 'ReloadTimeFactorWrapper',
--Weapon [切枪时间影响因子-SwitchTimeFactorWrapper],
Weapon_SwitchTimeFactorWrapper = 'SwitchTimeFactorWrapper',
--Weapon [攻击间隔影响因子-ShootIntervalFactorWrapper],
Weapon_ShootIntervalFactorWrapper = 'ShootIntervalFactorWrapper',
--Weapon [后坐力影响因子-RecoilFactorWrapper],
Weapon_RecoilFactorWrapper = 'RecoilFactorWrapper',
--Weapon [散布影响因子-DeviationFactorWrapper],
Weapon_DeviationFactorWrapper = 'DeviationFactorWrapper',
--Weapon [子弹基础伤害-BaseImpactDamageWrapper],
Weapon_BaseImpactDamageWrapper = 'BaseImpactDamageWrapper',
--Weapon [子弹基础伤害-MinimumImpactDamageWrapper],
Weapon_MinimumImpactDamageWrapper = 'MinimumImpactDamageWrapper',
--Weapon [子弹飞行速度-BulletFireSpeedWrapper],
Weapon_BulletFireSpeedWrapper = 'BulletFireSpeedWrapper',
--Weapon [最大射程-BulletRangeWrapper],
Weapon_BulletRangeWrapper = 'BulletRangeWrapper',
--Weapon [一次拉栓子弹装填数量-MaxBulletNumInBarrelWrapper],
Weapon_MaxBulletNumInBarrelWrapper = 'MaxBulletNumInBarrelWrapper',
--Weapon [弹匣容量-MaxBulletNumInOneClipWrapper],
Weapon_MaxBulletNumInOneClipWrapper = 'MaxBulletNumInOneClipWrapper',
--Weapon [全自动射击间隔-AutoShootIntervalWrapper],
Weapon_AutoShootIntervalWrapper = 'AutoShootIntervalWrapper',
--Weapon [连发射击间隔-BurstShootCDWrapper],
Weapon_BurstShootCDWrapper = 'BurstShootCDWrapper',
--Weapon [连发数量-BurstShootBulletsNumWrapper],
Weapon_BurstShootBulletsNumWrapper = 'BurstShootBulletsNumWrapper',
--Weapon [连发子弹间隔-BurstShootIntervalWrapper],
Weapon_BurstShootIntervalWrapper = 'BurstShootIntervalWrapper',
};
UGCNativeGameAttributeTypeCommentMap = {
---------------------------------------------------------
['Health'] = 'Character [血量-Health]',
['HealthMax'] = 'Character [最大血量-HealthMax]',
['SkillCDRecoverRate'] = 'Character [技能急速-SkillCDRecoverRate]',
['SignalHP'] = 'Character [无描述-SignalHP]',
['Energy|EnergyCurrent'] = 'Character [当前能量值-EnergyCurrent]',
['UGCGeneralMoveSpeedScale'] = 'Character [UGC移动速度倍率-UGCGeneralMoveSpeedScale]',
---------------------------------------------------------
['ReloadTimeFactorWrapper'] = 'Weapon [换弹时间影响因子-ReloadTimeFactorWrapper]',
['SwitchTimeFactorWrapper'] = 'Weapon [切枪时间影响因子-SwitchTimeFactorWrapper]',
['ShootIntervalFactorWrapper'] = 'Weapon [攻击间隔影响因子-ShootIntervalFactorWrapper]',
['RecoilFactorWrapper'] = 'Weapon [后坐力影响因子-RecoilFactorWrapper]',
['DeviationFactorWrapper'] = 'Weapon [散布影响因子-DeviationFactorWrapper]',
['BaseImpactDamageWrapper'] = 'Weapon [子弹基础伤害-BaseImpactDamageWrapper]',
['MinimumImpactDamageWrapper'] = 'Weapon [子弹基础伤害-MinimumImpactDamageWrapper]',
['BulletFireSpeedWrapper'] = 'Weapon [子弹飞行速度-BulletFireSpeedWrapper]',
['BulletRangeWrapper'] = 'Weapon [最大射程-BulletRangeWrapper]',
['MaxBulletNumInBarrelWrapper'] = 'Weapon [一次拉栓子弹装填数量-MaxBulletNumInBarrelWrapper]',
['MaxBulletNumInOneClipWrapper'] = 'Weapon [弹匣容量-MaxBulletNumInOneClipWrapper]',
['AutoShootIntervalWrapper'] = 'Weapon [全自动射击间隔-AutoShootIntervalWrapper]',
['BurstShootCDWrapper'] = 'Weapon [连发射击间隔-BurstShootCDWrapper]',
['BurstShootBulletsNumWrapper'] = 'Weapon [连发数量-BurstShootBulletsNumWrapper]',
['BurstShootIntervalWrapper'] = 'Weapon [连发子弹间隔-BurstShootIntervalWrapper]',
};
---@enum UGCCustomGameAttributeType
UGCCustomGameAttributeType = {
};
UGCCustomGameAttributeTypeCommentMap = {
};

View File

@ -1,7 +1,7 @@
--- 默认配置类,可以在此处配置各种参数 --- 默认配置类,可以在此处配置各种参数
DefaultSettings = {} DefaultSettings = {}
DefaultSettings.EnableTest = true; --- 是否开启测试 DefaultSettings.EnableTest = false; --- 是否开启测试
DefaultSettings.ReturnToLobbyTime = 18; DefaultSettings.ReturnToLobbyTime = 18;
-------------------------------- 玩家装备 -------------------------------- -------------------------------- 玩家装备 --------------------------------
---@type table<int32, table<int32, any>> ---@type table<int32, table<int32, any>>
@ -10,7 +10,7 @@ DefaultSettings.EnableAutoPickUp = true; --- 是否开启和平的自动
DefaultSettings.EnableDeadBox = true; --- 是否开启掉落盒子 DefaultSettings.EnableDeadBox = true; --- 是否开启掉落盒子
DefaultSettings.OpenVault = true; --- 是否开启攀爬 DefaultSettings.OpenVault = true; --- 是否开启攀爬
DefaultSettings.OpenShovel = true; --- 是否开启滑铲 DefaultSettings.OpenShovel = true; --- 是否开启滑铲
DefaultSettings.ShowFaceNoticeGameTimes = 3; --- 拍脸图在多少局游戏前显示 DefaultSettings.ShowFaceNoticeGameTimes = 0; --- 拍脸图在多少局游戏前显示
DefaultSettings.ShowFaceNoticeTime = 25; DefaultSettings.ShowFaceNoticeTime = 25;
DefaultSettings.EnableHealing = true; --- 是否开启自动回血 DefaultSettings.EnableHealing = true; --- 是否开启自动回血
DefaultSettings.TargetPlayerCount = 12; --- 玩家总数 DefaultSettings.TargetPlayerCount = 12; --- 玩家总数

View File

@ -224,7 +224,9 @@ function ItemTool.AddWeaponParts(InPawn, Weapon, IsAppend)
if not table.isEmpty(TheList) then Items = TheList[1]; end if not table.isEmpty(TheList) then Items = TheList[1]; end
end end
local ArchiveData = ArchiveTable[InPawn.PlayerKey] local ArchiveData = ArchiveTable[InPawn.PlayerKey]
UGCLogSystem.LogTree(string.format("[ItemTool.AddWeaponParts] ArchiveData ="), ArchiveData);
if ArchiveData ~= nil and ArchiveData.Weapons and ArchiveData.Weapons[WeaponId] then if ArchiveData ~= nil and ArchiveData.Weapons and ArchiveData.Weapons[WeaponId] then
UGCLogSystem.Log("[ItemTool.AddWeaponParts] 开始设置 %d", WeaponId);
Items = ArchiveData.Weapons[WeaponId]; Items = ArchiveData.Weapons[WeaponId];
end end
if table.isEmpty(Items) then return; end if table.isEmpty(Items) then return; end

View File

@ -102,12 +102,12 @@ if not UE_SERVER then
Layer = WidgetConfig.EUILayerGroup.Low, Layer = WidgetConfig.EUILayerGroup.Low,
bAddToTouch = true; bAddToTouch = true;
}, },
[WidgetConfig.EUIType.FaceNotice] = { --[WidgetConfig.EUIType.FaceNotice] = {
Path = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/Tool/WB_FaceNotice.WB_FaceNotice_C'), -- Path = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/Tool/WB_FaceNotice.WB_FaceNotice_C'),
-- 是否仅显示一次 -- -- 是否仅显示一次
bShowOnce = false, -- bShowOnce = false,
Layer = WidgetConfig.EUILayerGroup.Medium, -- Layer = WidgetConfig.EUILayerGroup.Medium,
}, --},
[WidgetConfig.EUIType.GameEnd] = { [WidgetConfig.EUIType.GameEnd] = {
Path = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/GameEnd/WB_GameEnd.WB_GameEnd_C'), Path = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/GameEnd/WB_GameEnd.WB_GameEnd_C'),
-- 是否仅显示一次 -- 是否仅显示一次

View File

@ -33,7 +33,7 @@ function WB_Main:Construct()
UGCEventSystem.AddListener(EventTypes.MiniStateChange, self.OnMiniStateChange, self) UGCEventSystem.AddListener(EventTypes.MiniStateChange, self.OnMiniStateChange, self)
UGCEventSystem.AddListener(EventTypes.UpdateRoundTimes, self.OnUpdateRoundTimes, self) UGCEventSystem.AddListener(EventTypes.UpdateRoundTimes, self.OnUpdateRoundTimes, self)
UITool.ButtonOnClickShowPanel(self.Button_FaceNotice, WidgetConfig.EUIType.FaceNotice, true); --UITool.ButtonOnClickShowPanel(self.Button_FaceNotice, WidgetConfig.EUIType.FaceNotice, true);
UITool.BindButtonClicked(self.Button_Score, self.OnShowScore, self) UITool.BindButtonClicked(self.Button_Score, self.OnShowScore, self)
if DefaultSettings.EnableTest then if DefaultSettings.EnableTest then

View File

@ -22,7 +22,7 @@ function Action_PlayerLogin:Execute(...)
UGCTeamSystem.ChangePlayerTeamID(self.PlayerKey, Info.TeamID); UGCTeamSystem.ChangePlayerTeamID(self.PlayerKey, Info.TeamID);
MiniGameManager:OnPlayerLogin(Info.TeamID, self.PlayerKey); MiniGameManager:OnPlayerLogin(Info.TeamID, self.PlayerKey);
UGCLogSystem.Log("[Action_PlayerLogin:Execute] 处理玩家数据")
GameState:HandlePlayerDatas(self.PlayerKey, ArchiveData, Info, { GameState:HandlePlayerDatas(self.PlayerKey, ArchiveData, Info, {
"Weapons" "Weapons"
}); });