Tenoukii 0 Report post Posted October 30, 2011 (edited) Howdee.. I have a somewhat lengthy request for a CMS. I'll start with the layout: Basically just this :) And now onto the features! Status Exactly the same as it is in the default menu. Backpack I would like this to be a dropmenu with these subcatagories: Basic Quest Gems Basic items is just stuff like your potions etc, Quest is the items you collect on your quest that can't be sold/given away etc, Gems is the gems you attach to weapons. (This should be quite simple to set the items as Basic/Quest/Gems aswell pleeeease :]) Quest I would like this to be just a quest screen. Something similar to Zeriabs quest script if possible with the icons and stuff. Options Just things like the bog standard options you find in most of the CMS's I've seen with the Load/Save options too Achievements That big section down the side I'd like filled with http://forum.chaos-project.com/index.php/topic,3330.40.html <this (or something similar). I don't want any callable windows that display the achievements, just that side section that displays the icons in something like 3 columns. Hunger/Thirst I'd just like http://www.rmxpunlimited.net/forums/topic/7025-hungerthirst/ <this script integrated there with the meters. So that means that it needs to be compatible with/have the following scripts integrated: #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=: # Hunger/Thirst # Author: ForeverZer0 # Date: 5.14.2010 # Version: 1.0 #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=: # # Features: # - Easy to use # - MUCH less complicated than many other similar scripts, yet it has more # features and less code # - Can have hunger and thirst decrease by time intervals or by steps walked # by the player # - Ability to have each character's 'Max Hunger' increase so that they can go # longer in between food and drinks as they gain in power # - Can use script calls to easily change hunger/thirst values, and to disable # the system for long cutscenes, etc. so that nothing decreases while the # player does not have control # - Automatically added states if hunger/thirst is at specific rates. # # Compatibility: # - If using Zero Add-On Collection, place this script below it. There is a # minor issue with the Chemist Class script, but placing this script below # it will solve the problem. # # Instructions: # - Place script below debug, and above main (below Zer0 Add-Ons, if present) # - All configuration is below and described fully in its respective section # - The following script calls can be used in game: # # ? Zer0.hunger_system(true/false) # - If false, hunger/thirst rates will not decrease. Good for long scenes # where the player is not in control, etc. The system will remain ON/OFF # until it is changed. # # ? Zer0.set_hunger(ACTOR_ID, AMOUNT) # ? Zer0.set_thirst(ACTOR_ID, AMOUNT) # - Sets the hunger/thirst of actor in your database with ACTOR_ID to the # number specified by AMOUNT # # ? Zer0.set_max_hunger(ACTOR_ID, AMOUNT) # ? Zer0.set_max_thirst(ACTOR_ID, AMOUNT) # - Sets the MAX hunger/thirst of actor in your database with ACTOR_ID to # the number specified by AMOUNT # # ? Zer0.recover_hunger(ACTOR_ID) # - Will recover all hunger/thirst to actor with ACTOR_ID. If you omit the # ( ) at the end of the script call, it will recover the entire party. # # ? Zer0.actor_hunger_id(ACTOR_ID) # - Returns the current hunger of actor with ACTOR_ID # # ? Zer0.actor_thirst_id(ACTOR_ID) # - Returns the current thirst of actor with ACTOR_ID # # ? Zer0.actor_hunger_pos(POSITION) # - Return the current hunger of actor at party POSITION # (0 is the leader, 1 is actor 2, etc) # # ? Zer0.actor_thirst_pos(POSITION) # - Return the current thist of actor at party POSITION # (0 is the leader, 1 is actor 2, etc) # # ? Zer0.hunger_debugger # - Displays info on-screen of each characters hunger/thirst, current # count for steps and time, and shows which features are currently ON. # # Special Thanks: # - kukusu, whose request gave me the inspiration for the script # - SBR*, for pointing out a stupid error I made with the stepcount # #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=: #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=: # BEGIN CONFIGURATION #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=: module Zer0 DEFAULT_HUNGER = 100 DEFAULT_THIRST = 100 # Default max hunger/thirst players will begin with. This can be increased as # the player becomes more powerful, through items, etc. if desired. BY_TIME = true BY_STEPS = true # There are two ways hunger and thirst can be calculated; one by just how many # seconds pass, and the other by how many steps have been taken. You can use # both if you like, but I would suggest that if you do to try to keep it more # skewed to one or the other as the main method of decreasing, and use the # other as a minor added dynamic. STEPS_HUNGER_DOWN = 100 STEPS_THIRST_DOWN = 80 # Only if using 'BY_STEPS', otherwise ignore these. These are the amount # of steps before hunger/thirst decrease. SECS_HUNGER_DOWN = 120 SECS_THIRST_DOWN = 120 # Only if using 'BY_TIME', otherwise ignore these. These are the amount # of seconds before hunger/thirst decrease. LVL_UP_INCREASE = true # If true, will increase max hunger/thirst at each level up, the amount of # increase is defined just below. LVL_UP_AMOUNT = 5 # This will be added to the actor's max hunger/thirst at each level up, only # if LVL_UP_INCREASE is true. #------------------------------------------------------------------------------- # Food/Drink Items: # # Set up your food/drink items recovery rates here. Food and drink are each in # their own section. Use this syntax to set them up: # # when ITEM_ID the return RECOVERY_AMOUNT # # For example, in the first example below, it means that the item in your # database with ID(1) will cure hunger by 15. If RECOVER_BY_PERCENT (below) is # set to true, it will recover 15% of that actors MAX hunger/thirst. # # You can also create items that have negative effects by making the # RECOVERY_AMOUNT a negative number. DO NOT have food/drink items do anything # other than recover hunger/thirst and/or add/remove states. Anything else, # such has HP/MP recovery, will have no effect. # #------------------------------------------------------------------------------- RECOVER_BY_PERCENT = true # Recovery can be by either absolute value, or by percent. Setting this to # true will make it by percent. def self.food(item_id) case item_id when 1 then return 15 when 2 then return 25 when 3 then return 35 when 4 then return 50 when 5 then return 75 when 6 then return 100 end end def self.drink(item_id) case item_id when 1 then return 15 when 2 then return 25 when 3 then return 35 when 4 then return 50 when 5 then return 75 when 6 then return 100 end end #------------------------------------------------------------------------------- # Hunger/Thirst States # # Set up states that will be applied when an actors hunger/thirst fall within # a defined range, such as 'Starvation', 'Dehydration', etc. # Configure like this: # # when MIN..MAX then return STATE_ID # # If actor's hunger/thirst is equal to or between MIN and MAX, the state with # STATE_ID will be applied. This method is refreshed everytime the system # decreases hunger/thirst. # # Keep in mind that these states will NOT be automatically cured if the actor's # hunger/thirst rise above. Create your food/drink items to cure these states. # #------------------------------------------------------------------------------- def self.hunger_states(current_hunger) case current_hunger when 0 then return 1 when 1..9 then return 2 when 10..15 then return 3 end end def self.thirst_states(current_thirst) case current_thirst when 0 then return 1 when 1..9 then return 2 when 10..15 then return 3 end end #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=: # END CONFIGURATION #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=: def self.hunger_system(value) $game_party.hunger = value return true end def self.set_hunger(actor_id, amount) $game_party.actors.each {|a| a.hunger = amount if a.id == actor_id} end def self.set_thirst(actor_id, amount) $game_party.actors.each {|a| a.thirst = amount if a.id == actor_id} end def self.set_max_hunger(actor_id, amount) $game_party.actors.each {|a| a.max_hunger = amount if a.id == actor_id} end def self.set_max_thirst(actor_id, amount) $game_party.actors.each {|a| a.max_thirst = amount if a.id == actor_id} end def self.actor_hunger_id(actor_id) $game_party.actors.each {|a| return a.hunger if a.id == actor_id} end def self.actor_thirst_id(actor_id) $game_party.actors.each {|a| return a.thirst if a.id == actor_id} end def self.actor_hunger_pos(pos = 0) return $game_party.actors[pos].hunger if $game_party.actors[pos] != nil end def self.actor_thist_pos(position = 0) return $game_party.actors[pos].thirst if $game_party.actors[pos] != nil end def self.recover_hunger(actor_id = nil) $game_party.actors.each {|actor| if actor_id == nil actor.hunger = actor.max_hunger actor.thirst = actor.max_thirst elsif actor.id == actor_id actor.hunger = actor.max_hunger actor.thirst = actor.max_thirst end } end def self.hunger_debugger sys = "System ON: #{$game_party.hunger}\n\n" + "By Time: #{BY_TIME}\n" + "By Steps: #{BY_STEPS}\n\n" actors = '' $game_party.actors.each {|actor| actors += "#{actor.name}\nHunger: #{actor.hunger}\\#{actor.max_hunger}\n" + "Thirst: #{actor.thirst}\\#{actor.max_thirst}\n\n"} ht = "HungerTime: #{$game_party.time_hunger/40}\\#{SECS_HUNGER_DOWN}\n" tt = "ThirstTime: #{$game_party.time_thirst/40}\\#{SECS_THIRST_DOWN}\n" hs = "HungerStep: #{$game_party.steps}\\#{$game_party.step_hunger}\n" ts = "ThirstStep: #{$game_party.steps}\\#{$game_party.step_thirst}\n" print(sys + actors + ht + tt + hs + ts) end end #------------------------------------------------------------------------------- # ** Game_Actor #------------------------------------------------------------------------------- class Game_Actor < Game_Battler attr_accessor :hunger attr_accessor :max_hunger attr_accessor :thirst attr_accessor :max_thirst alias zer0_hunger_setup setup def setup(actor_id) zer0_hunger_setup(actor_id) @hunger = @max_hunger = Zer0::DEFAULT_HUNGER @thirst = @max_thirst = Zer0::DEFAULT_THIRST if Zer0::LVL_UP_INCREASE && @level > 1 increase = Zer0::LVL_UP_AMOUNT @hunger = @max_hunger = (@level - 1) * increase + Zer0::DEFAULT_HUNGER @thirst = @max_thirst = (@level - 1) * increase + Zer0::DEFAULT_THIRST end end alias zer0_hunger_level_up exp= def exp=(exp) level = @level zer0_hunger_level_up(exp) if Zer0::LVL_UP_INCREASE && level != @level lvls = @level - level @max_hunger += (Zer0::LVL_UP_AMOUNT * lvls) @max_thirst += (Zer0::LVL_UP_AMOUNT * lvls) end end end #------------------------------------------------------------------------------- # ** Game_Battler #------------------------------------------------------------------------------- class Game_Battler alias test item_effect def item_effect(item) food_item = false hunger_plus = Zer0.food(item.id) thirst_plus = Zer0.drink(item.id) if hunger_plus != nil if Zer0::RECOVER_BY_PERCENT hunger_plus = (self.max_hunger * (hunger_plus * 0.01)).ceil end self.hunger += hunger_plus self.hunger = [[self.hunger, self.max_hunger].min, 0].max food_item = true end if thirst_plus != nil if Zer0::RECOVER_BY_PERCENT thirst_plus = (self.max_thirst * (thirst_plus * 0.01)).ceil end self.thirst += thirst_plus self.thirst = [[self.thirst, self.max_thirst].min, 0].max food_item = true end if food_item states_plus(item.plus_state_set) states_minus(item.minus_state_set) return true end test(item) end end #------------------------------------------------------------------------------- # ** Game_Party #------------------------------------------------------------------------------- class Game_Party attr_accessor :hunger attr_accessor :time_hunger attr_accessor :time_thirst attr_accessor :step_hunger attr_accessor :step_thirst alias zer0_hunger_system_init initialize def initialize zer0_hunger_system_init @hunger = true @time_hunger = @time_thirst = 0 @step_hunger = Zer0::STEPS_HUNGER_DOWN @step_thirst = Zer0::STEPS_THIRST_DOWN end def check_hunger_states @actors.each {|actor| state_id = Zer0.hunger_states(actor.hunger) actor.add_state(state_id) if state_id != nil} end def check_thirst_states @actors.each {|actor| state_id = Zer0.thirst_states(actor.thirst) actor.add_state(state_id) if state_id != nil} end end #------------------------------------------------------------------------------- # ** Scene_Map #------------------------------------------------------------------------------- class Scene_Map alias zer0_hunger_map_upd update def update zer0_hunger_map_upd if $game_party.hunger update_hunger end end def update_hunger if Zer0::BY_TIME $game_party.time_hunger += 1 $game_party.time_thirst += 1 if $game_party.time_hunger == (Zer0::SECS_HUNGER_DOWN * 40) $game_party.actors.each {|actor| actor.hunger -= 1 unless actor.dead? || actor.hunger == 0} $game_party.check_hunger_states $game_party.time_hunger = 0 end if $game_party.time_thirst == (Zer0::SECS_THIRST_DOWN * 40) $game_party.actors.each {|actor| actor.thirst -= 1 unless actor.dead? || actor.thirst == 0} $game_party.check_thirst_states $game_party.time_thirst = 0 end end if Zer0::BY_STEPS if $game_party.steps == $game_party.step_hunger $game_party.actors.each {|actor| actor.hunger -= 1 unless actor.dead? || actor.hunger == 0} $game_party.check_hunger_states $game_party.step_hunger = $game_party.steps + Zer0::STEPS_HUNGER_DOWN end if $game_party.steps == $game_party.step_thirst $game_party.actors.each {|actor| actor.thirst -= 1 unless actor.dead? || actor.thirst == 0} $game_party.check_thirst_states $game_party.step_thirst = $game_party.steps + Zer0::STEPS_THIRST_DOWN end end end end #============================================================================== # Scene Tutorial # Version 1.0 # Author: modern algebra (rmrk.net) # Date: September 15, 2008 # Modified by Jimmie for RMXP, 14 of August 2009 #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # Description: # This script allows you to freeze user input for a scene and run a special # common event that controls input. Effectively, this allows you to run a # scene and direct a tutorial to that scene that explains what the scene is. # So, if you ever wanted to give the players to your game a tutorial on # using the Menu scene, then this is the script for you. #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # Instructions: # Okay, this script can be slightly difficult to use, so you have to pay # careful attention to the instructions. # # To start a tutorial, you must use a call script with this code: # # $tutorial.start (scene, common event id) # # where scene is the name of the scene to call, (like Scene_Menu or # Scene_Battle) and common event ID is the ID of the common event that # controls the tutorial. Now, that's the easy part. Setting up the controller # common event will be tricky at first, but once you get the hang of it, # you'll be fine. Now, read the instructions very carefully: # # The Standard Wait Variable - You set what Variable this will be at line # 200. The value of this variable determines how many frames to wait for # after each command. # # The controller common event is similar to a regular common event in some # ways but many of the commands will be unavailable to you while others will # be irrelevant and others still will have a different effect than you would # expect. In the instructions, I will go over the functions of what will be # the most important commands in making a scene tutorial, but I just wanted # to warn you that many commands will not work as you expect them to. (For # instance, pictures, screen tone etc... will only work in a battle or map # tutorial). So, depending on how the scene is built, some things are # possible while others are not. Note, however, that in a number of cases, # you can simulate the effect that is not possible. That being said, it can # get quite convoluted, but that was as far as I was willing to go with this # script. I apologize for the difficulty. # # Anyway, there are a couple of specialized commands that have their function # changed from what they would normally do. These are: # # Control Variable # Set Move Route # # These have been changed so that rather than do what they would normally, # they instead interpret input. Since player input is frozen during a # tutorial, scene movement is handled by you, the game creator. It is done # through these two commands. This can be rather non-intuitive, but for each # value of 0 through 19, a button is attached. It is similar for Set Move # Route, but let's go over the variable way of setting input first. # # To set it, it must be a single variable set to a constant. If any other # option is chosen, then the Control Variable command will function normally. # Also, the control variable command will behave normally if the variable you # choose is the one you choose for setting standard wait time. Anyway, here # is the list of values and their effects: # # 0 - Down Cursor # 1 - Left Cursor # 2 - Right Cursor # 3 - Up Cursor # 4 - Button A # 5 - Button B # 6 - Button C # 7 - Button X # 8 - Button Y # 9 - Button Z # 10 - Button L # 11 - Button R # 12 - SHIFT # 13 - CTRL # 14 - ALT # 15 - F5 # 16 - F6 # 17 - F7 # 18 - F8 # 19 - F9 # # If you want to wait some frames, the Wait command will work normally. # # Set Move Route has a similar set of moves attached. They are: # Move Down - Down Cursor # Move Left - Left Cursor # Move Right - Right Cursor # Move Up - Up Cursor # Move Lower Left - Button A # Move Lower Right - Button B # Move Upper Left - Button C # Move Upper Right - Button X # Move at Random - Button Y # Move Toward Player - Button Z # Move Away from Player - Button L # One Step Forward - Button R # One Step Backward - SHIFT # Jump - CTRL # Wait - Waits for however many frames # Turn Down - ALT # Turn Left - F5 # Turn Right - F6 # Turn Up - F7 # Turn 90 Left - F8 # Turn 90 Right - F9 # # So basically, using those commands will make the scene react as if the # corresponding button had just been pressed. #============================================================================== # *** Input #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # Summary of Changes: # aliased method - trigger?, press?, repeat? #============================================================================== module Input class << self #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Frame Update #```````````````````````````````````````````````````````````````````````` # Updates tutorial as well if it exists. It does it in Input as all scenes # update Input every frame #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alias modalg_tutorials_update_9rt update def update $tutorial.update if $tutorial != nil && $tutorial.active? # Run Original Method modalg_tutorials_update_9rt end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Trigger? #```````````````````````````````````````````````````````````````````````` # If Tutorial is running, freezes input and accepts only tutorial input #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alias modalg_tut_frz_inpt_trig_dj5 trigger? def trigger? (key) return $tutorial.button == key if $tutorial != nil && $tutorial.active? && !$tutorial.upd_input # Run Original Method modalg_tut_frz_inpt_trig_dj5 (key) end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Repeat? #```````````````````````````````````````````````````````````````````````` # If Tutorial is running, freezes input and accepts only tutorial input #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alias modalg_rpt_tutorial_upd_8fn repeat? def repeat? (key) return $tutorial.button == key if $tutorial != nil && $tutorial.active? && !$tutorial.upd_input # Run Original Method modalg_rpt_tutorial_upd_8fn (key) end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Press? #```````````````````````````````````````````````````````````````````````` # If Tutorial is running, freezes input and accepts only tutorial input #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alias modalg_tut_prs_frz_inpt_9nfg press? def press? (key) return $tutorial.button == key if $tutorial != nil && $tutorial.active? && !$tutorial.upd_input # Run Original Method modalg_tut_prs_frz_inpt_9nfg (key) end end end #============================================================================== # ** Tutorial Guide #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # This class handles the interpretation of the common event for a tutorial #============================================================================== class Game_TutorialGuide < Interpreter #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Constant #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # STANDARD WAIT VARIABLE is the ID of the event variable that holds a # standard wait between input commands. Basically, if this is set to 2, # then Variable with ID 2 will control the wait between actions. So, if # Variable with ID 2 is set to 4, then it will wait four frames before # executing the next command in the common event STANDARD_WAIT_VARIABLE = 2 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Object Initialization #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def initialize super @wait_frames = 60 end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Control Variable #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def command_122 if @parameters[3] == 0 || @parameters[0] == STANDARD_WAIT_VARIABLE command_input (@parameters[4] + 1) else super end end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Set Move Route #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def command_209 @move_route = @parameters[1].list @moveroute_index = 0 end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Wait #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def command_106 command_wait (@params[0]) end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Frame Update #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def update # Wait if @wait_frames > 0 @wait_frames -= 1 return end # Execute Move Route Input unless @move_route.nil? loop do # Move on once move route exhausted if @moveroute_index >= (@move_route.size - 1) @move_route = nil @moveroute_index = 0 break end # Execute Input command command_move (@move_route[@moveroute_index]) @moveroute_index += 1 return if @wait_frames > 0 end end return false if @list.nil? return if !execute_command # Execute event command @index += 1 end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Command Input # button_code : the key a button corresponds to. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def command_input (button_value) $tutorial.button = case button_value when 1 then Input::DOWN # Cursor Down when 2 then Input::LEFT # Cursor Left when 3 then Input::RIGHT # Cursor Right when 4 then Input::UP # Cursor Up when 5 then Input::A # Press A when 6 then Input::B # Press B when 7 then Input::C # Press C or Enter when 8 then Input::X # Press X when 9 then Input::Y # Press Y when 10 then Input::Z # Press Z when 11 then Input::L # Press L when 12 then Input::R # Press R when 13 then Input::SHIFT # Press SHIFT when 14 then Input::CTRL # Press CTRL when 15 then Input::ALT # Press ALT when 16 then Input::F5 # Press F5 when 17 then Input::F6 # Press F6 when 18 then Input::F7 # Press F7 when 19 then Input::F8 # Press F8 when 20 then Input::F9 # Press F9 end @wait_frames = $game_variables[sTANDARD_WAIT_VARIABLE] end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Command Move #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def command_move (command) command_input (command.code) if command.code < 15 command_wait (command.parameters[0] - 1) if command.code == 15 command_input (command.code - 1) if command.code.between? (16, 21) end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Command Wait # duration : the number of frames to wait #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def command_wait (duration) # Wait Frames - Subtract Standard wait frames tacked on by previous command @wait_frames = duration end end #============================================================================== # ** Tutorial #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # This class basically interprets a common event and navigates a scene by the # codes used in that common event #============================================================================== class Tutorial #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Public Instance Variables #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ attr_reader :upd_input attr_accessor :button #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Object Initialization #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def initialize # Initialize variables @button = false @upd_input = false @active = false @tutorial_guide = Game_TutorialGuide.new @index = 0 @wait_frames = 0 end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Start # scene : the scene to guide through # common_event_id : the navigation common event #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def start (scene, common_event_id) # Get Common Event @tutorial_guide.setup ($data_common_events[common_event_id].list, 1) # Initialize Scene $scene = scene.new @active = true # Initialize Message window here because uses $game variables. if @message_window.nil? @message_window = Window_Message.new @message_window.z = 210 end end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Update #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def update @button = nil @upd_input = true @message_window.update @upd_input = false if $game_temp.message_text != nil or @message_window.visible return end @active = false if @tutorial_guide.update == false end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Active? #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def active? return @active end end #============================================================================== # ** Scene_Title #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # Summary of Changes: # aliased method - initialize #============================================================================== class Scene_Title #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Initialize #`````````````````````````````````````````````````````````````````````````` # Initialize $tutorial #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alias modalg_tutorial_scenes_ldb_init_nf4 initialize def initialize # Initialize Tutorial $tutorial = Tutorial.new # Run Original Method modalg_tutorial_scenes_ldb_init_nf4 end end #=============================================================================== # Achievements # Version 2.23 # Author game_guy #------------------------------------------------------------------------------- # Intro: # A full blown achievement system. Keep track of events your players pull off # and make them feel like they've really achieved something. Easy to setup, # plenty of options to configure it the way you want. # # Features: # -Image/Text Achievement Notification # -Show all achievements or only ones you unlocked # -Change text font, size, and color # -Option to keep track of score # -Modify notification position # -Modify text position if using an image # -Modify popup time # -Play sound when you unlock an achievement # -Set return scene, scene you go to when exiting achievements menu # -Custom queue system allowing you to display multiple achievements at a time # -Much more compatible # -Quickly open up achievements without interupting the current scene # -Block scenes from the Quick Open # -See if user has a specific achievement # -See how many achievements the player has # -Custom Icon Size Support # # Instructions: # -Go down to Begin Config and edit all of your options there. # -Instructions for creating achievements are also in the Config. # -To gain an achievement, use Awards.gain(award_id) # -Award id is set when creating awards. # -To see if a user has an award use Awards.has?(award_id) # -To see how many the player has use Awards.count # -To open up the real achievements scene use # $scene = Scene_Achievements.new # # Compatibility: # -Not tested with SDK. # -Should work with everything. # -May corrupt old save games. # # Credits: # -game_guy ~ For creating it. # -jragyn00 ~ For the new layout. # -GAX72 ~ For test achievement image. #=============================================================================== module Awards #=============================================================== # Begin Config #=============================================================== #---------------------------------------------------------------------------- # If true, it'll show all unlocked and locked achievements, else it'll just # show unlocked achievements #---------------------------------------------------------------------------- Show_All = true #---------------------------------------------------------------------------- # If Show_All is on, all locked icons will be displayed with the below # icon #---------------------------------------------------------------------------- Locked_Icon = "locked" #---------------------------------------------------------------------------- # This replaces the achievments description if Show_All is on and the # achievement is marked as hidden. #---------------------------------------------------------------------------- Hidden_Info = "This achievement is hidden. Unlock it to find out more." #---------------------------------------------------------------------------- # The scene you go to when you exit the achievements menu #---------------------------------------------------------------------------- Return_Scene = Scene_Menu #---------------------------------------------------------------------------- # If set to an Input key, it will open up a quick view window to view all # achievements, can be opened up from anywhere, and doesn't interupt the # current scene. Set to nil to turn it off. #---------------------------------------------------------------------------- Quick_Access = Input::A #---------------------------------------------------------------------------- # Add scenes here that you want quick access blocked on. Example, # Scene_Title, wouldn't want users to view achievements there. Kinda odd. #---------------------------------------------------------------------------- Block_Scenes = [scene_Title, Scene_Gameover, Scene_File, Scene_Register, Scene_Login, Scene_Servers] #---------------------------------------------------------------------------- # Keep track of score? #---------------------------------------------------------------------------- Track_Score = true #---------------------------------------------------------------------------- # Text for "Score" #---------------------------------------------------------------------------- Score_Text = "Points" #---------------------------------------------------------------------------- # Variable to store the score in. (hehe) #---------------------------------------------------------------------------- Variable_Id = 5 #---------------------------------------------------------------------------- # Font name # Place your font in string tags "font_here" # Or leave it as is to leave the default font. #---------------------------------------------------------------------------- Text_Font = Font.default_name #---------------------------------------------------------------------------- # Font color : Color.new(red, green, blue) #---------------------------------------------------------------------------- Text_Color = Color.new(255, 255, 255) #---------------------------------------------------------------------------- # Font size #---------------------------------------------------------------------------- Text_Size = 24 #---------------------------------------------------------------------------- # Where will the award show up on the screen. [X, Y] #---------------------------------------------------------------------------- Award_Place = [16, 16] #---------------------------------------------------------------------------- # Use background image behind text? #---------------------------------------------------------------------------- Use_Image = true #---------------------------------------------------------------------------- # File used to display behind the text. #---------------------------------------------------------------------------- Image_File = "award_background" #---------------------------------------------------------------------------- # Offset for text drawn over the image. [X, Y] #---------------------------------------------------------------------------- Image_Offset = [72, 0] #---------------------------------------------------------------------------- # Draw icon on notification image? #---------------------------------------------------------------------------- Draw_Icon = true #---------------------------------------------------------------------------- # Offset for icon drawn over the image. [X, Y] #---------------------------------------------------------------------------- Icon_Offset = [20, 20] #---------------------------------------------------------------------------- # Custom icon size. If you change these values, you'll have to change # Icon_Row and Icon_QuickRow. [WIDTH, HEIGHT] #---------------------------------------------------------------------------- Icon_Size = [24, 24] #---------------------------------------------------------------------------- # How many icons are displayed in one column (across). #---------------------------------------------------------------------------- Icon_Column = 10 #---------------------------------------------------------------------------- # How many icons are in one column (across) in the Quick View scene. #---------------------------------------------------------------------------- Icon_QColumn = 8 #---------------------------------------------------------------------------- # Time the "Unlocked Achievement" pop up stays on screen in frames. #---------------------------------------------------------------------------- Popup_Time = 60 #---------------------------------------------------------------------------- # Sound played when an achievement pops up. ["sound", volume, pitch] #---------------------------------------------------------------------------- Popup_Sound = ["114-Remedy02", 100, 0] Award = [] #---------------------------------------------------------------------------- # To add a new award, add a new line: # Award[id] = ["name", "description", "icon", score_amount, hidden] # score_amount must be set even if Track_Score is off # hidden must be set even if Show_All is off # If you use Show_All and you want the description of achievements to be # hidden, set hidden to true. If its false, it'll tell the name and # description. #---------------------------------------------------------------------------- Award[0] = ["New Game", "Start a new game!", "037-Item06", 10, false] Award[1] = ["Award 1", "Talk to guy 1.", "046-Skill03", 10, true] Award[2] = ["Award 2", "Talk to guy 1.", "046-Skill03", 10, false] Award[3] = ["500 Damage", "Deal 500 damage in one attack.", "004-Weapon04", 5, false] Award[4] = ["Am I rich?", "Have 1,000,000 gold at one time.", "035-Item04", 10, false] Award[5] = ["Window Shopper", "Spend 1,000,000 gold.", "032-Item01", 10, false] Award[6] = ["Longer Description", "OMGAR this has a longer description but carries on to the next line. I'm so sexy.", "033-Item02", 0, false] Award[7] = ["Log Jumper", "Jump over the log.", "048-Skill05", 5, false] Award[8] = ["Super Log Jumper", "Jump over the log 5 times", "048-Skill05", 25, false] Award[9] = ["I am hidden!", "Learn about hidden achievements.", "034-Item03", 10, true] Award[10] = ["GRRR!!!", "Brave enough to talk to a lion!", "019-Accessory04", 5, false] Award[11] = ["Invisible", "Found and talked to invisible person.", "049-Skill06", 50, false] Award[12] = ["Swiftly!", "Learn about the Quick Scene!", "020-Accessory05", 100, false] #=============================================================== # End Config #=============================================================== def self.gain(id) return if $game_system.awards.include?(id) if Awards::Award[id] != nil $game_system.gain_award(id) end end def self.has?(id) return $game_system.awards.include?(id) end def self.count return $game_system.awards.size end end $gg_achievements = 2.23 #=============================================================================== # Sprite_Award #------------------------------------------------------------------------------- # Draws unlocked achievement. #=============================================================================== class Sprite_Award < Sprite def initialize(award) super(nil) @award = award self.bitmap = Bitmap.new(1, 1) self.bitmap.font.size = Awards::Text_Size @text_width = self.bitmap.text_size(@award[0]).width + 8 @text_height = self.bitmap.text_size(@award[0]).height self.bitmap.dispose if Awards::Use_Image @pic = RPG::Cache.picture(Awards::Image_File) @pic_width = @pic.width > @text_width ? @pic.width : @text_width @pic_height = @pic.height > @text_height ? @pic.height : @text_height self.bitmap = Bitmap.new(@pic_width, @pic_height) if Awards::Draw_Icon @icon = RPG::Cache.icon(@award[2]) end else self.bitmap = Bitmap.new(@text_width, @text_height) end self.bitmap.font.color = Awards::Text_Color self.bitmap.font.name = Awards::Text_Font self.bitmap.font.size = Awards::Text_Size self.z = 20000 self.x = Awards::Award_Place[0] self.y = Awards::Award_Place[1] refresh end def refresh self.bitmap.clear x = 0 y = 0 if @pic != nil self.bitmap.blt(0, 0, @pic, Rect.new(0, 0, @pic.width, @pic.height)) x = Awards::Image_Offset[0] y = Awards::Image_Offset[1] if @icon != nil icon_off = Awards::Icon_Offset self.bitmap.blt(icon_off[0], icon_off[1], @icon, Rect.new(0, 0, Awards::Icon_Size[0], Awards::Icon_Size[1])) end end text = @award[0] if @text_width + x > self.bitmap.width text = self.bitmap.slice_text(@award[0], self.bitmap.width - x) text.each_index {|i| self.bitmap.draw_text(x, y + i * @text_height + 4, @text_width, @text_height, text[i])} else self.bitmap.draw_text(x, y, @text_width, @text_height, text) end end def dispose super if self.bitmap != nil self.bitmap.dispose end end end #=============================================================================== # Graphics #------------------------------------------------------------------------------- # **added method to control and draw all queued achievements. #=============================================================================== module Graphics class << self alias gg_upd_awards_queue_lat update end def self.update @frame = 0 if @frame == nil if $game_system != nil && $game_system.queue.size > 0 && @frame < 1 award = Awards::Award[$game_system.queue[0]] if award != nil @sprite = Sprite_Award.new(award) @frame = Awards::Popup_Time Audio.se_play("Audio/SE/#{Awards::Popup_Sound[0]}", Awards::Popup_Sound[1], Awards::Popup_Sound[2]) end end if @frame > 0 @frame -= 1 if @frame < 1 @sprite.dispose $game_system.queue.shift end end gg_upd_awards_queue_lat end end #=============================================================================== # Game_System #------------------------------------------------------------------------------- # **modded to keep track of queued and obtained achievements. #=============================================================================== class Game_System attr_accessor :awards attr_accessor :queue alias gg_init_awards_sys_lat initialize def initialize @awards = [] @queue = [] gg_init_awards_sys_lat end def gain_award(id) return if @awards.include?(id) || Awards::Award[id] == nil if Awards::Track_Score $game_variables[Awards::Variable_Id] += Awards::Award[id][3] end @awards.push(id) @queue.push(id) end end #=============================================================================== # Bitmap #=============================================================================== class Bitmap def slice_text(text, width) words = text.split(' ') return words if words.size == 1 result, current_text = [], words.shift words.each_index {|i| if self.text_size("#{current_text} #{words[i]}").width > width result.push(current_text) current_text = words[i] else current_text = "#{current_text} #{words[i]}" end result.push(current_text) if i >= words.size - 1} return result end end #=============================================================================== # Window_QuickHelp #=============================================================================== class Window_QuickHelp < Window_Base def initialize super(64, 32, 512, 160) self.contents = Bitmap.new(width - 32, height - 32) self.z = 10000 end def set_award(award) @award = award refresh end def refresh self.contents.clear self.contents.draw_text(0, 0, 512 / 2, 32, @award[0][0]) if Awards::Track_Score text = "#{@award[0][3]} #{Awards::Score_Text}" self.contents.draw_text(0, 0, 512 - 32, 32, text, 2) text = "Total #{Awards::Score_Text}: #{$game_variables[Awards::Variable_Id]}" self.contents.draw_text(0, 32, 512 - 32, 32, text, 2) end text = self.contents.slice_text(@award[0][1], 512 - 32) if @award[0][4] && !$game_system.awards.include?(@award[1]) text = self.contents.slice_text(Awards::Hidden_Info, 512 - 32) end text.each_index {|i| self.contents.draw_text(0, 64 + i * 32, 512 - 32, 32, text[i])} end end #=============================================================================== # Window_QuickAwards #=============================================================================== class Window_QuickAwards < Window_Selectable def initialize super(64, 128 + 64, 512, 320 - 64) @column_max = Awards::Icon_QColumn self.z = 10000 refresh self.index = 0 end def item return @data[self.index] end def refresh if self.contents != nil self.contents.dispose self.contents = nil end @data = [] $game_system.awards.each {|i| @data.push([Awards::Award[i], i])} if Awards::Show_All @data = [] @locked = [] @unlocked = [] Awards::Award.each_index {|i| if Awards::Award[i] != nil if $game_system.awards.include?(i) @unlocked.push([Awards::Award[i], i]) else @locked.push([Awards::Award[i], i]) end end} @unlocked.each {|i| @data.push(i)} @locked.each {|i| @data.push(i)} end @item_max = @data.size if @item_max > 0 self.contents = Bitmap.new(width - 32, row_max * Awards::Icon_Size[1]) for i in 0...@item_max draw_item(i) end end end def draw_item(index) item = @data[index] width = Awards::Icon_Size[0] < 32 ? 32 : Awards::Icon_Size[0] height = Awards::Icon_Size[1] < 32 ? 32 : Awards::Icon_Size[1] x = 4 + index % @column_max * (width + 32) y = index / @column_max * (height + 4) rect = Rect.new(x, y, self.width / @column_max - 32, height) self.contents.fill_rect(rect, Color.new(0, 0, 0, 0)) if $game_system.awards.include?(item[1]) bitmap = RPG::Cache.icon(item[0][2]) else bitmap = RPG::Cache.icon(Awards::Locked_Icon) end self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, Awards::Icon_Size[0], Awards::Icon_Size[1])) end def update_help @help_window.set_award(self.item) end def update_cursor_rect if @index < 0 self.cursor_rect.empty return end row = @index / @column_max if row < self.top_row self.top_row = row end if row > self.top_row + (self.page_row_max - 1) self.top_row = row - (self.page_row_max - 1) end cursor_width = Awards::Icon_Size[0] < 32 ? 32 : Awards::Icon_Size[0] cursor_height = Awards::Icon_Size[1] < 32 ? 32 : Awards::Icon_Size[1] x = @index % @column_max * (cursor_width + 32) y = @index / @column_max * (Awards::Icon_Size[1] + 4) - self.oy self.cursor_rect.set(x, y, cursor_width, cursor_height + 4) end end #=============================================================================== # QScene_Awards #=============================================================================== class QScene_Awards def initialize @awards = Window_QuickAwards.new @help = Window_QuickHelp.new @awards.help_window = @help loop do Graphics.update Input.update_old update if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) break end end @awards.dispose @help.dispose end def update @awards.update @help.update end end #=============================================================================== # Input #=============================================================================== module Input class << self alias gg_init_quick_awards_lat update end def self.update_old gg_init_quick_awards_lat end def self.check_blocked Awards::Block_Scenes.each {|s| return true if $scene.is_a?(s)} return false end def self.update if Awards::Quick_Access != nil && Input.trigger?(Awards::Quick_Access) && @scene == nil && !self.check_blocked if defined?(RMXOS) && $game_temp.chat_active == true return gg_init_quick_awards_lat end $game_system.se_play($data_system.decision_se) @scene = QScene_Awards.new @scene = nil end gg_init_quick_awards_lat end end #=============================================================================== # Window_Award #=============================================================================== class Window_Award < Window_Base def initialize super(0, 320, 640, 160) self.contents = Bitmap.new(width - 32, height - 32) end def set_award(award) @award = award refresh end def refresh self.contents.clear self.contents.draw_text(0, 0, 640 / 2, 32, @award[0][0]) if Awards::Track_Score text = "#{@award[0][3]} #{Awards::Score_Text}" self.contents.draw_text(0, 0, 640 - 32, 32, text, 2) text = "Total #{Awards::Score_Text}: #{$game_variables[Awards::Variable_Id]}" self.contents.draw_text(0, 32, 640 - 32, 32, text, 2) end text = self.contents.slice_text(@award[0][1], 640 - 32) if @award[0][4] && !$game_system.awards.include?(@award[1]) text = self.contents.slice_text(Awards::Hidden_Info, 640 - 32) end text.each_index {|i| self.contents.draw_text(0, 64 + i * 32, 640 - 32, 32, text[i])} end end #=============================================================================== # Window_Awards #=============================================================================== class Window_Awards < Window_Selectable def initialize super(0, 0, 640, 320) @column_max = Awards::Icon_Column refresh self.index = 0 end def item return @data[self.index] end def refresh if self.contents != nil self.contents.dispose self.contents = nil end @data = [] $game_system.awards.each {|i| @data.push([Awards::Award[i], i])} if Awards::Show_All @data = [] @locked = [] @unlocked = [] Awards::Award.each_index {|i| if Awards::Award[i] != nil if $game_system.awards.include?(i) @unlocked.push([Awards::Award[i], i]) else @locked.push([Awards::Award[i], i]) end end} @unlocked.each {|i| @data.push(i)} @locked.each {|i| @data.push(i)} end @item_max = @data.size if @item_max > 0 height = Awards::Icon_Size[1] < 32 ? 32 : Awards::Icon_Size[1] self.contents = Bitmap.new(width - 32, row_max * height) for i in 0...@item_max draw_item(i) end end end def draw_item(index) item = @data[index] width = Awards::Icon_Size[0] < 32 ? 32 : Awards::Icon_Size[0] height = Awards::Icon_Size[1] < 32 ? 32 : Awards::Icon_Size[1] x = 4 + index % @column_max * (width + 32) y = index / @column_max * (height + 4) rect = Rect.new(x, y, self.width / @column_max - 32, Awards::Icon_Size[1]) self.contents.fill_rect(rect, Color.new(0, 0, 0, 0)) if $game_system.awards.include?(item[1]) bitmap = RPG::Cache.icon(item[0][2]) else bitmap = RPG::Cache.icon(Awards::Locked_Icon) end self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, Awards::Icon_Size[0], Awards::Icon_Size[1])) end def update_help @help_window.set_award(self.item) end def update_cursor_rect if @index < 0 self.cursor_rect.empty return end row = @index / @column_max if row < self.top_row self.top_row = row end if row > self.top_row + (self.page_row_max - 1) self.top_row = row - (self.page_row_max - 1) end cursor_width = Awards::Icon_Size[0] < 32 ? 32 : Awards::Icon_Size[0] cursor_height = Awards::Icon_Size[1] < 32 ? 32 : Awards::Icon_Size[1] x = @index % @column_max * (cursor_width + 32) y = @index / @column_max * (cursor_height + 4) - self.oy self.cursor_rect.set(x, y, cursor_width, cursor_height) end end #=============================================================================== # Scene_Achievements #=============================================================================== class Scene_Achievements def main @help = Window_Award.new @awards = Window_Awards.new @awards.help_window = @help Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end Graphics.freeze @help.dispose @awards.dispose end def update @awards.update @help.update if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) $scene = Awards::Return_Scene.new return end end end http://www.sendspace.com/file/kh6cqv (Zeriab's Quest Book)(Or something similar) http://www.mediafire.com/?8bpara0jpxmuv8u (Elemental Gems) Annnd I think that's just about everything (: Whoever does this is a superhero or something XD Thankkks Edited October 30, 2011 by Tenoukii Share this post Link to post Share on other sites
Kiriashi 117 Report post Posted October 30, 2011 What exactly do you want in the Achievements section? 'Cause selectable options should be in one row or column, and I don't see any window that's the size of that section. And use a 640x480 (actual size) layout for your mock up. : / Share this post Link to post Share on other sites
Tenoukii 0 Report post Posted October 30, 2011 (edited) What exactly do you want in the Achievements section? 'Cause selectable options should be in one row or column, and I don't see any window that's the size of that section. I was thinking of just having the icon, but now I'm thinking that just having the icon would look a bit weird. The best way I can see of having it would be a selectable options section. I'll redo the picture to the actual size (on photoshop instead of paint XD) and make it a bit clearer what I mean, although I'm not to sure about the sizing of the little sections so that'll be a bit of a random guess (: Right-e-o: The green menu only appears when you choose Backpack. I think that just about covers everything. Except for the book section.. don't worry about that bit. I don't need that in there anymore :) Edited October 30, 2011 by Tenoukii Share this post Link to post Share on other sites
Kiriashi 117 Report post Posted October 30, 2011 Alright well that pretty much clears things up I think. So, my experience with RGSS is less than stellar -- in other words I've just started TBH. So why am I replying to your request? You gotta start somewhere. Chances are someone else can and probably will do this for you before me, but I'll do my best and try, So basically I'm saying I can't promise anything, but I'll try. xD Share this post Link to post Share on other sites
Bigace360 38 Report post Posted October 31, 2011 (edited) I can take the request, but I won't start until wednesday due to an exam on tuesday. Here's some images from my CMS I made for my game: Extra's: Any type of color schemes? Want a background? Whats basics & books? Edited October 31, 2011 by bigace Share this post Link to post Share on other sites
Tenoukii 0 Report post Posted October 31, 2011 Basic items is just stuff like your potions etc, Quest is the items you collect on your quest that can't be sold/given away etc, Gems is the gems you attach to weapons. (This should be quite simple to set the items as Basic/Quest/Gems aswell pleeeease :]) Except for the book section.. don't worry about that bit. I don't need that in there anymore And for the colour scheme, just the same as the set windowskin with no background. Thankyou :) Share this post Link to post Share on other sites
Bigace360 38 Report post Posted November 5, 2011 (edited) I forgot to ask but you don't want the Scene_Skill? Also the Hunger/Thirst script and all four party members hunger bars instead of just one, I'm not sure what you want me to do here. I can ask the original script on this part, but I'll just leave it out for now. Edit: Just to let you know that, Hunger script is made for Scene_Map not Scene_Menu. You'll have to ask ForeverZer0 for a Scene_Menu version, because when I put it gives like 4 bars for all four members. Edited November 5, 2011 by bigace Share this post Link to post Share on other sites
Tenoukii 0 Report post Posted November 5, 2011 Ah I forgot about the skills bit :/ hmm.. not sure where to put that. What do you think? And I thought that was the one I used before.. guess not XD urmm.. Just put a steps count thing in there then XD Thanks Share this post Link to post Share on other sites
Bigace360 38 Report post Posted November 8, 2011 Progress Report Just in case you were wonder what was going on. I've finally finished the Both item windows and the status windows. Next is the Skills and equipment. I'll have a talk with you about that Achievement and Options when I'm done with these. 45% Done. Share this post Link to post Share on other sites
Bigace360 38 Report post Posted November 10, 2011 Oh ya I forgot to ask, why did you post the Tutorial Script in your OP. What was I supposed to do with that? Share this post Link to post Share on other sites
Tenoukii 0 Report post Posted November 13, 2011 Ah thats awesome! :) And the Tutorial Script was just to make sure its compatible with it, I wasn't sure whether it'd pose a problem if I changed menu system and tried to make a tutorial that uses the menu (: Share this post Link to post Share on other sites
Bigace360 38 Report post Posted November 14, 2011 (edited) Okay I'm very confused on what you need down on the Achievements, so you want the list of achivements on the side.Then when the player clicks achievements, the menu takes them to the side bar where highlighting over the name shows whats the meaning of that certain achievement. Did I get that right? Also did you still want the quest system as you had it in the OP but took it out in your second post without explaination? Edited November 14, 2011 by bigace Share this post Link to post Share on other sites
Tenoukii 0 Report post Posted November 16, 2011 Hey! First off, sorry about the slow slow replies... A million other things going on and I just completely forget about this XD Secondly, the achievements: 1. Player clicks the Achievements option in the top bar 2. Highlighty clicky thingy highlights the achieved achievements 3. Player clicks on an achievement and details are shown in the main window And the quests is still there... you may have missed it but its in the green section :) I know that the Achievements bit may take a bit of work, but I'm in no hurry whatsoever :) don't worry about getting it done ASAP Thankyouu Share this post Link to post Share on other sites
Bigace360 38 Report post Posted November 16, 2011 Hey! First off, sorry about the slow slow replies... A million other things going on and I just completely forget about this XD Secondly, the achievements: 1. Player clicks the Achievements option in the top bar 2. Highlighty clicky thingy highlights the achieved achievements 3. Player clicks on an achievement and details are shown in the main window And the quests is still there... you may have missed it but its in the green section I know that the Achievements bit may take a bit of work, but I'm in no hurry whatsoever don't worry about getting it done ASAP Thankyouu Okay cool, thx for the reply I was just working on my Battle system in the mean time so. I guess I need to put my glasses back on as I don't know how I missed the quest script. Share this post Link to post Share on other sites