PGRData/Script/matrix/xconfig/XRpgMakerGameConfigs.lua

2471 lines
No EOL
95 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

local tableInsert = table.insert
local tableSort = table.sort
local ipairs = ipairs
local pairs = pairs
local stringGsub = string.gsub
local CSXTextManagerGetText = CS.XTextManager.GetText
local TABLE_CHAPTER_PATH = "Share/MiniActivity/RpgMakerGame/RpgMakerGameChapter.tab"
local TABLE_STAGE_PATH = "Share/MiniActivity/RpgMakerGame/RpgMakerGameStage.tab"
local TABLE_STAR_CONDITION_PATH = "Share/MiniActivity/RpgMakerGame/RpgMakerGameStarCondition.tab"
local TABLE_ROLE_PATH = "Share/MiniActivity/RpgMakerGame/RpgMakerGameRole.tab"
local TABLE_MAP_PATH = "Share/MiniActivity/RpgMakerGame/RpgMakerGameMap.tab" --
local TABLE_START_POINT_PATH = "Share/MiniActivity/RpgMakerGame/RpgMakerGameStartPoint.tab"
local TABLE_END_POINT_PATH = "Share/MiniActivity/RpgMakerGame/RpgMakerGameEndPoint.tab"
local TABLE_BLOCK_PATH = "Share/MiniActivity/RpgMakerGame/RpgMakerGameBlock.tab"
local TABLE_GAP_PATH = "Share/MiniActivity/RpgMakerGame/RpgMakerGameGap.tab"
local TABLE_MONSTER_PATH = "Share/MiniActivity/RpgMakerGame/RpgMakerGameMonster.tab"
local TABLE_TRIGGER_PATH = "Share/MiniActivity/RpgMakerGame/RpgMakerGameTrigger.tab"
local TABLE_ACTIVITY_PATH = "Share/MiniActivity/RpgMakerGame/RpgMakerGameActivity.tab"
local TABLE_SHADOW_PATH = "Share/MiniActivity/RpgMakerGame/RpgMakerGameShadow.tab"
local TABLE_TRAP_PATH = "Share/MiniActivity/RpgMakerGame/RpgMakerGameTrap.tab"
local TABLE_ELECTRIC_FENCE_PATH = "Share/MiniActivity/RpgMakerGame/RpgMakerGameElectricFence.tab"
local TABLE_CHAPTER_GROUP_PATH = "Share/MiniActivity/RpgMakerGame/RpgMakerGameChapterGroup.tab"
local TABLE_ENTITY_PATH = "Share/MiniActivity/RpgMakerGame/RpgMakerGameEntity.tab"
local TABLE_TRANSFER_POINT_PATH = "Share/MiniActivity/RpgMakerGame/RpgMakerGameTransferPoint.tab"
local TABLE_HINT_ICON_PATH = "Client/MiniActivity/RpgMakerGame/RpgMakerGameHintIcon.tab"
local TABLE_RANDOM_DIALOG_BOX_PATH = "Client/MiniActivity/RpgMakerGame/RpgMakerGameRandomDialogBox.tab"
local TABLE_HINT_DIALOG_BOX_PATH = "Client/MiniActivity/RpgMakerGame/RpgMakerGameHintDialogBox.tab"
local TABLE_MODEL_PATH = "Client/MiniActivity/RpgMakerGame/RpgMakerGameModel.tab"
local TABLE_ANIMATION_PATH = "Client/MiniActivity/RpgMakerGame/RpgMakerGameAnimation.tab"
local TABLE_PLAY_MAIN_DOWN_HINT_PATH = "Client/MiniActivity/RpgMakerGame/RpgMakerGamePlayMainDownHint.tab"
local TABLE_HINT_LINE_PATH = "Client/MiniActivity/RpgMakerGame/RpgMakerGameHintLine.tab"
local TABLE_DEATH_TITAL_PATH = "Client/MiniActivity/RpgMakerGame/RpgMakerGameDeathTitle.tab"
local TABLE_SKILL_TYPE_PATH = "Client/MiniActivity/RpgMakerGame/RpgMakerGameSkillType.tab"
local RpgMakerGameChapterConfigs = {}
local RpgMakerGameStageConfigs = {}
local RpgMakerGameSKillTypeConfigs = {}
local RpgMakerGameStarConditionConfigs = {}
local RpgMakerGameRoleConfigs = {}
local RpgMakerGameMapConfigs = {}
local RpgMakerGameStartPointConfigs = {}
local RpgMakerGameEndPointConfigs = {}
local RpgMakerGameBlockConfigs = {}
local RpgMakerGameGapConfigs = {}
local RpgMakerGameMonsterConfigs = {}
local RpgMakerGameTriggerConfigs = {}
local RpgMakerGameHintIconConfigs = {}
local RpgMakerGameActivityConfigs = {}
local RpgMakerGameRandomDialogBoxConfigs = {}
local RpgMakerGameHintDialogBoxConfigs = {}
local RpgMakerGameModelConfigs = {}
local RpgMakerGameAnimationConfigs = {}
local RpgMakerGamePlayMainDownHintConfigs = {}
local RpgMakerGameHintLineConfigs = {}
local RpgMakerGameShadowConfigs = {}
local RpgMakerGameTrapConfigs = {}
local RpgMakerGameElectricFenceConfigs = {}
local RpgMakerGameDeathTitleConfigs = {}
local RpgMakerGameChapterGroupConfigs = {}
local RpgMakerGameEntityConfigs = {}
local RpgMakerGameTransferPointConfigs = {}
local RpgMakerGameChapterIdList = {}
local RpgMakerGameChapterIdToStageIdListDic = {}
local RpgMakerGameStageIdToStarConditionIdListDic = {}
local RpgMakerGameRoleIdList = {}
local RpgMakerGameStageIdList = {}
local RpgMakerGameSkillTypeList = {}
local RpgMakerGameMapIdToBlockIdList = {}
local RpgMakerGameMapIdToGapIdList = {}
local RpgMakerGameMapIdToMonsterIdList = {}
local RpgMakerGameMapIdToTriggerIdList = {}
local RpgMakerGameMapIdToHintIdList = {}
local RpgMakerGameRandomDialogBoxIdList = {}
local RpgMakerGameMapIdToShadowIdList = {}
local RpgMakerGameMapIdToTrapIdList = {}
local RpgMakerGameMapIdToElectricFenceIdList = {}
local MapIdToTransferPointIdList = {} --keymapIdvaluetransferPointIdList
local MapIdToEntityIdList = {} --keymapIdvalueentityIdList
local EntityTypeDic = {} --key1MapIdkey2Xkey3YvalueTypeList
local EntityIdDic = {} --key1MapIdkey2Xkey3YvalueentityIdList
local RpgMakerGameChapterGroupToChapterIdList = {} --keychapterGroupIdvaluechapterIdList
local RpgMakerGameChapterGroupIdList = {}
local DefaultActivityId = 1
XRpgMakerGameConfigs = XRpgMakerGameConfigs or {}
--关卡状态
XRpgMakerGameConfigs.RpgMakerGameStageStatus = {
Lock = 1, --未开启
UnLock = 2, --已开启
Clear = 3, --已通关
}
--方向
XRpgMakerGameConfigs.RpgMakerGameMoveDirection = {
MoveLeft = 1,
MoveRight = 2,
MoveUp = 3,
MoveDown = 4,
}
--行动类型
XRpgMakerGameConfigs.RpgMakerGameActionType = {
ActionNone = 0,
ActionPlayerMove = 1, --玩家移动
ActionKillMonster = 2, --杀死怪物
ActionStageWin = 3, --关卡胜利
ActionEndPointOpen = 4, --终点开启
ActionMonsterRunAway = 5, --怪物逃跑
ActionMonsterChangeDirection = 6, --怪物调整方向
ActionMonsterKillPlayer = 7, --怪物杀死玩家
ActionTriggerStatusChange = 8, --机关状态改变
ActionMonsterPatrol = 9, --怪物巡逻
ActionUnlockRole = 10, --解锁角色
ActionMonsterPatrolLine = 11, --怪物巡逻路线
ActionShadowMove = 12, --影子移动
ActionShadowDieByTrap = 13, --影子掉落陷阱
ActionPlayerDieByTrap = 14, --玩家掉落陷阱
ActionMonsterDieByTrap = 15, --怪物掉落陷阱
ActionElectricStatusChange = 16, --电墙状态改变
ActionPlayerKillByElectricFence = 17, --玩家被电墙杀死
ActionMonsterKillByElectricFence = 18, --怪物被电墙杀死
ActionHumanKill = 19, --人类被杀,关卡失败
ActionSentrySign = 20, --产生哨戒的标记
ActionPlayerTransfer = 21, --玩家传送
ActionBurnGrass = 22, --燃烧草圃
ActionGrowGrass = 23, --草圃生长
ActionPlayerDrown = 24, --玩家淹死
ActionMonsterDrown = 25, --怪物淹死
ActionSteelBrokenToTrap = 26, --钢板破损变成陷阱
ActionSteelBrokenToFlat = 27, --钢板破损消失
ActionMonsterTransfer = 28, --怪物传送
}
--缝隙类型
XRpgMakerGameConfigs.RpgMakerGapDirection = {
GridLeft = 1, --格子左边线
GridRight = 2, --格子右边线
GridTop = 3, --格子顶部线
GridBottom = 4, --格子底部线
}
--终点类型
XRpgMakerGameConfigs.XRpgMakerGameEndPointType = {
DefaultClose = 0, --默认关闭
DefaultOpen = 1, --默认开启
}
--阻挡状态
XRpgMakerGameConfigs.XRpgMakerGameBlockStatus = {
UnBlock = 0, --不阻挡
Block = 1, --阻挡
}
--怪物类型
XRpgMakerGameConfigs.XRpgMakerGameMonsterType = {
Normal = 1, --小怪
BOSS = 2,
Human = 3, --人类
}
--怪物攻击范围方向
XRpgMakerGameConfigs.XRpgMakerGameMonsterViewAreaType = {
ViewFront = 1, --怪物的前方
ViewBack = 2, --怪物的后面
ViewLeft = 3, --怪物的左边
ViewRight = 4, --怪物的右边
}
--机关类型
XRpgMakerGameConfigs.XRpgMakerGameTriggerType = {
Trigger1 = 1, --本身是不能阻挡停在上面可以触发类型2的机关状态转变
Trigger2 = 2, --由类型1触发
Trigger3 = 3, --经过后,会从通过状态转变为阻挡状态
TriggerElectricFence = 4, --电围栏触发机关
}
--电墙机关(开关)状态
XRpgMakerGameConfigs.XRpgMakerGameElectricStatus = {
CloseElectricFence = 0, --关闭电网
OpenElectricFence = 1, --开启电网
}
--电网状态
XRpgMakerGameConfigs.XRpgMakerGameElectricFenceStatus = {
Close = 0, --关闭
Open = 1, --开启
}
--答案类型
XRpgMakerGameConfigs.XRpgMakerGameRoleAnswerType = {
Hint = 1, --提示
Answer = 2, --答案
}
--角色技能
XRpgMakerGameConfigs.XRpgMakerGameRoleSkillType = {
Crystal = 1, --冰霜
Flame = 2, --烈焰
Raiden = 3, --雷电
Dark = 4 --暗元素
}
--实体类型
XRpgMakerGameConfigs.XRpgMakerGameEntityType = {
Water = 1, --水
Ice = 2, --冰
Grass = 3, --草圃
Steel = 4 --钢板
}
--水类型
XRpgMakerGameConfigs.XRpgMakerGameWaterType = {
Water = 1, --水
Ice = 2, --冰
Melt = 3, --冰融化
}
XRpgMakerGameConfigs.XRpgMakerTransferPointColor = {
Green = 1, --
Yellow = 2, --
Purple = 3, --
}
--钢板破损后的类型
XRpgMakerGameConfigs.XRpgMakerGameSteelBrokenType = {
Init = 0, --默认状态
Flat = 1, --变成平地
Trap = 2, --变成陷阱
}
--小地图提示图标配置表的key
XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps = {
BlockIcon = "BlockIcon",
NormalMonsterIcon = "NormalMonsterIcon",
BossIcon = "BossIcon",
TriggerIcon1 = "TriggerIcon1",
TriggerIcon2 = "TriggerIcon2",
TriggerIcon3 = "TriggerIcon3",
ElectricFencTrigger = "ElectricFencTrigger",
GapIcon = "GapIcon",
ShadowIcon = "ShadowIcon",
ElectricFenceIcon = "ElectricFenceIcon",
HumanIcon = "HumanIcon",
StartPointIcon = "StartPointIcon",
EndPointIcon = "EndPointIcon",
TrapIcon = "TrapIcon",
MoveLineIcon = "MoveLineIcon",
CrystalMonsterIcon = "CrystalMonsterIcon",
FlameMonsterIcon = "FlameMonsterIcon",
RaidenMonsterIcon = "RaidenMonsterIcon",
DarkMonsterIcon = "DarkMonsterIcon",
CrystalBossIcon = "CrystalBossIcon",
FlameBossIcon = "FlameBossIcon",
RaidenBossIcon = "RaidenBossIcon",
DarkBossIcon = "DarkBossIcon",
EntityIcon1 = "EntityIcon1",
EntityIcon2 = "EntityIcon2",
EntityIcon3 = "EntityIcon3",
EntityIcon4 = "EntityIcon4",
TransferPointIcon1 = "TransferPointIcon1",
TransferPointIcon2 = "TransferPointIcon2",
TransferPointIcon3 = "TransferPointIcon3",
}
--模型/特效的keyRpgMakerGameModel.tab
XRpgMakerGameConfigs.ModelKeyMaps = {
GoldClose = "GoldClose",
Gap = "Gap",
TriggerType3 = "TriggerType3",
ViewArea = "ViewArea",
TriggerType1 = "TriggerType1",
GoldOpen = "GoldOpen",
MoveLine = "MoveLine",
TriggerType2 = "TriggerType2",
RoleMoveArrow = "RoleMoveArrow",
MonsterTriggerEffect = "MonsterTriggerEffect",
ElectricFence = "ElectricFence",
Trap = "Trap",
SentryLine = "SentryLine",
Sentry = "Sentry",
SentryRoand = "SentryRoand",
TriggerElectricFenceOpen = "TriggerElectricFenceOpen",
TriggerElectricFenceClose = "TriggerElectricFenceClose",
ElectricFenceEffect = "ElectricFenceEffect",
KillByElectricFenceEffect = "KillByElectricFenceEffect",
BeAtkEffect = "BeAtkEffect",
ShadowEffect = "ShadowEffect",
Grass = "Grass",
Pool = "Pool",
TransferPointLoopColor1 = "TransferPointLoopColor1",
TransferPointLoopColor2 = "TransferPointLoopColor2",
TransferPointLoopColor3 = "TransferPointLoopColor3",
TransferPointColor1 = "TransferPointColor1",
TransferPointColor2 = "TransferPointColor2",
TransferPointColor3 = "TransferPointColor3",
Steel = "Steel",
SteelBroken = "SteelBroken",
Freeze = "Freeze",
Melt = "Melt",
Drown = "Drown",
Burn = "Burn",
WaterRipper = "WaterRipper",
DarkSkillEffect = "DarkSkillEffect",
CrystalSkillEffect = "CrystalSkillEffect",
FlameSkillEffect = "FlameSkillEffect",
RaidenSkillEffect = "RaidenSkillEffect",
}
--一个关卡最多星星数
XRpgMakerGameConfigs.MaxStarCount = 3
--延迟被攻击回调的时间
XRpgMakerGameConfigs.BeAtkEffectDelayCallbackTime = CS.XGame.ClientConfig:GetInt("RpgMakerGamePlayBeAtkEffectDelayCallbackTime")
--草埔生长、燃烧等动画播放间隔(毫秒)
XRpgMakerGameConfigs.PlayAnimaInterval = 50
local InitRpgMakerGameChapterIdToStageIdListDic = function()
local chapterId
for _, v in pairs(RpgMakerGameStageConfigs) do
chapterId = v.ChapterId
if not RpgMakerGameChapterIdToStageIdListDic[chapterId] then
RpgMakerGameChapterIdToStageIdListDic[chapterId] = {}
end
tableInsert(RpgMakerGameChapterIdToStageIdListDic[chapterId], v.Id)
end
for chapterId, stageIdList in pairs(RpgMakerGameChapterIdToStageIdListDic) do
tableSort(stageIdList, function(a, b)
return a < b
end)
end
end
local InitRpgMakerGameStageIdToStarConditionIdListDic = function()
local stageId
for _, v in pairs(RpgMakerGameStarConditionConfigs) do
stageId = v.StageId
if not RpgMakerGameStageIdToStarConditionIdListDic[stageId] then
RpgMakerGameStageIdToStarConditionIdListDic[stageId] = {}
end
tableInsert(RpgMakerGameStageIdToStarConditionIdListDic[stageId], v.Id)
end
end
local InitRpgMakerGameRoleIdList = function()
local tempTable = {}
for _, v in pairs(RpgMakerGameRoleConfigs) do
tableInsert(tempTable, v)
end
tableSort(tempTable, function(a, b)
if a.RoleOrder ~= b.RoleOrder then
return a.RoleOrder < b.RoleOrder
end
return a.Id < b.Id
end)
for _, v in ipairs(tempTable) do
tableInsert(RpgMakerGameRoleIdList, v.Id)
end
end
local InitRpgMakerGameStageIdList = function()
for _, v in pairs(RpgMakerGameStageConfigs) do
tableInsert(RpgMakerGameStageIdList, v.Id)
end
tableSort(RpgMakerGameStageIdList, function(a, b)
return a < b
end)
end
local InitRpgMakerGameSkillTypeList = function()
for _, v in pairs(RpgMakerGameSKillTypeConfigs) do
tableInsert(RpgMakerGameSkillTypeList, v.Id)
end
tableSort(RpgMakerGameSkillTypeList, function(a, b)
return a < b
end)
end
local InitRpgMakerGameMapIdToBlockIdList = function()
local mapId
for _, v in pairs(RpgMakerGameBlockConfigs) do
mapId = v.MapId
if not RpgMakerGameMapIdToBlockIdList[mapId] then
RpgMakerGameMapIdToBlockIdList[mapId] = {}
end
tableInsert(RpgMakerGameMapIdToBlockIdList[mapId], v.Id)
end
end
local InitRpgMakerGameMapIdToGapIdList = function()
local mapId
for _, v in pairs(RpgMakerGameGapConfigs) do
mapId = v.MapId
if not RpgMakerGameMapIdToGapIdList[mapId] then
RpgMakerGameMapIdToGapIdList[mapId] = {}
end
tableInsert(RpgMakerGameMapIdToGapIdList[mapId], v.Id)
end
end
local InitRpgMakerGameMapIdToMonsterIdList = function()
local mapId
for _, v in pairs(RpgMakerGameMonsterConfigs) do
mapId = v.MapId
if not RpgMakerGameMapIdToMonsterIdList[mapId] then
RpgMakerGameMapIdToMonsterIdList[mapId] = {}
end
tableInsert(RpgMakerGameMapIdToMonsterIdList[mapId], v.Id)
end
end
local InitRpgMakerGameMapIdToTriggerIdList = function()
local mapId
for _, v in pairs(RpgMakerGameTriggerConfigs) do
mapId = v.MapId
if not RpgMakerGameMapIdToTriggerIdList[mapId] then
RpgMakerGameMapIdToTriggerIdList[mapId] = {}
end
tableInsert(RpgMakerGameMapIdToTriggerIdList[mapId], v.Id)
end
end
local InitActivityConfig = function()
for activityId, config in pairs(RpgMakerGameActivityConfigs) do
if XTool.IsNumberValid(config.ActivityTimeId) then
DefaultActivityId = activityId
break
end
DefaultActivityId = activityId
end
end
local InitRpgMakerGameRandomDialogBoxIdList = function()
for _, v in pairs(RpgMakerGameRandomDialogBoxConfigs) do
tableInsert(RpgMakerGameRandomDialogBoxIdList, v.Id)
end
tableSort(RpgMakerGameRandomDialogBoxIdList, function(a, b)
return a < b
end)
end
local InitRpgMakerGameMapIdToShadowIdList = function()
local mapId
for _, v in pairs(RpgMakerGameShadowConfigs) do
mapId = v.MapId
if not RpgMakerGameMapIdToShadowIdList[mapId] then
RpgMakerGameMapIdToShadowIdList[mapId] = {}
end
tableInsert(RpgMakerGameMapIdToShadowIdList[mapId], v.Id)
end
end
local InitRpgMakerGameMapIdToShadowIdList = function()
local mapId
for _, v in pairs(RpgMakerGameShadowConfigs) do
mapId = v.MapId
if not RpgMakerGameMapIdToShadowIdList[mapId] then
RpgMakerGameMapIdToShadowIdList[mapId] = {}
end
tableInsert(RpgMakerGameMapIdToShadowIdList[mapId], v.Id)
end
end
local InitRpgMakerGameMapIdToTrapIdList = function()
local mapId
for _, v in pairs(RpgMakerGameTrapConfigs) do
mapId = v.MapId
if not RpgMakerGameMapIdToTrapIdList[mapId] then
RpgMakerGameMapIdToTrapIdList[mapId] = {}
end
tableInsert(RpgMakerGameMapIdToTrapIdList[mapId], v.Id)
end
end
local InitRpgMakerGameMapIdToElectricFenceIdList = function()
local mapId
for _, v in pairs(RpgMakerGameElectricFenceConfigs) do
mapId = v.MapId
if not RpgMakerGameMapIdToElectricFenceIdList[mapId] then
RpgMakerGameMapIdToElectricFenceIdList[mapId] = {}
end
tableInsert(RpgMakerGameMapIdToElectricFenceIdList[mapId], v.Id)
end
end
local IsInitTransferPoint = false
local InitMapIdToTransferPointIdList = function()
if IsInitTransferPoint then
return
end
local mapId
for _, v in pairs(RpgMakerGameTransferPointConfigs) do
mapId = v.MapId
if not MapIdToTransferPointIdList[mapId] then
MapIdToTransferPointIdList[mapId] = {}
end
tableInsert(MapIdToTransferPointIdList[mapId], v.Id)
end
IsInitTransferPoint = true
end
local IsInitEntity = false
local InitMapIdToEntityIdList = function()
if IsInitEntity then
return
end
local mapId
for _, v in pairs(RpgMakerGameEntityConfigs) do
mapId = v.MapId
if not MapIdToEntityIdList[mapId] then
MapIdToEntityIdList[mapId] = {}
end
tableInsert(MapIdToEntityIdList[mapId], v.Id)
--初始化实例所在的坐标、对应的实例类型列表
if not EntityTypeDic[mapId] then
EntityTypeDic[mapId] = {}
end
if not EntityTypeDic[mapId][v.X] then
EntityTypeDic[mapId][v.X] = {}
end
if not EntityTypeDic[mapId][v.X][v.Y] then
EntityTypeDic[mapId][v.X][v.Y] = {}
end
tableInsert(EntityTypeDic[mapId][v.X][v.Y], v.Type)
--初始化实例所在的坐标、对应的实例Id列表
if not EntityIdDic[mapId] then
EntityIdDic[mapId] = {}
end
if not EntityIdDic[mapId][v.X] then
EntityIdDic[mapId][v.X] = {}
end
if not EntityIdDic[mapId][v.X][v.Y] then
EntityIdDic[mapId][v.X][v.Y] = {}
end
tableInsert(EntityIdDic[mapId][v.X][v.Y], v.Id)
end
IsInitEntity = true
end
local IsInitChapterGroup = false
local _DefaultChapterGroupId
local InitChapterGroup = function()
if IsInitChapterGroup then
return
end
local groupId
for id, v in pairs(RpgMakerGameChapterConfigs) do
groupId = v.GroupId
if not RpgMakerGameChapterGroupToChapterIdList[groupId] then
RpgMakerGameChapterGroupToChapterIdList[groupId] = {}
end
tableInsert(RpgMakerGameChapterGroupToChapterIdList[groupId], id)
end
for groupId, chapterIdList in pairs(RpgMakerGameChapterGroupToChapterIdList) do
tableSort(chapterIdList, function(chapterIdA, chapterIdB)
return chapterIdA < chapterIdB
end)
end
for id, v in pairs(RpgMakerGameChapterGroupConfigs) do
tableInsert(RpgMakerGameChapterGroupIdList, id)
if v.IsFirstShow then
_DefaultChapterGroupId = id
end
end
tableSort(RpgMakerGameChapterGroupIdList, function(groupIdA, groupIdB)
return groupIdA < groupIdB
end)
IsInitChapterGroup = true
end
function XRpgMakerGameConfigs.Init()
RpgMakerGameChapterConfigs = XTableManager.ReadByIntKey(TABLE_CHAPTER_PATH, XTable.XTableRpgMakerGameChapter, "Id")
RpgMakerGameStageConfigs = XTableManager.ReadByIntKey(TABLE_STAGE_PATH, XTable.XTableRpgMakerGameStage, "Id")
RpgMakerGameStarConditionConfigs = XTableManager.ReadByIntKey(TABLE_STAR_CONDITION_PATH, XTable.XTableRpgMakerGameStarCondition, "Id")
RpgMakerGameRoleConfigs = XTableManager.ReadByIntKey(TABLE_ROLE_PATH, XTable.XTableRpgMakerGameRole, "Id")
RpgMakerGameMapConfigs = XTableManager.ReadByIntKey(TABLE_MAP_PATH, XTable.XTableRpgMakerGameMap, "Id")
RpgMakerGameStartPointConfigs = XTableManager.ReadByIntKey(TABLE_START_POINT_PATH, XTable.XTableRpgMakerGameStartPoint, "Id")
RpgMakerGameSKillTypeConfigs = XTableManager.ReadByIntKey(TABLE_SKILL_TYPE_PATH, XTable.XTableRpgMakerGameSkillType, "SkillType")
RpgMakerGameEndPointConfigs = XTableManager.ReadByIntKey(TABLE_END_POINT_PATH, XTable.XTableRpgMakerGameEndPoint, "Id")
RpgMakerGameBlockConfigs = XTableManager.ReadByIntKey(TABLE_BLOCK_PATH, XTable.XTableRpgMakerGameBlock, "Id")
RpgMakerGameGapConfigs = XTableManager.ReadByIntKey(TABLE_GAP_PATH, XTable.XTableRpgMakerGameGap, "Id")
RpgMakerGameMonsterConfigs = XTableManager.ReadByIntKey(TABLE_MONSTER_PATH, XTable.XTableRpgMakerGameMonster, "Id")
RpgMakerGameTriggerConfigs = XTableManager.ReadByIntKey(TABLE_TRIGGER_PATH, XTable.XTableRpgMakerGameTrigger, "Id")
RpgMakerGameHintIconConfigs = XTableManager.ReadByStringKey(TABLE_HINT_ICON_PATH, XTable.XTableRpgMakerGameHintIcon, "Key")
RpgMakerGameActivityConfigs = XTableManager.ReadByIntKey(TABLE_ACTIVITY_PATH, XTable.XTableRpgMakerGameActivity, "Id")
RpgMakerGameRandomDialogBoxConfigs = XTableManager.ReadByIntKey(TABLE_RANDOM_DIALOG_BOX_PATH, XTable.XTableRpgMakerGameRandomDialogBox, "Id")
RpgMakerGameHintDialogBoxConfigs = XTableManager.ReadByIntKey(TABLE_HINT_DIALOG_BOX_PATH, XTable.XTableRpgMakerGameHintDialogBox, "StageId")
RpgMakerGameModelConfigs = XTableManager.ReadByStringKey(TABLE_MODEL_PATH, XTable.XTableRpgMakerGameModel, "Key")
RpgMakerGameAnimationConfigs = XTableManager.ReadByStringKey(TABLE_ANIMATION_PATH, XTable.XTableRpgMakerGameAnimation, "ModelName")
RpgMakerGamePlayMainDownHintConfigs = XTableManager.ReadByIntKey(TABLE_PLAY_MAIN_DOWN_HINT_PATH, XTable.XTableRpgMakerGamePlayMainDownHint, "Id")
RpgMakerGameHintLineConfigs = XTableManager.ReadByIntKey(TABLE_HINT_LINE_PATH, XTable.XTableRpgMakerGameHintLine, "MapId")
RpgMakerGameShadowConfigs = XTableManager.ReadByIntKey(TABLE_SHADOW_PATH, XTable.XTableRpgMakerGameShadow, "Id")
RpgMakerGameTrapConfigs = XTableManager.ReadByIntKey(TABLE_TRAP_PATH, XTable.XTableRpgMakerGameTrap, "Id")
RpgMakerGameElectricFenceConfigs = XTableManager.ReadByIntKey(TABLE_ELECTRIC_FENCE_PATH, XTable.XTableRpgMakerGameElectricFence, "Id")
RpgMakerGameDeathTitleConfigs = XTableManager.ReadByIntKey(TABLE_DEATH_TITAL_PATH, XTable.XTableRpgMakerGameDeathTitle, "Type")
RpgMakerGameChapterGroupConfigs = XTableManager.ReadByIntKey(TABLE_CHAPTER_GROUP_PATH, XTable.XTableRpgMakerGameChapterGroup, "Id")
RpgMakerGameEntityConfigs = XTableManager.ReadByIntKey(TABLE_ENTITY_PATH, XTable.XTableRpgMakerGameEntity, "Id")
RpgMakerGameTransferPointConfigs = XTableManager.ReadByIntKey(TABLE_TRANSFER_POINT_PATH, XTable.XTableRpgMakerGameTransferPoint, "Id")
InitRpgMakerGameChapterIdToStageIdListDic()
InitRpgMakerGameStageIdToStarConditionIdListDic()
InitRpgMakerGameRoleIdList()
InitRpgMakerGameStageIdList()
InitRpgMakerGameSkillTypeList()
InitRpgMakerGameMapIdToBlockIdList()
InitRpgMakerGameMapIdToGapIdList()
InitRpgMakerGameMapIdToMonsterIdList()
InitRpgMakerGameMapIdToTriggerIdList()
InitActivityConfig()
InitRpgMakerGameRandomDialogBoxIdList()
InitRpgMakerGameMapIdToShadowIdList()
InitRpgMakerGameMapIdToTrapIdList()
InitRpgMakerGameMapIdToElectricFenceIdList()
end
-----------------RpgMakerGameChapter begin--------------------
local GetRpgMakerGameChapterConfig = function(id)
local config = RpgMakerGameChapterConfigs[id]
if not config then
XLog.ErrorTableDataNotFound("XRpgMakerGameConfigs.GetRpgMakerGameChapterConfig", "RpgMakerGameChapterCfg", TABLE_CHAPTER_PATH, "Id", tostring(id))
return
end
return config
end
function XRpgMakerGameConfigs.GetRpgMakerGameChapterOpenTimeId(id)
local config = GetRpgMakerGameChapterConfig(id)
return config.OpenTimeId
end
function XRpgMakerGameConfigs.GetRpgMakerGameChapterName(id)
local config = GetRpgMakerGameChapterConfig(id)
return config.Name
end
function XRpgMakerGameConfigs.GetRpgMakerGameChapterTagBtnBG(id)
local config = GetRpgMakerGameChapterConfig(id)
return config.TagBtnBG
end
function XRpgMakerGameConfigs.GetRpgMakerGameChapterPrefab(id)
local config = GetRpgMakerGameChapterConfig(id)
return config.Prefab
end
function XRpgMakerGameConfigs.GetRpgMakerGameStageIdList(chapterId)
return RpgMakerGameChapterIdToStageIdListDic[chapterId] or {}
end
-----------------RpgMakerGameChapter end--------------------
-----------------RpgMakerGameStage begin--------------------
local GetRpgMakerGameStageConfig = function(id)
local config = RpgMakerGameStageConfigs[id]
if not config then
XLog.ErrorTableDataNotFound("XRpgMakerGameConfigs.GetRpgMakerGameStageConfig", "RpgMakerGameStageConfig", TABLE_STAGE_PATH, "Id", tostring(id))
return
end
return config
end
function XRpgMakerGameConfigs.GetRpgMakerGameStageChapterId(id)
local config = GetRpgMakerGameStageConfig(id)
return config.ChapterId
end
function XRpgMakerGameConfigs.GetRpgMakerGameStagePreStage(id)
local config = GetRpgMakerGameStageConfig(id)
return config.PreStage
end
function XRpgMakerGameConfigs.GetRpgMakerGameStageBG(id)
local config = GetRpgMakerGameStageConfig(id)
return config.BG
end
function XRpgMakerGameConfigs.GetRpgMakerGameStagePrefab(id)
local config = GetRpgMakerGameStageConfig(id)
return config.Prefab
end
function XRpgMakerGameConfigs.GetRpgMakerGameStarConditionIdList(stageId)
return RpgMakerGameStageIdToStarConditionIdListDic[stageId] or {}
end
function XRpgMakerGameConfigs.GetRpgMakerGameStageName(id)
local config = GetRpgMakerGameStageConfig(id)
return config.Name or ""
end
function XRpgMakerGameConfigs.GetRpgMakerGameStageHint(id)
local config = GetRpgMakerGameStageConfig(id)
return config.StageHint or ""
end
function XRpgMakerGameConfigs.GetRpgMakerGameAllStageIdList()
return RpgMakerGameStageIdList
end
function XRpgMakerGameConfigs.GetRpgMakerGameNextStageId(currStageId)
local chapterId = XRpgMakerGameConfigs.GetRpgMakerGameStageChapterId(currStageId)
local stageIdList = XRpgMakerGameConfigs.GetRpgMakerGameStageIdList(chapterId)
local nextStageId = 0
for i, stageId in ipairs(stageIdList or {}) do
if stageId == currStageId then
nextStageId = stageIdList[i + 1] or 0
return nextStageId
end
end
return nextStageId
end
function XRpgMakerGameConfigs.GetRpgMakerGameStageLoseHintList(id)
local config = GetRpgMakerGameStageConfig(id)
return config.LoseHint or ""
end
function XRpgMakerGameConfigs.GetRpgMakerGameNumberName(id)
local config = GetRpgMakerGameStageConfig(id)
return config.NumberName or ""
end
function XRpgMakerGameConfigs.GetStageHintCost(id)
local config = GetRpgMakerGameStageConfig(id)
return config.HintCost
end
function XRpgMakerGameConfigs.GetStageAnswerCost(id)
local config = GetRpgMakerGameStageConfig(id)
return config.AnswerCost
end
function XRpgMakerGameConfigs.GetStageMapId(id)
local config = GetRpgMakerGameStageConfig(id)
return config.MapId
end
function XRpgMakerGameConfigs.GetStageUseRoleId(id)
local config = GetRpgMakerGameStageConfig(id)
return config.UseRoleId
end
-----------------RpgMakerGameStage end--------------------
-----------------RpgMakerGameStarCondition 通关获得的星星条件 begin--------------------
local GetRpgMakerGameStarConditionConfig = function(id)
local config = RpgMakerGameStarConditionConfigs[id]
if not config then
XLog.ErrorTableDataNotFound("XRpgMakerGameConfigs.GetRpgMakerGameStarConditionConfig", "RpgMakerGameStarConditionConfig", TABLE_STAR_CONDITION_PATH, "Id", tostring(id))
return
end
return config
end
function XRpgMakerGameConfigs.GetRpgMakerGameStarConditionStar(id)
local config = GetRpgMakerGameStarConditionConfig(id)
return config.Star
end
function XRpgMakerGameConfigs.GetRpgMakerGameStarConditionStepCount(id)
local config = GetRpgMakerGameStarConditionConfig(id)
return config.StepCount
end
function XRpgMakerGameConfigs.GetRpgMakerGameStarConditionMonsterCount(id)
local config = GetRpgMakerGameStarConditionConfig(id)
return config.MonsterCount
end
function XRpgMakerGameConfigs.GetRpgMakerGameStarConditionMonsterBossCount(id)
local config = GetRpgMakerGameStarConditionConfig(id)
return config.MonsterBossCount or 0
end
function XRpgMakerGameConfigs.GetRpgMakerGameStarConditionDesc(id)
local config = GetRpgMakerGameStarConditionConfig(id)
return config.ConditionDesc
end
function XRpgMakerGameConfigs.GetRpgMakerGameTotalStar(chapterId)
local stageIdList = XRpgMakerGameConfigs.GetRpgMakerGameStageIdList(chapterId)
local starConditionIdList
local totalStarCount = 0
for _, stageId in ipairs(stageIdList) do
starConditionIdList = XRpgMakerGameConfigs.GetRpgMakerGameStarConditionIdList(stageId)
for _, starConditionId in ipairs(starConditionIdList) do
totalStarCount = totalStarCount + XRpgMakerGameConfigs.GetRpgMakerGameStarConditionStar(starConditionId)
end
end
return totalStarCount
end
function XRpgMakerGameConfigs.GetRpgMakerGameStageTotalStar(stageId)
local starConditionIdList = XRpgMakerGameConfigs.GetRpgMakerGameStarConditionIdList(stageId)
local totalCount = 0
for _, starConditionId in ipairs(starConditionIdList) do
totalCount = totalCount + XRpgMakerGameConfigs.GetRpgMakerGameStarConditionStar(starConditionId)
end
return totalCount
end
function XRpgMakerGameConfigs.GetStarConditionReward(id)
local config = GetRpgMakerGameStarConditionConfig(id)
return config.Reward
end
-----------------RpgMakerGameStarCondition 通关获得的星星条件 end----------------------
-----------------RpgMakerGameRole 角色列表 begin--------------------
local GetRpgMakerGameRoleConfig = function(id)
local config = RpgMakerGameRoleConfigs[id]
if not config then
XLog.ErrorTableDataNotFound("XRpgMakerGameConfigs.GetRpgMakerGameRoleConfig", "RpgMakerGameRoleConfigs", TABLE_ROLE_PATH, "Id", tostring(id))
return
end
return config
end
function XRpgMakerGameConfigs.GetRpgMakerGameRoleIdList()
return RpgMakerGameRoleIdList
end
function XRpgMakerGameConfigs.GetRpgMakerGameRoleUnlockChapterId(id)
local config = GetRpgMakerGameRoleConfig(id)
return config.UnlockChapterId
end
function XRpgMakerGameConfigs.GetRpgMakerGameRoleName(id)
local config = GetRpgMakerGameRoleConfig(id)
return config.Name or ""
end
function XRpgMakerGameConfigs.GetRpgMakerGameRoleStyle(id)
local config = GetRpgMakerGameRoleConfig(id)
return config.Style or ""
end
function XRpgMakerGameConfigs.GetRpgMakerGameRoleSkillType(id)
local config = GetRpgMakerGameRoleConfig(id)
return config.SkillType or nil
end
function XRpgMakerGameConfigs.GetRpgMakerGameRoleModelAssetPath(id)
local config = GetRpgMakerGameRoleConfig(id)
return config.ModelAssetPath
end
function XRpgMakerGameConfigs.GetRpgMakerGameRoleInfoName(id)
local config = GetRpgMakerGameRoleConfig(id)
return config.InfoName or ""
end
function XRpgMakerGameConfigs.GetRpgMakerGameRoleInfo(id)
local config = GetRpgMakerGameRoleConfig(id)
return config.Info or ""
end
function XRpgMakerGameConfigs.GetRpgMakerGameRoleHeadPath(id)
local config = GetRpgMakerGameRoleConfig(id)
return config.HeadPath
end
function XRpgMakerGameConfigs.GetRpgMakerGameRoleLockTipsDesc(id)
local config = GetRpgMakerGameRoleConfig(id)
return config.LockTipsDesc or ""
end
--根据解锁的关卡id返回对应的角色id列表
function XRpgMakerGameConfigs.GetRpgMakerGameRoleIdListByUnlockChapterId(unlockChapterId)
local roleIdList = XRpgMakerGameConfigs.GetRpgMakerGameRoleIdList()
local unlockChapterIdCfg
local roleIdList = {}
for _, roleId in ipairs(roleIdList) do
unlockChapterIdCfg = XRpgMakerGameConfigs.GetRpgMakerGameRoleUnlockChapterId(roleId)
if unlockChapterIdCfg == unlockChapterId then
tableInsert(roleIdList, roleId)
end
end
return roleIdList
end
function XRpgMakerGameConfigs.GetRoleSkillType(id)
local config = GetRpgMakerGameRoleConfig(id)
return config.SkillType or ""
end
function XRpgMakerGameConfigs.GetRoleGraphicBefore(id)
local config = GetRpgMakerGameRoleConfig(id)
return config.GraphicBefore
end
function XRpgMakerGameConfigs.GetRoleGraphicAfter(id)
local config = GetRpgMakerGameRoleConfig(id)
return config.GraphicAfter
end
-----------------RpgMakerGameRole 角色列表 end--------------------
-----------------RpgMakerGameSkillType 技能类型列表 begin--------------------
local GetRpgMakerGameSkillTypeConfig = function(skillType)
local config = RpgMakerGameSKillTypeConfigs[skillType]
if not config then
XLog.ErrorTableDataNotFound("XRpgMakerGameConfigs.GetRpgMakerGameSkillTypeConfig", "RpgMakerGameSkillTypeConfigs", TABLE_SKILL_TYPE_PATH, "skillType", tostring(skillType))
return
end
return config
end
function XRpgMakerGameConfigs.GetRpgMakerGameSkillTypeIcon(skillType)
local config = GetRpgMakerGameSkillTypeConfig(skillType)
return config.Icon
end
-----------------RpgMakerGameSkillType 技能类型列表 end--------------------
-----------------RpgMakerGameMap 地图 begin-----------------------
local GetRpgMakerGameMapConfigs = function(id)
local config = RpgMakerGameMapConfigs[id]
if not config then
XLog.ErrorTableDataNotFound("XRpgMakerGameConfigs.GetRpgMakerGameMapConfigs", "RpgMakerGameMapConfigs", TABLE_MAP_PATH, "Id", tostring(id))
return
end
return config
end
function XRpgMakerGameConfigs.GetRpgMakerGameMaxRound(id)
local config = GetRpgMakerGameMapConfigs(id)
return config.MaxRound
end
function XRpgMakerGameConfigs.GetRpgMakerGameStartPointId(id)
local config = GetRpgMakerGameMapConfigs(id)
return config.StartPointId
end
function XRpgMakerGameConfigs.GetRpgMakerGameEndPointId(id)
local config = GetRpgMakerGameMapConfigs(id)
return config.EndPointId
end
function XRpgMakerGameConfigs.GetRpgMakerGamePrefab(id)
local config = GetRpgMakerGameMapConfigs(id)
return config.Prefab
end
--行
function XRpgMakerGameConfigs.GetRpgMakerGameRow(id)
local config = GetRpgMakerGameMapConfigs(id)
return config.Row
end
--列
function XRpgMakerGameConfigs.GetRpgMakerGameCol(id)
local config = GetRpgMakerGameMapConfigs(id)
return config.Col
end
-----------------RpgMakerGameMap 地图 end-------------------------
-----------------RpgMakerGameStartPoint 玩家起点 begin-----------------------
local GetRpgMakerGameStartPointConfigs = function(id)
local config = RpgMakerGameStartPointConfigs[id]
if not config then
XLog.ErrorTableDataNotFound("XRpgMakerGameConfigs.GetRpgMakerGameStartPointConfigs", "RpgMakerGameStartPointConfigs", TABLE_START_POINT_PATH, "Id", tostring(id))
return
end
return config
end
function XRpgMakerGameConfigs.GetRpgMakerGameStartPointX(id)
local config = GetRpgMakerGameStartPointConfigs(id)
return config.X
end
function XRpgMakerGameConfigs.GetRpgMakerGameStartPointY(id)
local config = GetRpgMakerGameStartPointConfigs(id)
return config.Y
end
function XRpgMakerGameConfigs.GetRpgMakerGameStartPointDirection(id)
local config = GetRpgMakerGameStartPointConfigs(id)
return config.Direction
end
function XRpgMakerGameConfigs.IsRpgMakerGameStartPoint(mapId, x, y)
local startPointId = XRpgMakerGameConfigs.GetRpgMakerGameStartPointId(mapId)
local startPointX = XRpgMakerGameConfigs.GetRpgMakerGameStartPointX(startPointId)
local startPointY = XRpgMakerGameConfigs.GetRpgMakerGameStartPointY(startPointId)
return startPointX == x and startPointY == y
end
-----------------RpgMakerGameStartPoint 玩家起点 end-------------------------
-----------------RpgMakerGameEndPoint 终点 begin-----------------------
local GetRpgMakerGameEndPointConfigs = function(id)
local config = RpgMakerGameEndPointConfigs[id]
if not config then
XLog.ErrorTableDataNotFound("XRpgMakerGameConfigs.GetRpgMakerGameEndPointConfigs", "RpgMakerGameEndPointConfigs", TABLE_END_POINT_PATH, "Id", tostring(id))
return
end
return config
end
function XRpgMakerGameConfigs.GetRpgMakerGameEndPointX(id)
local config = GetRpgMakerGameEndPointConfigs(id)
return config.X
end
function XRpgMakerGameConfigs.GetRpgMakerGameEndPointY(id)
local config = GetRpgMakerGameEndPointConfigs(id)
return config.Y
end
function XRpgMakerGameConfigs.GetRpgMakerGameEndPointType(id)
local config = GetRpgMakerGameEndPointConfigs(id)
return config.Type
end
function XRpgMakerGameConfigs.IsRpgMakerGameEndPoint(mapId, x, y)
local endPointId = XRpgMakerGameConfigs.GetRpgMakerGameEndPointId(mapId)
local endPointX = XRpgMakerGameConfigs.GetRpgMakerGameEndPointX(endPointId)
local endPointY = XRpgMakerGameConfigs.GetRpgMakerGameEndPointY(endPointId)
return endPointX == x and endPointY == y
end
-----------------RpgMakerGameEndPoint 终点 end-------------------------
-----------------RpgMakerGameBlock 阻挡物 begin-----------------------
local GetRpgMakerGameBlockConfigs = function(id)
local config = RpgMakerGameBlockConfigs[id]
if not config then
XLog.ErrorTableDataNotFound("XRpgMakerGameConfigs.GetRpgMakerGameBlockConfigs", "RpgMakerGameBlockConfigs", TABLE_BLOCK_PATH, "Id", tostring(id))
return
end
return config
end
function XRpgMakerGameConfigs.GetRpgMakerGameBlockRow(id)
local config = GetRpgMakerGameBlockConfigs(id)
return config.Row
end
function XRpgMakerGameConfigs.GetRpgMakerGameBlockColList(id)
local config = GetRpgMakerGameBlockConfigs(id)
return config.Col
end
function XRpgMakerGameConfigs.GetRpgMakerGameMapIdToBlockIdList(mapId)
return RpgMakerGameMapIdToBlockIdList[mapId] or {}
end
function XRpgMakerGameConfigs.IsRpgMakerGameHaveBlock(mapId)
local blockIdList = XRpgMakerGameConfigs.GetRpgMakerGameMapIdToBlockIdList(mapId)
local colList
for _, blockId in ipairs(blockIdList) do
colList = XRpgMakerGameConfigs.GetRpgMakerGameBlockColList(blockId)
for _, col in ipairs(colList) do
if not XTool.IsNumberValid(col) then
return true
end
end
end
return false
end
-----------------RpgMakerGameBlock 阻挡物 end-------------------------
-----------------RpgMakerGameGap 墙 begin-----------------------
local GetRpgMakerGameGapConfigs = function(id)
local config = RpgMakerGameGapConfigs[id]
if not config then
XLog.ErrorTableDataNotFound("XRpgMakerGameConfigs.GetRpgMakerGameGapConfigs", "RpgMakerGameGapConfigs", TABLE_GAP_PATH, "Id", tostring(id))
return
end
return config
end
function XRpgMakerGameConfigs.GetRpgMakerGameGapX(id)
local config = GetRpgMakerGameGapConfigs(id)
return config.X
end
function XRpgMakerGameConfigs.GetRpgMakerGameGapY(id)
local config = GetRpgMakerGameGapConfigs(id)
return config.Y
end
function XRpgMakerGameConfigs.GetRpgMakerGameGapDirection(id)
local config = GetRpgMakerGameGapConfigs(id)
return config.Direction
end
function XRpgMakerGameConfigs.GetRpgMakerGameMapIdToGapIdList(id)
return RpgMakerGameMapIdToGapIdList[id] or {}
end
--获得相同x和y坐标的gapId列表
function XRpgMakerGameConfigs.GetRpgMakerGameSameXYGapIdIdList(mapId, x, y)
local gapIdList = XRpgMakerGameConfigs.GetRpgMakerGameMapIdToGapIdList(mapId)
local gapX
local gapY
local sameXYGapIdList = {}
for _, gapId in ipairs(gapIdList) do
gapX = XRpgMakerGameConfigs.GetRpgMakerGameGapX(gapId)
gapY = XRpgMakerGameConfigs.GetRpgMakerGameGapY(gapId)
if gapX == x and gapY == y then
tableInsert(sameXYGapIdList, gapId)
end
end
return sameXYGapIdList
end
-----------------RpgMakerGameGap 墙 end-------------------------
-----------------RpgMakerGameMonster 怪物 begin-----------------------
local GetRpgMakerGameMonsterConfigs = function(id)
local config = RpgMakerGameMonsterConfigs[id]
if not config then
XLog.ErrorTableDataNotFound("XRpgMakerGameConfigs.GetRpgMakerGameMonsterConfigs", "RpgMakerGameMonsterConfigs", TABLE_MONSTER_PATH, "Id", tostring(id))
return
end
return config
end
function XRpgMakerGameConfigs.GetRpgMakerGameMonsterType(id)
local config = GetRpgMakerGameMonsterConfigs(id)
return config.Type
end
function XRpgMakerGameConfigs.GetRpgMakerGameMonsterSkillType(id)
local config = GetRpgMakerGameMonsterConfigs(id)
return config.SkillType
end
function XRpgMakerGameConfigs.GetRpgMakerGameMonsterX(id)
local config = GetRpgMakerGameMonsterConfigs(id)
return config.X
end
function XRpgMakerGameConfigs.GetRpgMakerGameMonsterY(id)
local config = GetRpgMakerGameMonsterConfigs(id)
return config.Y
end
function XRpgMakerGameConfigs.GetRpgMakerGameMonsterDirection(id)
local config = GetRpgMakerGameMonsterConfigs(id)
return config.Direction
end
function XRpgMakerGameConfigs.GetRpgMakerGameMonsterViewFront(id)
local config = GetRpgMakerGameMonsterConfigs(id)
return config.ViewFront
end
function XRpgMakerGameConfigs.GetRpgMakerGameMonsterViewBack(id)
local config = GetRpgMakerGameMonsterConfigs(id)
return config.ViewBack
end
function XRpgMakerGameConfigs.GetRpgMakerGameMonsterViewLeft(id)
local config = GetRpgMakerGameMonsterConfigs(id)
return config.ViewLeft
end
function XRpgMakerGameConfigs.GetRpgMakerGameMonsterViewRight(id)
local config = GetRpgMakerGameMonsterConfigs(id)
return config.ViewRight
end
function XRpgMakerGameConfigs.GetRpgMakerGameSentryFront(id)
local config = GetRpgMakerGameMonsterConfigs(id)
return config.SentryFront
end
function XRpgMakerGameConfigs.GetRpgMakerGameSentryBack(id)
local config = GetRpgMakerGameMonsterConfigs(id)
return config.SentryBack
end
function XRpgMakerGameConfigs.GetRpgMakerGameSentryLeft(id)
local config = GetRpgMakerGameMonsterConfigs(id)
return config.SentryLeft
end
function XRpgMakerGameConfigs.GetRpgMakerGameSentryRight(id)
local config = GetRpgMakerGameMonsterConfigs(id)
return config.SentryRight
end
function XRpgMakerGameConfigs.GetRpgMakerGameSentryStopRound(id)
local config = GetRpgMakerGameMonsterConfigs(id)
return config.SentryStopRound
end
function XRpgMakerGameConfigs.GetRpgMakerGameMapIdToMonsterIdList(mapId)
return RpgMakerGameMapIdToMonsterIdList[mapId] or {}
end
function XRpgMakerGameConfigs.GetRpgMakerGameMonsterPrefab(id)
local config = GetRpgMakerGameMonsterConfigs(id)
return config.Prefab
end
function XRpgMakerGameConfigs.GetRpgMakerGameMonsterId(mapId, x, y)
local monsterIdList = XRpgMakerGameConfigs.GetRpgMakerGameMapIdToMonsterIdList(mapId)
local monsterX
local monsterY
for _, monsterId in ipairs(monsterIdList) do
monsterX = XRpgMakerGameConfigs.GetRpgMakerGameMonsterX(monsterId)
monsterY = XRpgMakerGameConfigs.GetRpgMakerGameMonsterY(monsterId)
if monsterX == x and monsterY == y then
return monsterId
end
end
end
function XRpgMakerGameConfigs.GetRpgMakerGameMonsterPatrolIdList(id)
local config = GetRpgMakerGameMonsterConfigs(id)
return config.PatrolId
end
function XRpgMakerGameConfigs.IsRpgMakerGameMonsterTriggerEnd(id)
local config = GetRpgMakerGameMonsterConfigs(id)
return XTool.IsNumberValid(config.TriggerEnd)
end
function XRpgMakerGameConfigs.IsRpgMakerGameHaveMonster(mapId, monsterType)
local monsterIdList = XRpgMakerGameConfigs.GetRpgMakerGameMapIdToMonsterIdList(mapId)
local isHaveNormalIcon, isHaveCrystalIcon, isHaveFlameIcon, isHaveRaidenIcon, isHaveDarkIcon
local typeCfg
local skillCfg
for _, monsterId in ipairs(monsterIdList) do
typeCfg = XRpgMakerGameConfigs.GetRpgMakerGameMonsterType(monsterId)
skillCfg = XRpgMakerGameConfigs.GetRpgMakerGameMonsterSkillType(monsterId)
if typeCfg == monsterType then
if monsterType == XRpgMakerGameConfigs.XRpgMakerGameMonsterType.Human then
return true
elseif skillCfg then
if skillCfg == XRpgMakerGameConfigs.XRpgMakerGameRoleSkillType.Crystal then isHaveCrystalIcon = true
elseif skillCfg == XRpgMakerGameConfigs.XRpgMakerGameRoleSkillType.Flame then isHaveFlameIcon = true
elseif skillCfg == XRpgMakerGameConfigs.XRpgMakerGameRoleSkillType.Raiden then isHaveRaidenIcon = true
elseif skillCfg == XRpgMakerGameConfigs.XRpgMakerGameRoleSkillType.Dark then isHaveDarkIcon = true
else isHaveNormalIcon = true end
else
isHaveNormalIcon = true
end
end
if isHaveNormalIcon and isHaveCrystalIcon and isHaveFlameIcon and isHaveRaidenIcon and isHaveDarkIcon then
break
end
end
return isHaveNormalIcon, isHaveCrystalIcon, isHaveFlameIcon, isHaveRaidenIcon, isHaveDarkIcon
end
function XRpgMakerGameConfigs.GetMonsterSkillType(id)
local config = GetRpgMakerGameMonsterConfigs(id)
return config.SkillType
end
-----------------RpgMakerGameMonster 怪物 end-------------------------
-----------------RpgMakerGameTrigger 机关 begin-----------------------
local GetRpgMakerGameTriggerConfigs = function(id)
local config = RpgMakerGameTriggerConfigs[id]
if not config then
XLog.ErrorTableDataNotFound("XRpgMakerGameConfigs.GetRpgMakerGameTriggerConfigs", "RpgMakerGameTriggerConfigs", TABLE_TRIGGER_PATH, "Id", tostring(id))
return
end
return config
end
function XRpgMakerGameConfigs.GetRpgMakerGameTriggerX(id)
local config = GetRpgMakerGameTriggerConfigs(id)
return config.X
end
function XRpgMakerGameConfigs.GetRpgMakerGameTriggerY(id)
local config = GetRpgMakerGameTriggerConfigs(id)
return config.Y
end
function XRpgMakerGameConfigs.GetRpgMakerGameTriggerDefaultBlock(id)
local config = GetRpgMakerGameTriggerConfigs(id)
return config.DefaultBlock
end
function XRpgMakerGameConfigs.GetRpgMakerGameTriggerType(id)
local config = GetRpgMakerGameTriggerConfigs(id)
return config.Type
end
function XRpgMakerGameConfigs.GetRpgMakerGameMapIdToTriggerIdList(mapId)
return RpgMakerGameMapIdToTriggerIdList[mapId] or {}
end
function XRpgMakerGameConfigs.GetRpgMakerGameTriggerId(mapId, x, y)
local triggerIdList = XRpgMakerGameConfigs.GetRpgMakerGameMapIdToTriggerIdList(mapId)
local triggerX
local triggerY
for _, triggerId in ipairs(triggerIdList) do
triggerX = XRpgMakerGameConfigs.GetRpgMakerGameTriggerX(triggerId)
triggerY = XRpgMakerGameConfigs.GetRpgMakerGameTriggerY(triggerId)
if triggerX == x and triggerY == y then
return triggerId
end
end
end
function XRpgMakerGameConfigs.IsRpgMakerGameHaveTrigger(mapId)
local isHaveType1Trigger, isHaveType2Trigger, isHaveType3Trigger, isHaveElectricFencTrigger
local triggerIdList = XRpgMakerGameConfigs.GetRpgMakerGameMapIdToTriggerIdList(mapId)
local typeCfg
for _, triggerId in ipairs(triggerIdList) do
typeCfg = XRpgMakerGameConfigs.GetRpgMakerGameTriggerType(triggerId)
if typeCfg == XRpgMakerGameConfigs.XRpgMakerGameTriggerType.Trigger1 then
isHaveType1Trigger = true
elseif typeCfg == XRpgMakerGameConfigs.XRpgMakerGameTriggerType.Trigger2 then
isHaveType2Trigger = true
elseif typeCfg == XRpgMakerGameConfigs.XRpgMakerGameTriggerType.Trigger3 then
isHaveType3Trigger = true
elseif typeCfg == XRpgMakerGameConfigs.XRpgMakerGameTriggerType.TriggerElectricFence then
isHaveElectricFencTrigger = true
end
if isHaveType1Trigger and isHaveType2Trigger and isHaveType3Trigger and isHaveElectricFencTrigger then
break
end
end
return isHaveType1Trigger, isHaveType2Trigger, isHaveType3Trigger, isHaveElectricFencTrigger
end
-----------------RpgMakerGameTrigger 机关 end-------------------------
-----------------RpgMakerGameHintIcon 通关提示图标 begin-----------------------
local GetRpgMakerGameHintIconConfig = function(key)
local config = RpgMakerGameHintIconConfigs[key]
if not config then
XLog.ErrorTableDataNotFound("XRpgMakerGameConfigs.GetRpgMakerGameHintIconConfig", "RpgMakerGameHintIconConfigs", TABLE_HINT_ICON_PATH, "Key", key)
return
end
return config
end
function XRpgMakerGameConfigs.GetRpgMakerGameHintIconKeyList()
local hintIconKeyList = {}
for k in pairs(RpgMakerGameHintIconConfigs) do
tableInsert(hintIconKeyList, k)
end
return hintIconKeyList
end
--只获取该地图上有对应对象的图标
function XRpgMakerGameConfigs.GetRpgMakerGameHintIconKeyListByMapId(mapId, isNotShowLine)
local hintIconKeyList = {}
if not XTool.IsNumberValid(mapId) then
return hintIconKeyList
end
local isHaveBlock = XRpgMakerGameConfigs.IsRpgMakerGameHaveBlock(mapId)
-- 不同属性库洛洛不同图标
local isHaveNormalMonster, isHaveCrystalMonsterIcon, isHaveFlameMonsterIcon, isHaveRaidenMonsterIcon, isHaveDarkMonsterIcon
= XRpgMakerGameConfigs.IsRpgMakerGameHaveMonster(mapId, XRpgMakerGameConfigs.XRpgMakerGameMonsterType.Normal)
local isHaveNormalBoss, isHaveCrystalBossIcon, isHaveFlameBossIcon, isHaveRaidenBossIcon, isHaveDarkBossIcon
= XRpgMakerGameConfigs.IsRpgMakerGameHaveMonster(mapId, XRpgMakerGameConfigs.XRpgMakerGameMonsterType.BOSS)
local isHaveType1Trigger, isHaveType2Trigger, isHaveType3Trigger, isHaveElectricFencTrigger = XRpgMakerGameConfigs.IsRpgMakerGameHaveTrigger(mapId)
local isHaveGap = not XTool.IsTableEmpty(XRpgMakerGameConfigs.GetRpgMakerGameMapIdToGapIdList(mapId))
local isHaveShadow = not XTool.IsTableEmpty(XRpgMakerGameConfigs.GetRpgMakerGameMapIdToShadowIdList(mapId))
local isHaveElectricFence = not XTool.IsTableEmpty(XRpgMakerGameConfigs.GetRpgMakerGameMapIdToElectricFenceIdList(mapId))
local isHaveHuman = XRpgMakerGameConfigs.IsRpgMakerGameHaveMonster(mapId, XRpgMakerGameConfigs.XRpgMakerGameMonsterType.Human)
local isHaveTrap = not XTool.IsTableEmpty(XRpgMakerGameConfigs.GetRpgMakerGameMapIdToTrapIdList(mapId))
-- 地图实体1 水面、2 冰面、3 草圃、4 钢板
local isHaveEntity1, isHaveEntity2, isHaveEntity3, isHaveEntity4 = XRpgMakerGameConfigs.IsRpgMakerGameHaveEntity(mapId)
local isHaveTransferPoint1, isHaveTransferPoint2, isHaveTransferPoint3 = XRpgMakerGameConfigs.IsRpgMakerGameHaveTransferPoint(mapId)
local isInsert = true
for k in pairs(RpgMakerGameHintIconConfigs) do
if k == XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.BlockIcon then
isInsert = isHaveBlock
elseif k == XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.CrystalMonsterIcon then
isInsert = isHaveCrystalMonsterIcon
elseif k == XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.FlameMonsterIcon then
isInsert = isHaveFlameMonsterIcon
elseif k == XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.RaidenMonsterIcon then
isInsert = isHaveRaidenMonsterIcon
elseif k == XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.DarkMonsterIcon then
isInsert = isHaveDarkMonsterIcon
elseif k == XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.NormalMonsterIcon then
isInsert = isHaveNormalMonster
elseif k == XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.CrystalBossIcon then
isInsert = isHaveCrystalBossIcon
elseif k == XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.FlameBossIcon then
isInsert = isHaveFlameBossIcon
elseif k == XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.RaidenBossIcon then
isInsert = isHaveRaidenBossIcon
elseif k == XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.DarkBossIcon then
isInsert = isHaveDarkBossIcon
elseif k == XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.BossIcon then
isInsert = isHaveNormalBoss
elseif k == XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.TriggerIcon1 then
isInsert = isHaveType1Trigger
elseif k == XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.TriggerIcon2 then
isInsert = isHaveType2Trigger
elseif k == XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.TriggerIcon3 then
isInsert = isHaveType3Trigger
elseif k == XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.ElectricFencTrigger then
isInsert = isHaveElectricFencTrigger
elseif k == XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.GapIcon then
isInsert = isHaveGap
elseif k == XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.ShadowIcon then
isInsert = isHaveShadow
elseif k == XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.ElectricFenceIcon then
isInsert = isHaveElectricFence
elseif k == XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.HumanIcon then
isInsert = isHaveHuman
elseif k == XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.TrapIcon then
isInsert = isHaveTrap
elseif k == XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.EntityIcon1 then
isInsert = isHaveEntity1
elseif k == XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.EntityIcon2 then
isInsert = isHaveEntity2
elseif k == XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.EntityIcon3 then
isInsert = isHaveEntity3
elseif k == XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.EntityIcon4 then
isInsert = isHaveEntity4
elseif k == XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.TransferPointIcon1 then
isInsert = isHaveTransferPoint1
elseif k == XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.TransferPointIcon2 then
isInsert = isHaveTransferPoint2
elseif k == XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.TransferPointIcon3 then
isInsert = isHaveTransferPoint3
elseif isNotShowLine and k == XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.MoveLineIcon then
isInsert = false
end
if isInsert then
tableInsert(hintIconKeyList, k)
end
isInsert = true
end
return hintIconKeyList
end
function XRpgMakerGameConfigs.GetRpgMakerGameHintIcon(key)
local config = GetRpgMakerGameHintIconConfig(key)
return config.Icon
end
function XRpgMakerGameConfigs.GetRpgMakerGameHintLayer(key)
local config = GetRpgMakerGameHintIconConfig(key)
return config.Layer
end
function XRpgMakerGameConfigs.GetRpgMakerGameHintIconName(key)
local config = GetRpgMakerGameHintIconConfig(key)
return config.Name
end
function XRpgMakerGameConfigs.GetMonsterIconKey(monsterType, skillType)
if XRpgMakerGameConfigs.XRpgMakerGameMonsterType.BOSS == monsterType then
if skillType then
if skillType == XRpgMakerGameConfigs.XRpgMakerGameRoleSkillType.Crystal then
return XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.CrystalBossIcon
elseif skillType == XRpgMakerGameConfigs.XRpgMakerGameRoleSkillType.Flame then
return XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.FlameBossIcon
elseif skillType == XRpgMakerGameConfigs.XRpgMakerGameRoleSkillType.Raiden then
return XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.RaidenBossIcon
elseif skillType == XRpgMakerGameConfigs.XRpgMakerGameRoleSkillType.Dark then
return XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.DarkBossIcon
end
end
return XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.BossIcon
end
if XRpgMakerGameConfigs.XRpgMakerGameMonsterType.Human == monsterType then
return XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.HumanIcon
end
if skillType then
if skillType == XRpgMakerGameConfigs.XRpgMakerGameRoleSkillType.Crystal then
return XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.CrystalMonsterIcon
elseif skillType == XRpgMakerGameConfigs.XRpgMakerGameRoleSkillType.Flame then
return XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.FlameMonsterIcon
elseif skillType == XRpgMakerGameConfigs.XRpgMakerGameRoleSkillType.Raiden then
return XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.RaidenMonsterIcon
elseif skillType == XRpgMakerGameConfigs.XRpgMakerGameRoleSkillType.Dark then
return XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.DarkMonsterIcon
end
end
return XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.NormalMonsterIcon
end
function XRpgMakerGameConfigs.GetTriggerIconKey(triggerType)
if triggerType == XRpgMakerGameConfigs.XRpgMakerGameTriggerType.Trigger1 then
return XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.TriggerIcon1
end
if triggerType == XRpgMakerGameConfigs.XRpgMakerGameTriggerType.Trigger2 then
return XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.TriggerIcon2
end
if triggerType == XRpgMakerGameConfigs.XRpgMakerGameTriggerType.TriggerElectricFence then
return XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.ElectricFencTrigger
end
return XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.TriggerIcon3
end
function XRpgMakerGameConfigs.GetEntityIconKey(entityType)
if entityType == XRpgMakerGameConfigs.XRpgMakerGameEntityType.Water then
return XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.EntityIcon1
end
if entityType == XRpgMakerGameConfigs.XRpgMakerGameEntityType.Ice then
return XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.EntityIcon2
end
if entityType == XRpgMakerGameConfigs.XRpgMakerGameEntityType.Grass then
return XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.EntityIcon3
end
return XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.EntityIcon4
end
function XRpgMakerGameConfigs.GetTransferPointIconKey(transferPointColor)
if transferPointColor == XRpgMakerGameConfigs.XRpgMakerTransferPointColor.Green then
return XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.TransferPointIcon1
end
if transferPointColor == XRpgMakerGameConfigs.XRpgMakerTransferPointColor.Yellow then
return XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.TransferPointIcon2
end
return XRpgMakerGameConfigs.RpgMakerGameHintIconKeyMaps.TransferPointIcon3
end
-----------------RpgMakerGameHintIcon 通关提示图标 end-------------------------
-----------------RpgMakerGameActivity 活动相关 begin-----------------------
local GetRpgMakerGameActivityConfig = function(id)
local config = RpgMakerGameActivityConfigs[id]
if not config then
XLog.ErrorTableDataNotFound("XRpgMakerGameConfigs.GetRpgMakerGameActivityConfig", "RpgMakerGameActivityConfigs", TABLE_ACTIVITY_PATH, "Id", id)
return
end
return config
end
function XRpgMakerGameConfigs.GetDefaultActivityId()
return DefaultActivityId
end
function XRpgMakerGameConfigs.GetRpgMakerGameActivityTaskTimeLimitId(id)
local config = GetRpgMakerGameActivityConfig(id)
return config.TaskTimeLimitId
end
function XRpgMakerGameConfigs.GetRpgMakerGameActivityTimeId(id)
local config = GetRpgMakerGameActivityConfig(id)
return config.TimeId
end
function XRpgMakerGameConfigs.GetActivityName(id)
local config = GetRpgMakerGameActivityConfig(id)
return config.Name
end
function XRpgMakerGameConfigs.GetActivityBannerBg(id)
local config = GetRpgMakerGameActivityConfig(id)
return config.BannerBg
end
function XRpgMakerGameConfigs.GetActivityCollectionIcon(id)
local config = GetRpgMakerGameActivityConfig(id)
return config.CollectionIcon
end
function XRpgMakerGameConfigs.GetActivityGuideMoveDirection(id)
id = id or XRpgMakerGameConfigs.GetDefaultActivityId()
local config = GetRpgMakerGameActivityConfig(id)
return config.GuideMoveDirection
end
-----------------RpgMakerGameActivity 活动相关 end-------------------------
-----------------RpgMakerGameRandomDialogBox 随机提示 begin-----------------------
local GetRpgMakerGameRandomDialogBoxConfigs = function(id)
local config = RpgMakerGameRandomDialogBoxConfigs[id]
if not config then
XLog.ErrorTableDataNotFound("XRpgMakerGameConfigs.GetRpgMakerGameRandomDialogBoxConfigs", "RpgMakerGameRandomDialogBoxConfigs", TABLE_RANDOM_DIALOG_BOX_PATH, "Id", id)
return
end
return config
end
function XRpgMakerGameConfigs.GetRpgMakerGameRandomDialogBoxIdList()
return RpgMakerGameRandomDialogBoxIdList
end
function XRpgMakerGameConfigs.GetRpgMakerGameRandomDialogBoxPreStage(id)
local config = GetRpgMakerGameRandomDialogBoxConfigs(id)
return config.PreStage
end
function XRpgMakerGameConfigs.GetRpgMakerGameRandomDialogBoxText(id)
local config = GetRpgMakerGameRandomDialogBoxConfigs(id)
return config.Text or ""
end
function XRpgMakerGameConfigs.GetRpgMakerGameRandomDialogBoxWeight(id)
local config = GetRpgMakerGameRandomDialogBoxConfigs(id)
return config.Weight
end
function XRpgMakerGameConfigs.GetRpgMakerGameRandomDialogBoxDuration(id)
local config = GetRpgMakerGameRandomDialogBoxConfigs(id)
return config.Duration
end
-----------------RpgMakerGameRandomDialogBox 随机提示 end-------------------------
-----------------RpgMakerGameHintDialogBox 点击头像提示 begin-----------------------
local GetRpgMakerGameHintDialogBoxConfigs = function(id)
local config = RpgMakerGameHintDialogBoxConfigs[id]
if not config then
XLog.ErrorTableDataNotFound("XRpgMakerGameConfigs.GetRpgMakerGameHintDialogBoxConfigs", "RpgMakerGameHintDialogBoxConfigs", TABLE_HINT_DIALOG_BOX_PATH, "Id", id)
return
end
return config
end
function XRpgMakerGameConfigs.IsHasRpgMakerGameHintDialogBox(id)
return RpgMakerGameHintDialogBoxConfigs[id] and true or false
end
function XRpgMakerGameConfigs.GetRpgMakerGameHintDialogBoxText(id)
local config = GetRpgMakerGameHintDialogBoxConfigs(id)
return config and config.Text or ""
end
function XRpgMakerGameConfigs.GetRpgMakerGameHintDialogBoxBackCount(id)
local config = GetRpgMakerGameHintDialogBoxConfigs(id)
return config and config.BackCount or 0
end
function XRpgMakerGameConfigs.GetRpgMakerGameHintDialogBoxResetCount(id)
local config = GetRpgMakerGameHintDialogBoxConfigs(id)
return config.ResetCount
end
function XRpgMakerGameConfigs.GetRpgMakerGameHintDialogBoxTotalLoseCount(id)
local config = GetRpgMakerGameHintDialogBoxConfigs(id)
return config.TotalLoseCount
end
-----------------RpgMakerGameHintDialogBox 点击头像提示 end-------------------------
-----------------RpgMakerGameModel 模型相关 begin-----------------------
local GetRpgMakerGameModelConfig = function(key)
local config = RpgMakerGameModelConfigs[key]
if not config then
XLog.ErrorTableDataNotFound("XRpgMakerGameConfigs.RpgMakerGameModelConfig", "RpgMakerGameModelConfigs", TABLE_MODEL_PATH, "Key", key)
return
end
return config
end
function XRpgMakerGameConfigs.GetRpgMakerGameModelPath(key)
local config = GetRpgMakerGameModelConfig(key)
return config.ModelPath or ""
end
function XRpgMakerGameConfigs.GetRpgMakerGameTriggerKey(triggerType, isOpen)
if triggerType == XRpgMakerGameConfigs.XRpgMakerGameTriggerType.Trigger1 then
return XRpgMakerGameConfigs.ModelKeyMaps.TriggerType1
end
if triggerType == XRpgMakerGameConfigs.XRpgMakerGameTriggerType.Trigger2 then
return XRpgMakerGameConfigs.ModelKeyMaps.TriggerType2
end
if triggerType == XRpgMakerGameConfigs.XRpgMakerGameTriggerType.Trigger3 then
return XRpgMakerGameConfigs.ModelKeyMaps.TriggerType3
end
if triggerType == XRpgMakerGameConfigs.XRpgMakerGameTriggerType.TriggerElectricFence then
return isOpen and XRpgMakerGameConfigs.ModelKeyMaps.TriggerElectricFenceOpen or XRpgMakerGameConfigs.ModelKeyMaps.TriggerElectricFenceClose
end
end
function XRpgMakerGameConfigs.GetTransferPointLoopColorKey(colorIndex)
return XRpgMakerGameConfigs.ModelKeyMaps["TransferPointLoopColor" .. colorIndex]
end
function XRpgMakerGameConfigs.GetTransferPointColorKey(colorIndex)
return XRpgMakerGameConfigs.ModelKeyMaps["TransferPointColor" .. colorIndex]
end
function XRpgMakerGameConfigs.GetModelEntityKey(entityType)
if entityType == XRpgMakerGameConfigs.XRpgMakerGameEntityType.Water then
return XRpgMakerGameConfigs.ModelKeyMaps.WaterRipper
elseif entityType == XRpgMakerGameConfigs.XRpgMakerGameEntityType.Ice then
return XRpgMakerGameConfigs.ModelKeyMaps.Freeze
elseif entityType == XRpgMakerGameConfigs.XRpgMakerGameEntityType.Grass then
return XRpgMakerGameConfigs.ModelKeyMaps.Grass
elseif entityType == XRpgMakerGameConfigs.XRpgMakerGameEntityType.Steel then
return XRpgMakerGameConfigs.ModelKeyMaps.Steel
end
end
function XRpgMakerGameConfigs.GetModelSkillEffctKey(skillType)
if skillType == XRpgMakerGameConfigs.XRpgMakerGameRoleSkillType.Crystal then
return XRpgMakerGameConfigs.ModelKeyMaps.CrystalSkillEffect
elseif skillType == XRpgMakerGameConfigs.XRpgMakerGameRoleSkillType.Flame then
return XRpgMakerGameConfigs.ModelKeyMaps.FlameSkillEffect
elseif skillType == XRpgMakerGameConfigs.XRpgMakerGameRoleSkillType.Raiden then
return XRpgMakerGameConfigs.ModelKeyMaps.RaidenSkillEffect
elseif skillType == XRpgMakerGameConfigs.XRpgMakerGameRoleSkillType.Dark then
return XRpgMakerGameConfigs.ModelKeyMaps.DarkSkillEffect
end
end
function XRpgMakerGameConfigs.GetRpgMakerGameModelName(key)
local config = GetRpgMakerGameModelConfig(key)
return config.Name or ""
end
function XRpgMakerGameConfigs.GetRpgMakerGameModelDesc(key)
local config = GetRpgMakerGameModelConfig(key)
return config.Desc or ""
end
function XRpgMakerGameConfigs.GetRpgMakerGameModelIcon(key)
local config = GetRpgMakerGameModelConfig(key)
return config.Icon or ""
end
function XRpgMakerGameConfigs.GetModelSize(key)
local config = GetRpgMakerGameModelConfig(key)
local size = config.Size
local sizeList = string.Split(size, "|")
return {x = tonumber(sizeList[1]) or 0,
y = tonumber(sizeList[2]) or 0,
z = tonumber(sizeList[3] or 0)
}
end
-----------------RpgMakerGameModel 模型相关 end-----------------------
-----------------RpgMakerGameAnimation 动画相关 begin-----------------------
local GetRpgMakerGameAnimationConfig = function(modelName)
local config = RpgMakerGameAnimationConfigs[modelName]
if not config then
XLog.ErrorTableDataNotFound("XRpgMakerGameConfigs.RpgMakerGameAnimationConfig", "RpgMakerGameAnimationConfigs", TABLE_ANIMATION_PATH, "ModelName", modelName)
return
end
return config
end
function XRpgMakerGameConfigs.GetRpgMakerGameStandAnimaName(modelName)
local config = GetRpgMakerGameAnimationConfig(modelName)
return config.StandAnimaName or ""
end
function XRpgMakerGameConfigs.GetRpgMakerGameRunAnimaName(modelName)
local config = GetRpgMakerGameAnimationConfig(modelName)
return config.RunAnimaName or ""
end
function XRpgMakerGameConfigs.GetRpgMakerGameAtkAnimaName(modelName)
local config = GetRpgMakerGameAnimationConfig(modelName)
return config.AtkAnimaName or ""
end
function XRpgMakerGameConfigs.GetRpgMakerGameElectricFenceAnimaName(modelName)
local config = GetRpgMakerGameAnimationConfig(modelName)
return config.ElectricFenceAnimaName or ""
end
function XRpgMakerGameConfigs.GetRpgMakerGameAlarmAnimaName(modelName)
local config = GetRpgMakerGameAnimationConfig(modelName)
return config.AlarmAnimaName or ""
end
function XRpgMakerGameConfigs.GetRpgMakerGameDrownAnimaName(modelName)
local config = GetRpgMakerGameAnimationConfig(modelName)
return config.DrownAnimaName or ""
end
function XRpgMakerGameConfigs.GetRpgMakerGameAdsorbAnimaName(modelName)
local config = GetRpgMakerGameAnimationConfig(modelName)
return config.AdsorbAnimaName or ""
end
function XRpgMakerGameConfigs.GetRpgMakerGameTransferAnimaName(modelName)
local config = GetRpgMakerGameAnimationConfig(modelName)
return config.TransferAnimaName or ""
end
function XRpgMakerGameConfigs.GetRpgMakerGameTransferDisAnimaName(modelName)
local config = GetRpgMakerGameAnimationConfig(modelName)
return config.TransferDisAnimaName or ""
end
function XRpgMakerGameConfigs.GetRpgMakerGameEffectRoot(modelName)
local config = GetRpgMakerGameAnimationConfig(modelName)
return config.EffectRoot or ""
end
function XRpgMakerGameConfigs.GetRpgMakerGameSentrySignYOffset(modelName)
local config = GetRpgMakerGameAnimationConfig(modelName)
local yOffset = config and config.SentrySignYOffset
return yOffset and yOffset / 1000 or 0
end
function XRpgMakerGameConfigs.GetRpgMakerGameXOffSet(modelName)
local config = GetRpgMakerGameAnimationConfig(modelName)
return config.XOffSet or 0
end
function XRpgMakerGameConfigs.GetRpgMakerGameYOffSet(modelName)
local config = GetRpgMakerGameAnimationConfig(modelName)
return config.YOffSet or 0
end
function XRpgMakerGameConfigs.GetRpgMakerGameZOffSet(modelName)
local config = GetRpgMakerGameAnimationConfig(modelName)
return config.ZOffSet or 0
end
function XRpgMakerGameConfigs.GetRpgMakerGameName(modelName)
local config = GetRpgMakerGameAnimationConfig(modelName)
return config.Name or ""
end
function XRpgMakerGameConfigs.GetRpgMakerGameDesc(modelName)
local config = GetRpgMakerGameAnimationConfig(modelName)
return config.Desc or ""
end
function XRpgMakerGameConfigs.GetRpgMakerGameIcon(modelName)
local config = GetRpgMakerGameAnimationConfig(modelName)
return config.Icon or ""
end
-----------------RpgMakerGameAnimation 动画相关 end-----------------------
-----------------RpgMakerGamePlayMainDownHint 玩法主界面下方提示 begin-----------------------
local GetRpgMakerGamePlayMainDownHintConfig = function(id)
local config = RpgMakerGamePlayMainDownHintConfigs[id]
if not config then
XLog.ErrorTableDataNotFound("XRpgMakerGameConfigs.RpgMakerGamePlayMainDownHintConfig", "RpgMakerGamePlayMainDownHintConfigs", TABLE_PLAY_MAIN_DOWN_HINT_PATH, "Id", id)
return
end
return config
end
function XRpgMakerGameConfigs.GetRpgMakerGamePlayMainDownHintConfigMaxCount()
return #RpgMakerGamePlayMainDownHintConfigs
end
function XRpgMakerGameConfigs.GetRpgMakerGamePlayMainDownHintText(id)
local config = GetRpgMakerGamePlayMainDownHintConfig(id)
return config.Text or ""
end
-----------------RpgMakerGamePlayMainDownHint 玩法主界面下方提示 end-----------------------
-----------------RpgMakerGameHintLine 通关提示线路 begin--------------------
local GetRpgMakerGameHintLineConfig = function(mapId)
local config = RpgMakerGameHintLineConfigs[mapId]
if not config then
XLog.ErrorTableDataNotFound("XRpgMakerGameConfigs.RpgMakerGameHintLineConfig", "RpgMakerGameHintLineConfigs", TABLE_HINT_LINE_PATH, "MapId", mapId)
return
end
return config
end
local GetStringSplitTwoNumParam = function(text)
local textList = string.Split(text, "|")
return textList[1] and tonumber(textList[1]) or 0, textList[2] and tonumber(textList[2]) or 0
end
function XRpgMakerGameConfigs.GetHintLineHintTitle(mapId)
local config = GetRpgMakerGameHintLineConfig(mapId)
return config.HintTitle or ""
end
--获得开始绘制线的格子行和列
function XRpgMakerGameConfigs.GetHintLineStartRowAndCol(mapId)
local config = GetRpgMakerGameHintLineConfig(mapId)
local row, line = GetStringSplitTwoNumParam(config.StartRowAndCol)
return row, line
end
function XRpgMakerGameConfigs.GetHintLineStartGridPercent(mapId)
local config = GetRpgMakerGameHintLineConfig(mapId)
local widthPercent, heightPercent = GetStringSplitTwoNumParam(config.StartGridPercent)
return widthPercent, heightPercent
end
--获得格子中从哪一点开始
function XRpgMakerGameConfigs.GetHintLineStartGridPos(mapId, width, height)
local percentWidth, percentHeight = XRpgMakerGameConfigs.GetHintLineStartGridPercent(mapId)
local x = width and width * percentWidth or 0
local y = height and height * percentHeight or 0
return x, y
end
function XRpgMakerGameConfigs.GetHintLineNextRowAndColList(mapId)
local config = GetRpgMakerGameHintLineConfig(mapId)
return config.NextRowAndCol
end
function XRpgMakerGameConfigs.GetHintLineNextRowAndCol(mapId, index)
local row, line = 0, 0
local config = GetRpgMakerGameHintLineConfig(mapId)
local nextRowAndCol = config.NextRowAndCol[index]
if not nextRowAndCol then
return row, line
end
row, line = GetStringSplitTwoNumParam(nextRowAndCol)
return row, line
end
function XRpgMakerGameConfigs.GetHintLineNextGridPercent(mapId, index)
local widthPercent, heightPercent = 0, 0
local config = GetRpgMakerGameHintLineConfig(mapId)
local nextGridPercent = config.NextGridPercent[index]
if not nextGridPercent then
return widthPercent, heightPercent
end
widthPercent, heightPercent = GetStringSplitTwoNumParam(nextGridPercent)
return widthPercent, heightPercent
end
--获得格子中终点位置的宽度和高度百分比
--direction方向
--isEnd是否为绘制一条线的最后一个格子
--endWidthPercent绘制一条线的最后一个格子的宽度百分比
--endHeightPercent绘制一条线的最后一个格子的高度百分比
local GetEndPercent = function(direction, isEnd, endWidthPercent, endHeightPercent)
if isEnd then
return endWidthPercent, endHeightPercent
end
endWidthPercent = (direction == XRpgMakerGameConfigs.RpgMakerGameMoveDirection.MoveLeft and 0) or (direction == XRpgMakerGameConfigs.RpgMakerGameMoveDirection.MoveRight and 1) or endWidthPercent
endHeightPercent = (direction == XRpgMakerGameConfigs.RpgMakerGameMoveDirection.MoveDown and 0) or (direction == XRpgMakerGameConfigs.RpgMakerGameMoveDirection.MoveUp and 1) or endHeightPercent
return endWidthPercent, endHeightPercent
end
--获得格子中起点位置的宽度和高度百分比
--direction方向
--startWidthPercent绘制一条线的第一个格子的宽度百分比
--startHeightPercent绘制一条线的第一个格子的高度百分比
local GetStartPercent = function(direction, startWidthPercent, startHeightPercent)
startWidthPercent = (direction == XRpgMakerGameConfigs.RpgMakerGameMoveDirection.MoveLeft and 1) or (direction == XRpgMakerGameConfigs.RpgMakerGameMoveDirection.MoveRight and 0) or startWidthPercent
startHeightPercent = (direction == XRpgMakerGameConfigs.RpgMakerGameMoveDirection.MoveDown and 1) or (direction == XRpgMakerGameConfigs.RpgMakerGameMoveDirection.MoveUp and 0) or startHeightPercent
return startWidthPercent, startHeightPercent
end
--获得各个格子绘制线的数据
function XRpgMakerGameConfigs.GetHintLineMap(mapId)
local hintLineMap = {}
local mapId = mapId
local lineId = 0
local InsertHintLineMap = function(row, col, widthPercent, heightPercent, direction, isStart, endWidthPercent, endHeightPercent)
lineId = lineId + 1
if not hintLineMap[row] then
hintLineMap[row] = {}
end
if not hintLineMap[row][col] then
hintLineMap[row][col] = {}
end
local param = {
IsStart = isStart, --是否是第一条绘制的线
WidthPercent = widthPercent, --格子宽度百分比,用来计算线在格子中的起始位置
HeightPercent = heightPercent, --格子高度百分比,用来计算线在格子中的起始位置
EndWidthPercent = endWidthPercent, --格子宽度百分比,用来计算线在格子中的终点位置
EndHeightPercent = endHeightPercent, --格子高度百分比,用来计算线在格子中的终点位置
Direction = direction, --箭头方向
Id = lineId,
}
table.insert(hintLineMap[row][col], param)
end
local startRow, startCol = XRpgMakerGameConfigs.GetHintLineStartRowAndCol(mapId)
local startWidthPercent, startHeightPercent = XRpgMakerGameConfigs.GetHintLineStartGridPercent(mapId)
local nextRow, nextCol = XRpgMakerGameConfigs.GetHintLineNextRowAndCol(mapId, 1)
local endWidthPercent, endHeightPercent = XRpgMakerGameConfigs.GetHintLineNextGridPercent(mapId, 1)
local direction = XRpgMakerGameConfigs.GetHintLineDirection(startRow, startCol, nextRow, nextCol, startWidthPercent, startHeightPercent, endWidthPercent, endHeightPercent)
local isSameGrid = startRow == nextRow and startCol == nextCol and (startWidthPercent ~= endWidthPercent or startHeightPercent ~= endHeightPercent) --前后两点是否在同一格子里,且宽高百分比至少有一个不同
local distance = (nextCol ~= startCol and nextRow ~= startRow) and 0 or math.floor(math.sqrt((nextCol - startCol) ^ 2 + (nextRow - startRow) ^ 2)) --前后两点的距离不在一条直线上时为0
if distance ~= 0 or isSameGrid then
endWidthPercent, endHeightPercent = GetEndPercent(direction, distance == 0, endWidthPercent, endHeightPercent)
InsertHintLineMap(startRow, startCol, startWidthPercent, startHeightPercent, direction, true, endWidthPercent, endHeightPercent)
end
local nextRowAndColList = XRpgMakerGameConfigs.GetHintLineNextRowAndColList(mapId)
local isStart
local isEnd
local startWidthPercentTemp
local startHeightPercentTemp
local endWidthPercentTemp
local endHeightPercentTemp
local row
local col
for nextRowAndColIndex in ipairs(nextRowAndColList) do
isStart = nextRowAndColIndex == 1
endWidthPercent, endHeightPercent = XRpgMakerGameConfigs.GetHintLineNextGridPercent(mapId, nextRowAndColIndex)
nextRow, nextCol = XRpgMakerGameConfigs.GetHintLineNextRowAndCol(mapId, nextRowAndColIndex)
direction = XRpgMakerGameConfigs.GetHintLineDirection(startRow, startCol, nextRow, nextCol, startWidthPercent, startHeightPercent, endWidthPercent, endHeightPercent)
distance = (nextCol ~= startCol and nextRow ~= startRow) and 0 or math.floor(math.sqrt((nextCol - startCol) ^ 2 + (nextRow - startRow) ^ 2))
isEnd = distance == 0
isSameGrid = startRow == nextRow and startCol == nextCol and (startWidthPercent ~= endWidthPercent or startHeightPercent ~= endHeightPercent)
if (not isStart) and (distance ~= 0 or isSameGrid) then
endWidthPercentTemp, endHeightPercentTemp = GetEndPercent(direction, isEnd, endWidthPercent, endHeightPercent)
InsertHintLineMap(startRow, startCol, startWidthPercent, startHeightPercent, direction, false, endWidthPercentTemp, endHeightPercentTemp)
end
for i = 1, distance do
isEnd = i == distance
startWidthPercentTemp, startHeightPercentTemp = GetStartPercent(direction, startWidthPercent, startHeightPercent)
endWidthPercentTemp, endHeightPercentTemp = GetEndPercent(direction, isEnd, endWidthPercent, endHeightPercent)
if isEnd then
InsertHintLineMap(nextRow, nextCol, startWidthPercentTemp, startHeightPercentTemp, direction, isStart, endWidthPercentTemp, endHeightPercentTemp)
else
row = (startRow - nextRow == 0 and startRow) or (startRow > nextRow and startRow - i or startRow + i)
col = (startCol - nextCol == 0 and startCol) or (startCol > nextCol and startCol - i or startCol + i)
InsertHintLineMap(row, col, startWidthPercentTemp, startHeightPercentTemp, direction, isStart, endWidthPercentTemp, endHeightPercentTemp)
end
end
startRow, startCol = nextRow, nextCol
startWidthPercent, startHeightPercent = XRpgMakerGameConfigs.GetHintLineNextGridPercent(mapId, nextRowAndColIndex)
end
return hintLineMap, lineId
end
--获得一条线的方向
--startRow, startCol起点的行数和列数
--endRow, endCol终点的行数和列数
--startWidthPercent, startHeightPercent起点在格子中的宽度百分比和高度百分比
--endWidthPercent, endHeightPercent终点在格子中的宽度百分比和高度百分比
function XRpgMakerGameConfigs.GetHintLineDirection(startRow, startCol, endRow, endCol, startWidthPercent, startHeightPercent, endWidthPercent, endHeightPercent)
local horizontalDistance = startRow - endRow --垂直方向距离
local verticalDistance = startCol - endCol --水平方向距离
local widthPercentDistance = (startWidthPercent and endWidthPercent) and startWidthPercent - endWidthPercent or 0
local heightPercentDistance = (startHeightPercent and endHeightPercent) and startHeightPercent - endHeightPercent or 0
if horizontalDistance ~= 0 and verticalDistance ~= 0 then
return
end
if horizontalDistance ~= 0 then
return horizontalDistance > 0 and XRpgMakerGameConfigs.RpgMakerGameMoveDirection.MoveDown or XRpgMakerGameConfigs.RpgMakerGameMoveDirection.MoveUp
end
if verticalDistance ~= 0 then
return verticalDistance > 0 and XRpgMakerGameConfigs.RpgMakerGameMoveDirection.MoveLeft or XRpgMakerGameConfigs.RpgMakerGameMoveDirection.MoveRight
end
if widthPercentDistance ~= 0 then
return widthPercentDistance > 0 and XRpgMakerGameConfigs.RpgMakerGameMoveDirection.MoveLeft or XRpgMakerGameConfigs.RpgMakerGameMoveDirection.MoveRight
end
if heightPercentDistance ~= 0 then
return heightPercentDistance > 0 and XRpgMakerGameConfigs.RpgMakerGameMoveDirection.MoveDown or XRpgMakerGameConfigs.RpgMakerGameMoveDirection.MoveUp
end
end
-----------------RpgMakerGameHintLine 通关提示线路 end----------------------
-----------------RpgMakerGameShadow 影子 begin--------------------
local GetRpgMakerGameShadowConfig = function(id)
local config = RpgMakerGameShadowConfigs[id]
if not config then
XLog.ErrorTableDataNotFound("XRpgMakerGameConfigs.RpgMakerGameHintLineConfig", "RpgMakerGameShadowConfigs", TABLE_SHADOW_PATH, "Id", id)
return
end
return config
end
function XRpgMakerGameConfigs.GetRpgMakerGameMapIdToShadowIdList(mapId)
return RpgMakerGameMapIdToShadowIdList[mapId] or {}
end
function XRpgMakerGameConfigs.GetRpgMakerGameShadowX(id)
local config = GetRpgMakerGameShadowConfig(id)
return config.X
end
function XRpgMakerGameConfigs.GetRpgMakerGameShadowY(id)
local config = GetRpgMakerGameShadowConfig(id)
return config.Y
end
function XRpgMakerGameConfigs.GetRpgMakerGameShadowDirection(id)
local config = GetRpgMakerGameShadowConfig(id)
return config.Direction
end
function XRpgMakerGameConfigs.GetRpgMakerGameShadowId(mapId, x, y)
local shadowIdList = XRpgMakerGameConfigs.GetRpgMakerGameMapIdToShadowIdList(mapId)
local shadowX
local shadowY
for _, shadowId in ipairs(shadowIdList) do
shadowX = XRpgMakerGameConfigs.GetRpgMakerGameShadowX(shadowId)
shadowY = XRpgMakerGameConfigs.GetRpgMakerGameShadowY(shadowId)
if shadowX == x and shadowY == y then
return shadowId
end
end
end
-----------------RpgMakerGameShadow 影子 end----------------------
-----------------RpgMakerGameTrap 陷阱 begin--------------------
local GetRpgMakerGameTrapConfig = function(id)
local config = RpgMakerGameTrapConfigs[id]
if not config then
XLog.ErrorTableDataNotFound("XRpgMakerGameConfigs.RpgMakerGameHintLineConfig", "RpgMakerGameTrapConfigs", TABLE_TRAP_PATH, "Id", id)
return
end
return config
end
function XRpgMakerGameConfigs.GetRpgMakerGameMapIdToTrapIdList(mapId)
return RpgMakerGameMapIdToTrapIdList[mapId] or {}
end
function XRpgMakerGameConfigs.GetRpgMakerGameTrapX(id)
local config = GetRpgMakerGameTrapConfig(id)
return config.X
end
function XRpgMakerGameConfigs.GetRpgMakerGameTrapY(id)
local config = GetRpgMakerGameTrapConfig(id)
return config.Y
end
function XRpgMakerGameConfigs.GetRpgMakerGameTrapId(mapId, x, y)
local trapIdList = XRpgMakerGameConfigs.GetRpgMakerGameMapIdToTrapIdList(mapId)
local trapX
local trapY
for _, trapId in ipairs(trapIdList) do
trapX = XRpgMakerGameConfigs.GetRpgMakerGameTrapX(trapId)
trapY = XRpgMakerGameConfigs.GetRpgMakerGameTrapY(trapId)
if trapX == x and trapY == y then
return trapId
end
end
end
-----------------RpgMakerGameTrap 陷阱 end----------------------
-----------------RpgMakerGameElectricFence 电网 begin--------------------
local GetRpgMakerGameElectricFenceConfig = function(id)
local config = RpgMakerGameElectricFenceConfigs[id]
if not config then
XLog.ErrorTableDataNotFound("XRpgMakerGameConfigs.RpgMakerGameElectricFenceConfig", "RpgMakerGameElectricFenceConfigs", TABLE_ELECTRIC_FENCE_PATH, "Id", id)
return
end
return config
end
function XRpgMakerGameConfigs.GetRpgMakerGameMapIdToElectricFenceIdList(mapId)
return RpgMakerGameMapIdToElectricFenceIdList[mapId] or {}
end
function XRpgMakerGameConfigs.GetRpgMakerGameElectricFenceX(id)
local config = GetRpgMakerGameElectricFenceConfig(id)
return config.X
end
function XRpgMakerGameConfigs.GetRpgMakerGameElectricFenceY(id)
local config = GetRpgMakerGameElectricFenceConfig(id)
return config.Y
end
function XRpgMakerGameConfigs.GetRpgMakerGameElectricDirection(id)
local config = GetRpgMakerGameElectricFenceConfig(id)
return config.Direction
end
function XRpgMakerGameConfigs.GetRpgMakerGameSameXYElectricFenceIdList(mapId, x, y)
local electricFenceIdList = XRpgMakerGameConfigs.GetRpgMakerGameMapIdToElectricFenceIdList(mapId)
local gapX
local gapY
local sameXYElectricFenceIdList = {}
for _, gapId in ipairs(electricFenceIdList) do
gapX = XRpgMakerGameConfigs.GetRpgMakerGameElectricFenceX(gapId)
gapY = XRpgMakerGameConfigs.GetRpgMakerGameElectricFenceY(gapId)
if gapX == x and gapY == y then
tableInsert(sameXYElectricFenceIdList, gapId)
end
end
return sameXYElectricFenceIdList
end
-----------------RpgMakerGameElectricFence 电网 end----------------------
-----------------RpgMakerGameDeathTitle 不同类型的死亡弹窗标题 begin--------------------
local GetRpgMakerGameDeathTitleConfig = function(type)
local config = RpgMakerGameDeathTitleConfigs[type]
if not config then
XLog.ErrorTableDataNotFound("XRpgMakerGameConfigs.RpgMakerGameDeathTitleConfig", "RpgMakerGameDeathTitleConfigs", TABLE_DEATH_TITAL_PATH, "Type", type)
return
end
return config
end
function XRpgMakerGameConfigs.GetRpgMakerGameDeathTitle(type)
local config = GetRpgMakerGameDeathTitleConfig(type)
return config and config.Name or ""
end
-----------------RpgMakerGameDeathTitle 不同类型的死亡弹窗标题 end----------------------
-----------------RpgMakerGameChapterGroup 第X期章节组 begin-----------------
local GetRpgMakerGameChapterGroupConfig = function(id)
local config = RpgMakerGameChapterGroupConfigs[id]
if not config then
XLog.ErrorTableDataNotFound("XRpgMakerGameConfigs.RpgMakerGameChapterGroupConfig", "RpgMakerGameChapterGroupConfigs", TABLE_CHAPTER_GROUP_PATH, "Id", id)
return
end
return config
end
function XRpgMakerGameConfigs.GetRpgMakerGameChapterGroupIdList()
InitChapterGroup()
return RpgMakerGameChapterGroupIdList
end
function XRpgMakerGameConfigs.GetRpgMakerGameChapterIdList(groupId)
InitChapterGroup()
return RpgMakerGameChapterGroupToChapterIdList[groupId] or {}
end
function XRpgMakerGameConfigs.GetDefaultChapterGroupId()
InitChapterGroup()
return _DefaultChapterGroupId
end
function XRpgMakerGameConfigs.GetChapterGroupName(id)
local config = GetRpgMakerGameChapterGroupConfig(id)
return config.Name
end
function XRpgMakerGameConfigs.GetChapterGroupOpenTimeId(id)
local config = GetRpgMakerGameChapterGroupConfig(id)
return config.OpenTimeId
end
function XRpgMakerGameConfigs.GetChapterGroupActivityIcon(id)
local config = GetRpgMakerGameChapterGroupConfig(id)
return config.ActivityIcon
end
function XRpgMakerGameConfigs.GetChapterGroupBg(id)
local config = GetRpgMakerGameChapterGroupConfig(id)
return config.Bg
end
function XRpgMakerGameConfigs.GetChapterGroupIsShowTask(id)
local config = GetRpgMakerGameChapterGroupConfig(id)
return config.IsShowTask
end
function XRpgMakerGameConfigs.GetChapterGroupIsFirstShow(id)
local config = GetRpgMakerGameChapterGroupConfig(id)
return config.IsFirstShow
end
function XRpgMakerGameConfigs.GetChapterGroupTitlePrefab(id)
local config = GetRpgMakerGameChapterGroupConfig(id)
return config.TitlePrefab
end
function XRpgMakerGameConfigs.GetChapterGroupGroundPrefab(id)
local config = GetRpgMakerGameChapterGroupConfig(id)
return config.GroundPrefab
end
function XRpgMakerGameConfigs.GetChapterGroupBlockPrefab(id)
local config = GetRpgMakerGameChapterGroupConfig(id)
return config.BlockPrefab
end
function XRpgMakerGameConfigs.GetChapterGroupHelpKey(id)
local config = GetRpgMakerGameChapterGroupConfig(id)
return config.HelpKey
end
-----------------RpgMakerGameChapterGroup 第X期章节组 end-------------------
-----------------RpgMakerGameEntity begin-----------------
local GetRpgMakerGameEntityConfig = function(id)
local config = RpgMakerGameEntityConfigs[id]
if not config then
XLog.ErrorTableDataNotFound("XRpgMakerGameConfigs.RpgMakerGameEntityConfig", "RpgMakerGameEntityConfigs", TABLE_ENTITY_PATH, "Id", id)
return
end
return config
end
function XRpgMakerGameConfigs.GetEntityTypeListByDic(mapId, x, y)
InitMapIdToEntityIdList()
return EntityTypeDic[mapId] and EntityTypeDic[mapId][x] and EntityTypeDic[mapId][x][y]
end
function XRpgMakerGameConfigs.GetMapIdToEntityIdList(mapId)
InitMapIdToEntityIdList()
return MapIdToEntityIdList[mapId] or {}
end
function XRpgMakerGameConfigs.GetEntityIdListByDic(mapId, x, y)
InitMapIdToEntityIdList()
return (EntityIdDic[mapId] and EntityIdDic[mapId][x] and EntityIdDic[mapId][x][y]) or {}
end
function XRpgMakerGameConfigs.IsSameEntity(mapId, x, y, type)
local entityTypeList = XRpgMakerGameConfigs.GetEntityTypeListByDic(mapId, x, y)
if XTool.IsTableEmpty(entityTypeList) then
return false
end
for _, entityType in ipairs(entityTypeList) do
if entityType == type then
return true
end
end
return false
end
function XRpgMakerGameConfigs.GetEntityMapId(id)
local config = GetRpgMakerGameEntityConfig(id)
return config.MapId
end
function XRpgMakerGameConfigs.GetEntityType(id)
local config = GetRpgMakerGameEntityConfig(id)
return config.Type
end
function XRpgMakerGameConfigs.GetEntityX(id)
local config = GetRpgMakerGameEntityConfig(id)
return config.X
end
function XRpgMakerGameConfigs.GetEntityY(id)
local config = GetRpgMakerGameEntityConfig(id)
return config.Y
end
function XRpgMakerGameConfigs.GetEntityBrokenType(id)
local config = GetRpgMakerGameEntityConfig(id)
return config.BrokenType
end
function XRpgMakerGameConfigs.GetRpgMakerGameEntityTypeListByXY(mapId, x, y)
local entityIdList = XRpgMakerGameConfigs.GetMapIdToEntityIdList(mapId)
local idList = {}
local entityX
local entityY
for _, entityId in ipairs(entityIdList) do
entityX = XRpgMakerGameConfigs.GetEntityX(entityId)
entityY = XRpgMakerGameConfigs.GetEntityY(entityId)
if entityX == x and entityY == y then
tableInsert(idList, XRpgMakerGameConfigs.GetEntityType(entityId))
tableSort(idList)
end
end
return idList or {}
end
function XRpgMakerGameConfigs.IsRpgMakerGameHaveEntity(mapId)
-- 地图实体1 水面、2 冰面、3 草圃、4 钢板
local isHaveEntity1, isHaveEntity2, isHaveEntity3, isHaveEntity4
local entityIdList = XRpgMakerGameConfigs.GetMapIdToEntityIdList(mapId)
local typeCfg
for _, entityId in ipairs(entityIdList) do
typeCfg = XRpgMakerGameConfigs.GetEntityType(entityId)
if typeCfg == XRpgMakerGameConfigs.XRpgMakerGameEntityType.Water then
isHaveEntity1 = true
elseif typeCfg == XRpgMakerGameConfigs.XRpgMakerGameEntityType.Ice then
isHaveEntity2 = true
elseif typeCfg == XRpgMakerGameConfigs.XRpgMakerGameEntityType.Grass then
isHaveEntity3 = true
elseif typeCfg == XRpgMakerGameConfigs.XRpgMakerGameEntityType.Steel then
isHaveEntity4 = true
end
if isHaveEntity1 and isHaveEntity2 and isHaveEntity3 and isHaveEntity4 then
break
end
end
return isHaveEntity1, isHaveEntity2, isHaveEntity3, isHaveEntity4
end
-----------------RpgMakerGameEntity end-------------------
-----------------RpgMakerGameTransferPoint 传送点 begin-----------------
local GetRpgMakerGameTransferPointConfig = function(id)
local config = RpgMakerGameTransferPointConfigs[id]
if not config then
XLog.ErrorTableDataNotFound("XRpgMakerGameConfigs.RpgMakerGameTransferPointConfig", "RpgMakerGameTransferPointConfigs", TABLE_TRANSFER_POINT_PATH, "Id", id)
return
end
return config
end
function XRpgMakerGameConfigs.GetMapIdToTransferPointIdList(mapId)
InitMapIdToTransferPointIdList()
return MapIdToTransferPointIdList[mapId] or {}
end
function XRpgMakerGameConfigs.GetTransferPointMapId(id)
local config = GetRpgMakerGameTransferPointConfig(id)
return config.MapId
end
function XRpgMakerGameConfigs.GetTransferPointX(id)
local config = GetRpgMakerGameTransferPointConfig(id)
return config.X
end
function XRpgMakerGameConfigs.GetTransferPointY(id)
local config = GetRpgMakerGameTransferPointConfig(id)
return config.Y
end
function XRpgMakerGameConfigs.GetTransferPointColor(id)
local config = GetRpgMakerGameTransferPointConfig(id)
return config.Color
end
function XRpgMakerGameConfigs.GetRpgMakerGameTransferPointId(mapId, x, y)
local transferPointIdList = XRpgMakerGameConfigs.GetMapIdToTransferPointIdList(mapId)
local transferPointX
local transferPointY
for _, transferPointId in ipairs(transferPointIdList) do
transferPointX = XRpgMakerGameConfigs.GetTransferPointX(transferPointId)
transferPointY = XRpgMakerGameConfigs.GetTransferPointY(transferPointId)
if transferPointX == x and transferPointY == y then
return transferPointId
end
end
end
function XRpgMakerGameConfigs.IsRpgMakerGameHaveTransferPoint(mapId)
-- 地图实体1 水面、2 冰面、3 草圃、4 钢板
local isHaveTransferPoint1, isHaveTransferPoint2, isHaveTransferPoint3
local entityIdList = XRpgMakerGameConfigs.GetMapIdToTransferPointIdList(mapId)
local colorCfg
for _, transferId in ipairs(entityIdList) do
colorCfg = XRpgMakerGameConfigs.GetTransferPointColor(transferId)
if colorCfg == XRpgMakerGameConfigs.XRpgMakerTransferPointColor.Green then
isHaveTransferPoint1 = true
elseif colorCfg == XRpgMakerGameConfigs.XRpgMakerTransferPointColor.Yellow then
isHaveTransferPoint2 = true
elseif colorCfg == XRpgMakerGameConfigs.XRpgMakerTransferPointColor.Purple then
isHaveTransferPoint3 = true
end
if isHaveTransferPoint1 and isHaveTransferPoint2 and isHaveTransferPoint3 then
break
end
end
return isHaveTransferPoint1, isHaveTransferPoint2, isHaveTransferPoint3
end
-----------------RpgMakerGameTransferPoint 传送点 end-------------------