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:
P
Poddatyy 23.12.19

Who can make the rules. the game for all factions!!! Tried as spaike and Haktar not go crashes when loading the campaigns for minor factions!!!

HELP!!!Medic!

a
adv_BRAVO 23.12.19

Dilord86
well, links skins! greedy!!! ;)))

Gendalf-golkiper
improving there is
you're about the same?
then well, links skins! greedy!!! ;)))

G
Gendalf-golkiper 23.12.19

uh...I actually wrote about shooting a few lines))
and so all rasplachivaetsya, just do it carefully, everything is there correctly

D
Dilord86 23.12.19

Bravo_13
http://downloads.sourceforge.net/etw-mod-tools/PackFileManager_1-9.zip?use_mirror=osdn

The one, huh!?

G
Gendalf-golkiper 23.12.19

YAY!I finally after a long search, found the file which changes the number of units(each can be set individually), their perfomance, price, etc. and a bunch more!HOORAY again!

s
spaike 23.12.19

Screwy
And for poznawanie to play it ... then you can install the mod - late company . the company starts in 1783 , the year of the founding of the United States and estesno many factions which were not playable before now)

http://www.twcenter.net/forums/showthread.php?t=234342 - there are links to jump to the first post . Installation is easy, just stupid throws everything in the game folder, BUT copy the SteamSteamAppscommonempire total war\data\!campaigns! this folder just some just mod buggy (I've had no glitch)

http://www.twcenter.net/forums/forumdisplay.php?f=1075 - implemented all the fashion at the moment(English forum)

http://www.twcenter.net/forums/showthread.php?t=237457 - link to topic with mods that improve the music(the March of the drum etc), smoke(very efektno), and dobavlyali blood(optional) . Installing any of these mods easy to throw in the downloaded folder - \empire total war\data\ all .

G
Gendalf-golkiper 23.12.19

spaike
and you have changed the number of soldiers in the unit?

s
spaike 23.12.19

Gendalf-golkiper
for me personally it's not a priority))) performance don't wanna lose)

G
Gendalf-golkiper 23.12.19

well, unlikely the performance will decrease if unit add 20))in General, asked so, maybe
just someone already tried, and I still need found, but not yet changed

s
spaike 23.12.19

Gendalf-golkiper
well, 20 people is to assign reason then and there))) and generally try, there is nothing complicated there then accomplish your goal as it should)

P
PAWEEL 23.12.19

I tried to double:
army ogromnye so that they are not in a rush to control, but still lag starts!!!

G
Gendalf-golkiper 23.12.19

spaike
why.Here, for example, to add more soldiers there are different tribes, the Ottomans(such as the large population), the French, well, in General-that little tweak)

I
IronDemon 23.12.19

Who was a little 2 stroke in a year? Your dream come true ;) a 4 stroke.
http://www.twcenter.net/forums/showthread.php?t=240277
You must start a new game.

S
Saladin-sult-an 23.12.19

People who are not difficult, throw off please on soap [email protected] PackFileManager_1.9, and then for some reason can't download from Yandex People

P
Poddatyy 23.12.19

Saladin-sult-an Here.

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!

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!

G
Gendalf-golkiper 23.12.19

reinstall the game.another solution I do not know, I had something similar and had to reinstall

S
Saladin-sult-an 23.12.19

Thanks to all who responded.
RESPECT Screwy!
Tell, and somebody to be able to play for a minor faction, not just using Hex Workshop, put 01 in there, but really, with normal victory conditions, without the fog of war, without the protectorate (such as, for example, Lusitania etc.) with buildings in the capital. I heard somewhere that it is actually smedit, but maybe someone will tell us?

S
Saladin-sult-an 23.12.19

Net And Molotoff in the Language what language is? Try to change to EN