Jump to content

Event Assembler Questions Thread


CT075
 Share

Recommended Posts

I have this event file that I tried to make with Cedar's new tool here:

#define DISABLE_TUTORIALS

#include EAstdlib.event

EventPointerTable(0x09,Pointers)

ORG 0x14DA5C0

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 0x01 0x01 0x00 Level(1, Ally, 0) [1,0] [1,4] [0x00] NoAI

UNIT 0x0B 0x14 0x00 Level(1, Ally, 1) [1,0] [0,4] [0x00] NoAI

UNIT 0x19 0x28 0x00 Level(1, Ally, 1) [1,0] [1,5] [0x00] NoAI

UNIT 0x1A 0x2A 0x00 Level(1, NPC, 1) [1,0] [1,7] [0x00] NoAI

UNIT

Bad:

UNIT 0x67 0x39 0x00 Level(10, Enemy, 1) [19,12] [19,12] [0x20] AttackInRange

UNIT 0x67 0x39 0x00 Level(10, Enemy, 1) [16,13] [16,13] [0x20] AttackInRange

UNIT 0x67 0x39 0x00 Level(10, Enemy, 1) [17,11] [17,11] [0x20] AttackInRange

UNIT 0x67 0x39 0x00 Level(10, Enemy, 1) [12,11] [12,11] [0x20] AttackInRange

UNIT 0x67 0x39 0x00 Level(10, Enemy, 1) [12,13] [12,13] [0x20] AttackInRange

UNIT 0x67 0x39 0x00 Level(10, Enemy, 1) [14,14] [14,14] [0x20] AttackInRange

UNIT 0x67 0x39 0x00 Level(10, Enemy, 1) [13,12] [13,12] [0x20] AttackInRange

UNIT 0x67 0x39 0x00 Level(10, Enemy, 1) [16,12] [16,12] [0x20] AttackInRange

UNIT 0x67 0x39 0x00 Level(10, Enemy, 1) [13,14] [13,14] [0x20] AttackInRange

UNIT 0x67 0x39 0x00 Level(10, Enemy, 1) [17,14] [17,14] [0x20] AttackInRange

UNIT 0x67 0x39 0x00 Level(10, Enemy, 1) [18,13] [18,13] [0x20] AttackInRange

UNIT 0x67 0x39 0x00 Level(10, Enemy, 1) [18,12] [18,12] [0x20] AttackInRange

UNIT 0x67 0x39 0x00 Level(10, Enemy, 1) [10,12] [10,12] [0x20] AttackInRange

UNIT 0x67 0x39 0x00 Level(10, Enemy, 1) [9,14] [9,14] [0x20] AttackInRange

UNIT 0x67 0x39 0x00 Level(10, Enemy, 1) [10,13] [10,13] [0x20] AttackInRange

UNIT 0x67 0x39 0x00 Level(10, Enemy, 1) [9,11] [9,11] [0x20] AttackInRange

UNIT 0x67 0x39 0x00 Level(10, Enemy, 1) [11,14] [11,14] [0x20] AttackInRange

UNIT 0x67 0x39 0x00 Level(10, Enemy, 1) [15,12] [15,12] [0x20] AttackInRange

UNIT 0x99 0x39 0x00 Level(10, Enemy, 1) [15,11] [15,11] [0x20] AttackInRange

UNIT

Turn_events:

TurnEventPlayer(0x00,Opening_event,1)

ENDA

Character_events:

Location_events:

Misc_events:

CauseGameOverIfLordDies

TrapData:

Opening_event:

LOU1 Bad

ENUN

OOBB

CAM1 [1,0]

CURF [1,0]

LOU1 Good

ENUN

CURF Marcus

TEX1 0x237

MOVE [1,4] [3,8]

ENUN

MOVE [1,5] [2,8]

ENUN

MOVE [3,7] [2,8]

ENUN

MOVE [1,7] [4,10]

ENUN

ENDA

Ending_event:

ENDA

// Events

// Manual Movement

// Scripted Fights

// Units

// Shop Data

MESSAGE Events end at offset currentOffset

the assembler gives me no errors but when the chapter loads the emulator automatically resets as if the file can't be loaded. What's wrong?

Link to comment
Share on other sites

  • Replies 3.3k
  • Created
  • Last Reply

Top Posters In This Topic

cedar's thing isn't complete

Turn_events:
TurnEventPlayer(0x00,Opening_event,1)
ENDA

this is wrong

Character_events:


Location_events:


Misc_events:
CauseGameOverIfLordDies


TrapData:

should have terminators at the end of all of them

Link to comment
Share on other sites

ok that worked but now I get a weird glitch on my turn event

Turn Event Code : TurnEventEnemy(0x00,Thief_bitch,1)

Event:

Thief_bitch:

CAM1 [17,10]

CURF [24,14]

LOU1 Thief

ENUN

TEX1 0x943

ENDA

Unit Data:

Theif:

UNIT 0x23 0x3D 0x99 Level(2, Enemy, 1) [24,14] [14,11] [0x01, 0x6A] AttackInRange

UNIT

What do?

Link to comment
Share on other sites

never mind I fixed it but now I get the error:

Line 46 Column 0: Didn't reach end, currently at IntegerLiteral(0x3C)

Event:

#define DISABLE_TUTORIALS

#include EAstdlib.event

EventPointerTable(0x09,Pointers)

ORG 0x14DA5C0

Pointers:

POIN Turn_events

POIN Character_events

POIN Location_events

POIN Misc_events

POIN Bad Bad Bad Bad

POIN Good Good Good Good

POIN Opening_event Ending_event

Good:

UNIT 0x01 0x3D 0x00 Level(1, Ally, 0) [1,0] [1,4] [0x00] NoAI

UNIT 0x0B 0x14 0x01 Level(1, Ally, 1) [1,0] [0,4] [0x00] NoAI

UNIT 0x19 0x28 0x01 Level(1, Ally, 1) [1,0] [1,5] [0x00] NoAI

UNIT 0x1A 0x2A 0x01 Level(1, NPC, 1) [1,0] [1,7] [0x00] Guard

UNIT

Bad:

UNIT 0x67 0x39 0x99 Level(10, Enemy, 1) [19,12] [19,12] [0x20] AttackInRange

UNIT 0x67 0x39 0x99 Level(10, Enemy, 1) [16,13] [16,13] [0x20] AttackInRange

UNIT 0x67 0x39 0x99 Level(10, Enemy, 1) [17,11] [17,11] [0x20] AttackInRange

UNIT 0x67 0x39 0x99 Level(10, Enemy, 1) [12,11] [12,11] [0x20] AttackInRange

UNIT 0x67 0x39 0x99 Level(10, Enemy, 1) [12,13] [12,13] [0x20] AttackInRange

UNIT 0x67 0x39 0x99 Level(10, Enemy, 1) [14,14] [14,14] [0x20] AttackInRange

UNIT 0x67 0x39 0x99 Level(10, Enemy, 1) [13,12] [13,12] [0x20] AttackInRange

UNIT 0x67 0x39 0x99 Level(10, Enemy, 1) [16,12] [16,12] [0x20] AttackInRange

UNIT 0x67 0x39 0x99 Level(10, Enemy, 1) [13,14] [13,14] [0x20] AttackInRange

UNIT 0x67 0x39 0x99 Level(10, Enemy, 1) [17,14] [17,14] [0x20] AttackInRange

UNIT 0x67 0x39 0x99 Level(10, Enemy, 1) [18,13] [18,13] [0x20] AttackInRange

UNIT 0x67 0x39 0x99 Level(10, Enemy, 1) [18,12] [18,12] [0x20] AttackInRange

UNIT 0x67 0x39 0x99 Level(10, Enemy, 1) [10,12] [10,12] [0x20] AttackInRange

UNIT 0x67 0x39 0x99 Level(10, Enemy, 1) [9,14] [9,14] [0x20] AttackInRange

UNIT 0x67 0x39 0x99 Level(10, Enemy, 1) [10,13] [10,13] [0x20] AttackInRange

UNIT 0x67 0x39 0x99 Level(10, Enemy, 1) [9,11] [9,11] [0x20] AttackInRange

UNIT 0x67 0x39 0x99 Level(10, Enemy, 1) [11,14] [11,14] [0x20] AttackInRange

UNIT 0x67 0x39 0x99 Level(10, Enemy, 1) [15,12] [15,12] [0x20] AttackInRange

UNIT 0x99 0x39 0x00 Level(10, Enemy, 1) [15,11] [15,11] [0x20] AttackInRange

UNIT

Thief:

UNIT 0x23 0x3D 0x99 Level(2, Enemy, 1) [24,14] [24,14] [0x01, 0x6A] AttackInRange

UNIT

Turn_events:

TurnEventPlayer(0x00,Opening_event,1)

TurnEventEnemy(0x00,Thief_bitch,1)

TURN

Character_events:

CHAR

Location_events:

LOCA

Misc_events:

CauseGameOverIfLordDies

AFEV

Opening_event:

MUS1 0x00

LOU1 Bad

ENUN

OOBB

CAM1 [1,0]

CURF [1,0]

LOU1 Good

ENUN

CURF Marcus

TEX1 0x937

REMA

//MOVE [1,4] [3,8]

//MOVE [1,5] [2,8]

//MOVE [0,4] [2,8]

MOVE [1,7] [4,10]

ENUN

CAM1 Bug

CURF Bug

TEX1 0x973

REMA

MOVE [4,10] [1,6]

ENUN

TEX1 0x934

REMA

ENDA

Thief_bitch:

CAM1 [17,10]

CURF [24,14]

LOU1 Thief

ENUN

TEX1 0x943

ENDA

Ending_event:

ENDA

// Events

// Manual Movement

// Scripted Fights

// Units

// Shop Data

MESSAGE Events end at offset currentOffset

Line 46 reads: "Thief:"

Link to comment
Share on other sites

do some critical thinking (or in other words do it so i don't have to)

where would this "0x3C" be coming from? look around line 46, it's probably within ~10 lines of that (i don't know how the processor works exactly)

Link to comment
Share on other sites

How do you do map changes? I tried to do it with Arch's tutorial but after I assembled the changes I get a warning back saying to use Tiled for map changes. I used Tiled for my map and my map changes but idk how the hell to make them work in events. Help a man out?

Edited by Brendor the Brave
Link to comment
Share on other sites

Ok

1) Have this problem where units are loading on coordinates off the map. (I didn't input any unit data for them but they show up)

2)How do you start in Eliwood mode (skip lyn mode)?

3)for scripted fights is it always FIGH ATOM ATOM ATOM $00000000 <---this

4) MOMA codes sometimes give me issues with offset not being able to divide by 4

EDIT: nevermind number 1 I just forgot to add a separator

still looking for answers >.<

Link to comment
Share on other sites

For 2 do you mean start the game at ch 11. or start at the prolouge but in eliwoods mode? If it's the latter, SoC has a patch for it. If it's the former, you could include a savestate that starts on ch 11 or use "LynModeEnding" in your prolouge events but that still shows the ending, meaning showing cg's character data thereafter and all that shit

Link to comment
Share on other sites

For 2 do you mean start the game at ch 11. or start at the prolouge but in eliwoods mode? If it's the latter, SoC has a patch for it. If it's the former, you could include a savestate that starts on ch 11 or use "LynModeEnding" in your prolouge events but that still shows the ending, meaning showing cg's character data thereafter and all that shit

ok thanks I'm pretty sure I'll find that patch

Link to comment
Share on other sites

Not really a question, more like a documentation of an issue I had that I was gonna post here, but I figured it out.

Ambush spawns:

I tried

IFCA 0x0 0x1 (enemy code)

ENUF (EvID)

ELSE 0x2

ENIF 0x1

LOU1 Surprise

ENIF 0x2

But it always directed to the "true" side when used with my AREA command.

So I disassembled chapter 30/32(H) and extracted this code:

label40:

IFAT 0x1 0x7A2F1

ENUF 0xC

ELSE 0x9

ENIF 0x1

LOUMODE1 label57 label58 label59 label60

ENIF 0x9

ENDA

... ew, asm.

So what I got out of this is IFAT checks the AREA's area to see if it's an enemy stepping in it. Thus, if it's false, it spawns the enemies. My final code:

ReinFort1116:

IFAT 0x1 0x7A2F1

ENUF 0x6

ELSE 0x2

ENIF 0x1

LOU1 Rein1116

ENIF 0x2

ENDA

Link to comment
Share on other sites

I'm having troubles with scripted fights:

(stuff) 
FIGH 0x01 0x04 Fight1 $0x00000000
(stuff)
...
(stuff)

Fight1:
DefenderMiss(00)
AttackerHit(0,1)
EndOfBattle
ENDA

Okay, so even though the "AttackerHit" should do 0 damage, when It changed to the normal map mode and you look at Raven's health, it's decreased(by 4, which is the damage that's shown on the battle screen)

So I need to remedy this one of two ways that I could use help on:

1) How do I make it so the hit truly does 0 damage

or

2) How do I heal him after the battle?

Edited by Crazycolorz5
Link to comment
Share on other sites

Trying to not let my first post in the hacking section be just questions on top of other peoples questions.

I'm too amateur to know if this makes a difference but in the fight script above, Would it possibly make a difference in that the Defender is attacking first? Maybe try switching them around character wise, So the one who's supposed to attack first is the attacker?

FIGH 0x44 Lyn_t FightData $00000000

(Stuff between the pointer etc)

FightData:

AttackerMiss(02)

DefenderCritical(09,01)

AttackerCritical(54,02)

EndOfBattle

This is the standard script I used and it seemed to work fine for my prologue.

Either way just a thought to maybe try. (Also maybe think about the characters stats, aka Attack and Defense of the characters)

-----------------------------------------------------------------------

Ok I have a question. Took awhile to validate so this question has been stewing for 5 days. Since I couldn't post. I'm not using it in my prologue now but I might later. I read every tutorial under the sun. Blazers, Archi's, etc... The IFUF conditon. It's just not working. And I don't mean not working as in it's not activating right. I mean that when I try to assemble it into my rom using the actual formats that are in these tutorials it doesn't work at all.

My error is as follows:

"Incorrect parameters in code IFUF Atom Atom"

I believe from my tinkering with code and fixing other errors this just simply means. The code and formatting is wrong. The funny thing is though. If I add ANOTHER bit of hex to it after so for example. Originally I'd put in some numbers like

IFUF 0x01 0x12 (First condition ID then the Event ID no?)

I'd get the error, but if I put it as

IFUF 0x01 0x12 0x12 (or any third number)

No errors, continue being awesome. Thing is in every tutorial this isn't the format, It's in this format IFUF 0xII 0xXX. There is no third number. I've tried every combination of these numbers trying to get it to work and nothing. I don't know if this is an issue with the macro in the EA files I have or what. But it happens with every version I can find around the web. Which is really frustrating because this is one of the conditions I'd think is very important for many aspects of the game.

Link to comment
Share on other sites

I turned that into $00000000

It still shows "No Damage!" during the animation, but raven's health is still reduced.

From what I can remember of fiddling with fights and reading folks' past problems the game will always subtract the "correct" amount of health after a scripted battle. If a bandit displays 4 damage, then 4 damage is subtracted from the opponent even if the script has him deal 20.

I don't think there's a code to set a unit's health to a specific number either.

I'd get the error, but if I put it as

IFUF 0x01 0x12 0x12 (or any third number)

No errors, continue being awesome. Thing is in every tutorial this isn't the format, It's in this format IFUF 0xII 0xXX. There is no third number. I've tried every combination of these numbers trying to get it to work and nothing. I don't know if this is an issue with the macro in the EA files I have or what. But it happens with every version I can find around the web. Which is really frustrating because this is one of the conditions I'd think is very important for many aspects of the game.

After you read through the tutorials it's all about reading documentation.

Character conditions

FE7:

IFUF Unknown *Conditional ID* Character

Executes events if character is fielded.

Parameters:

Unknown

Conditional ID

Character = Character to check.

NL has some good information in there so sifting through it is pretty much always a good idea.

Link to comment
Share on other sites

Thanks Prime. I think mainly the unknown thing threw me. I remember seeing that in the documentation when I first tried it but didn't understand what that meant. Kept seeing the tutorials completely ignoring it. Then I guess I just forgot about it once I finally noticed three sets of numbers work.

Hopefully can try this in my next chapter. Thanks!

Link to comment
Share on other sites

I think I know where I went wrong with IFUF. (Besides the formatting). I'm not sure if it would work for this purpose. But I was basically using it to see if a certain enemy character ID was still on the field. But I used the same ID for multiple enemies (4). So I wanted to trigger the event once all these enemies with this character ID number die. So use the IFUF to see if they're on the field, if they are it triggers nothing, if they aren't then in the ELSE side of things it triggers the event.

But I don't think it works for that purpose when it's multiple of the same character. I was going to use the 'check if they're dead' condition also but I don't think that works either since there is multiple enemies and if one dies it would trigger it? Am I guessing that right?

Or am I just not formatting things right and it could be used in such a way?

I tried using them directly in an event then when that didn't seem to work, used them to trigger an event ID to check in another condition.

Edited by JFierce
Link to comment
Share on other sites

I don't think those 'check for unit' codes work for enemies. I remember trying the IFCA/IFCD for an enemy but no dice.

If you're counting enemies trying disassembling ch25A ( I think that's the one that counts promoted enemy deaths ).

The other option is just using IDs in a conditional.

Link to comment
Share on other sites

That would explain the confusion I had as to why it didn't work. I was driving myself insane. I just made it slightly more efficient in the chapter I was doing. But I'm definitely going to keep note of that for later.

Very very good to know that.

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...