網站首頁 單機圖文攻略 單機視頻攻略 單機遊戲攻略 單機遊戲問答 遊戲常見問題 遊戲心得體會 手遊圖文攻略 手遊視頻攻略 手遊圖鑑攻略 手遊軟件教程 手遊攻略問題 網遊圖文攻略 網遊綜合攻略 網遊遊戲問答
當前位置:趣味遊戲館 > 單機遊戲攻略 > 

《戰神的挑戰2》LUA腳本修改心得

欄目: 單機遊戲攻略 / 發佈於: / 人氣:8.51K

一、首先説一個最令我高興的發現,搜刮寶箱小遊戲

《戰神的挑戰2》LUA腳本修改心得

Puzzle Quest 2AssetsScriptsPuzzles,這個腳本是小遊戲全局設置 D =

{

        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 2AssetsScriptsSpells = {

        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 = [etX][etY]

       

        fy:PushAttribute("gemx", etX)

        fy:PushAttribute("gemy", etY)

        return function ()

                Spell:Pause(L_INTRO_PAUSE)

                Spell:TransformGem(params, etX, etY, TRANSFORM_MAP[gemtype] or "Wildcard3")

                Spell:Pause(L_MIN_DURATION)

                Spell:Pause(L_OUTRO_PAUSE)

        end

end

關鍵是這一段,什麼意思呢,就是在一個通配符上釋放該魔法時,如果是+2通配符,就會變成+4,+3變+5,以此類推,那麼,只要把以上“”中的都改成Wildcard7就行了

如:Wildcard2="Wildcard7"

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

留意代碼中的WildMana函數 Spell:TransformGem(params, etX, etY, TRANSFORM_MAP[gemtype] or "Wildcard3")

這句是説,釋放該魔法時,利用剛剛改的那個數組改變寶石(也就是通配符+2,最高+7),或者,對於普通寶石,改成+3通配符,把"Wildcard3"改成"Wildcard7",這樣你用Wildmana(通配魔法)時,就會變一個+7的通配符出來了

注意,最高只能+7,如果你改成"Wildcard9",那麼用該魔法時就會創建一個看不見消不掉的BUG石頭出來了

什麼,你説這魔法只能法師用,其他職業只能乾瞪眼,沒關係,小改一下,讓每個職業都能高速收集魔法吧

Puzzle Quest 2AssetsScriptsHero 目錄下有 (刺客)、(野蠻人)、(騎士)、(巫師)四個文件定義四個職業的初始屬性和能學到的技能 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 2AssetsScriptsSpells function SkullCrusher:Apply(params)

       

        local numSkulls = :CountByName("Skull") + :CountByName("Skull5")

        local numTurns = 1 + r(numSkulls/5)

       

        return function ()

                -- Destroy Skulls

                Spell:Pause(L_INTRO_PAUSE)

                Spell:ExplodeGemByName(params, "Skull", false, L_TRANSFORM_PAUSE)

                Spell:ExplodeGemByName(params, "Skull5", false, L_TRANSFORM_PAUSE)

                -- Stun Enemy

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

                Spell:Pause(L_MIN_DURATION)

                Spell:Pause(L_OUTRO_PAUSE)

        end

end

看看這個函數,local numSkulls = :CountByName("Skull") + :CountByName("Skull5")

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

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

這樣+5的骷髏會算5個而不是一個

local numTurns = 1 + r(numSkulls/5)

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

local numTurns = 1 + r(numSkulls/3)什麼的)