Jump to content

Event Assembler Questions Thread


CT075
 Share

Recommended Posts

Well, that's too bad...

Thanks anyway.

By the way, does someone have some sort of guide on what event IDs do what? People always say that events 1~5 and 65 are reserved by the game and that events 66+ are permanent event IDs, but, whenever I use certain event ID's between 20 and 40, they sometimes seem to stay activated beyond the end of the chapter.

For exemple: in my game, you fight the same boss two chapters in a row, and he has the same battle quote both times, so of course, they both use the same event ID. This shouldn't be a problem because you fight him in two separate chapters, yet his battle quote doesn't play the second time.

Edited by AsukaDrag
Link to comment
Share on other sites

  • Replies 3.3k
  • Created
  • Last Reply

Top Posters In This Topic

Known event IDs are document in Chapter Structure Helpers.txt, which you can find in the EA Standard Library folder. For the most part, though, it's the 0x65+ IDs that are documented. If you can use a different ID for the second chapter the boss shows up in, just do that.

Link to comment
Share on other sites

  • 2 weeks later...

Hello there everyone! This is my first post in the whole forum, so I'm sorry if I'm not entirely sure what I'm doing.

Anywho, the problems.

I'm attempting to assemble the events for my Prologue, but when I try to assemble the file, I get these errors:

Finished.
Messages:
Tutorials disabled
Events end at offset 0x964B98

42 errors encountered:
File Prolouge Events.txt, Line 12, Column 1: Code POIN's offset $9649DF is not divisible by 4
File Prolouge Events.txt, Line 13, Column 1: Code POIN's offset $9649E3 is not divisible by 4
File Prolouge Events.txt, Line 14, Column 1: Code POIN's offset $9649E7 is not divisible by 4
File Prolouge Events.txt, Line 15, Column 1: Code POIN's offset $9649EB is not divisible by 4
File Prolouge Events.txt, Line 16, Column 1: Code POIN's offset $9649EF is not divisible by 4
File Prolouge Events.txt, Line 17, Column 1: Code POIN's offset $9649F7 is not divisible by 4
File Prolouge Events.txt, Line 18, Column 1: Code POIN's offset $964A07 is not divisible by 4
File Prolouge Events.txt, Line 19, Column 1: Code POIN's offset $964A17 is not divisible by 4
File Prolouge Events.txt, Line 22, Column 1: Code UNIT's offset $964A1F is not divisible by 4
File Prolouge Events.txt, Line 23, Column 1: Code UNIT's offset $964A2F is not divisible by 4
File Prolouge Events.txt, Line 24, Column 1: Code UNIT's offset $964A3F is not divisible by 4
File Prolouge Events.txt, Line 27, Column 1: Code UNIT's offset $964A4F is not divisible by 4
File Prolouge Events.txt, Line 28, Column 1: Code UNIT's offset $964A5F is not divisible by 4
File Prolouge Events.txt, Line 29, Column 1: Code UNIT's offset $964A6F is not divisible by 4
File Prolouge Events.txt, Line 30, Column 1: Code UNIT's offset $964A7F is not divisible by 4
File Prolouge Events.txt, Line 31, Column 1: Code UNIT's offset $964A8F is not divisible by 4
File Prolouge Events.txt, Line 34, Column 1: Code UNIT's offset $964A9F is not divisible by 4
File Prolouge Events.txt, Line 35, Column 1: Code UNIT's offset $964AAF is not divisible by 4
File Prolouge Events.txt, Line 36, Column 1: Code UNIT's offset $964ABF is not divisible by 4
File Prolouge Events.txt, Line 37, Column 1: Code UNIT's offset $964ACF is not divisible by 4
File Prolouge Events.txt, Line 40, Column 1: Code TURN's offset $964ADF is not divisible by 4
File Prolouge Events.txt, Line 41, Column 1: Code TURN's offset $964AEF is not divisible by 4
File Prolouge Events.txt, Line 42, Column 1: Code TURN's offset $964AFF is not divisible by 4
File Prolouge Events.txt, Line 43, Column 1: Code TURN's offset $964B0F is not divisible by 4
File Prolouge Events.txt, Line 44, Column 1: Code TURN's offset $964B1F is not divisible by 4
File Prolouge Events.txt, Line 47, Column 1: Code CHAR's offset $964B23 is not divisible by 4
File Prolouge Events.txt, Line 50, Column 1: Code CHES's offset $964B27 is not divisible by 4
File Prolouge Events.txt, Line 51, Column 1: Code LOCA's offset $964B33 is not divisible by 4
File Prolouge Events.txt, Line 54, Column 1: Code ASME's offset $964B37 is not divisible by 4
File Prolouge Events.txt, Line 55, Column 1: Code AFEV's offset $964B43 is not divisible by 4
File Prolouge Events.txt, Line 56, Column 1: Code AFEV's offset $964B4F is not divisible by 4
File Prolouge Events.txt, Line 59, Column 1: Code FADI's offset $964B53 is not divisible by 4
File Prolouge Events.txt, Line 60, Column 1: Code LOU1's offset $964B57 is not divisible by 4
File Prolouge Events.txt, Line 61, Column 1: Code LOU1's offset $964B5F is not divisible by 4
File Prolouge Events.txt, Line 62, Column 1: Code OOBB's offset $964B67 is not divisible by 4
File Prolouge Events.txt, Line 63, Column 1: Code ENDA's offset $964B6B is not divisible by 4
File Prolouge Events.txt, Line 66, Column 1: Code MNCH's offset $964B73 is not divisible by 4
File Prolouge Events.txt, Line 67, Column 1: Code STAL's offset $964B77 is not divisible by 4
File Prolouge Events.txt, Line 68, Column 1: Code _0x1's offset $964B7B is not divisible by 4
File Prolouge Events.txt, Line 69, Column 1: Code ENDA's offset $964B7F is not divisible by 4
File Prolouge Events.txt, Line 72, Column 1: Code LOU1's offset $964B87 is not divisible by 4
File Prolouge Events.txt, Line 73, Column 1: Code ENDA's offset $964B8F is not divisible by 4

No data written to output.

My code for the Events looks like this:

http://dumptext.com/GvQJyseb#

And my second problem is that when I try to disassemble a file it says "Offset is larger than size of file." SoI can't even check the problem in a vanilla event file.

Thanks, JamesMuddy

Edited by JamesMuddy
Link to comment
Share on other sites

Not sure if this is the right place to ask, but I've been trying my hand at some world map eventing, and I just can't figure out how to make the glowing dots you load with the PLACEDOT command disappear.

Arch's tutorial claims that the REMSPRITE command should do so, but in my experience, it doesn't work with the dots.

For exemple, if I do:

PLACEDOT 0x04 [176,11] BlueDot
STAL 40
REMSPRITE 0x04 0x20
_ASM0x42 0xB2FB1

the dot just stays there! What am I doing wrong?

Link to comment
Share on other sites

Have you tried using a value of 0x0? As in REMSPRITE 0x04 0x0

If that doesn't work, try adding a [LoadOverwordFaces] into whatever text you're using, and a SCRO to your map code in between the PLACEDOT and the REMSPRITE.

Link to comment
Share on other sites

Have you tried using a value of 0x0? As in REMSPRITE 0x04 0x0

If that doesn't work, try adding a [LoadOverwordFaces] into whatever text you're using, and a SCRO to your map code in between the PLACEDOT and the REMSPRITE.

Maybe I misunderstood your orientations, but neither solution worked...

Here, this is my world map event so far, see if you can spot the problem.

#include EAstdlib.event


WorldMapPointerTable(0x0D,WorldMapEvents)


ORG 0xD8A000


WorldMapEvents:
StartWorldMap(FullWorldMap, 0, 0, 0x1C)
STAL 10
TEXTBOXTOBOTTOM
TEXTWM 0x8f0
PLACEDOT 0x01 [176,100] RedDot
SCRO
REMSPRITE 0x01 0x0 //This should work on the dots too
_ASM0x42 0xB2FB1 //Use this after REMSPRITE because
STAL 30
PLACEDOT 0x02 [73,71] BlueDot
STAL 30
SCRO
REMSPRITE 0x02 0x0 //This should work on the dots too
_ASM0x42 0xB2FB1 //Use this after REMSPRITE because
STAL 30
PLACEDOT 0x03 [125,33] BlueDot
STAL 30
SCRO
REMSPRITE 0x03 0x0 //This should work on the dots too
_ASM0x42 0xB2FB1 //Use this after REMSPRITE because
STAL 30
PLACEDOT 0x04 [176,11] BlueDot
STAL 40
SCRO
REMSPRITE 0x04 0x0 //This should work on the dots too
_ASM0x42 0xB2FB1 //Use this after REMSPRITE because
STAL 30
PLACEDOT 0x05 [129,111] RedDot
STAL 20
SCRO
REMSPRITE 0x05 0x0 //This should work on the dots too
_ASM0x42 0xB2FB1 //Use this after REMSPRITE because
SHOWPORTRAIT 0x06 0x16 50 PortraitFacesRight 0
STAL 50
SCRO
STAL 100
REMOVEPORTRAIT 0x06 PortraitFacesRight 0
STAL 10
REMOVETEXTBOX


MESSAGE World map events end at currentOffset
Link to comment
Share on other sites

I'm almost certain you can't remove the blue dots...

Yes, the more I look at my old events, the more certain I am that you can't remove them. The object IDs of the dots and of the map sprites are separate (thank god), which is why you can have up to 4 map sprites AND 4 dots at the same time. REMSPRITE only works for map sprites. If you want to remove the dots, you're pretty much SOL.

Edited by Agro
Link to comment
Share on other sites

I'm almost certain you can't remove the blue dots...

Yes, the more I look at my old events, the more certain I am that you can't remove them. The object IDs of the dots and of the map sprites are separate (thank god), which is why you can have up to 4 map sprites AND 4 dots at the same time. REMSPRITE only works for map sprites. If you want to remove the dots, you're pretty much SOL.

What is the point of using the dots, then? If your events end and they're still out they stay as glitches on the screen...

Also, I'm pretty sure I've seen them used properly before in hacks, IIRC, they're used in the way I'm trying to used them in Road to Ruin's Chapter 1 world map event. I'd just disassemble them to see how they're done, but, for some reason, my computer doesn't let event assemble disassemble anything...

Link to comment
Share on other sites

I was under the impression that you could remove the dots. But, looking at my events for TRTR Ch1, it looks like I was just being clever and hiding a dot beneath a text box.

[spoiler=TRTR Ch1 World Map]

#include EAstdlib.event

ORG 0xC9CDA8+(4*(0x02-0x01))

POIN WorldMapData


ORG 0x00FB8000
WorldMapData:
StartWorldMap(0x0,00,00,0x1C)
STAL 100
TEXTBOXTOBOTTOM
TEXTWM 0x6B3
STAL 20
SCRO // Start country intros
PLACEDOT 0x01 [08,91] BlueDot // Aksum
TEXTWM 0x6B4
SCRO
PLACEDOT 0x01 [71,08] BlueDot // Orontes
TEXTWM 0x6B5
SCRO
PLACEDOT 0x01 [166,88] BlueDot // Sybaris
TEXTWM 0x6B6
SCRO
PLACEDOT 0x01 [115,23] BlueDot // Mora
TEXTWM 0x6B7
SCRO
PLACEDOT 0x01 [191,11] BlueDot // Geryon
TEXTWM 0x6B8
SCRO
PLACEDOT 0x01 [233,63] BlueDot // Prydain
TEXTWM 0x6B9
SCRO
REMSPRITE 0x01 0x00
REMOVETEXTBOX
TEXTBOXTOTOP
TEXTWM 0x6BA
PLACEDOT 0x01 [123,127] BlueDot // Asteria
SCRO
TEXTWM 0x6BB
PLACEDOT 0x01 [201,142] BlueDot // Tiryns
SCRO
REMSPRITE 0x01 0x00
REMOVETEXTBOX
TEXTBOXTOBOTTOM
TEXTWM 0x6BC
SCRO
REMOVETEXTBOX
REMOVETEXTBOX
STAL 60
FADETOWM [425,145] 0x1 0x00 0x00 // Fade to Zoomed In map
STAL 150
PLACEDOT 0x02 [631,291] 0x0
STAL 1
PLACEDOT 0x03 [547,235] 0x1
STAL 10
PUTSPRITE 0x01 [640,285] Cavalier 0x30 0x00 0x00 0x00
PUTSPRITE 0x04 [624,300] Fighter 0x30 0x00 0x00 0x00
PUTSPRITE 0x01 [555,240] Cavalier 0x30 0x00 0x00 0x00
PUTSPRITE 0x04 [550,250] Fighter 0x30 0x00 0x00 0x00
REMOVETEXTBOX
TEXTBOXTOTOP
TEXTWM 0x6BD
SCRO
REMSPRITE 0x01 0x2
REMSPRITE 0x04 0x2
REMOVETEXTBOX
_0xC1 [350,270] 0x4 0x0 // Camera pan
STAL 50
PLACEDOT 0x01 [432,322] BlueDot
TEXTBOXTOBOTTOM
TEXTWM 0x6B2
SHOWPORTRAIT 0x0 0x16 52 0x5 0
PUTSPRITE 0x04 [432, 320] Mercenary 0x00 0x00 0x00 0x00
SCRO
PUTSPRITE 0x04 [505, 330] Mercenary 0x00 0x00 0x00 0x00
REMOVEPORTRAIT 0x04 PortraitFacesRight 4
STAL 30
SCRO
REMOVETEXTBOX
EndWorldMap

However, I'm pretty sure that loading a different map will remove the dots, since when I fade into my zoomed in world map, the dot that was on the full view map is no longer present.

Link to comment
Share on other sites

Sorry for the confusion, AsukaDrag. I'm editing the tutorial now to make it clear that they can't be removed manually.

I think Prime is right, they will disappear if you load a different map, but not if you use the camera to pan around the current map. They obviously disappear once the world map events end, though.

Link to comment
Share on other sites

  • 2 weeks later...

I´m trying to start a hack, however I can´t turn Kent into a blue unit and neither make the reinforcements come, there´s something wrong?

Here are the codes.


#define DISABLE_TUTORIALS
#include EAstdlib.event

EventPointerTable(0x06,Pointers)

ORG 0xD80000

Pointers:
POIN Turn_events
POIN Character_events
POIN Location_events
POIN Misc_events
POIN TrapData TrapData
POIN Bad Bad Bad Bad
POIN Good Good Good Good
POIN Opening_event Ending_event

Good:
UNIT 0x18 0x0A 0x18 Level(4, Ally, 0) [14,9] [12,6] [0x01, 0x03, 0x6B] NoAI
UNIT 0x03 0x02 0x18 Level(6, Ally, 0) [14,9] [13,7] [0x0A, 0x01, 0x6B] NoAI
UNIT 0x1D 0x37 0x18 Level(4, Ally, 0) [14,9] [11,7] [0x15, 0x17, 0x6B] NoAI
UNIT 0x17 0x2A 0x00 Level(3, NPC, 0) [0,2] [8,8] [0x01, 0x16, 0x6B] NoAI
UNIT


Bad:
UNIT 0x01 0x01 0x00 Level(7, Enemy, 0) [3,2] [3,2] [0x09, 0x6B] Guard
UNIT 0x28 0x3B 0x00 Level(3, Enemy, 0) [3,2] [5,2] [0x1F, 0x20, 0x6B] AttackInRange
UNIT 0x0E 0x31 0x00 Level(4, Enemy, 0) [3,2] [1,1] [0x2D, 0x01, 0x6B] AttackInRange
UNIT 0x06 0x02 0x00 Level(7, Enemy, 0) [3,2] [8,1] [0x0C, 0x02, 0x6B] AttackInRange
UNIT 0x19 0x28 0x00 Level(3, Enemy, 0) [3,2] [2,3] [0x14, 0x01, 0x6B] AttackInRange
UNIT

BaddiesCome:
LOU1 BaddiesCome
ENUN
ENDA

Turn_events:
TurnEventPlayer(0x0,Opening_event,1)
TurnEventPlayer(0x0,BaddiesCome,3)
End_MAIN

Character_events:
CharacterEvent(0x06,SainTalk,0x18,0x17)
End_MAIN

Location_events:
Seize(0x0,Ending_event,7,0)
End_MAIN

Misc_events:
CauseGameOverIfLordDies
End_MAIN

TrapData:
End_MAIN

Opening_event:
OOBB
LOU1 Good
ENUN
LOU1 Bad
ENUN
FADI 10
BACG 0x01
MUS1 0x25
FADU 10
TEX1 0x815
REMA
ENDA

Ending_event:
MNCH (0x01)
ENDA

// Events
BaddiesCome:
LOU1 BaddiesCome
ENUN
ENDA

SainTalk:
MUS1 0x42
TEX1 0x816
REMA
TurnAlly(Kent)
ENDA

// Manual Movement

// Scripted Fights

// Units
BaddiesCome:

Baddies:
UNIT 0x3E 0x39 0x00 Level(3, Enemy, 0) [0,4] [0,4] [0x1F] PursueWithoutHeed
UNIT 0x3E 0x39 0x00 Level(3, Enemy, 0) [0,6] [0,6] [0x1F] PursueWithoutHeed
UNIT 0x3E 0x0E 0x00 Level(3, Enemy, 0) [1,5] [1,5] [0x02] PursueWithoutHeed
UNIT


// Shop Data

MESSAGE Events end at offset currentOffset

If someone could answer me I will glady apreciate, and I´d like to know how to make an ending cutscene and/or to change the protagonist as Sain, but when he dies it isn´t game over, only when Lyn dies, what I am suppose to do to change that?

Thank you in advance.

Link to comment
Share on other sites

BaddiesCome:
LOU1 BaddiesCome
ENUN
ENDA

You called your unit group 'Baddies' but are trying to load 'BaddiesCome'.

TurnAlly(Kent)

Are you sure you haven't loaded Tutorial Kent by accident? I highly recommend using the macro definitions for your units as well. That way you can do something like:

UNIT Kent Cavalier 0 Level(5,Ally,False) [1,2] [1,2] [Javelin, SteelSword, Vulnerary] NoAI

I´d like to know how to make an ending cutscene

Without more details from you, all I can say is "the same way you made your opening event"

Your seize event calls Ending_event already, so I guess I'm not sure what you're trying to say.

change the protagonist as Sain, but when he dies it isn´t game over, only when Lyn dies, what I am suppose to do to change that?

By protagonist do you mean have the ability to seize? There's a patch that lets you set up who can seize on which chapters. Check the Resource Directory.

Link to comment
Share on other sites

  • 2 weeks later...

I'm using the CUSI code on around 20 units each turn, and this starts happening.

Sometimes they turn black like this: https://gyazo.com/a08213e42940b14d83480ba66e923034

And sometimes they just disappear like this: https://gyazo.com/59006d7e48b3190b62a665a4662710f5

I've tried placing tons of STAL codes in between, and I've also tried using the "TurnAlly" etc. macros. I have a feeling it's just a limitation of the gba engine, but maybe there is a solution?

Link to comment
Share on other sites

  • 1 month later...

Hey ya'll, started hacking my first chapter. One thing is escaping me: the CauseGameOverIfLordDies misc condition. Lyn's death quote eventID definitely points to 0x65.

Added her in like so:

UNIT Lyn 0x02 0x00 Level(1,Ally,True) [19,19] [19, 18] [ManiKatti, Vulnerary] [0]

When she dies, no quote triggers and the game doesn't end.

I tried looking through as many tuts and docs as I could but the answer escapes me. Any help is appreciated.

Link to comment
Share on other sites

Could you post the rest of your events as well? Lyn should already be set up death quote wise thanks to the vanilla game, so I'm guessing there's something that needs fixing event side.

Link to comment
Share on other sites

Could you post the rest of your events as well? Lyn should already be set up death quote wise thanks to the vanilla game, so I'm guessing there's something that needs fixing event side.

Sure thing!

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

#define DISABLE_TUTORIALS
#include EAstdlib.event

EventPointerTable(0x8D,Pointers)


ORG 0x00D10000
Pointers:
POIN Turn_events 
POIN Character_events 
POIN Location_events 
POIN Misc_events
POIN TrapData TrapData
POIN Bad Bad Bad Bad
POIN Good Good Good Good
POIN Opening_event Ending_event

Bad:
UNIT

Good:
UNIT

Turn_events:
TURN 0x00 LoadUnits [01,00] 0x00 0x00
TURN 0x00 LoadSomeEnemies [02,05] 0x00 0x00
TURN 0x00 LoadaBoss [05, 00] 0x08 0x00
END_MAIN

Character_events:
END_MAIN

Location_events:
House(0,ElixirGuy,5,8) 
END_MAIN

ElixirGuy:
MUSI
FADI 0x04 /*fade?*/
BACG 0x01
FADU 0x04 /*more fade*/
TEX1 0x89D
MUNO
REMA /*removes bg*/
ITGV Elixir
ENDA

Misc_events:
CauseGameOverIfLordDies
END_MAIN

LoadUnits:
OOBB
LOU1 UnitsIncoming
ENUN
ENDA

LoadSomeEnemies:
LOU1 BaddiesIncoming
ENUN
ENDA

LoadaBoss:
LOU1 BossIncoming
ENUN
ENDA

UnitsIncoming:
UNIT Lyn 0x02 0x00 Level(1,Ally,True) [19,19] [19, 18] [ManiKatti, Vulnerary] [0]
UNIT Batta 0x39 0x00 Level(3,Ally,True) [19,19] [18, 19] [IronAxe, HandAxe, Vulnerary] [0] 
UNIT Bartre 0x14 0x00 Level(2,Ally,True) [19,19] [19,19] [0x1E] [0]
UNIT

BaddiesIncoming:
UNIT 0xB7 0x32 0x00 Level(1,Enemy,True) [19,0] [18,0] [IronSpear, 0x1E, Vulnerary] [0x00,0x02,0x02,0x00]
UNIT 0xB7 0x32 0x00 Level(1,Enemy,True) [19,0] [19,1] [IronSpear, 0x1E, Vulnerary] [0x00,0x02,0x02,0x00]
UNIT

BossIncoming:
UNIT 0x4F 0x50 0x01 Level(2,Enemy,True) [19,0] [19,0] [Tomahawk] [0x00,0x02,0x02,0x00]
UNIT

Opening_event:
ENDA

Ending_event:
MoveToChapter(0x01)
ENDA

TrapData:
ENDTRAP


MESSAGE Events end at offset currentOffset
//The map for this chapter is at offset: ???????? 
Link to comment
Share on other sites

Hmm, don't notice anything funny going on that's death quote related. What does your Death Quote Editor entry look like? This may or may not be relevant, but there's 2 versions of Lyn: tutorial and non-tutorial. Make sure you're using the appropriate version.

Side note: I will point out that your Elixir house doesn't have an event ID associated with it. This means the player can keep visiting the house to get infinite Elixirs.

Link to comment
Share on other sites

Hmm, don't notice anything funny going on that's death quote related. What does your Death Quote Editor entry look like? This may or may not be relevant, but there's 2 versions of Lyn: tutorial and non-tutorial. Make sure you're using the appropriate version.

Side note: I will point out that your Elixir house doesn't have an event ID associated with it. This means the player can keep visiting the house to get infinite Elixirs.

I actually have an issue with the two Lyns.

My assumption is that the Lyn I'm pointing to in my eventing is the non-tutorial Lyn. I guess the game does not recognize her as Lord? Either way in my Nightmare I set both tut Lyn and non tut Lyn to Lord and that Lyn I am loading still does not trigger a game over.

Edited by Umezono
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...