Jump to content

Event Assembler Questions Thread


CT075
 Share

Recommended Posts

You can set an event to occur every turn within a range instead of on one particular turn if you put a comma and another turn number after the first one so in something like this:

TurnEventPlayer(0x00, Blah, 1, 999999)

Blah will occur every turn until the 999,999th one

Link to comment
Share on other sites

  • Replies 3.3k
  • Created
  • Last Reply

Top Posters In This Topic

You can set an event to occur every turn within a range instead of on one particular turn if you put a comma and another turn number after the first one so in something like this:

TurnEventPlayer(0x00, Blah, 1, 999999)

Blah will occur every turn until the 999,999th one

I assume that can be modified to say enemy or NPC (also may be needed because plans)

Link to comment
Share on other sites

Every time I try to start the chapter it goes back to the opening scene.

// Made by markyjoe1990 of Youtube
// Modified by Nintenlord and further by Camtech

#define DISABLE_TUTORIALS
#include EAstdlib.event
#define MAP_OFFS 0x8DA0000
// Write a pointer to the map for you so you don't have to do it yourself

//EventPointerTable(0x06,MAP_OFFS)

//EventPointerTable(0x01,Chapter)

ORG 0xD80000
Chapter:
POIN TurnEvents 
POIN CharacterEvents 
POIN LocationEvents 
POIN MiscEvents
POIN BallistaData BallistaData
POIN Bad Bad Bad Bad
POIN Good Good Good Good
POIN Opening_Event EndingEvent

Bad:
UNIT Eliwood 0x04 0x00 Level(10,Enemy,False) [47,4] [47,4] [Durandal,Javelin,RuneSword] [0x00,0x03,0x00,0x20]
UNIT BlackFang Swordmaster 0x01 Level(5,Enemy,False) [46,6] [46,6] [WoDao,RuneSword] [0x00,0x03,0x09,0x00]
UNIT BlackFang Berserker 0x01 Level(5,Enemy,False) [47,7] [47,7] [EmblemAxe,Tomahawk] [0x00,0x03,0x09,0x00]
UNIT BlackFang Hero 0x01 Level(5,Enemy,False) [48,6] [48,6] [0x0D,KillerAxe] [0x00,0x03,0x09,0x00]
UNIT BlackFang Sage 0x01 Level(5,Enemy,False) [46,2] [46,2] [Excalibur,0x4D] [0x00,0x03,0x09,0x00]
UNIT BlackFang Druid 0x01 Level(5,Enemy,False) [48,2] [48,2] [0x49,0x4D] [0x00,0x03,0x09,0x00]
UNIT BlackFang Bishop 0x01 Level(5,Enemy,False) [47,1] [47,1] [Luce,0x4D] [0x00,0x03,0x09,0x00]

Good:
UNIT Lyn_t LynLord 0x00 Level(1,Ally,False) [14,8] [14,8] [ChestKey] [0x00,0x00,0x00,0x00]
UNIT Legault 0x3C 0x03 Level(1,Ally,False) [0,14] [1,15] [SlimSword,DoorKey,DoorKey,ChestKey] [0x00,0x00,0x00,0x00]


TurnEvents:
// Comment out or remove this line if you have a prep screen.
TURN 0x0 Opening_Event [1,0] 0x0 0x0
TURN

CharacterEvents:
//CHAR
END_MAIN

LocationEvents:
//Village(0x06,Village1,46,1)
//LOCA
END_MAIN

MiscEvents:
CauseGameOverIfLordDies
//AFEV
END_MAIN

Opening_Event:
// Change to ENDB if you have prep screen.
FADI 10
BACG 0x13
FADU 10
TEX1 0x0810
REMA
LOU1 Good
LOU1 Bad
ENUN
OOBB
//VCBF 1
ENDA


EndingEvent:
//MNCH 0x__
STAL 1
//_0x1
ENDA

BallistaData:
BLST


MESSAGE Events end at offset currentOffset
MESSAGE The map for this chapter is at offset MAP_OFFS
Edited by Shamison
Link to comment
Share on other sites

MAP_OFFS shouldn't have 7 digits (take off the 8 in front)

don't comment out the eventpointertable stuff

you need an empty UNIT at the end of Good and Bad

please pay closer attention next time

EDIT

wait why are you writing "chapter" to 0x1 and "MAP_OFFS" to 0x6

prologue events are at 0x6 and prologue map is at 0x4...

Edited by CT075
Link to comment
Share on other sites

#define DISABLE_TUTORIALS
#include EAstdlib.event

EventPointerTable(0x09,Pointers)

ORG 0xD80300

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 Eliwood EliwoodLord 0x00 Level(1, Ally, 0) [19,22] [19,18] [0x00] NoAI
UNIT Raven Mercenary 0x00 Level(1, Ally, 0) [19,22] [18,19] [IronSword] NoAI
UNIT Guy Myrmidon 0x00 Level(1, Ally, 0) [19,22] [20,19] [KillingEdge] NoAI
UNIT

Bad:
UNIT Zugu Brigand 0x00 Level(3, Enemy, 0) [14,11] [14,14] [PoisonAxe] AttackInRange 
UNIT 0x67 Brigand 0x00 Level(1, Enemy, 0) [14,11] [13,13] [IronAxe] PursueWithoutHeed 
UNIT 0x68 Brigand 0x00 Level(1, Enemy, 0) [14,11] [15,13] [IronAxe] PursueWithoutHeed 
UNIT 0x98 Archer 0x00 Level(2, Enemy, 0) [14,11] [15,14] [IronBow] AttackInRange 
UNIT 0x97 Mercenary 0x00 Level(2, Enemy, 0) [14,11] [13,15] [IronSword] AttackInRange 
UNIT

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

Character_events:
End_MAIN

Location_events:
Village(0x0A,Upper_Village,0,0)
Village(0x0B,Mountain_Village,6,19)
Village(0x0C,WeaponDependingOnVisitor_Village,14,11)
Village(0x0D,Attacked_Village,16,20)
House(0x0E,UpperVillage_House,6,1)
House(0x0F,Upper_House,11,3)
House(0x10,Bridge_House,6,11)
House(0x11,Lower_House,19,21)
End_MAIN

Misc_events:
CauseGameOverIfLordDies
End_MAIN

TrapData:
End_MAIN

Opening_event:
OOBB
LOU1 Good
ENUN
TEX1 0x0806
CAM1 [14,11]
CURF [14,11]
FADI 0x10
HIDEMAP
BACG 0x02
FADU 0x10
SHOWMAP
TEX1 0x0803
REMA
MOVE 0x01 [14,12]
MOVE 0x04 [13,12]
MOVE 0x06 [15,12]
ENUN
FADI 0x10
HIDEMAP
BACG 0x02
FADU 0x10
SHOWMAP
TEX1 0x0804
REMA
LOU1 Bad
ENUN
TEX1 0x0805
REMA
MOVE [14,14] [2,8]
MOVE [15,13] [9,8]
MOVE [13,13] [8,15]
MOVE [13,9] [8,15]
MOVE [13,15] [5,16]
ENUN
ENDA

Ending_event:
ENDA

// Events
Upper_Village:
ENDA

Mountain_Village:
ENDA

WeaponDependingOnVisitor_Village:
ENDA

Attacked_Village:
ENDA

UpperVillage_House:
ENDA

Upper_House:
ENDA

Bridge_House:
ENDA

Lower_House:
ENDA

// Manual Movement

// Scripted Fights

// Units

// Shop Data

MESSAGE Events end at offset currentOffset

post-8398-0-89838900-1395103648.png

post-8398-0-25860600-1395103654.png

The top attached image glitch thingy only happens when I'm in the event. Once it goes player phase, it goes away. Any fix?

post-8398-0-89838900-1395103648_thumb.png

post-8398-0-25860600-1395103654_thumb.png

Edited by Blyvern
Link to comment
Share on other sites

#define DISABLE_TUTORIALS
#include EAstdlib.event

EventPointerTable(0x09,Pointers)

ORG 0xD80300

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 Eliwood EliwoodLord 0x00 Level(1, Ally, 0) [19,22] [19,18] [0x00] NoAI
UNIT Raven Mercenary 0x00 Level(1, Ally, 0) [19,22] [18,19] [IronSword] NoAI
UNIT Guy Myrmidon 0x00 Level(1, Ally, 0) [19,22] [20,19] [KillingEdge] NoAI
UNIT

Bad:
UNIT Zugu Brigand 0x00 Level(3, Enemy, 0) [14,11] [14,14] [PoisonAxe] AttackInRange 
UNIT 0x67 Brigand 0x00 Level(1, Enemy, 0) [14,11] [13,13] [IronAxe] PursueWithoutHeed 
UNIT 0x68 Brigand 0x00 Level(1, Enemy, 0) [14,11] [15,13] [IronAxe] PursueWithoutHeed 
UNIT 0x98 Archer 0x00 Level(2, Enemy, 0) [14,11] [15,14] [IronBow] AttackInRange 
UNIT 0x97 Mercenary 0x00 Level(2, Enemy, 0) [14,11] [13,15] [IronSword] AttackInRange 
UNIT

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

Character_events:
End_MAIN

Location_events:
Village(0x0A,Upper_Village,0,0)
Village(0x0B,Mountain_Village,6,19)
Village(0x0C,WeaponDependingOnVisitor_Village,14,11)
Village(0x0D,Attacked_Village,16,20)
House(0x0E,UpperVillage_House,6,1)
House(0x0F,Upper_House,11,3)
House(0x10,Bridge_House,6,11)
House(0x11,Lower_House,19,21)
End_MAIN

Misc_events:
CauseGameOverIfLordDies
End_MAIN

TrapData:
End_MAIN

Opening_event:
OOBB
LOU1 Good
ENUN
TEX1 0x0806
CAM1 [14,11]
CURF [14,11]
FADI 0x10
HIDEMAP
BACG 0x02
FADU 0x10
SHOWMAP
TEX1 0x0803
REMA
MOVE 0x01 [14,12]
MOVE 0x04 [13,12]
MOVE 0x06 [15,12]
ENUN
FADI 0x10
HIDEMAP
BACG 0x02
FADU 0x10
SHOWMAP
TEX1 0x0804
REMA
LOU1 Bad
ENUN
TEX1 0x0805
REMA
MOVE [14,14] [2,8]
MOVE [15,13] [9,8]
MOVE [13,13] [8,15]
MOVE [13,9] [8,15]
MOVE [13,15] [5,16]
ENUN
ENDA

Ending_event:
ENDA

// Events
Upper_Village:
ENDA

Mountain_Village:
ENDA

WeaponDependingOnVisitor_Village:
ENDA

Attacked_Village:
ENDA

UpperVillage_House:
ENDA

Upper_House:
ENDA

Bridge_House:
ENDA

Lower_House:
ENDA

// Manual Movement

// Scripted Fights

// Units

// Shop Data

MESSAGE Events end at offset currentOffset

post-8398-0-89838900-1395103648.png

post-8398-0-25860600-1395103654.png

The top attached image glitch thingy only happens when I'm in the event. Once it goes player phase, it goes away. Any fix?

This kind of glitch happens when the game loads units which very separated between them. The only way I know to fix this is by separating them in different groups, according to the distance between them. So a proper fix for that script would be this:

Bad:
UNIT Zugu Brigand 0x00 Level(3, Enemy, 0) [14,11] [14,14] [PoisonAxe] AttackInRange 
UNIT
Bad2:
UNIT 0x67 Brigand 0x00 Level(1, Enemy, 0) [14,11] [13,13] [IronAxe] PursueWithoutHeed 
UNIT
Bad3:
UNIT 0x68 Brigand 0x00 Level(1, Enemy, 0) [14,11] [15,13] [IronAxe] PursueWithoutHeed
UNIT 
Bad4:
UNIT 0x98 Archer 0x00 Level(2, Enemy, 0) [14,11] [15,14] [IronBow] AttackInRange 
UNIT
Bad5:
UNIT 0x97 Mercenary 0x00 Level(2, Enemy, 0) [14,11] [13,15] [IronSword] AttackInRange 
UNIT

Or something that suits you fancy. Of course, fix the pointers and load commands accordingly.

Link to comment
Share on other sites

Sorry, that did not work. However, changing the positions into the unit name/hex for it worked for me. (Except this time, it carried over a row of the mountains. So I moved the boss closer.) Also, I put the units movement if groups.

91aa38b2eb03a2d24dad3466f139bf54.gif

Link to comment
Share on other sites

Yeah that happens when you load a unit group with units spread out and the autofollow for the camera struggles to keep up. As ShadielTH said, you can either split them up into different groups or turn the camera off.

Link to comment
Share on other sites

It's like that because usually I don't use it and it still works fine. And by extension I don't know how to use it. My other hack I'm working I just have that section //'do out and it works fine.

MAP_OFFS shouldn't have 7 digits (take off the 8 in front)don't comment out the eventpointertable stuffyou need an empty UNIT at the end of Good and Badplease pay closer attention next timeEDITwait why are you writing "chapter" to 0x1 and "MAP_OFFS" to 0x6prologue events are at 0x6 and prologue map is at 0x4...

It's like that because usually I don't use it and it still works fine. And by extension I don't know how to use it. My other hack I'm working I just have that section //'do out and it works fine.

And I have the 8 because I was trying to fix it and the 8 goes there in the nightmare event reference table thing.

Edited by Shamison
Link to comment
Share on other sites

how the fuck are your events even playing if you're commenting out the eventpointertable commands

unless you're doing it manually in nightmare/a hex editor???

it's literally the only part of arch's event tutorial that isn't somewhat outdated

Link to comment
Share on other sites

And I have the 8 because I was trying to fix it and the 8 goes there in the nightmare event reference table thing.

Nightmare needs it because it doesn't know the difference between a pointer and a non-pointer, but the EA is able to distinguish between the two, FYI.
Link to comment
Share on other sites

how the fuck are your events even playing if you're commenting out the eventpointertable commandsunless you're doing it manually in nightmare/a hex editor???it's literally the only part of arch's event tutorial that isn't somewhat outdated

Nightmare.

And since I've been using arch's tutorial that is outdated what would you suggest?

Link to comment
Share on other sites

Sad as it is to admit it, it looks like I'm still having some trouble with conditional events. Help me out here, guys.

IFET 0x02 WAKELEY_DEATH_ID//is wakeley dead?
 IFET 0x03 ETHAN_DEATH_ID//is ethan dead?
 JUMP CHAPTER_END
  ELSE 0x04
 ENIF 0x03
  JUMP DISCUSS_ETHAN_ONLY
  ENIF 0x04
 ELSE 0x05
ENIF 0x02
 IFET 0x06 ETHAN_DEATH_ID//is ethan dead?
 JUMP DISCUSS_WAKELEY_ONLY
  ELSE 0x07
 ENIF 0x06
  JUMP DISCUSS_ETHAN_WAKELEY
  ENIF 0x07
ENDA

CHAPTER_END:
MNCH 0x02
STAL 1
_0x1
ENDA

DISCUSS_WAKELEY_ONLY:
FADI 4
BACG 0x02
FADU 4
TEX1 0x836//wahh ethan died
REMA
JUMP CHAPTER_END
ENDA

DISCUSS_ETHAN_ONLY:
FADI 4
BACG 0x02
FADU 4
TEX1 0x835//wahh wakeley died
REMA
JUMP CHAPTER_END
ENDA

DISCUSS_ETHAN_WAKELEY:
FADI 4
BACG 0x02
FADU 4
TEX1 0x834
REMA
JUMP CHAPTER_END
ENDA

#define ETHAN_DEATH_ID 0x40
#define WAKELEY_DEATH_ID 0x41
#define RORI_DEATH_ID 0x42
I can't seem to get this damned thing to work, and I have a feeling I'm overcomplicating things. I drew out a diagram to help me think things through, but...

Anyway, at the moment it seems to be jumping straight to DISCUSS_ETHAN_ONLY, but I have no idea why. If I change all the IFETs to IFEFs it goes to DISCUSS_WAKELEY_ONLY. Did I miss something, or write something incorrectly?

Edited by Agro
Link to comment
Share on other sites

I'm not exactly sure what to do but I recommend you make things less complex and split the conditions up into smaller separate parts like so

IFET 0x2 0x41

JUMP WakleyDead

ELSE 0x3

ENIF 0x2

JUMP Check Ethan

ELSE 0x3

ENDA

WakleyDead:

IFET 0x4 0x40

JUMP BothDead

ELSE 0x5

ENIF 0x4

JUMP WakleyDeadScene

ENIF 0x5

ENDA

CheckEthan:

IFET 0x6 0xwhatever I lost track

JUMP EthanDeadScene

ELSE 0x7

ENIF 0x6

JUMP EveryonesOK

ENDA

Might help a lot if you simplify conditions like this instead of making it one massive block

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

Some ideas:

You have an ELSE 0x5 but no ENIF to go along with it.

You might try using IFCD, and see if that makes a difference.

But, most importantly, your conditionals are set up in such a way that it always goes to DISCUSS_ETHAN_ONLY. When going through multiple conditionals, the game will check in order of which ENIF comes first, so it will always come to the ENIF 0x3. If ID 0x3 is true, it'll continue on and JUMP to DISCUSS_ETHAN_ONLY, since that's still within the conditional created by ID 0x2. If it's false, it'll jump to ELSE 0x4, which will also JUMP to DISCUSS_ETHAN_ONLY.

What you want to do is put the ELSE 0x4/ENIF 0x3 after the JUMP command; I think that'll help.

Link to comment
Share on other sites

Hey! I have a little problem I don't know how to solve. It's an AREA event that moves the character to a different floor ( using the LOMA command )

But I'd like to make this event repeatable. So the player can switch between floors as many times he wants. I figured out a way : by adding tons of the same AREA events. But there's still a end to them and it's taking too much place.

So to make it short : How can I make these AREA event Repeatable ?

Misc_events:
CauseGameOverIfLordDies
AREA 0x04 rdc [14,3] [14,3]
AFEV

rdc:
IFAT 0x01 0x7A2F1 //(Checks for a player unit; will skip to ENIF 0x1 if it is)
ENUF 0x01 //(otherwise, reset the event ID)
ELSE 0x02
ENIF 0x01
ScrollText(0x0793) //(Stuff to do if a player unit steps in)
IFYN 0x03 //
LOMA Ch4 [7,5] //
ENIF 0x03
ENUF 0x01
ELSE 0x04
ENIF 0x04
ENDA

EDIT : Uh... Sorry I found my mistake xD

The way I finally made these repeatable is to put ENUF EventID After the IFYN EventID.

Which looks like this :

Misc_events:
CauseGameOverIfLordDies
AREA 0x01 rdc [14,3] [14,3]
AFEV

rdc:
IFAT 0x01 0x7A2F1 //(Checks for a player unit; will skip to ENIF 0x1 if it is)
ENUF 0x01 //(otherwise, reset the event ID)
ELSE 0x02
ENIF 0x01
ScrollText(0x0793)
IFYN 0x03
ENUF 0x01 // With this the AREA 0x01 Repeats when Yes is chose.
FADI 0x10
LOMA Ch4 [7,5] //(Stuff to do if a player unit steps in)
FADU 0x10
ENIF 0x03
ENUF 0x01
ELSE 0x04
ENIF 0x04
ENDA

This post shows well that I diserve the title " The idiot!". But maybe this one may help someone someday.

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