首页 游戏攻略 正文

《战神的挑战2》LUA脚本修改心得

一、首先说一个最令我高兴的发现,搜刮宝箱小游戏

Puzzle Quest 2AssetsScriptsPuzzlesPuzzleConfiguration.lua,这个脚本是小游戏全局设置 PuzzleConfiguration.HOARD =

{

        GEM_DISTRIBUTION = {

                Gold5 = 60,

                Gold50 = 48,

                Gold500 = 36,

                Chest1 = 3,

                Chest5 = 1,

        },

注意这个GEM_DISTRIBUTION,程序员的命名习惯相当好啊,百度一下就知道,这个是指小游戏中随机出现的宝石种类和几率,

Gold5从命名上就知道是价值为5的金币,Chest1是普通宝箱,Chest5是稀有宝箱,也就是说,开宝箱的小游戏中,5元的金币最多,其次是50、500的金币,随机出现的箱子是最少的。由于不知道程序的具体设计,所以,最好是互换这几组数字,而不是随心所欲的改动,以防游戏出错

Gold5=1,

Gold50=3,

Gold500=36,

Chest1=48,

Chest5=60,

改完后保存,重新启动游戏,再次开宝箱时,你会发现,哇塞,满屏幕的金箱子啊~~~

二、法师的WildMana技能

在指定的位置处创建一个+3的通配符,有这个技能,无限连、收集魔法,就容易多了,仅仅+3你会不会嫌少呢,要是+7该多好啊

Puzzle Quest 2AssetsScriptsSpellsWildMana.lua WildMana.cost = {

        green = 1,

        blue = 1,

这一段大家都知道了,耗蓝量修改,不多说了 local TRANSFORM_MAP = {

        Wildcard2 = "Wildcard4",

        Wildcard3 = "Wildcard5",

        Wildcard4 = "Wildcard6",

        Wildcard5 = "Wildcard7",

        Wildcard6 = "Wildcard7",

        Wildcard7 = "Wildcard7",

}

……

function WildMana:Apply(params)

        local gemtype = params.grid[params.targetX][params.targetY].name

       

        params.notify:PushAttribute("gemx", params.targetX)

        params.notify:PushAttribute("gemy", params.targetY)

        return function ()

                Spell:Pause(Spell.SPELL_INTRO_PAUSE)

                Spell:TransformGem(params, params.targetX, params.targetY, TRANSFORM_MAP[gemtype] or "Wildcard3")

                Spell:Pause(Spell.SPELL_MIN_DURATION)

                Spell:Pause(Spell.SPELL_OUTRO_PAUSE)

        end

end

关键是这一段,什么意思呢,就是在一个通配符上释放该魔法时,如果是+2通配符,就会变成+4,+3变+5,以此类推,那么,只要把以上“”中的都改成Wildcard7就行了

如:Wildcard2="Wildcard7"

别急,还没完,还有更重要的一步要改,刚才只改了在通配符上放魔法都会变+7,还要改在普通宝石上放魔法也变+7

留意代码中的WildMana函数 Spell:TransformGem(params, params.targetX, params.targetY, TRANSFORM_MAP[gemtype] or "Wildcard3")

这句是说,释放该魔法时,利用刚刚改的那个数组改变宝石(也就是通配符+2,最高+7),或者,对于普通宝石,改成+3通配符,把"Wildcard3"改成"Wildcard7",这样你用Wildmana(通配魔法)时,就会变一个+7的通配符出来了

注意,最高只能+7,如果你改成"Wildcard9",那么用该魔法时就会创建一个看不见消不掉的BUG石头出来了

什么,你说这魔法只能法师用,其他职业只能干瞪眼,没关系,小改一下,让每个职业都能高速收集魔法吧

Puzzle Quest 2AssetsScriptsHero 目录下有 Assassin.lua(刺客)、Barbarian.lua(野蛮人)、Inquisitor.lua(骑士)、WarMage.lua(巫师)四个文件定义四个职业的初始属性和能学到的技能 level_bonuses =

        {

                { }, -- Level 1

                { spell      = "SwiftStrike"},                -- Level 2

                { spell      = "Confuse"},                        -- Level 3

                { spell      = "Stealth"},                        -- Level 4

                { spell      = "StoneStrike" },                -- Level 5

                { spell      = "SeekShadows"},

                { spell      = "Disarm"},

                { spell      = "PressurePoints"},

……

……

{ upgrade        = true},

                { spell      = "DualShot" },                -- Level 40

                { },

                { },

                { },

                { upgrade        = true},

                { },                                                                -- Level 45

                { },

                { },

看有很多个{}里是空的把,照着脚本的格式在空的{}里加上想要的技能就可以了,PS:  -- Level 45 这是脚本注释,程序会忽略以 -- 开头直到行末的内容

如{ spell = "WildMana" },这样在角色达到{}所代表的等级时学到WildMana技能了 PS: 第一个{}代表第1级,以此类推 -- Level ×× 的注释正是说明了该技能多少级可以学到

三、野蛮人的Skull Crusher技能

利用盘中的骷髅让对方无法行动,爽吧,但没5个骷髅才停一次,郁闷吧

Puzzle Quest 2AssetsScriptsSpellsSkullCrusher.lua function SkullCrusher:Apply(params)

       

        local numSkulls = params.grid:CountByName("Skull") + params.grid:CountByName("Skull5")

        local numTurns = 1 + math.floor(numSkulls/5)

       

        return function ()

                -- Destroy Skulls

                Spell:Pause(Spell.SPELL_INTRO_PAUSE)

                Spell:ExplodeGemByName(params, "Skull", false, Spell.SPELL_TRANSFORM_PAUSE)

                Spell:ExplodeGemByName(params, "Skull5", false, Spell.SPELL_TRANSFORM_PAUSE)

                -- Stun Enemy

                Spell:ApplyStatusEffectTo(params.target, params, self, "Stun", 2*numTurns)

                Spell:Pause(Spell.SPELL_MIN_DURATION)

                Spell:Pause(Spell.SPELL_OUTRO_PAUSE)

        end

end

看看这个函数,local numSkulls = params.grid:CountByName("Skull") + params.grid:CountByName("Skull5")

这个变量获取盘中骷髅的数目,Skull是普通骷髅,Skull5是+5骷髅,一视同仁,其实你可以改成

local numSkulls = params.grid:CountByName("Skull") + params.grid:CountByName("Skull5")*5,

这样+5的骷髅会算5个而不是一个

local numTurns = 1 + math.floor(numSkulls/5)

这个变量获取敌方停止的次数,关键位置啊,表示至少停一回合,外加骷髅数/5(忽略小数)个回合,啊,直接把/5删掉吧,一个骷髅停他一回合(觉得BT了可以改成

local numTurns = 1 + math.floor(numSkulls/3)什么的)

相关信息

崛起3:泰坦之王 关于肉搏药水配方在哪地点的解答
崛起3:泰坦之王 克雷默箱子的地点 克雷默箱子在哪
地牢学院 存档位置 地牢学院存档位置在哪
真三国无双7 with 猛将传 张春华暴力MOD及视频演示
真三国无双7 with 猛将传 吕布暴力MOD及视频演示
真三国无双7 with 猛将传 黄月英乱舞玩法详解及视频
真三国无双7 with 猛将传 DLC关卡出现武将条件一览
真三国无双7 with 猛将传 夏侯霸千里行IF失败条件
真三国无双7 with 猛将传 天临方天戟的获得方法
地牢学院 系统界面全解析 游戏界面是什么意思
地牢学院 按键操作方法指南 地牢学院怎么操作
地牢学院 初期弓箭手转死灵玩法心得 弓箭手怎么玩
地牢学院 无法进游戏的解决方法 不能进行游戏怎么办
地牢学院 还原英文版的方法 怎么改回英文版
地牢学院 图文教程攻略 游戏系统全解析
丧尸围城3 视频攻略解说 中文剧情噩梦难度S结局
萌萌小人大乱斗 基情联机解说视频 尝试多种体位
游戏开发者 真实游戏工作室主机平台补丁MOD
LOL中单远古巫灵泽拉斯,低端局的砍瓜切菜
真三国无双7 with 猛将传 黄月英赛车手紧身装MOD