Move to Ending Event after Talking to NPC?

I was looking around and couldn’t find out how to move to the ending_event after having my lord talk to an NPC character (Kind of like talking to Fargus in fe7). I’ll attach my code below just in case.

    #define DISABLE_TUTORIALS
#include EAstdlib.event

EventPointerTable(0x39,Pointers)


ORG 0x010FAA00
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 //Same order as the above line, but we probably don't need to differentiate between them
POIN Opening_event Ending_event

EliwoodNM:
EliwoodHM:
HectorNM:
HectorHM:
UNIT

Good:
UNIT 0x03 0x01 0x01 Level(3,Ally,True) [0, 24] [2, 23] [0x09] [0]						//Lydus
UNIT 0x27 0x03 0x00 Level(8,Ally,True) [0, 24] [1, 23] [0x1F, 0x8D, 0x6B] [0]			//Jordon
UNIT 0x1E 0x3D 0x00 Level(6,Ally,True) [0, 24] [2, 24] [0x14, 0x15, 0x6B] [0]			//Alexandra
UNIT 0x0A 0x29 0x00 Level(2,Ally,True) [0, 24] [1, 24] [0x01] [0]						//Ramona
UNIT 0x1C 0x0A 0x00 Level(4,Ally,True) [0, 24] [0, 22] [0x01, 0x05, 0x6B] [0]			//Nevin
UNIT 0x15 0x2F 0x00 Level(2,Ally,True) [0, 24] [0, 23] [0x2C, 0x6B] [0]					//Cat
UNIT 0x19 0x2A 0x00 Level(1,Ally,True) [0, 24] [3, 24] [0x03, 0x17, 0x6C] [0]			//Randall
UNIT 0x1A 0x3C 0x00 Level(4,Ally,True) [0, 24] [1, 22] [0x01, 0x6A] [0]					//Gabriel
UNIT 0x2C 0x12 0x00 Level(5,Ally,True) [0, 24] [4, 23] [0x1F, 0x28, 0x6B] [0]			//Briek
UNIT 0x25 0x28 0x00 Level(3,Ally,True) [0, 24] [4, 24] [0x01, 0x16] [0]				//Simon
UNIT

Bad:
UNIT 0x21 0x26 0x01 Level(4,Enemy,True) [12, 9] [12, 9] [0x44, 0x5C] [0x03,0x03,0x09,0x20]		//Malacoda D
UNIT 0x40 0x28 0x00 Level(13,Enemy,True) [14, 13] [14, 13] [0x16] [0x00,0x03,0x09,0x00]			//Cavalier R 
UNIT 0x40 0x28 0x00 Level(13,Enemy,True) [15, 13] [15, 13] [0x03] [0x00,0x03,0x09,0x00]			//Cavalier R 
UNIT 0x3B 0x14 0x00 Level(10,Enemy,True) [10, 10] [10, 10] [0x14] [0x00,0x03,0x09,0x00]			//Knight R 
UNIT 0x3B 0x14 0x00 Level(11,Enemy,True) [1, 16] [1, 16] [0x14] [0x00,0x03,0x09,0x00]			//Knight R 
UNIT 0x43 0x38 0x00 Level(11,Enemy,True) [0, 18] [0, 18] [0x14] [0x00,0x03,0x09,0x00]			//Soldier R
UNIT 0x43 0x38 0x00 Level(11,Enemy,True) [2, 17] [2, 17] [0x14] [0x00,0x03,0x09,0x00]			//Soldier R 
UNIT 0x40 0x28 0x00 Level(13,Enemy,True) [8, 16] [8, 16] [0x03, 0x16] [0x00,0x03,0x09,0x00]		//Cavalier R 
UNIT 0x38 0x0A 0x00 Level(8,Enemy,True) [6, 20] [6, 20] [0x03] [0x00,0x03,0x09,0x00]			//Merc R
UNIT 0x39 0x0E 0x00 Level(7,Enemy,True) [5, 19] [5, 19] [0x01] [0x00,0x03,0x09,0x00]			//Myrm R
UNIT 0x39 0x0E 0x00 Level(7,Enemy,True) [11, 19] [11, 19] [0x01] [0x00,0x03,0x09,0x00]			//Myrm R
UNIT 0x3E 0x20 0x00 Level(9,Enemy,True) [8, 20] [8, 20] [0x38] [0x00,0x03,0x09,0x00]			//Mage R 
UNIT 0x3F 0x24 0x00 Level(10,Enemy,True) [11, 21] [11, 21] [0x37] [0x00,0x03,0x09,0x00]			//Shaman R
UNIT 0x3F 0x24 0x00 Level(11,Enemy,True) [18, 20] [18, 20] [0x37] [0x00,0x03,0x09,0x00]			//Shaman R
UNIT 0x3A 0x12 0x00 Level(11,Enemy,True) [17, 22] [17, 22] [0x1F] [0x00,0x03,0x09,0x00]			//Fighter R 
UNIT 0x3F 0x24 0x00 Level(12,Enemy,True) [20, 23] [20, 23] [0x37] [0x00,0x03,0x09,0x00]			//Shaman R 
UNIT 0x40 0x28 0x00 Level(13,Enemy,True) [18, 18] [18, 18] [0x03] [0x00,0x03,0x09,0x00]			//Cavalier R  
UNIT 0x3C 0x18 0x00 Level(11,Enemy,True) [19, 21] [19, 21] [0x2C] [0x00,0x03,0x09,0x00]			//Archer R 
UNIT 0x3F 0x24 0x00 Level(11,Enemy,True) [1, 11] [1, 11] [0x37] [0x00,0x03,0x09,0x00]			//Shaman R 
UNIT 0x3B 0x14 0x00 Level(12,Enemy,True) [0, 13] [0, 13] [0x16] [0x03,0x03,0x09,0x20]			//Knight D
UNIT 0x3A 0x12 0x00 Level(11,Enemy,True) [2, 10] [2, 10] [0x1F] [0x00,0x03,0x09,0x00]			//Fighter R 
UNIT 0x3F 0x24 0x00 Level(11,Enemy,True) [5, 11] [5, 11] [0x37] [0x00,0x03,0x09,0x00]			//Shaman R 
UNIT 0x43 0x38 0x00 Level(11,Enemy,True) [18, 14] [18, 14] [0x14] [0x00,0x03,0x09,0x00]			//Soldier R 
UNIT 0x3F 0x24 0x00 Level(10,Enemy,True) [27, 12] [17, 12] [0x37] [0x00,0x03,0x09,0x00]			//Shaman R 
UNIT 0x29 0x3A 0x00 Level(12,NPC,True) [8, 4] [8, 4] [0x1F, 0x20] [0x03,0x03,0x09,0x20]			//Orcus	D
UNIT

FinalScene:
UNIT 0x29 0x3A 0x00 Level(12,NPC,True) [8, 4] [8, 4] [0x1F, 0x20] [0x03,0x03,0x09,0x20]		//Orcus	D
UNIT 0x03 0x01 0x01 Level(3,Ally,True) [9, 4] [9, 4] [0x09] [0]								//Lydus
UNIT 0x1E 0x3D 0x00 Level(6,Ally,True) [8, 6] [8, 6] [0x14, 0x15, 0x6B] [0]					//Alexandra
UNIT 0x27 0x03 0x00 Level(8,Ally,True) [10, 5] [10, 5] [0x1F, 0x8D, 0x6B] [0]				//Jordon
UNIT 0x0A 0x29 0x00 Level(2,Ally,True) [11, 3] [11, 3] [0x01] [0]							//Ramona
UNIT 0x19 0x2A 0x00 Level(1,Ally,True) [12, 4] [12, 4] [0x03, 0x17, 0x6C] [0]				//Randall
UNIT

HaltPrisoners:
UNIT 0x40 0x28 0x00 Level(13,Enemy,True) [1, 24] [1, 22] [0x16] [0x00,0x03,0x09,0x00]			//Cavalier R 
UNIT 0x40 0x28 0x00 Level(13,Enemy,True) [1, 24] [2, 22] [0x03] [0x00,0x03,0x09,0x00]			//Cavalier R
UNIT 0x40 0x28 0x00 Level(13,Enemy,True) [1, 24] [3, 23] [0x16] [0x00,0x03,0x09,0x00]			//Cavalier R 
UNIT 0x40 0x28 0x00 Level(13,Enemy,True) [1, 24] [4, 24] [0x03] [0x00,0x03,0x09,0x00]			//Cavalier R
UNIT 0x40 0x28 0x00 Level(13,Enemy,True) [1, 24] [5, 23] [0x16] [0x00,0x03,0x09,0x00]			//Cavalier R 
UNIT 0x40 0x28 0x00 Level(13,Enemy,True) [1, 24] [2, 23] [0x03] [0x00,0x03,0x09,0x00]			//Cavalier R
UNIT 

Turn_events:
TURN 0x00 RemoveBlack [01, 01] 0x00 0x00
END_MAIN

RemoveBlack:
OOBB			//Makes Black go away
CAM1 [12, 9]	//Moves Camera Up
TEX1 0x867		//Stay Alert Text
REMA
ENUN

Character_events:
CHAR 0x0E EndChapter 0x03 0x29 0x000000
END_MAIN

Location_events:
Village(1,ThankallForComing,3,15)
Armory(ArmoryData,15,12)
Vendor(VendorData,12,15)
END_MAIN

ThankallForComing:
MUSI
FADI 10
BACG 0x02 
FADU 10
TEX1 0x81B
REMA
MUNO
ITGV 0x28
REMA
ENDA

Misc_events:
CauseGameOverIfLordDies
END_MAIN

Opening_event:
CMOF					//Turns Camera Follow off
LOU1 Bad 				//Loads Guys Occupying Village
ENUN					//Waits to load 
OOBB					//Ends Start Screen Fade to Black
CMON					//Turns Camera Follow On 
LOU1 Good 				//Loads Good Units
ENUN					//Waits to Load
CAM1 [12, 9]			//Moves Camera
TEX8 0x865 [05,05]		//Brown Text Title
STAL 40			 		//stalls
CURF [12, 9] 			//Flashes on curser on coordinates
RETB					//Clears TeXt8
TEX1 0x866				//We need to get past them text
REMA					//Clears Screen
ENDB					//Ending for Prep Screen
END_MAIN  

EndChapter:
TEX1 0x9D2				//Ending Chapter Text
ENDA

Ending_event:
FADI 10					//Starts Fadin
UnitClear				//Clears Units from Map
ENUN					//Waits to Load
LOU1 FinalScene			//Loads End cutscene units
FADU 10					//Fadeout starts
TEX1 0x868				//Everyone get in Text
REMA					//Removes Text
MOVE [8, 6] [1, 1]		//Moves Alexandra 
MOVE [10, 5] [3, 1]		//Moves Jordon 
MOVE [11, 3] [4, 2]		//Moves Ramona
MOVE [12, 4] [0, 4]		//Moves Randall
ENUN					//Waits to load
TEX1 0x869				//Im scared Text
REMA					//Clears Text
LOU1 HaltPrisoners		//Loads Daroh Pursuers
ENUN					//Waits to Load
STAL 30					//Stalls for 30
CAM1 [9, 8]				//Moves Camera Back up
TEX1 0x86A				//Time to go text
REMA					//Clears text
MOVE [9, 4] [2, 0]		//Moves Lydus
MOVE [8, 4] [2, 4]		//Moves Orcus
ENUN					//Waits to Load
MoveToChapter(0x0E)
ENDA

ArmoryData:
SHLI 0x01 0x03 0x14 0x16 0x1F 0x20 0x2C 0x2D

VendorData:
SHLI 0x37 0x38 0x4A 0x6B

TrapData:
ENDTRAP

ENUT 0x3 will set the seize flag and thus call the end event in FE8

Im hacking fe7, will this command still work there? Also would I put that under my “EndChapter:” character event?

At the end of the NPC’s talk event, add “JUMP Ending_event”, and after the talk event finishes, the game should execute the Ending_event afterwards. Alternatively, replace the “EndChapter” pointer with “Ending_event” and talking to the NPC will immediately execute the Ending_event.

EndChapter:
TEX1 0x9D2
JUMP Ending_event
ENDA

Or:

CHAR 0x0E Ending_event 0x03 0x29 0x0

1 Like

Worked perfectly! Thanks!

I think that it is better to enable flag 0x03 before doing JUMP.

In FE8, clear turn number will not be recorded unless flag 0x03 is enabled.
Therefore, it becomes a problem when displaying the clear turn number list by ending.
I do not know whether it is the same with FE7.

ENUT 0x03
JUMP Ending_event
1 Like