First I'd like to thank John Doe for pointing out a few important variables in script.bin I used along with this exe modification. What I decided to do was to modify the Fisticuffs script. I changed the people and the faction they belonged to. I then changed the TNGs around that dumped the Bandits into Bowerstone and mainly right in front of the tavern area.
First in script.bin I changed the start and end time to around 8:30 am - 10:30 am. I enlarged the ring radius (not enough in the video) and increased the timeout. I then laid down the markers to get bandits around the exits and replaced Tyler with another class of bandits and had him go into the tavern and wait on you. If you fight the bandits they will go away and leave the town alone. If you watch the video you'll see that level 3 bandits raid the town and you only fight level 1 bandits. Well besides Tyler, who is a level 2. I only did this because the guards can kill a raiding level 1 to easily and level 3 are hard fighting by hand. This is of course the first fisticuffs level so it shouldn't be that difficult.
Anyhow lets go through the exe modifications.
.text:00E8491F loc_E8491F: ; DATA XREF: .text:off_E84968o
.text:00E8491F push 0FFFFFFFFh ; jumptable 00E84918 case 1
.text:00E84921 push offset aCreature_bs_fi ; "CREATURE_BS_FISTICUFFS_MEMBER"
.text:00E84926 jmp short loc_E8494A
These are the people who will rush into town. Not the people who you'll fight against. I'm using this in place of the above creature.
.rdata:012E2BB0 aCreature_ban_7 db 'CREATURE_BANDIT_LEADER_LEVEL3',0
Then you need to replace the "Champion" aka Tyler (Fight Club reference) as referred to by Fable.
.text:00E849BF loc_E849BF: ; DATA XREF: .text:off_E84A08o
.text:00E849BF push 0FFFFFFFFh ; jumptable 00E849B8 case 1
.text:00E849C1 push offset aCreature_bs_pu ; "CREATURE_BS_PUNCH_CLUB_CHAMPION_01"
.text:00E849C6 jmp short loc_E849EA
In place of the push "CREATURE_BS_PUNCH_CLUB_CHAMPION_01" I'm calling
.rdata:012DEEA8 aCreature_bandi db 'CREATURE_BANDIT_GRUNT_LEVEL2',0
I know a level 2 while the others are level 3. Well the guards won't attack this one because he is not an enemy. If he were you could not ask him to fight. Remember you do not fight the level 3 bandits.
This is all worthless unless you make them your enemy. So:
.text:00E83B27 push offset aFaction_neut_0 ; "FACTION_NEUTRAL"
I replaced neutral with:
.rdata:0125FE68 aFaction_bandit db 'FACTION_BANDITS',0 ; DATA XREF: sub_6DEEE0+252o
Now if you wanted to (I wouldn't do this as it breaks the fisticuffs stuff) you can change the Fisticuffs champion's faction.
.text:00E8372E push offset aFaction_neut_0 ; "FACTION_NEUTRAL"
With the same as I did above would work.
Now you'll need to change the people who you are to fight against. locate:
.text:00E8A2BE push offset aCreature_bs__6 ; "CREATURE_BS_FISTICUFFS_FIGHTER_01"
.text:00E8A2C3 lea ecx, [esp+0CCh+var_8C]
.text:00E8A2C7 call sub_99EBF0
.text:00E8A2CC push 0FFFFFFFFh
.text:00E8A2CE push offset aCreature_bs__7 ; "CREATURE_BS_FISTICUFFS_FIGHTER_02"
.text:00E8A2D3 lea ecx, [esp+0CCh+var_88]
.text:00E8A2D7 call sub_99EBF0
.text:00E8A2DC push 0FFFFFFFFh
.text:00E8A2DE push offset aCreature_bs__8 ; "CREATURE_BS_FISTICUFFS_FIGHTER_03"
.text:00E8A2E3 lea ecx, [esp+0CCh+var_84]
.text:00E8A2E7 call sub_99EBF0
.text:00E8A2EC push 0FFFFFFFFh
.text:00E8A2EE push offset aCreature_bs__9 ; "CREATURE_BS_FISTICUFFS_FIGHTER_04"
.text:00E8A2F3 lea ecx, [esp+0CCh+var_80]
.text:00E8A2F7 call sub_99EBF0
.text:00E8A2FC push 0FFFFFFFFh
.text:00E8A2FE push offset aCreature_bs_10 ; "CREATURE_BS_FISTICUFFS_FIGHTER_05"
Now for each "push offset aCreature_bs__" I'm calling a level 1 bandit as I said before.
.rdata:012E5634 aCreature_ban_8 db 'CREATURE_BANDIT_GRUNT_LEVEL1',0
That is it you did enough to have raiding bandits. I had a lot of fun with this one. So much I plan on doing the rest of the towns and maybe actually releasing something out of it. I plan on the future of changing some of the other fisticuffs stuff, like them cheering or their speech itself. I also am curious on some of the idle stuff so they don't look dumb when they aren't busy killing your town.
I've included a brief youtube video that shows what I did. You'll see that the bandits still fight each other like the fisticuffs did. I liked it that way as it kept the bandits moving through the town and gave them something to do.
Cheers,
I'll pose the same challenges (hit the spoiler tag to see them again) as before as I am feeling a bit lazy and I don't think anyone is going to seriously participate in this.
Toggle Spoiler
EXE - Modify something along the lines of the minion in the barrel example. (Don't do a different creature, don't even do the barrels) Just do something simple that modifies a segment that has not been indentified and report how you did it. I'll even give a generic example of what last I tried. I was trying to make people able to have sex outside of marriage. Meaning that you could pick up someone without marrying them and only required to have a house in that town. I made it to the go to bed question but I was never prompted like the game does. So it was very close.
STB - Modify a level. I'm more interested in if you can move a segment of land. More than likely you'll need to familiarize with the texture coordinates and how it all works. If you need something to decompress the sections PM me and perhaps I'll give you a generic utility that compresses and packs a lev file. (Only works on Creature Hub as I hardcoded unknown data).
Perhaps do something level related. Like create a new one? You could copy old data and borrow existing data to simply prove that you were able to and have the game accept it.
Thanks for the video upload Silver,
http://www.youtube.com/watch?v=A6J4cY1htlc
[Updated on: Fri, 18 April 2008 02:03]
Report message to a moderator