Weep
Godspeed to the sound of the pounding
- Reaction score
- 400
"W.U.B.S." <3
by Weep
Version 1.0.1
by Weep
Version 1.0.1
-- Index --
- Play a map regardless of file path
- Load a map even when the editor is running
- Process a map with JassHelper
-- General Information --
DOS batch files, or .bat files, are sequences of command line operations saved into a script file. Here are a few simple but useful/convenient ones I've made to assist WC3 mapping, tested in Windows XP.If you want to give them custom icons, you have to make a shortcut to them and then right click > Properties on the shortcut. You can change the shortcut's icon, but not each individual .bat's icon.
-- How To Implement --
- Create a new text file, eg. in Notepad.
- Paste in the relevant code.
- Save the file with a .bat extension to the location specified at the top of the code.
- Run the file in Windows, and/or open a map file with the .bat, pretending it is a .exe.
-- Misc. Notes --
No warranty express or implied is available for this code. Not responsible for any damages, etc. Credit to Starcraftfreak for this list of WC3 parameters.Play a map regardless of file path
-- What It Does --
WC3 will refuse to load a map that's located at too long a file path - its name might be too long, or it might be in a folder with too long a name, or it might be nested in too many folders. Using this file, any map can be loaded into WC3 without your having to move it first. Also, just opening the .bat on its own will launch WC3, so you can use it in place of any shortcuts to the Warcraft 3 .exe.-- How It Works --
The script copies any map it opens to a pre-determined name in your temporary file directory, then commands WC3 to load that copy at the new location.-- Code --
Code:
::Save this .bat file in the same directory as the war3.exe
::The script uses its own location to find that .exe
@echo off
set WarcraftPath=%~dp0
if not "%~x1" ==".w3x" (
if not "%~x1" ==".w3m" (
start "" "%WarcraftPath%\Frozen Throne.exe"
EXIT
)
)
set TempFile=%TEMP%\TempMap%~x1
copy %1 "%TempFile%"
start "" "%WarcraftPath%\war3.exe" -loadfile "%TempFile%"
EXIT
-- Code (for WC3 windowed mode) --
Code:
::Save this .bat file in the same directory as the war3.exe
::The script uses its own location to find that .exe
@echo off
set WarcraftPath=%~dp0
if not "%~x1" ==".w3x" (
if not "%~x1" ==".w3m" (
start "" "%WarcraftPath%\Frozen Throne.exe" -window
EXIT
)
)
set TempFile=%TEMP%\TempMap%~x1
copy %1 "%TempFile%"
start "" "%WarcraftPath%\war3.exe" -loadfile "%TempFile%" -window
EXIT
Load a map even when the editor is running
-- What It Does --
When opening a map file from Explorer while the World Editor is already running, it will give an error since it will try to open a new instance of the World Editor, which you cannot do. (Why it has this behavior, I don't know. It doesn't do that in the Mac version...) Opening a map with this file will load it with the World Editor regardless of whether the editor is already running or not. Also, just opening the .bat on its own will launch the editor, so you can use it in place of any shortcuts to the World Editor.-- How It Works --
The script issues the World Editor a command to load the map.-- Code --
Code:
::Save this .bat file in the same directory as the worldedit.exe
::The script uses its own location to find that .exe
@echo off
set WarcraftPath=%~dp0
if not "%~x1" ==".w3x" (
if not "%~x1" ==".w3m" (
start "" "%WarcraftPath%\worldedit.exe"
EXIT
)
)
start "" "%WarcraftPath%\worldedit.exe" -loadfile "%~f1"
EXIT
Process a map with JassHelper
-- What It Does --
Aside from working with the NewGen Pack, JassHelper is a command-line operable program. For those who'd prefer to work independently of JNGP (eg. for future-proofing), this .bat will issue JassHelper the proper commands to process a map.-- How It Works --
The script copies any map it opens and adds -JHH to the file name (this allows you to process a map using !import commands multiple times in a row without re-saving from the World Editor), then commands JassHelper to process the map.-- Code --
Code:
::Save this .bat file in the same directory as the jasshelper.exe
::Also copy the Blizzard.j and common.j files into that directory
::The script uses its own location to find those files
@echo off
if not "%~x1" ==".w3x" (
if not "%~x1" ==".w3m" (
EXIT
)
)
set JassHelperPath=%~dp0
set TempFile=%~dpn1-JHH%~x1
copy %1 "%TempFile%"
pushd %~dp1
start "" "%JassHelperPath%\jasshelper.exe" "%JassHelperPath%\common.j" "%JassHelperPath%\Blizzard.j" "%TempFile%"
EXIT
-- Code (to process in debug mode) --
Code:
::Save this .bat file in the same directory as the jasshelper.exe
::Also copy the Blizzard.j and common.j files into that directory
::The script uses its own location to find those files
@echo off
if not "%~x1" ==".w3x" (
if not "%~x1" ==".w3m" (
EXIT
)
)
set JassHelperPath=%~dp0
set TempFile=%~dpn1-JHH%~x1
copy %1 "%TempFile%"
pushd %~dp1
start "" "%JassHelperPath%\jasshelper.exe" "--debug" "%JassHelperPath%\common.j" "%JassHelperPath%\Blizzard.j" "%TempFile%"
EXIT