您的位置: 單機(jī) > 攻略 > 游戲秘籍 > 攻略詳情

《戰(zhàn)神的挑戰(zhàn)2》LUA腳本修改心得

時(shí)間:2010-09-06 10:02:23
  • 來(lái)源:3DM
  • 作者:batyeah
  • 編輯:ChunTian
0

一、首先說(shuō)一個(gè)最令我高興的發(fā)現(xiàn),搜刮寶箱小游戲

Puzzle Quest 2\Assets\Scripts\Puzzles\PuzzleConfiguration.lua,這個(gè)腳本是小游戲全局設(shè)置 PuzzleConfiguration.HOARD =

{

        GEM_DISTRIBUTION = {

                Gold5 = 60,

                Gold50 = 48,

                Gold500 = 36,

                Chest1 = 3,

                Chest5 = 1,

        },

注意這個(gè)GEM_DISTRIBUTION,程序員的命名習(xí)慣相當(dāng)好啊,百度一下就知道,這個(gè)是指小游戲中隨機(jī)出現(xiàn)的寶石種類和幾率,

Gold5從命名上就知道是價(jià)值為5的金幣,Chest1是普通寶箱,Chest5是稀有寶箱,也就是說(shuō),開寶箱的小游戲中,5元的金幣最多,其次是50、500的金幣,隨機(jī)出現(xiàn)的箱子是最少的。由于不知道程序的具體設(shè)計(jì),所以,最好是互換這幾組數(shù)字,而不是隨心所欲的改動(dòng),以防游戲出錯(cuò)

Gold5=1,

Gold50=3,

Gold500=36,

Chest1=48,

Chest5=60,

改完后保存,重新啟動(dòng)游戲,再次開寶箱時(shí),你會(huì)發(fā)現(xiàn),哇塞,滿屏幕的金箱子啊~~~

二、法師的WildMana技能

在指定的位置處創(chuàng)建一個(gè)+3的通配符,有這個(gè)技能,無(wú)限連、收集魔法,就容易多了,僅僅+3你會(huì)不會(huì)嫌少呢,要是+7該多好啊

Puzzle Quest 2\Assets\Scripts\Spells\WildMana.lua WildMana.cost = {

        green = 1,

        blue = 1,

這一段大家都知道了,耗藍(lán)量修改,不多說(shuō)了 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

關(guān)鍵是這一段,什么意思呢,就是在一個(gè)通配符上釋放該魔法時(shí),如果是+2通配符,就會(huì)變成+4,+3變+5,以此類推,那么,只要把以上“”中的都改成Wildcard7就行了

如:Wildcard2="Wildcard7"

別急,還沒(méi)完,還有更重要的一步要改,剛才只改了在通配符上放魔法都會(huì)變+7,還要改在普通寶石上放魔法也變+7

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

這句是說(shuō),釋放該魔法時(shí),利用剛剛改的那個(gè)數(shù)組改變寶石(也就是通配符+2,最高+7),或者,對(duì)于普通寶石,改成+3通配符,把"Wildcard3"改成"Wildcard7",這樣你用Wildmana(通配魔法)時(shí),就會(huì)變一個(gè)+7的通配符出來(lái)了

注意,最高只能+7,如果你改成"Wildcard9",那么用該魔法時(shí)就會(huì)創(chuàng)建一個(gè)看不見(jiàn)消不掉的BUG石頭出來(lái)了

什么,你說(shuō)這魔法只能法師用,其他職業(yè)只能干瞪眼,沒(méi)關(guān)系,小改一下,讓每個(gè)職業(yè)都能高速收集魔法吧

Puzzle Quest 2\Assets\Scripts\Hero\ 目錄下有 Assassin.lua(刺客)、Barbarian.lua(野蠻人)、Inquisitor.lua(騎士)、WarMage.lua(巫師)四個(gè)文件定義四個(gè)職業(yè)的初始屬性和能學(xué)到的技能 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

                { },

                { },

看有很多個(gè){}里是空的把,照著腳本的格式在空的{}里加上想要的技能就可以了,PS:  -- Level 45 這是腳本注釋,程序會(huì)忽略以 -- 開頭直到行末的內(nèi)容

如{ spell = "WildMana" },這樣在角色達(dá)到{}所代表的等級(jí)時(shí)學(xué)到WildMana技能了 PS: 第一個(gè){}代表第1級(jí),以此類推 -- Level ×× 的注釋正是說(shuō)明了該技能多少級(jí)可以學(xué)到

三、野蠻人的Skull Crusher技能

利用盤中的骷髏讓對(duì)方無(wú)法行動(dòng),爽吧,但沒(méi)5個(gè)骷髏才停一次,郁悶吧

Puzzle Quest 2\Assets\Scripts\Spells\SkullCrusher.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

看看這個(gè)函數(shù),local numSkulls = params.grid:CountByName("Skull") + params.grid:CountByName("Skull5")

這個(gè)變量獲取盤中骷髏的數(shù)目,Skull是普通骷髏,Skull5是+5骷髏,一視同仁,其實(shí)你可以改成

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

這樣+5的骷髏會(huì)算5個(gè)而不是一個(gè)

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

這個(gè)變量獲取敵方停止的次數(shù),關(guān)鍵位置啊,表示至少停一回合,外加骷髏數(shù)/5(忽略小數(shù))個(gè)回合,啊,直接把/5刪掉吧,一個(gè)骷髏停他一回合(覺(jué)得BT了可以改成

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

玩家點(diǎn)評(píng) 0人參與,0條評(píng)論)

收藏
違法和不良信息舉報(bào)
分享:

熱門評(píng)論

全部評(píng)論

3DM自運(yùn)營(yíng)游戲推薦 更多+