Jump to content
New account registrations are disabed. This website is now an archive. Read more here.

RGSS(RMXP) Scripts

Sign in to follow this  

RGSS Scripts for RPG Maker XP go in this Category. All RGSS scripts must be in Demo form.

35 files

  1. Location Name V1.3

    Information: http://www.atelier-rgss.com/RGSS/System/XP_SYS06.html

    201 downloads

    0 comments

    Submitted

  2. Maplinks 2.0.1

    This script allows you to quickly tile maps together to create continuous regions without using any transfer events. Allow your party to roam free throughout the land. This script can handle just about any combination of maps you throw at it!
     

    Click to view the full Article

    301 downloads

    0 comments

    Updated

  3. Prexcraft Modificated

    Modification of one of the best crafting system by me

    291 downloads

    0 comments

    Submitted

  4. GMUS Guedez Mouse Use System

    Yeah i know, its a old script, but work "fine".
     
    "Fine", cause many script like CMS dont work with this.
    And you cant scroll down (exemple: when you have too many items and you see a little arrow under the window, you cant scroll to see other items...)
     
    Maybe someone here can make a new Mouse system... :D
     
    Instruction :
     
    Paste the script ABOVE the Main script

    198 downloads

    0 comments

    Submitted

  5. Sideview Battle System Tankentai XP

    - Orginal VX Version By Enu
    - Original VX English Translation by Kylock and Mr.Bubble
    - XP Translation to english by cairn

    2,259 downloads

    7 comments

    Updated

  6. Buy-Only and Sell-Only Shops

    This script lets you call shops that only allow buying or selling. The default shop type is a normal shop that allows both buying and selling. To get a shop that only allows buying or selling, you need to directly change the value of the variable $game_temp.shop_type using the "Script" event command. Valid values are 0 for a normal shop, 1 for a buy-only shop, and 2 for a sell-only shop. $game_temp.shop_type will automatically be changed back to 0 once the shop is cancelled.

    286 downloads

    0 comments

    Submitted

  7. Skill Shop

    Introduction
    This script allows you to setup skill shops which sells skills. You may have requirements to purchase/learn the skill, such as: amount of exp, exp cost, gold, level, class, other skills.
     
     
    [info=More information on the website]http://www.rmxpunlimited.net/index.php/rmx...skill-shop.html[/info]

    542 downloads

    0 comments

    Updated

  8. Zeriab's Gamos

    People asked, so I uploaded

    243 downloads

    0 comments

    Submitted

  9. Emily-Ann's Import-Export System

    Ever want to take your characters from one game and import them into a sequel instead of falling to the typical "Let's start all over again" cliche? Now you can! This system will let you set up an export from one game, then allow you to import that file into the next game, thus allowing your players to start up right where they left off, with the same characters, and the same stats. This is a demo to show it works (I've tested it). I hope you enjoy it.

    364 downloads

    2 comments

    Submitted

  10. Change Map Tileset

    Allows the player to change the tilemap.

    374 downloads

    1 comment

    Updated

  11. Diablo 2 waypoint system

    A way point sytem just like diablo 2

    371 downloads

    1 comment

    Submitted

  12. 1 comment

    Submitted

  13. GTBS - GubiD's Tactical Battle System v1.5.1.4

    For more information, please visit our GubiD's Tactical Battle System page.

    5,132 downloads

    14 comments

    Updated

  14. 300mil Save Spots

    #---------------------
    # Personal Save Files
    # By: Polraudio
    # Version: 1.0
    #---------------------
    =begin
    #----------------------------------------------------
    Features:
    - Allows you to have up to 399,999,996 save files
    - Replaces the title with the player start map
     
    Instructions:
    This script will bring you straight to the start map
     
    For loading/Saving please put an input number before
    Opening the load or save menu. To open the load menu
    use this into a call script "$scene = Scene_Load.new"
    Without quotes
     
    Contact:
    If you have any questions or comments you can find me
    at www.rmxpunlimited.net(Best Method)
     
    Or email me polraudio@gmail.com
    #----------------------------------------------------

    200 downloads

    0 comments

    Updated

  15. Quest Log Screen

    Quest Log Screen by Sthrattoff

    1,046 downloads

    6 comments

    Updated

  16. Quickstats

    This script opens a menu, anywhere while on the maps(Not in battle etc.) and shows you your actors HP, SP and EXP. All you do is press the Q key, and it opens up.

    310 downloads

    0 comments

    Updated

  17. Monster Database Advanced

    Features:
     
    * * Assign Monsters into Groups, for quicker searching
    * * Counts Times Seen and Defeated for Each Enemy
    * * After Seeing an Enemy, it Unlocks the Basic Stats.
    * * After Defeating the enemy, see the Amount of Gold Dropped, Items Dropped, and Experience Recieved
    * * Test Battling (If you've seen a monster, you can test battle that monster)
    * * Animated Bestairy (Uses Sprites) (Press Right or Left to change the stance)
    Instructions:
     
    * * To add an enemy to a group, in the database add (Name of Group) after each enemy's name. (All Enemies not assigned to a group will be classified into a Unassigned Group.
    * * For Each Enemy you create, you need to make a Enemy Troop, named the same as your enemy, with only your enemy in it. (I tried adding troops to the $data_troops class, but this is just easier)
    * * Insert Script Above Main, but below Scene Battle (The script re-writes a few methods from the default battle system)
    * * Call the bestairy with: $scene = Scene_Beastairy.new
     
    The Script:

    #============================================================================== # Beastairy System #-------------------------------------------------------------------------- # Created By SephirothSpawn (11.18.05) # Last Updated: 11.18.05 #============================================================================== #============================================================================== # ** Class Scene Title #============================================================================== class Scene_Title #-------------------------------------------------------------------------- # * Alias' New Game Method #-------------------------------------------------------------------------- alias new_game command_new_game #-------------------------------------------------------------------------- # * Adds Beastairy Game Variables #-------------------------------------------------------------------------- def command_new_game # Sets Up Smithery List $game_beastairy = Game_Beastairy.new new_game end end #============================================================================== # ** Game_Temp #============================================================================== class Game_Temp #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :beastairy_return #-------------------------------------------------------------------------- # * Alias Initialization #-------------------------------------------------------------------------- alias beastairy_initialize initialize #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize beastairy_initialize @beastairy_return = false end end #============================================================================== # ** Class Game Beastairy #============================================================================== class Game_Beastairy #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :monster_groups #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize @monster_groups = [] for i in 1...$data_enemies.size $data_enemies[i].beastairy_setup unless @monster_groups.include?($data_enemies[i].group) @monster_groups.push($data_enemies[i].group) end end end end #============================================================================== # ** Module RPG #============================================================================== module RPG #========================================================================= # ** Class Enemy #========================================================================= class Enemy #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- # Detectors attr_accessor :seen, :defeated, :group # Counters attr_accessor :seen_times, :defeated_times #-------------------------------------------------------------------------- # * Setup Beastairy #-------------------------------------------------------------------------- def beastairy_setup @seen_times, @defeated_times = 0, 0 @seen, @defeated = false, false if @name.include?('(') a, b = @name.index('('), @name.index(')') @group = @name.slice!(a..b) @group.delete!('(') @group.delete!(')') else @group = "Unclassified" end end #-------------------------------------------------------------------------- # * See Enemy #-------------------------------------------------------------------------- def see @seen = true @seen_times += 1 end #-------------------------------------------------------------------------- # * Defeat Enemy #-------------------------------------------------------------------------- def defeat @defeated = true @defeated_times += 1 end end end #============================================================================== # ** Scene_Save #============================================================================== class Scene_Save < Scene_File #-------------------------------------------------------------------------- # * Alias Save Data #-------------------------------------------------------------------------- alias new_save write_save_data #-------------------------------------------------------------------------- # * Write Save Data #-------------------------------------------------------------------------- def write_save_data(file) new_save(file) Marshal.dump($game_beastairy, file) end end #============================================================================== # ** Scene_Load #============================================================================== class Scene_Load < Scene_File #-------------------------------------------------------------------------- # * Alias Read Save Data #-------------------------------------------------------------------------- alias new_load read_save_data #-------------------------------------------------------------------------- # * Read Save Data #-------------------------------------------------------------------------- def read_save_data(file) new_load(file) $game_beastairy = Marshal.load(file) end end #============================================================================== # ** Class Window Base #============================================================================== class Window_Base < Window #-------------------------------------------------------------------------- # * Draw Enemy Sprite #-------------------------------------------------------------------------- def draw_enemy_sprite(x, y, enemy_name, enemy_hue, pose, frame) bitmap = RPG::Cache.character(enemy_name, enemy_hue) cw = bitmap.width / 4 ch = bitmap.height / 4 # Facing Direction case pose when 0 ;a = 0 # Down when 1 ;a = ch # Left when 2 ;a = ch * 3 # Up when 3 ;a = ch * 2 # Right end # Current Animation Slide case frame when 0 ;b = 0 when 1 ;b = cw when 2 ;b = cw * 2 when 3 ;b = cw * 3 end # Bitmap Rectange src_rect = Rect.new(b, a, cw, ch) # Draws Bitmap self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect) end end #============================================================================== # Window Monster Group Info #============================================================================== class Window_Monster_Group_Info < Window_Base #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize super(200, 0, 440, 480) self.contents = Bitmap.new(width - 32, height - 32) refresh(0, 0, 0) end #-------------------------------------------------------------------------- # * Refresh # index : Index of Group From Game_Beastairy.Groups # pose : Enemy Character Pose # frame : Frame of Pose #-------------------------------------------------------------------------- def refresh(index, pose, frame) # Clears Window contents.clear # Sets Up Group Name group_name = $game_beastairy.monster_groups[index] # Sets Up Enemies In Group enemies = [] for i in 1...$data_enemies.size if $data_enemies[i].group == group_name enemies.push($data_enemies[i]) end end group_name = "Exit" if index == $game_beastairy.monster_groups.size # Draws Enemy Group Name contents.font.color = system_color contents.draw_text(0, 0, self.width - 32, 32, group_name, 1) unless index == $game_beastairy.monster_groups.size # Offsets Graphics X Position graphics_offset = contents.width / (enemies.size + 1) # Draws Enemies Graphics for i in 0...enemies.size draw_enemy_sprite(graphics_offset * (i + 1), 124, enemies[i].battler_name , enemies[i].battler_hue , pose, frame) end # HP, SP, and Gold Word hp_word = $data_system.words.hp sp_word = $data_system.words.sp gold_word = $data_system.words.gold # Draws Table Headings contents.draw_text(4, 128, width, 24, "Name") contents.draw_text(0, 128, 200, 24, "Max #{hp_word}", 2) contents.draw_text(0, 128, 300, 24, "Max #{sp_word}", 2) contents.draw_text(-4, 128, contents.width, 24, "#{gold_word} Award", 2) # Draws Enemies Stats contents.font.color = normal_color for i in 0...enemies.size # Sets Enemy Stats name, hp, sp, gold = "??????????", "???", "???", "?????" name, hp, sp = enemies[i].name, enemies[i].maxhp, enemies[i].maxsp if enemies[i].seen gold = enemies[i].gold if enemies[i].defeated # Draws Stats contents.draw_text(4, 152 + (i * 24), width, 24, name) contents.draw_text(0, 152 + (i * 24), 200, 24, "#{hp}", 2) contents.draw_text(0, 152 + (i * 24), 300, 24, "#{sp}", 2) contents.draw_text(-4, 152 + (i * 24), contents.width, 24, "#{gold}", 2) end end end end #============================================================================== # Window Monster Info #============================================================================== class Window_Monster_Info < Window_Base #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize super(200, 0, 440, 480) self.contents = Bitmap.new(width - 32, height - 32) end #-------------------------------------------------------------------------- # * Refresh # index : Index of enemy From $data_enemies # pose : Enemy Character Pose # frame : Frame of Pose #-------------------------------------------------------------------------- def refresh(index, pose, frame) # Clears Window contents.clear # Enemy enemy = $data_enemies[index] # Graphic Image draw_enemy_sprite(52, 100, enemy.battler_name , enemy.battler_hue, pose, frame) # Default Stats Set name = "??????????" maxhp = maxsp = str = dex = agi = int = atk = pdef = mdef = eva = "???" exp = gold = item_id = weapon_id = armor_id = treasure_prob = "?????" item_icon = weapon_icon = armor_icon = "049-Skill06" armor_type = 2 # If the Enemy has been seen if enemy.seen name = enemy.name maxhp = enemy.maxhp.to_s maxsp = enemy.maxsp.to_s str = enemy.str.to_s dex = enemy.dex.to_s agi = enemy.agi.to_s int = enemy.int.to_s atk = enemy.atk.to_s pdef = enemy.pdef.to_s mdef = enemy.mdef.to_s eva = enemy.eva.to_s end # If the Enemy has been Defeated if enemy.defeated exp = enemy.exp.to_s gold = enemy.gold.to_s if enemy.item_id == 0 item_id = "Nothing" item_icon = "032-Item01" else item_id = $data_items[enemy.item_id].name item_icon = $data_items[enemy.item_id].icon_name end if enemy.weapon_id == 0 weapon_id = "Nothing" weapon_icon = "032-Item01" else weapon_id = $data_weapons[enemy.weapon_id].name weapon_icon = $data_weapons[enemy.weapon_id].icon_name end if enemy.armor_id == 0 armor_id = "Nothing" armor_icon = "032-Item01" else armor_id = $data_armors[enemy.armor_id].name armor_icon = $data_armors[enemy.armor_id].icon_name armor_type = $data_armors[enemy.armor_id].type end treasure_prob = enemy.treasure_prob.to_s end # System Words g_word = $data_system.words.gold hp_word = $data_system.words.hp sp_word = $data_system.words.sp str_word = $data_system.words.str dex_word = $data_system.words.dex agi_word = $data_system.words.agi int_word = $data_system.words.int atk_word = $data_system.words.atk pdef_word = $data_system.words.pdef mdef_word = $data_system.words.mdef weapon_word = $data_system.words.weapon case armor_type when 0 ;armor_type = $data_system.words.armor1 when 1 ;armor_type = $data_system.words.armor2 when 2 ;armor_type = $data_system.words.armor3 when 3 ;armor_type = $data_system.words.armor4 end item_word = $data_system.words.item # Draws Name contents.font.color = normal_color contents.draw_text(116, 0, contents.width - 116, 32, name) # Draws Times Seen & Defeated contents.font.color = system_color contents.draw_text(116, 32, contents.width - 116, 32, "Times Seen:") contents.draw_text(116, 64, contents.width - 116, 32, "Times Defeated:") contents.font.color = normal_color contents.draw_text(0, 32, contents.width, 32, "#{enemy.seen_times}", 2) contents.draw_text(0, 64, contents.width, 32, "#{enemy.defeated_times}", 2) # Organizes Stats colomn_a_left = ["Max #{hp_word}", "Max #{sp_word}", str_word, dex_word, agi_word, int_word, atk_word, pdef_word, mdef_word, "Evasion"] colomn_a_right = [maxhp, maxsp, str,dex , agi, int, atk, pdef, mdef, eva] # Organized Victory Settings column_b_left = ["Experience Given:", "#{g_word} Dropped:", "#{item_word} Dropped:", "", "#{weapon_word} Dropped:", "", "#{armor_type} Dropped:", "", "Drop Pobabilty:"] column_b_right = [exp, gold, "", item_id, "", weapon_id, "", armor_id, treasure_prob] # Draws Stats for i in 0...colomn_a_left.size contents.font.color = system_color contents.draw_text(4, 160 + i * 32, 160, 32, colomn_a_left[i]) contents.font.color = normal_color contents.draw_text(-4, 160 + i * 32, 160, 32, colomn_a_right[i], 2) end # Draws Victory Settings for i in 0...column_b_left.size contents.font.color = system_color contents.draw_text(168, 160 + i * 32, contents.width, 32, column_b_left[i]) x = -4 x = -30 if i == 3 or i == 5 or i == 7 contents.font.color = normal_color contents.draw_text(x, 160 + i * 32, contents.width, 32, column_b_right[i], 2) end # Draws Item Icons bitmap = RPG::Cache.icon(item_icon) self.contents.blt(contents.width - 24, 260, bitmap, Rect.new(0, 0, 24, 24)) bitmap = RPG::Cache.icon(weapon_icon) self.contents.blt(contents.width - 24, 324, bitmap, Rect.new(0, 0, 24, 24)) bitmap = RPG::Cache.icon(armor_icon) self.contents.blt(contents.width - 24, 388, bitmap, Rect.new(0, 0, 24, 24)) end end #============================================================================== # Window Beastairy Controls #============================================================================== class Window_Beastairy_Controls < Window_Base #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize super(0, 288, 200, 192) self.contents = Bitmap.new(width - 32, height - 32) self.z = 999 refresh(0) end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh(phase) # Clears Window contents.clear disabled_system_color = Color.new(192, 224, 255, 128) contents.font.color = normal_color contents.draw_text(0, 0, contents.width, 24, "L / R : Change Pose") # Main Phase Controls contents.font.color = phase == 0 ? system_color : disabled_system_color contents.draw_text(4, 24, contents.width, 24, "Main") contents.font.color = phase == 0 ? normal_color : disabled_color contents.draw_text(8, 48, contents.width, 24, "B : Return to Map") contents.draw_text(8, 72, contents.width, 24, "C : Select Group") # Enemy Select Controls contents.font.color = phase == 1 ? system_color : disabled_system_color contents.draw_text(4, 96, contents.width, 24, "Enemy Select") contents.font.color = phase == 1 ? normal_color : disabled_color contents.draw_text(8, 120, contents.width, 24, "B : Return to Main") contents.draw_text(8, 140, contents.width, 24, "C : Test Battle") end end #============================================================================== # ** Class Scene Beastairy #============================================================================== class Scene_Beastairy #-------------------------------------------------------------------------- # * Main Processing #-------------------------------------------------------------------------- def main # Sets Main Phase @phase = 0 # Enemies Graphic Animation @pose, @frame, @counting_frame= 0, 0, 0 # Current Phase Window @phase_window = Window_Base.new(0, 0, width = 200, height = 64) @phase_window.contents = contents = Bitmap.new(width - 32, height - 32) @phase_window.contents.draw_text(0, 0, 168, 32, "Main Phase", 1) # Main Window (Enemy Groups) commands = $game_beastairy.monster_groups.dup commands.push("Exit") @enemy_groups = Window_Command.new(200, commands) @enemy_groups.y = 64 @enemy_groups.height = 224 # Controls Window @controls = Window_Beastairy_Controls.new # Monster Group Information Window @monster_window = Window_Monster_Group_Info.new @monster_window.refresh(0, 0, 0) # Enemy Information Window @enemy_window = Window_Monster_Info.new @enemy_window.visible = false # Scene Objects @objects = [@phase_window, @enemy_groups, @controls, @monster_window, @enemy_window] # Execute transition Graphics.transition # Main loop loop do # Update game screen Graphics.update # Update input information Input.update # Update Objects Information @objects.each {|x| x.update} # Frame update update # Abort loop if screen is changed break if $scene != self end # Prepare for transition Graphics.freeze # Dispose of Objects @objects.each {|x| x.dispose unless x.disposed?} end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update # Visiblity Changes Between Methods case @phase # Main Phase when 0 [@enemy_window].each {|x| x.visible = false if x.visible} [@enemy_groups, @monster_window].each {|x| x.visible = true unless x.visible} @enemy_groups.active = true when 1 [@enemy_window].each {|x| x.visible = true unless x.visible} [@enemy_groups, @monster_window].each {|x| x.visible = false if x.visible} @enemy_groups.active = false end # Updates Enemy Animation @counting_frame += 1 if @counting_frame == 8 @counting_frame = 0 @frame += 1 @frame = 0 if @frame == 4 if @phase == 0 @monster_window.refresh(@enemy_groups.index, @pose, @frame) else enemy_id = @enemies[@groups_enemies.index].id @enemy_window.refresh(enemy_id, @pose, @frame) end end # Current Phase Update case @phase when 0; main_update when 1; enemy_select end end #-------------------------------------------------------------------------- # * Main Frame Update #-------------------------------------------------------------------------- def main_update # Exit Scene if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) $game_temp.beastairy_return = false $scene = Scene_Map.new # Enemy Select elsif Input.trigger?(Input::C) $game_system.se_play($data_system.decision_se) if @enemy_groups.index == $game_beastairy.monster_groups.size $game_temp.beastairy_return = false $scene = Scene_Map.new else commands, @enemies = [], [] group = $game_beastairy.monster_groups[@enemy_groups.index] for i in 1...$data_enemies.size if $data_enemies[i].group == group commands.push($data_enemies[i].name) @enemies.push($data_enemies[i]) end end @groups_enemies = Window_Command.new(200, commands) @groups_enemies.y = 64 @groups_enemies.height = 224 # Phase Window Update @phase_window.contents.clear @phase_window.contents.draw_text(0, 0, 168, 32, "Enemy Select", 1) # Adds Object (For Updating) @objects.push(@groups_enemies) # Updates Controls Window @controls.refresh(1) enemy_id = @enemies[@groups_enemies.index].id @enemy_window.refresh(enemy_id, @pose, @frame) # Changes Phase @phase = 1 end # Changes Pose elsif Input.trigger?(Input::LEFT) $game_system.se_play($data_system.cursor_se) @pose == 0 ? @pose = 3 : @pose -= 1 elsif Input.trigger?(Input::RIGHT) $game_system.se_play($data_system.cursor_se) @pose == 3 ? @pose = 0 : @pose += 1 end end #-------------------------------------------------------------------------- # * Enemy Frame Update #-------------------------------------------------------------------------- def enemy_select # Exit Phase if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) @groups_enemies.dispose @objects.delete(@groups_enemies) # Phase Window Update @phase_window.contents.clear @phase_window.contents.draw_text(0, 0, 168, 32, "Main Phase", 1) # Updates Controls Window @controls.refresh(0) # Changes Phase @phase = 0 # Enemy Select elsif Input.trigger?(Input::C) enemy = @enemies[@groups_enemies.index] if enemy.seen $game_system.se_play($data_system.decision_se) enemy_name = enemy.name for i in 1...$data_troops.size if $data_troops[i].name == enemy_name $game_temp.beastairy_return = true $game_temp.battle_troop_id = i $game_temp.battle_can_escape = true $game_temp.battle_can_lose = false $game_temp.battle_proc = nil # Memorize map BGM and stop BGM $game_temp.map_bgm = $game_system.playing_bgm $game_system.bgm_stop # Play battle start SE $game_system.se_play($data_system.battle_start_se) # Play battle BGM $game_system.bgm_play($game_system.battle_bgm) # Straighten player position $game_player.straighten # Switch to battle screen $scene = Scene_Battle.new end end else $game_system.se_play($data_system.buzzer_se) end elsif Input.trigger?(Input::LEFT) $game_system.se_play($data_system.cursor_se) @pose == 0 ? @pose = 3 : @pose -= 1 elsif Input.trigger?(Input::RIGHT) $game_system.se_play($data_system.cursor_se) @pose == 3 ? @pose = 0 : @pose += 1 end end end #============================================================================== # ** Scene_Battle #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # * Alias Main Processing #-------------------------------------------------------------------------- alias beastairy_main main #-------------------------------------------------------------------------- # * Main Processing #-------------------------------------------------------------------------- def main unless $game_temp.beastairy_return @beastairy_troop = [] troop = $data_troops[$game_temp.battle_troop_id] for i in 0...troop.members.size enemy = $data_enemies[troop.members[i].enemy_id] @beastairy_troop.push(enemy) enemy.see end else @beastairy_troop = [] end beastairy_main end #-------------------------------------------------------------------------- # * Battle Ends # result : results (0:win 1:lose 2:escape) #-------------------------------------------------------------------------- def battle_end(result) # Clear in battle flag $game_temp.in_battle = false # Clear entire party actions flag $game_party.clear_actions # Remove battle states for actor in $game_party.actors actor.remove_states_battle end # Clear enemies $game_troop.enemies.clear # Call battle callback if $game_temp.battle_proc != nil $game_temp.battle_proc.call(result) $game_temp.battle_proc = nil end if $game_temp.beastairy_return $scene = Scene_Beastairy.new else if result == 0 for enemy in @beastairy_troop enemy.defeat end end $scene = Scene_Map.new end end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update # If battle event is running if $game_system.battle_interpreter.running? # Update interpreter $game_system.battle_interpreter.update # If a battler which is forcing actions doesn't exist if $game_temp.forcing_battler == nil # If battle event has finished running unless $game_system.battle_interpreter.running? # Rerun battle event set up if battle continues unless judge setup_battle_event end end # If not after battle phase if @phase != 5 # Refresh status window @status_window.refresh end end end # Update system (timer) and screen $game_system.update $game_screen.update # If timer has reached 0 if $game_system.timer_working and $game_system.timer == 0 # Abort battle $game_temp.battle_abort = true end # Update windows @help_window.update @party_command_window.update @actor_command_window.update @status_window.update @message_window.update # Update sprite set @spriteset.update # If transition is processing if $game_temp.transition_processing # Clear transition processing flag $game_temp.transition_processing = false # Execute transition if $game_temp.transition_name == "" Graphics.transition(20) else Graphics.transition(40, "Graphics/Transitions/" + $game_temp.transition_name) end end # If message window is showing if $game_temp.message_window_showing return end # If effect is showing if @spriteset.effect? return end # If game over if $game_temp.gameover # Switch to game over screen if $game_temp.beastairy_return $scene = Scene_Beastairy.new else $scene = Scene_Gameover.new end end # If returning to title screen if $game_temp.to_title # Switch to title screen $scene = Scene_Title.new return end # If battle is aborted if $game_temp.battle_abort # Return to BGM used before battle started $game_system.bgm_play($game_temp.map_bgm) # Battle ends battle_end(1) return end # If waiting if @wait_count > 0 # Decrease wait count @wait_count -= 1 return end # If battler forcing an action doesn't exist, # and battle event is running if $game_temp.forcing_battler == nil and $game_system.battle_interpreter.running? return end # Branch according to phase case @phase when 1 # pre-battle phase update_phase1 when 2 # party command phase update_phase2 when 3 # actor command phase update_phase3 when 4 # main phase update_phase4 when 5 # after battle phase update_phase5 end end #-------------------------------------------------------------------------- # * Start After Battle Phase #-------------------------------------------------------------------------- def start_phase5 # Shift to phase 5 @phase = 5 # Play battle end ME $game_system.me_play($game_system.battle_end_me) # Return to BGM before battle started $game_system.bgm_play($game_temp.map_bgm) # Initialize EXP, amount of gold, and treasure exp = 0 gold = 0 treasures = [] # Loop for enemy in $game_troop.enemies # If enemy is not hidden unless enemy.hidden unless $game_temp.beastairy_return # Add EXP and amount of gold obtained exp += enemy.exp gold += enemy.gold # Determine if treasure appears if rand(100) < enemy.treasure_prob if enemy.item_id > 0 treasures.push($data_items[enemy.item_id]) end if enemy.weapon_id > 0 treasures.push($data_weapons[enemy.weapon_id]) end if enemy.armor_id > 0 treasures.push($data_armors[enemy.armor_id]) end end end end end # Treasure is limited to a maximum of 6 items treasures = treasures[0..5] # Obtaining EXP for i in 0...$game_party.actors.size actor = $game_party.actors[i] if actor.cant_get_exp? == false last_level = actor.level actor.exp += exp if actor.level > last_level @status_window.level_up(i) end end end # Obtaining gold $game_party.gain_gold(gold) # Obtaining treasure for item in treasures case item when RPG::Item $game_party.gain_item(item.id, 1) when RPG::Weapon $game_party.gain_weapon(item.id, 1) when RPG::Armor $game_party.gain_armor(item.id, 1) end end # Make battle result window @result_window = Window_BattleResult.new(exp, gold, treasures) # Set wait count @phase5_wait_count = 100 end end

    636 downloads

    1 comment

    Updated

  18. Diego's CMS

    Diego's CMS
     
    For more information and screenshots, visit the web page:
    http://www.rmxpunlimited.net/index.php/rmx...diegos-cms.html

    1,292 downloads

    15 comments

    Updated

  19. Weather Script

    Information and notes here:
    http://www.rmxpunlimited.net/index.php/rmx...her-script.html

    756 downloads

    1 comment

    Updated

  20. RMXP meets Flash v1.0

    This Script will allow you to play Flash Movies in RPG Maker XP.

    572 downloads

    0 comments

    Updated

  21. Mr.Mo's ABS v4.5

    Mr Mo's ABS
     
    Introduction
    Version : V 4.5
    I wasn't happy with all the other ABSs, so I made this ABS with many features and customizable as possible.
     
    Features
    Here are some(most features can be toggled off/on, see the help file);
    - Improved AI
    - Event Vs Event
    - Player Vs Event
    - Able to choose if a monster attacks the closest enemy or random
    - Able to assign any hot keys for skills and items.
    - Able to use Non-Ranged Skills(attacks closest enemy)
    - Able to choose button Mash time for each attack or skill. If left blank the default is 3 seconds(can change).
    - Displays Demage
    - Level Up Display
    - Kick Back Effect
    - Fade dead enemies
    - ABS off/on. i.e $ABS.active = false # Off
    - Dash and Sneak, can be turned off.
    - Able to turn off and on the hud.
    - Able to animate monsters and player.
    - State Effects and Animations
    - Smaller Animations
    - and more..! (See the Help File)
     
    Thanks and Credits
    Credit me and Near Fantastica.
    # Thanks to Near Fantastica's methods;
    # - In Range?, Get Range, In Direction?, enemy_dead?, treasure
    # - RANGE_WEAPONS, RANGE_SKILLS
    # - Class Game_Range(highly modified for convinience)
    # - Scene_Skill(main, update_shk)
    This is not an edit of Near Fantastica's ABS. I wrote mines from scratch, except for the methods I listed.
     
    If you plan to use the blonde girl that comes with this, give credit to Prexus too, for using them.
     
    If you plan to use the Hud:
    Credit Trickster for the Gradient Bars
    Credit Me for coding it.
    Credit Axerax for designing it and coding it

    3,411 downloads

    12 comments

    Updated

  22. Chrono Trigger CMS

    Chrono Trigger CMS
     
    Introduction
     
    A CMS that looks like the menu system in the videogame Chrono Trigger
     
    Update: September, 14th
    Added a Windowskin version of the menu and fixed some bugs.
     
    Update: September, 19th
    Added a ring menu version of the script
     
    Features
     
    * new item menu
    * new skill menu (no double or tripple techs included)
    * new equip menu
    * party order changing feature
    * new save and load menu
    Update: September, 19th
    * ring menu command window
     
    Instructions
     
    Instructions are within the scripts in the demo.
     
    FAQ
    [spoiler=How to make it compatible with Dubealex's AMS]
    In the CMS find these lines:

    def write_save_data(file) # Make character data for drawing save file characters = [] for i in 0...$game_party.actors.size actor = $game_party.actors[i] characters.push([actor.character_name, actor.character_hue]) end # Write character data for drawing save file Marshal.dump(characters, file) # Wrire frame count for measuring play time Marshal.dump(Graphics.frame_count, file) # Increase save count by 1 $game_system.save_count += 1 # Save magic number # (A random value will be written each time saving with editor) $game_system.magic_number = $data_system.magic_number # Write each type of game object Marshal.dump($game_system, file) Marshal.dump($game_switches, file) Marshal.dump($game_variables, file) Marshal.dump($game_self_switches, file) Marshal.dump($game_screen, file) Marshal.dump($game_actors, file) Marshal.dump($game_party, file) Marshal.dump($game_troop, file) Marshal.dump($game_map, file) Marshal.dump($game_player, file) end
    After Marshal.dump($game_player, file) add
    Marshal.dump($ams, file)
     
    You old save file won't work, but new ones will.
     
     
    [spoiler=How to use only the save menu(Windowskin Version)]For the save menu put this script above main:

    #============================================================================== # ** Chrono Trigger Save Menu #------------------------------------------------------------------------------ # Raziel # 2006-09-09 # Version 1.00 #============================================================================== # ~Instructions # Icons of the characters are used in the save menu. # Make sure you put them in the icon folder and name them # like you name your character file, for example the icon for # Arshes would be 001-Fighter01 # # For the chapter function, just use $game_system.chapter = "desired filename" # in a call script command and then the savefile will have the name # you choose. #============================================================================== #============================================================================== # ** Scene_File #------------------------------------------------------------------------------ # This is a superclass for the save screen and load screen. #============================================================================== class Scene_File #-------------------------------------------------------------------------- # * Object Initialization # help_text : text string shown in the help window #-------------------------------------------------------------------------- def initialize(help_text) @help_text = help_text end #-------------------------------------------------------------------------- # * Main Processing #-------------------------------------------------------------------------- def main # Make save file window @back_ground = Sprite.new @back_ground.bitmap = RPG::Cache.picture(CT_Pictures::BG_Picture) @save_window = [] @save_window[0] = Window_Base.new(39,32, 560, 70) @save_window[1] = Window_Base.new(39,102, 560, 70) @save_window[2] = Window_Base.new(39,172, 560, 70) @save_left = Window_Base.new(39,273,241,172) @save_right = Window_Base.new(280,273,320,172) @savefile_windows = [] @save_status = Window_SaveStatus.new for i in 0..2 @savefile_windows.push(Window_SaveFile.new(i, make_filename(i))) end # Select last file to be operated @file_index = $game_temp.last_file_index @savefile_windows[@file_index].selected = true # 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 @save_status.dispose @back_ground.dispose @save_left.dispose @save_right.dispose for i in 0..2 @save_window[i].dispose end for i in @savefile_windows i.dispose end end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update @save_status.update $game_temp.save_index = @file_index if Input.trigger?(Input::C) # Call method: on_decision (defined by the subclasses) on_decision(make_filename(@file_index)) $game_temp.last_file_index = @file_index return end # If B button was pressed if Input.trigger?(Input::B) # Call method: on_cancel (defined by the subclasses) on_cancel return end # If the down directional button was pressed if Input.repeat?(Input::DOWN) # If the down directional button pressed down is not a repeat, # or cursor position is more in front than 3 unless @file_index == 2 if Input.trigger?(Input::DOWN) # Play cursor SE $game_system.se_play($data_system.cursor_se) # Move cursor down @savefile_windows[@file_index].selected = false @file_index = (@file_index + 1) @savefile_windows[@file_index].selected = true return end end # If the up directional button was pressed elsif Input.repeat?(Input::UP) # If the up directional button pressed down is not a repeat、 # or cursor position is more in back than 0 unless @file_index == 0 if Input.trigger?(Input::UP) # Play cursor SE $game_system.se_play($data_system.cursor_se) # Move cursor up @savefile_windows[@file_index].selected = false @file_index = (@file_index - 1) @savefile_windows[@file_index].selected = true return end end end end end #============================================================================== # ** Game_System #------------------------------------------------------------------------------ # This class handles data surrounding the system. Backround music, etc. # is managed here as well. Refer to "$game_system" for the instance of # this class. #============================================================================== class Game_System attr_accessor :chapter alias raz_cms_system_initialize initialize #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize @chapter = "" raz_cms_system_initialize end end #============================================================================== # ** Game_Temp #------------------------------------------------------------------------------ # This class handles temporary data that is not included with save data. # Refer to "$game_temp" for the instance of this class. #============================================================================== class Game_Temp attr_accessor :save_index alias raz_cms_initialize initialize #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize @save_index = 0 raz_cms_initialize end end #============================================================================== # ** Window_SaveStatus #------------------------------------------------------------------------------ # This window displays stats on the save files. #============================================================================== class Window_SaveStatus < Window_Base #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize super(0,0,640,480) self.contents = Bitmap.new(width - 32, height - 32) self.opacity = 0 @index = $game_temp.save_index refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear filename = "Save#{$game_temp.save_index + 1}.rxdata" return unless FileTest.exist?(filename) file = File.open(filename, "r") @characters = Marshal.load(file) @frame_count = Marshal.load(file) @game_system = Marshal.load(file) @game_switches = Marshal.load(file) @game_variables = Marshal.load(file) Marshal.load(file) Marshal.load(file) Marshal.load(file) party = Marshal.load(file) Marshal.load(file) map = Marshal.load(file) self.contents.font.size = 20 self.contents.font.bold = true for i in 0...party.actors.size actor = party.actors[i] x = 284 y = i * 36 + 265 draw_actor_name(actor, x + 40, y - 2) draw_actor_level(actor, x + 170, y - 2) self.contents.blt(x + 5, y + 10, RPG::Cache.icon(actor.character_name), Rect.new(0,0,24,24)) self.contents.draw_text(x + 40, y + 16, 150, 32, "#{$data_system.words.hp} #{actor.hp} / #{actor.maxhp}") self.contents.draw_text(x + 170, y + 16, 150, 32, "#{$data_system.words.sp} #{actor.sp} / #{actor.maxsp}") end total_sec = @frame_count / Graphics.frame_rate hour = total_sec / 60 / 60 min = total_sec / 60 % 60 sec = total_sec % 60 text = sprintf("%02d:%02d:%02d", hour, min, sec) map_name = load_data("Data/MapInfos.rxdata")[map.map_id].name self.contents.font.size = 20 self.contents.draw_text(45, 272, 144, 32, map_name) self.contents.draw_text(45, 304, 144, 32, "TIME:") self.contents.draw_text(100, 304, 144, 32, text,2) self.contents.draw_text(45, 336, 144, 32, $data_system.words.gold + ":") self.contents.draw_text(100, 336, 144, 32, party.gold.to_s,2) self.contents.draw_text(45, 368, 144, 32, "Save #:") self.contents.draw_text(100, 368, 144, 32, @game_system.save_count.to_s, 2) end #-------------------------------------------------------------------------- # * Update #-------------------------------------------------------------------------- def update super if @index != $game_temp.save_index refresh @index = $game_temp.save_index end end end #============================================================================== # ** Window_SaveFile #------------------------------------------------------------------------------ # This window displays save files on the save and load screens. #============================================================================== class Window_SaveFile < Window_Base #-------------------------------------------------------------------------- # * Object Initialization # file_index : save file index (0-2) # filename : file name #-------------------------------------------------------------------------- def initialize(file_index, filename) super(42, 35 + file_index % 4 * 70, 640, 90) self.contents = Bitmap.new(width - 32, height - 32) self.opacity = 0 @file_index = file_index @filename = "Save#{@file_index + 1}.rxdata" @time_stamp = Time.at(0) @file_exist = FileTest.exist?(@filename) if @file_exist file = File.open(@filename, "r") @time_stamp = file.mtime @characters = Marshal.load(file) @frame_count = Marshal.load(file) @game_system = Marshal.load(file) @game_switches = Marshal.load(file) @game_variables = Marshal.load(file) @total_sec = @frame_count / Graphics.frame_rate file.close end refresh @selected = false end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear self.contents.font.size = 18 self.contents.font.bold = true # Draw file number self.contents.font.color = normal_color name = "File#{@file_index + 1}" self.contents.draw_text(4, 0, 600, 32, name) @name_width = contents.text_size(name).width # If save file exists if @file_exist self.contents.draw_text(0, 0, 600, 32, @game_system.chapter.to_s,1) end end end
     
     
    Compatibility
     
    Incompatible with some menu add ons. You'd have to edit some things to include them.
    If you want to include something just ask, maybe I can help you.
     
    Credits and Thanks
     
    Credits to Squall / Selwyn for his cursor script
    Credits to Der VVulfman for the ring menu.
    Thanks to RPG Advocate for the party order changing method.
    Thanks to MeisMe for helping me out fixing some bugs.
    Thanks to SephirothSpawn and Stevo for betatesting.
     
    Credits to Nin for the background picture of the windowskin version.
    I don't know who made the windowskin or the icons, so if you know who made them, please PM me so I can add those to the credit list.
     
    Author's Notes
    In the instructions in the script it says use $game_system = "desired filename" to store the savefile's name, but it should be $game_system.chapter = "desired filename".
    You can see it as an example within the demo when you click the event.
    Enjoy

    1,612 downloads

    5 comments

    Updated

  23. Materia System

    Materia System
     
    Introduction
    Brings back Final Fantasy VII's Glorious Materia System.
     
    Features
    * Lets you customize your Equipments' Paired and single slots
    * Includes a Materia Shop, to Purchse & Sell Materia
    * Create Your Own Materia (Does Require Some Work)
    * The Following Materia Types are avialable
    o Skill
    o Command
    o Summon
    o Support
    o Independent
    * The Following Materia Are Included
    o Heal
    o Remedy
    o Fire
    o Ice
    o Electric
    o Water
    o Earth
    o Wind
    o Light
    o Dark
    o Negla
    o Poison
    o Dizzy
    o Mute
    o Confuse
    o Sleep
    o Paraylze
    o Weak
    o Clumbsiness
    o Delayed
    o Enfeebled
    o Sharpen
    o Barrier
    o Resist
    o Blink
    o Fighter
    o Lancer
    o Warrior
    o Thief
    o Hunter
    o Gunner
    o Summon 1
    o Summon 2
    o Summon 3
    o All
    o Elemental
    o Status
    o Steal as well
    o HP Absorb
    o MP Absorb
    o MP Turbo
    o Exp Plus
    o Gil Plus
    o HP Plus
    o SP Plus
    o Strength Plus
    o Defense Plus
    o Speed Plus
    o Magic Plus
     
    Customizing the Script to Your Game
     
    Editing Equipment Materia Slots
    In the script, find the line: WEAPON_MATERIA_SLOTS = {
     
    Below that, is a created hash for the default Weapon set.
     
    You will need to customize that, like so:

    weapon_id => [number_of_paired_materia, single_materia]
     
    =>[2, 3] would assing Weapon 1 in the database with 2 sets of paired materia, and 3 single slots.
     
    Below that is ARMORS_MATERIA_SLOTS = {
     
    Do the same thing here.
     
    Creating your own materia and materia List
    Find the line: MATERIA_LIST = [nil,
     
    Below that, is an array Materia that will be included in your game.
     
    You create Materia like so:

    Materia.new(id, name, type, stat_effects, elements, states, new_value, m_value, skills, exp_levels, special_effect) # - id : The Idea Number of you materia. Start from 1 and add 1 # - name : The Name of your materia # - type : The Type Of Materia. Choose From One of The Following: # 'Skill', 'Command', 'Summon', 'Support', 'Independent' # - stat_effects : The Percent of each stat that materia will effect # [ Hp, Sp, Str, Dex, Agi, Int ] # - elements : An Array of each Element ID from the systems tab # - states : An Array of each State Id from the Status tab # - new_value : The cost to buy the Materia # - master_value : The value of the Materia when Mastered # - Skills : An array of the skills you learn from the Materia. # (Use for Skill, Command & Summon) # - Exp Levels : An array of the experience required to level # The First value in the array is required to get level 2 # - Special Effect : A special Effect of the Materia. # ~ All # ~ Elemental # ~ Status # ~ Steal As Well # ~ HP Absorb # ~ MP Absorb # ~ MP Turbo # ~ Exp Plus # ~ Gil Plus # ~ HP Plus # ~ SP Plus # ~ Strength Plus # ~ Defense Plus # ~ Speed Plus # ~ Magic Plus #------------------------------------------------------------------------------
     
    Just check the materia in the demo to learn how to create and customize your own materia.
     
    Instructions
    Place the Script Above Main, below Scene_Battle.
     
    FAQ
     
    How do you call the Materia Shop?

    # Create an Array of materia that will be in your show. These will be the indexes in your Materia List. IE: list = [1, 2, 3, 4, 5, 6] $scene = Scene_MateriaShop.new(list)
    How do you call the Materia Equip Screen?

    $scene = Scene_MateriaEquip.new
     
    Compatibility
     
    Is SDK Compatable & Compiant. Works with and without SDK.
    The only method that was overwrote, was Game_Actor#exp. Every other method should be fine.
     
    Credits and Thanks
     
    Illustration & Deke for there Previous Works. Gave me inspiration for this.
     
    Author's Notes
    Enjoy!

    1,048 downloads

    3 comments

    Updated

  24. Double Weapons Script

    #================================= # class Game_Actor mod's... -Midge- #================================= # This is where the meat of the script takes place... # there is alot to be accounted for here too.. # i had to make sure that all the stat stuff was being # from all the right things... in fact i think most of the # original class has been modded here... not sure on that # and too lazy to check and see... let's hope that you haven't # made any forgetable changes to this before... #================================= class Game_Actor < Game_Battler attr_accessor :weapon_type attr_accessor :armor_type attr_accessor :sec_attack alias double_weapons_initialize initialize def initialize(actor_id) double_weapons_initialize(actor_id) @weapon_type = $data_weapons[@weapon_id] @armor_type = $data_armors[@armor1_id] @sec_attack = nil end def animation3_id weapon = $data_weapons[@armor1_id] return (weapon != nil ? weapon.animation1_id : 0) end def animation4_id weapon = $data_weapons[@armor1_id] return (weapon != nil ? weapon.animation2_id : 0) end def two_shields if (self.weapon_type.is_a?(RPG::Armor) and self.armor_type.is_a?(RPG::Armor)) and (self.weapon_id != 0 and self.armor1_id != 0) return true else return false end end def two_weapons if (self.weapon_type.is_a?(RPG::Weapon) and self.armor_type.is_a?(RPG::Weapon)) and (self.weapon_id != 0 and self.armor1_id != 0) return true else return false end end def equip(equip_type, id, item = RPG::Armor) case equip_type when 0 if @weapon_id == 0 if item.is_a?(RPG::Weapon) if id == 0 or $game_party.weapon_number(id) > 0 self.weapon_type = $data_weapons[id] @weapon_id = id $game_party.lose_weapon(id, 1) end elsif item.is_a?(RPG::Armor) if id == 0 or $game_party.weapon_number(id) > 0 self.weapon_type = $data_armors[id] @weapon_id = id $game_party.lose_armor(id, 1) end end end if item == nil if self.weapon_type.is_a?(RPG::Weapon) if id == 0 or $game_party.weapon_number(id) > 0 $game_party.gain_weapon(@weapon_id, 1) @weapon_id = id end elsif self.weapon_type.is_a?(RPG::Armor) if id == 0 or $game_party.armor_number(id) > 0 $game_party.gain_armor(@weapon_id, 1) @weapon_id = id end end end if item.is_a?(RPG::Weapon) if self.weapon_type.is_a?(RPG::Weapon) if id == 0 or $game_party.weapon_number(id) > 0 $game_party.gain_weapon(@weapon_id, 1) self.weapon_type = $data_weapons[id] @weapon_id = id $game_party.lose_weapon(id, 1) end elsif self.weapon_type.is_a?(RPG::Armor) if id == 0 or $game_party.weapon_number(id) > 0 $game_party.gain_armor(@weapon_id, 1) self.weapon_type = $data_weapons[id] @weapon_id = id $game_party.lose_weapon(id, 1) end end elsif item.is_a?(RPG::Armor) if self.weapon_type.is_a?(RPG::Armor) if id == 0 or $game_party.armor_number(id) > 0 $game_party.gain_armor(@weapon_id, 1) self.weapon_type = $data_armors[id] @weapon_id = id $game_party.lose_armor(id, 1) end elsif self.weapon_type.is_a?(RPG::Weapon) if id == 0 or $game_party.armor_number(id) > 0 $game_party.gain_weapon(@weapon_id, 1) self.weapon_type = $data_armors[id] @weapon_id = id $game_party.lose_armor(id, 1) end end end when 1 if @armor1_id == 0 if item.is_a?(RPG::Weapon) if id == 0 or $game_party.weapon_number(id) > 0 self.armor_type = $data_weapons[id] @armor1_id = id $game_party.lose_weapon(id, 1) end elsif item.is_a?(RPG::Armor) if id == 0 or $game_party.armor_number(id) > 0 self.armor_type = $data_armors[id] @armor1_id = id $game_party.lose_armor(id, 1) end end end if item == nil if self.armor_type.is_a?(RPG::Weapon) if id == 0 or $game_party.weapon_number(id) > 0 $game_party.gain_weapon(@armor1_id, 1) @armor1_id = id end elsif self.armor_type.is_a?(RPG::Armor) if id == 0 or $game_party.armor_number(id) > 0 $game_party.gain_armor(@armor1_id, 1) @armor1_id = id end end end if item.is_a?(RPG::Weapon) if self.armor_type.is_a?(RPG::Weapon) if id == 0 or $game_party.weapon_number(id) > 0 $game_party.gain_weapon(@armor1_id, 1) self.armor_type = $data_weapons[id] @armor1_id = id $game_party.lose_weapon(id, 1) end elsif self.armor_type.is_a?(RPG::Armor) if id == 0 or $game_party.weapon_number(id) > 0 $game_party.gain_armor(@armor1_id, 1) self.armor_type = $data_weapons[id] @armor1_id = id $game_party.lose_weapon(id, 1) end end elsif item.is_a?(RPG::Armor) if self.armor_type.is_a?(RPG::Armor) if id == 0 or $game_party.armor_number(id) > 0 $game_party.gain_armor(@armor1_id, 1) self.armor_type = $data_armors[id] @armor1_id = id $game_party.lose_armor(id, 1) end elsif self.armor_type.is_a?(RPG::Weapon) if id == 0 or $game_party.armor_number(id) > 0 $game_party.gain_weapon(@armor1_id, 1) self.armor_type = $data_armors[id] @armor1_id = id $game_party.lose_armor(id, 1) end end end when 2 if id == 0 or $game_party.armor_number(id) > 0 update_auto_state($data_armors[@armor2_id], $data_armors[id]) $game_party.gain_armor(@armor2_id, 1) @armor2_id = id $game_party.lose_armor(id, 1) end when 3 if id == 0 or $game_party.armor_number(id) > 0 update_auto_state($data_armors[@armor3_id], $data_armors[id]) $game_party.gain_armor(@armor3_id, 1) @armor3_id = id $game_party.lose_armor(id, 1) end when 4 if id == 0 or $game_party.armor_number(id) > 0 update_auto_state($data_armors[@armor4_id], $data_armors[id]) $game_party.gain_armor(@armor4_id, 1) @armor4_id = id $game_party.lose_armor(id, 1) end end end def element_rate(element_id) table = [0,200,150,100,50,0,-100] result = table[$data_classes[@class_id].element_ranks[element_id]] if self.armor_type.is_a?(RPG::Weapon) for i in [@armor2_id, @armor3_id, @armor4_id] armor = $data_armors[i] if armor != nil and armor.guard_element_set.include?(element_id) result /= 2 end end else for i in [@armor1_id, @armor2_id, @armor3_id, @armor4_id] armor = $data_armors[i] if armor != nil and armor.guard_element_set.include?(element_id) result /= 2 end end end for i in @states if $data_states[i].guard_element_set.include?(element_id) result /= 2 end end return result end def state_guard?(state_id) if self.armor_type.is_a?(RPG::Weapon) for i in [@armor2_id, @armor3_id, @armor4_id] armor = $data_armors[i] if armor != nil if armor.guard_state_set.include?(state_id) return true end end end else return false for i in [@armor1_id, @armor2_id, @armor3_id, @armor4_id] armor = $data_armors[i] if armor != nil if armor.guard_state_set.include?(state_id) return true end end end return false end end def element_set n = [] unless self.weapon_type.is_a?(RPG::Armor) weapon = $data_weapons[@weapon_id] n += weapon != nil ? weapon.element_set : [] end unless self.armor_type.is_a?(RPG::Armor) weapon2 = $data_weapons[@armor1_id] n += weapon2 != nil ? weapon2.element_set : [] end n.flatten! n.uniq! return n end def plus_state_set n = [] unless self.weapon_type.is_a?(RPG::Armor) weapon = $data_weapons[@weapon_id] n += weapon != nil ? weapon.plus_state_set : [] end unless self.armor_type.is_a?(RPG::Armor) weapon2 = $data_weapons[@armor1_id] n += weapon2 != nil ? weapon2.plus_state_set : [] end n.flatten! n.uniq! return n end def minus_state_set n = [] unless self.weapon_type.is_a?(RPG::Armor) weapon = $data_weapons[@weapon_id] n += weapon != nil ? weapon.minus_state_set : [] end unless self.armor_type.is_a?(RPG::Armor) weapon2 = $data_weapons[@armor1_id] n += weapon2 != nil ? weapon2.minus_state_set : [] end n.flatten! n.uniq! return n end def base_str n = $data_actors[@actor_id].parameters[2, @level] if self.weapon_type.is_a?(RPG::Weapon) weapon = $data_weapons[@weapon_id] elsif self.weapon_type.is_a?(RPG::Armor) weapon = $data_armors[@armor1_id] end if self.armor_type.is_a?(RPG::Armor) armor1 = $data_armors[@armor1_id] elsif self.armor_type.is_a?(RPG::Weapon) armor1 = $data_weapons[@armor1_id] end armor2 = $data_armors[@armor2_id] armor3 = $data_armors[@armor3_id] armor4 = $data_armors[@armor4_id] n += weapon != nil ? weapon.str_plus : 0 n += armor1 != nil ? armor1.str_plus : 0 n += armor2 != nil ? armor2.str_plus : 0 n += armor3 != nil ? armor3.str_plus : 0 n += armor4 != nil ? armor4.str_plus : 0 return [[n, 1].max, 999].min end def base_dex n = $data_actors[@actor_id].parameters[3, @level] if self.weapon_type.is_a?(RPG::Weapon) weapon = $data_weapons[@weapon_id] elsif self.weapon_type.is_a?(RPG::Armor) weapon = $data_armors[@armor1_id] end if self.armor_type.is_a?(RPG::Armor) armor1 = $data_armors[@armor1_id] elsif self.armor_type.is_a?(RPG::Weapon) armor1 = $data_weapons[@armor1_id] end armor2 = $data_armors[@armor2_id] armor3 = $data_armors[@armor3_id] armor4 = $data_armors[@armor4_id] n += weapon != nil ? weapon.dex_plus : 0 n += armor1 != nil ? armor1.dex_plus : 0 n += armor2 != nil ? armor2.dex_plus : 0 n += armor3 != nil ? armor3.dex_plus : 0 n += armor4 != nil ? armor4.dex_plus : 0 return [[n, 1].max, 999].min end def base_agi n = $data_actors[@actor_id].parameters[4, @level] if self.weapon_type.is_a?(RPG::Weapon) weapon = $data_weapons[@weapon_id] elsif self.weapon_type.is_a?(RPG::Armor) weapon = $data_armors[@armor1_id] end if self.armor_type.is_a?(RPG::Armor) armor1 = $data_armors[@armor1_id] elsif self.armor_type.is_a?(RPG::Weapon) armor1 = $data_weapons[@armor1_id] end armor2 = $data_armors[@armor2_id] armor3 = $data_armors[@armor3_id] armor4 = $data_armors[@armor4_id] n += weapon != nil ? weapon.agi_plus : 0 n += armor1 != nil ? armor1.agi_plus : 0 n += armor2 != nil ? armor2.agi_plus : 0 n += armor3 != nil ? armor3.agi_plus : 0 n += armor4 != nil ? armor4.agi_plus : 0 return [[n, 1].max, 999].min end def base_int n = $data_actors[@actor_id].parameters[5, @level] if self.weapon_type.is_a?(RPG::Weapon) weapon = $data_weapons[@weapon_id] elsif self.weapon_type.is_a?(RPG::Armor) weapon = $data_armors[@armor1_id] end if self.armor_type.is_a?(RPG::Armor) armor1 = $data_armors[@armor1_id] elsif self.armor_type.is_a?(RPG::Weapon) armor1 = $data_weapons[@armor1_id] end armor2 = $data_armors[@armor2_id] armor3 = $data_armors[@armor3_id] armor4 = $data_armors[@armor4_id] n += weapon != nil ? weapon.int_plus : 0 n += armor1 != nil ? armor1.int_plus : 0 n += armor2 != nil ? armor2.int_plus : 0 n += armor3 != nil ? armor3.int_plus : 0 n += armor4 != nil ? armor4.int_plus : 0 return [[n, 1].max, 999].min end def base_atk n = 0 unless self.weapon_type.is_a?(RPG::Armor) weapon = $data_weapons[@weapon_id] n += weapon != nil ? weapon.atk : 0 end unless self.armor_type.is_a?(RPG::Armor) weapon2 = $data_weapons[@armor1_id] n += weapon2 != nil ? weapon2.atk : 0 end return n end def base_pdef if self.weapon_type.is_a?(RPG::Weapon) weapon = $data_weapons[@weapon_id] elsif self.weapon_type.is_a?(RPG::Armor) weapon = $data_armors[@armor1_id] end if self.armor_type.is_a?(RPG::Armor) armor1 = $data_armors[@armor1_id] elsif self.armor_type.is_a?(RPG::Weapon) armor1 = $data_weapons[@armor1_id] end armor2 = $data_armors[@armor2_id] armor3 = $data_armors[@armor3_id] armor4 = $data_armors[@armor4_id] pdef1 = weapon != nil ? weapon.pdef : 0 pdef2 = armor1 != nil ? armor1.pdef : 0 pdef3 = armor2 != nil ? armor2.pdef : 0 pdef4 = armor3 != nil ? armor3.pdef : 0 pdef5 = armor4 != nil ? armor4.pdef : 0 return pdef1 + pdef2 + pdef3 + pdef4 + pdef5 end def base_mdef if self.weapon_type.is_a?(RPG::Weapon) weapon = $data_weapons[@weapon_id] elsif self.weapon_type.is_a?(RPG::Armor) weapon = $data_armors[@armor1_id] end if self.armor_type.is_a?(RPG::Armor) armor1 = $data_armors[@armor1_id] elsif self.armor_type.is_a?(RPG::Weapon) armor1 = $data_weapons[@armor1_id] end armor2 = $data_armors[@armor2_id] armor3 = $data_armors[@armor3_id] armor4 = $data_armors[@armor4_id] mdef1 = weapon != nil ? weapon.mdef : 0 mdef2 = armor1 != nil ? armor1.mdef : 0 mdef3 = armor2 != nil ? armor2.mdef : 0 mdef4 = armor3 != nil ? armor3.mdef : 0 mdef5 = armor4 != nil ? armor4.mdef : 0 return mdef1 + mdef2 + mdef3 + mdef4 + mdef5 end def base_eva armor1 = $data_armors[@armor1_id] armor2 = $data_armors[@armor2_id] armor3 = $data_armors[@armor3_id] armor4 = $data_armors[@armor4_id] eva1 = armor1 != nil ? armor1.eva : 0 eva2 = armor2 != nil ? armor2.eva : 0 eva3 = armor3 != nil ? armor3.eva : 0 eva4 = armor4 != nil ? armor4.eva : 0 return eva1 + eva2 + eva3 + eva4 end end #================================= # end -O- Game_Actor changes -Midge- #================================= #================================= # class Window_EquipRight mods... -Midge- #================================= # this is just so that it will display the right stuff that # you have equipped in the two hands... #================================= class Window_EquipRight < Window_Selectable def refresh self.contents.clear @data = [] @data.push($data_weapons[@actor.weapon_id]) @data.push($data_armors[@actor.armor1_id]) if @actor.weapon_type.is_a?(RPG::Weapon) @data[0] = $data_weapons[@actor.weapon_id] elsif @actor.weapon_type.is_a?(RPG::Armor) @data[0] = $data_armors[@actor.weapon_id] end if @actor.armor_type.is_a?(RPG::Weapon) @data[1] = $data_weapons[@actor.armor1_id] elsif @actor.armor_type.is_a?(RPG::Armor) @data[1] = $data_armors[@actor.armor1_id] end @data.push($data_armors[@actor.armor2_id]) @data.push($data_armors[@actor.armor3_id]) @data.push($data_armors[@actor.armor4_id]) @item_max = @data.size self.contents.font.color = system_color self.contents.draw_text(4, 32 * 0, 92, 32, $data_system.words.weapon) self.contents.draw_text(4, 32 * 1, 92, 32, $data_system.words.armor1) self.contents.draw_text(4, 32 * 2, 92, 32, $data_system.words.armor2) self.contents.draw_text(4, 32 * 3, 92, 32, $data_system.words.armor3) self.contents.draw_text(5, 32 * 4, 92, 32, $data_system.words.armor4) draw_item_name(@data[0], 92, 32 * 0) draw_item_name(@data[1], 92, 32 * 1) draw_item_name(@data[2], 92, 32 * 2) draw_item_name(@data[3], 92, 32 * 3) draw_item_name(@data[4], 92, 32 * 4) end end #================================= # End -O- Window_EquipRight Mods... -Midge- #================================= #================================= # class Window_EquipItem mods... -Midge- #================================= # basically i just made it so that both the weapons and # sheilds would be displayed in the weapon and shield # hands... both of them... so you can equip either in # either hand... anyway.. its all cool and stuff... #================================= class Window_EquipItem < Window_Selectable def refresh if self.contents != nil self.contents.dispose self.contents = nil end @data = [] if @equip_type == 0 weapon_set = $data_classes[@actor.class_id].weapon_set for i in 1...$data_weapons.size if $game_party.weapon_number(i) > 0 and weapon_set.include?(i) @data.push($data_weapons[i]) end end armor_set = $data_classes[@actor.class_id].armor_set for i in 1...$data_armors.size if $game_party.armor_number(i) > 0 and armor_set.include?(i) if $data_armors[i].kind == 0 @data.push($data_armors[i]) end end end end if @equip_type != 0 if @equip_type == 1 weapon_set = $data_classes[@actor.class_id].weapon_set for i in 1...$data_weapons.size if $game_party.weapon_number(i) > 0 and weapon_set.include?(i) @data.push($data_weapons[i]) end end end armor_set = $data_classes[@actor.class_id].armor_set for i in 1...$data_armors.size if $game_party.armor_number(i) > 0 and armor_set.include?(i) if $data_armors[i].kind == @equip_type-1 @data.push($data_armors[i]) end end end end @data.push(nil) @item_max = @data.size self.contents = Bitmap.new(width - 32, row_max * 32) self.contents.font.name = $defaultfonttype self.contents.font.size = $defaultfontsize for i in 0...@item_max-1 draw_item(i) end end end #================================= # End -O- Window_EquipItem mod's... -Midge- #================================= class Scene_Equip def refresh @item_window1.visible = (@right_window.index == 0) @item_window2.visible = (@right_window.index == 1) @item_window3.visible = (@right_window.index == 2) @item_window4.visible = (@right_window.index == 3) @item_window5.visible = (@right_window.index == 4) item1 = @right_window.item case @right_window.index when 0 @item_window = @item_window1 when 1 @item_window = @item_window2 when 2 @item_window = @item_window3 when 3 @item_window = @item_window4 when 4 @item_window = @item_window5 end if @right_window.active @left_window.set_new_parameters(nil, nil, nil) end if @item_window.active item2 = @item_window.item last_hp = @actor.hp last_sp = @actor.sp @actor.equip(@right_window.index, item2 == nil ? 0 : item2.id, item2) new_atk = @actor.atk new_pdef = @actor.pdef new_mdef = @actor.mdef @actor.equip(@right_window.index, item1 == nil ? 0 : item1.id, item1) @actor.hp = last_hp @actor.sp = last_sp @left_window.set_new_parameters(new_atk, new_pdef, new_mdef) end end def update_item if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) @right_window.active = true @item_window.active = false @item_window.index = -1 return end if Input.trigger?(Input::C) $game_system.se_play($data_system.equip_se) item = @item_window.item @actor.equip(@right_window.index, item == nil ? 0 : item.id, item) @right_window.active = true @item_window.active = false @item_window.index = -1 @right_window.refresh @item_window.refresh return end end def update @left_window.update @right_window.update @item_window.update @item_window1.refresh @item_window2.refresh refresh if @right_window.active update_right return end if @item_window.active update_item return end end end class Scene_Battle def update_phase3_basic_command if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) phase3_prior_actor return end if @active_battler.two_shields @actor_command_window.disable_item(0) else @actor_command_window.enable_item(0) end if Input.trigger?(Input::C) case @actor_command_window.index when 0 if @active_battler.two_shields $game_system.se_play($data_system.buzzer_se) return end if @active_battler.two_weapons == true @active_battler.current_action.kind = 0 @active_battler.current_action.basic = 4 else @active_battler.current_action.kind = 0 @active_battler.current_action.basic = 0 end $game_system.se_play($data_system.decision_se) start_enemy_select when 1 $game_system.se_play($data_system.decision_se) @active_battler.current_action.kind = 1 start_skill_select when 2 $game_system.se_play($data_system.decision_se) @active_battler.current_action.kind = 0 @active_battler.current_action.basic = 1 phase3_next_actor when 3 $game_system.se_play($data_system.decision_se) @active_battler.current_action.kind = 2 start_item_select end return end end def make_basic_action_result if @active_battler.current_action.basic == 0 @animation1_id = @active_battler.animation1_id @animation2_id = @active_battler.animation2_id if @active_battler.is_a?(Game_Enemy) if @active_battler.restriction == 3 target = $game_troop.random_target_enemy elsif @active_battler.restriction == 2 target = $game_party.random_target_actor else index = @active_battler.current_action.target_index target = $game_party.smooth_target_actor(index) end end if @active_battler.is_a?(Game_Actor) if @active_battler.armor_type.is_a?(RPG::Weapon) @animation1_id = @active_battler.animation3_id @animation2_id = @active_battler.animation4_id end if @active_battler.restriction == 3 target = $game_party.random_target_actor elsif @active_battler.restriction == 2 target = $game_troop.random_target_enemy else index = @active_battler.current_action.target_index target = $game_troop.smooth_target_enemy(index) end end @target_battlers = [target] for target in @target_battlers target.attack_effect(@active_battler) end return end if @active_battler.current_action.basic == 1 @help_window.set_text($data_system.words.guard, 1) return end if @active_battler.is_a?(Game_Enemy) and @active_battler.current_action.basic == 2 @help_window.set_text("逃げる", 1) @active_battler.escape return end if @active_battler.current_action.basic == 3 $game_temp.forcing_battler = nil @phase4_step = 1 return end if @active_battler.current_action.basic == 4 @animation1_id = @active_battler.animation1_id @animation2_id = @active_battler.animation2_id @animation3_id = @active_battler.animation3_id @animation4_id = @active_battler.animation4_id if @active_battler.is_a?(Game_Actor) if @active_battler.restriction == 3 target = $game_party.random_target_actor elsif @active_battler.restriction == 2 target = $game_troop.random_target_enemy else index = @active_battler.current_action.target_index target = $game_troop.smooth_target_enemy(index) end end @target_battlers = [target] for target in @target_battlers target.attack_effect(@active_battler) end return end end def update_phase4_step4 if @active_battler.is_a?(Game_Actor) if @active_battler.two_weapons == true && @active_battler.sec_attack == 0 for target in @target_battlers target.animation_id = @animation4_id target.animation_hit = (target.damage != "Miss") @phase4_step = 5 return end end end for target in @target_battlers target.animation_id = @animation2_id target.animation_hit = (target.damage != "Miss") end @wait_count = 8 @phase4_step = 5 end def update_phase4_step5 @help_window.visible = false @status_window.refresh if @active_battler.is_a?(Game_Actor) if @active_battler.current_action.basic == 4 if @active_battler.two_weapons == true && @active_battler.sec_attack == nil @active_battler.sec_attack = 0 @phase4_step = 3 return else @active_battler.sec_attack = nil end end end for target in @target_battlers if target.damage != nil target.damage_pop = true end end @phase4_step = 6 end end class Window_Command def enable_item(index) draw_item(index, normal_color) end end

    644 downloads

    5 comments

    Updated

  25. Ccoa's UMS 1.8

    Version: 1.8
    Author: Ccoa
     
    Introduction
    I made this script to do everything all the separate message systems did in one script, plus a few things no one had done that they should have.
     
    Instructions
    An instruction manual is included in the demo.

    6,519 downloads

    43 comments

    Updated

Sign in to follow this  

×
×
  • Create New...