--武器 local totalWeights = {} local qcfgs = DATA.GetData("WeaponQuality") for i, v in ipairs(qcfgs) do tableinsert(totalWeights, v.DropWeight + (i > 1 and totalWeights[i - 1] or 0)) end for splv, spcfg in pairs(DATA.GetData("SpoilLevel")) do local dropWeapons = {} for id, v in pairs(DATA.GetData("Weapon")) do if v.Avaliable > 0 and v.Quality <= spcfg.WeaponMaxQuality then local weapons = dropWeapons[v.Quality] if not weapons then local qcfg = DATA.Get("WeaponQuality", v.Quality) if qcfg then weapons = { totalWeight = totalWeights[v.Quality], weight = qcfg.DropWeight, list = {} } dropWeapons[v.Quality] = weapons end end if weapons then table.insert(weapons.list, v) end end end for quality = 1, spcfg.WeaponMaxQuality do --保证所有品质都有 local weapons = dropWeapons[quality] if not weapons then local qcfg = DATA.Get("WeaponQuality", quality) if qcfg then weapons = { totalWeight = totalWeights[quality], weight = qcfg.DropWeight, list = {} } dropWeapons[quality] = weapons end end end gWeaponDrops[splv] = dropWeapons end 解释这段代码每行的意思
时间: 2024-02-10 09:33:15 浏览: 151
这段代码是一个Lua脚本,主要是用于游戏中武器掉落的计算。
1. `local totalWeights = {}`:声明一个空表,用于存储武器掉落总权重。
2. `local qcfgs = DATA.GetData("WeaponQuality")`:从游戏数据中获取武器品质的配置。
3. `for i, v in ipairs(qcfgs) do`:遍历武器品质配置表格。
4. `table.insert(totalWeights, v.DropWeight + (i > 1 and totalWeights[i - 1] or 0))`:计算当前武器品质的总权重,并将其添加到总权重表中。
5. `for splv, spcfg in pairs(DATA.GetData("SpoilLevel")) do`:遍历游戏中的掉落等级配置。
6. `local dropWeapons = {}`:声明一个空表,用于存储当前掉落等级下各品质武器的掉落情况。
7. `for id, v in pairs(DATA.GetData("Weapon")) do`:遍历游戏中的武器配置表格。
8. `if v.Avaliable > 0 and v.Quality <= spcfg.WeaponMaxQuality then`:判断当前武器是否可用且品质不大于当前掉落等级的最高可掉落品质。
9. `local weapons = dropWeapons[v.Quality]`:获取当前武器品质的掉落数组。
10. `if not weapons then`:如果当前品质的掉落数组不存在,则创建一个新的掉落数组。
11. `if weapons then`:如果当前品质的掉落数组存在,则将当前武器添加到该数组中。
12. `for quality = 1, spcfg.WeaponMaxQuality do`:遍历当前掉落等级下所有可掉落品质的武器。
13. `local weapons = dropWeapons[quality]`:获取当前品质的掉落数组。
14. `if not weapons then`:如果当前品质的掉落数组不存在,则创建一个新的掉落数组。
15. `gWeaponDrops[splv] = dropWeapons`:将当前掉落等级下所有品质的武器掉落情况保存到全局变量中。
阅读全文