HOW TO MAKE A CHARACTER SWITCHING SYSTEM ---------------------------------------- 9:53 Central, July 9, 2000, -Shadowtext (shadowtext@hotmail.com) ---------------------------------------- There've been several people asking about this, so I made a tutorial. My system's not the only system, though, so download other games and see how they do it. Customize this however you want. ---------------------------------------- **************************************** *Note: I have written this in a style similar to the programming language "Visual Basic". It should be easy enough to *understand. Generally, though, a decimal after a word represents that this is a property or method of the previous word. *Thus "Item.Remove" Would mean to remove from the items (Using an Add/Remove Item Command) or * **************************************** ---------------------------------------- Make an item (henceforth: "Warp Pendant") which summons the event "PartyChange." Here's what that does: ---------------------------------------- EraseScreen Item.Remove "Warp Pendant" MemorizePosition (Three variables reserved for this purpose) RemoveFromParty (Here I just do this for every member possible except the main character.[To change the main character, just add to each character later the choice to be Main character.) Teleport to CharacterSwitch (A room I made for this Event) ShowScreen Msg.Style = Trans, Up Msg = "Select a party \|\|\^" (these three commands at the end make it wait a few seconds and close) ---------------------------------------- Now I made an event with each character, active only if that character's "Joined" switch is on. (Has that character joined?) ---------------------------------------- **************************************** ---------------------------------------- Each character asks "Would you like me to come along?" or something appropriate. On the Yes Event I add that character to the party, then use a Move event to change the graphic to an invisible sprite. You can make sure that more than four don't join (they CAN join, just not participate) I add: ---------------------------------------- Variable vPartySize = Hero.PartySize If vPartySize = 4 Msg: "Too many people are already present." (Here you could add a RESET event. Do NOT simply recall the WarpPendant it WILL make the character stuck here eternally.) ---------------------------------------- Have a teleport square somewhere... ---------------------------------------- If vPartySize = 4 GotoMemorizedPlace(those variables once again.) AddItem WarpPendant Else Msg: "Not enough members." (This isn't necesary. You can make it teleport with fewer characters if you want.) End if ---------------------------------------- Place that event in a normal (NonConditional) EventPage. Make one page a piece for each Character. Have its condition be that the "Required" switch for that character ("Is this character required?") on. ---------------------------------------- If Hero.(place character here).IsPresent if vPartySize = 4 GotoMemorizedPlace(those variables once again.) Else Msg: "Not enough members." (This isn't necesary.) End if Else Msg: "(Place Character Here) is required. (Now call a RESET event) End if ---------------------------------------- That RESET event should be: ---------------------------------------- Erase Screen Remove (All characters) Teleport to CharacterSwitch Show Screen ---------------------------------------- That's pretty complex, though, so it might be wise to use variables instead of switches. ---------------------------------------- For an example of this system in action, download my demo: http://members.xoom.com/Shadowtext/zrg_half.zip The room should be at the bottom of the availavble maps (it's not a child map.) The common event should be easy enough to find. (It'll take some time to *get* the WarpPendant, though. At least until you have four characters. Unless you cheat by turning on the debug event. It's next to Castle Acar. Just turn off it's conditions in the map.) ---------------------------------------- **************************************** ---------------------------------------- That should just about do it, but post to the message board, and I'll help if I see it there, and someone else will mostlikely help if I don't. ----------------------------------------