Jump to content
CT075

Event Assembler Questions Thread

Recommended Posts

Haha, fair enough. I'm not opposed to chunky, dirty methods. That's one of the very definitions of a hack.

I didn't realise the allegiance had a range of spaces, that explains a fair bit. They did all change from a single use of the command though, so that might also be why. I'll play around with different values and see what happens.

Share this post


Link to post
Share on other sites

there are only slots for 0x48 (maybe even less) units per affiliation

i think there are less for NPC though

Share this post


Link to post
Share on other sites

the data suggests

- 62 for player

- 20 for NPC

- 50 for enemy

- 5 for the last allegiance*

*presumably because it's only used in the Arena where there is a max of 5 units

However keep in mind that this only includes how many units will be loaded and not necessarily how many are saved. Also this is just what the data suggests, I make no guarantees. You can also probably get away with putting more units using CUSI and stuff as it may... bypass the normal restriction.

Share this post


Link to post
Share on other sites

Hmm, finally got round to trying it. Started at 0x50, and a few knights and the boss were green instead of red. Incremented up to 54, until everything was eventually green. Thanks a lot!

Edited by LunaSaint

Share this post


Link to post
Share on other sites

Found it funny, my last post in this topic was back on page 44. So long ago..

Anyways, been trying my hand at this junk again, anyone any idea why every time I load up my game and begin the very first chapter, after it displays the chapter name it basically just sits there at a blank black screen?

//Made by markyjoe1990 of Youtube
//Modified by Nintenlord

#define DISABLE_TUTORIALS
#include EAstdlib.event

EventPointerTable(0x06,0)


ORG 0x8D80000
Pointers:
POIN TurnEvents
POIN CharacterEvents
POIN LocationEvents
POIN MiscEvents
POIN TerrainEvents TerrainEvents
POIN Bad Bad Bad Bad
POIN Good Good Good Good
POIN OpeningEvent EndingEvent

Bad:
UNIT 0x87 0x12 0x0 Level(1,Enemy,0) [10,1] [10,1] [0x1F,0x0,0x0,0x0] [0x3,0x3,0x9,0x20]
UNIT Empty

Good:
UNIT 0x3 0x2 0x0 Level(1,Ally,0) [1,6] [1,6] [0x1,0x6B,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT Empty

Eden:
UNIT 0x17 0x12 0x3 Level(1,Ally,0) [0,5] [2,4] [0x1F,0x6B,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT Empty

Knoll:
UNIT 0x39 0x24 0x3 Level(20,NPC,0) [2,6] [2,6] [0x44,0x6B,0x0,0x0] [0x0,0x0,0x0,0x0]
UnIT Empty

Blagglefar:
UNIT 0x8A 0x38 0x87 Level(1,Enemy,0) [10,6] [6,4] [0x6B,0x0,0x0,0x0] [0x0,0x19,0x1,0x0]
UNIT 0x8B 0x38 0x87 Level(1,Enemy,0) [10,6] [8,2] [0x6B,0x0,0x0,0x0] [0x0,0x3,0x1,0x0]
UNIT 0x8B 0x12 0x87 Level(1,Enemy,0) [10,6] [7,6] [0x1F,0x0,0x0,0x0] [0x0,0x3,0x1,0x0]
UNIT 0x88 0x12 0x87 Level(1,Enemy,0) [10,6] [12,3] [0x1F,0x0,0x0,0x0] [0x0,0x0,0x9,0x0]
UNIT Empty

TurnEvents:
TurnEventEnemy(0x05,Proclammation,1)
TURN

CharacterEvents:
CharacterEventBothWays(0x08,WeissEden,0x3,0x17)
CharacterEvent(0x09,TalkBoss,0x3,0x88)
CHAR

LocationEvents:
LOCA

MiscEvents:
DefeatAll(EndingEvent)
CauseGameOverIfLordDies
AFEV

TerrainEvents:
BLST
ALIGN 4

OpeningEvent:
CMOF
OOBB
LOU1 Bad Good Knoll
ENUN
BACG 0x0B
MUS1 0x3F
STAL 60
TEX1 0x815
MORETEXT 0x816
FADI 16
REBU
MUEN 4
REMA
FADU 16
MUS1 0x32
STAL 32
LOU1 Eden
ENUN
STAL 64
FADI 16
BACG 0x0B
TEX1 0x817
FADU 16
MOVE 0x39 [0,5]
ENUN
REPA 0x39
FADI 16
HIDEMAP
BACG 0x0B
FADU 16
SHOWMAP
TEX1 0x816
REMA
LOU1 Blagglefar
ENUN
ENDA

EndingEvent:
MNCH 0x1
STAL 1
_0x1
ENDA
//MoveToChapter(NextChapter)

Proclammation:
CURF 0x88
TEX1 0x819
ENDA

WeissEden:
TEX1 0x818
ENDA

TalkBoss:
TEX1 0x81A
ENDA

MESSAGE Events end at offset currentOffset
//The map for this chapter is at offset: 0x8DA0000

Much appreciated, many thanks in advance.

Share this post


Link to post
Share on other sites

So I have this weird thing happening.

I've set an event that activates when an unit dies.

Said event loades a new unit on the map.

However, when the event ends, the unit loaded teleports where the one who had to die to trigger the event previously was.

BUT

This happens only if I had the animations ON.

If I have the battle animations turned OFF, everything works smoothly and the loaded unit stays where it should be.

Any idea?

Share this post


Link to post
Share on other sites

Made it short:

MiscBasedEvents:

AFEV 0x2A DudeArrives 0x02

AFEV

DudeArrives:

CAM1 somewhere

_LOAD1 0x1 Dude

ENUN

Text bla bla

ENDA

What bugs me is that it works when the battle animations are off but it doesn't when they're on. lol

And when they're on, the event "DudeArrives" works fine anyway, but at the end of it the Dude teleports where the previous unit (the one who died with a death quote of 0x02 that triggered the event) was.

I'm starting to believe this is just the game works for some reason and I have to find a workaround.

Share this post


Link to post
Share on other sites

Yah if you are hacking FE8 there are a lot of screwy things, and usually some really random ways to fix them.

I have never been able to use "_LOAD1" but I see a some other people use it. Try using LOU1 instead. Don't know if that would help but I guess it's worth a shot? And there is usually REMA after text. That's a really weird error you got there.

Share this post


Link to post
Share on other sites

I'm using the macro Text(etc) so REMA is already included. Anyway I tried to also write the normal code with TEXTSTART TEXTSHOW TEXTEND REMA and it's still the same.

Always used _LOAD1 0x1 Unit and never had problems with that.

In my version LOU1 doesn't work, maybe it's an old version of EA where it is not included in the macros list for FE8 yet.

This is completely illogical, I'm pretty sure I'm not doing anything wrong.

I'll just have to deal with it and find another way around.

Share this post


Link to post
Share on other sites

I think you can work around this problem by loading the replacement unit on the turn after the first guy dies. When the unit loading happens directly after death, the game fails to do something unkowable with the memory.

Share this post


Link to post
Share on other sites

Yah I had a problem when hacking fire emblem 8 where my units wouldn't load any lower than the 3rd y-coord. I just got around it by using MOVE to get them where I wanted. You could do that in this situation but I'll admit it looks a little weird having him move across the map, maybe just use FADI while he moves.

Share this post


Link to post
Share on other sites

Tried again, and this time worked also with animations on.

I just changed the AFEV ID from 0x2A to 0x2B.

Just what. The game is trolling me.

I'll try it out few more times just to make sure it doesn't happen again, but this is fucking strange.

Anyway:

I think you can work around this problem by loading the replacement unit on the turn after the first guy dies. When the unit loading happens directly after death, the game fails to do something unkowable with the memory.

This is the workaround I had in mind.

However, I can't know when and IF the player will kill that character, so that would mean setting a conditional event at the beginning of each turn.

Which is boring, mostly because even if an event is "empty", the only fact it should happen makes the screen briefly go on FADI + FADU, which isn't pleasant to the player's eyes.

Yes, I also think about these things.

Anyway if the problem should persist, I'll have no choice but doing so.

Yah I had a problem when hacking fire emblem 8 where my units wouldn't load any lower than the 3rd y-coord. I just got around it by using MOVE to get them where I wanted. You could do that in this situation but I'll admit it looks a little weird having him move across the map, maybe just use FADI while he moves.

This also is an interesting solution, thanks for suggesting. ;)

...

Also I think I was the one who suggested that FADI + MOVE thing to you in the first place, ahah.

Share this post


Link to post
Share on other sites

Tried again, and this time worked also with animations on.

I just changed the AFEV ID from 0x2A to 0x2B.

Just what. The game is trolling me.

I'll try it out few more times just to make sure it doesn't happen again, but this is fucking strange.

Anyway:

This is the workaround I had in mind.

However, I can't know when and IF the player will kill that character, so that would mean setting a conditional event at the beginning of each turn.

Which is boring, mostly because even if an event is "empty", the only fact it should happen makes the screen briefly go on FADI + FADU, which isn't pleasant to the player's eyes.

Yes, I also think about these things.

Anyway if the problem should persist, I'll have no choice but doing so.

This also is an interesting solution, thanks for suggesting. ;)

...

Also I think I was the one who suggested that FADI + MOVE thing to you in the first place, ahah.

Yup you definitely were xD

Share this post


Link to post
Share on other sites

I'm sure I already know the answer to this, but is there a way to get NPC units to show up on the map during battle preparations? or is that strictly for player/enemy units?

Share this post


Link to post
Share on other sites

I have been trying to have a scripted fight occur during the opening events but the game always end up glitching. If I take that section out, everything else works fine which means I'm missing something.

//Made by markyjoe1990 of Youtube
//Modified by Nintenlord

#define DISABLE_TUTORIALS
#include RevolutionDefinitions.txt
#include EAstdlib.event

EventPointerTable(0x06,Pointers)


ORG 0xD80000
Pointers:
POIN TurnEvents
POIN CharacterEvents
POIN LocationEvents
POIN MiscEvents
POIN TerrainEvents TerrainEvents
POIN Bad Bad Bad Bad
POIN Good Good Good Good
POIN OpeningEvent EndingEvent

Good:
UNIT Adel(T) Prince 0x00 Level(1,Ally,False) [13,6] [13,6] [Rapier, Vulnerary] NoAI
UNIT Clara(T) Pupil 0x00 Level(1,Ally,False) [13,4] [13,4] [Fire,Vulnerary] NoAI
UNIT Bort Paladin 0x00 Level(10,Ally,False) [13,8] [13,8] [silverSpear, IronAxe, Vulnerary] NoAI
UNIT Empty

Bad:
UNIT 0x87 Soldier 0x00 Level(1,Enemy,False) [12,5] [12,5] [ironSpear] NoAI
UNIT 0x88 Soldier 0x00 Level(1,Enemy,False) [12,7] [12,7] [ironSpear] NoAI
UNIT Empty

Bad2:
UNIT 0x88 Soldier 0x00 Level(1,Enemy,False) [10,9] [10,9] [ironSpear] NoAI
UNIT 0x88 Soldier 0x00 Level(1,Enemy,False) [8,11] [8,11] [ironSpear] NoAI
UNIT 0x88 Soldier 0x00 Level(1,Enemy,False) [5,10] [5,10] [ironSpear] NoAI
UNIT 0x88 Soldier 0x00 Level(1,Enemy,False) [4,12] [4,12] [ironSpear] NoAI
UNIT Empty

Reinforcements:
UNIT Beatrice Swordmaster 0x00 Level(1,Enemy,False) [13,0] [13,0] [ironSword] NoAI
UNIT 0x88 Soldier 0x00 Level(1,Enemy,False) [14,0] [14,0] [ironSpear] NoAI
UNIT 0x88 Soldier 0x00 Level(1,Enemy,False) [14,1] [14,1] [ironSpear] NoAI
UNIT 0x88 Soldier 0x00 Level(1,Enemy,False) [14,2] [14,2] [ironSpear] NoAI
UNIT 0x88 Soldier 0x00 Level(1,Enemy,False) [14,3] [14,3] [ironSpear] NoAI
UNIT Empty

TurnEvents:
TurnEventPlayer(0x00,OpeningEvent,1)
TurnEventEnemy(0x00,ReinforcementsCome,2)
TURN

CharacterEvents:
CharacterEventBothWays(0x05,AdelClara,Adel(T),Clara(T))
CharacterEventBothWays(0x06,AdelBort,Adel(T),Bort)
CharacterEvent(0x07,ClaraBort,Clara(T),Bort,0x06)
CharacterEvent(0x07,ClaraBort,Bort,Clara(T),0x06)
CHAR

AdelClara:
MUS1 0x0006 //Music:Raise Your Spirits
TEX1 0x0813
REMA
MUEN 0x0002
ENDA

AdelBort:
MUS1 0x0006 //Music:Raise Your Spirits
TEX1 0x0814
REMA
MUEN 0x0002
ENDA

ClaraBort:
MUS1 0x0006 //Music:Raise Your Spirits
TEX1 0x0815
REMA
MUEN 0x0002
ENDA

LocationEvents:
LOCA

MiscEvents:
CauseGameOverIfLordDies
AFEV

TerrainEvents:
BLST
ALIGN 4

OpeningEvent:
MUS1 0x0012 //Music:Raid
Lou1 Good Bad
ENUN //Stops Loading
FADI 10 //Fade In
BACG 0x11
FADU 10 //Fade Out
Tex1 0x817
REMA //Return from Convo
FIGH 0x87 Clara ClaraSoldier $00000000
FADI 10 //Fade In
LOU1 Bad2
BACG 0x11
FADU 10 //Fade Out
Tex1 0x0816
REMA
ENUN
ENDA

ClaraSoldier:
AttackerMiss(00)
DefenderHit(15,01)
DefenderHit(15,02)
EndOfBattle

ReinforcementsCome:
MUS1 0x0008 //Music:Binding Ties
LOU1 Reinforcements
Tex1 0x0818
REMA
ENUN
ENDA

EndingEvent:
ENDA
MNCH 0x09 //Chapter 1 Event Pointer


MESSAGE Events end at offset currentOffset
//The map for this chapter is at offset: 0xDA1000

Share this post


Link to post
Share on other sites

As soon as that event starts, most of the screen becomes a white pixalated mess but the fight scene still plays out (just map animation though). After that, the pixalated mess remains on the screen and hangs the game, just leaving the music working. Sometime a random unit appears on the top left corner despite not being loaded in.

Share this post


Link to post
Share on other sites

You didn't load Clara, you loaded Clara(T) and you should move the soldier next to Clara/Clara(T) or give him a Javelin.

I noticed that your ending events are incorrect : MNCH should be before ENDA and the values for MNCH are defined in 'EA Standard library\Chapter Definitions.txt'.

Use 'MNCH Ch1' for this chapter.

Also nothing triggers your ending events.

Share this post


Link to post
Share on other sites

You were right, I loaded the wrong character for the fight scene. Now it works like a charm.

I haven't done much with my ending events yet since I am still following some tutorial guidelines. However I'll make the following adjustments.

Thanks for helping out kagnus.

Share this post


Link to post
Share on other sites

EDIT: never mind, I didn't realise you could use DISA [location]--I just tried it, and it works fine. I guess the game thought the generic was a clone or something.

So I'm having this problem where a character who was previously a playable character has to become an NPC on another chapter. However, they need to appear in battle preparations as an NPC without resetting their stats. To this end I made a "clone" of the character with their base stats and after battle preps want to switch them with the real character. I'm doing it this way:

AfterPreps:
CMOF
DISA BriellaClone
LOU1 ReplacingBriella
ENUN
//TurnAlly(Briella)
OOBB
LOU1 IrisUnit
ENUN
CMOF
//LOU1 TheImprisoned
//ENUN
ENDA
 
ReplacingBriella:
UNIT Briella LightMage Henrick Level(1,Ally,False) [8,11] [8,11] [Shine,Vulnerary] Guard
UNIT
For some reason this doesn't work, and the clone version remains on the map. I tried loading the real Briella into another location, and that bit certainly works. So something seems to be wrong with DISA. Am I doing something wrong, or is this just another hacking! moment?
EDIT: never mind, I didn't realise you could use DISA [location]--I just tried it, and it works fine. I guess the game thought the generic was a clone or something.
Edited by Agro

Share this post


Link to post
Share on other sites

Double post, but my MAC1 seems to be a bit iffy. It certainly lets the first tile change happen, but it won't reverse it. Here are the relevant parts:

BriellaTaken:
MUEN 3
CAM1 [8,11]
MUS1 TheProudCommander
LOU1 AugustBriellaTaken
ENUN
MOVE August [8,14] 0x10
MOVE Erella [9,15] 0x10
ENUN
MAC1 0x10 0x00
MOVE August [8,12] 0x10
MOVE Erella [9,12] 0x10
ENUN
STAL 20
MUSI
FADI 10
BACG 0x1B
FADU 10
TEX1 0x8BA
MUNO
REMA
MoveOff(August,8,16)
MoveOff(Erella,9,16)
//MoveOff(LunaChar,9,17)
MOVE [10,11] [9,14] 0x10
ENUN
DISA [9,14]
MOVE Briella [8,14] 0x10
ENUN
UNCM Briella 0x05
//CALL LeftDoorChange
MAC1 0x10 0x08
ENDA
 

LocationEvents:
Chest(Shine,8,7)
Chest(Axereaver,18,16)
Chest(Dragonshield,21,16)
Door(8,13)
Door(12,10)
Door(24,7)
//DOOR 0x17 LeftDoorChange [8,13] 0x10
LOCA
 

OpeningEvent:
CAM1 [7,11]
VCWF 0
OOBB
LOMA 0x06 [7,11]
LOU1 OpeningSceneUnits
ENUN
STAL 50
FADI 10
BACG 0x04
FADU 10
TEX1 0x8B2
MUEN 3
STAL 30
MUS1 0x00DB//windy with birds
REMA
CMOF
LOU1 OpeningSceneVillains
ENUN
CAM1 [7,5]
TEX1 0x8B3
REMA
CAM1 [7,11]
TEX1 0x8B4
REMA
CMOF
MUEN 3
STAL 30
MUS1 OneWhoChallengesFate
LOU1 OpeningSceneIris
ENUN
TurnNPC(Iris)
MOVE Iris [7,13] 0x13
ENUN
TEX1 0x8B5
MUEN 3
STAL 30
MUS1 0x00AD
MORETEXT 0x8B6
MUEN 5
FADI 5
TurnAlly(Iris)
UnitClear
LOMA 0x07 [20,5]
LOU1 OpeningSceneCamilla
ENUN
FADU 5
MUS1 TheProudCommander
BrownBox(0x8BF)
LOU1 OpeningSceneAugust TheImprisoned
ENUN
MOVE August [23,4] 0x10
MOVE Erella [22,3] 0x10
ENUN
RETB
CURF Camilla
MUSI
FADI 10
BACG 0x1A
FADU 10
TEX1 0x8B7
MUNO
REMA
MOVE August [24,6] 0x10
MOVE Erella [24,5] 0x10
ENUN
MAC1 0x02 0x08
MoveOff(August,24,10)
MoveOff(Erella,24,9)
MAC1 0x02 0x00
STAL 50
CAM1 [8,11]
CURF [8,11]
MUSI
FADI 10
BACG 0x1B
FADU 10
TEX1 0x8B8
MUNO
REMA
STAL 50
MUEN 3
VCBF 3//causes black fog
CAM1 [9,4]
MUS1 0x0042
LOU1 OpeningDungeonHenrick
ENUN
TEX1 0x8B9
REMA
MUEN 3
GotoPrepScreen
 

TileChanges:
TileMap(0x10,0x08,0x0D,0x02,0x01,LeftDoor)
TileMap(0x01,0x0C,0x0A,0x01,0x01,OtherDoors)
TileMap(0x02,0x18,0x07,0x01,0x01,OtherDoors)
TileMap(0x03,0x08,0x07,0x01,0x01,OpenChests)
TileMap(0x04,0x12,0x10,0x01,0x01,OpenChests)
TileMap(0x05,0x15,0x10,0x01,0x01,OpenChests)
TileMapEnd
 
LeftDoor:
BYTE 0xB0 0x0D 0x24 0x0D// 0x10 0x07 0x14 0x07
 
OtherDoors:
BYTE 0xD0 0x0C
 
OpenChests:
BYTE 0x04 0x00
Edited by Agro

Share this post


Link to post
Share on other sites

Having this recurring problem with Seize().

Seize(0x3,Ending_event,5,1)
Seize(5,1)
Either way I present it, it seems to trigger the ending event when an any unit steps on the tile, as if it were a common AREA event.

I could probably just manually make the trigger (Just need to check what specifies the seize command for LOCA), but this seems like a problem I shouldn't just leave lying around.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...