3 New Notifications

New Badge Earned
Get 1K upvotes on your post
Life choices of my cat
Earned 210

Drag Images here or Browse from your computer.

Trending Posts
Sorted by Newest First
H
Haktar 23.12.19 09:27 pm

Modding and Tuning Empire: Total War (Empire: Total War)

Start modding in Empire: Total War

Article from Fox from Targowisko

Unpacking from Alpaca and Sinople:
To unpack managed with ease in the screenshot trappers are fighting on the side of the British (also known as loyalists) :
http://radikal.ru/F/s39.radikal.ru/i084/0902/1a/7a35a7a33451.jpg.html
Link to unpacker - http://imperialtw.narod.ru/moding/Emp_unpacker.zip
To open a file archiver (Lis: I vinrar 3.5, opened easily)
To use:
1.To move the unpacker in the data folder, start the .bat file.
2. Everything is unpacked in the folder will be unpacked
*Requires Python (Lis: library language, you can take - http://www.python.org/ftp/python/3.0.1/python-3.0.1.msi

Tested for performance.
Should:
1. To Install Python. The link above.
2. To transfer files unpacker at (I) C:\Program Files\Steam\steamapps\common\empire total war demo\data
3. To open a file emp_unpacker.py by clicking on it right mouse button and selecting Edit with IDLE.
Two Windows will be opened. Python Shell do not touch. From the second window, erase everything and replacing it with:

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 = []
selfnumFiles = 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.pathrb)
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)
4. Save, run the bat-file emp_unpacker.py -u all.bat

After unpacking, don't forget to rename demo1.pack demo1.pack_backup, then transfer the files to the root directory, here you will be able to modify them.

A slight modification of the game:

Infantry shoots three rows:
http://s49.radikal.ru/i125/0902/a3/7c88c6c90928t.jpg

Find the unit you want to change







fire_volley

Change to:







rank_fire
You do not have two letters, as rank_fire shorter than fire_volley. It is recommended to add two letters to the name of the General. (Fox: how to do it you will understand further)

To change the number of soldiers in the unit:
Find:

and replace


Then find:

William Howe
and replace

William How

The experience of detachment:
Find:






rank_fire
square_formation
ring_bayonets



Zero change in 3. No other changes are required.

Adding ships to the game:
This is done in the file battle_of_lagos.xml
Manual no, apparently it is simple copy and paste.
britain









With all the questions on this post here: Modding and Tuning for ETW, Share experiences, tutorials, tips - http://imperiall.1bb.ru/index.php?showtopic=3802

Drugiye instructions for modding Empire: Total War: a Manual for ETW Modder, Instructions for the novice Modder - http://imperiall.1bb.ru/index.php?showtopic=3805
169 Comments
Sort by:
w
wehr 23.12.19

Maalex
The easiest way to replace this ability on the best analogue - shooting ranks. In General you need PackFileManager and desire\is the desire to know the unknown tobish to look to pack files.
In short:
- open the patch3.pack with PackFileManager;
in section db otkryvali table unit_to_unit_abilities_junctions;
- find the necessary unit\units;
- prescribe this\these units is platoon_fire - rank_fire.
All try!

Good luck.

M
Maalex 23.12.19

wehr, thank you very much.
PS Not looking. Perished in the desire to know the unknown... :))

H
HiddenWind 23.12.19

Hi all! I write the first time actually, so please respond. Play a long time. I think I understand the game perfectly. But modding for the first time puzzled. How to make the game Empire: Total War the main campaign you could hire an army in one turn.

H
HiddenWind 23.12.19

How to hire an ARMY in one turn.

H
HiddenWind 23.12.19

Hi all! I write the first time actually, so please respond. Play a long time. I think I understand the game perfectly. But modding for the first time puzzled. How to make the game Empire: Total War the main campaign you could hire an army in one turn.

H
HiddenWind 23.12.19

v1.5.0 build 1330.21557

m
morison1991 23.12.19

Fashion cost?

H
HiddenWind 23.12.19

Mod removes fog of war and editor of moves.
+all add-ons.

m
morison1991 23.12.19

In short, make it so! In the themes is the theme Fashion tools to them the problem, go up there and shake PFM 13, DBEditor 18! Doing everything according to the instructions and open the PFM - om patch3.pack and select the tab units_tables and it units! Look at the list Turns to Build and modify next to the name of required units the number of moves for hiring! How to do that would be in the same city hired 10 or 20 units I don't know, but the later buildings of 8-9 units with hiring of 1 course is easy!If you right a bloody nose as it is necessary that the building gained 10 units at a time -write will understand, but..... why is it, zavoevyvaet new city..!

D
Darth Betrayal 23.12.19

people, such question - how to make a minor a major?

H
HiddenWind 23.12.19

Do not open the units folder.

H
HiddenWind 23.12.19

How to change employment in the editor do not change the number.

m
morison1991 23.12.19

++++++First of all if you have the latest update, open patch4. pack second
.
.....Do not open the units folder......

+++And you've read where I you Modreactor sent, that you need to install them both and get the file Common.dll and paste it in the folder of PFM 13 ? Or you entered a wrong path and you have nothing opened and not found?

H
HiddenWind 23.12.19

Everything works fine, thank you morison1991.

m
morison1991 23.12.19

deadly45481
Glad to help! Success in Maddaloni and editing!

H
HiddenWind 23.12.19

Where all units in the game.

m
morison1991 23.12.19

deadly45481
It is the question? All in патч4пак or патч3пак(without the last patch, if)? Razblokirovat EXE-shnikom.And that?

H
HiddenWind 23.12.19

Can I move units with license pirates?

m
morison1991 23.12.19

deadly45481
........................... Can I move units with license pirates?.................................

++++++++++++ Move -no, but if I do this, then.............! Put all the patches put out last patch, crack and ........the wheels provide the rider a good ride!!!

H
HiddenWind 23.12.19

Thank you everything works.