Primefusion Posted June 4, 2015 Share Posted June 4, 2015 Can you explain the perimeters of CALL? This is straight from the doc, "Event Assembler Language.txt", which you can find in Event Assembler's root directory: Event execution manipulation FE8: CALL *Event pointer* FE7: CALL *Event pointer* Makes event execution move to offset, then return back after executing the event. Parameters: Event pointer = Event to execute. So if you do CALL <label>, then the label will be executed, and then execution will return back to whatever comes immediately after CALL. You could likely use a raw offset too, instead of a label. But, then you would have to know exactly where the events you're calling are stored in the ROM. Quote Link to comment Share on other sites More sharing options...
CT075 Posted June 4, 2015 Author Share Posted June 4, 2015 (edited) a hint: there are event triggers other than turn events the one you're looking for is called "AFEV" Edited June 4, 2015 by CT075 Quote Link to comment Share on other sites More sharing options...
supnaplamQW Posted June 5, 2015 Share Posted June 5, 2015 I'm confused about the CALL option though;if it tells the coding to read that specific event,what tells it to read the CALL parameters in the first place? or is it like the same deal with the pointers? Quote Link to comment Share on other sites More sharing options...
Primefusion Posted June 5, 2015 Share Posted June 5, 2015 That would depend on what your interpretation of a pointer is. The game knows to read in the label/offset when executing CALL because it's a function with a single parameter. That's how it was coded to work. Quote Link to comment Share on other sites More sharing options...
supnaplamQW Posted June 5, 2015 Share Posted June 5, 2015 #define DISABLE_TUTORIALS #include EAstdlib.event EventPointerTable(0x06,Pointers) ORG 0xD80000 Pointers: POIN Turn_events POIN Character_events POIN Location_events POIN Misc_events POIN TrapData TrapData POIN Good Good Good Good POIN Opening_event Ending_event POIN Bad Bad Bad Bad Good: UNIT 0x2D 0x23 0x00 Level(1, Ally, 0) [27,27] [27,27] [0x39, 0x57] NoAI UNIT 0x01 0x1E 0x00 Level(1, Ally, 0) [27,28] [27,28] [0x3E, 0x4A] NoAI UNIT 0x02 0x26 0x00 Level(1, Ally, 0) [27,29] [27,29] [0x46, 0x58] NoAI UNIT 0x10 0x1C 0x00 Level(10, Ally, 0) [28,27] [28,27] [0x42, 0x3E] NoAI UNIT 0x13 0x20 0x00 Level(10, Ally, 0) [28,28] [28,28] [0x3B, 0x37] NoAI UNIT 0x16 0x24 0x00 Level(10, Ally, 0) [28,29] [28,29] [0x45, 0x44] NoAI UNIT 0x11 0x2D 0x00 Level(1, Ally, 0) [26,27] [26,27] [0x3E, 0x4C] NoAI UNIT 0x1B 0x2D 0x00 Level(1, Ally, 0) [26,29] [26,29] [0x37, 0x4C] NoAI UNIT 0x03 0x15 0x0A Level(1, Ally, 0) [26,28] [26,28] [0x1D, 0x68] NoAI UNIT Bad: UNIT Reinforcements: UNIT 0x67 0x12 0x00 Level(10, Enemy, 0) [21,28] [21,28] [0x20] PursueWithoutHeed UNIT Shadows1: UNIT 0x52 0x3E 0x00 Level(20, Enemy, 0) [1,28] [1,28] [0x0D] PursueWithoutHeed UNIT CALL LoadShadows LoadShadows: IFET 0x01 0x08 LOU1 Shadows1 ENUN ELSE 0x02 ENIF 0x01 ENUF 0x24 ENIF 0x02 AFEV Turn_events: TurnEventPlayer(0x0,Opening_event,1) TURN 0 Mendel [1,30] 0x8 0x00 End_MAIN Character_events: End_MAIN Location_events: CHES 0x08 0x6A [21,28] 0x12 End_MAIN TileChanges: TileMap(0x0F,11,6,0x01,0x01,ChestOpened) TileMapEnd ChestOpened: BYTE 0x04 0x00 ALIGN 4 End_MAIN Misc_events: CauseGameOverIfLordDies AFEV Mendel: IFET 0x01 0x08 LOU1 Reinforcements ENUN ELSE 0x02 ENIF 0x01 ENUF 0x24 ENIF 0x02 End_MAIN TrapData: End_MAIN Opening_event: OOBB LOU1 Good ENUN ENDA Ending_event: ENDA // Events // Manual Movement // Scripted Fights // Units // Shop Data MESSAGE Events end at offset currentOffset Somewhere along the lines I'm doing something wrong.I also put it in the Turn event section because you said it'd return to what comes after it,but that results in a black screen.I tried with and w/o an AFEV.I don't know what I'm doing wrong now. Quote Link to comment Share on other sites More sharing options...
CT075 Posted June 5, 2015 Author Share Posted June 5, 2015 (edited) why don't you try Misc_events: AFEV 0x6 LoadShadows 0x24 CauseGameOverIfLordDies AFEV // ... LoadShadows: LOU1 Shadows1 ENUN ELSE 0x02 ENUF 0x24 ENDA Some homework for you: Explain to me what a label is, why we use them, and how event triggers work. Edited June 5, 2015 by CT075 Quote Link to comment Share on other sites More sharing options...
supnaplamQW Posted June 5, 2015 Share Posted June 5, 2015 So what my understanding of those things gained from my conversations from you and a few tutorials I looked at,labels are used to bring light to pieces of the "script"(or coding) so they are performed by the program. Almost everything in the coding is under a label,except the pointers themselves;they're understood because they consist of a single parameter,hence they're among the only ones in the original script not under a label for they define the main 8 labels(them,along with the #define and ORG,and eventpointertable codes).I started realizing this was so after our reinforcement conversation,but I didn't know single parameter thing until recently.Labels are essentially required to code many things. Event triggers are the ones that actually tell the program to actually perform said instructed task.Event and Condition IDs that are written are only recognized with the labels;the program needs these triggers to actually use the offsets to do said task. Lastly,I ried doing that,but it didn't work. Quote Link to comment Share on other sites More sharing options...
CT075 Posted June 5, 2015 Author Share Posted June 5, 2015 well, your point about labels are almost right a label just is a name for a "place" in your script; consider it a line number, if you will. To tell the code what to do when X happens, it just uses the various trigger arrays (TURN, etc) to find out which line number to go to. We use labels because that's easier than using 0x804134D8 (a pointer) or whatever else it ends up being. the POIN table is just that - it's a list of pointers (or labels). You don't mess with that because those are predetermined - the fourth label is the list of miscellaneous (per action) triggers, the seventh is the list of units that determines how many units you get to deploy that map, etc. Writing random code into the middle of nowhere without a label on top will work, strictly speaking, but it isn't recommended because it just makes things generally harder and more annoying to code Now, back to your problem - what exactly are you trying to do? From glancing over the script, it looks like you want the enemies to spawn immediately after the chest is opened (i got the trigger ID wrong but you can fix that yourself, it's just "AFEV 0x[whatever] label 0x8" instead of "[whatever] 0x24"), otherwise... do what? When exactly do you want it to be checking whether the chest has been opened? Quote Link to comment Share on other sites More sharing options...
supnaplamQW Posted June 5, 2015 Share Posted June 5, 2015 Yes,I do want it to happen immediately.Your solution now works;I thank you greatly.But for the sake of clearing things up,I thought AFEV was a parrallel of ENDA,where it tells the program to stop coding other events and give the players their turn.The way you used it seem to imply that it doesn't work that way;they are clearly different in function,or atleast,how they perform it.Can you explain this? Quote Link to comment Share on other sites More sharing options...
CT075 Posted June 5, 2015 Author Share Posted June 5, 2015 (edited) the mainstream tutorials don't explain this very well (i'm in the process of writing my own, for the record) The groups of code like "Turn_events" or "Misc_events" are event trigger arrays. They aren't actual event code, per se, and more lists of "when X happens, go to Y pointer and perform the events located there". For example, "TURN 0x0 TurnFourEvents [4,4]" tells the game that, on every turn between turns 4 and 4 (the [4,4], which really means "just do this on turn 4"), go to the code labeled "TurnFourEvents" and do the stuff there. The thing is, the game has no way of knowing how many TURNs (or AFEVs, or CHESs, etc) there are in advance. For Misc_events, for example, every time a unit ends its turn, it just starts checking every single condition in there. Without knowing the end, it would theoretically check forever (because they're all numbers to the computer). We don't want this, so to signal that "hey, there's no more triggers here", we put a terminator. Generally, this is the purpose of END_MAIN. However, you can accomplish the same effect by just putting a blank trigger with no actual data (hence the empty TURN or empty AFEV, etc at the end of a lot of the old templates). The function of the terminator is completely different from that of ENDA, which honestly has no synonym (the closest would be ENDB, which also does something completely different). ENDA tells the game to stop performing events and return control to the player, like you thought. The blank AFEV (or END_MAIN, or any of the other ones) does not mean the same thing, because the places in the code where you'd put them are never meant to be performed. As a rule of thumb, if the game is doing something obvious (loading units, playing music, showing text), you'll want to end it with ENDA. Otherwise use END_MAIN (or a blank trigger - AFEV/TURN/CHAR/LOCA) Edited June 5, 2015 by CT075 Quote Link to comment Share on other sites More sharing options...
supnaplamQW Posted June 6, 2015 Share Posted June 6, 2015 Thanks that helps clear up alot of things--A major point of learning as an FE hacker :))))).Sorry to ask this so sudden,but there's another problem I can't seem to resolve: #define DISABLE_TUTORIALS #include EAstdlib.event EventPointerTable(0x06,Pointers) ORG 0xD80000 Pointers: POIN Turn_events POIN Character_events POIN Location_events POIN Misc_events POIN TrapData TrapData POIN Good Good Good Good POIN Opening_event Ending_event POIN Bad Bad Bad Bad Good: UNIT 0x2D 0x23 0x00 Level(1, Ally, 0) [27,27] [27,27] [0x39, 0x57] NoAI UNIT 0x01 0x1E 0x00 Level(1, Ally, 0) [27,28] [27,28] [0x3E, 0x4A] NoAI UNIT 0x02 0x26 0x00 Level(1, Ally, 0) [27,29] [27,29] [0x46, 0x58] NoAI UNIT 0x10 0x1C 0x00 Level(10, Ally, 0) [28,27] [28,27] [0x42, 0x3E] NoAI UNIT 0x13 0x20 0x00 Level(10, Ally, 0) [28,28] [28,28] [0x3B, 0x37] NoAI UNIT 0x16 0x24 0x00 Level(10, Ally, 0) [28,29] [28,29] [0x45, 0x44] NoAI UNIT 0x11 0x2D 0x00 Level(1, Ally, 0) [26,27] [26,27] [0x3E, 0x4C] NoAI UNIT 0x1B 0x2D 0x00 Level(1, Ally, 0) [26,29] [26,29] [0x37, 0x4C, 0x68, 0x69] NoAI UNIT 0x03 0x15 0x0A Level(1, Ally, 0) [26,28] [26,28] [0x1D, 0x68] NoAI UNIT Bad: UNIT Reinforcements: UNIT 0x67 0x12 0x00 Level(10, Enemy, 0) [21,28] [21,28] [0x20] PursueWithoutHeed UNIT Shadows1: UNIT 0x52 0x3E 0x00 Level(20, Enemy, 0) [29,28] [29,27] [0x0C] PursueWithoutHeed UNIT 0x52 0x3E 0x00 Level(20, Enemy, 0) [29,28] [29,28] [0x0C] PursueWithoutHeed UNIT 0x52 0x3E 0x00 Level(20, Enemy, 0) [29,28] [29,29] [0x0C] PursueWithoutHeed UNIT LoadShadows: LOU1 Shadows1 ENUN ELSE 0x02 ENUF 0x24 ENDA Turn_events: TurnEventPlayer(0x0,Opening_event,1) TURN 0 Mendel [1,30] 0x0 0x00 TURN 0 Miracle [1,30] 0x0 0x00 TURN 0 Mystic [1,30] 0x8 0x00 End_MAIN Character_events: End_MAIN Location_events: CHES 0x08 0x6A [21,28] 0x12 Door(21,26) End_MAIN TileChanges: TileMap(0x00,0x1B,0x22,0x01,0x01,ChestOpened) TileMap(0x01,0x1B,0x20,0x01,0x01,FirstDoorOpened) TileMapEnd ChestOpened: BYTE 0x04 0x00 ALIGN 4 End_MAIN FirstDoorOpened: BYTE 0x40 0x2C ALIGN 4 End_MAIN Misc_events: AFEV 0x06 LoadShadows 0x08 CauseGameOverIfLordDies AFEV Mendel: IFET 0x01 0x08 LOU1 Reinforcements ENUN ENIF 0x01 ELSE 0x02 ENIF 0x02 ENUF 0x24 End_MAIN Miracle: IFAT 0x07 0x7A2F1 TurnNPC(0x52) ENIF 0x01 ELSE 0x02 ENIF 0x02 ENUF 0x24 End_MAIN Mystic: IFAF 0x07 0x7A2F1 TurnEnemy(0x52) ENIF 0x01 ELSE 0x02 ENIF 0x02 ENUF 0x24 End_MAIN TrapData: End_MAIN Opening_event: OOBB LOU1 Good ENUN ENDA Ending_event: ENDA // Events // Manual Movement // Scripted Fights // Units // Shop Data MESSAGE Events end at offset currentOffset I have no problems w/ miracle and mystic BTW.I'm scrutinizing a video tutorial about tilechanges for my horizontal door.The problem is,while the location event is happening,the actual tile change isn't happening.That ALIGN 4 is just to realign properly the script.I looked at the parameters and can't find what i'm missing for it. Quote Link to comment Share on other sites More sharing options...
Shamison Posted June 7, 2015 Share Posted June 7, 2015 None of my Area events seem to be working. // Made by markyjoe1990 of Youtube // Modified by Nintenlord and further by Camtech #define DISABLE_TUTORIALS #include EAstdlib.event #define MAP_OFFS 0xDA0000 // Write a pointer to the map for you so you don't have to do it yourself EventPointerTable(0x04,MAP_OFFS) EventPointerTable(0x06,Chapter) //EventPointerTable(0x06,Pointers) 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 Ending_event Bad: //UNIT Good: UNIT Eliwood 0x01 0x00 Level(1,Ally,False) [26,25] [26,25] [ironSword] [0x00,0x00,0x00,0x00] UNIT Oswin 0x14 0x01 Level(3,Ally,False) [26,25] [25,26] [0x1E,0x6B] [0x00,0x00,0x00,0x00] UNIT 0x31 0x32 0x01 Level(2,Ally,False) [26,25] [27,26] [0x15,0x6B] [0x00,0x00,0x00,0x00] //Florina UNIT Boss: UNIT Nergal 0x42 0x00 Level(20,Enemy,False) [3,3] [3,3] [0x27] [0x00,0x03,0x00,0x20] UNIT GateKeeper: UNIT Paul 0x16 0x44 Level(10,Enemy,False) [10,10] [10,10] [0x1A,Elixir] [0x00,0x03,0x00,0x20] UNIT Angry: UNIT Jasmine 0x3B 0x44 Level(20,Enemy,False) [22,24] [22,24] [0x23] [0x00,0x03,0x09,0x00] UNIT Woods: UNIT Wil 0x1A 0x01 Level(20,Ally,False) [29,27] [29,29] [0x31] [0x00,0x00,0x00,0x00] UNIT TrollChest: UNIT Wallace 0x0A 0x2C Level(10,Enemy,False) [1,28] [1,28] [0x06,0x70] [0x00,0x03,0x00,0x20] UNIT Generics1: UNIT 0xA7 0x3A 0x44 Level(5,Enemy,True) [1,23] [6,24] [0x1F,0x6C] [0x00,0x03,0x09,0x00] UNIT 0xA7 0x3A 0x44 Level(5,Enemy,True) [1,23] [7,25] [0x1F,0x6C] [0x00,0x03,0x09,0x00] UNIT 0xA7 0x3A 0x44 Level(5,Enemy,True) [1,23] [3,26] [0x1F,0x6C] [0x00,0x03,0x09,0x00] UNIT 0xA7 0x3A 0x44 Level(5,Enemy,True) [1,23] [7,22] [0x1F,0x6C] [0x00,0x03,0x09,0x00] UNIT 0xA7 0x3A 0x44 Level(5,Enemy,True) [1,23] [4,25] [0x1F,0x6C] [0x00,0x03,0x09,0x00] UNIT Generics2: UNIT 0xA7 0x3A 0x44 Level(8,Enemy,True) [22,4] [22,4] [0x20,0x6C] [0x00,0x03,0x09,0x00] UNIT 0xA7 0x3A 0x44 Level(8,Enemy,True) [21,6] [21,6] [0x20,0x6C] [0x00,0x03,0x09,0x00] UNIT 0xA7 0x3A 0x44 Level(8,Enemy,True) [23,7] [23,7] [0x20,0x6C] [0x00,0x03,0x09,0x00] UNIT 0xA7 0x3A 0x44 Level(8,Enemy,True) [20,8] [20,8] [0x20,0x6C] [0x00,0x03,0x09,0x00] UNIT 0xA7 0x3A 0x44 Level(8,Enemy,True) [22,7] [22,7] [0x20,0x6C] [0x00,0x03,0x09,0x00] UNIT Generics3: UNIT 0xA7 0x3A 0x44 Level(13,Enemy,True) [3,3] [1,5] [0x22,0x6C] [0x00,0x03,0x09,0x00] UNIT 0xA7 0x3A 0x44 Level(13,Enemy,True) [3,3] [5,4] [0x22,0x6C] [0x00,0x03,0x09,0x00] UNIT 0xA7 0x3A 0x44 Level(13,Enemy,True) [3,3] [2,4] [0x22,0x6C] [0x00,0x03,0x09,0x00] UNIT 0xA7 0x3A 0x44 Level(13,Enemy,True) [3,3] [3,5] [0x22,0x6C] [0x00,0x03,0x09,0x00] UNIT 0xA7 0x3A 0x44 Level(13,Enemy,True) [3,3] [8,4] [0x22,0x6C] [0x00,0x03,0x09,0x00] UNIT Seige: UNIT 0xA7 0x3A 0x22 Level(20,Enemy,True) [15,2] [15,2] [0x3A] [0x00,0x03,0x09,0x00] UNIT 0xA7 0x3A 0x22 Level(20,Enemy,True) [12,5] [12,5] [0x3A] [0x00,0x03,0x09,0x00] UNIT 0xA7 0x3A 0x22 Level(20,Enemy,True) [7,9] [7,9] [0x3A] [0x00,0x03,0x09,0x00] UNIT 0xA7 0x3A 0x22 Level(20,Enemy,True) [2,14] [2,14] [0x3A] [0x00,0x03,0x09,0x00] UNIT TurnEvents: // Comment out or remove this line if you have a prep screen. TURN 0x00 Opening_event [01,00] 0x0 0x00 TURN CharacterEvents: //CHAR END_MAIN LocationEvents: Village(0x08,Village1,26,18) //House(0x07,ArenaTrap,29,14) Village(0x0A,Ruins,27,0) Vendor(BuyStuff,26,29) House(0x0B,Mad,23,24) House(0x0C,Money,21,29) //House(0x0D, ,29,20) need event idea House(0x0E,WoodedTroll,29,26) House(0x0F,Lose,15,26) House(0x10,MasterSeal,14,0) //Chest(item,X,Y) //AREA eventID SceneLabel [startX,StartY] [EndX,EndY] AREA 0x17 UberSword [14,18] [14,18] AREA 0x18 StopSiege [12,20] [12,20] AREA 0x00 GG1 [12,14] [19,17] AREA 0x00 GG2 [20,15] [20,18] AREA 0x00 GG3 [10,15] [11,22] AREA 0x00 GG4 [12,18] [13,19] AREA 0x00 GG5 [15,18] [19,19] AREA 0x00 GG6 [12,21] [15,24] AREA 0x00 GG7 [16,20] [18,22] AREA 0x00 GG8 [14,19] [14,19] AREA 0x00 GG9 [11,23] [11,23] AREA 0x00 GG10 [16,23] [16,23] //LOCA END_MAIN MiscEvents: CauseGameOverIfLordDies //AFEV END_MAIN Opening_event: // Change to ENDB if you have prep screen. OOBB FADI 10 BACG 0x02 FADU 10 TEX1 0x0811 REMA LOU1 Good LOU1 Boss LOU1 GateKeeper LOU1 Generics1 LOU1 Generics2 LOU1 Generics3 LOU1 TrollChest LOU1 Seige ENUN OOBB ENDA //Location Events Start Village1: FADI 10 BACG 0x02 FADU 10 TEX1 0x0810 REMA //give item? ENDA Ruins: FADI 10 BACG 0x02 FADU 10 TEX1 0x0813 REMA //give item? ENDA //ArenaTrap: //TEX1 0x0812 //REMA //GameOver Mad: FADI 10 BACG 0x02 FADU 10 TEX1 0x0814 REMA LOU1 Angry ENUN ENDA MasterSeal: FADI 10 BACG 0x02 FADU 10 TEX1 0x0816 REMA ITGV 0x8A ENDA Money: FADI 10 BACG 0x02 FADU 10 TEX1 0x0817 REMA ITGV 0x98 ENDA Lose: GameOver WoodedTroll: FADI 10 BACG 0x02 FADU 10 TEX1 0x0818 REMA LOU1 Woods ENUN ENDA UberSword: ITGV 0x84 StopSiege: WarpOut(15,2) WarpOut(12,5) WarpOut(7,9) WarpOut(2,14) GG1: GameOver GG2: GameOver GG3: GameOver GG4: GameOver GG5: GameOver GG6: GameOver GG7: GameOver GG8: GameOver GG9: GameOver GG10: GameOver //Shop BuyStuff: SHLI 0x1E 0x14 0x15 0x16 0x6B 0x6C Ending_event: //MNCH 0x__ //STAL 1 //_0x1 //ENDA //UnitClear //LOMA 0x01 [X,Y] BallistaData: BLST MESSAGE Events end at offset currentOffset MESSAGE The map for this chapter is at offset MAP_OFFS Quote Link to comment Share on other sites More sharing options...
Primefusion Posted June 7, 2015 Share Posted June 7, 2015 AREA events are actually classified as miscellaneous, rather than location based. Quote Link to comment Share on other sites More sharing options...
Shamison Posted June 7, 2015 Share Posted June 7, 2015 (edited) Oh thats odd. Thank you. Also does anyone know how to fix the error that causes custom text to overlap? Edit: It fixed most of the events but now my two events 0x17 and 0x18 do their desired affect then play a bunch(more than 4) of the warp animations around the screen and then cause a game over. Also only my first village event is working. Edited June 8, 2015 by Shamison Quote Link to comment Share on other sites More sharing options...
CT075 Posted June 8, 2015 Author Share Posted June 8, 2015 LocationBasedEvents and MiscBasedEvents are such bad names why do people still use them they're more like VisitorBasedEvents (in which you use a command that isn't "talk" on a certain square) and MovementBasedEvents (in which they're checked every time a unit ends its turn) Quote Link to comment Share on other sites More sharing options...
Shamison Posted June 17, 2015 Share Posted June 17, 2015 // Made by markyjoe1990 of Youtube // Modified by Nintenlord and further by Camtech #define DISABLE_TUTORIALS #include EAstdlib.event #define MAP_OFFS 0xDA0000 // Write a pointer to the map for you so you don't have to do it yourself EventPointerTable(0x04,MAP_OFFS) EventPointerTable(0x06,Chapter) //EventPointerTable(0x06,Pointers) 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 Ending_event Bad: //UNIT Good: UNIT Eliwood 0x01 0x00 Level(1,Ally,False) [26,25] [26,25] [ironSword] [0x00,0x00,0x00,0x00] UNIT Oswin 0x14 0x01 Level(3,Ally,False) [26,25] [25,26] [0x1E,0x6B] [0x00,0x00,0x00,0x00] UNIT 0x31 0x32 0x01 Level(2,Ally,False) [26,25] [27,26] [0x15,0x6B] [0x00,0x00,0x00,0x00] //Florina UNIT Boss: UNIT Nergal 0x42 0x00 Level(20,Enemy,False) [3,3] [3,3] [0x27] [0x00,0x03,0x00,0x20] UNIT GateKeeper: UNIT Paul 0x16 0x44 Level(10,Enemy,False) [10,10] [10,10] [0x1A,Elixir] [0x00,0x03,0x00,0x20] UNIT Angry: UNIT Jasmine 0x3B 0x44 Level(20,Enemy,False) [22,24] [22,24] [0x23] [0x00,0x03,0x09,0x00] UNIT Woods: UNIT Wil 0x1A 0x01 Level(20,Ally,False) [29,27] [29,29] [0x31] [0x00,0x00,0x00,0x00] UNIT TrollChest: UNIT Wallace 0x0A 0x2C Level(10,Enemy,False) [1,28] [1,28] [0x06,0x70] [0x00,0x03,0x00,0x20] UNIT Generics1: UNIT 0xA7 0x3A 0x44 Level(5,Enemy,True) [1,23] [6,24] [0x1F,0x6C] [0x00,0x03,0x09,0x00] UNIT 0xA7 0x3A 0x44 Level(5,Enemy,True) [1,23] [7,25] [0x1F,0x6C] [0x00,0x03,0x09,0x00] UNIT 0xA7 0x3A 0x44 Level(5,Enemy,True) [1,23] [3,26] [0x1F,0x6C] [0x00,0x03,0x09,0x00] UNIT 0xA7 0x3A 0x44 Level(5,Enemy,True) [1,23] [7,22] [0x1F,0x6C] [0x00,0x03,0x09,0x00] UNIT 0xA7 0x3A 0x44 Level(5,Enemy,True) [1,23] [4,25] [0x1F,0x6C] [0x00,0x03,0x09,0x00] UNIT Generics2: UNIT 0xA7 0x3A 0x44 Level(8,Enemy,True) [22,4] [22,4] [0x20,0x6C] [0x00,0x03,0x09,0x00] UNIT 0xA7 0x3A 0x44 Level(8,Enemy,True) [21,6] [21,6] [0x20,0x6C] [0x00,0x03,0x09,0x00] UNIT 0xA7 0x3A 0x44 Level(8,Enemy,True) [23,7] [23,7] [0x20,0x6C] [0x00,0x03,0x09,0x00] UNIT 0xA7 0x3A 0x44 Level(8,Enemy,True) [20,8] [20,8] [0x20,0x6C] [0x00,0x03,0x09,0x00] UNIT 0xA7 0x3A 0x44 Level(8,Enemy,True) [22,7] [22,7] [0x20,0x6C] [0x00,0x03,0x09,0x00] UNIT Generics3: UNIT 0xA7 0x3A 0x44 Level(13,Enemy,True) [3,3] [1,5] [0x22,0x6C] [0x00,0x03,0x09,0x00] UNIT 0xA7 0x3A 0x44 Level(13,Enemy,True) [3,3] [5,4] [0x22,0x6C] [0x00,0x03,0x09,0x00] UNIT 0xA7 0x3A 0x44 Level(13,Enemy,True) [3,3] [2,4] [0x22,0x6C] [0x00,0x03,0x09,0x00] UNIT 0xA7 0x3A 0x44 Level(13,Enemy,True) [3,3] [3,5] [0x22,0x6C] [0x00,0x03,0x09,0x00] UNIT 0xA7 0x3A 0x44 Level(13,Enemy,True) [3,3] [8,4] [0x22,0x6C] [0x00,0x03,0x09,0x00] UNIT Seige: UNIT 0xA7 0x22 0x22 Level(20,Enemy,True) [15,2] [15,2] [0x3A] [0x00,0x03,0x09,0x00] UNIT 0xA7 0x22 0x22 Level(20,Enemy,True) [12,5] [12,5] [0x3A] [0x00,0x03,0x09,0x00] UNIT 0xA7 0x22 0x22 Level(20,Enemy,True) [7,9] [7,9] [0x3A] [0x00,0x03,0x09,0x00] UNIT 0xA7 0x22 0x22 Level(20,Enemy,True) [2,14] [2,14] [0x3A] [0x00,0x03,0x09,0x00] UNIT Drunkards: UNIT 0x75 0x39 0x22 Level(5,Enemy,True) [18,26] [17,27] [0x21] [0x00,0x03,0x09,0x00] UNIT 0x75 0x39 0x22 Level(5,Enemy,True) [18,26] [17,28] [0x21] [0x00,0x03,0x09,0x00] UNIT 0x75 0x39 0x22 Level(5,Enemy,True) [18,26] [19,27] [0x21] [0x00,0x03,0x09,0x00] UNIT 0x75 0x39 0x22 Level(5,Enemy,True) [18,26] [19,28] [0x21] [0x00,0x03,0x09,0x00] UNIT 0x75 0x39 0x22 Level(5,Enemy,True) [18,26] [19,29] [0x21] [0x00,0x03,0x09,0x00] UNIT 0x75 0x39 0x22 Level(5,Enemy,True) [18,26] [17,29] [0x21] [0x00,0x03,0x09,0x00] UNIT TurnEvents: // Comment out or remove this line if you have a prep screen. TURN 0x00 Opening_event [01,00] 0x0 0x00 //TURN 0x00 Turn4 [04,00] 0x0 0x00 //TURN CharacterEvents: //CHAR CharacterEventBothWays(0x30,Advance,Eliwood,Nergal) END_MAIN LocationEvents: Village(0x08,Village1,26,18) Village(0x20,Village2,18,26) //House(0x07,ArenaTrap,29,14) Village(0x0A,Ruins,27,0) Vendor(BuyStuff,26,29) House(0x0B,Mad,23,24) House(0x0C,Money,21,29) House(0x0D,RAIN,29,20) House(0x0E,WoodedTroll,29,26) House(0x0F,Lose,15,26) House(0x10,MasterSeal,14,0) //Chest(item,X,Y) //LOCA END_MAIN MiscEvents: CauseGameOverIfLordDies //AREA eventID SceneLabel [startX,StartY] [EndX,EndY] AREA 0x17 UberSword [14,18] [14,18] AREA 0x18 StopSiege [12,20] [12,20] AREA 0x00 GG1 [12,14] [19,17] AREA 0x00 GG2 [20,15] [20,18] AREA 0x00 GG3 [10,15] [11,22] AREA 0x00 GG4 [12,18] [13,19] AREA 0x00 GG5 [15,18] [19,19] AREA 0x00 GG6 [12,21] [15,24] AREA 0x00 GG7 [16,20] [18,22] AREA 0x00 GG8 [14,19] [14,19] AREA 0x00 GG9 [11,23] [11,23] AREA 0x00 GG10 [16,23] [16,23] //AFEV END_MAIN Opening_event: // Change to ENDB if you have prep screen. OOBB FADI 10 BACG 0x02 FADU 10 TEX1 0x0811 REMA LOU1 Good LOU1 Boss LOU1 GateKeeper LOU1 Generics1 LOU1 Generics2 LOU1 Generics3 LOU1 TrollChest LOU1 Seige ENUN OOBB ENDA //Location Events Start Village1: FADI 10 BACG 0x02 FADU 10 TEX1 0x0810 REMA ITGV 0x87 ENDA Village2: FADI 10 BACG 0x02 FADU 10 TEX1 0x0820 REMA LOU1 Drunkards ENDA Ruins: FADI 10 BACG 0x02 FADU 10 TEX1 0x0813 REMA ITGV 0x19 ENDA RAIN: FADI 10 BACG 0x02 FADU 10 TEX1 0x0824 REMA WEA1 Rain ENDA //ArenaTrap: //TEX1 0x0812 //REMA //GameOver Mad: FADI 10 BACG 0x02 FADU 10 TEX1 0x0814 REMA LOU1 Angry ENUN ENDA MasterSeal: FADI 10 BACG 0x02 FADU 10 TEX1 0x0816 REMA ITGV 0x8A ENDA Money: FADI 10 BACG 0x02 FADU 10 TEX1 0x0817 REMA ITGV 0x98 ENDA Lose: GameOver WoodedTroll: FADI 10 BACG 0x02 FADU 10 TEX1 0x0818 REMA LOU1 Woods ENUN ENDA UberSword: ITGV 0x84 StopSiege: WarpOut(15,2) WarpOut(12,5) WarpOut(7,9) WarpOut(2,14) GG1: GameOver GG2: GameOver GG3: GameOver GG4: GameOver GG5: GameOver GG6: GameOver GG7: GameOver GG8: GameOver GG9: GameOver GG10: GameOver Advance: TEX1 0x0822 REMA //MoveToChapter(chapter) //Shop BuyStuff: SHLI 0x1E 0x14 0x15 0x16 0x6B 0x6C Ending_event: //MNCH 0x__ //STAL 1 //_0x1 //ENDA //UnitClear //LOMA 0x01 [X,Y] BallistaData: BLST MESSAGE Events end at offset currentOffset MESSAGE The map for this chapter is at offset MAP_OFFS My AREA events that point to "UberSword" and "Stop Seige" Dont do their intended purpose but the ones that cause a gameover do. Is there something wrong with what I set the event ID's to? Also after I edited text with FEditor adv the text loads on top of itself rendering it illegible. I saved in FEditor before doing anything so I cant figure out the problem. Quote Link to comment Share on other sites More sharing options...
CT075 Posted June 17, 2015 Author Share Posted June 17, 2015 always end with ENDA, even if it's a game over; you're missing a bunch (offhand Advance, all the GameOvers, UberSword and StopSiege are missing them) you're missing END_MAIN at the end of your TurnEvents stylistic thing - instead of having GG1, GG2, GG3, (etc) that all do the same thing, you can just do AREA 0x00 GG [12,14] [19,17] AREA 0x00 GG [20,15] [20,18] AREA 0x00 GG [10,15] [11,22] AREA 0x00 GG [12,18] [13,19] AREA 0x00 GG [15,18] [19,19] AREA 0x00 GG [12,21] [15,24] AREA 0x00 GG [16,20] [18,22] AREA 0x00 GG [14,19] [14,19] AREA 0x00 GG [11,23] [11,23] AREA 0x00 GG [16,23] [16,23] // ... GG: GameOver ENDA Quote Link to comment Share on other sites More sharing options...
Shamison Posted June 17, 2015 Share Posted June 17, 2015 (edited) Oh I didnt realize I could reuse that. And I forgot about the ENDA Thanks! Edit: I cant seem to find the code that advances to the next chapter without going through the save screen. I checked the documentation that comes with the assembler but it wasnt in there. Edited June 18, 2015 by Shamison Quote Link to comment Share on other sites More sharing options...
Shamison Posted June 18, 2015 Share Posted June 18, 2015 (edited) // Made by markyjoe1990 of Youtube // Modified by Nintenlord and further by Camtech #define DISABLE_TUTORIALS #include EAstdlib.event #define MAP_OFFS 0xDA03A0 // Write a pointer to the map for you so you don't have to do it yourself EventPointerTable(0x0D,MAP_OFFS) EventPointerTable(0x0F,Chapter) ORG 0xD804F0 Chapter: POIN TurnEvents POIN CharacterEvents POIN LocationEvents POIN MiscEvents POIN BallistaData BallistaData POIN Bad Bad Bad Bad POIN Good Good Good Good POIN OpeningEvent EndingEvent Bad: UNIT Nergal 0x01 0x00 Level(10,Enemy,False) [6,2] [6,2] [0x07] [0x00,0x03,0x00,0x20] UNIT 0x77 0x32 0x3A Level(9,Enemy,True) [6,2] [5,2] [0x14] [0x00,0x03,0x09,0x00] UNIT 0x77 0x1E 0x3A Level(8,Enemy,True) [6,2] [4,2] [0x40] [0x00,0x03,0x09,0x00] UNIT 0x77 0x1E 0x3A Level(8,Enemy,True) [6,2] [7,2] [0x40] [0x00,0x03,0x09,0x00] UNIT 0x77 0x28 0x3A Level(7,Enemy,True) [6,2] [3,2] [0x14] [0x00,0x03,0x09,0x00] UNIT 0x77 0x28 0x3A Level(7,Enemy,True) [6,2] [8,2] [0x14] [0x00,0x03,0x09,0x00] UNIT 0x77 0x14 0x3A Level(6,Enemy,True) [6,2] [2,2] [0x14] [0x00,0x03,0x09,0x00] UNIT 0x77 0x14 0x3A Level(6,Enemy,True) [6,2] [9,2] [0x14] [0x00,0x03,0x09,0x00] Bad2: UNIT 0x77 0x38 0x3A Level(5,Enemy,True) [6,2] [2,3] [0x14] PursueWithoutHeed UNIT 0x77 0x38 0x3A Level(5,Enemy,True) [6,2] [3,3] [0x14] PursueWithoutHeed UNIT 0x77 0x38 0x3A Level(5,Enemy,True) [6,2] [4,3] [0x14] PursueWithoutHeed UNIT 0x77 0x38 0x3A Level(5,Enemy,True) [6,2] [5,3] [0x14] PursueWithoutHeed UNIT 0x77 0x38 0x3A Level(5,Enemy,True) [6,2] [6,3] [0x14] PursueWithoutHeed UNIT 0x77 0x38 0x3A Level(5,Enemy,True) [6,2] [7,3] [0x14] PursueWithoutHeed UNIT 0x77 0x38 0x3A Level(5,Enemy,True) [6,2] [8,3] [0x14] PursueWithoutHeed UNIT 0x77 0x38 0x3A Level(5,Enemy,True) [6,2] [9,3] [0x14] PursueWithoutHeed UNIT Good: UNIT Eliwood 0x01 0x00 Level(1,Ally,True) [5,9] [5,9] [ironSword] [0x00,0x00,0x00,0x00] UNIT Oswin 0x14 0x01 Level(3,Ally,True) [5,9] [2,9] [0x1E,0x6B] [0x00,0x00,0x00,0x00] UNIT 0x31 0x32 0x01 Level(2,Ally,True) [5,9] [6,9] [0x15,0x6B] [0x00,0x00,0x00,0x00] UNIT 0x6C 0x1E 0x01 Level(8,Ally,True) [5,9] [7,9] [0x40] [0x00,0x00,0x00,0x00] UNIT 0x6C 0x1E 0x01 Level(8,Ally,True) [5,9] [4,9] [0x40] [0x00,0x00,0x00,0x00] UNIT 0x6C 0x28 0x01 Level(7,Ally,True) [5,9] [3,9] [0x14] [0x00,0x00,0x00,0x00] UNIT 0x6C 0x28 0x01 Level(7,Ally,True) [5,9] [8,9] [0x14] [0x00,0x00,0x00,0x00] UNIT 0x6C 0x14 0x01 Level(6,Ally,True) [5,9] [2,9] [0x14] [0x00,0x00,0x00,0x00] UNIT 0x6C 0x14 0x01 Level(6,Ally,True) [5,9] [9,9] [0x14] [0x00,0x00,0x00,0x00] Good2: UNIT 0x6C 0x38 0x3A Level(5,Ally,True) [5,9] [3,8] [0x14] [0x00,0x00,0x00,0x00] UNIT 0x6C 0x38 0x3A Level(5,Ally,True) [5,9] [4,8] [0x14] [0x00,0x00,0x00,0x00] UNIT 0x6C 0x38 0x3A Level(5,Ally,True) [5,9] [5,8] [0x14] [0x00,0x00,0x00,0x00] UNIT 0x6C 0x38 0x3A Level(5,Ally,True) [5,9] [6,8] [0x14] [0x00,0x00,0x00,0x00] UNIT 0x6C 0x38 0x3A Level(5,Ally,True) [5,9] [7,8] [0x14] [0x00,0x00,0x00,0x00] UNIT 0x6C 0x38 0x3A Level(5,Ally,True) [5,9] [8,8] [0x14] [0x00,0x00,0x00,0x00] UNIT 0x6C 0x38 0x3A Level(5,Ally,True) [5,9] [9,8] [0x14] [0x00,0x00,0x00,0x00] UNIT 0xE6 0x38 0x3A Level(5,Ally,True) [5,9] [9,8] [0x14] [0x00,0x00,0x00,0x00] UNIT TurnEvents: // Comment out or remove this line if you have a prep screen. TURN 0x0 OpeningEvent [1,0] 0x0 0x0 TURN END_MAIN CharacterEvents: //CHAR END_MAIN LocationEvents: //LOCA END_MAIN MiscEvents: CauseGameOverIfLordDies AREA 0x10 SoldierCheck [9,6] [9,6] //AFEV END_MAIN OpeningEvent: // Change to ENDB if you have prep screen. FADI 10 BACG 0x02 FADU 10 TEX1 0x0840 REMA LOU1 Good LOU1 Bad LOU1 Good2 LOU1 Bad2 ENUN ENDA SoldierCheck: //Put Conditional Check //IFCA 0x00 0x?? 0xE6 or is it IFCA 0x01 0xE6 //MAC1 0x03? 0x00 //ELSE 0x02 //ENIF 0x01 //ENUF 0x24 //ENIF 0x02 //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 When spawning in the units instead of going where they are supposed to they spawned like this. Also how would I write the conditional check so that when the specific soldier steps on the tile it triggers a map change but anybody else doesnt not activate it but doesnt not render the event unusable. I attempted it already but I am not sure if I did it right and not sure if/how MAC1 works with Tiled. EDIT: Sorry about the double post I thought I was editing the previous one. Edited June 18, 2015 by Shamison Quote Link to comment Share on other sites More sharing options...
Primefusion Posted June 18, 2015 Share Posted June 18, 2015 (edited) When spawning in the units instead of going where they are supposed to they spawned like this. Also how would I write the conditional check so that when the specific soldier steps on the tile it triggers a map change but anybody else doesnt not activate it but doesnt not render the event unusable. I attempted it already but I am not sure if I did it right and not sure if/how MAC1 works with Tiled. EDIT: Sorry about the double post I thought I was editing the previous one. And how exactly are they supposed to be spawning? We're going to need a little more information. Edit: I'm guessing you mean you don't have as many playable units as you expected. You can't spawn player units that share the same character ID. You can, however, spawn enemies or NPCs with the same ID, and then change them to be playable units. For the tile trigger, use an AREA event. In the event, you can use IFCA (If Character Active) to check which character is triggering the event. If it's not the right character, use an ENUF to reset the event's ID. Edited June 18, 2015 by Primefusion Quote Link to comment Share on other sites More sharing options...
Shamison Posted June 18, 2015 Share Posted June 18, 2015 Okay thanks. So I have to spawn all the units as enemy then use the switch command. But there was also more enemy units spawned then there should have been. And on both sides the pegasus knight and lord spawned on the same tile. Quote Link to comment Share on other sites More sharing options...
CT075 Posted June 18, 2015 Author Share Posted June 18, 2015 you're spawning bad2 twice because you don't have an empty UNIT at the end of bad1 Quote Link to comment Share on other sites More sharing options...
Shamison Posted June 18, 2015 Share Posted June 18, 2015 Okay. It fixed it. Also how do I load units from a previous chapter to have the same stats and inventory as the last? Quote Link to comment Share on other sites More sharing options...
CT075 Posted June 18, 2015 Author Share Posted June 18, 2015 just load them, they won't get reset or anything Quote Link to comment Share on other sites More sharing options...
Shamison Posted June 19, 2015 Share Posted June 19, 2015 When I LOMA another map does it load that maps events? Because when I tried to use LOMA it didnt seem to do that. If it doesnt is there a code that will load a different chapters events? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.