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:
G
Gendalf-golkiper 23.12.19

Saladin-sult-an
victory conditions have to do yourself manually

S
Saladin-sult-an 23.12.19

How can they deliver? Gendalf-golkiper, will not prompt?

G
Gendalf-golkiper 23.12.19

need a program to download, and there, inside and description will be.Called Darius the ETW Toolkit Preview.

N
Net Molotoff 23.12.19

Thanks to all who responded!Game perestanavlivat,too.Dear Saladin-sult-an!In the Language txt.is EN.Strange thing.On another forum brow the same,but how to help, no one knows.

g
georg7029 23.12.19

http://slil.ru/27369193
here's how to get around on the unlimited number of moves.only here it is possible to set how many moves

S
Saladin-sult-an 23.12.19

Yes, here's a reference to open factions - http://files.battles.su/etw_factions_unlocker.zip - download, run exe file, open startpos, put a checkmark in the desired fraction and stored

S
Saladin-sult-an 23.12.19

People, somebody Darius Toolkit ETW Preview will be able to send [email protected] and download why it is not very good. PLZ!
Here's an example of modding a unit with PAC Manager (took on one of the forums I checked - the Janissaries began with the guns - cool!):
In unit_stats_land.tsv find janissaries_cemaat in animation writing pr_custom_pistol_only in sledushaya column writing
x_euro_sword_pistol,then in the column before writing to pistol Accuracy,Accuracy in pripisivaem accuracy,and the following
recharge,then a flintlock,pistol again,popisoval how many charges there are/Ammo/in the next column write
foot_pistol and finally put a tick where we need if you want hide in the grass,which fortunately for owners
gun/he's 40 meters in girth/!Sohranyaet!
Go to unit_to_unit_abilities_junctions.tsv find janissaries_cemaat add them light_infantry_behaviour and
fire_volley and save !Now all you will have a very efficient unit of course have a price to povisit or
to make less people !
That all was shot once to prescribe in unit_stats_land.tsv - elite - otherwise it will shoot only the first row!

N
Net Molotoff 23.12.19

Dear forum members!Prompt,who knows!After installing some mods(mod with new voice acting,the mod improves the mini map)Russian font is changed to Polish or Czech.To play,of course you can...Can someone tell me how to solve this issue?Thanks in advance!Thanks to all who responded!Game perestanavlivat,too.Dear Saladin-sult-an!In the Language txt.is EN.Strange thing.On another forum brow the same,but how to help, no one knows.

S
Saladin-sult-an 23.12.19

SCREWY, thank you!!! Set, hire! :))

S
Saladin-sult-an 23.12.19

NET MOLOTOFF Well, if the problem is stable, try to remove the cause: After each installation of the mod (only one!) try again and again to run the game, if the font changes, you should change the installation order of the mods and reinstall the game again from scratch with a different mod. In short, so trying, I think, will be released on glyucheny fashion, and as will all tell me, let people know! (if only these two, I think buggy with the mini-map). Isumi Yes obrastet :)))

S
ShamomahS 23.12.19

I have a question. Can you access the other factions?
PS If this question where on the forum, sorry, did not see.

D
Dilord86 23.12.19

See above

S
Saladin-sult-an 23.12.19

Thank you, Haktar, definitely will use!

S
ShamomahS 23.12.19

Opened a fraction of the Mughals, the problem is, the fog of war is not removed, what can be done to remove it?

S
Saladin-sult-an 23.12.19

VoRoN_IlNaR, I don't know.... I believe that is the problem no one has yet decided... Bad, I'm embarrassed, especially when the state is huge.

S
ShamomahS 23.12.19

And where can I get the plugins to work in photoshop with the DDS files?

S
ShamomahS 23.12.19

To Haktar
Splint removes fog from all maps of the world, and I have to leave the current on my site.

s
spaike 23.12.19

VoRoN_IlNaR
Just move your agents,generals and armies across the map and vuale the fog will disappear)

S
ShamomahS 23.12.19

To spaike
I know about that. We're still in the topic Modding and Tuning Empire: Total War, so we do not need such methods of prehistoric use, it is necessary to find something smarter and more economical from the point of view of time. Here.

s
spaike 23.12.19

VoRoN_IlNaR
if I am not mistaken that game for minor factions still can zaparivatsya) so waiting for the rules mods. (yet they are not and will not be until the summer)