-
Content Count
790 -
Joined
-
Last visited
-
Days Won
4
Content Type
Profiles
Forums
Blogs
Downloads
Calendar
Gallery
Everything posted by Jesse66126
-
I understand how it works, but everytime I try to fix it so Sophia has to be in position one,I get all sorts of errors lol. I think I put the code in right,but it still lets me switch her out! Also I need to know how to keep people not yet in the party from getting exp. and being selectable or even visible! Kind of Spoils the game lol If you want to get it a try,here it is. You have to put a face picture under "Characters" labeled the same as your actor's name with a "_face" on the end. Example: Sophia_face #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:= :=:=:=:= # Easy Party Switcher by Blizzard # Version 2.11b # Type: Party Changing System # Date: 21.05.2006 # Date v1.1: 25.05.2006 # Date v1.2b: 27.05.2006 # Date v1.5b: 3.11.2006 # Date v1.51b: 29.11.2006 # Date v1.52b: 6.12.2006 # Date v1.7b: 23.2.2007 # Date v1.8b: 30.4.2007 # Date v2.0b: 7.8.2007 # Date v2.1b: 24.8.2007 # Date v2.11b: 24.9.2007 #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:= # # Special Thanks to: # # Zeriab for pointing out a few glitches and shortening the code in an # earlier version. =D # # # IMPORTANT NOTE: # # Be sure to set the MAX_PARTY to the maximum size of your party. There is # already a preconfiguration of 4. # # # Compatibility: # # 98% compatible with SDK v1.x. 90% compatible with SDK 2.x. Can cause # incompatibility issued with other Party Change Systems. WILL corrupt your # old savegames. # # # Features: # # - set party members for "not _available" (shown transparent in the reserve) # - remove party members from the reserve list ("disabled_for_party") # - set party members, who MUST be in the party (shown transparent in the # current party, "must_be_in_party") # - set up forced positions for party members # - set up forced party size # - option either to wipe the party (for multi-party use) or only remove # every member (except 1) from the party. # - easy to use and easy to switch party members # - also supports small parties (2 or 3 members) and large parties (5 or # more) # - uses facesets optionally # # v1.5b: # - better, shorter and more efficient code (less memory use, less CPU use) # - fixed potential bugs # # v1.7b: # - improved coding # - facesets now optional # - no extra bitmap files needed anymore # - works now with Tons of Add-ons # # v1.8b: # - added "forced position" # - added "forced party size" # # v2.0b: # - fixed the bug where you could empty the party... again... # - fixed the bug that appeared when you pressed SHIFT # - added option to allow an empty party # - added "EXP for party members in reserve" option # - made the forced_size for party work more convenient # - improved coding # - slightly decreased lag # # v2.1b: # - fixed a bug # - improved coding # - rewritten conditions using classic syntax to avoid RGSS conditioning bug # - now can serve as enhancement for CP Debug System # # v2.11b: # - improved coding and performance # # # How to use: # # To call this script, make a "Call script" command in an event. # # 1. Syntax: $scene = Scene_PartySwitcher.new # No extra feature will be applied and you can switch the party as you # wish. # # 2. Syntax: $scene = Scene_PartySwitcher.new(XXX) # You can replace XXX for 1 to remove all party members except one (either # one, who must be in the party or a random one), or replace XXX with 2, # to cause a wipe party. Wiping a party will disable the of the current # members and a NEW party of the remaining members must be formed. If you # replace it with 3, the current party configuration will be stored for a # later fast switch-back. If XXX is 10, all actors will be available for # party switching no matter if the are "not_available" or # "disabled_for_party". This feature if used by the CP Debug System. No # faceset will be used in this case for a more convenient working. # # 3. Syntax: $scene = Scene_PartySwitcher.new(XXX, 1) # You can use the XXX as described above or just set it to 0 to disable # it. Also the "1" in the syntax will reset any disabled_for_party and is # made to be used after multi-party use. # # 4. Syntax: $scene = Scene_PartySwitcher.new(XXX, YYY, ZZZ) # You can replace ZZZ with 1 to replace the party with a stored one AND # store the current or replace it with 2 to replace the party with a # stored one, but without storing the current. USE THIS ONLY IF YOU ASSUME # TO HAVE A STORED PARTY READY! You can simply test if there is a store # party by putting this code into the conditional branch script: # # $game_system.stored_party != nil # # This syntax will not open the Party Switcher and it will override the # commands XXX and YYY, so you can replace these with any number. # # Character faces go into the "Characters" folder and they have the same name # as the character spritesets have with _face added # # Example: # # sprite - Marlen.png # face - Marlen_face.png # # Other syntaxes: # $game_actors[iD].not_available = true/false # $game_actors[iD].disabled_for_party = true/false # $game_actors[iD].must_be_in_party = true/false # $game_actors[iD].forced_position = nil/0/1/2/... # OR # $game_party.actors[POS].not_available = true/false # $game_party.actors[POS].disabled_for_party = true/false # $game_party.actors[POS].must_be_in_party = true/false # $game_party.actors[POS].forced_position = nil/0/1/2/... # # ID - the actor's ID in the database # POS - the actor's position in the party (STARTS FROM 0, not 1!) # # not_available # - will disable the possibility of an already unlocked character to be in # the current party # # disabled_for_party # - will cause the character NOT to appear in the party switch screen at all # # must_be_in_party # - will cause the character to be automatically moved into the current party # and he also cannot be put in the reserve # # forced_position # - will enforce the player to be at a specific position in the party, set # this value to nil to disable this feature, use it in combination with # must_be_in_party and $game_party.forced_size or you might experience # bugs, # # $game_party.forced_size = nil/0/1/2/... # # Using this syntax will enforce a specific party size. The EPS won't exit # until this size is filled up or there are no more in the reserve. EPS will # automatically "correct" this number if there are not enough characters in # the reserve to fill up a party of forced_size. Set this value to nil to # disable the size requirement. Note that the actor DO NOT HAVE TO be set in # normal order without any empty position like in version 1.x. # # # Additional note: # # For your own sake, do not apply the attribute "must_be_in_party" to a # character at the same time with "not_available" or "disabled_for_party" as # this WILL disrupt your party and party switch system. Use "forced_position" # together with "must_be_in_party" to avoid bugs. Be careful when using # "forced_position" with "$game_party.forced_size". Add actors at the very # end to be sure the player can't put others after them if the "forced_size" # is smaller than the maximum party size. # # # If you find any bugs, please report them here: # [url="http://www.chaosproject.co.nr"]http://www.chaosproject.co.nr[/url] #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:= #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: # START Conficuration #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: # how many party members do you use MAX_PARTY = 4 # set to true to use facesets instead of spritesets FACESETS = true # allows a party with 0 members ALLOW_EMPTY_PARTY = false # gives all other characters EXP (specify in %) EXP_RESERVE = 50 # gives "not available" characters EXP (specify in %) EXP_NOT_AVAILABLE = 0 # gives "disabled for party" characters EXP (specify in %) EXP_DISABLED_FOR_PARTY = 0 #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: # END Conficuration #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: # recognition variable for plug-ins $easy_party_switcher = true #============================================================================== # Game_Actor #============================================================================== class Game_Actor < Game_Battler attr_accessor :must_be_in_party attr_accessor :disabled_for_party attr_accessor :not_available attr_accessor :forced_position alias setup_eps_later setup def setup(actor_id) setup_eps_later(actor_id) @must_be_in_party = @disabled_for_party = @not_available = false end end #============================================================================== # Game_System #============================================================================== class Game_System attr_accessor :stored_party end #============================================================================== # Game_Party #============================================================================== class Game_Party attr_accessor :actors attr_accessor :forced_size def any_forced_position return (@actors.any? {|actor | actor != nil && actor.forced_position != nil}) end end #============================================================================== # Window_Base #============================================================================== class Window_Base alias draw_actor_graphic_eps_later draw_actor_graphic def draw_actor_graphic(actor, x, y) if actor != nil && actor.character_name != '' classes = [Window_Current, Window_Reserve, Window_HelpStatus] if FACESETS && !$all_available && classes.include?(self.class) draw_actor_face_eps(actor, x, y) else if classes.include?(self.class) bitmap = RPG::Cache.character(actor.character_name, actor.character_hue) x += bitmap.width / 8 + 24 y += bitmap.height / 4 + 16 end draw_actor_graphic_eps_later(actor, x, y) end end end def draw_actor_face_eps(actor, x, y) if $tons_version == nil || $tons_version < 3.71 || !FACE_HUE hue = 0 else hue = actor.character_hue end bitmap = RPG::Cache.character("#{actor.character_name}_face", hue) src_rect = Rect.new(0, 0, bitmap.width, bitmap.height) if actor.not_available || actor.must_be_in_party self.contents.blt(x, y, bitmap, src_rect, 128) else self.contents.blt(x, y, bitmap, src_rect) end end end #============================================================================== # Window_BattleResult #============================================================================== class Window_BattleResult attr_reader :exp end #============================================================================== # Window_Current #============================================================================== class Window_Current < Window_Selectable def initialize super(0, 0, 240 + 32, (MAX_PARTY > 4 ? 480 : MAX_PARTY * 120)) self.contents = Bitmap.new(width - 32, 448 + (MAX_PARTY-4) * 120) @item_max = MAX_PARTY if $fontface != nil self.contents.font.name = $fontface elsif $defaultfonttype != nil self.contents.font.name = $defaultfonttype end self.contents.font.size = 24 refresh self.active, self.index = false, -1 end def refresh self.contents.clear $game_party.actors.each_index {|i| if $game_party.actors[i] != nil draw_actor_graphic($game_party.actors[i], 4, i*120+4) draw_actor_name($game_party.actors[i], 152, i*120-4) draw_actor_level($game_party.actors[i], 88, i*120-4) draw_actor_hp($game_party.actors[i], 88, i*120+28) draw_actor_sp($game_party.actors[i], 88, i*120+60) end} end def setactor(index_1, index_2) $game_party.actors[index_2], $game_party.actors[index_1] = $game_party.actors[index_1], $game_party.actors[index_2] refresh end def getactor(index) return $game_party.actors[index] end def update_cursor_rect if @index < 0 self.cursor_rect.empty return end row = @index / @column_max self.top_row = row if row < self.top_row self.top_row = row - (page_row_max - 1) if row > top_row + (page_row_max - 1) y = (@index / @column_max) * 120 - self.oy self.cursor_rect.set(0, y, self.width - 32, 88) end def clone_cursor row = @index / @column_max self.top_row = row if row < self.top_row self.top_row = row - (page_row_max - 1) if row > top_row + (page_row_max - 1) y = (@index / @column_max) * 120 src_rect = Rect.new(0, 0, self.width, 88) bitmap = Bitmap.new(self.width-32, 88) bitmap.fill_rect(0, 0, self.width-32, 88, Color.new(255, 255, 255, 192)) bitmap.fill_rect(2, 2, self.width-36, 84, Color.new(255, 255, 255, 80)) self.contents.blt(0, y, bitmap, src_rect, 192) end def top_row return self.oy / 116 end def top_row=(row) self.oy = (row % row_max) * 120 end def page_row_max return (self.height / 120) end end #============================================================================== # Window_Reserve #============================================================================== class Window_Reserve < Window_Selectable attr_reader :actors def initialize super(0, 0, 368, 320) setup @column_max, rows = 3, @item_max / @column_max self.contents = Bitmap.new(width - 32, (rows >= 3 ? rows * 96 : height - 32)) if $fontface != nil self.contents.font.name = $fontface elsif $defaultfonttype != nil self.contents.font.name = $defaultfonttype end self.contents.font.size = 24 self.active, self.index = false, -1 refresh end def setup @actors = [] (1...$data_actors.size).each {|i| unless $game_party.actors.include?($game_actors[i]) || $game_actors[i].disabled_for_party && !$all_available @actors.push($game_actors[i]) end} @item_max = (@actors.size + $game_party.actors.size + 3) / 3 * 3 end def refresh self.contents.clear @actors.each_index {|i| draw_actor_graphic(@actors[i], i%3*112+16, i/3*96+8)} end def getactor(index) return @actors[index] end def get_number return (@actors.find_all {|actor| actor != nil}).size if $all_available return (@actors.find_all {|actor| actor != nil && !actor.not_available}).size end def setactor(index_1, index_2) @actors[index_1], @actors[index_2] = @actors[index_2], @actors[index_1] refresh end def setparty(index_1, index_2) @actors[index_1], $game_party.actors[index_2] = $game_party.actors[index_2], @actors[index_1] refresh end def update_cursor_rect if @index < 0 self.cursor_rect.empty return end row = @index / @column_max self.top_row = row if row < self.top_row self.top_row = row - (page_row_max-1) if row > top_row + (page_row_max-1) x, y = (@index % @column_max)*112 + 8, (@index / @column_max)*96 - self.oy self.cursor_rect.set(x, y, 96, 96) end def clone_cursor row = @index / @column_max self.top_row = row if row < self.top_row self.top_row = row - (page_row_max - 1) if row > top_row + (page_row_max - 1) x, y = (@index % @column_max) * 112 + 8, (@index / @column_max) * 96 src_rect = Rect.new(0, 0, 96, 96) bitmap = Bitmap.new(96, 96) bitmap.fill_rect(0, 0, 96, 96, Color.new(255, 255, 255, 192)) bitmap.fill_rect(2, 2, 92, 92, Color.new(255, 255, 255, 80)) self.contents.blt(x, y, bitmap, src_rect, 192) end def top_row return self.oy / 96 end def top_row=(row) row = row % row_max self.oy = row * 96 end def page_row_max return (self.height - 32) / 96 end end #============================================================================== # Window_HelpStatus #============================================================================== class Window_HelpStatus < Window_Base def initialize(gotactor) super(0, 0, 400 - 32, 160) self.contents = Bitmap.new(width - 32, height - 32) if $fontface != nil self.contents.font.name = $fontface elsif $defaultfonttype != nil self.contents.font.name = $defaultfonttype end self.contents.font.size = 24 refresh(gotactor) self.active = false end def refresh(actor) self.contents.clear if actor != nil self.contents.font.color = normal_color if actor.not_available && !$all_available self.contents.draw_text(8, 0, 160, 32, 'not available', 0) end draw_actor_graphic(actor, 0, 40) draw_actor_name(actor, 160, 32) draw_actor_level(actor, 96, 32) draw_actor_hp(actor, 96, 64) draw_actor_sp(actor, 96, 96) end end end #============================================================================== # Window_Warning #============================================================================== class Window_Warning < Window_Base def initialize(mode, members) super(0, 0, 320, 96) self.contents = Bitmap.new(width - 32, height - 32) if $fontface != nil self.contents.font.name = $fontface elsif $defaultfonttype != nil self.contents.font.name = $defaultfonttype end self.contents.font.size = 24 self.x, self.y, self.z = 320 - width/2, 240 - height/2, 9999 self.contents.font.color = normal_color if mode self.contents.draw_text(0, 0, 288, 32, 'You need a party', 1) num = [$game_party.forced_size, members + $game_party.actors.nitems].min self.contents.draw_text(0, 32, 288, 32, "of #{num} members!", 1) else self.contents.draw_text(0, 0, 288, 32, 'You cannot remove', 1) self.contents.draw_text(0, 32, 288, 32, 'the last party member!', 1) end end end #============================================================================== # Scene_PartySwitcher #============================================================================== class Scene_PartySwitcher def initialize(wipe_party = 0, reset = 0, store = 0) @wipe_party, @store, @reset = store, reset, wipe_party @current_window_temp = @reserve_window_temp = 0 @scene_flag, @temp_window = false, '' end def main if @store != 0 swap_parties $scene = Scene_Map.new $game_player.refresh return end case @wipe_party when 1 then setup_forced_party when 2 then wipe_party when 3 $game_system.stored_party = $game_party.actors wipe_party when 10 then $all_available = true end if @reset == 1 (1...$data_actors.size).each {|i| $game_actors[i].not_available = false} end @current_window = Window_Current.new @current_window.index, @current_window.active = 0, true @reserve_window = Window_Reserve.new @reserve_window.x, @reserve_window.y = 272, 160 @help_window = Window_HelpStatus.new(@reserve_window.getactor(0)) @help_window.x = 240 + 32 Graphics.transition loop do Graphics.update Input.update update break if $scene != self end Graphics.freeze [@current_window, @reserve_window, @help_window].each {|win| win.dispose} $game_party.actors.compact! $game_player.refresh $all_available = nil end def update check = @reserve_window.index if @reserve_window.active reserve_update @reserve_window.update end if check != @reserve_window.index if @reserve_window.active actor = @reserve_window.getactor(@reserve_window.index) elsif @current_window.active actor = @reserve_window.getactor(@reserve_window_temp) end @help_window.refresh(actor) if ['', 'Current'].include?(@temp_window) end current_update if @current_window.active if Input.trigger?(Input::B) if @scene_flag $game_system.se_play($data_system.cancel_se) @scene_flag, @temp_window = false, '' if @reserve_window.active actor = @reserve_window.getactor(@reserve_window.index) elsif @current_window.active actor = @reserve_window.getactor(@reserve_window_temp) end @help_window.refresh(actor) if ['', 'Current'].include?(@temp_window) [@current_window, @reserve_window].each {|win| win.refresh} return end if $game_party.forced_size != nil && ($game_party.forced_size < $game_party.actors.nitems || ($game_party.forced_size > $game_party.actors.nitems && @reserve_window.get_number != 0)) $game_system.se_play($data_system.buzzer_se) warning(true) return end $game_system.se_play($data_system.cancel_se) $scene = Scene_Map.new elsif Input.trigger?(Input::A) if $game_party.any_forced_position $game_system.se_play($data_system.buzzer_se) else $game_system.se_play($data_system.decision_se) $game_party.actors.compact! @current_window.refresh end end end def current_update @current_window.update if Input.trigger?(Input::C) actor = @current_window.getactor(@current_window.index) if actor != nil && actor.forced_position != nil $game_system.se_play($data_system.buzzer_se) else if @scene_flag switch_members else $game_system.se_play($data_system.decision_se) @scene_flag, @temp_window = true, 'Current' @temp_actor_index = @current_window.index @current_window.clone_cursor end end elsif Input.trigger?(Input::RIGHT) $game_system.se_play($data_system.cursor_se) @current_window.active = false @reserve_window.active = true @current_window_temp = @current_window.index actor = @reserve_window.getactor(@reserve_window_temp) @current_window.index = -1 @reserve_window.index = @reserve_window_temp @help_window.refresh(actor) unless @scene_flag end end def reserve_update if Input.trigger?(Input::C) if @scene_flag switch_members else $game_system.se_play($data_system.decision_se) @scene_flag, @temp_window = true, 'Reserve' @temp_actor_index = @reserve_window.index @reserve_window.clone_cursor end elsif @reserve_window.index % 3 == 0 && Input.repeat?(Input::LEFT) $game_system.se_play($data_system.cursor_se) @reserve_window.active = false @current_window.active = true @reserve_window_temp = @reserve_window.index @reserve_window.index = -1 @current_window.index = @current_window_temp end end def switch_members if @temp_window == 'Reserve' && @reserve_window.active @reserve_window.setactor(@temp_actor_index, @reserve_window.index) actor = @reserve_window.getactor(@reserve_window.index) @help_window.refresh(actor) end if @temp_window == 'Current' && @current_window.active @current_window.setactor(@temp_actor_index, @current_window.index) end if @temp_window == 'Reserve' && @current_window.active actor1 = @current_window.getactor(@current_window.index) actor2 = @reserve_window.getactor(@temp_actor_index) if call_warning?(@current_window.index, actor2) if actor1 != nil && actor1.must_be_in_party $game_system.se_play($data_system.buzzer_se) @scene_flag, @temp_window = false, '' actor = @reserve_window.getactor(@reserve_window_temp) [@current_window, @reserve_window].each {|win| win.refresh} @help_window.refresh(actor) return end if actor2 != nil && actor2.not_available && !$all_available $game_system.se_play($data_system.buzzer_se) @scene_flag, @temp_window = false, '' actor = @reserve_window.getactor(@reserve_window_temp) [@current_window, @reserve_window].each {|win| win.refresh} @help_window.refresh(actor) return end @reserve_window.setparty(@temp_actor_index, @current_window.index) @current_window.refresh actor = @reserve_window.getactor(@reserve_window_temp) @help_window.refresh(actor) else warning end end if @temp_window == 'Current' && @reserve_window.active actor1 = @current_window.getactor(@temp_actor_index) actor2 = @reserve_window.getactor(@reserve_window.index) if call_warning?(@temp_actor_index, actor2) if actor1 != nil && actor1.must_be_in_party $game_system.se_play($data_system.buzzer_se) @scene_flag, @temp_window = false, '' actor = @reserve_window.getactor(@reserve_window.index) [@current_window, @reserve_window].each {|win| win.refresh} @help_window.refresh(actor) return end if actor2 != nil && actor2.not_available && !$all_available $game_system.se_play($data_system.buzzer_se) @scene_flag, @temp_window = false, '' actor = @reserve_window.getactor(@reserve_window.index) [@current_window, @reserve_window].each {|win| win.refresh} @help_window.refresh(actor) return end @reserve_window.setparty(@reserve_window.index, @temp_actor_index) @current_window.refresh actor = @reserve_window.getactor(@reserve_window.index) @help_window.refresh(actor) else warning end end $game_system.se_play($data_system.decision_se) @scene_flag, @temp_window = false, '' end def wipe_party $game_party.actors.each {|actor| actor.not_available = true if actor != nil} setup_forced_party(true) if $game_party.actors == [] (1...$data_actors.size).each {|i| unless $game_actors[i].not_available || $game_actors[i].disabled_for_party $game_party.actors.push($game_actors[i]) return end} end end def setup_forced_party(flag = false) $game_party.actors, party = [], [] (1...$data_actors.size).each {|i| if $game_actors[i] != nil && $game_actors[i].must_be_in_party && (!$game_actors[i].disabled_for_party || flag) && !$game_actors[i].not_available party.push($game_actors[i]) end} party.clone.each {|actor| if actor.forced_position != nil $game_party.actors[actor.forced_position] = actor party.delete(actor) end} $game_party.actors.each_index {|i| $game_party.actors[i] = party.shift if $game_party.actors[i] == nil} $game_party.actors += party.compact end def swap_parties $game_party.actors.compact! temp_actors = $game_party.actors temp_actors.each {|actor| actor.not_available = true} $game_system.stored_party.compact! $game_system.stored_party.each {|actor| actor.not_available = false} $game_party.actors = $game_system.stored_party $game_system.stored_party = (@store == 1 ? temp_actors : nil) end def call_warning?(index, actor2) return (ALLOW_EMPTY_PARTY || $game_party.actors[index] == nil || actor2 != nil || $game_party.actors.nitems > 1) end def warning(flag = false) $game_system.se_play($data_system.buzzer_se) @warning_window = Window_Warning.new(flag, @reserve_window.get_number) loop do Graphics.update Input.update if Input.trigger?(Input::C) $game_system.se_play($data_system.decision_se) if flag [@current_window, @reserve_window].each {|win| win.refresh} @warning_window.dispose @warning_window = nil break end end end end #============================================================================== # Scene_Battle #============================================================================== class Scene_Battle alias start_phase5_eps_later start_phase5 def start_phase5 start_phase5_eps_later (1...$data_actors.size).each {|i| unless $game_party.actors.include?($game_actors[i]) if $game_actors[i].not_available $game_actors[i].exp += @result_window.exp * EXP_NOT_AVAILABLE/100 elsif $game_actors[i].disabled_for_party $game_actors[i].exp += @result_window.exp * EXP_DISABLED_FOR_PARTY/100 else $game_actors[i].exp += @result_window.exp * EXP_RESERVE/100 end end} end end
-
How to use my Custom Menu+Marked's Custom Skill
Jesse66126 replied to Jesse66126's question in Support
You have to make two scripts for each above main,doesn't matter which order -
I am sure that you will know the answer to this question
Jesse66126 replied to Lammorra's topic in General Game Development
The way I do it is with different classes. Also I use skills to determine what level a character is in eventing. Event example- Condition Brannch:If character has the skill "Spiral Blade(at lvl25)" learned,change character's class to Swordman(Same name,but a different class,so he can use stronger weapons!) -
a skill, noone has ever requested before! /)'A')
Jesse66126 replied to sloth's topic in General Game Development
Here's how I would do it: Make a status effect with the rating 0 and it wears off after 1 turn 100% chance. Have the Analyze skill inflict that status effect. Next for each troop have an event for turns 1x1 Then set the event to show text "Goblin HP:30 Weakness:Fire" If the status effect "Analyze" is inflicted of Monster Index [1] You have to make a different text for each monster,though. -
How to use my custom menu WITH Marked's custom skill screen: STEP#1 Make sure this character pic and battler have a DIFFERENT name! STEP#2 Now make sure these two pictures have the SAME name! (Also...don't try to understand my logic when choosing names for my pictures...) -The end result!- A menu like this! And Skill screen like this! --------Resources------------ My Menu Screen's Link: http://www.rmxpunlimited.net/forums/index.php?showtopic=1705 Marked's Custom Skill Screen: #========================================================== # Custom Skill Screen 1.0 by Neon(23.10.06) Script no.:4 #--------------------------------------------------------- # This script is fairly basic. It displays extra stats in the skills screen # which are: ATK, PDEF, MDEF, STR, DEX and AGI, it displays the actors graphic # and the windows are rearranged. Another feature that is the skill screen in # battle, it is the same as the default. This script will also change the battle # skill screen, and it didnt look very good, so it changes back to the default # one. #---------------------------------------------------------- #============================================================================== # ** Scene_Skill #------------------------------------------------------------------------------ # This class performs skill screen processing. #============================================================================== class Scene_Skill #-------------------------------------------------------------------------- # * Object Initialization # actor_index : actor index #-------------------------------------------------------------------------- def initialize(actor_index = 0, equip_index = 0) @actor_index = actor_index end #-------------------------------------------------------------------------- # * Main Processing #-------------------------------------------------------------------------- def main # Get actor @actor = $game_party.actors[@actor_index] # Make help window, status window, skill window and graphic window. @help_window = Window_Help.new @status_window = Window_SkillStatus.new(@actor) @skill_window = Window_Skill.new(@actor) @skill_graphic = Window_Skill_Graphic.new(@actor) # Associate help window @skill_window.help_window = @help_window # Make target window (set to invisible / inactive) @target_window = Window_Target.new @target_window.visible = false @target_window.active = false # Execute transition Graphics.transition # Main loop loop do # Update game screen Graphics.update # Update input information Input.update # Frame update update # Abort loop if screen is changed if $scene != self break end end # Prepare for transition Graphics.freeze # Dispose of windows @help_window.dispose @status_window.dispose @skill_window.dispose @target_window.dispose @skill_graphic.dispose end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update # Update windows @help_window.update @status_window.update @skill_window.update @target_window.update # If skill window is active: call update_skill if @skill_window.active update_skill return end # If skill target is active: call update_target if @target_window.active update_target return end end #-------------------------------------------------------------------------- # * Frame Update (if skill window is active) #-------------------------------------------------------------------------- def update_skill # If B button was pressed if Input.trigger?(Input::B) # Play cancel SE $game_system.se_play($data_system.cancel_se) # Switch to menu screen $scene = Scene_Menu.new(1) return end # If C button was pressed if Input.trigger?(Input::C) # Get currently selected data on the skill window @skill = @skill_window.skill # If unable to use if @skill == nil or not @actor.skill_can_use?(@skill.id) # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end # Play decision SE $game_system.se_play($data_system.decision_se) # If effect scope is ally if @skill.scope >= 3 # Activate target window @skill_window.active = false @target_window.x = (@skill_window.index + 1) % 2 * 304 @target_window.visible = true @target_window.active = true # Set cursor position to effect scope (single / all) if @skill.scope == 4 || @skill.scope == 6 @target_window.index = -1 elsif @skill.scope == 7 @target_window.index = @actor_index - 10 else @target_window.index = 0 end # If effect scope is other than ally else # If common event ID is valid if @skill.common_event_id > 0 # Common event call reservation $game_temp.common_event_id = @skill.common_event_id # Play use skill SE $game_system.se_play(@skill.menu_se) # Use up SP @actor.sp -= @skill.sp_cost # Remake each window content @status_window.refresh @skill_window.refresh @target_window.refresh # Switch to map screen $scene = Scene_Map.new return end end return end # If R button was pressed if Input.trigger?(Input::R) # Play cursor SE $game_system.se_play($data_system.cursor_se) # To next actor @actor_index += 1 @actor_index %= $game_party.actors.size # Switch to different skill screen $scene = Scene_Skill.new(@actor_index) return end # If L button was pressed if Input.trigger?(Input::L) # Play cursor SE $game_system.se_play($data_system.cursor_se) # To previous actor @actor_index += $game_party.actors.size - 1 @actor_index %= $game_party.actors.size # Switch to different skill screen $scene = Scene_Skill.new(@actor_index) return end end #-------------------------------------------------------------------------- # * Frame Update (when target window is active) #-------------------------------------------------------------------------- def update_target # If B button was pressed if Input.trigger?(Input::B) # Play cancel SE $game_system.se_play($data_system.cancel_se) # Erase target window @skill_window.active = true @target_window.visible = false @target_window.active = false return end # If C button was pressed if Input.trigger?(Input::C) # If unable to use because SP ran out unless @actor.skill_can_use?(@skill.id) # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end # If target is all if @target_window.index == -1 # Apply skill use effects to entire party used = false for i in $game_party.actors used |= i.skill_effect(@actor, @skill) end end # If target is user if @target_window.index <= -2 # Apply skill use effects to target actor target = $game_party.actors[@target_window.index + 10] used = target.skill_effect(@actor, @skill) end # If single target if @target_window.index >= 0 # Apply skill use effects to target actor target = $game_party.actors[@target_window.index] used = target.skill_effect(@actor, @skill) end # If skill was used if used # Play skill use SE $game_system.se_play(@skill.menu_se) # Use up SP @actor.sp -= @skill.sp_cost # Remake each window content @status_window.refresh @skill_window.refresh @target_window.refresh # If entire party is dead if $game_party.all_dead? # Switch to game over screen $scene = Scene_Gameover.new return end # If command event ID is valid if @skill.common_event_id > 0 # Command event call reservation $game_temp.common_event_id = @skill.common_event_id # Switch to map screen $scene = Scene_Map.new return end end # If skill wasn't used unless used # Play buzzer SE $game_system.se_play($data_system.buzzer_se) end return end end end #============================================================================== # ** Window_Skill #------------------------------------------------------------------------------ # This window displays usable skills on the skill and battle screens. #============================================================================== class Window_Skill < Window_Selectable #-------------------------------------------------------------------------- # * Object Initialization # actor : actor #-------------------------------------------------------------------------- def initialize(actor) if $game_temp.in_battle super(200, 64, 640, 300) else super(200, 64, 440, 300) end @actor = actor if $game_temp.in_battle @column_max = 2 else @column_max = 1 end refresh self.index = 0 # If in battle, move window to center of screen # and make it semi-transparent if $game_temp.in_battle self.x = 0 self.y = 64 self.width = 640 self.height = 256 self.back_opacity = 160 end end #-------------------------------------------------------------------------- # * Acquiring Skill #-------------------------------------------------------------------------- def skill return @data[self.index] end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh if self.contents != nil self.contents.dispose self.contents = nil end @data = [] for i in 0...@actor.skills.size skill = $data_skills[@actor.skills[i]] if skill != nil @data.push(skill) end end # If item count is not 0, make a bit map and draw all items @item_max = @data.size if @item_max > 0 self.contents = Bitmap.new(width - 32, row_max * 32) for i in 0...@item_max draw_item(i) end end end #-------------------------------------------------------------------------- # * Draw Item # index : item number #-------------------------------------------------------------------------- def draw_item(index) skill = @data[index] if @actor.skill_can_use?(skill.id) self.contents.font.color = normal_color else self.contents.font.color = disabled_color end x = 4 + index % 1 * (288 + 32) y = index / 1 * 32 if $game_temp.in_battle x = 4 + index % 2 * (288 + 32) y = index / 2 * 32 end rect = Rect.new(x, y, self.width / @column_max - 32, 32) self.contents.fill_rect(rect, Color.new(0, 0, 0, 0)) bitmap = RPG::Cache.icon(skill.icon_name) opacity = self.contents.font.color == normal_color ? 255 : 128 self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity) self.contents.draw_text(x + 28, y, 204, 32, skill.name, 0) if $game_temp.in_battle self.contents.draw_text(x + 232, y, 48, 32, skill.sp_cost.to_s, 2) else self.contents.draw_text(x + 350, y, 48, 32, skill.sp_cost.to_s, 2) end end #-------------------------------------------------------------------------- # * Help Text Update #-------------------------------------------------------------------------- def update_help @help_window.set_text(self.skill == nil ? "" : self.skill.description) end end #============================================================================== # ** Window_SkillStatus #------------------------------------------------------------------------------ # This window displays the skill user's status on the skill screen. #============================================================================== class Window_SkillStatus < Window_Base #-------------------------------------------------------------------------- # * Object Initialization # actor : actor #-------------------------------------------------------------------------- def initialize(actor) super(0, 364, 640, 116) self.contents = Bitmap.new(width - 32, height - 32) @actor = actor refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear draw_actor_state(@actor, 0, 0) draw_actor_hp(@actor, 0, 28) draw_actor_sp(@actor, 0, 28+28) #-------------------------------------------------------------------------- # * Draw Parameters #-------------------------------------------------------------------------- draw_actor_parameter(@actor, 200, 0, 0) draw_actor_parameter(@actor, 200, 28, 1) draw_actor_parameter(@actor, 200, 28+28, 2) draw_actor_parameter(@actor, 420, 0, 3) draw_actor_parameter(@actor, 420, 28, 4) draw_actor_parameter(@actor, 420, 28+28, 5) end end #============================================================================== # ** Window_Skill_Actor_Graphic #------------------------------------------------------------------------------ # This window displays the Actors name, class and graphic. #============================================================================== class Window_Skill_Graphic < Window_Base #-------------------------------------------------------------------------- # * Object Initialization # actor : actor #-------------------------------------------------------------------------- def initialize(actor) super(0, 64, 200, 300) self.contents = Bitmap.new(width - 32, height - 32) @actor = actor refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh draw_actor_class(@actor, 200, 200) end #-------------------------------------------------------------------------- # * Draw Actor Graphic # REMEMBER!: Set the character set and the graphic picture's name exactly # the same, otherwise the wrong, or no, graphic will appear. #-------------------------------------------------------------------------- def draw_actor_battler(actor, x, y) face = RPG::Cache.battler(actor.character_name, actor.character_hue) fw = face.width fh = face.height src_rect = Rect.new(3, -1, fw, fh) self.contents.blt(x - fw / 43, y - fh, face, src_rect, opacity) end def refresh self.contents.clear draw_actor_battler(@actor, 37, 255) draw_actor_name(@actor, 4, 0) draw_actor_class(@actor, 4+32, 22) end end
-
I'm not sure but....I think it's supposed to look like this.... I could fix it for you,if you want.Its probably just a minor script error with the battler image. Or is cause my actor's battler image and character image have different names? Either way,I can fix it so it'll show only a character's battler image.
-
Sorry lol. But the email in the script seemed like such a newbie mistake.
-
There are a lot of errors in the script. Who ever made this script obviously did not know what they were doing. I tried fixing it but it's missing the Battler's picture locating part of the script. Sadly it's just a rearrangement script like my custom menu script. Nothing hard about it. Someone put their email inside the script without a "#" in front of it lol So it's trying to process the email as part of the script.
-
I moved the exp and lvl to where they don't obstruct the picture. class Window_Base < Window #-------------------------------------------------------------------------- # ● 再定義 グラフィックの描画 # actor : アクター # x : 描画先 X 座標 # y : 描画先 Y 座標 #-------------------------------------------------------------------------- def draw_actor_graphic(actor, x, y) bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue) cw = bitmap.width ch = bitmap.height src_rect = Rect.new(0, 0, cw, ch) self.contents.blt(x - cw /4, y - ch +16, bitmap, src_rect) end end class Window_Status < Window_Base #-------------------------------------------------------------------------- # ● リフレッシュ #-------------------------------------------------------------------------- def refresh self.contents.clear draw_actor_graphic(@actor, 30, 144) draw_actor_name(@actor, 4, 8) draw_actor_class(@actor, 4 + 124, 8) draw_actor_level(@actor, 128, 32) draw_actor_state(@actor, 128, 56) draw_actor_hp(@actor, 128, 96, 172) draw_actor_sp(@actor, 128, 128, 172) draw_actor_parameter(@actor, 352, 240, 0) draw_actor_parameter(@actor, 352, 272, 1) draw_actor_parameter(@actor, 352, 304, 2) draw_actor_parameter(@actor, 352, 80, 3) draw_actor_parameter(@actor, 352, 112, 4) draw_actor_parameter(@actor, 352, 144, 5) draw_actor_parameter(@actor, 352, 176, 6) self.contents.font.color = system_color #self.contents.draw_text(320, 48, 80, 32, "--")#EXP #self.contents.draw_text(320, 80, 80, 32, "--")#NEXT self.contents.font.color = normal_color #self.contents.draw_text(320 + 80, 48, 84, 32, @actor.exp_s, 2) #self.contents.draw_text(320 + 80, 80, 84, 32, @actor.next_rest_exp_s, 2) self.contents.draw_text(128, 208, 96, 32, "[Equip]") draw_item_name($data_weapons[@actor.weapon_id], 112 + 16, 240) draw_item_name($data_armors[@actor.armor1_id], 112 + 16, 272) draw_item_name($data_armors[@actor.armor2_id], 112 + 16, 304) draw_item_name($data_armors[@actor.armor3_id], 112 + 16, 336) draw_item_name($data_armors[@actor.armor4_id], 112 + 16, 368) end def dummy self.contents.font.color = system_color self.contents.draw_text(352, 80, 96, 32, $data_system.words.weapon) self.contents.draw_text(352, 112, 96, 32, $data_system.words.armor1) self.contents.draw_text(352, 144, 96, 32, $data_system.words.armor2) self.contents.draw_text(352, 176, 96, 32, $data_system.words.armor3) self.contents.draw_text(352, 208, 96, 32, $data_system.words.armor4) draw_item_name($data_weapons[@actor.weapon_id], 352 + 24, 80) draw_item_name($data_armors[@actor.armor1_id], 352 + 24, 112) draw_item_name($data_armors[@actor.armor2_id], 352 + 24, 144) draw_item_name($data_armors[@actor.armor3_id], 352 + 24, 176) draw_item_name($data_armors[@actor.armor4_id], 352 + 24, 208) end end class Window_Base < Window #-------------------------------------------------------------------------- # ● 再定義 クラスの描画 # actor : アクター # x : 描画先 X 座標 # y : 描画先 Y 座標 #-------------------------------------------------------------------------- def draw_actor_class(actor, x, y) self.contents.font.color = normal_color self.contents.draw_text(x, y, 236, 32, actor.class_name) end end class Window_MenuStatus < Window_Selectable #-------------------------------------------------------------------------- # ● 再定義 リフレッシュ #-------------------------------------------------------------------------- def refresh self.contents.clear @item_max = $game_party.actors.size for i in 0...$game_party.actors.size x = 64 y = i * 116 actor = $game_party.actors[i] draw_actor_graphic(actor, x - 40, y + 80) draw_actor_name(actor, x + 64, y) #16 draw_actor_name(actor, x, y) draw_actor_class(actor, x + 100, y + 32) #90 draw_actor_level(actor, x + 35, y + 32) #draw_actor_level(actor, x, y + 32) draw_actor_state(actor, x + 245, y) #144 draw_actor_exp(actor, x + 35, y + 64) #draw_actor_exp(actor, x, y + 64) draw_actor_hp(actor, x + 245, y + 32) #236 draw_actor_sp(actor, x + 245, y + 64) #236 end end end
-
Here's the isolated script to modify your menu to include battler pictures like in KN_E. Just insert a new script above "Main" on the script list. class Window_Base < Window #-------------------------------------------------------------------------- # ● 再定義 グラフィックの描画 # actor : アクター # x : 描画先 X 座標 # y : 描画先 Y 座標 #-------------------------------------------------------------------------- def draw_actor_graphic(actor, x, y) bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue) #(actor.character_name, actor.character_hue) cw = bitmap.width ch = bitmap.height src_rect = Rect.new(0, 0, cw, ch) self.contents.blt(x - cw /4, y - ch +16, bitmap, src_rect) end end class Window_Status < Window_Base #-------------------------------------------------------------------------- # ● リフレッシュ #-------------------------------------------------------------------------- def refresh self.contents.clear draw_actor_graphic(@actor, 30, 144) draw_actor_name(@actor, 4, 8) draw_actor_class(@actor, 4 + 124, 8) #draw_actor_level(@actor, 96, 32) draw_actor_state(@actor, 128, 56) draw_actor_hp(@actor, 128, 96, 172) draw_actor_sp(@actor, 128, 128, 172) draw_actor_parameter(@actor, 352, 240, 0) draw_actor_parameter(@actor, 352, 272, 1) draw_actor_parameter(@actor, 352, 304, 2) draw_actor_parameter(@actor, 352, 80, 3) draw_actor_parameter(@actor, 352, 112, 4) draw_actor_parameter(@actor, 352, 144, 5) #draw_actor_parameter(@actor, 128, 384, 6) self.contents.font.color = system_color #self.contents.draw_text(320, 48, 80, 32, "--")#EXP #self.contents.draw_text(320, 80, 80, 32, "--")#NEXT self.contents.font.color = normal_color #self.contents.draw_text(320 + 80, 48, 84, 32, @actor.exp_s, 2) #self.contents.draw_text(320 + 80, 80, 84, 32, @actor.next_rest_exp_s, 2) self.contents.draw_text(128, 208, 96, 32, "[Equip]") draw_item_name($data_weapons[@actor.weapon_id], 112 + 16, 240) draw_item_name($data_armors[@actor.armor1_id], 112 + 16, 272) draw_item_name($data_armors[@actor.armor2_id], 112 + 16, 304) draw_item_name($data_armors[@actor.armor3_id], 112 + 16, 352) draw_item_name($data_armors[@actor.armor4_id], 112 + 16, 384) end def dummy self.contents.font.color = system_color self.contents.draw_text(352, 80, 96, 32, $data_system.words.weapon) self.contents.draw_text(352, 112, 96, 32, $data_system.words.armor1) self.contents.draw_text(352, 144, 96, 32, $data_system.words.armor2) self.contents.draw_text(352, 176, 96, 32, $data_system.words.armor3) self.contents.draw_text(352, 208, 96, 32, $data_system.words.armor4) draw_item_name($data_weapons[@actor.weapon_id], 352 + 24, 80) draw_item_name($data_armors[@actor.armor1_id], 352 + 24, 112) draw_item_name($data_armors[@actor.armor2_id], 352 + 24, 144) draw_item_name($data_armors[@actor.armor3_id], 352 + 24, 176) draw_item_name($data_armors[@actor.armor4_id], 352 + 24, 208) end end class Window_Base < Window #-------------------------------------------------------------------------- # ● 再定義 クラスの描画 # actor : アクター # x : 描画先 X 座標 # y : 描画先 Y 座標 #-------------------------------------------------------------------------- def draw_actor_class(actor, x, y) self.contents.font.color = normal_color self.contents.draw_text(x, y, 236, 32, actor.class_name) end end class Window_MenuStatus < Window_Selectable #-------------------------------------------------------------------------- # ● 再定義 リフレッシュ #-------------------------------------------------------------------------- def refresh self.contents.clear @item_max = $game_party.actors.size for i in 0...$game_party.actors.size x = 64 y = i * 116 actor = $game_party.actors[i] draw_actor_graphic(actor, x - 40, y + 80) draw_actor_name(actor, x + 64, y) #16 draw_actor_name(actor, x, y) draw_actor_class(actor, x + 64, y + 32) #90 #draw_actor_level(actor, x + 16, y + 32) #draw_actor_level(actor, x, y + 32) draw_actor_state(actor, x + 210, y) #144 #draw_actor_exp(actor, x + 16, y + 64) #draw_actor_exp(actor, x, y + 64) draw_actor_hp(actor, x + 210, y + 32) #236 draw_actor_sp(actor, x + 210, y + 64) #236 end end end
-
Anyone know how to add a clip to a gameover screen?
Jesse66126 replied to Jesse66126's question in Support
Nevermind,I figured it out.You just make a small change to "Scene Skill" #====================================================================== ======== # ** Scene_Skill #------------------------------------------------------------------------------ # This class performs skill screen processing. #============================================================================== class Scene_Skill #-------------------------------------------------------------------------- # * Object Initialization # actor_index : actor index #-------------------------------------------------------------------------- def initialize(actor_index = 0, equip_index = 0) @actor_index = actor_index end #-------------------------------------------------------------------------- # * Main Processing #-------------------------------------------------------------------------- def main # Get actor @actor = $game_party.actors[@actor_index] # Make help window, status window, and skill window @help_window = Window_Help.new @status_window = Window_SkillStatus.new(@actor) @skill_window = Window_Skill.new(@actor) # Associate help window @skill_window.help_window = @help_window # Make target window (set to invisible / inactive) @target_window = Window_Target.new @target_window.visible = false @target_window.active = false # Execute transition Graphics.transition # Main loop loop do # Update game screen Graphics.update # Update input information Input.update # Frame update update # Abort loop if screen is changed if $scene != self break end end # Prepare for transition Graphics.freeze # Dispose of windows @help_window.dispose @status_window.dispose @skill_window.dispose @target_window.dispose end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update # Update windows @help_window.update @status_window.update @skill_window.update @target_window.update # If skill window is active: call update_skill if @skill_window.active update_skill return end # If skill target is active: call update_target if @target_window.active update_target return end end #-------------------------------------------------------------------------- # * Frame Update (if skill window is active) #-------------------------------------------------------------------------- def update_skill # If B button was pressed if Input.trigger?(Input::B) # Play cancel SE $game_system.se_play($data_system.cancel_se) # Switch to menu screen $scene = Scene_Menu.new(1) return end # If C button was pressed if Input.trigger?(Input::C) # Get currently selected data on the skill window @skill = @skill_window.skill # If unable to use if @skill == nil or not @actor.skill_can_use?(@skill.id) # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end # Play decision SE $game_system.se_play($data_system.decision_se) # If effect scope is ally if @skill.scope >= 3 # Activate target window @skill_window.active = false @target_window.x = (@skill_window.index + 1) % 2 * 304 @target_window.visible = true @target_window.active = true # Set cursor position to effect scope (single / all) if @skill.scope == 4 || @skill.scope == 6 @target_window.index = -1 elsif @skill.scope == 7 @target_window.index = @actor_index - 10 else @target_window.index = 0 end # If effect scope is other than ally else # If common event ID is valid if @skill.common_event_id > 0 # Common event call reservation $game_temp.common_event_id = @skill.common_event_id # Play use skill SE $game_system.se_play(@skill.menu_se) # Use up SP @actor.sp -= @skill.sp_cost # Remake each window content @status_window.refresh @skill_window.refresh @target_window.refresh # Switch to map screen $scene = Scene_Map.new return end end return end # If R button was pressed if Input.trigger?(Input::R) # Play cursor SE $game_system.se_play($data_system.cursor_se) # To next actor @actor_index += 1 @actor_index %= $game_party.actors.size # Switch to different skill screen $scene = Scene_Skill.new(@actor_index) return end # If L button was pressed if Input.trigger?(Input::L) # Play cursor SE $game_system.se_play($data_system.cursor_se) # To previous actor @actor_index += $game_party.actors.size - 1 @actor_index %= $game_party.actors.size # Switch to different skill screen $scene = Scene_Skill.new(@actor_index) return end end #-------------------------------------------------------------------------- # * Frame Update (when target window is active) #-------------------------------------------------------------------------- def update_target # If B button was pressed if Input.trigger?(Input::B) # Play cancel SE $game_system.se_play($data_system.cancel_se) # Erase target window @skill_window.active = true @target_window.visible = false @target_window.active = false return end # If C button was pressed if Input.trigger?(Input::C) # If unable to use because SP ran out unless @actor.skill_can_use?(@skill.id) # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end # If target is all if @target_window.index == -1 # Apply skill use effects to entire party used = false for i in $game_party.actors used |= i.skill_effect(@actor, @skill) end end # If target is user if @target_window.index <= -2 # Apply skill use effects to target actor target = $game_party.actors[@target_window.index + 10] used = target.skill_effect(@actor, @skill) end # If single target if @target_window.index >= 0 # Apply skill use effects to target actor target = $game_party.actors[@target_window.index] used = target.skill_effect(@actor, @skill) end # If skill was used if used # Play skill use SE $game_system.se_play(@skill.menu_se) # Use up SP @actor.sp -= @skill.sp_cost # Remake each window content @status_window.refresh @skill_window.refresh @target_window.refresh # If entire party is dead if $game_party.all_dead? # Switch to game over screen $scene = common_event_id.new return end # If command event ID is valid if @skill.common_event_id > 0 # Command event call reservation $game_temp.common_event_id = @skill.common_event_id # Switch to map screen $scene = Scene_Map.new return end end # If skill wasn't used unless used # Play buzzer SE $game_system.se_play($data_system.buzzer_se) end return end end end -
Wait,how does this help me? I want to be able to edit the weapon's stats inside the game.Like you can in Fire Emblem:Path of Radiance. I'm working on an input weapon configuration script to edit weapons by talking to a npc. Thanks for trying though. You should take progamming classes with me at Viginia College.
-
Which script do you edit for it to go to a cut scene instead of the game over screen? I want a game over like in Banjo Kazooie where instead of the usual blan "gameover", you get a cut scene of the witch mutating his little sister. I want to add a scene showing you what WILL happen next after your death or add a time loop, like in Ephermal Phantasia,to give you another chance. I just want something there instead of just "Game Over". With this,the player gets a feel for the severity for the consequences of losing the game. Like if it was a Super Mario game,if mario were to run out of lives and die,there'd be a scene of bowser killing princess peach.Well that's a bit extreme,but you get the idea. I just need something to happen instead of that boring gameover screen. Even in Resident Evil 2,that little "eating scene" was better than just "gameover" *loads title screen* I want the player's response to go from "*sigh* gameover,oh well" to "Oh my God! All those people died a horrible mutilated death 'cause I screwed up and got my skull smashed in by that berserkering Brute??"
-
Should I add a dating or parenting simulator to my game?
Jesse66126 replied to Jesse66126's topic in Early in Development
For the dating sim part,i was thinking more like a Tales of Symphonia thing. Different responses to conversations builds a relationship between each character. Not the classic "100 days","pick a girl and flirt","writing down her favorite color,food,etc" For the Parenting part,I was thinking about molding the stat developement after either a "Princess Maker"or"Digimon World"-like system.Where you train the character a certain way,nurturing him/her til he/she has the ideal build you want.However,both systems have limits in either time,or life-span,or using points alotted per combat level. Both ideas sound pretty good,but I'm not sure which to go with. -
A dating sim isn't always romance.It could be a friendship or bond that developes between characters over the course of the game. A parenting sim gives control of a character's developement to the player.A example being if the character takes Archery Classes enough, he or she becomes an archer.Likewise with fencing classes. Depending on the player's choices over time,the character developes differently in each area of skills.
-
Recruiting Demo Tests for Ishtar Chronicles 3!!
Jesse66126 replied to Jesse66126's topic in Early in Development
but..It's right under this one on the list.... -
http://www.megaupload.com/?d=4220T0HP I need someone to try out my test room to find glitches I may have missed,or over ways to improve it. The test room includes weapon switching,Random battles,Lucas summoning whistle,and the new "wait for me" system. Any volunteers? All other information on IC3 is in my other post. http://www.rmxpunlimited.net/forums/index.php?showtopic=1657
-
Princess Amilia Syviel - The wily princess of Thessa. She is bored EASILY and escapes from the castle very often to go on "adventures". Lucas,the angel - Keeping his promise to Ryan for over 10,000 years,Lucas is still ever vigilant. He guards the royal family of Thessa,Ryan's decendants,from all harm. His most difficult case is Princess Amilia,who's love of adventures puts her in CONSTANT danger! He follows her everywhere like a baby sitter. New Features Include - The "Wait for me system!" If Amilia runs too far away from Lucas,he becomes temporarily out of the party until he catches up! When this happens,he warns her by saying "Wait for me,Princess!!". Twin Sword System - When Lucas equips the "right hand" sword,the "left hand" sword is automaticly equipped. During this time,his shield will be replaced by the "left hand" sword. The Pact Is Formed - http://s117.photobucket.com/albums/o69/jes...FinalBattle.flv This clip is a prelude to the final battle between King Ryan and the great dragon,Fianna. The angel,Lucas,has already been defeated by the dragon and is awaiting death. Ryan appears just in time to challenge the dragon.Knowing,that he may not survive,Ryan asks Lucas to look after his family after he's gone.
-
In the end,i went with the kingdom hearts approach.Like picking a stat to have and a stat not to have.with only 3 different possible weapons.
-
It's...too....hard.....I made eight hundred different weapons...there are too many possible stat combinations.... Well that and I ran out of space! You can only have 999 different weapons lol
-
As you can see....My title screen is horrible beyond all reason... I'm better at drawing people...Please...Help.....It's for XP. It looks like a two-year-old drew it...>.< I think anything would be better than this...
-
I found this program a while back.It's really helpful for making character spites. You've probably heard of it though. You can add armor to it's data base,so you don't have to draw every sprite by hand. http://www.megaupload.com/?d=FJPPSKND This program was made by Saphiro,not me.
-
I'm trying to make a shop that sells custom made weapons. Does anyone know how to make a script to edit a weapon inside the game? All I know how to do is make like a 100+ weapons with different stat combinations.Lol
-
I'm trying to make a shop that sells custom made weapons. Does anyone know how to make a script to edit a weapon inside the game? All I know how to do is make like a 100+ weapons with different stat combinations.Lol
-
Here's the Link! http://www.megaupload.com/?d=TOX6C2WV Ishtar Chronicles2 Overview- IC2 takes place several years after the first one. The story's protagonist is a boy named Todd. While being nearly beaten to death by a bully at school,Todd flees for his life through the dense forest and discovers an old shrine.Upon entering,he is transported high up in the heavens where he finds an angel sealed up.As he approaches her,her seals are broken.She immediately dubs him as her new "master".However,Todd soon learns that all actions have concequences. Characters- Todd- the hero of the story.Often bullied at school by Jared,he wonders how much more he can take. Living day after day,he longs for something new and exciting to happen. Lorana- the mysterious angel that Todd frees from her seal. She is brite and cheerful,eagerly following Todd everywhere he goes. Her powers are not of this world.She is feared and hated by angels and demons alike. There are those who see her as an "antichrist",corrupting this world;defying God's Will by rising the dead without a care in the world. Her seemingly whimsical regard for death makes Todd feel uneasy. Features- Lorana has an auto-kill and auto-revive system. If Todd is killed in battle,she will automaticly resurect him,using no sp. She also has a marking system,if she marks an enemy,she will automaticly fire a finishing move on him,using no sp. Class Changing System- When Todd reaches a certain level,he learns a skill called "Ascention". At that time,Lorana can use her "Class Change" skill on him. His costume changes,his stats increase,and he can now learn even more powerful skills. Screen Shots! Notice the words in bold yellow lol My favorite moment of the game.