Jump to content

Zen Blood

  • Content Count

  • Joined

  • Last visited

  • Days Won


Zen Blood last won the day on November 13 2020

Zen Blood had the most liked content!

1 Follower

About Zen Blood

  • Rank
    Certifiably Sane

Contact Methods

  • Website URL

Profile Information

  • Gender
    Not Telling

RPG Maker Information

  • RM Skill -
    Jack of All Trades

Recent Profile Visitors

7,801 profile views
  1. Zen Blood

    Creating a (Hopefully) Simple New Game Plus Feature

    Thank you, Kayzee. I really appreciate it. Just for the sake of learning, I'll try to make my own version, but it's truly a relief to know that I'm allowed to use something that works in case I just can't figure it out myself.
  2. Zen Blood

    Creating a (Hopefully) Simple New Game Plus Feature

    That's incredible. It works exactly in the way that I need it to work. I may still try to put together something myself, but just so I know for future reference, would I have your full permission to use this script in the game that I am making? It is a commercial project, and it is a horror game depicting sensitive material. If you are not comfortable with this, I understand. If you're alright with me using your script, then I am very grateful and I'd like to ask if you'd like to be credited.
  3. Zen Blood

    Creating a (Hopefully) Simple New Game Plus Feature

    Right now I have a few snippets of code I've been experimenting with. For one, the names of specific save files (Save01.rvdata2, Save02.rvdata2, Save03.rvdata2, ect;) I could use that to cycle through the different save files to check to see if a certain switch is on. I've also been playing around with the lines @Kayzee shared. By the way, thank you Kayzee! I often forget to check the manual, but also I don't always know what terms I want to look for and the search bar can be a bit picky. It's nice to have some direction. So I tried this as an example: $data_actors = load_data("Data/Actors.rvdata2") msgbox_p($data_actors) I get a little message box giving me a bunch of information about Data/Actors. From what I can tell, it's the condition Data/Actors are in at the beginning of the game. At least it means I'm successfully getting data information, as I should. "Data/Variables.rvdata2" or "Data/Switches.rvdata2" doesn't work, sadly. No surprise, since DataManager doesn't contain information on variables/switches. However, information on a switches'/variables' initial and current state in a specific save file must be kept somewhere. I may even decide to toss out the idea of a custom global variable/switch, in this case $extragame. Finding a custom variable might be a bit more complicated than finding the built-in variables and switches that are often called upon with $game_variables[ ] and $game_switches[ ] So now I'm tinkering with lines like "$game_variables[1].Save01.rvdata2". Doesn't work, sadly, but I'm going to try throwing alterations to see if anything sticks.
  4. Zen Blood

    Creating a (Hopefully) Simple New Game Plus Feature

    Unfortunately Yanfly's New Game + script requires Yanfly's Ace Save Engine script as well, which heavily alters my saving and loading UI, and possibly other things I'm not aware of at this moment. I could try to fish out all the problem lines of script in the Ace Save Engine, and I can understand using someone's script for a bit of guidance, but dismembering it and then using it as my own feels a little wrong. Not to mention it would take a while to differentiate what I can (and need to) cut out and what the New Game + script relies on. Though upon looking at Yanfly's New Game +, I see that $data_system.switches might play a role in telling the game to search individual game files to check if a certain switch is on within one of those saves. I have a sneaking feeling that Marshal.load/dump might be needed for this as well. I'm still wrapping my head around what exactly Marshal does, so I could be completely wrong.
  5. Zen Blood

    Creating a (Hopefully) Simple New Game Plus Feature

    I definitely plan on using it to control certain switches and variables. There's so much that could be done. However, the extent to which I take advantage of this feature will depend on how much more time I allow myself to develop my game. LoM sounds very interesting. Thank you very much! I would like to publish it for public use if I can make it streamline enough for a "plug and play" sort of script, as well as not needing to rely on anything too specific in my game. Ah yes, I have kind of lost my thought process as to why I used false unless true, haha. Thank you for pointing me in the direction of Game_Load, I'll see what I can find from there.
  6. Hello, everyone. Today I've been working on a "New Game Plus" feature, where if you have completed the game once, a switch will be set to true that allows you to select and play a new game that has extra features in it. I am very close to having this set up exactly the way I need it to be. Using this little set up here, I created a switch ($extragame) that can be set to true while in-game. I will set it to true after the player has completed the whole game. At the title screen, when they select "New Game" it will take them to a scene that'll ask them if they want a "New Game" (without extra features) or a "New Game +" (that will have extra features.) module DataManager class << self alias orig_CGO create_game_objects alias orig_MSC make_save_contents alias orig_XSC extract_save_contents end def self.create_game_objects orig_CGO #MY OBJECTS $extragame = false unless true $extragame_y = false end def self.make_save_contents contents = {} contents = orig_MSC #MY OBJECTS contents[:$extragame] = $extragame contents[:$extragame_y] = $extragame_y return contents end def self.extract_save_contents(contents) orig_XSC(contents) #MY OBJECTS $extragame = contents[:extragame] $extragame_y = contents[:extragame_y] end If they select New Game +, the setup for a new game will execute pretty much the same as normal, but with an addition that $extragame_y (as in "yes the player selected an extra game) will be set to true after the game has technically started. Before anything else will happen, the player will be immediately prompted in-game to save. That way when the player continues on that specific save file, the whole game will have extra features from then on. def newgame_extra DataManager.setup_new_game fadeout_all $game_map.autoplay SceneManager.goto(Scene_Map) $newgameplus_y = true end Everything is almost in place, except for the problem that if the player exits the game and re-opens it, the switch $extragame is set to false again. This doesn't happen if you go to the title screen, even if you don't save after triggering $extragame to be set to true. My solution is to find a way to make the state that switch $extragame is in to persist even after the game is closed. However, that could be an issue as well, since that means I could potentially publish the game with the switch already set to true because I've been testing out the extra game feature. I'm considering to solve this solution by having switch $extragame set to true at the very end of the game, making the game autosave on the save file the player is playing on, and then whenever the game is booted up it checks to see if there's a save file where $extragame is set to true. If there is a file that meets the requirements, then the player is given the option to play on a "New Game Plus" file. I feel like I'm so close to figuring it all out, but my last idea seems to be a little out of my element. I will continue researching what I can do. If anyone has any ideas, I would be happy to hear! Thank you for your time.
  7. Zen Blood

    Fleshport [Horror] - Demo released!

    Ah, I do, @PhoenixSoul! I actually made one a long while ago and forgot about it. Thanks for mentioning that, I've now revamped my store and added my game. Here it is.
  8. I'm so happy to have a demo of my game out for people to play, after all this time. 😵 It's gone through so much beta testing to get to this point. Not that it's perfect, but I feel like I'm almost ready to finish this project once and for all. I've got to let it go and let it be what it is.

    1. Show previous comments  2 more
    2. Zen Blood

      Zen Blood

      Thank you!

      My goons did a great job. I should give them a raise.

    3. Arrpeegeemaker


      @PhoenixSoul he is the thing playing in the background to whatever I'm doing, pretty much always. Put out a new vid in the last 24 hours for Legend of Kage, it's not bad


      @Zen Blood seriously, congrats, keep it moving all the way to a full release! I've been putting at least 5 hours a night/morning for months now with my partner on our project, we're hoping to have a playable version of our battle system just to showcase by the end of next month. I literally cannot wait to get to a demo point, I bet it feels great :D


      And I'm not gonna call the cops or anything, I actually had a nice time with the goon, he was just doing his job. He's like, super into MTG, and I've always wanted to get into that. We're supposed to hang out next Wednesday. I wonder what I'm gonna wear. Like, I want him to think I'm cool, but I don't want it to seem obvious.

    4. PhoenixSoul


      Just watched AVGN's review of Legend of Kage last night. Never played it, don't wanna, lolz

  9. Zen Blood

    Fleshport [Horror] - Demo released!

    Ah, I'm sorry to hear that. Perhaps I could give it to you in some other way?
  10. Zen Blood

    Fleshport [Horror] - Demo released!

    Fleshport now has a demo released to the public! Download it here. Tell me what you think.
  11. Hello, everyone. There was a thread on here that asked a similar question back in 2015, but it looked like the OP was attempting to create this effect for all windows, instead of a specific window like I want to do. I have a customized window for a puzzle that accesses class Window_HorzCommand. The player's selection cursor keeps redirecting to the first choice because I need to refresh the command bar each time a selection is made. I have found out that I can control where the cursor starts here: class Window_Command < Window_Selectable #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(x, y) clear_command_list make_command_list super(x, y, window_width, window_height) refresh select(0) # <------ Right there activate end Here's the order of my classes: Window_CustomWindow < Window_HorzCommand, Window_HorzCommand < Window_Command I want to Window_Command's select value specifically for Window_CustomWindow. From that point on, I can easily figure out what to do. I'd just need to create a variable that changes depending on the player's last selection, that would change the value of select, so that the cursor would begin in the player's last selected position. How would I change select for my custom class? I feel it may involve an alias, or something, but nothing is coming together in my head. Thank you for your time!
  12. Zen Blood

    Show Variables On Save Files

    Hello! I was hoping to program a text line in my save files that indicates where the player is at when they save the game. I've created a global variable ($v_player_location) that is set as a string so I can change the labeled "location" on a whim without having to change the map names in the editor. The player interacts with an event, within that event I have $v_player_location set to whatever location name I want it to be, and then the game saves. The "player location" does indeed show on the save files, but the issue here is that the location for every save file is portrayed as the same string because it's reflecting what $v_player_location currently is, instead of what it was at the time of each individual save. I was able to make the save files show individual play times. def draw_playtime(x, y, width, align) header = DataManager.load_header(@file_index) return unless header draw_text(x, y, width, line_height, "play time: " + header[:playtime_s], 2) end As you can see, it uses the symbol :playtime_s It's been a while since I added the play time, so I'm not sure what "header" is referring to, whether its something I created or a system already in place within the RPGMVXA engine. Don't mind me, I'm half asleep. I've found that "header" is referring to the "def self.make_save_header" line within DataManager. I tried to turn the location into a symbol, too, that would initiate upon a new game and set when the player saves. def draw_location(x, y, width, align) draw_text(x, y, width, line_height, "location: " + contents[:plocation], 4) end This did not work. It seems as though I need to figure out how to tell the program I want to access :plocation within contents, but that one line alone can't do it. I probably have to do some version of the line "header = DataManager.load_header(@file_index)" to access :plocation, from what I can tell. Would anyone happen to have any ideas as to how I can grab the contents of a variable for each individual save and display it on the save files? Edit: Here's another piece of the puzzle that shows how the individual play times where achievable. It was also located in DataManager. Interestingly, it's referenced using "DataManager.load_header(@file_index)" instead of "DataManager.load_header_without_rescue(@file_index)". #-------------------------------------------------------------------------- # * Load Save Header (No Exception Processing) #-------------------------------------------------------------------------- def self.load_header_without_rescue(index) File.open(make_filename(index), "rb") do |file| return Marshal.load(file) end return nil end I had a feeling this would dig into the Marshal load/dump/ect; I'm not entirely sure where to go from here, but I'll keep plugging anyway at it. Another Edit: I read up on a similar question someone had, and a person offered a solution to add the variable under header. I was originally trying to place the variable under "contents". Supposedly, this was what would make the variable work. class << DataManager def self.create_game_objects orig_CGO #This works, I'm just not showing the rest of the script here. #MY OBJECTS $v_player_location = "" #blank at the beginning of the game end alias_method(:new_make_save_header, :make_save_header) def make_save_header header = new_make_save_header header[:plocation] = $v_player_location header end end #END CLASS class Window_SaveFile < Window_Base def draw_location(x, y, width, align) header = DataManager.load_header(@file_index) return unless header draw_text(x, y, width, line_height, "location: " + header[:plocation], 4) end end #END CLASS It doesn't, I'm getting an error "can't convert nil into string". This error goes away when I replace header[:plocation] in def draw_location with a string. So that's the issue here. It thinks :plocation is nil, even though I've at least given it a blank string and have it's string changed before a save file is made. Update: This error also goes away when I omit "location " + and keep header[:plocation]. This works well enough for me, but for future sake, I'd like to know why I can include "playtime: " + alongside header[:playtime_s], but not "location " + alongside header[:plocation]. Solution 1: If you're happy with just the variable showing without another string on the same line, this template should work for you. Thank you for reading!
  13. Zen Blood

    Fleshport [Horror] - Demo released!

    If anyone is interested in beta testing (volunteer or paid) within the next couple months, I am accepting one more beta tester. After September 25th, I shall not be accepting any more beta testers.
  14. Thank you, @Kayzee, not only for explaining that to me but for your speedy response too! I did end up finding a work around by temporarily deactivating the event page the script is called in and reactivating it after event #2 started executing its commands. Since it was activated last, it now it takes priority! :)
  15. Hello! Question: Is there any way to check if a ruby method is running? Something akin to, "method.is_running?" I have a script that affects event # 1's move route, but event # 1's move route is being controlled by a separate event, event # 2. Because of this, the script doesn't take priority and event #1 will only carry out event #2's commands. This doesn't happen if event #1 is controlling its own move route, but for reasons I can't do that. So I want to check if the script is running so I can disable event #2.
Top ArrowTop Arrow Highlighted