All pastes #442061 Raw Edit

g-mods

public text v1 · immutable
·published 2007-04-16 00:21 UTC
rendered paste body
;variables para el MSCN de windows
#include <GUIConstants.au3>
;declaración de variables locales y globales
Global $taimods
Dim $Input[9]
Dim $Radio[9], $nRadios = 8
Global $rutamod, $ultimomod, $numeromod, $modcolor
Global $rojo = 0xFF0000
Global $verde = 0x008000
Global $rutajuego = RegRead('HKEY_CURRENT_USER\' & 'Software\Blizzard Entertainment\Diablo II', 'InstallPath')
Global $rutajuego2, $rutajuego3

Interfaz() ;llamo a la interfaz como primera función

Func Interfaz()
acstatus()
$taimods = GUICreate("G-MODS v0.1 por taigeto", 486, 403, 211, 148)
$Tab1 = GUICtrlCreateTab(0, 0, 481, 400, $TCS_BUTTONS)
GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
$Instalar = GUICtrlCreateTabItem("Instalar")
GUICtrlSetState($Instalar,$GUI_SHOW)
$Group1 = GUICtrlCreateGroup("Selecciona qué quieres instalar y su carpeta dentro del gestor", 24, 32, 441, 321)
GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
$Input[0] = GUICtrlCreateInput(@ScriptDir & "\pd2spa", 256, 56, 190, 24)
GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
$Input[1] = GUICtrlCreateInput(@ScriptDir & "\pd2eng", 256, 88, 190, 24)
GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
$Input[2] = GUICtrlCreateInput(@ScriptDir & "\vancomp", 256, 118, 190, 24)
GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
$Input[3] = GUICtrlCreateInput(@ScriptDir & "\vansin", 256, 150, 190, 24)
GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
$Input[4] = GUICtrlCreateInput(@ScriptDir & "\vanbug", 256, 182, 190, 24)
GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
$Input[5] = GUICtrlCreateInput(@ScriptDir & "\mmbot", 256, 214, 190, 24)
GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
$Input[6] = GUICtrlCreateInput(@ScriptDir & "\mod1", 256, 246, 190, 24)
GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
$Input[7] = GUICtrlCreateInput(@ScriptDir & "\mod2", 256, 280, 190, 24)
GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
$Input[8] = GUICtrlCreateInput(@ScriptDir & "\mod3", 256, 312, 190, 24)
GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
$Radio[0] = GUICtrlCreateRadio("Patch Original", 34, 56, 113, 30)
GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
$Radio[1] = GUICtrlCreateRadio("Patch en Inglés", 34, 88, 122, 30)
GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
$Radio[2] = GUICtrlCreateRadio("Vanessa Completo", 34, 120, 145, 30)
GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
$Radio[3] = GUICtrlCreateRadio("Vanessa SIN", 34, 152, 137, 30)
GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
$Radio[4] = GUICtrlCreateRadio("Vanessa + Bug Duriel", 34, 184, 170, 30)
GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
$Radio[5] = GUICtrlCreateRadio("MOD del MM.Bot", 34, 216, 160, 30)
GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
$Radio[6] = GUICtrlCreateRadio("Tu MOD 1", 34, 248, 121, 30)
GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
$Radio[7] = GUICtrlCreateRadio("Tu MOD 2", 34, 280, 137, 30)
GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
$Radio[8] = GUICtrlCreateRadio("Tu MOD 3", 34, 312, 97, 30)
GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("Instalar", 352, 360, 113, 33, 0)
GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
$Status = GUICtrlCreateTabItem("Status")
$Group2 = GUICtrlCreateGroup("Estado del gestor", 8, 32, 457, 57)
GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
$Label1 = GUICtrlCreateLabel("Último MOD instalado:", 16, 56, 131, 20)
GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
$Label2 = GUICtrlCreateLabel($ultimomod, 212, 56, 150, 20, $SS_CENTER)
GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
GUICtrlSetColor(-1, $modcolor)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button2 = GUICtrlCreateButton("Desinstalar todo", 152, 352, 150, 30, 0)
GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
$Group3 = GUICtrlCreateGroup("Ruta del juego", 8, 108, 457, 57)
GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
$rutajuego2 = GUICtrlCreateInput($rutajuego, 16, 128, 432, 24)
GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Ayuda = GUICtrlCreateTabItem("Ayuda")
$Edit1 = GUICtrlCreateEdit("", 8, 40, 464, 345, BitOR($ES_AUTOHSCROLL,$ES_READONLY,$ES_WANTRETURN,$WS_VSCROLL))
GUICtrlSetData(-1, StringFormat("GESTOR DE MODS 'G-MODS' V0.1\r\n_____________________________\r\nEsta utilidad la he programado para uso personal por lo que no tiene mucha\r\nfuncionalidad. Si me dais ideas ya la iré ampliando.\r\nLo único que hace es cambiar el contenido de la carpeta del juego \\data y \r\nel patch_d2.mpq que esté dentro de la carpeta del MOD indicado. Así de \r\nfácil. Sólo que con una interfaz gráfica para facilitar su uso.\r\nTambién incluyo el código fuente para que cualquier pueda personalizarlo a\r\nsu gusto.\r\n\r\nINSTALACIÓN\r\n_____________\r\nDescomprime la carpeta de este gestor donde quieras. Si la quieres tener en\r\nel escritorio funcionará de la misma manera que si la tienes en la carpeta del\r\njuego. Lo único que hace falta es que dentro tengas las carpetas de los mods\r\ny que en el Status tengas bien puesta la ruta del juego (en teoría tendría\r\nque cogerla automáticamente). En mi caso la tengo dentro de \r\nC:\\Archivos de programa\\Diablo II\\ con un acceso directo desde el\r\nescritorio.\r\n\r\nDESINSTALACIÓN\r\n_________________\r\nEn la pestaña de Status, clic sobre "&Chr(34)&"Desinstalar todo"&Chr(34)&" y el gestor recuperará\r\nel estado original del juego. Borra la carpeta del gestor con él dentro y eso es\r\ntodo.\r\n\r\nLOS MODS QUE INCLUYE SON\r\n____________________________\r\n* Patch Original >> Es el patch_d2.mpq para la versión 1.11b en español.\r\nEste patch es el que se tiene al realizar una instalación limpia del diablo.\r\nSe usa como backup al desinstalar o cambiar de MODs.\r\n\r\n* Patch en Inglés >> Es el patch_d2.mpq para la versión 1.11b parcheado al\r\nInglés. Va bien para hacer screenshots de items en inglés.\r\n\r\n* Vanessa Completo >> MOD de Vanessa para la 1.11b.\r\nCorrige fallos en la versión española del diablo, colorea items, etc.\r\nhttp://vanessa.d2diablo2.com/ para más información\r\n\r\n* Vanessa SIN >> http://vanessa.d2diablo2.com/ para más información\r\n\r\n* Vanessa + Bug Duriel >> Parche de Vanessa que se aprovecha del bug\r\ndel ojo de Duriel en el primer portal del acto 1.\r\n\r\n* MM.Bot >> Este es el MOD que utiliza el bot MM.Bot para identificar mejor\r\nobjetos y ganar precisión en la versión 5.44b6 por lo que si no utilizas\r\neste bot no tiene sentido instalarlo. Ni que decir tiene que puedes cambiar\r\nel mod del bot por otro dentro de su carpeta (de otra versión por ej.)\r\n\r\n* Tu MOD 1, 2, 3 >> Aquí se pueden meter los mods/patchs que uno quiera.\r\nYo utilizo un par de mods personalizados para tener un radio de luz completo,\r\nmostrar las trampas en el minimapa, etc. Cada uno como vea. Para hacerlo\r\nsólo tienes que copiar el patch_d2.mpq o \\data dentro de mod1, mod2 o\r\nmod3.\r\n\r\nPara instalar más mods recomiendo visitar\r\nhttp://www.edgeofnowhere.cc/\r\n\r\nAUTOR\r\n_______\r\nJ.M. aka taigeto\r\ntaigeto@gmail.com\r\nICQ: 86-022-804\r\nIRC: taigeto @ irc.omnesia.net || irc.dclone.net || irc.d2jsp.org\r\nSi vais a modificarlo y distribuirlo por ahí mencionadme al menos :P"))
GUICtrlSetFont(-1, 7, 400, 0, "Microsoft Sans Serif")
GUICtrlCreateTabItem("")
GUISetState()

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1
			Instalar()
		Case $Button2
			Desinstalar()
		Case Else ;;;;
	EndSwitch
WEnd
EndFunc

Func Instalar()
	For $i=0 to $nRadios
		If BitAnd(GUICtrlRead($Radio[$i]),$GUI_CHECKED) = $GUI_CHECKED Then
			$rutamod = GUICtrlRead($Input[$i])
			$numeromod = $i
			;MsgBox(0, "Has pulsado", "el input " & $i+1 & " y la carpeta " & $rutamod)
			;Exit
		EndIf
	Next
	If nodiablo() Then 
		Return
	EndIf
	RegWrite ('HKEY_CURRENT_USER\' & 'Software\Blizzard Entertainment\Diablo II',"UltimoMOD","REG_SZ",$numeromod)
	acstatus()
	$rutajuego3 = StringTrimRight(GUICtrlRead($rutajuego2),1)
	If FileExists($rutamod & "\patch_d2.mpq") Then ; en el caso de que haya patch_d2.mpq dentro del mod
		DirRemove($rutajuego3 & "\data", 1)
		FileCopy($rutamod & "\patch_d2.mpq", $rutajuego3, 1)
	Else                                           ; en el caso de que haya \data
		DirRemove($rutajuego3 & "\data", 1)
		DirCopy($rutamod, $rutajuego3, 1)
		FileCopy(GUICtrlRead($Input[0]) & "\patch_d2.mpq", $rutajuego3, 1)
	EndIf
	MsgBox(1,"Mod Instalado", $ultimomod & " instalado correctamente")
	GUIDelete($taimods)
	Interfaz()
EndFunc

Func Desinstalar() ;borra el ultimo
	If nodiablo() Then 
		Return
	EndIf
	RegWrite ('HKEY_CURRENT_USER\' & 'Software\Blizzard Entertainment\Diablo II',"UltimoMOD","REG_SZ","255")
	$rutajuego3 = StringTrimRight(GUICtrlRead($rutajuego2),1)
	DirRemove($rutajuego3 & "\data", 1)
	FileCopy(GUICtrlRead($Input[0]) & "\patch_d2.mpq", $rutajuego3, 1) ; al desinstalar restauro todo con el parche original
	MsgBox(1,"Mods Desinstalados", "Mods desinstalados correctamente")
	GUIDelete($taimods)
	Interfaz()
EndFunc

Func acstatus() ; para indicar en el status que mod fue el ultimo que se instalo
$status = RegRead('HKEY_CURRENT_USER\' & 'Software\Blizzard Entertainment\Diablo II',"UltimoMOD")
If $status = 0 Then
$ultimomod = "Patch Original"
$modcolor = $verde
ElseIf $status = 1 Then
$ultimomod = "Patch en Inglés"
$modcolor = $verde
ElseIf $status = 2 Then
$ultimomod = "Vanessa Completo"
$modcolor = $verde
ElseIf $status = 3 Then
$ultimomod = "Vanessa SIN"
$modcolor = $verde
ElseIf $status = 4 Then
$ultimomod = "Vanessa + Bug Duriel"
$modcolor = $verde
ElseIf $status = 5 Then
$ultimomod = "MOD del MM.Bot"
$modcolor = $verde
ElseIf $status = 6 Then
$ultimomod = "Tu MOD 1"
$modcolor = $verde
ElseIf $status = 7 Then
$ultimomod = "Tu MOD 2"
$modcolor = $verde
ElseIf $status = 8 Then
$ultimomod = "Tu MOD 3"
$modcolor = $verde
Else
$ultimomod = "Ninguno"
$modcolor = $rojo
EndIf
EndFunc

Func nodiablo() ; compruebo que no está ejecutándose el diablo 2
	If ProcessExists("D2Loader-1.11b.exe") OR ProcessExists("D2-Loader1.11b.exe") OR ProcessExists("Diablo II.exe") OR ProcessExists("Game.exe") OR ProcessExists("D2Loader.exe") Then
		MsgBox(1,"MOD no instalado", "Cierra antes el juego")
		Return True
	Else
		Return False
	EndIf
EndFunc