Jump to content

Event Assembler Questions Thread


CT075
 Share

Recommended Posts

Lyn's death quote eventID definitely points to 0x65.

I'd like some clarification on this statement. Because, 'points to' and 'has a value of' are two very different terms that mean different things.

The Death Quote editor allows you to set up a pointer to events for death quotes, as well as assign the quote an event ID.

The event ID should be a value and not a pointer.

Also, I seem to remember the entries in the part 1 death quote editor being finicky. You might try removing the Lyn entries in part 1 and making a new entry in part 2.

Edited by Primefusion
Link to comment
Share on other sites

  • Replies 3.3k
  • Created
  • Last Reply

Top Posters In This Topic

did you apply the "start in eliwood mode" patch?

No I did not. I just used the tutorial removal code.

I'd like some clarification on this statement. Because, 'points to' and 'has a value of' are two very different terms that mean different things.

The Death Quote editor allows you to set up a pointer to events for death quotes, as well as assign the quote an event ID.

The event ID should be a value and not a pointer.

Also, I seem to remember the entries in the part 1 death quote editor being finicky. You might try removing the Lyn entries in part 1 and making a new entry in part 2.

I meant value, sorry.

By the way, I have no idea how to load tutorial Lyn. Putting 0x02 and 0x03 in my event code loads Hector, and loading non tut lyn through 0x2D does not trigger a gameover on death.

Edited by Umezono
Link to comment
Share on other sites

Tutorial Lyn is defined as:

#define Lyn_t 0x03

I did a couple quick tests of your event code. If I run the ROM in Lyn Mode, I can get tutorial Lyn to cause a gameover, but not regular Lyn. If the game is in Eliwood mode, the opposite is true.

Link to comment
Share on other sites

Tutorial Lyn is defined as:

#define Lyn_t 0x03

I did a couple quick tests of your event code. If I run the ROM in Lyn Mode, I can get tutorial Lyn to cause a gameover, but not regular Lyn. If the game is in Eliwood mode, the opposite is true.

How does one know if the rom is in Eliwood mode or Lyn mode?

I used the disable tutorials code, as well as changed the values in the tutorial event editor. Besides that, I don't think I changed anything mode-wise.

EDIT: Loading Lyn_t definitely loads Hector for me. Where might I go about changing so that it doesn't. Nightmare seems to be unchanged for both characters.

Edited by Umezono
Link to comment
Share on other sites

Lyn_t definitely loads tutorial Lyn for me. If her and Hector's Nightmare entries are unchanged, then something else got goofed in the ROM. Try a fresh copy.

As for starting in different modes, there's a patch that puts you in Eliwood mode by default. Or, if you like to do things manually, here's the bytes you need to change.

Dunno why this information isn't here on SF.

Link to comment
Share on other sites

Stop me if you've heard this one before:

How do I get my event assembler to output EAstdlib (human-readable) code instead of machine code? The guides I've read seem to skip over that, as though it's supposed to happen automatically, but that definitely wasn't the case. What silly thing have I missed?

Link to comment
Share on other sites

I don't understand what you mean by "human-readable" code.

Ok basically I'm getting this:

CHES 0x00 0x6C [2,4] 0x14

But I want this:

Chest(Elixir,2,4)

I'm going into the Event Assembler, feeding it the offset that Nightmare gives me, outputting it to a textfile, etc. And I get code in the above format. But Nintenlord's guide says:
"Locate the text file you chose in Even Assembler and open it. It should look like something like this depending on your text editor:"
Which shows text in the easier-to-read format. And Arch's guide talks about how to define new things, but doesn't really seem to answer how to apply these definitions in the first place.
Link to comment
Share on other sites

Huh, thank you. That makes the guides a bit misleading, then. But OK.

So all I'm trying to do now is add an enemy (or a few) into the prologue of Sacred Stones, as a test. This is the full code I get from the disassembler:

[spoiler={option}]

////////////////////////////////////////////////////
// //
// Disassembled with Nintenlord's Event Assembler //
// Version: 9.10.4713.28131 //
// Game: FE8 //
// File: FESS REDUX.GBA //
// Offset: $9E863C //
// //
////////////////////////////////////////////////////
ORG $591F40
label35:
_0x1020 0x1
_0x0220 0x2
_0x0320 0x8
_SETCONDITION 0x0 0xC 0x0
FADU 16
ENIF 0x0
_0x1020 0x0
ENDA
//The next line is for re-assembling purposes. Do not delete!
MESSAGE Original ending offset is $591F64 and the new ending offset is CURRENTOFFSET
ORG $592104
label20:
_0x1020 0x4
ASMC 0x85375
ENDA
//The next line is for re-assembling purposes. Do not delete!
MESSAGE Original ending offset is $592114 and the new ending offset is CURRENTOFFSET
ORG $8B3C14
Units1:
UNIT 0x2 0x7 0x0 0x8 [13,9] 0b 0x0 0x6 0x8B3BC4 [0x3,0x17,0x6C,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x1 0x2 0x0 0x8 [8,5] 0b 0x0 0x1 0x8B3BF4 [0x6C,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT
label36:
UNIT 0x68 0x3F 0x0 0x24 [14,8] 0b 0x0 0x1 0x8B3BFC [0x1F,0x0,0x0,0x0] [0x6,0x3,0x0,0x0]
UNIT 0x82 0x3F 0x0 0xC [14,7] 0b 0x0 0x1 0x8B3C04 [0x1F,0x0,0x0,0x0] [0x0,0xA,0x0,0x0]
UNIT 0x80 0x3F 0x0 0x14 [14,7] 0b 0x0 0x1 0x8B3C0C [0x1F,0x0,0x0,0x0] [0x0,0x12,0x2,0x0]
UNIT
//The next line is for re-assembling purposes. Do not delete!
MESSAGE Original ending offset is $8B3CA0 and the new ending offset is CURRENTOFFSET
ORG $8B3D18
label28:
UNIT 0xC5 0x73 0x0 0x8 [13,3] 0b 0x0 0x0 0x0 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x1 0x2 0x0 0x8 [14,4] 0b 0x0 0x0 0x0 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x2 0x7 0x0 0x8 [15,4] 0b 0x0 0x0 0x0 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x5 0xB 0x0 0x8 [11,7] 0b 0x0 0x0 0x0 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x6 0xB 0x0 0x8 [15,7] 0b 0x0 0x0 0x0 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x3 0x9 0x0 0x8 [7,14] 0b 0x0 0x0 0x0 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0xC0 0x9 0x0 0x8 [10,14] 0b 0x0 0x0 0x0 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x4 0x5 0x0 0x8 [11,4] 0b 0x0 0x0 0x0 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT
label29:
UNIT 0xF 0x4E 0x0 0x8 [9,15] 0b 0x0 0x3 0x8B3CA0 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT
label32:
UNIT 0x6B 0xB 0x0 0xC [13,10] 0b 0x0 0x1 0x8B3CB8 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x40 0x4F 0x0 0xC [12,11] 0b 0x0 0x1 0x8B3CC0 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT
label30:
UNIT 0x80 0x2D 0x0 0xC [5,1] 0b 0x0 0x1 0x8B3CC8 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x80 0x2D 0x0 0xC [5,2] 0b 0x0 0x1 0x8B3CD0 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x80 0x2F 0x0 0xD [19,10] 0b 0x0 0x1 0x8B3CD8 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x80 0x2F 0x0 0xD [20,10] 0b 0x0 0x1 0x8B3CE0 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT
label31:
UNIT 0x83 0x35 0x0 0xC [10,10] 0b 0x0 0x1 0x8B3CE8 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x83 0x35 0x0 0xC [16,10] 0b 0x0 0x1 0x8B3CF0 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x84 0x7 0x0 0xC [10,10] 0b 0x0 0x1 0x8B3CF8 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x84 0x7 0x0 0xC [16,10] 0b 0x0 0x1 0x8B3D00 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x85 0x29 0x0 0xC [10,10] 0b 0x0 0x1 0x8B3D08 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x85 0x29 0x0 0xC [16,10] 0b 0x0 0x1 0x8B3D10 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT
//The next line is for re-assembling purposes. Do not delete!
MESSAGE Original ending offset is $8B3F20 and the new ending offset is CURRENTOFFSET
ORG $8B3F68
label33:
UNIT 0x2 0x7 0x0 0x8 [9,3] 0b 0x0 0x2 0x8B3F20 [0x3,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x4 0x5 0x0 0x8 [9,3] 0b 0x0 0x2 0x8B3F30 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x1 0x2 0x0 0x8 [6,5] 0b 0x0 0x1 0x8B3F40 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT
label34:
UNIT 0x45 0x23 0x0 0x2C [14,5] 0b 0x0 0x2 0x8B3F48 [0x17,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x80 0x1F 0x0 0xD [14,4] 0b 0x0 0x1 0x8B3F58 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x80 0x1F 0x0 0xD [14,6] 0b 0x0 0x1 0x8B3F60 [0x0,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT
//The next line is for re-assembling purposes. Do not delete!
MESSAGE Original ending offset is $8B4008 and the new ending offset is CURRENTOFFSET
ORG $9E858C
TurnBasedEvents:
TURN 0x0 label15 [1,0] 0x8
TURN 0x0 label16 [2,0] 0x0
TURN 0x0 label17 [3,0] 0x0
TURN 0x8 label18 [1,255] 0x8
END_MAIN
CharacterBasedEvents:
END_MAIN
LocationBasedEvents:
END_MAIN
MiscBasedEvents:
AFEV 0x3 EndingScene 0x2
AFEV 0x7 label19 0x0
AFEV 0x0 label20 0x65
END_MAIN
Dunno1:
END_MAIN
Dunno2:
END_MAIN
Dunno3:
END_MAIN
Tutorial:
WORD 0x89EF2B0 0x89EF328 0x89EF388 0x89EF398
WORD 0x89EF46C 0x89EF4EC 0x89EF50C 0x89EF53C
WORD 0x89EF56C 0x89EF5A8 0x89EF6E0 0x89EF758
WORD 0x89EF7B8 0x89EF7C8 0x89EF7FC
END_MAIN
PointerList:
POIN TurnBasedEvents
POIN CharacterBasedEvents
POIN LocationBasedEvents
POIN MiscBasedEvents
POIN Dunno1 Dunno2 Dunno3 Tutorial
POIN Traps1 Traps2
POIN Units1 Units1
POIN $0 $0 $0
POIN $0 $0 $0
POIN BeginningScene EndingScene
//The next line is for re-assembling purposes. Do not delete!
MESSAGE Original ending offset is $9E868C and the new ending offset is CURRENTOFFSET
ORG $9ED9A8
Traps1:
ENDTRAP
//The next line is for re-assembling purposes. Do not delete!
MESSAGE Original ending offset is $9ED9A9 and the new ending offset is CURRENTOFFSET
ORG $9EDE99
Traps2:
ENDTRAP
//The next line is for re-assembling purposes. Do not delete!
MESSAGE Original ending offset is $9EDE9A and the new ending offset is CURRENTOFFSET
ORG $9EE0C0
label24:
_0x1927
_SETCONDITION 0x0 0xC 0x0
_CALL_HELL
ENIF 0x0
ENDA
//The next line is for re-assembling purposes. Do not delete!
MESSAGE Original ending offset is $9EE0DC and the new ending offset is CURRENTOFFSET
ORG $9EE2C4
label22:
_0x0320 0x8
_SETCONDITION2 0x80BD 0xC 0x0
FADI 16
ENIF 0x80BD
TEXTSTART
_0x2220
FADU 16
ENDA
label21:
_0x0320 0x8
_SETCONDITION2 0x80D2 0xC 0x0
FADI 16
ENIF 0x80D2
_0x1A21
_0x2140 0xFFFF 0x0 0x0
FADU 16
ENDA
label25:
CALL label21
_0x0620 0x32
TEXTSHOW 0xFFFF
TEXTEND
CALL label22
ENDA
//The next line is for re-assembling purposes. Do not delete!
MESSAGE Original ending offset is $9EE330 and the new ending offset is CURRENTOFFSET
ORG $9EEBE8
BeginningScene:
CALL label23
_SETVAL 0x2 0x89EF1BC
CALL label24
_0x1927
_SETCONDITION2 0x0 0xC 0x0
ASMC 0xCF461
ENIF 0x0
_0x0229 0x8
_LOAD1 0x1 Units1
ENUN
_SETVAL 0x1 0xD
_0x3425 0x2
CUMO 0x1
STAL 60
CURE
MUNO
_SETVAL 0x2 0x1D
_SETVAL 0x3 0x90D
CALL label25
MUSI
_MOVE 0x18 0x2 [4,4]
ENUN
CUMO 0x2
STAL 60
CURE
TEXTSTART
TEXTSHOW 0x90E
TEXTEND
REMA
_SETVAL 0x2 0x89EF27C
CALL label24
_WARP 0x0 0x1 [4,5]
ENUN
CALL label26
CALL label27
_0x0228 0x7
ENDA
label23:
_SETVAL 0xB 0xA000E
LOMA 0x10
_LOAD2 0x1 label28
ENUN
FADU 16
MUS1 0x26
TEX8 0x664 [8,8]
_LOAD1 0x1 label29
ENUN
_0x2620 0xE
CUMO 0xF
STAL 60
CURE
TEXTSTART
TEXTSHOW 0x903
TEXTEND
REMA
MOVE 0xF [13,11]
ENUN
DISA 0xF
_MOVE2 0x0 0x1 0x0
ENUN
CUMO 0x1
STAL 60
CURE
TEXTSTART
TEXTSHOW 0x904
TEXTEND
REMA
_MOVE1 0x0 0x2 0x1
ENUN
DISA 0x1
CUMO 0x2
STAL 60
CURE
TEXTSTART
TEXTSHOW 0x905
TEXTEND
REMA
MOVE 0x2 [13,11]
_SETVAL 0xD 0x0
_SETVAL 0x1 0x10C
_SAVEFORBATTLE
_SETVAL 0x1 0x0
_SAVEFORBATTLE
_SETVAL 0x1 0x2CC
_SAVEFORBATTLE
_SETVAL 0x1 0x0
_SAVEFORBATTLE
_MOVE3 0x0 0x4 0x0
ENUN
DISA 0x2
DISA 0x4
MOVE 0x5 [11,4]
MOVE 0x6 [15,4]
ENUN
_MOVE2 0x0 0x5 0x1
_MOVE2 0x0 0x6 0x0
ENUN
_LOAD1 0x1 label30
ENUN
_LOAD1 0x1 label31
ENUN
_LOAD1 0x1 label32
ENUN
CUMO 0xC5
STAL 60
CURE
TEXTSTART
TEXTSHOW 0x906
TEXTEND
FADI 2
REMA
_0x0220 0x2
_0x342A 0x0
_0x342C 0x0
_0x342B 0x0
_SETVAL 0xB 0x0
LOMA 0x40
FADU 16
_LOAD2 0x1 label33
ENUN
CUMO 0x2
STAL 60
CURE
_SETVAL 0x2 0x1D
_SETVAL 0x3 0x907
CALL label25
_SETVAL 0xD 0x0
_SETVAL 0x1 0x104
_SAVEFORBATTLE
_SETVAL 0x1 0x0
_SAVEFORBATTLE
_SETVAL 0x1 0x84
_SAVEFORBATTLE
_SETVAL 0x1 0x0
_SAVEFORBATTLE
_SETVAL 0x1 0x80
_SAVEFORBATTLE
_SETVAL 0x1 0x0
_SAVEFORBATTLE
_MOVE3 0x0 0x4 0x0
ENUN
DISA 0x4
CUMO 0x2
STAL 60
CURE
_SETVAL 0x2 0x1D
_SETVAL 0x3 0x908
CALL label25
_LOAD1 0x1 label34
ENUN
_MOVE2 0x0 0x2 0x1
ENUN
_MOVE2 0x0 0x1 0x0
ENUN
CUMO 0x45
STAL 60
CURE
_SETVAL 0x2 0x1D
_SETVAL 0x3 0x909
CALL label25
_MOVE2 0x0 0x45 0x0
ENUN
_SETVAL 0xD 0x0
_SETVAL 0x1 0x20000
_SAVEFORBATTLE
_SETVAL 0x1 0x1
_SAVEFORBATTLE
_SETVAL 0x1 0xFFFFFFFF
_SAVEFORBATTLE
FIG1 0x2 0x45 0x0
CUMO 0x2
STAL 60
CURE
TEXTSTART
TEXTSHOW 0x90B
TEXTEND
REMA
_MOVE2 0x8 0x2 0x0
ENUN
DISA 0x1
_SETVAL 0xD 0x0
_SETVAL 0x1 0x18104
_SAVEFORBATTLE
_SETVAL 0x1 0x0
_SAVEFORBATTLE
_SETVAL 0x1 0x18084
_SAVEFORBATTLE
_SETVAL 0x1 0x0
_SAVEFORBATTLE
_SETVAL 0x1 0x18080
_SAVEFORBATTLE
_SETVAL 0x1 0x0
_SAVEFORBATTLE
_MOVE3 0x0 0x2 0x0
ENUN
DISA 0x2
CUMO 0x45
STAL 60
CURE
TEXTSTART
TEXTSHOW 0x90C
TEXTEND
REMA
FADI 16
_0x0220 0x2
_0x342A 0x0
_0x342C 0x0
_0x342B 0x0
_SETVAL 0xB 0x0
LOMA 0x0
FADU 16
ENDA
label26:
CUMO 0x2
STAL 60
CURE
TEXTSTART
TEXTSHOW 0x90F
TEXTEND
REMA
CALL label35
_SETVAL 0x3 0x9
_GIVEITEMTO 0x1
_SETVAL 0x2 0x89EF828
CALL label24
ENDA
label27:
_LOAD1 0x1 label36
ENUN
CUMO 0x68
STAL 60
CURE
MUS1 0x13
TEXTSTART
TEXTSHOW 0x910
TEXTEND
REMA
_0x0221 0x4
ENDA
label19:
_0x1924
_SETVAL 0x7 0x1
_SETCONDITION2 0x0 0xC 0x7
CUMO 0x2
STAL 60
CURE
TEXTSTART
TEXTSHOW 0x913
TEXTEND
REMA
_0x0221 0x8
ELSE 0x1
ENIF 0x0
_0x1929
_0x0620 0xC2
_0x0221 0xFFFF
ENIF 0x1
_0x0228 0x7
ENDA
label18:
MUS1 0x13
TEXTSTART
TEXTSHOW 0x914
TEXTEND
REMA
_0x1927
_SETCONDITION2 0x0 0xC 0x0
_SETVAL 0x1 0x0
_0x3920 0x68
ENIF 0x0
_0x0228 0x7
ENDA
EndingScene:
MUS1 0x31
_SETVAL 0x2 0x1D
CALL label21
TEXTSHOW 0x918
TEXTEND
FADI 16
REMA
_0x0229 0xE0
_0x0229 0xE1
_0x0229 0xB7
_0x0229 0xB4
_0x0229 0xB5
_0x0229 0xDC
_0x0229 0xB9
_0x0229 0xC2
_0x0229 0xC3
_0x0229 0xE7
_0x0229 0xC9
MNC2 0x1
ENDA
//The next line is for re-assembling purposes. Do not delete!
MESSAGE Original ending offset is $9EF1BC and the new ending offset is CURRENTOFFSET
ORG $9EF214
label15:
_SETVAL 0x2 0x89EF0A4
CALL label24
_SETVAL 0x2 0x89EF3B4
CALL label24
_0x0228 0x7
ENDA
label16:
_SETVAL 0x2 0x89EF3D8
CALL label24
_0x0228 0x7
ENDA
label17:
_SETVAL 0x2 0x89EF610
CALL label24
_SETVAL 0x2 0x89EF670
CALL label24
_0x0228 0x7
ENDA
//The next line is for re-assembling purposes. Do not delete!
MESSAGE Original ending offset is $9EF27C and the new ending offset is CURRENTOFFSET

So basically, what have I got to do to add in any additional enemy onto this map? Here's the code that's most relevant, I think:
ORG $8B3C14
Units1:
UNIT 0x2 0x7 0x0 0x8 [13,9] 0b 0x0 0x6 0x8B3BC4 [0x3,0x17,0x6C,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x1 0x2 0x0 0x8 [8,5] 0b 0x0 0x1 0x8B3BF4 [0x6C,0x0,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT
label36:
UNIT 0x68 0x3F 0x0 0x24 [14,8] 0b 0x0 0x1 0x8B3BFC [0x1F,0x0,0x0,0x0] [0x6,0x3,0x0,0x0]
UNIT 0x82 0x3F 0x0 0xC [14,7] 0b 0x0 0x1 0x8B3C04 [0x1F,0x0,0x0,0x0] [0x0,0xA,0x0,0x0]
UNIT 0x80 0x3F 0x0 0x14 [14,7] 0b 0x0 0x1 0x8B3C0C [0x1F,0x0,0x0,0x0] [0x0,0x12,0x2,0x0]
UNIT
Units1 would be the player's units (Eirika and Seth), while label36 represents the enemies? I think? And the lines reading simply "UNIT" are the "UNIT empty" separators, probably.
And what exactly do the 0x68, 0x82, and 0x80 do? I get that they're the IDs, but for instance, several of the sample codes re-use the same ID for different enemy units of the same class, but with varying inventories. If I want to add a class of enemy that doesn't already exist in the prologue (say, a Myrmidon), then what ID should I give them?
I feel like there must've been something major I missed in the tutorials and guides, so if all these questions were answered somewhere and I just missed it, point me in the right direction.
Edited by FEF
Link to comment
Share on other sites

And what exactly do the 0x68, 0x82, and 0x80 do? I get that they're the IDs, but for instance, several of the sample codes re-use the same ID for different enemy units of the same class, but with varying inventories. If I want to add a class of enemy that doesn't already exist in the prologue (say, a Myrmidon), then what ID should I give them?

The re-use of the same character ID means it's the same character loaded as different classes. They're all just "Grado" characters, so there doesn't need to be unique IDs for them (at least for enemies and NPCs. Characters on the player's team need to be unique). You can use whatever character ID you want. Check the Character Editor module to find the one(s) you want.

Link to comment
Share on other sites

Huh, thank you. That makes the guides a bit misleading, then. But OK.

the tutorials aren't really geared towards modifying existing chapters anyway; they're largely meant for writing your own events from scratch
Link to comment
Share on other sites

  • 2 weeks later...

I'm eventing for the first time, and I want to have a chest. However, my enemy thief keeps stealing from it; he does it infinitely. Also, I have the map change of it closing in the game with Tiled, but I'm not sure how to access it and make it occur after the chest is opened. None of the tutorials I've read have done chests specifically in depth.

ChestMoney(5000,1,13)

How does one make it so that he/any other thief can only open this chest once?

Link to comment
Share on other sites

Hi all,

I've been having trouble with my location events crashing my ROM once I assemble my events. I have three location events: one house, one village, and a vendor. None of them work together or on their own. All of the other events load if I assemble the game without any of the location events present.

I bolded the part of the code I'm having trouble with. If it matters, I'm using a Tiled map that was made with the auto map generator from Yeti. Anyone have any ideas? Thank you! =)

#define DISABLE_TUTORIALS
#include EAstdlib.event
EventPointerTable(0x15,Chapter)
ORG 0xD11200
Chapter:
POIN TurnEvents
POIN TalkEvents
POIN LocationEvents
POIN MiscEvents
POIN TerrainEvents TerrainEvents
POIN Bad Bad Bad Bad
POIN Good Good Good Good
POIN OpeningScene EndingScene
Good:
UNIT Lyn Mercenary Lyn Level(1, Ally, False) [3,4] [3,4] [ironSword] NoAI
UNIT Sain Cavalier Lyn Level(1, Ally, False) [1,6] [1,6] [ironSword, IronSpear, Vulnerary] NoAI
UNIT Florina PegasusKnight Lyn Level(1, Ally, False) [1,4] [1,4] [slimSpear, Javelin, Vulnerary] NoAI
UNIT Eliwood Archer Lyn Level(1, Ally, False) [3,5][3,5] [ironBow, Vulnerary] NoAI
UNIT Kent Monk Lyn Level(1, Ally, False) [4,5][4,5] [Lightning, Elixir] NoAI
UNIT Matthew Thief Lyn Level(1, Ally, False) [2,6][2,6] [ironSword, SteelSword, LockPick, Vulnerary]NoAI
UNIT Canas Shaman Lyn Level(1, Ally, False) [11,5][11,5] [Flux, Vulnerary, Talisman] NoAI
UNIT Marcus Princefacingupward Lyn Level(1, Ally, False) [4,16][4,16] [silverAxe, SteelSpear, SteelSword]NoAI
UNIT
Gibb:
UNIT Batta Brigand Batta Level(9, Enemy, True) [12,5][12,5] [HandAxe, DevilAxe]AttackInRange
UNIT
Bad:
UNIT Merc Archer Batta Level(4, Enemy, True) [6,2][6,2] [ironBow,0x00,0x00]AttackInRange
UNIT Merc Fighter Batta Level(4, Enemy, True) [7,1][7,1] [HandAxe,0x00,0x00,0x00]AttackInRange
UNIT Merc Brigand Batta Level(4, Enemy, True) [9,0][9,0] [steelAxe,0x00,0x00,0x00]PursueWithoutHeed
UNIT Merc Archer Batta Level(4, Enemy, True) [15,1][15,1] [Longbow,0x00,0x00]AttackInRange
UNIT Merc Brigand Batta Level(4, Enemy, True) [14,4][14,4] [ironAxe,0x00,0x00,0x00]PursueWithoutHeed
UNIT Merc Brigand Batta Level(4, Enemy, True) [13,5][13,5] [HandAxe,0x00,0x00,0x00]PursueWithoutHeed
UNIT Merc Brigand Batta Level(4, Enemy, True) [14,6][14,6] [ironAxe,0x00,0x00,0x00]PursueWithoutHeed
UNIT Merc Myrmidon Batta Level(4, Enemy, True) [16,7][16,7] [ironSword,0x00,0x00,0x00]PursueWithoutHeed
UNIT Merc Cavalier Batta Level(4, Enemy, True) [16,10][16,10] [ironSword,0x00,0x00,0x00]AttackInRange
UNIT Merc Mercenary Batta Level(4, Enemy, True) [11,13][11,13] [ironSword,0x00,0x00,0x00]AttackInRange
UNIT Merc Cavalier Batta Level(4, Enemy, True) [9,3][9,3] [Javelin,0x00,0x00,0x00]AttackInRange
UNIT Merc Myrmidon Batta Level(4, Enemy, True) [7,12][7,12] [KillingEdge,0x00,0x00,0x00]AttackInRange
UNIT Merc Mercenary Batta Level(4, Enemy, True) [6,14][6,14] [ironSword,0x00,0x00,0x00]AttackInRange
UNIT Merc Fighter Batta Level(4, Enemy, True) [8,15][8,15] [ironAxe,0x00,0x00,0x00]AttackInRange
UNIT Merc Archer Batta Level(4, Enemy, True) [8,17][8,17] [steelBow,0x00,0x00]AttackInRange
UNIT Merc Brigand Batta Level(4, Enemy, True) [4,15][4,15] [ironAxe,0x00,0x00,0x00]PursueWithoutHeed
UNIT Merc Mercenary Batta Level(4, Enemy, True) [13,19][13,19] [steelSword,0x00,0x00,0x00]AttackInRange
UNIT Merc Myrmidon Batta Level(4, Enemy, True) [12,20][12,20] [steelSword,0x00,0x00,0x00]PursueWithoutHeed
UNIT Merc Archer Batta Level(4, Enemy, True) [10,21][10,21] [ironBow,0x00,0x00]AttackInRange
UNIT Merc Archer Batta Level(4, Enemy, True) [6,21][6,21] [Longbow,Vulnerary,0x00,0x00]AttackInRange
UNIT Merc Cavalier Batta Level(4, Enemy, True) [2,18][2,18] [ironSpear,0x00,0x00,0x00]AttackInRange
UNIT Merc Fighter Batta Level(4, Enemy, True) [1,21][1,21] [HandAxe,0x00,0x00,0x00]AttackInRange
UNIT
Reinforcements1:
UNIT Merc Cavalier Batta Level(5, Enemy, True) [0,4][0,4] [ironSpear,Javelin,0x00,0x00]PursueWithoutHeed
UNIT Merc Cavalier Batta Level(5, Enemy, True) [0,5][0,5] [ironSword,Javelin,0x00,0x00]PursueWithoutHeed
UNIT Merc Brigand Batta Level(4, Enemy, True) [12,4][12,4] [ironAxe,0x00,0x00,0x00]PursueWithoutHeed
UNIT Merc Brigand Batta Level(4, Enemy, True) [13,4][13,4] [ironAxe,0x00,0x00,0x00]PursueWithoutHeed
UNIT
Reinforcements2:
UNIT Merc Archer Glass Level(4, Enemy, True) [16,9][16,9] [Longbow,0x00,0x00,0x00]PursueWithoutHeed
UNIT Merc Mercenary Glass Level(4, Enemy, True) [16,11][16,11] [LanceReaver,0x00,0x00,0x00]PursueWithoutHeed
UNIT Merc Archer Glass Level(4, Enemy, True) [13,21][13,21] [steelBow,0x00,0x00,0x00]PursueWithoutHeed
UNIT Merc Mercenary Glass Level(4, Enemy, True) [11,21][11,21] [steelSword,0x00,0x00,0x00]PursueWithoutHeed
UNIT
Reinforcements3:
UNIT Merc Fighter Glass Level(5, Enemy, True) [0,19][0,19] [ironAxe,0x00,0x00,0x00]PursueWithoutHeed
UNIT Merc Myrmidon Glass Level(5, Enemy, True) [0,21][0,21] [steelSword,0x00,0x00,0x00]PursueWithoutHeed
UNIT Merc Fighter Glass Level(5, Enemy, True) [0,20][0,20] [ironAxe,HandAxe,0x00,0x00]PursueWithoutHeed
UNIT
Turn5:
LOU1 Reinforcements1
ENUN
ENDA
Turn7:
LOU1 Reinforcements2
ENUN
ENDA
Turn9:
LOU1 Reinforcements3
ENUN
ENDA
TurnEvents:
TurnEventPlayer(0x00, OpeningScene,1)
TurnEventPlayer(0x00, Turn5,5)
TurnEventPlayer(0x00, Turn7,7)
TurnEventPlayer(0x00, Turn9,9)
ENDA
LocationEvents:
Village(0x08,Lance,4,12)
House(0x11,House1,4,19)
Vendor(Shop1,0,17)
LOCA
Shop1:
SHLI Vulnerary Heal Fire Flux IronSword SlimSword IronSpear SlimSpear IronBow
Lance:
FADI 10
BACG 0x02
FADU 10
TEX1 0x84E
REMA
ITGV KillerLance
ENDA
House1:
FADI 10
BACG 0x01
FADU 10
TEX1 0x0847
REMA
ENDA
TalkEvents:
CHAR 0x0E Talk1 Marcus Lyn 0x000000
CHAR 0x0A Talk2 Sain Florina 0x000000
End_MAIN
Talk2:
TEX1 0x846
REMA
ENDA
Talk1:
TEX1 0x845
REMA
ENDA
MiscEvents:
DefeatAll(EndingScene)
CauseGameOverIfLordDies
AFEV
TerrainEvents:
BLST
ALIGN 4
OpeningScene:
MUS1 0x003E
FADI 10
BACG 0x1C
TEX1 0x840
REMA
FADI 10
BACG 0x1C
TEX1 0x841
REMA
LOU1 Good
ENUN
LOU1 Gibb
ENUN
LOU1 Bad
ENUN
FADI 10
BACG 0x1C
TEX1 0x842
REMA
MOVE Batta [14,20]
MOVE Kent [10,6]
BACG 0x1C
TEX1 0x843
REMA
TEX1 0x844
REMA
ENDA
EndingScene:
MUS1 0x0038
FADI 10
BACG 0x1C
TEX1 0x84F
REMA
FADI 10
BACG 0x1C
TEX1 0x850
REMA
MoveToChapter(0x04)
MESSAGE Events end at offset currentOffset
//The map for this chapter is at offset: ????????

Link to comment
Share on other sites

Hi, I'm having issues with alternate texts. Basically, I want the text to change if a certain character visits a certain village. I thought using IFCA would do that, but that doesn't seem the case (the condition will always trigger no matter which character visits the village).

Here's my code.

Location_events:
Village(0x11,ConradVillage,14,3)
Village(0x10,HyugaVillage,14,12)
Armory(ArmorVisit,16,5)
Vendor(VendorVisit,9,11)
House(0,House1,8,7)
House(0,House2,13,8)
House(0,House3,16,12)
LOCA
 
ConradVillage:
IFCA 0x00 0x12 Conrad
VillageEventMoney(0x847,0x02,5000)
ELSE 0x13
ENIF 0x12
VillageEventMoney(0x846,0x02,5000)
ENIF 0x13
MAC1 0x00 0
ENDA
Link to comment
Share on other sites

Hi all,

I've been having trouble with my location events crashing my ROM once I assemble my events. I have three location events: one house, one village, and a vendor. None of them work together or on their own. All of the other events load if I assemble the game without any of the location events present.

I bolded the part of the code I'm having trouble with. If it matters, I'm using a Tiled map that was made with the auto map generator from Yeti. Anyone have any ideas? Thank you! =)

Nothing's really jumping out at me. Are the tile changes inserted correctly?

 
ConradVillage:
IFCA 0x00 0x12 Conrad
    VillageEventMoney(0x847,0x02,5000)
ELSE 0x13
ENIF 0x12
    VillageEventMoney(0x846,0x02,5000)
ENIF 0x13
MAC1 0x00 0
ENDA

Hmm... This looks like it should work. It might be worth starting your conditional IDs at 0x00. Conditional IDs and Event IDs are separate from each other. Sort of a stab in the dark, though.

Shouldn't the ELSE 0x13 be after the first ENIF 0x12?

Nope. It's not intuitive, but you have to start the else branch before you end the main branch.

Link to comment
Share on other sites

Nothing's really jumping out at me. Are the tile changes inserted correctly?

Hmm... This looks like it should work. It might be worth starting your conditional IDs at 0x00. Conditional IDs and Event IDs are separate from each other. Sort of a stab in the dark, though.

Nope. It's not intuitive, but you have to start the else branch before you end the main branch.

The only tile layer on my map is for the village gate, which I think is correct. But even if it wasn't, the house and vendor should still work without it, shouldn't they? It's all the location events in general that have been crashing the game. I had a village work in a previous chapter. This is the first time I've tried to use a vendor and a house.

Link to comment
Share on other sites

You should have a Main layer, in addition to the changes for the village.

Time for process of elimination. Go into the chapter data editor and set the Tile Changes for the chapter to 'None'. Then, comment out the village in your event code and re-assemble. Do the house and vendor work?

Link to comment
Share on other sites

I think I found the issue. TurnEvents should not end with ENDA, but with END_MAIN.

You're also missing an ENDA on your ending scene, but I'm pretty sure that wasn't what was causing the issue.

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