Skip to content

Instantly share code, notes, and snippets.

@Lanjelin
Created January 9, 2017 11:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Lanjelin/6012c18ce8c278abbd102c5752aa0f27 to your computer and use it in GitHub Desktop.
Save Lanjelin/6012c18ce8c278abbd102c5752aa0f27 to your computer and use it in GitHub Desktop.
Launcher for using multiple World of Warcraft private servers.
#NoTrayIcon
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <file.au3>
#include <MsgBoxConstants.au3>
Opt("GUIOnEventMode", 1)
MainGUI()
Func MainGUI()
Global $serverList
Global $currentServer
Global $realmsArray
Global $ChkExit
$LauncherGUI = GUICreate("WoW MultiServer Launcher", 400, 200, 100, 200, -1)
GUISetOnEvent($GUI_EVENT_CLOSE, "BYE")
$serverList = GUICtrlCreateListView("", 10, 40, 380, 120)
_GUICtrlListView_AddColumn($serverList, "Server", 100)
_GUICtrlListView_AddColumn($serverList, "Address", 250)
_GUICtrlListView_AddColumn($serverList, "", 0)
$currentServer = GUICtrlCreateLabel("Current server: ", 10, 10, 380)
GUICtrlSetFont($currentServer, 10)
UpdateLabel()
_FileReadToArray(@ScriptDir & "\MultiLauncher.txt", $realmsArray)
$j = 0
For $i=UBound($realmsArray) - 1 to 1 Step -1
$j+=1
$split = StringSplit($realmsArray[$j], ",")
GUICtrlCreateListViewItem($split[1]&"|"&$split[2], $serverList)
Next
$BtnAdd = GUICtrlCreateButton("Add Server", 10, 165, 80, 30)
GUICtrlSetOnEvent(-1, "Addi")
$BtnSelect = GUICtrlCreateButton("Set Active", 100, 165, 80, 30)
GUICtrlSetOnEvent(-1, "SelectItem")
$BtnLaunch = GUICtrlCreateButton("Launch WoW", 310, 165, 80, 30)
GUICtrlSetOnEvent(-1, "Launch")
$ChkExit = GUICtrlCreateCheckbox("Exit on Lauch", 220, 170)
GUICtrlSetState($ChkExit, $GUI_CHECKED)
GUISetState()
While 1
Sleep(10)
WEnd
EndFunc
Func Addi()
$err = 0
$addName = InputBox("Add Server", "Enter Name", "", " M", "190", "135")
$err += @error
$addAddr = InputBox("Add Server", "Enter Address", "", " M", "190", "135")
$err += @error
If $err = 0 Then
GUICtrlCreateListViewItem($addName&"|"&$addAddr, $serverList)
$realmsFile = FileOpen(@ScriptDir & "\MultiLauncher.txt", $FO_APPEND + $FO_CREATEPATH)
FileWriteLine($realmsFile, $addName&","&$addAddr)
FileClose($realmsFile)
EndIf
EndFunc
Func SelectItem()
$selectedServer = GUICtrlRead(GUICtrlRead($serverList))
$selectedServer = StringTrimRight($selectedServer, 1)
$split = StringSplit($selectedServer, "|")
_FileWriteToLine(@ScriptDir & "\realmlist.wtf", 1, "set realmlist "& $split[2], True)
UpdateLabel()
EndFunc
Func UpdateLabel()
$wtffile = FileOpen(@ScriptDir & "\realmlist.wtf", 0)
$wtftext = FileReadLine($wtffile, 1)
$wtftext = StringReplace($wtftext, "set realmlist ", "", 1)
GUICtrlSetData($currentServer, "Current server: "& $wtftext)
FileClose($wtffile)
EndFunc
Func Launch()
Run("WoW.exe", "")
If GUICtrlRead($ChkExit) = $GUI_CHECKED Then
BYE()
EndIf
EndFunc
Func BYE()
Exit
EndFunc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment