Jump to content

Event Assembler Questions Thread


CT075
 Share

Recommended Posts

  • Replies 3.3k
  • Created
  • Last Reply

Top Posters In This Topic

Heya, so I am having a few problems...

http://pastebin.com/TpaZ9x1A (I only included the necessary stuff; 0x08 is Sebastian's recruitment event's ID)

The two problems I am having:

1) When you choose not to go to the gaiden, it still plays the events under the 'Yes' option.

I've tried changing the IDs but it did not work. Solved! Thanks Krad. :)

2) Even if you do meet the two goals to go to the gaiden (killing the boss with Elliot and recruiting Sebastian), the game automatically goes to the 'NoGaiden' event.

Note that this does not happen when I remove the IFCD from the 'NoGaiden' event. I've also tried checking to see if he's been recruited and if he is fielded but they both result in the same problem occurring.

Just a couple of notes:

I've made sure nothing is being overwritten and the boss' death quote is set up properly in Nightmare.

Both Eric and I cannot figure out why the event is not working properly.

Any help would be greatly appreciated. :)

Edited by eCut
Link to comment
Share on other sites

The first problem I think is this line

Gaiden:
MUS1 0x0039
FADI 10
BACG 0x1D
FADU 10
TEX1 0x0869
SOUN 0x00D2
MORETEXT 0x086A
MUS1 0x0044
MORETEXT 0x086C
FADI 10
BACG 0x5B
FADU 10
STAL 50
ScrollText(0x09A5)
IFYN 0x07
       FADI 10
       BACG 0x1D
       FADU 10
       TEX1 0x086B
       MNCH 0x08
       STAL 1
       _0x1
       ENDA //This line
ELSE 0x08
ENIF 0x07
       FADI 10
       BACG 0x1D
       FADU 10
       TEX1 0x086E
       MNCH 0x07
       STAL 1
       _0x1
ENIF 0x08
ENDA

Since you have an ENDA in the middle of the event, the game reads up to that point only.

For the second one, maybe this could work?

RemusDead:
IFET 0x01 0x08
TEX1 0x8A2
REMA
IFCA 0x00 0x03 Elliot
	ENUT 0x16 //Gaiden ID
	ENUN
ENIF 0x03
ELSE 0x02
ENIF 0x01
TEX1 0x8A2
REMA
ENIF 0x02
ENDA

Edited by Krad
Link to comment
Share on other sites

That fixed the first problem, thanks! :)

I can't believe I didn't pick up on that lol!

Unfortunately, that doesn't fix the second problem. :(

Link to comment
Share on other sites

For the second one, maybe this could work?

RemusDead:
IFET 0x01 0x08
TEX1 0x8A2
REMA
IFCA 0x00 0x03 Elliot
	ENUT 0x16 //Gaiden ID
	ENUN
ENIF 0x03
ELSE 0x02
ENIF 0x01
TEX1 0x8A2
REMA
ENIF 0x02
ENDA

RemusDead:
TEX1 0x8A2
REMA
IFET 0x01 0x08
IFCA 0x00 0x03 Elliot
	ENUT 0x16 //Gaiden ID
	ENUN
ENIF 0x03
ELSE 0x02
ENIF 0x01
ENIF 0x02
ENDA

???

Link to comment
Share on other sites

RemusDead:
TEX1 0x8A2
REMA
IFET 0x01 0x08
IFCA 0x00 0x03 Elliot
	ENUT 0x16 //Gaiden ID
	ENUN
ENIF 0x03
ELSE 0x02
ENIF 0x01
ENIF 0x02
ENDA

???

Nope, that doesn't solve it either.

Edited by eCut
Link to comment
Share on other sites

when in doubt spam GOTO (or JUMP)

EDIT

one way to test if your conditions are working or not is to display text or something (change the actual clause) to see what conditions take you where

Edited by CT075
Link to comment
Share on other sites

It was figured out that IFCA will return false on enemy phase no matter what. I did test it by making sure to kill the boss on the ally phase and everything worked out fine; when the boss is killed on the enemy phase, it does not work properly.

So I am just going to change the requirements for the Gaiden. Thanks to everyone who tried helping!

Link to comment
Share on other sites

Something is probably very obvious but I'm overlooking something.

I'm using the village code Village(ID, Eventtopointto, X,Y) etc.... (probably not exact but I copy pasted the real thing in my code and EA says no problems with assembling. So yeah. Everything says it works. But when I go to the actual tile....... nothing. Land on it nothing happens, no option or anything pops up, just nothing.

I'll just paste the code I was using.

Location_events:

Village(0x07,RecruitScottie,8,17)

LOCA (also had END_MAIN at one point don't know if either make a difference)

Then the events it should point to.... I don't know if location in the file makes a difference as I see one example have it below Ending events while mine is above. When I put it below I also got errors that everything wasn't divisible by 4 in the offset. I also don't know if you have to do something special to trigger the contents. If you need to be on a specific tile or something since the tile I'm using is the boats "armory". Also don't know if the events coding needs to be different for a village as opposed to a normal scene.

But anyways simple little scene.

RecruitScottie:

FADI 0x10

BACG 0x1B

FADU 0x10

ENUN

MUS1 0x0042

TEX1 0x81A

REMA

LOU1 Scottie

ENUN

ENDA

The coding will change but I'm just trying to get it to trigger first.

There aren't any issues with the scene itself as I used an AREA code originally and that worked fine.But yeah I don't know what's wrong. I was also going to try VILL instead of the macro but I couldn't get the formatting right even after reading the event assembler lang doc. Inputted it all correct but wouldn't work. Macro 'works' but nothing is happening. First time I've tried to make a village in the game.

Like always did a search before asking, tried changing things as I read it several times. Still nothing.

Edited by JFierce
Link to comment
Share on other sites

I've been playing with FE8 events the past few days, and everything seems to be going smoothly except for one small thing that bugs me - whenever I use ENDA to end an event, the screen fades to black and then fades back to the map.

Take, for example, this opening event I've made:

BeginningScene:
_LOAD1 0x1 FortGuards
_LOAD1 0x1 Zambies
MUS1 0x14
CAM1 [5,8]
FADU 16
FlashCursor(Garcia,60)
Text(0x1C, 0x929)
MOVE Garcia [0,8]
ENUN
DISA Garcia
MOVE Ross [0,8]
ENUN
DISA Ross
MOVE Breguet [5,6]
CAM1 [5,6]
FlashCursor(5,6,60)
Text(0x26,0x92A)
CAM1 [17,20]
_LOAD1 0x1 Units
ENUN
FlashCursor(Eirika,60)
Text(0x1C,0x92C)
ENDA

It runs fine, but after the text is over, it fades from the cutscene to black and then fades back to the map as what normally happens after a cutscene, but then the game fades to black and then fades back to the map again. And this happens every time I use ENDA. It's not a big problem, but it's annoying having that strange fade-in/fade-out at the end of everything, even simple things like reinforcements spawning. Does anyone know how to get rid of it?

Edited by Kyougi
Link to comment
Share on other sites

I don't deal with FE8 so I'm not aware of any of the differences there may be. I just know people usually do FE7 since it's more developed in the hacking community I gather.

Are you trying to get it to fade back to the map out of black one time? My first suggestion would be to try adding a REMA to the end. That's usually what you add after text is over to make sure nothing screwy happens but I don't see one.

My next suggestion would be to try a FADI since you have a fade out. Shouldn't you have a FADI to try fading in?

Maybe one of these two things will help. But I don't know FE8 once again maybe someone else more experienced can help if these aren't the issue.

Edited by JFierce
Link to comment
Share on other sites

I tried adding REMA after the text commands, but that doesn't seem to fix it. The FADU is because the chapter is set to fade to black after the chapter title, but just to double check I added a FADI at the start and it didn't fix it either.

I'm 99.9% certain it's purely because of ENDA, seeing how it happens even in short event blocks like this

RenZambiesSpawn:
CAM1 [17,20]        // Camera moves to location
_LOAD1 0x1 RenZambies    // Units load
ENUN   	     // Game waits for them to finish moving
ENDA   	     // Then the screen fades to black, and then back to the map for seemingly no reason, then the event ends

(Just reiterating a bit because I think my previous explanation was a bit confusing)

I thought maybe it was some strange screwed up macro in Event Assembler, but I couldn't find anything that looked out of the ordinary.

Link to comment
Share on other sites

Wow, I feel silly now. I had actually disassembled a chapter the other night and didn't notice this. At first I just thought it had something to do with conditional branches, but I just tested it and putting _0x0228 0x7 before ENDA stops the screen from doing that annoying fade.

Thanks for the help everyone <3

Link to comment
Share on other sites

I'm asking a lot of questions but trying to get some groundworks going on my hack so if something isn't possible then I have to scrap the idea.

What I was wondering is if there was a way to check if the player has Zero money (or even a specific amount) for a condition? I mainly ask this because I'm setting up a game that's a lot more based on money, also making it set up so character can die in a chapter but they get revived after sitting out the next chapter. (Mainly to add more storyline characters in dialogue without making it crappy 'optional' bits and pieces, actual conversations that are relevant). They also however lose money, I guess kind of like medical fees in a sense, increasingly more depending on the stage as the game gets further. But I also kind of wanted to add in a sort of check to make sure people aren't sacrificing characters just because they can later in the game. "Oh well who cares if I lose money I don't have any". So I was going to make a condition if it was possible to check if they have zero money upon death which would in turn lead to game over.

I can get along without it but it would be nice to make the system a little better so it can't be abused.

Just curious if it was possible. Checking for specific amounts would also make it interesting for traveling NPC merchants and such if I can't figure a way to link a shop to an NPC.

Link to comment
Share on other sites

Re: the gold checker and subtracter thing there's this. It will essentially work the same way as recruiting Farina. It'll end up being a constant gold value I'm afraid. As for everything else I'm not really sure if it can be done without fancy ASM stuff (something which I know nothing about)

Edited by Agro
Link to comment
Share on other sites

you can set one amount (for the entire game) checked via the link agro showed you

the actual subtracting of money might be a bit more difficult, idk if MONE works with negative values

Link to comment
Share on other sites

Bookmarked this link.

Hmmmm, well the game over money thing I believe that's simple enough as attaching to the death quote an event ID that subtracts the money. I know there is a way to remove money because I remember watching Archi's bootcamp vids a long time ago and he accidentally removed 5000 gold instead of added it in an event. But since this ASM condition works. This is what makes me curious.

So I'm looking at the event

Since IFAF is an ASM condition I'm guessing you trigger this (but with your own conditional ID).

IFAF 0x3 0x7D3F9

At 0007D410 the first two bytes should be 1F 4E, that means 19999 in hex.

At 0007D420 the first two bytes should be 20 4E, 20000 in hex.

So I go into the hex editor itself and edit this data to be the amount needed in hex and if that amount isn't met it's game over? However this automatically removes money though? I'm guessing there's no way around this sadly.

Is there by chance a way to add money to your team without making it pop up something like "5000 Gold Received!"? So for instance I add this condition at the end of my death quote after subtracting money from the team. It then checks if I have 1 gold. If I don't have one gold it triggers 0x65 for game over. If I do have one gold I subtract one gold. But silently give it back to the player so it isn't weird like .... "1000 Gold removed" ..... ... "1 gold received!".

Or if this doesn't work, I'd have to I guess do a set amount you can lost in the game. But ugh, that's going to suck. Because early in the game the amount would be really steep, then late game the amount might be small enough so people don't really care.

Edited by JFierce
Link to comment
Share on other sites

the routine doesn't automatically remove the money, there's something else you do for that instead (idk what try disassembling to figure it out for yourself)

Link to comment
Share on other sites

My original question was about something which I found was just visual glitch. MONE said it stole 500 gold which is what I wanted. But it didn't actual deduct it. So now I'm hunting through Farina's trying to find the ASM that removes gold.

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

Edit: Trying to find a work around

I disassembled Farina's recruitment chapter (since the link before wasn't using code applicable to my EA.

I removed pieces bit by bit so this ASM is what takes gold.

ASMC 0x7D415

From the doc above it says

At 0007D410 the first two bytes should be 1F 4E, that means 19999 in hex.

At 0007D420 the first two bytes should be 20 4E, 20000 in hex.

These are the offsets that hold the number removed and the condition. It seems you can only remove a single number, you can't for instance set a low requirement like 500 gold to trigger the event, then remove every bit of gold up to a maximum of 5000. You have to have 5000 gold to remove 5000 gold. Can't remove whatever gold you have left.

Also I feel dumb. This is how little I know of Hex. Have to reverse the amount so 5000 would be 88 13 not 13 88. I was going crazy wondering why it wasn't working -_-

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