把劇本(Scenario) => 團隊內容(Force Properties) => 鎖定玩者設定(Fixed Player Settings)打勾,如此一來,前面玩者設定中的種族、操控者、顏色,都會被鎖定。
因為B社擔心一些非法數值會對遊戲穩定度造成影響,因此限制了數值的範圍。
進入WE後,工具列檔案(File) => 偏好設定(Preferences) => 允許在物件編輯器中使用負值實數(Allow negative real value in the Object Editor) 打勾,就能在物件編輯器中輸入負實數而不會自動歸零(整數仍會自動歸零)。
另外,按住Shift+Enter再修改數值,就不會受到任何限制。請注意,雖然可以輸入數值而不被限制,不過如果使用的數值不適當,玩遊戲時可能會當機。
關掉筆刷--把工具列的視窗(Windows) => 筆刷列表(Brush List) 關掉。可以大幅提升速度。
減少自訂資料--物件編輯器允許自訂物件,但是自訂的物件越多,WE就會越lag,其中尤以自訂部隊的影響最嚴重。
筆者曾經建立200多個自訂部隊,結果WE速度大約慢到剩1/3,而且按什麼鈕都會lag一下;後來把自訂部隊刪掉,直接修改內建的部隊,速度就大幅地改善了。
所以,盡量直接修改內建的物件(含部隊、可毀物、物品、技能、……等),少用自訂物件。
減少預置的物件--放置的部隊、物品、可毀物和飾物放得越多,WE的速度就越慢(但是並不明顯)。區域、攝影機和地形的影響則很小,幾乎可以忽略。
以上類似的問題,都可以藉由修改遊戲常數解決。 找工具列的進階(Advanced) => 遊戲性常數(Gameplay Constants),把使用自訂遊戲常數(Use Custom Gameplay Constants)打勾。然後修改你想改的部分,如:
英雄等級上限 => 英雄等級上限(Hero Maximum Level)
全域分享經驗值 => 英雄經驗值 - 全地圖分配(Hero XP – Global Distribution)
中立怪經驗值表 => 英雄獲得經驗 - 生物減少表(Hero XP Gained – Creep Reduction Table)
此表格代表的是N級的英雄殺死中立怪時,能得到得經驗值百分比。
假設殺死二級的普通部隊可得40Exp,而此表格內容為90,80,70,60,0;
那麼一級英雄殺死二級中立怪可得40 * 90% = 36 Exp;
三級英雄殺死二級中立怪可得40 * 70% = 28 Exp;
五級以上的英雄殺死二級中立怪可得40 * 0% = 0 Exp。
物品賣價 => 物品欄 - 典當回收價率(Inventory - Sell Item Return Rate)(相對於原價)。然而很不幸的,沒有方法可以設定個別物品的賣價。
裝甲加成百分比 => 作戰 - 傷害加成表 - <裝甲類型>(Combat - Damage Bonus Table - <Attack Type>)
到遊戲常數下,然後:
同盟貿易增加 - Ctrl+點選(Ally Trading Increment - Control Click) - 此為按Ctrl點滑鼠一次所加的錢數,設為0
同盟貿易增加 - 普通點選(Ally Trading Increment - Normal Click) - 此為直接點滑鼠一次所加的錢數,設為0
找工具列的劇本(Scenairo) => 選項(Map Options) => 遊戲資料設定(Game Data Set)。其中:
預設(Default):使用地圖編輯器的資料。使用它有個好處是它不會隨著改版而有任何變動
自訂(Custom):最舊版的遊戲資料
近戰(Melee):最新版的遊戲資料。選這個就要隨著b社的改版而修改地圖。
將文字前後加上顏色碼,WC3顏色碼的格式是|CAARRGGBB###|R(大小寫不限)。
其中AA為不透明度(改這個效果不明顯),RR為紅色比例,GG為綠色比例,BB為藍色比例,###為你要輸入的文字。數值用16進位(00~FF),越大表示該顏色的比例越高。
例如:
|CFFFFCC00Danny是天才|R →Danny是天才
|CFFFF0000Danny是天才|R →Danny是天才
|CFF00FF00Danny是天才|R →Danny是天才
|CFF0000FFDanny是天才|R →Danny是天才
Player 13 Neutral Hostile (中立敵對):
這個玩家就是中立怪的領導者,它與除"中立被動"和"中立犠牲者"以外的所有玩家互相為敵
此外,地圖上所有中立敵對的部隊,都會在小地圖上顯示中立怪的營地光點。
Player 14 Neutral Victim (中立犠牲者):
這個玩家是被抄家滅族的傢伙們,屬於打不還手罵不還口型,而且打他還不會逃。
此外,觸發器有一個動作可將一個玩家的所有部隊歸為中立受害者(不改顏色),可算是避免失敗玩家的殘兵餘將干擾其他人戰鬥的好方法。
一般對戰地圖中,輸掉的玩家也會歸入"中立犠牲者",只是沒有改變顏色而已。
Player 15 Neutral Extra (中立額外):
全民公敵啊,除了老好人"中立被動"以外,所有玩家與其互相為敵,即使是公認最乖的"中立犠牲者"也會攻擊他。
至於它在遊戲中有什麼用呢?筆者目前也不知道……。
Player 16 Neutral Passive (中立被動):
負責賣東西A錢的玩家,與所有的玩家互為中立關係。
以下表格為A玩家對B玩家的同盟設定:
Skin(皮膚)是指修改模型動畫的外型貼圖,檔案是一個圖檔(.blp),例如在步兵的劍上塗上其它的顏色等。
Model(模型、模組)則是指整個模型動畫,包括動作、音效、命令等等,檔案是一個模型檔(.mdx)。
減少預置物件及其設定--預先放置的部隊、物品、可毀物、飾物、區域、攝影機等越少,地圖就讀取越快。
另外,對物件做的初始設定(如部隊生命值、等級、已學技能、死亡掉的物品等;區域的天氣等)也會在這個時候執行,而增加讀取時間,其中尤以死亡掉寶的設定影響最大。
減少初始化觸發--初始化的觸發就是在Loading的時候執行。越多初始化觸發就意味著越長的讀取時間。
然而,如果把初始化移到遊戲中進行,可能造成遊戲更lag,請依實際的需要調整。
此外,其它地圖設定如觸發器和聲音編輯器的設定,也會影響讀取時間。
匯入大的檔案不會明顯地增加讀取時間,所以地圖檔案肥不代表地圖讀得久。
通常會發生這種事是因為不合法或不適當的物件屬性,或者不正確的觸發,以下列舉幾個常見例子:
物件編輯
變身後的部隊沒有該變身技(EX:如果熊沒有化熊術,則熊德變身成熊時會當機)
非英雄部隊使用加Str/Agi/Int、加經驗值、加等級的物品或技能(一般部隊最好不能使用物品)
有法球技能的部隊使用對地攻擊(Attack Ground)
一般觸發
Player(x)的x範圍只能從1~16。若超出範圍就會當機,如:Player(17)、Player(0)。
JASS
使用ExecuteFunc( <string> )如果傳入一個不存在的函數名稱會當機
Player(x)的x範圍只能從0~15。若超出範圍就會當機,如:Player(16)
註:GUI的Player(x)在JASS中是ConvertedPlayer(x),範圍為1~16。
其它可能原因:
加密程式有問題:可以試試改用手動加密,看看是否還有同樣的問題
電腦問題:如果你的電腦玩正規戰或其它自製地圖也曾發生過,可能是因為魔獸安裝不完全、版本不正確、電腦硬體的問題(通常是因為記憶體有瑕疪)。
首先最好先向玩家確定問題是出在斷線還是當機(請參見前二個問題),以確認是否為分流。分流是因為不同玩家的電腦意外地讀到不同的資料,而該資料對遊戲整體有極大影響性,不得不同步,造成遊戲無法繼續同步進行,不能同步的玩家就會被分開。
觸發方面可參考本機玩者的使用。如果「本機玩者 」使用不當,就會發生分流。
如果有玩家的魔獸沒裝好,或者改到war3Patch.mpq之類的檔案,就可能和別人的資料不同步而斷線。
有些匯入地圖的檔案會造成問題。例如有一張地圖AoM就因為匯入了Units/DestructableData.slk,造成玩過AoM以後,再玩別的遊戲會斷線。
原因是,匯入地圖的檔案,會在進行地圖初始化時載入(所以電腦就不使用war3的mpq檔中的Units/DestructableData.slk,而使用地圖匯入的),而遊戲結束時就釋放還原,但由於blizzard沒設計好程式,而使得檔案在離開遊戲時不會被釋放。
因此這台電腦之後玩另一張會用到那些檔案的地圖(幾乎所有地圖都會用到Units/DestructableData.slk),別人的電腦使用內建的Units/DestructableData.slk,而此電腦使用AoM匯入的Units/DestructableData.slk,所以這台電腦會不同步而斷線。
玩者本身的解決辦法就是,玩過AoM以後重開魔獸,再進行其它遊戲。
一般.blp、.mdx、.j檔案都不會有問題。但是某些特定路徑的.slk、.txt檔案會發生問題,目前已知Units/DestructableData.slk會有問題,但是像Units/UnitAbilities.slk、Units/UnitData.slk卻不會有問題,其它的還待研究。
此外還有一些不明原因可能造成分流。其中有一些網路謠傳會增加分流機率的因素,如下。這些項目未經也難以進行實際的驗證,如果可以就盡量試著避免看看吧:)
過高的骰子數
過高的生命、攻擊力、法力等數值
遊戲中改變遊戲速度
把某些特定部隊的聲音設成無聲
過度頻繁地抓取部隊的Custom value
傳訊給單一玩家
給單一玩家任務訊息
打開單一玩家的電影模式
給單一不在場的玩家錢
一般而言,如果顯示「某資料錯誤」(圖一、圖二)很多很多次,但是地圖可以打開,可能是該地圖有使用非官方加強程式編輯。除非你也有該程式,否則有些部分無法正常讀出。
如果顯示「觸發資料遺失」、「部隊資料遺失」(圖三),而且訊息只出現一、二次,則通常是被加密了。
先做好你希望顯示的小地圖圖片,格式限定 24/32bit,尺寸 256x256 的TGA檔。
用WE開啟地圖,打開匯入管理員(F12)將圖片匯入。
將剛才匯入的檔案路徑設為war3mapPreview.tga(大小寫不限)。修改成果:
先做好你希望顯示的小地圖圖片,格式限定 32bit,尺寸 256x256 的 BLP 檔。
用WE開啟地圖,打開匯入管理員(F12)將圖片匯入。
將匯入的檔案路徑設為War3MapMap.blp(大小寫不限)。修改成果:
官方做法:
打開官方地圖Maps/FrozenThrone/Scenario/(4)Monolith.w3x,進入ImportManager並匯出模組檔war3mapImported\LoadingScreen.mdx,並把它匯到你的地圖中
匯出以下圖片檔修改,再依照同樣的路徑匯入你的地圖中
LoadingScreenBL.tga - 左下角圖片
LoadingScreenBR.tga - 右下角圖片
LoadingScreenTL.tga - 左上角圖片
LoadingScreenTR.tga - 右上角圖片
到工具列Scenario => Loading Screen => Use Imported File => 選擇你匯入的模組檔
自製做法:
到工具列 Scenario => Loading Screen => Use Campaign Screen => Generic
自己做一個1024 * 768 的TGA圖片
切割成4塊轉換為blp匯入為:
UI\Glues\Loading\Load-Generic\Generic-Loading-TopLeft.blp - 左上角圖片,大小512 * 512
UI\Glues\Loading\Load-Generic\Generic-Loading-TopRight.blp - 右上角圖片,大小512 * 512
UI\Glues\Loading\Load-Generic\Generic-Loading-BotLeft.blp - 左下角圖片,大小512 * 256
UI\Glues\Loading\Load-Generic\Generic-Loading-BotRight.blp 右下角圖片,大小512 * 256
拼起來就是完整的Loading Screen
此外,匯入以下檔案可以修改Loading Bar:
UI\Glues\Loading\LoadBar\BarBorder.blp - 邊框
UI\Glues\Loading\LoadBar\BarFill.blp - 填充圖形(藍色條)
UI\Glues\Loading\LoadBar\BarGlow.blp - 打光效果
修改成果:
對岸載入介面製作軟體
點我下載(內附使用說明)
=== A: ===
在進階(Advanced) => 遊戲性常數(Gameplay Constants) => 科技樹 - 相依對應物 - 英雄(Techtree - Dependency Equivalents - Hero)加入你的自製英雄,如此一來每升一級主堡就只能造一個了。
添加一條觸發:
Player - Limit training of <自訂英雄> to 1 for <Player>
這樣你的自製英雄就不能重複生產了
進階(Advanced) => 遊戲性常數(Gameplay Constants) => 科技樹 - 相依對應物 - 祭壇(Techtree - Dependency Equivalent Altar)
加入你的自定英雄塔 (讓自定英雄塔跟官方英雄塔一樣,要建英雄塔,主堡才能升到二級)
進階(Advanced) => 遊戲性常數(Gameplay Constants) => 科技樹 - 相依對應物 - 等級#大廳(Techtree - Dependency Equivalent Tier x Hall)
加入你的自定第x級主堡 (讓自定x級主堡跟官方x級主堡一樣,被摧毀會被reveal,升二級需要英雄塔)
一般來說自製圖示需要做兩個,一個是平時顯示的,一個是在「無效」情況下使用的無效圖示。
例如當科技需求未達到,或者按下F10等時候,技能圖示會變暗,這個變暗的圖示就是無效圖示。
預設的情況下,無效圖示必須放在ReplaceableTextures\CommandButtonsDisabled資料夾下
(可在遊戲介面中修改該路徑,但筆者不建議使用,因為如此一來所有內建的無效圖示都無法正確地調用),
當需要用到無效圖示時,系統會自動抓"DIS+檔名"作為無效圖示的檔名,並且從設定的路徑下尋找。
所以如果你使用一個圖示:
ReplaceableTextures\CommandButtons\BTNSleep.blp
為了在特殊情況下使用,你必須把原圖弄成灰色的,然後匯到無效圖示的路徑下,例如:
ReplaceableTextures\CommandButtonsDisabled\DISBTNSleep.blp
如果不是兩個圖示都有,在找不到無效圖示的時候(最常見的情況是按下F10),就會產生綠色方塊了。
為了節省空間,也可以讓多個圖示共用一個無效圖示,例如:
War3mapImported\AbilityIcon\Bash.blp
War3mapImported\PassiveAbilityIcon\Bash.blp
ReplaceableTextures\CommandButtonsDisabled\DISBash.blp
此外,由於編輯器對路徑的檢查較寬鬆,所以當輸入的路徑沒有很精確時(例如最後面多一個空白字元),編輯器可以看到圖片,但遊戲中卻會找不到而顯示綠色方框。如果遇到這種情形,把路徑寫好即可(例如刪除多出的空白)。
總而言之:出現綠色方框,代表電腦找不到該圖示的路徑。
部隊的Skin很好修,首先先用Image Viewer(外掛程式,要去下載)把部隊用到的mdx檔案開出來,然後檢視它套用的圖片檔案,例如Footman.mdx就會套用Textures\Footman.blp。所以你只要解出並修改Footman.blp圖片檔,再按照路徑Textures\Footman.blp匯入地圖,即可覆蓋Foorman原來的外型。
如果你需要用到原來的模型的話,假設你要做一個新的部隊叫CustomSwordsman.mdx,則先把Footman.mdx複製一份名為CustomSwordsman.mdx,把CustomSwordsman.mdx套用的動畫從Textures\Footman.blp改成Textures\CustomSwordsman.blp。
最後匯入Textures\CustomSwordsman.blp和CustomSwordsman.mdx兩個檔案即可。
Model的話,先用3DS MAX等軟體製作MDX檔及需要套用的檔案,再全部匯入地圖中。話是這麼說沒錯,但是要用3DS MAX製作MDX需要很高的技術,筆者目前也不會。
使用MPQ軟體解出war3patch.mpq的檔案,加以修改後,以原路徑匯入地圖中即可使用。但是觸發編輯器中不會增加自己新增的特效選項,因此必須用JASS寫。
閃電特效:Splats\LightningData.slk
地表紋理:Splats\UberSplatData.slk
天候效果:TerrainArt\Weather.slk
影響LAG程度的因素多且複雜,茲分類如下:
網路LAG--沒有什麼解決的辦法,如果因為網路問題而嚴重LAG--去怪你的網路公司吧!
顯示LAG--通常發生在螢幕出現太多東西的時候 。實際上,電腦只處理出現在螢幕上的模型動畫,所以如果螢幕上的3D模型越多,動畫越奢華、越複雜,自然就處理不來而造成LAG。解決方法:
換張好一點的顯示卡
不要關掉戰爭迷霧
減少飾物(尤其是有特效的如蝙蝠、蒼蝿……)
避免讓太多的部隊、特效、飾物等同時出現在螢幕上
減少同一時間在同一個螢幕上的投射物數目,它們較容易造成lag
不要用太大的模組(像有些地圖就喜歡用"巨人",這相當容易提高LAG度)
處理LAG--當東西太多,事件太雜時,電腦處理不來就會發生:
用超好的處理器
減少用Every X seconds of game time這類的事件(尤其時間間隔短的更應避免),因為每X秒就檢查和執行一次是很耗資源的
把暫時用不到的觸發關閉(Turn off),讓它不會執行(有些人會使用Condition來限制觸發的執行條件,但是相較於Turn Off,這種做法多執了Event和Condition,仍然較佔資源)
學習使用陣列和迴圈管理Trigger,盡量減少觸發器整體的數量。
優化觸發,避免太大的迴圈或Pick太多的部隊
不要在同一時間生產太多部隊,最好用Wait做分批處理,把時間稍微錯開
資料讀取延遲-- 為了減少讀取地圖的時間,地圖中的資料幾乎都是在用到的時候才會讀取。
比如說,在英雄學習一級技能的時候,電腦常常會lag一下;但是學習二級或三級則少有此現象。
這就是由於第一次學習技能時,電腦在讀取讓技能的資料,而第二次學習時,因為已經讀過,所以就不太會lag。
所以,如果要防止這種現象,可以在地圖初始化的時候,放一個有該技能的部隊並刪除之 (也可以用一條初始化觸發創造一個部隊,給予所有想要系統預讀的技能,再刪除此部隊),如此一來,電腦就會在初始化的時候讀好技能的資料,遊戲中就不會再因為讀取資料而lag。
此外,觸發器中有個動作"Preload",它可以預先讀取BLP或MDX檔案,以免在遊戲中用到的時候lag。
記憶體lag--發生在記憶體吃緊的時候,尤其當RAM不夠用而必須動到虛擬記憶體時,lag度會增加。
這種lag的發生緩慢而漸進,也需要較充足的知識才能解決;但是當你想做一張大規模的壯闊地圖,或者遊戲時間較長的地圖,而不能犠牲其它部分時,這一部分卻是你唯一可以做的。
當你玩完一場Custom Game,出現記分板畫面,你按下OK。如果電腦等很久才回到主畫面,表示記憶體Lag的問題很嚴重,反之可以不管它。
另外一個方法是開啟工作管理員(Ctrl+Shift+ESC)的效能資料觀察記憶體用量,當PF使用量居高不下,表示記憶體佔用情形很嚴重(筆者對這個也不是很了解,不過PF使用量和遊戲的運作順暢與否有極大的相關性)。
要解決此問題,可以添購RAM和加大虛擬記憶體空間設定。但是我們很難保證每個魔獸玩家都有如此好的配備,因此最好從優化地圖著手,這方面的知識相當複雜,因此另外開一個專題討論(按我進入)。
加密地圖是指「藉由修改地圖內部檔案,使得Wc3可以開出來玩,但是WE無法打開編輯」的過程。加密方法有二:
手動加密:
加密後打不開地圖,所以記得要先備份
建立一個空白文件(用計事本打開,直接存檔即可),存成任意檔名
回到WE中打開Import Manager(或者按F12),選擇Import File(匯入文件),匯入剛才存的空白文件
在剛匯入的文件上點二下,勾選Use custom path,將路徑修改為war3map.wtg
重複步驟3,4,總計匯入以下檔案:
war3map.wtg
war3map.wct
war3map.imp
存檔,離開WE。之後用WE應該打不開這張地圖了。
程式加密: 有些網站提供一些地圖加密程式可供加密(如本手冊輔助工具中的ExtProtector和Wc3MapOptimizer。如果有發現不錯的程式歡迎提供)。
它們的加密效果當然比手動加密來得要好,可是也有出問題的風險。
如果你的地圖加密後,遊戲會出現Fatal Error之類的當機問題,請改用手動加密再試一次,以確定問題是出在你有地方寫錯或者是加密程式出錯。
此外,加密前請記得先備份你的地圖以防萬一。
P.S:有些加密程式可能會提供備份及還原地圖的功能(通常是用某種形式把原始檔存在地圖檔裡,只要有密碼就能還原),筆者不建議使用。
其一,你可以還原,如果有心人士猜到密碼也能還原。
其二,因為要保留資料,會使地圖檔案變大。因此筆者建議大家把原始檔備份下來,地圖則以不可還原的型式釋出。
基本上就是用MPQ軟體配合Listfile解出地圖內的檔案。技術細節可參照MPQ工具一篇。
如果你要中文化,只要修改war3map.wts和war3map.j(或者在Scripts\war3map.j)的顯示文字部分(搜尋引號"),再匯回原地圖中即可。
物件編輯器的資料如war3map.w3u可在用MPQ解出來後匯入一張空白地圖觀看。
物件擺設狀況和觸發是最難改的部分,你必須很懂JASS才能看懂並修改war3map.j。
解密實際上是相當費力費時的事。把加密的地圖打開來學習,或者把外國的地圖中文化是無傷大雅,但是希望大家不要盜改別人辛苦做出來的地圖。
討論區
war3map.wtg
war3map.wct
war3map.imp
能不能分例一些 war3map.wct = 什麼什麼的 會好很多@@"
MPQ相關資料已補上,請參考此頁。
我想問在地圖繁體化方面:
我想把一個簡體的地圖繁體化 但我不知道如何打開(那個地圖已加密)
請參考這篇教學。
UI\Glues\Loading\LoadBar\BarBorder.blp - 邊框
UI\Glues\Loading\LoadBar\BarFill.blp - 填充圖形(藍色條)
UI\Glues\Loading\LoadBar\BarGlow.blp - 打光效果
能不能說明一下 是多少xxx*xxx的
怎樣把木頭改做其它?(例如改做兵力、石頭)
進階->遊戲常數
在這裡把木頭的文字和圖示改成其他文字和圖示即可。