Authors: Evanlyn
Be sure to take notes of all the relevant names and IDs as you go. Make lots of backups.
Be careful not to use any duplicate flags or Entity IDs; regions with duplicate EntityIDs in particular have a chance to permanently corrupt loaded mapbnds, so exercise caution.
Be careful when making Flag IDs; if the fifth digit is 1-9, it will cause the flag to reset on grace/area reload (Eg: XXXX0XXX).
Refer to other Entity or Flag IDs to see how FromSoft formatted them; sometimes it might matter, or not.
If you're curious about most entities having MapID: -1, UnkE0C: 255, and UnkS0C: -1, don't ask me. I have no idea, but changing it can break things. So just keep them that way.
Strap in. This one's a doozy.
1. Create one new elevator asset (eg: AEG027_016) and two new lever assets (eg: AEG027_002). Give them each unique EntityIDs.
2. Create two new ObjActs (one ObjAct for each lever), and give them each the following values:
3. Create two new Other, Box regions. They'll activate the pressure plates. Place each one where the elevator's pressure plates would be when at the top and bottom. Give them each unique EntityIDs, and the following values:
4. Create a new event in the map's EMEVD. This will initialize the main common event (90005500).
$Event(NewEventID1, Default, function() {
InitializeCommonEvent(0, 90005500, EventFlag1, EventFlag2, Label, ElevatorID, UpperLeverID, ObjActUpperLeverID, LowerLeverID, ObjActLowerLeverID, UpperSwitchRegionID, LowerSwitchRegionID, EventFlag3, EventFlag4, 0);
Notes: NewEventID1 should have 5th digit 2 EventFlag1 should have 5th digit 0 EventFlag2 should have 5th digit 1, and may be the same as the ElevatorID EventFlag3 should have 5th digit 0 EventFlag4 should have 5th digit 2, and may be the same as LowerSwitchRegionID
Label determines the height of the elevator. 0 is short, 2 is long, etc.
5. Create another new event. This one will run before loading to set up the main event.
$Event(NewEventID2, Default, function() {
EndIf(ThisEventSlot());
SetEventFlagID(EventFlag1, ON);
});
Note: NewEventID2 should have 5th digit 0
6. Add two new lines to Event(0
InitializeCommonEvent(0, 90005501, EventFlag1, EventFlag2, Label, ElevatorID, UpperLeverID, LowerLeverID, EventFlag3);
InitializeEvent(0, NewEventID1, 0);
7. Add one new line to Event(50
InitializeEvent(0, NewEventID2, 0);
8. Test it out, adjust as needed. More elevators require repeating all the steps. Different elevator models may require individual adjustment, so reference pre-existing maps and mess around until you've got it working.
9. Congratulations.