整理了下整合版的NPC序号及对应功能,整理这个是为了方便从控制台ctrl+F1修改NPC用的
1、有些加成实在是太少了,如果可以修改成百分比加成就很好,看了下代码,发觉改具体数字我还行,要是改成百分比加成,比如武器/魔法/护具技能有些随从是加2,我想改成10%,好像蛮复杂的样子。
因为在文件里,加成是这样的[const.Skills.Staff]= {[15] = 2, [16] = 3, [46] = 2}, 15是NPC编号
而具体函数应该是:
---- Skill bonuses ----
-- SkillID = {ProfID = Bonus}
local SkillBonuses
local function CountSkillBonus(skill)
local Bonus = SkillBonuses[skill]
local res = 0
if Bonus then
for k,v in pairs(vars.NPCFollowers) do
local Amount = Bonus[Game.NPC[v].Profession]
if Amount then
res = res + Amount
end
end
end
NPCBonuses.Skills[skill] = res
return res
end
如果要改,好像还得先用下local Skill, Mastery = SplitSkill(Player:GetSkill(const.Skills.Meditation))一下,然后再加进去?我这从冥想术修改那里 看到的,但是我不太了解lua文件,不知道这些函数是不是通用,同时也不知道SplitSkill()咋用,有没有直接获取等级的函数等等等等,头大,所以算了。
2、有些技能我还不知道作用是啥,比如烟囱清扫者那些的运气值+XX,看属性是没有增加的,难道是增加有关于抗性判定的那个运气值?是这个嘛?:“每次“掷骰子”都有1-(30/(30+抗性+幸运修正值))的概率减少一定的伤害。”
3、控制台修改方法我也是从一个大佬帖子那里复制来的。具体先打开控制台,建立两个函数(ctrl+回车确认)
local function getNpcID(i)
for k,v in pairs(vars.NPCFollowers) do
if (k == i) then
return v
end
end
print("not found!")
return 0
end
function getNpcType(i)
local id = getNpcID(i)
if (id > 0) then
print("NPC ID:", id)
print(" type:", Game.NPC[id].Profession)
end
end
随后再用setNpcType(A, B)来改变随从的职业,A为从游戏里上往下的顺序,B为表格序号
下面就是表格:
![](http://tiebapic.baidu.com/forum/w%3D580/sign=c112d6d79ecec3fd8b3ea77de688d4b6/7acfd72a2834349b7b3b459e94ea15ce37d3beca.jpg?tbpicau=2024-09-22-05_2a02e8b62c0b4b066bb07bc32a5f9d06)
![](http://tiebapic.baidu.com/forum/w%3D580/sign=09242f3fe444ad342ebf878fe0a30c08/a40fa864034f78f06f3117213c310a55b2191c08.jpg?tbpicau=2024-09-22-05_956509294b1f80852b255f13a7ba9871)
1、有些加成实在是太少了,如果可以修改成百分比加成就很好,看了下代码,发觉改具体数字我还行,要是改成百分比加成,比如武器/魔法/护具技能有些随从是加2,我想改成10%,好像蛮复杂的样子。
因为在文件里,加成是这样的[const.Skills.Staff]= {[15] = 2, [16] = 3, [46] = 2}, 15是NPC编号
而具体函数应该是:
---- Skill bonuses ----
-- SkillID = {ProfID = Bonus}
local SkillBonuses
local function CountSkillBonus(skill)
local Bonus = SkillBonuses[skill]
local res = 0
if Bonus then
for k,v in pairs(vars.NPCFollowers) do
local Amount = Bonus[Game.NPC[v].Profession]
if Amount then
res = res + Amount
end
end
end
NPCBonuses.Skills[skill] = res
return res
end
如果要改,好像还得先用下local Skill, Mastery = SplitSkill(Player:GetSkill(const.Skills.Meditation))一下,然后再加进去?我这从冥想术修改那里 看到的,但是我不太了解lua文件,不知道这些函数是不是通用,同时也不知道SplitSkill()咋用,有没有直接获取等级的函数等等等等,头大,所以算了。
2、有些技能我还不知道作用是啥,比如烟囱清扫者那些的运气值+XX,看属性是没有增加的,难道是增加有关于抗性判定的那个运气值?是这个嘛?:“每次“掷骰子”都有1-(30/(30+抗性+幸运修正值))的概率减少一定的伤害。”
3、控制台修改方法我也是从一个大佬帖子那里复制来的。具体先打开控制台,建立两个函数(ctrl+回车确认)
local function getNpcID(i)
for k,v in pairs(vars.NPCFollowers) do
if (k == i) then
return v
end
end
print("not found!")
return 0
end
function getNpcType(i)
local id = getNpcID(i)
if (id > 0) then
print("NPC ID:", id)
print(" type:", Game.NPC[id].Profession)
end
end
随后再用setNpcType(A, B)来改变随从的职业,A为从游戏里上往下的顺序,B为表格序号
下面就是表格:
![](http://tiebapic.baidu.com/forum/w%3D580/sign=c112d6d79ecec3fd8b3ea77de688d4b6/7acfd72a2834349b7b3b459e94ea15ce37d3beca.jpg?tbpicau=2024-09-22-05_2a02e8b62c0b4b066bb07bc32a5f9d06)
![](http://tiebapic.baidu.com/forum/w%3D580/sign=09242f3fe444ad342ebf878fe0a30c08/a40fa864034f78f06f3117213c310a55b2191c08.jpg?tbpicau=2024-09-22-05_956509294b1f80852b255f13a7ba9871)