¡No estás registrado! Recuerda que para poder participar debes registrarte.
  Registrarse Buscar FAQ Miembros Grupos de Usuarios Login  
Este tema está cerrado y no puede editar mensajes o responder Guía para Modear la Demo del Empire :Total War by Katalambda
Guía para Modear la Demo del Empire :Total War by Katalambda
Katalambda
Gladiator [gladiador]

Registrado: 22 Feb 2009
Mensajes: 60
Ubicación: At London gates, defending the Greatest Empire ever
Responder citando
Guía sobre cómo modear la Demo, katalambda (katkiller para los viejos amigos xD).

Antes que nada quiero decir que no me hago responsable de los pasos a seguir por los que sigan este tutorial, háganlo bajo su propio riesgo, responderé a las dudas que tengan pero bajo ningún concepto asumiré las responsabilidades de lo que hagan con sus archivos.

Es sumamente recomendable que hagan una copia de la carpeta Data la cual es con la que vamos a trabajar y se encuentra en:

Steam/Steammapps/common/empire total war demo/data.

Antes que nada nos bajaremos el Python, la versión 3.1, si usas Vista es la de 86x:
http://www.python.org/download/releases/3.0.1/

Ok, una vez instalado vamos a Inicio-Todos los Programas-Python-IDLE (PYTHON GUIDE), lo abrimos.

Una vez en Python le damos a File/New Window y se nos abrirá otra ventanida así:





Una vez abierta la nueva ventana, dentro copiaremos esto tal cual, copia y pega de aquí a ahí:





import struct, os, sys, re

# For easy file reading and writing interactions
def readLong(fhandle):
return struct.unpack('l', fhandle.read(4))[0]
def readShort(fhandle):
return struct.unpack('h', fhandle.read(2))[0]
def readByte(fhandle):
return struct.unpack('B', fhandle.read(1))[0]
def readBool(fhandle):
val = fhandle.read(1)
if val == "00":
return False
else:
return True

def writeLong(fhandle, value):
fhandle.write(struct.pack('l',value))
def writeShort(fhandle, value):
fhandle.write(struct.pack('h',value))
def writeByte(fhandle, value):
fhandle.write(struct.pack('B',value))
def writeBool(fhandle, value):
if value:
fhandle.write('\x01')
else:
fhandle.write('\x00')

def removeDir(path):
# remove all files in a folder
if not (os.path.isdir(path)):
return True

files = os.listdir(path)

for x in files:
fullpath=os.path.join(path, x)
if os.path.isfile(fullpath):
os.remove(fullpath)
elif os.path.isdir(fullpath):
removeDir(fullpath)
os.rmdir(path)

def parseArgs(args):
pack = packFile('demo1.pack','unpacked')

# create argument tree
argtree = []
for arg in args[1:]:
if arg.startswith('-'):
argtree.append([arg,[]])
else:
argtree[-1][1].append(arg)

# wander the tree, top level always has hyphenated arguments
for arg in argtree:
# case 1: list
if arg[0] == '-l':
if len(arg[1]) > 0:
for file in arg[1]:
pack.printEyeCandy(str(file))
else:
pack.printEyeCandy('./list.txt')
# case 2: unpack
elif arg[0] == '-u':
for file in arg[1]:
if file == 'all':
for i in range(len(pack.files)):
pack.exportFile(i)
else:
pack.exportFile(file)
# case 3: unpack (regexp)
elif arg[0] == '-ur':
for file in arg[1]:
pack.exportFile(file, True)
# case 4: change pack
elif arg[0] == '-p':
for file in arg[1]:
print()
print('Changing pack to '+file)
print()
pack.newPack(file,pack.outputdir)
# case 5: change output directory
elif arg[0] == '-o':
for file in arg[1]:
print()
print('Changing output directory to '+file)
print()
pack.changeOutputDir(file)


class packFile:
def __init__(self, path='', outputdir=None):
self.handle = None
if outputdir:
removeDir(outputdir)
self.newPack(path,outputdir)

def newPack(self,path,outputdir=None):
# safely open new pack
if self.handle:
self.handle.close()
self.handle = None
self.files = []
self.numFiles = 0
self.arr = 0
self.outputdir = outputdir
self.defLength = 0
self.path = path
self.readPackDefinition()

def changeOutputDir(self,path):
self.outputdir = path
if self.outputdir != None:
removeDir(self.outputdir)

def packOpen(self):
if not self.handle:
self.handle = open(self.path,"rb")
return self.handle

def packClose(self):
self.handle.close()

def readPackDefinition(self):
pack = self.packOpen()

# skip empty bytes and stuff at the start
pack.seek(16)
self.defLength += 16

# read number of files
self.numFiles = readLong(pack)
self.defLength += 4

# read ??
self.arr = readLong(pack)
self.defLength += 4

# store the offset of a certain file
offset = 0
# read file metadata
for i in range(self.numFiles):

# read length of file
length = readLong(pack)
self.defLength += 4

# read file name
char = ''
filename = ''
while char != b'\x00':
char = pack.read(1)
if (char != b'\x00'):
filename += char.decode()
self.defLength += 1
self.files.append((filename,length,offset))
offset += length

def exportFile(self, arg, regexp = False):
try:
arg = int(arg)
# option a: arg is an index
list = [self.files[arg]]
except:
# option b: arg is a string
if regexp:
list = filter(lambda x: re.search(str(arg),x[0]),self.files)
else:
list = filter(lambda x: arg in x[0],self.files)
for (path,length,offset) in list:
print('Exporting '+path+', length: '+str(length)+', at offset: '+str(offset))

# create output directory
dir = os.path.split(os.path.join(self.outputdir,path))[0]
if not os.path.isdir(dir):
os.makedirs(dir)
output = open(os.path.join(self.outputdir,path),'wb')

# open pack and go to offset
pack = self.packOpen()
pack.seek(self.defLength+offset)
# copy content
i = 0
# read MB-sized chunks as long as possible
j = length//(2**20)
while i < j:
output.write(pack.read(2**20))
i+=1
i = 0
j = (length%(2**20))//(2**10)
# read KB-sized chunks
while i < j:
output.write(pack.read(2**10))
i+=1
i = 0
j = length%(2**10)
# read byte-sized chunks
while i < j:
output.write(pack.read(1))
i+=1
output.close()
return True



def printEyeCandy(self, outfile):
output = open(outfile,'w')
for (path,length,offset) in self.files:
output.write(str(path)+'\r\n')
output.close()


# main
parseArgs(sys.argv)




Una vez hecho esto le dan a File/Save as y le ponen este nombre emp_unpacker.py y lo guardan en la carpeta Steam/Steammapps/common/empire total war demo/data

Ok, ahora cerramos el python, la dos ventanas y vamos al CMD, si tienes XP, yo no uso XP, vas a inicio ejecutar CMD y tecleas la ruta desde C:Donde quieras que tengas los programas\steam\steamapps\common\empire total war demo\data y listo, si tienes VISTA como yo vete a la carpeta Data y con el shift presionado le das al botón derecho y le das donde pone "abrir ventana de comandos aquí" no hace falta que pongas nada ya que tendrás la ruta puesta.



Bien, ahora aquí introduces lo siguiente tras toda esa linea de comandos:
emp_unpacker.py -u all

Ahora deberías ver como se descomprimen una serie de elementos que van directamente a tu carpeta Data y se almacenan en una carpeta llamada unpacked, de aquí copias, copias no cortas que sino se va todo a la M, copias y pegas todo su contenido en la carpeta Data y le dices que sí a reemplazar todo.

Ahora en la carpeta Data mueve el archivo demo1 a donde te dé la gana pero quítalo de la carpeta Data o no funcionarán los cambios que hagas para las unidades.

Y tachán, ya tienes todos los archivos a modear ahí mismo.

Ahora te preguntarás cómo modeas las unidades o los barcos.

Pues aquí está la respuesta:

Carpeta Data/Scenarios y vamos a coger por ejemplo Battle_of_lagos como ejemplo, abrimos ese archivo de extensión XML con el bloc de notas.



Yo he creado el First Rate Ship o navío de primera línea "Canarias", el mejor sitio del mundo RazzP xD, es simple, con fijarse en los demás comandos de la lista y copiando y pegando se crean cuantos barcos quieras, de primera, segunda, tercera o cuarta línea, solo se ha de cambiar las coordenadas para que no estén juntos en la batalla que si tropiezan sufren daños.

No se puede cambiar la nacionalidad de los barcos, son británicos y así han de permanecer porque sino el juego se cuelga, seguro.

Donde pone "<ship_experience level="X"/>" el valor X podemos poner entre 0 y 9, esa será la experiencia de nuestro navío.




Para las tropas? pues lo mismo, buscamos la batalla de Brandywine y vemos las tropas, el número de tropas está en el valor <unit unit_category="infantry" num_soldiers="1200" script_name="britain_euro_grenadiers_bearskin"> 1200 es el valor que le he puesto yo y esto sería la imagen en el juego de mi pequeño ejército, por cierto son mucho mayores que en los anteriores Total War ya que parece incluso que no hay límite, aunque hasta 10.000 he llegado yo.

Aquí tienen a mis fusileros Británicos o más bien una Horda:


_________________



England Expects That Everyman Will Do His Duty.

Horatio Nelson in the glorious victory at Trafalgar.
Ver perfil de usuarioBuscar todos los mensajes de KatalambdaEnviar mensaje privado
Maximo.
~Praefectus~

Registrado: 03 Jun 2008
Mensajes: 6194
Ubicación: En las Tierras altas, intentado sacar mi espada de la cabeza de un ingles...
Responder citando
Ostias !!!

Esta muy bien, lastima que si pongo el empire mi PC explote...

Cuantos soldados te aguanta???

_________________

..............................................................................................................................................................................................................................Por la libertad !!!!!!!!!!!!!!!!!!!!!!
Ver perfil de usuarioBuscar todos los mensajes de Maximo.Enviar mensaje privado
Katalambda
Gladiator [gladiador]

Registrado: 22 Feb 2009
Mensajes: 60
Ubicación: At London gates, defending the Greatest Empire ever
Responder citando
Pues Máximo la verdad que hasta ahora me ha aguantado la de dios xDD porque mira que le he puesto, pero aguanta, no veas, y no veas también a todos esos granaderos tirando granadas contra el enemigo, parece un bombardeo aéreo xD

_________________



England Expects That Everyman Will Do His Duty.

Horatio Nelson in the glorious victory at Trafalgar.
Ver perfil de usuarioBuscar todos los mensajes de KatalambdaEnviar mensaje privado
Maximo.
~Praefectus~

Registrado: 03 Jun 2008
Mensajes: 6194
Ubicación: En las Tierras altas, intentado sacar mi espada de la cabeza de un ingles...
Responder citando
Me alegro por ti, aver si alguien con la demo viene y confirma si esta todo bien y funciona jeje.

_________________

..............................................................................................................................................................................................................................Por la libertad !!!!!!!!!!!!!!!!!!!!!!
Ver perfil de usuarioBuscar todos los mensajes de Maximo.Enviar mensaje privado
Katalambda
Gladiator [gladiador]

Registrado: 22 Feb 2009
Mensajes: 60
Ubicación: At London gates, defending the Greatest Empire ever
Responder citando
A ver si le funciona xD a mí esto tal cual me ha funcionado, he exprimido la demo al máximo xD

P.D: a tí no te va ni con los mínimos?

_________________



England Expects That Everyman Will Do His Duty.

Horatio Nelson in the glorious victory at Trafalgar.
Ver perfil de usuarioBuscar todos los mensajes de KatalambdaEnviar mensaje privado
Maximo.
~Praefectus~

Registrado: 03 Jun 2008
Mensajes: 6194
Ubicación: En las Tierras altas, intentado sacar mi espada de la cabeza de un ingles...
Responder citando
Me va el medieval al minimo... no te digo mas xDD

_________________

..............................................................................................................................................................................................................................Por la libertad !!!!!!!!!!!!!!!!!!!!!!
Ver perfil de usuarioBuscar todos los mensajes de Maximo.Enviar mensaje privado
Gale Geha
~Cursor~

Registrado: 06 Jul 2007
Mensajes: 3599
Ubicación: Yermo Capital
Responder citando
Admins, haced este tema Posit, por favor.

Muy buen tutorial Kat, por cierto, has puesto mi nombre al barco del almirante que me he dado cuenta XDDD.

_________________
Ver perfil de usuarioBuscar todos los mensajes de Gale GehaEnviar mensaje privado
Katalambda
Gladiator [gladiador]

Registrado: 22 Feb 2009
Mensajes: 60
Ubicación: At London gates, defending the Greatest Empire ever
Responder citando
Pues sí, para que vieran que se podía poner el nombre de alguien del foro.

_________________



England Expects That Everyman Will Do His Duty.

Horatio Nelson in the glorious victory at Trafalgar.
Ver perfil de usuarioBuscar todos los mensajes de KatalambdaEnviar mensaje privado
Guía para Modear la Demo del Empire :Total War by Katalambda
Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
Todas las horas son GMT + 1 Hora  
Página 1 de 1  

  
  
 Este tema está cerrado y no puede editar mensajes o responder  


Fitti Weblog | Ludoskopos | Jessica Alba
Roma: Guerra Total - Rome: Total War y Barbarian Invasion 2005 © (1649 días en línea)