Jump to content

Event Assembler Questions Thread


CT075
 Share

Recommended Posts

  • Replies 3.3k
  • Created
  • Last Reply

Top Posters In This Topic

I'm trying to make a chapter where it loads an unit, and you defeat him, and then it loads another unit and you defeat him, kinda like a boss gauntlet I suppose. But then once those two are defeated it loads the enemies. I'm not sure where to start, but I have this so far.

#define DISABLE_TUTORIALS

#include EAstdlib.event

#include "definitions.txt"

EventPointerTable(0x06,Pointers)

org 0xD80000

Pointers:

POIN Turn_events

POIN Character_events

POIN Location_events

POIN Misc_events

POIN BallistaData BallistaData

POIN Bad Bad Bad Bad

POIN Good Good Good Good

POIN Opening_event Ending_event

Bad:

UNIT

Good:

UNIT

Turn_events:

TURN 0x00 Opening_event [01,00] 0x0 0x00

TURN

Character_events:

CHAR

Location_events:

Village(0x08,Money,9,5)

Village(0x07,Steel_Axe,14,16)

Vendor(VendorData,13,6)

CODE $00

Misc_events:

CauseGameOverIfLordDies

AFEV

Opening_event:

FAWI 0x05

CURF [13,10]

FADI 0x10

BACG 0x0D

FADU 0x10

MUS1 0x006b

TEX1 0x0803

REMA

LOU1 MitchUnit

LOU1 MikaelEnemy

ENUN

ENDA

Ending_event:

FADI 0x10

MUS1 0x0039

BACG 0x0D

FADU 0x10

TEX1 0x0804

REMA

STAL 0x05

MNCH 0x01

ENDA

BallistaData:

BLST

ALIGN 4

MitchUnit:

UNIT Mitch EliwoodLord 0x00 Level(1,Ally,False) [13,10] [9,12] [ironSword,Vulnerary] [00,00,00,00

UNIT Sam Archer 0x01 Level(1,Ally,False) [13,10] [10,12] [ironBow,Vulnerary] [00,00,00,00]

UNIT Empty

LinaUnit:

UNIT Lina Mercenary_F 0x01 Level(3,Ally,False) [6,8] [6,8] [steelSword] [00,00,00,00]

UNIT Mikael Pirate 0x01 Level(2,Ally,False) [7,9] [7,9] [ironAxe,HandAxe] [00,00,00,00]

UNIT Empty

MikaelEnemy:

UNIT Mikael Pirate 0x00 Level(2,Enemy,False) [13,10] [8,7] [ironAxe,HandAxe] [03,03,02,20]

UNIT Empty

EnemyEvent:

MUS2 0x0054

LOU1 Enemy1

LOU1 Enemy2

LOU1 Enemy3

ENUN

MURE 5

TEX1 0x0800

ENDA

Steel_Axe:

FADI 0x10

BACG 0x02

FADU 0x10

TEX1 0x0805

ITGV SteelAxe

REMA

ENDA

Money:

FADI 0x10

BACG 0x02

FADU 0x10

TEX1 0x0806

MONE 0x00 3000

REMA

ENDAw

VendorData:

SHLI Vulnerary

MESSAGE Events end at offset currentOffset

//The map for this chapter is at offset: DA1234

Link to comment
Share on other sites

Not sure if its already been asked but.

I'm new to hacking and I plan on hacking one of the gba games. What stuff will I need, I plan on changing stats making new maps, and a whole new story. Also is their a way to take s sprit say Lyns and put it in the game?

Link to comment
Share on other sites

  • 3 weeks later...

Just wondering... Is there a condition for if the player/tactician is male/female? I kinda remember reading somewhere that Sain will hit on your character if you say that you're female, which most likely means it triggers different text slots, right? Which would necessitate a condition, I think...? Was thinking of having it load a different unit depending on whether you're male or female :)

Edited by Jubby
Link to comment
Share on other sites

  • 2 weeks later...

Well, I made a condicional Village event, if a certain Character (Hector, Eliwood, Roy or Florina) visits the village, Lilina will have a different conversation with each one, if any other visits the village, she'll have a generical conversation.

And, I want to make that a bit different:

I want to add a conversation between Lilina and Hector if Hector don't visit the village, how can I do that?

This is the code that I used for the village:

VillaLilina:
MUS2 FE46Theme
FADI 16
HIDEMAP
BACG 0x2
FADU 16
SHOWMAP
IFCA 0x0 0x01 Hector
TEX1 0xB18
ELSE 0x02
ENIF 0x01
IFCA 0x0 0x03 Eliwood
TEX1 0xB13
ENIF 0x02
ELSE 0x04
ENIF 0x03
IFCA 0x0 0x05 Florina
TEX1 0xAFF
ENIF 0x04
ELSE 0x06
ENIF 0x05
IFCA 0x0 0x07 Roy
TEX1 0xB0B
ENIF 0x06
ELSE 0x08
ENIF 0x07
TEX1 0xB00
ENIF 0x08
REMA
MUNO
LOU1 Lilina_U
ENUN
ENDA

Link to comment
Share on other sites

I want to add a conversation between Lilina and Hector if Hector don't visit the village, how can I do that?

It's not hard. For all the village conversations barring Hector's, make it so an event ID is triggered after it's finished. Then add a character event that is only available if that certain ID is triggered, that way you will ensure that it won't appear if Hector does the visiting.

I could explain it in spanish in needed.

Edited by Krad
Link to comment
Share on other sites

[spoiler=English version]What you need to do is add a command that triggers an event ID after each version of the village visit. Something like this.

VillaLilina:
MUS2 FE46Theme
FADI 16
HIDEMAP
BACG 0x2
FADU 16
SHOWMAP
IFCA 0x0 0x01 Hector
TEX1 0xB18
ELSE 0x02
ENIF 0x01
IFCA 0x0 0x03 Eliwood
TEX1 0xB13
ENUT EventID //The event ID required to be able to activate the character event
ENIF 0x02
ELSE 0x04
ENIF 0x03
IFCA 0x0 0x05 Florina
TEX1 0xAFF
ENUT EventID //The event ID required to be able to activate the character event
ENIF 0x04
ELSE 0x06
ENIF 0x05
IFCA 0x0 0x07 Roy
TEX1 0xB0B
ENUT EventID //The event ID required to be able to activate the character event
ENIF 0x06
ELSE 0x08
ENIF 0x07
TEX1 0xB00
ENUT EventID //The event ID required to be able to activate the character event
ENIF 0x08
REMA
MUNO
LOU1 Lilina_U
ENUN
ENDA

As you can see, that Event ID isn't present in the Hector version of the village, so him visiting stops the player from using the talk command for that conversation.

Then, for the conversation between both characters, you add the condition.

CHAR EventID HectorLilina Hector Lilina EventID(the one triggered with the ENUT command)

Which would make the talk option only available if the character who visited the village wasn't Hector. Also note that depending on the version of the Event Assembler you're using, instead of ENUT you may need to use ENUF. If one doesn't work, just try the other.

[spoiler=Spanish version]Lo que tienes que hacer es agregar el comando que hace que se active el ID de algun event, y que la conversación de Hector y Lilina esté ligada a ese ID. Algo como:

VillaLilina:
MUS2 FE46Theme
FADI 16
HIDEMAP
BACG 0x2
FADU 16
SHOWMAP
IFCA 0x0 0x01 Hector
TEX1 0xB18
ELSE 0x02
ENIF 0x01
IFCA 0x0 0x03 Eliwood
TEX1 0xB13
ENUT EventID //La ID que se necesita para ver la conversación.
ENIF 0x02
ELSE 0x04
ENIF 0x03
IFCA 0x0 0x05 Florina
TEX1 0xAFF
ENUT EventID //La ID que se necesita para ver la conversación.
ENIF 0x04
ELSE 0x06
ENIF 0x05
IFCA 0x0 0x07 Roy
TEX1 0xB0B
ENUT EventID //La ID que se necesita para ver la conversación.
ENIF 0x06
ELSE 0x08
ENIF 0x07
TEX1 0xB00
ENUT EventID //La ID que se necesita para ver la conversación.
ENIF 0x08
REMA
MUNO
LOU1 Lilina_U
ENUN
ENDA

Para la versión de Hector no se pone el comando y la ID para que si él entrara, no se viera la conversación.

Y despues, en el evento de la conversación:

CHAR EventID HectorLilina Hector Lilina ID(la activada con ENUT)

Con eso queda de que esta conversación sólo esta disponible si fue alguien distinto a Hector quien entró en la villa. También, dependiendo de la versión del Event Assembler que estes usando, puede que en vez de ENUT tengas que usar ENUF. Si una no funciona, simplemente usa la otra.

Link to comment
Share on other sites

What causes the error "Didn't reach end, currently at Comma(,)"?

Here's the script I'm trying to assemble:

[spoiler=Script]#define DISABLE_TUTORIALS

#include EAstdlib.event

EventPointerTable(0x28,Pointers)

org 0xD05E00

Pointers:

POIN Turn_events

POIN Character_events

POIN Location_events

POIN Misc_events

POIN Ballista Ballista

POIN Bad Bad Bad Bad

POIN Good Good Good Good

POIN Opening_event Ending_event

Turn_events:

TURN 0x0 Opening_event [0,1] 0x0 0x0

TURN 0x4 Gideon [2,0] 0x0 0x0

TURN 0x5 Reinforcements [2,7] 0x0 0x0

TURN 0x7 Ending_event [8,9] 0x0 0x0

TURN

Character_events:

CharacterEventBothways(0x6,GideonTalk,Harken,Darius)

CharacterEventBothways(0x6,GideonTalk2,Harken,Marcus)

CharacterEventBothways(0x6,GideonTalk3,Harken,Sain)

CHAR

Location_events:

LOCA

Misc_events:

CauseGameOverIfLordDies

AFEV

Ballista:

BLST

ALIGN 4

Opening_event:

BACG 0x3F

OOBB

TEX1 0x890 //gettin dark

REMA

LOU1 Good

LOU1 Good3

ENUN

Text(0x819,0x3F) //come in bro

MOVE Lyn_t [04,01]

MOVE Marcus [03,02]

MOVE Kent [04,05]

MOVE Sain [05,02]

MOVE Lucius [06,03]

MOVE Serra [06,01]

ENUN

Text(0x892,0x49) //waffle

LOU1 Bad

ENUN

Text(0x893) //bad guys

REMA

CAM1 Lyn_t

Text(0x893,0x49) //the heck

LOU1 Good2

ENUN

CAM1 [01,13]

CursorFlash [01,13] //ballista location

Text(0x895) //ballistaaaaaae

REMA

ENDA

Ending_event:

CAM1 Bool

Text(0x896)

UnitClear

LOU1 GoodEnd

CAM1 Marcus

Text(0x89B,0x49)

Text(0x9

MovetoChapter(0x07)

ENDA

Reinforcements:

LOU1 Reinforcement

ENUN

ENDA

Gideon:

LOU1 Gideondude

ENUN

Text(0x897) //...

ENDA

GideonTalk:

ConvoEvent(0x898) //fight

GOTO GideonSwap

ENDA

GideonTalk2:

ConvoEvent(0x899) //marcus

GOTO GideonSwap

ENDA

GideonTalk3:

ConvoEvent(0x89A) //sain

GOTO GideonSwap

ENDA

GideonSwap:

TurnAlly(Gideon)

ENDA

Good:

UNIT Lyn_t 0x00 0x00 0x00 [07,10] [07,09] [0x00] [0x00]

UNIT Marcus 0x00 Lyn_t 0x00 [07,10] [07,09] [0x00] [0x00]

UNIT Kent 0x00 Lyn_t 0x00 [07,10] [08,10] [0x00] [0x00]

UNIT Sain 0x00 Lyn_t 0x00 [07,10] [07,10] [0x00] [0x00]

UNIT Empty

Good2:

UNIT Wil 0x00 Lyn_t 0x00 [04,03] [03,04] [0x00] [0x00]

UNIT Fiora 0x00 Lyn_t 0x00 [04,03] [05,04] [0x00] [0x00]

UNIT Matthew 0x00 Lyn_t 0x00 [02,01] [02,01] [0x00] [0x00]

UNIT Rebecca 0x00 Lyn_t 0x00 [02,01] [01,02] [0x00] [0x00]

UNIT Dorcas 0x00 Lyn_t 0x00 [02,01] [02,02] [0x00] [0x00]

UNIT Erk 0x00 Lyn_t 0x00 [04,02] [04,03] [0x00] [0x00]

UNIT Guy 0x00 Lyn_T 0x00 [04,02] [05,03] [0x00] [0x00]

UNIT Empty

Gideondude:

UNIT Harken Hero Harken Level(10,Ally,False) [12,01] [12,01] [LightBrand,SilverAxe,Elixir] [TalkToLord]

UNIT Empty

Bad:

UNIT Bool Knight Bool Level(12,Enemy,False) [07,19] [07,17] [steelSpear,Javelin,Vulnerary] [0x00,0x03,0x09,0x00]

UNIT 0x9C Soldier Bool Level(4,Enemy,False) [07,19] [06,18] [ironSpear] [0x00]

UNIT 0x9C Soldier Bool Level(4,Enemy,False) [07,19] [08,18] [ironSpear] [0x00]

UNIT 0xA1 Archer Bool Level(4,Enemy,False) [07,18] [05,19] [ironBow] [0x00,0x03,0x09,0x00]

UNIT 0xA1 Archer Bool Level(4,Enemy,False) [07,18] [09,19] [ironBow] [0x00,0x03,0x09,0x00]

UNIT 0x9D Cavalier Bool Level(4,Enemy,False) [12,17] [12,17] [ironSword] [0x00]

UNIT 0x9D Cavalier Bool Level(4,Enemy,False) [12,17] [13,16] [ironSword] [0x00]

UNIT 0xA0 Fighter Bool Level(4,Enemy,False) [13,11] [13,11] [ironAxe] [0x00]

UNIT 0xA0 Fighter Bool Level(4,Enemy,False) [13,11] [14,12] [ironAxe] [0x00]

UNIT 0x9C Soldier Bool Level(4,Enemy,False) [13,11] [12,12] [ironSpear] [0x00]

UNIT 0x9C Soldier Bool Level(4,Enemy,False) [00,16] [00,16] [ironSpear] [0x00]

UNIT 0xA0 Fighter Bool Level(4,Enemy,False) [00,16] [01,17] [ironAxe] [0x00]

UNIT 0xA1 0x5B Bool Level(4,Enemy,False) [01,13] [01,13] [ironBow] [0x00]

UNIT 0xA1 0x5B Bool Level(4,Enemy,False) [10,17] [10,17] [ironBow] [0x00]

UNIT Empty

Good3:

UNIT Serra Cleric Lyn_t Level(5,Ally,False) [07,06] [07,06] [Heal,Vulnerary] [0x00]

UNIT Lucius FireDragon Lyn_t Level(5,Ally,False) [08,05] [08,05] [FlameTongue,Vulnerary] [0x00]

UNIT Empty

Reinforcement:

UNIT 0x9C Soldier Bool Level(4,Enemy,False) [14,12] [14,12] [ironSpear] [0x00]

UNIT 0x9C Soldier Bool Level(4,Enemy,False) [14,12] [14,13] [ironSpear] [0x00]

UNIT 0x9D Cavalier Bool Level(4,Enemy,False) [11,18] [12,17] [ironSword] [0x00]

UNIT 0x9D Cavalier Bool Level(4,Enemy,False) [11,18] [11,18] [ironSword] [0x00]

UNIT 0x9D Fighter Bool Level(4,Enemy,False) [02,17] [01,17] [ironAxe] [0x00]

UNIT 0x9D Fighter Bool Level(4,Enemy,False) [02,17] [02,18] [ironAxe] [0x00]

UNIT Empty

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

Do tell me if any (or all...) of it is outdated; half of it was written last year and I only picked it up pretty recently.

Edited by Ninja Caterpie
Link to comment
Share on other sites

It's CharacterEventBothWays, not CharacterEventBothways.

Ballista is already used by EAStdLib, so use something like BallistaData instead.

There's a problem:

Ending_event:

CAM1 Bool

Text(0x896)

UnitClear

LOU1 GoodEnd

CAM1 Marcus

Text(0x89B,0x49)

Text(0x9

MovetoChapter(0x07)

ENDA

Here's another:

Gideondude:

UNIT Harken Hero Harken Level(10,Ally,False) [12,01] [12,01] [LightBrand,SilverAxe,Elixir] [TalkToLord]

UNIT Empty

because EAstdlib defines like this:

#define TalkToLord [0x06,0x0B,0x0A,0x00]

After those there are other errors, but they are easier to fix.

Link to comment
Share on other sites

Small question, but could anyone tell me why the prep screen isn't working on this chapter?

In the events, I have this:

[spoiler=Event]

Opening_event:
LOU1 CelCut
ENUN
CAM1 [19,11]
CMOF
OOBB
CURF [19,9]
FADI 10
BACG 0x10
FADU 10
TEX1 0x89D
REMA
LOU1 OifeyCut
ENUN
CURF [19,10]
FADI 10
BACG 0x10
FADU 10
TEX1 0x89E
REMA
MOVE [19,10] [19,19]
ENUN
LOU1 DonarCut
MOVE [19,19] [19,11]
ENUN
CURF [19,10]
FADI 10
BACG 0x10
FADU 10
TEX1 0x89F
REMA
TurnEnemy(Erik)
TEX1 0x8A0
REMA
MOVE Erik [19,19]
ENUN
ENDB

While on Nightmare, I have the preparation screen enabled. This is strange since I've done the same exact thing for every one of the previous chapters, but had no trouble at all until this one.

When I play, the opening event goes all right until after Erik moves, at which the screen fades out like it's going into the prep screen, yet it remains black and doesn't progress any further. Any reason for why this is happening?

Link to comment
Share on other sites

Try using the GotoPrepScreen command xD

//Go to preparations screen
#ifdef _FE7_
#define GotoPrepScreen "ENDB"
#endif

ENDB and GotoPrepScreen are the same thing. So that's not the solution.

Link to comment
Share on other sites

Hmm, that is an odd problem. I don't see anything wrong, maybe post the entire event script? The only things I can think of are maybe you forgot to hit "apply" in Nightmare or the pointers in your event file were bungled somehow.

Link to comment
Share on other sites

Sure.

[spoiler=Events]

#define DISABLE_TUTORIALS
#include EAstdlib.event

EventPointerTable(0x25,Pointers)


org 0xD84900
Pointers:
POIN Turn_events 
POIN Character_events 
POIN Location_events 
POIN Misc_events
POIN BallistaData BallistaData
POIN Bad Bad Bad Bad
POIN Good Good Good Good
POIN Opening_event Ending_event

Bad:
UNIT Erik General_F 0x00 Level(9,Enemy,False) [14,29] [14,29] [silverAxe,HandAxe,Elixir] AttackInRange
UNIT

GladeUnit:
UNIT 0x7A Paladin 0x00 Level(10,NPC,False) [19,5] [19,5] [silverSpear,Javelin,Vulnerary] AttackInRange
UNIT

OifeyCut:
UNIT Marcus Paladin Lyn_t Level(5,Ally,False) [19,19] [19,10] [steelSword,IronSpear] NoAI
UNIT

DonarCut:
UNIT Erik General_F 0x00 Level(9,NPC,False) [19,18] [19,10] [silverAxe,HandAxe,Elixir] AttackInRange
UNIT

CelCut:
UNIT Lyn_t EliwoodLord 0x00 Level(1,Ally,False) [19,9] [19,9] [Rapier,IronSword,Vulnerary] NoAI
UNIT 0x7A Sage 0x00 Level(1,NPC,False) [20,9] [20,9] [Fire] NoAI
UNIT Heath HectorLord Lyn_t Level(7,Ally,False) [18,9] [18,9] [LightBrand,SteelSword,Vulnerary] NoAI
UNIT

Good:
UNIT Lyn_t EliwoodLord 0x00 Level(1,Ally,False) [19,3] [19,3] [Rapier,IronSword,Vulnerary] [0x00,0x00,0x00,0x00]
UNIT Heath  HectorLord 0x00 Level(7,Ally,False) [18,4] [18,4] [LightBrand,SteelSword,Vulnerary] NoAI
UNIT Raven Cavalier Heath Level(12,Ally,False) [19,5] [19,5] [steelSpear,IronSword,Vulnerary] NoAI
UNIT Priscilla Troubadour Heath  Level(5,Ally,False) [18,11] [18,11] [Heal,Mend,Elixir,DoorKey] NoAI
UNIT Lucius Mage Lyn_t Level(6,Ally,False) [20,12] [20,12] [Thunder,Vulnerary] NoAI
UNIT Marcus Paladin Lyn_t Level(5,Ally,False) [19,14] [19,14] [steelSword,IronSpear] [0x00,0x00,0x00,0x00]
UNIT Sain Myrmidon_F Lyn_t Level(1,Ally,False) [24,15] [24,15] [ironSword,Vulnerary] [0x00,0x00,0x00,0x00]
UNIT Serra Cleric Lyn_t Level(1,Ally,False) [23,9] [23,9] [Heal,Vulnerary] [0x00,0x00,0x00,0x00]
UNIT Kent Myrmidon Lyn_t Level(1,Ally,False) [27,6] [27,6] [ironSword,Vulnerary] [0x00,0x00,0x00,0x00]
UNIT Lowen Cavalier Lyn_t Level(3,Ally,False) [13,11] [13,11] [ironSword,Vulnerary] [0x00,0x00,0x00,0x00]
UNIT Rath Nomad Lyn_t Level(3,Ally,False) [7,8] [7,8] [ironBow,Vulnerary] [0x00,0x00,0x00,0x00]
UNIT Bartre Fighter Zugu Level(10,Ally,False) [5,10] [5,10] [ironAxe,HandAxe,Vulnerary] [0x00,0x00,0x00,0x00]
UNIT Nino Mage_F Elbert Level(1,Ally,False) [2,12] [2,12] [Lightning] [0x00,0x00,0x00,0x00]
UNIT Oswin Cavalier Carjiga Level(12,Ally,False) [18,16] [18,16] [steelAxe,Vulnerary] GuardTile
UNIT Karel Swordmaster 0x00 Level(2,Ally,False) [8,9] [8,9] [steelSword,Vulnerary] NoAI
UNIT

Turn_events:
TurnEventPlayer(0x00,Fadeout,1)
TURN

Character_events:
CHAR

Location_events:
LOCA

Misc_events:
CauseGameOverIfLordDies
AFEV

Opening_event:
LOU1 CelCut
ENUN
CAM1 [19,11]
CMOF
OOBB
CURF [19,9]
FADI 10
BACG 0x10
FADU 10
TEX1 0x89D
REMA
LOU1 OifeyCut
ENUN
CURF [19,10]
FADI 10
BACG 0x10
FADU 10
TEX1 0x89E
REMA
MOVE [19,10] [19,19]
ENUN
LOU1 DonarCut
MOVE [19,19] [19,11]
ENUN
CURF [19,10]
FADI 10
BACG 0x10
FADU 10
TEX1 0x89F
REMA
TurnEnemy(Erik)
TEX1 0x8A0
REMA
MOVE Erik [19,19]
ENUN
ENDB

Fadeout:
CMOF
LOU1 GladeUnit
ENUN
OOBB
ENDA

Ending_event:
//MNCH 0x??
//STAL 1
//_0x1
ENDA

BallistaData:
BLST


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

[spoiler=Nightmare]35hilft.png

Most things in Nightmare I haven't changed yet, and the events are obviously incomplete since I was only testing a barebones opening event (that is also incomplete).

Link to comment
Share on other sites

//Go to preparations screen
#ifdef _FE7_
#define GotoPrepScreen "ENDB"
#endif

ENDB and GotoPrepScreen are the same thing. So that's not the solution.

Eh.... That's what I get for thinking it'd be that easy. :$

Link to comment
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.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...