魔法門系列之英雄無敵5 控制檯及作弊碼

發佈日期

首先你要啟動控制檯(console),也就是用寫字板開啟遊戲目錄\profiles\autoExec.cfg 這個檔案,在最後邊加上一句:

setvar dev_console_password = schwinge-des-todes

也就是改成:
...........
//============================================================================
// Startup
mainmenu
setvar dev_console_password = schwinge-des-todes

然後就可以在遊戲中用熱健" ` "開啟控制檯。這個熱健是可以修改的,可以在profiles\default_profile\input.cfg裡邊找到這行:
//debug keys
bind show_console ’`’

把單引號裡邊改成自己喜歡的健就行了

//////////////////////////////

開啟控制檯就可以輸入作弊碼了。

(1)普通作弊碼
"add_skill + 技能名/數字" 可以給選定英雄加技能,例如在控制檯中輸入:
add_skill Necromancy

這個可以加巫術
或者在後邊加數字:

add_skill 19

可以加尋路術。這些數字對應的技能可以用寫字板開啟data\data.pak\scripts\advmap-startup.lua這個檔案察看
注意這個data.pak是個壓縮檔案,可以用解壓軟體(winrar,winzip等)把它開啟並把想要的檔案解壓出來。
用這種方法所加的技能數量是可以超出原有限制,雖然不會顯示出來,但是效果還在

 

add_army 種族程式碼, 是否升級
加生物

種族程式碼對應如下:
HEAVEN(天堂) = 0
PRESERVE(森林) = 1
ACADEMY(學院) = 2
DUNGEON(地牢)=  3
NECRO(不死) = 4
INFERNO(煉獄) = 5

例如:
add_army 5, 0
會給英雄加升級前的7種煉獄生物各十(至於原來的兵會怎樣?試過就知道了)

add_army 4, 1
加升級後的七種不死生物各十

add_all_spells
使英雄學會所有魔法,不受技能限制(包括使用這些魔法)

set_hero_luck_morale M N
改變英雄的基本運氣(M)和士氣(N),例如 set_hero_luck_morale 5 3

show_player_money N
顯示玩家N所擁有的資源,例如 show_player_money 2

add_exp N
加經驗,例如add_exp 5000

add_money N
加金幣1000*N,其他所有資源加N

//////////////////////////////////


(2)呼叫函式
上邊的都只算小兒科,下邊來點真格的

在data.pak或你所解出來的資料夾裡的.lua 、.xdb檔案裡邊你通常會看到一大堆函式,遊戲中的所有事件(如徵兵,學技能等)都是透過這些函式實現的。開始遊戲時這些檔案會對遊戲進行初始化。然而透過控制檯你可以在遊戲中呼叫這些函式,也就是說,只要你知道了這些函式,幾乎可以人為的實現在遊戲中可能實現的一切

要在遊戲中使用這些函式,只要呼叫控制檯,在這些函式前加上@,並使用相關引數就可以了。例如:

檔案中有這麼一句:
GiveExp("Isabell",5000)
會給Isabell 5000經驗(太明顯啦!)
那麼在控制檯裡,你可以輸入:
@GiveExp("x", y)
會給英雄 x 增加經驗值 y


或者更簡單的:
@Win()
直接取得勝利
@Loose()
失敗

下邊列幾個比較實用的:
@GiveArtefact("x", y)
給英雄x加上物品y,y可以是物品名或者物品程式碼,

@TeachHeroSpell("Isabell",SPELL_PHANTOM)
使Isabell學會法術PHANTOM, 也可以用法術程式碼

@GiveHeroSkill(’Isabell’, 13)
加程式碼13所對應的技能(詳見技能程式碼)

@AddHeroCreatures( "Agrael", CREATURE_HELL_HOUND, 1000, 0);
給Agreal加1000只Hell Hound(未升級)
要升級的話:
@AddHeroCreatures( "Agrael", CREATURE_HELL_HOUND, 1000, 1);

@SetTownBuildingLimitLevel(’Putor’, 13, 1);
設定城鎮Putor的建設等級

@OpenCircleFog (0, 0, 0, 9999, PLAYER_x);
給第x位玩家開圖(地面)
如果是地底的話
@OpenCircleFog (0, 0, 1, 9999, PLAYER_x);


@SetPlayerResource(PLAYER_1,x,y);
把玩家1的資源x設為y,x對應資源GOLD,WOOD,ORE,GEM,SULFER,MERCURY,CRYSTAL ;y對應數字

@ChangeHeroStat( ’Isabell’, STAT_ATTACK, 9999 );
使Isabell的攻擊變為9999,屬性除了基本屬性外也包括魔法點和移動點數,對應程式碼為:
  STAT_EXPERIENCE = 0
    STAT_ATTACK = 1
    STAT_DEFENCE = 2
    STAT_SPELL_POWER = 3
    STAT_KNOWLEDGE = 4
    STAT_LUCK = 5
    STAT_MORALE = 6
    STAT_MOVE_POINTS = 7
    STAT_MANA_POINTS = 8

@AddHeroWarMachine(’Isabell’,1)
給英雄加戰爭機器


這裡的部分程式碼我會在後邊列出,當然你最好可以自己去查lua檔案,我比較常用/data/script/和/data/maps/裡邊的

 

 


注意: 遊戲裡顯示的名稱(如英雄名,城鎮名等)往往跟在程式裡使用的內部名稱不一樣,對於英雄名,可以用這個命令
@print(GetPlayerHeroes(PLAYER_x))
顯示第x位玩家的英雄名。至於村莊名,可以在texts.pak\Text\Game\Towns裡邊查詢,不過比較麻煩,希望有高手能解決這個問題;另外大小寫要區分,單雙引號不區分


附:
技能程式碼在37樓
法術程式碼在39樓
生物程式碼在81樓
///////////////////////////////

6月2日更新:
@print(GetObjectPos(’heroname’))
會顯示英雄的座標
@SetObjectPos(’heroname’,x,y,0)
瞬移(地面)
@SetObjectPos(’heroname’,x,y,1)
瞬移(地底)

@CreateMonster(’Peasant’,CREATURE_PEASANT,100,30,40,1)
在地底座標(30,40)處放100個農民


6月3日更新:
各種族生物及對應程式碼;各種族英雄在控制檯內所使用的名稱(console name)
詳見81樓

6月5日更新:
設定控制檯的最大上翻行數:
console_size 400
足夠瀏覽help的內容了

關於無限移動
同樣可以用修改英雄屬性實現
@ChangeHeroStat(’英雄名’, STAT_MOVE_POINTS, 數字)
由於可以多次使用,也就相當於無限移動了。魔法點數也是一樣的:
@ChangeHeroStat(’英雄名’, STAT_MANA_POINTS, 數字)
 
 

相關攻略文章

最新攻略