首页 游戏攻略 正文

《战神的挑战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)什么的)

相关信息

和平精英多排怎么吃鸡 多人阵容必备吃鸡教程
和平精英怎么扔手雷 掌握扔雷的正确姿势
和平精英什么载具最好 教你选载具
这是个猥琐的战场 大神分享“苟”的心法
和平精英新手武器推荐 一样百发百中
和平精英地图架构介绍 快速了解地图
和平精英怎么操作 新手操作必看技巧
新手必备 和平精英入门游戏机制一览
菜鸡必备——和平精英跑毒规则
和平精英M416怎么用 枪械及配件搭配详解
和平精英山地高点打法技巧 决战山地圈
《和平精英》体验服(四月)招募公告
在吃鸡的过程中 让人体验极差的几件“辛酸事”
不是枪法好就能吃鸡 和平精英隐忍佛系吃鸡技巧分享
和平精英双排技巧 多注意配合!
和平精英娱乐模式新增——雾天系统
狙击手的战场——和平精英绝地狙击模式实战
和平精英实用操作技巧分享 别以为手游就很简单!
吃鸡必备前提:掌握《和平精英》中的战场主动权
和平精英键位设置推荐 三指操作其实不难