Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Question about Actors and Eventing

Hello, I have a few questions. I am making quite a long and massive game with RPG Maker XP. With a deep and complex storyline that includes many characters. When including so many characters, many of which, would be recruitable to the main character's group at some point, I've always encountered some difficulties.

1. What I need first, is a way to allow for a group member exchange interface, in the game. So players can swap in and out from their main group, different characters they have already recruited in the game. I'm pretty sure I need a script for this since I've never seen any evidence of a way to effectively implement something like this within the default RPG Maker XP program. If anyone can recommend a good script and tell me where to download it, that would add a group member exchange window to the game, I would really appreciate it.

2. I could also, actually, use a good day and night effect script. If anyone could recommend a good script for this as well, it would be much appreciated. Thank You.


3. This last question, is actually, one that's caused me the most trouble. I've asked on other forums, about this but no one has ever given me a very good answer. I am hoping someone here will know a better way to handle this.

I'm going to try to explain this as simply as possible, by example. Let's say, I have made a game with RPG Maker XP, where the player has recruited ten supporting characters to his cause but the group only allows for a maximum of four characters. The player can choose to bring any three of those ten recruited characters they want to bring, along with the main character. After selecting who those three will be, they enter a dungeon and encounter an event or cutscene where the main character and the three other group members come out to talk. What is the easiest and most effective way for the RPG Maker XP program to identify which characters are currently in the player's group so that those three specific characters can appear and talk in the cutscene?

Other than using loads of very tedious conditional event branches, I see no other way to handle this, in the RPG Maker XP program. Is there a script, perhaps, that can more easily identify the current characters in a player's group, for event/cutscene purposes?

I cannot believe everyone who uses this program would go through the trouble of adding extra conditional event branches, for every possible character that could be in the group, in every major event in their game. Unless this program just isn't meant for large casts of recruitable characters. Even with a small cast of only ten recruitable characters or so, having to add conditional branches for every single one of them in every major cutscene, seems endless, to me. There must be a more efficient way to do this, right?

I know each new actor that you add to a RPG Maker project has a specific number assigned to them. It seems like there should be some way to identify an actor by that number so that an event will copy the sprite graphic associated with that actor's number, during a cutscene. Similar to how the "\N[1]" command will display various Actor's names by their assigned number. For anyone who isn't following what I'm asking here, let me see if I can make an example of what I'm looking for...

Example: I don't know which character a player has chosen for the second spot in their group. Is there a way for me to enter some command or a script of some sort which will "Identify Actor in Position 2 of group by Actor's number" and then display that Actor's sprite graphic in a specified nearby event, for a cutscene as well as display in a text box, some pre-written dialogue for that specific actor? I think a system like this would be much easier to use for a lot of cutscenes in a game, instead of endless conditional branches. Is there any way to implement something like this in the RPG Maker XP program?

I would be eternally grateful to anyone who can give me a better and easier alternative to using endless conditional event branches for cutscenes.

That is all my questions for now, thank you very much for taking the time to read my post. I look forward to hearing back from you! :)

~Drew~
 

Nachos

Sponsor

1-Add/Remove party member. Uncheck "Initialize" everytime they rejoin.
2-Use Google. There was a realy good day/night system bumped around scripts archive, you should check it out.
3-UCoders caterpillar script.
 
muahahhahaha":1wnvuodk said:
1-Add/Remove party member. Uncheck "Initialize" everytime they rejoin.
2-Use Google. There was a realy good day/night system bumped around scripts archive, you should check it out.
3-UCoders caterpillar script.


Thank you for your reply. Just to clear a few things up to make sure no one misunderstands what I am asking for.

1: I know how to use the add/remove party member function however this does not really work very well when allowing a player to choose between several different characters to add to their party. It brings me back to the issue of having to use 20 or 30 or more conditional event branches plus a bunch of switches probably and I don't think the veteran RPG Maker users spend their time doing something like that. Though, I could be wrong.

I have seen certain scripts in the past that keep a record of sorts, of party members you have recruited in a game and then allow you to access them on a specific window for this and swap them into your party in exchage for a current member already in the party, similar to how most commercial RPG's work when switching in/out party members.

2 and 3: I do appreciate that you took the time to read my long post and reply to me but with all due respect, if I was going to just search on google, then posting on here to begin with wouldn't really be neccessary. I am posting on here because I need help finding the things I have asked about. I don't know what I'm looking for, I've only been using the RPG Maker XP program for about a year now, I know nothing about scripts and I have no other contacts or fellow designers I can confer with that use this program. I self taught myself 99% of it and I am still learning and as I'm sure most of you all know very well, it can be very, very time consuming.

If there are any kind souls out there that have been making games with this program for a lot longer than I and know exactly where I should go and what I should download, to meet the needs I have explained, I would be very grateful. Thank you.
 
To remember which members you recruited, and select 3 of them: try Dargor's Party Changer.
To detect the member in slot 2:
checkparty.png
 

Atoa

Member

1 - Search for the script "Blizzard Easy Party Switcher" , it has the best change party intefaces among the change party scripts avaliables for public.
You could also create an change pary menu via events, but that isn't a job for novices.

@silver wind
You don't need to store the actors name in an variable.
Just make an conditional branch usins a script call (the last option of the conditional branch) and adds: game_party.actos[1].id == X (X = the ID of the character, using IDs is better so you can change the name of actors freely and avoid typos)

the actor in slot 2 is game_party.actos[1]
the actor in slot 3 is game_party.actos[2]
the actor in slot 4 is game_party.actos[3]

The rest is up to you making via events x]
 
Atoa":1u6p44rc said:
1 - Search for the script "Blizzard Easy Party Switcher" , it has the best change party intefaces among the change party scripts avaliables for public.
You could also create an change pary menu via events, but that isn't a job for novices.

@silver wind
You don't need to store the actors name in an variable.
Just make an conditional branch usins a script call (the last option of the conditional branch) and adds: game_party.actos[1].id == X (X = the ID of the character, using IDs is better so you can change the name of actors freely and avoid typos)

the actor in slot 2 is game_party.actos[1]
the actor in slot 3 is game_party.actos[2]
the actor in slot 4 is game_party.actos[3]

The rest is up to you making via events x]



Thank you, Silverwind and Atoa for your helpful posts. Thanks Atoa for suggesting Blizzard's Easy Party Switcher. I found that and I think it may be exactly what I need, if i can figure out how to use it lol

I am getting the feeling that what I am asking about in the third question is still not being completely understood though and I have to admit, it is difficult to explain. Maybe I'm just not totally following the answers that have been given either.

Please keep in mind that I have very little experience with script writing so you probably will need to state the obvious to me and if possible, explain to me in a few steps, how to do what you've suggested.

From my limited understanding of the suggestions I've been given, so far. It seems to me that both Silverwind's and Atoa's answers could work, for displaying the text of an actor in slot 2 or slot 3 or slot 4 of the current group formation. Silverwind's suggestion might work for displaying sprite graphics of characters too. I don't see how Atoa's suggestion could be used to display an actor's sprite graphic as an event graphic though. Since there seems to be little to no connection between the call script event command and the "change graphic" event command.

Actually, both suggestions seem to be a very roundabout and more difficult version of simply doing a conditional branch that detects if a certain actor is currently in the group as displayed below:

ConditionalBranch1.png



This is the only non-scripted way I've found of detecting which actor a player has chose to put into their group. The major downside to using this method which would seem to be the same downside for the suggestions given by Silverwind and Atoa, is that you have to include a separate conditional branch for each possible recruitable character that the player has access to at the time. If a player has access to 20 different possible recruitable characters at one point in the game, then I must make 20 different conditional branches in every single event or cutscene that involves the current group members talking with each other. As I've said before, this becomes extremely tedious and time consuming then. I am looking for a more broadly based approach to handle this that would severely cut down the amount of conditional branches I would need to use in all my events and cutscenes.

A way, for example, where I would only need to use ONE conditional branch for this in any cutscene or event and that conditional branch would then check for which actor is currently in slot 2 or 3 or 4 of the currently formed player's group and then check against a list of actor ID's held somewhere else, perhaps in a common event?

This separate common event list would hold all the dialogue as well, for each possible actor that could be a part of the group at the time the cutscene would occur and would then substitute in the correct actor's dialogue that corresponds with the actor ID's that have been detected in the player's current party. Eliminating the need for 20 conditional branches and making my events a lot shorter and cleaner. Is there any way to set something like this up? Without having to use dozens of conditional branches even in the separate common event dialogue list?

Actually, I'm just realizing now that using a common event for this would never work. I would need a separate common event for every cutscene then, probably and you only get to use like 50 common events in one entire project, right? So yeah, that wouldn't work. Maybe there's a way to implement something like this without using a common event?

Does anyone understand what I'm trying to explain here? lol It's okay, I'm not even sure I'm making sense here myself.

I don't know. I'm beginning to think that, without lots and lots of scripting, there really isn't a way to get around having to use a conditional branch to identify each actor and what they would say and what their graphic sprite would be in a cutscene. Someone should create a addon or scripted tool that makes this less tedious though, if it hasn't been made already, I'm sure a lot of RPG Maker users would love something like that.

I suppose the easiest solution to all this is to simply never let players choose who to have in their group---but where's the fun in that?

Thanks again for the help! :)
 
This should do the trick. paste this in a new page in the script editor:
Code:
class Interpreter

 

  #--------------------------------------------------------------------------

  # * Show Text

  #--------------------------------------------------------------------------

  alias custom_dialog_command_101 command_101

  def command_101

    com = get_last_comment

    com = com.to_s

    #comment should be of the form: Dialog for actor 4

    if com.index("Dialog for actor ") != nil

      l = com.length 

      id = (com[17..l] ).to_i

      # only show text if the actor is in the party

      actor = $game_actors[id]

      return if not $game_party.actors.include?(actor)

      

    end

    custom_dialog_command_101

  end

  #--------------------------------------------------------------------------

  # * Get the comment from the event

  #--------------------------------------------------------------------------

  def get_last_comment

    event = $game_map.events[@event_id]

    last_com = -1

    @index.downto(0) {|i| 

       if event.list[i].code == 108

         last_com = i

         break

       end

         }

    if last_com != -1

      comment = event.list[last_com].parameters

      return comment

    else

      return nil

    end

  end

  

end

Add a comment with "Dialog for actor X", before a show-text command,
the text won't show up if the actor is not in the party.
For example:
dialogscript2.png
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top