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

Dust Collector

Member
  • Content Count

    786
  • Joined

  • Last visited

  • Days Won

    11

Files posted by Dust Collector

  1. 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

  2. Outlaw City

    Outlaw City
     
    Official Page: http://www.anamei.net/index.php?p=rpage&page=OutlawCity
     

    Outlaw City - Site Article

    416 downloads

    5 comments

    Updated

  3. 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

  4. 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

  5. Title Pack

    A collection of 22 Title Templates(without text)
    Examples:
    http://www.rmxpunlimited.net/forums/index.php?app=gallery&module=images&section=viewimage&img=175
    http://www.rmxpunlimited.net/forums/index.php?app=gallery&module=images&section=viewimage&img=172
    http://www.rmxpunlimited.net/forums/index.php?app=gallery&module=images&section=viewimage&img=171
    http://www.rmxpunlimited.net/forums/index.php?app=gallery&module=images&section=viewimage&img=174

    898 downloads

    6 comments

    Updated

  6. 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

  7. 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

  8. 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

  9. Custom RTP Battlers

    This pack contains 44 custom styled RTP Battlers.
    Here are some examples from the Gallery:
    http://www.rmxpublimited.net/forums/index....q=si&img=90
    http://www.rmxpublimited.net/forums/index....q=si&img=88

    1,620 downloads

    5 comments

    Updated

  10. 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

  11. RPG Maker XP Tools 2007

    RPG Maker XP Tools 2007
     
    You can import your own names with this version, all you have to do is create a "new line" seperated text file which you then compress with the tools utility. And you then can place it in any of the folders in the data folder.
     
    Features
    * Project management.
    * Name generation.
    * Ability to create and share new name definition files.
    * Ability to launch selected projected into game editor or for a test run.
     
    How to Import Custom Names
    1. Create a name text file with each name seperated by a new line. For example:
    2. Once saved, open up these tools and click on the Tools menu, and click Compress/Decompress.
    3. Click the button Compress File, locate the text file you saved and click the Ok button on the dialog.
    4. Then select a location to save the compressed file, for example:
    5. With it now saved in that path, if you go onto the character name generation, there should be an item called New which you can select which it will use to generate names from.
     
    [info=Website Version]http://www.rmxpunlimited.net/index.php/too...s-2007-v20.html[/info]

    2,291 downloads

    9 comments

    Updated

  12. Lottery System

    Well, this time, it's to big to go into detail about.
    But I did provide a link for a project that you can download with several comments.
     
    Basically, you buy a certain amount of tickets, once you do. You wait around for a set amount of time (Can be changed in common events), once the time is up, the player can match up his randomly generated ticket numbers with a randomly generated ticket winning number and earn the BIG BUCKS!
    (Randomy generated money is not included)
     
    [info=Support Topic]http://www.rmxpunlimited.net/forums/index.php?showtopic=1365[/info]

    369 downloads

    0 comments

    Updated

  13. Characterset pack[1732 sprites]

    This pack contains 1732 Charactersets, organized into the categories Male, Female, Monsters, Objects and Special. Originally uploaded Alael.

    2,873 downloads

    16 comments

    Updated

  14. Caterpillar System

    This is a caterpillar system nothing special. This code is based on Fukuyama's version only better. Currently this is only a prototype of the full version
     
    [info=Support Topic]http://www.rmxpunlimited.net/forums/index.php?showtopic=1028[/info]

    744 downloads

    1 comment

    Updated

  15. Advanced Message Script - Release 4 [Update #2]

    Advanced Message Script - Release 4 [update #2] By Dubealex.
     
    Script:

    #=================================================== # ■ AMS - Advanced Message Script - R4 [update #2] #=================================================== # For more infos and update, visit: # www.dubealex.com (Creation Asylum) # # Edited, Fixed and Enhanced by: Dubealex # Original Script Core by: XRXS Scripter (Jap Dudes) # HTML Hexadecimal color feature from: Phylomorphis # # Special Thanks: # Rabu: For enabling the Show Face feature in an encrypted project # # To found all my new features, search the following: #NEW # To configure the button to skip the dialog, search: #SKIP_TEXT_CODE # # May 18, 2005 #=================================================== LETTER_BY_LETTER_MODE = true #Set the letter by letter mode ON/OFF #=================================================== # ▼ CLASS AMS Begins #=================================================== class AMS attr_accessor :name_box_x_offset attr_accessor :name_box_y_offset attr_accessor :font_type attr_accessor :name_font_type attr_accessor :font_size attr_accessor :name_font_size attr_accessor :message_box_opacity attr_accessor :name_box_skin attr_accessor :name_box_text_color attr_accessor :message_box_text_color attr_accessor :message_box_skin attr_accessor :name_box_width attr_accessor :name_box_height attr_accessor :message_width attr_accessor :message_height attr_accessor :message_x attr_accessor :message_y_bottom attr_accessor :message_y_middle attr_accessor :message_y_top attr_accessor :event_message_x_ofset attr_accessor :event_message_y_ofset def initialize @name_box_x_offset = 0 #Choose the X axis offset of the name bos. default= 0 @name_box_y_offset = -10 #Choose the Y axis offset of the name bos. default= -10 @name_box_width = 8 #Choose the width of the Name Box. default= 8 @name_box_height = 26 #Choose the height of the Name Box. default= 26 @font_type = "Tahoma" #Choose the Font Name (Case Sensitive) for message box @name_font_type = "Tahoma" #Choose the Font Name (Case Sensitive) for Name Box @font_size = 22 #Choose the default Font Size for message box text @name_font_size = 22 #Choose the deafault Font Size for Name Box text @name_box_text_color=0 #Choose the Text Color of the Name Box @message_box_text_color=0 #Choose the Text Color of the Message Box @message_box_opacity = 160 #Choose the opacity of the message window. Default=160 @message_box_skin = "001-Blue01" #Choose the WindowSkin for the Message Box @name_box_skin = "001-Blue01" #Choose the WindowSkin for the Name Box @message_width = 480 #Choose the width size of the message box. Default=480 @message_height = 160 #Choose the height size of the message box. Default=160 @message_x = 80 #Choose the X position of the message box. Default=80 @message_y_bottom = 304 #Choose the Y bottom position of the message box. Default=304 @message_y_middle = 160 #Choose the Y middle position of the message box. Default=160 @message_y_top = 16 #Choose the Y top position of the message box. Default=16 @event_message_x_ofset = 0 #Choose the X position offset of the event message. Default=0 @event_message_y_ofset = 48 #Choose the Y position offset of the event message. Default=48 end end #=================================================== # ▲ CLASS AMS Ends #=================================================== #=================================================== # ▼ Class Window_Message Begins #=================================================== class Window_Message < Window_Selectable alias xrxs9_initialize initialize def initialize @alex_skip = false xrxs9_initialize if $soundname_on_speak == nil then $soundname_on_speak = "" end $gaiji_file = "./Graphics/Gaiji/sample.png" if FileTest.exist?($gaiji_file) @gaiji_cache = Bitmap.new($gaiji_file) else @gaigi_cache = nil end @opacity_text_buf = Bitmap.new(32, 32) end #-------------------------------------------------------------------------- alias xrxs9_terminate_message terminate_message def terminate_message if @name_window_frame != nil @name_window_frame.dispose @name_window_frame = nil end if @name_window_text != nil @name_window_text.dispose @name_window_text = nil end xrxs9_terminate_message end #-------------------------------------------------------------------------- def refresh self.contents.clear self.contents.font.color = text_color($ams.message_box_text_color) self.contents.font.name = $ams.font_type self.contents.font.size = $ams.font_size self.windowskin = RPG::Cache.windowskin($ams.message_box_skin) @x = @y = @max_x = @max_y = @indent = @lines = 0 @face_indent = 0 @opacity = 255 @cursor_width = 0 @write_speed = 0 @write_wait = 0 @mid_stop = false @face_file = nil @popchar = -2 if $game_temp.choice_start == 0 @x = 8 end if $game_temp.message_text != nil @now_text = $game_temp.message_text if (/\A\\[Ff]\[(.+?)\]/.match(@now_text))!=nil then @face_file = $1 + ".png" @x = @face_indent = 128 if FileTest.exist?("Graphics/Pictures/" + $1 + ".png") self.contents.blt(16, 16, RPG::Cache.picture(@face_file), Rect.new(0, 0, 96, 96)) end @now_text.gsub!(/\\[Ff]\[(.*?)\]/) { "" } end begin last_text = @now_text.clone @now_text.gsub!(/\\[Vv]\[([iiWwAaSs]?)([0-9]+)\]/) { convart_value($1, $2.to_i) } end until @now_text == last_text @now_text.gsub!(/\\[Nn]\[([0-9]+)\]/) do $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : "" end #NEW #Dubealex's Stop Skip Text ON-OFF @now_text.gsub!(/\\[%]/) { "\100" } #End new command #NEW #Dubealex's Show Monster Name Feature @now_text.gsub!(/\\[Mm]\[([0-9]+)\]/) do $data_enemies[$1.to_i] != nil ? $data_enemies[$1.to_i].name : "" end #End new command #NEW #Dubealex's Show Item Price Feature @now_text.gsub!(/\\[Pp]rice\[([0-9]+)\]/) do $data_items[$1.to_i] != nil ? $data_items[$1.to_i].price : "" end #End new command #NEW #Dubealex's Show Hero Class Name Feature @now_text.gsub!(/\\[Cc]lass\[([0-9]+)\]/) do $data_classes[$data_actors[$1.to_i].class_id] != nil ? $data_classes[$data_actors[$1.to_i].class_id].name : "" end #End new command #NEW #Dubealex's Show Current Map Name Feature @now_text.gsub!(/\\[Mm]ap/) do $game_map.name != nil ? $game_map.name : "" end #End new command #NEW #Dubealex's Choose Name Box Text Color @now_text.gsub!(/\\[Zz]\[([0-9]+)\]/) do $ams.name_box_text_color=$1.to_i @now_text.sub!(/\\[Zz]\[([0-9]+)\]/) { "" } end #End new command name_window_set = false if (/\\[Nn]ame\[(.+?)\]/.match(@now_text)) != nil name_window_set = true name_text = $1 @now_text.sub!(/\\[Nn]ame\[(.*?)\]/) { "" } end if (/\\[Pp]\[([-1,0-9]+)\]/.match(@now_text))!=nil then @popchar = $1.to_i if @popchar == -1 @x = @indent = 48 @y = 4 end @now_text.gsub!(/\\[Pp]\[([-1,0-9]+)\]/) { "" } end @max_choice_x = 0 if @popchar >= 0 @text_save = @now_text.clone @max_x = 0 @max_y = 4 for i in 0..3 line = @now_text.split(/\n/)[3-i] @max_y -= 1 if line == nil and @max_y <= 4-i next if line == nil line.gsub!(/\\\w\[(\w+)\]/) { "" } cx = contents.text_size(line).width @max_x = cx if cx > @max_x if i >= $game_temp.choice_start @max_choice_x = cx if cx > @max_choice_x end end self.width = @max_x + 32 + @face_indent self.height = (@max_y - 1) * 32 + 64 @max_choice_x -= 68 @max_choice_x -= @face_indent*216/128 else @max_x = self.width - 32 - @face_indent for i in 0..3 line = @now_text.split(/\n/)[i] next if line == nil line.gsub!(/\\\w\[(\w+)\]/) { "" } cx = contents.text_size(line).width if i >= $game_temp.choice_start @max_choice_x = cx if cx > @max_choice_x end end @max_choice_x += 8 end @cursor_width = 0 @now_text.gsub!(/\\\\/) { " 0" } @now_text.gsub!(/\\[Cc]\[([0123456789ABCDEF#]+)\]/) { " 1[#{$1}]" } @now_text.gsub!(/\\[Gg]/) { " 2" } @now_text.gsub!(/\\[ss]\[([0-9]+)\]/) { " 3[#{$1}]" } @now_text.gsub!(/\\[Aa]\[(.*?)\]/) { " 4[#{$1}]" } #NEW #Dubealex's Permanent Color Change @now_text.gsub!(/\\[Cc]olor\[([0-9]+)\]/) do $ams.message_box_text_color= $1.to_i @now_text.sub!(/\\[Cc]\[([0-9]+)\]/) { "" } end #End of new command #NEW #Dubealex's Font Change Feature @now_text.gsub(/\\[Tt]\[(.*?)\]/) do buftxt = $1.to_s $ams.font_type = buftxt @now_text.sub!(/\\[Tt]\[(.*?)\]/) { "" } end #End of new command @now_text.gsub!(/\\[.]/) { " 5" } @now_text.gsub!(/\\[|]/) { " 6" } @now_text.gsub!(/\\[>]/) { "16" } @now_text.gsub!(/\\[<]/) { "17" } @now_text.gsub!(/\\[!]/) { "20" } @now_text.gsub!(/\\[~]/) { "21" } @now_text.gsub!(/\\[Ee]\[([0-9]+)\]/) { "22[#{$1}]" } @now_text.gsub!(/\\[ii]/) { "23" } @now_text.gsub!(/\\[Oo]\[([0-9]+)\]/) { "24[#{$1}]" } @now_text.gsub!(/\\[Hh]\[([0-9]+)\]/) { "25[#{$1}]" } @now_text.gsub!(/\\[bb]\[([0-9]+)\]/) { "26[#{$1}]" } @now_text.gsub!(/\\[Rr]\[(.*?)\]/) { "27[#{$1}]" } reset_window if name_window_set color=$ams.name_box_text_color off_x = $ams.name_box_x_offset off_y = $ams.name_box_y_offset space = 2 x = self.x + off_x - space / 2 y = self.y + off_y - space / 2 w = self.contents.text_size(name_text).width + $ams.name_box_width + space h = $ams.name_box_height + space @name_window_frame = Window_Frame.new(x, y, w, h) @name_window_frame.z = self.z + 1 x = self.x + off_x + 4 y = self.y + off_y @name_window_text = Air_Text.new(x, y, name_text, color) @name_window_text.z = self.z + 2 end end reset_window if $game_temp.choice_max > 0 @item_max = $game_temp.choice_max self.active = true self.index = 0 end if $game_temp.num_input_variable_id > 0 digits_max = $game_temp.num_input_digits_max number = $game_variables[$game_temp.num_input_variable_id] @input_number_window = Window_InputNumber.new(digits_max) @input_number_window.number = number @input_number_window.x = self.x + 8 @input_number_window.y = self.y + $game_temp.num_input_start * 32 end end #-------------------------------------------------------------------------- def update super if @fade_in self.contents_opacity += 24 if @input_number_window != nil @input_number_window.contents_opacity += 24 end if self.contents_opacity == 255 @fade_in = false end return end @now_text = nil if @now_text == "" if @now_text != nil and @mid_stop == false if @write_wait > 0 @write_wait -= 1 return end text_not_skip = LETTER_BY_LETTER_MODE while true @max_x = @x if @max_x < @x @max_y = @y if @max_y < @y if (c = @now_text.slice!(/./m)) != nil if c == " 0" c = "\\" end if c == " 1" @now_text.sub!(/\[([0123456789ABCDEF#]+)\]/, "") temp_color = $1 color = temp_color.to_i leading_x = temp_color.to_s.slice!(/./m) if leading_x == "#" self.contents.font.color = hex_color(temp_color) next end if color >= 0 and color <= 7 self.contents.font.color = text_color(color) end next end if c == " 2" if @gold_window == nil and @popchar <= 0 @gold_window = Window_Gold.new @gold_window.x = 560 - @gold_window.width if $game_temp.in_battle @gold_window.y = 192 else @gold_window.y = self.y >= 128 ? 32 : 384 end @gold_window.opacity = self.opacity @gold_window.back_opacity = self.back_opacity end c = "" end if c == " 3" @now_text.sub!(/\[([0-9]+)\]/, "") speed = $1.to_i if speed >= 0 and speed <= 19 @write_speed = speed end c = "" end if c == " 4" @now_text.sub!(/\[(.*?)\]/, "") buftxt = $1.dup.to_s if buftxt.match(/\//) == nil and buftxt != "" then $soundname_on_speak = "Audio/SE/" + buftxt else $soundname_on_speak = buftxt.dup end c = "" elsif c == " 4" c = "" end if c == " 5" @write_wait += 5 c = "" end if c == " 6" @write_wait += 20 c = "" end if c == "16" text_not_skip = false c = "" end if c == "17" text_not_skip = true c = "" end if c == "20" @mid_stop = true c = "" end if c == "21" terminate_message return end if c == "23" @indent = @x c = "" end if c == "24" @now_text.sub!(/\[([0-9]+)\]/, "") @opacity = $1.to_i color = self.contents.font.color self.contents.font.name = $ams.font_type self.contents.font.size = $ams.font_size self.contents.font.color = Color.new(color.red, color.green, color.blue, color.alpha * @opacity / 255) c = "" end if c == "25" @now_text.sub!(/\[([0-9]+)\]/, "") self.contents.font.size = [[$1.to_i, 6].max, 32].min c = "" end if c == "26" @now_text.sub!(/\[([0-9]+)\]/, "") @x += $1.to_i c = "" end if c == "27" @now_text.sub!(/\[(.*?)\]/, "") @x += ruby_draw_text(self.contents, @x, @y * line_height + (line_height - self.contents.font.size), $1, @opacity) if $soundname_on_speak != "" Audio.se_play($soundname_on_speak) end c = "" end if c == "30" @now_text.sub!(/\[(.*?)\]/, "") self.contents.blt(@x , @y * line_height + 8, RPG::Cache.icon($1), Rect.new(0, 0, 24, 24)) if $soundname_on_speak != "" Audio.se_play($soundname_on_speak) end @x += 24 c = "" end if c == "\n" @lines += 1 @y += 1 @x = 0 + @indent + @face_indent if @lines >= $game_temp.choice_start @x = 8 + @indent + @face_indent @cursor_width = @max_choice_x end c = "" end if c == "22" @now_text.sub!(/\[([0-9]+)\]/, "") @x += gaiji_draw(4 + @x, @y * line_height + (line_height - self.contents.font.size), $1.to_i) c = "" end #NEW #Dubealex's Text Skip On/OFF Command if c == "\100" if @alex_skip==false @alex_skip=true else @alex_skip=false end c = "" end #end of new command if c != "" self.contents.draw_text(0+@x, 32 * @y, 40, 32, c) @x += self.contents.text_size?.width if $soundname_on_speak != "" then Audio.se_play($soundname_on_speak) end end #SKIP_TEXT_CODE # B = Escape, 0 (On The NumPad), X # C = Enter, Space Bar and C # A = Shift, Z if Input.press?(Input::C) # <-- Change the value on that line if @alex_skip==false text_not_skip = false end end else text_not_skip = true break end if text_not_skip break end end @write_wait += @write_speed return end if @input_number_window != nil @input_number_window.update if Input.trigger?(Input::C) $game_system.se_play($data_system.decision_se) $game_variables[$game_temp.num_input_variable_id] = @input_number_window.number $game_map.need_refresh = true @input_number_window.dispose @input_number_window = nil terminate_message end return end if @contents_showing if $game_temp.choice_max == 0 self.pause = true end if Input.trigger?(Input::cool.gif if $game_temp.choice_max > 0 and $game_temp.choice_cancel_type > 0 $game_system.se_play($data_system.cancel_se) $game_temp.choice_proc.call($game_temp.choice_cancel_type - 1) terminate_message end end if Input.trigger?(Input::C) if $game_temp.choice_max > 0 $game_system.se_play($data_system.decision_se) $game_temp.choice_proc.call(self.index) end if @mid_stop @mid_stop = false return else terminate_message end end return end if @fade_out == false and $game_temp.message_text != nil @contents_showing = true $game_temp.message_window_showing = true refresh Graphics.frame_reset self.visible = true self.contents_opacity = 0 if @input_number_window != nil @input_number_window.contents_opacity = 0 end @fade_in = true return end if self.visible @fade_out = true self.opacity -= 48 if self.opacity == 0 self.visible = false @fade_out = false $game_temp.message_window_showing = false end return end end #-------------------------------------------------------------------------- def get_character(parameter) case parameter when 0 return $game_player else events = $game_map.events return events == nil ? nil : events[parameter] end end #-------------------------------------------------------------------------- def reset_window #MESSAGE_SIZE #MESSAGE_POSITION if @popchar >= 0 events = $game_map.events if events != nil character = get_character(@popchar) x = [[character.screen_x - $ams.event_message_x_ofset - self.width / 2, 4].max, 636 - self.width].min y = [[character.screen_y - $ams.event_message_y_ofset - self.height, 4].max, 476 - self.height].min self.x = x self.y = y end elsif @popchar == -1 self.x = -4 self.y = -4 self.width = 648 self.height = 488 else if $game_temp.in_battle self.y = 16 else case $game_system.message_position when 0 self.y = $ams.message_y_top when 1 self.y = $ams.message_y_middle when 2 self.y = $ams.message_y_bottom end self.x = $ams.message_x if @face_file == nil self.width = $ams.message_width self.x = $ams.message_x else if self.width <= 600 self.width = 600 self.x -=60 end end self.height = $ams.message_height end end self.contents = Bitmap.new(self.width - 32, self.height - 32) self.contents.font.color = text_color($ams.message_box_text_color) self.contents.font.name = $ams.font_type self.contents.font.size = $ams.font_size if @face_file != nil self.contents.blt(16, 16, RPG::Cache.picture(@face_file), Rect.new(0, 0, 96, 96)) end if @popchar == -1 self.opacity = 255 self.back_opacity = 0 elsif $game_system.message_frame == 0 self.opacity = 255 self.back_opacity = $ams.message_box_opacity else self.opacity = 0 self.back_opacity = $ams.message_box_opacity end end #-------------------------------------------------------------------------- def gaiji_draw(x, y, num) if @gaiji_cache == nil return 0 else if @gaiji_cache.width < num * 24 return 0 end if self.contents.font.size >= 20 and self.contents.font.size <= 24 size = 24 else size = self.contents.font.size * 100 * 24 / 2200 end self.contents.stretch_blt(Rect.new(x, y, size, size), @gaiji_cache, Rect.new(num * 24, 0, 24, 24)) if $soundname_on_speak != "" then Audio.se_play($soundname_on_speak) end return size end end #-------------------------------------------------------------------------- def line_height return 32 if self.contents.font.size >= 20 and self.contents.font.size <= 24 return 32 else return self.contents.font.size * 15 / 10 end end #-------------------------------------------------------------------------- def ruby_draw_text(target, x, y, str,opacity) sizeback = target.font.size target.font.size * 3 / 2 > 32 ? rubysize = 32 - target.font.size : rubysize = target.font.size / 2 rubysize = [rubysize, 6].max opacity = [[opacity, 0].max, 255].min split_s = str.split(/,/) split_s[0] == nil ? split_s[0] = "" : nil split_s[1] == nil ? split_s[1] = "" : nil height = sizeback + rubysize width = target.text_size(split_s[0]).width target.font.size = rubysize ruby_width = target.text_size(split_s[1]).width target.font.size = sizeback buf_width = [target.text_size(split_s[0]).width, ruby_width].max width - ruby_width != 0 ? sub_x = (width - ruby_width) / 2 : sub_x = 0 if opacity == 255 target.font.size = rubysize target.draw_text(x + sub_x, y - target.font.size, target.text_size(split_s[1]).width, target.font.size, split_s[1]) target.font.size = sizeback target.draw_text(x, y, width, target.font.size, split_s[0]) return width else if @opacity_text_buf.width < buf_width or @opacity_text_buf.height < height @opacity_text_buf.dispose @opacity_text_buf = Bitmap.new(buf_width, height) else @opacity_text_buf.clear end @opacity_text_buf.font.size = rubysize @opacity_text_buf.draw_text(0 , 0, buf_width, rubysize, split_s[1], 1) @opacity_text_buf.font.size = sizeback @opacity_text_buf.draw_text(0 , rubysize, buf_width, sizeback, split_s[0], 1) if sub_x >= 0 target.blt(x, y - rubysize, @opacity_text_buf, Rect.new(0, 0, buf_width, height), opacity) else target.blt(x + sub_x, y - rubysize, @opacity_text_buf, Rect.new(0, 0, buf_width, height), opacity) end return width end end #-------------------------------------------------------------------------- def convart_value(option, index) option == nil ? option = "" : nil option.downcase! case option when "i" unless $data_items[index].name == nil r = sprintf("30[%s]%s", $data_items[index].icon_name, $data_items[index].name) end when "w" unless $data_weapons[index].name == nil r = sprintf("30[%s]%s", $data_weapons[index].icon_name, $data_weapons[index].name) end when "a" unless $data_armors[index].name == nil r = sprintf("30[%s]%s", $data_armors[index].icon_name, $data_armors[index].name) end when "s" unless $data_skills[index].name == nil r = sprintf("30[%s]%s", $data_skills[index].icon_name, $data_skills[index].name) end else r = $game_variables[index] end r == nil ? r = "" : nil return r end #-------------------------------------------------------------------------- def dispose terminate_message if @gaiji_cache != nil unless @gaiji_cache.disposed? @gaiji_cache.dispose end end unless @opacity_text_buf.disposed? @opacity_text_buf.dispose end $game_temp.message_window_showing = false if @input_number_window != nil @input_number_window.dispose end super end #-------------------------------------------------------------------------- def update_cursor_rect if @index >= 0 n = $game_temp.choice_start + @index self.cursor_rect.set(8 + @indent + @face_indent, n * 32, @cursor_width, 32) else self.cursor_rect.empty end end end #========================================= # ▲ CLASS Window_Message Ends #========================================= #========================================= # ▼ Class Window_Frame Begins #========================================= class Window_Frame < Window_Base def initialize(x, y, width, height) super(x, y, width, height) self.windowskin = RPG::Cache.windowskin($ams.name_box_skin) self.contents = nil end #-------------------------------------------------------------------------- def dispose super end end #========================================= # ▲ CLASS Window_Frame Ends #========================================= #========================================= # ▼ CLASS Game_Map Additional Code Begins #========================================= class Game_Map #Dubealex's Addition (from XRXS) to show Map Name on screen def name $map_infos[@map_id] end end #========================================= # ▲ CLASS Game_Map Additional Code Ends #========================================= #========================================= # ▼ CLASS Scene_Title Additional Code Begins #========================================= class Scene_Title #Dubealex's Addition (from XRXS) to show Map Name on screen $map_infos = load_data("Data/MapInfos.rxdata") for key in $map_infos.keys $map_infos[key] = $map_infos[key].name end #Dubealex's addition to save data from the AMS in the save files $ams = AMS.new end #========================================= # ▲ CLASS Scene_Title Additional Code Ends #========================================= #========================================= # ▼ CLASS Window_Base Additional Code Begins #========================================= class Window_Base < Window #Dubealex Addition (from Phylomorphis) to use HTML Hex Code Colors def hex_color(string) red = 0 green = 0 blue = 0 if string.size != 6 print("Hex strings must be six characters long.") print("White text will be used.") return Color.new(255, 255, 255, 255) end for i in 1..6 s = string.slice!(/./m) if s == "#" print("Hex color string may not contain the \"#\" character.") print("White text will be used.") return Color.new(255, 255, 255, 255) end value = hex_convert(s) if value == -1 print("Error converting hex value.") print("White text will be used.") return Color.new(255, 255, 255, 255) end case i when 1 red += value * 16 when 2 red += value when 3 green += value * 16 when 4 green += value when 5 blue += value * 16 when 6 blue += value end end return Color.new(red, green, blue, 255) end #-------------------------------------------------------------------------- def hex_convert(character) case character when "0" return 0 when "1" return 1 when "2" return 2 when "3" return 3 when "4" return 4 when "5" return 5 when "6" return 6 when "7" return 7 when "8" return 8 when "9" return 9 when "A" return 10 when "B" return 11 when "C" return 12 when "D" return 13 when "E" return 14 when "F" return 15 end return -1 end end #========================================= # ▲ CLASS Window_Base Additional Code Ends #========================================= #========================================= # ▼ Class Air_Text Begins #========================================= class Air_Text < Window_Base def initialize(x, y, designate_text, color=0) super(x-16, y-16, 32 + designate_text.size * 12, 56) self.opacity = 0 self.back_opacity = 0 self.contents = Bitmap.new(self.width - 32, self.height - 32) w = self.contents.width h = self.contents.height self.contents.font.name = $ams.name_font_type self.contents.font.size = $ams.name_font_size self.contents.font.color = text_color(color) self.contents.draw_text(0, 0, w, h, designate_text) end #-------------------------------------------------------------------------- def dispose self.contents.clear super end end #========================================== # ▲ CLASS Air_Text Ends #========================================== #=================================================== # ▼ CLASS Scene_Save Additional Code Begins #=================================================== class Scene_Save < Scene_File alias ams_original_write_save_data write_save_data def write_save_data(file) ams_original_write_save_data(file) Marshal.dump($ams, file) end end #=================================================== # ▲ CLASS Scene_Save Additional Code Ends #=================================================== #=================================================== # ▼ CLASS Scene_Load Additional Code Begins #=================================================== class Scene_Load < Scene_File alias ams_original_read_save_data read_save_data def read_save_data(file) ams_original_read_save_data(file) $ams = Marshal.load(file) end end #=================================================== # ▲ CLASS Scene_Load Additional Code Ends #===================================================
     
    [info=Support Topic]http://www.rmxpunlimited.net/forums/index.php?showtopic=30[/info]

    1,598 downloads

    11 comments

    Updated

  16. 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

  17. Cogwheel's Pixel Movement

    This script allows the player to move in 8 directions (without the need of an 8 way graphic) AND also allows them to move pixel-by-pixel instead of square by square. The only problem is that it IS limited by your passability, in that if you make a square impassible, even if it is just a tiny tree trunk that doesn't cover the entire square, the character will still be unable to move along that square. This was made by Cogwheel!
     
    Paste this code above Main but under Scene_Debug:
    [spoiler=Cogwheels Pixel Movement Script]
    # [url="http://members.jcom.home.ne.jp/cogwheel/"]http://members.jcom.home.ne.jp/cogwheel/[/url] #============================================================================== # Game_Player #============================================================================== class Game_Player < Game_Character UP = 0 DOWN = 0 SIDE = 0 SLANT = false #-------------------------------------------------------------------------- attr_reader :event attr_accessor :move_speed #-------------------------------------------------------------------------- alias :update_original :update def update @walk = 4 @dash = 5 @event = 4 @dot_m = true unless moving? or $game_system.map_interpreter.running? or @move_route_forcing or $game_temp.message_window_showing if @walk != @dash if Input.press?(Input::C) if @move_speed != @dash @move_speed = @dash end else if @move_speed != @walk @move_speed = @walk end end end end if @revise_x == nil and @revise_y == nil @revise_x = 0 @revise_y = 0 end unless @dot_m update_original return end if @move_route_forcing last_moving = moving? last_real_x = @real_x last_real_y = @real_y if (@revise_x != 0 or @revise_y != 0) and not jumping? and @move == true if @revise_x != @real_x - @x * 128 or @revise_y != @real_y - @y * 128 @revise_x = @real_x - @x * 128 @revise_y = @real_y - @y * 128 end distance1 = 2 ** @move_speed distance2 = Math.sqrt(@revise_x ** 2 + @revise_y ** 2) if distance1 > distance2 @real_x = @real_x - @revise_x @real_y = @real_y - @revise_y @revise_x = 0 @revise_y = 0 anime_update else @real_x -= (distance1 * @revise_x / distance2).round @real_y -= (distance1 * @revise_y / distance2).round @revise_x = @real_x - @x * 128 @revise_y = @real_y - @y * 128 anime_update end else super end else @move = false unless moving? or $game_system.map_interpreter.running? or @move_route_forcing or $game_temp.message_window_showing @event_run = false case Input.dir8 when 1 move_lower_left_p when 2 move_down_p when 3 move_lower_right_p when 4 move_left_p when 6 move_right_p when 7 move_upper_left_p when 8 move_up_p when 9 move_upper_right_p end end last_real_x = @real_x last_real_y = @real_y @real_x = @x * 128 + @revise_x @real_y = @y * 128 + @revise_y last_moving = moving? move_on if (last_real_x != @real_x or last_real_y != @real_y) @move_distance = 0 if @move_distance == nil @move_distance += Math.sqrt((last_real_x - @real_x) ** 2 + (last_real_y - @real_y) ** 2) if @move_distance >= 128 @move_distance %= 128 increase_steps end anime_update else @pattern = 0 end end if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y $game_map.scroll_down(@real_y - last_real_y) end if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X $game_map.scroll_left(last_real_x - @real_x) end if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X $game_map.scroll_right(@real_x - last_real_x) end if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y $game_map.scroll_up(last_real_y - @real_y) end if last_moving result = check_event_trigger_here([1,2]) if result == false unless $DEBUG and Input.press?(Input::CTRL) if @encounter_count > 0 @encounter_count -= 1 end end end end if Input.trigger?(Input::C) check_event_trigger_here([0]) check_event_trigger_there([0,1,2]) end end #-------------------------------------------------------------------------- def initialize @revise_x = 0 @revise_y = 0 @move == false super end #-------------------------------------------------------------------------- def moving? unless @dot_m result = super return result end if @move_route_forcing if @move == false return false end super else return (@x != (@real_x / 128.0).round or @y != (@real_y / 128.0).round) end end #-------------------------------------------------------------------------- def moving_a? if @move == false if (@move_route.list[@move_route_index].code <= 14 or @move_route.list[@move_route_index].code == 25) @move = true end return false end moving? end #-------------------------------------------------------------------------- def update_jump @jump_count -= 1 @real_x = (@real_x * @jump_count + @x * 128) / (@jump_count + 1) @real_y = (@real_y * @jump_count + @y * 128) / (@jump_count + 1) if @jump_count == 0 @revise_x = 0 @revise_y = 0 end end #-------------------------------------------------------------------------- def move_type_custom unless @dot_m super return end if jumping? or moving_a? return end while @move_route_index < @move_route.list.size command = @move_route.list[@move_route_index] if command.code == 0 if @move_route.repeat @move_route_index = 0 end unless @move_route.repeat if @move_route_forcing and not @move_route.repeat @move_route_forcing = false @move_route = @original_move_route @move_route_index = @original_move_route_index @original_move_route = nil end @stop_count = 0 end return end if command.code <= 14 case command.code when 1 move_down when 2 move_left when 3 move_right when 4 move_up when 5 move_lower_left when 6 move_lower_right when 7 move_upper_left when 8 move_upper_right when 9 move_random when 10 move_toward_player when 11 move_away_from_player when 12 move_forward when 13 move_backward when 14 jump(command.parameters[0], command.parameters[1]) end if not @move_route.skippable and not moving? and not jumping? return end @move_route_index += 1 return end if command.code == 15 @wait_count = command.parameters[0] * 2 - 1 @move_route_index += 1 return end if command.code >= 16 and command.code <= 26 case command.code when 16 turn_down when 17 turn_left when 18 turn_right when 19 turn_up when 20 turn_right_90 when 21 turn_left_90 when 22 turn_180 when 23 turn_right_or_left_90 when 24 turn_random when 25 turn_toward_player when 26 turn_away_from_player end @move_route_index += 1 return end if command.code >= 27 case command.code when 27 $game_switches[command.parameters[0]] = true $game_map.need_refresh = true when 28 $game_switches[command.parameters[0]] = false $game_map.need_refresh = true when 29 @move_speed = command.parameters[0] when 30 @move_frequency = command.parameters[0] when 31 @walk_anime = true when 32 @walk_anime = false when 33 @step_anime = true when 34 @step_anime = false when 35 @direction_fix = true when 36 @direction_fix = false when 37 @through = true when 38 @through = false when 39 @always_on_top = true when 40 @always_on_top = false when 41 @tile_id = 0 @character_name = command.parameters[0] @character_hue = command.parameters[1] if @original_direction != command.parameters[2] @direction = command.parameters[2] @original_direction = @direction @prelock_direction = 0 end if @original_pattern != command.parameters[3] @pattern = command.parameters[3] @original_pattern = @pattern end when 42 @opacity = command.parameters[0] when 43 @blend_type = command.parameters[0] when 44 $game_system.se_play(command.parameters[0]) when 45 result = eval(command.parameters[0]) end @move_route_index += 1 return end end end #-------------------------------------------------------------------------- def move_down_p turn_down distance = 2 ** @move_speed down1(((@x * 128 + @revise_x) / 128.0).round, ((@y * 128 + @revise_y) / 128.0).round, distance, true) end #-------------------------------------------------------------------------- def down1(x, y, distance, down = false) result = down2(x, y, distance) if result == false @event_run = check_event_trigger_touch(x, y+1) return result end if @revise_x < -SIDE result = down2(x, y + 1, distance, 4) result &= down2(x - 1, y, distance) if result == false if down move_lower_right_p if @revise_x > SIDE @revise_x = SIDE end end return result end elsif @revise_x > SIDE result = down2(x, y + 1, distance, 6) result &= down2(x + 1, y, distance) if result == false if down move_lower_left_p if @revise_x < -SIDE @revise_x = -SIDE end end return result end end @revise_y += distance return result end #-------------------------------------------------------------------------- def down2(x, y, distance, d = 2) if @revise_y + distance > DOWN unless passable?(x, y, d) if @revise_y < DOWN @revise_y = DOWN end return false end end return true end #-------------------------------------------------------------------------- def move_left_p turn_left distance = 2 ** @move_speed left1(((@x * 128 + @revise_x) / 128.0).round, ((@y * 128 + @revise_y) / 128.0).round, distance, true) end #-------------------------------------------------------------------------- def left1(x, y, distance, left = false) result = left2(x, y, distance) if result == false @event_run = check_event_trigger_touch(x-1, y) return result end if @revise_y < -UP result = left2(x - 1, y, distance, 8) result &= left2(x, y - 1, distance) if result == false if left move_lower_left_p if @revise_y > DOWN @revise_y = DOWN end end return result end elsif @revise_y > DOWN result = left2(x - 1, y, distance, 2) result &= left2(x, y + 1, distance) if result == false if left move_upper_left_p if @revise_y < -UP @revise_y = -UP end end return result end end @revise_x -= distance return result end #-------------------------------------------------------------------------- def left2(x, y, distance, d = 4) if @revise_x - distance < -SIDE unless passable?(x, y, d) if @revise_x > -SIDE @revise_x = -SIDE end return false end end return true end #-------------------------------------------------------------------------- def move_right_p turn_right distance = 2 ** @move_speed right1(((@x * 128 + @revise_x) / 128.0).round, ((@y * 128 + @revise_y) / 128.0).round, distance, true) end #-------------------------------------------------------------------------- def right1(x, y, distance, right = false) result = right2(x, y, distance) if result == false @event_run = check_event_trigger_touch(x+1, y) return result end if @revise_y < -UP result = right2(x + 1, y, distance, 8) result &= right2(x, y - 1, distance) if result == false if right move_lower_right_p if @revise_y > DOWN @revise_y = DOWN end end return result end elsif @revise_y > DOWN result = right2(x + 1, y, distance, 2) result &= right2(x, y + 1, distance) if result == false if right move_upper_right_p if @revise_y < -UP @revise_y = -UP end end return result end end @revise_x += distance return result end #-------------------------------------------------------------------------- def right2(x, y, distance, d = 6) if @revise_x + distance > SIDE unless passable?(x, y, d) if @revise_x < SIDE @revise_x = SIDE end return false end end return true end #-------------------------------------------------------------------------- def move_up_p turn_up distance = 2 ** @move_speed up1(((@x * 128 + @revise_x) / 128.0).round, ((@y * 128 + @revise_y) / 128.0).round, distance, true) end #-------------------------------------------------------------------------- def up1(x, y, distance, up = false) result = up2(x, y, distance) if result == false @event_run = check_event_trigger_touch(x, y-1) return result end if @revise_x < -SIDE result = up2(x, y - 1, distance, 4) result &= up2(x - 1, y, distance) if result == false if up move_upper_right_p if @revise_x > SIDE @revise_x = SIDE end end return result end elsif @revise_x > SIDE result = up2(x, y - 1, distance, 6) result &= up2(x + 1, y, distance) if result == false if up move_upper_left_p if @revise_x < -SIDE @revise_x = -SIDE end end return result end end @revise_y -= distance return result end #-------------------------------------------------------------------------- def up2(x, y, distance, d = 8) if @revise_y - distance < -UP unless passable?(x, y, d) if @revise_y > -UP @revise_y = -UP end return false end end return true end #-------------------------------------------------------------------------- def move_lower_left_p unless @direction_fix @direction = (@direction == 6 ? 4 : @direction == 8 ? 2 : @direction) end distance = (2 ** @move_speed) / Math.sqrt(2) turn_left unless down1(((@x * 128 + @revise_x) / 128.0).round, ((@y * 128 + @revise_y) / 128.0).round, distance) turn_down if @event_run unless @event_run if last_move?(@real_x, @real_y, 2, distance) result = check_event_trigger_here([1,2], false) if result == true return end end move_on if @revise_y > DOWN and -UP > @revise_y - distance @revise_y = DOWN end turn_down unless left1(((@x * 128 + @revise_x) / 128.0).round, ((@y * 128 + @revise_y) / 128.0).round, distance) turn_left if @event_run end end #-------------------------------------------------------------------------- def move_lower_right_p unless @direction_fix @direction = (@direction == 4 ? 6 : @direction == 8 ? 2 : @direction) end distance = (2 ** @move_speed) / Math.sqrt(2) turn_right unless down1(((@x * 128 + @revise_x) / 128.0).round, ((@y * 128 + @revise_y) / 128.0).round, distance) turn_down if @event_run unless @event_run if last_move?(@real_x, @real_y, 2, distance) result = check_event_trigger_here([1,2], false) if result == true return end end move_on if @revise_y > DOWN and -UP > @revise_y - distance @revise_y = DOWN end turn_down unless right1(((@x * 128 + @revise_x) / 128.0).round, ((@y * 128 + @revise_y) / 128.0).round, distance) turn_right if @event_run end end #-------------------------------------------------------------------------- def move_upper_left_p unless @direction_fix @direction = (@direction == 6 ? 4 : @direction == 2 ? 8 : @direction) end distance = (2 ** @move_speed) / Math.sqrt(2) turn_left unless up1(((@x * 128 + @revise_x) / 128.0).round, ((@y * 128 + @revise_y) / 128.0).round, distance) turn_up if @event_run unless @event_run if last_move?(@real_x, @real_y, 8, distance) result = check_event_trigger_here([1,2], false) if result == true return end end move_on if @revise_y + distance > DOWN and -UP > @revise_y @revise_y = -UP end turn_up unless left1(((@x * 128 + @revise_x) / 128.0).round, ((@y * 128 + @revise_y) / 128.0).round, distance) turn_left if @event_run end end #-------------------------------------------------------------------------- def move_upper_right_p unless @direction_fix @direction = (@direction == 4 ? 6 : @direction == 2 ? 8 : @direction) end distance = (2 ** @move_speed) / Math.sqrt(2) turn_right unless up1(((@x * 128 + @revise_x) / 128.0).round, ((@y * 128 + @revise_y) / 128.0).round, distance) turn_up if @event_run unless @event_run if last_move?(@real_x, @real_y, 8, distance) result = check_event_trigger_here([1,2], false) if result == true return end end move_on if @revise_y + distance > DOWN and -UP > @revise_y @revise_y = -UP end turn_up unless right1(((@x * 128 + @revise_x) / 128.0).round, ((@y * 128 + @revise_y) / 128.0).round, distance) turn_right if @event_run end end #-------------------------------------------------------------------------- def check_event_trigger_here(triggers, run = true) result = false if $game_system.map_interpreter.running? return result end for event in $game_map.events.values if event.x == ((@x * 128 + @revise_x) / 128.0).round and event.y == ((@y * 128 + @revise_y) / 128.0).round and triggers.include?(event.trigger) if not event.jumping? and event.over_trigger? if event.list.size > 1 if run == true event.start end result = true end end end end return result end #-------------------------------------------------------------------------- def move_on if @y < (@y + @revise_y / 128.0).round @y += 1 @revise_y -= 128 end if @x > (@x + @revise_x / 128.0).round @x -= 1 @revise_x += 128 end if @x < (@x + @revise_x / 128.0).round @x += 1 @revise_x -= 128 end if @y > (@y + @revise_y / 128.0).round @y -= 1 @revise_y += 128 end end #-------------------------------------------------------------------------- def anime_update if @walk_anime @anime_count += 1.5 elsif @step_anime @anime_count += 1 end if @anime_count > 18 - @move_speed * 2 if not @step_anime and @stop_count > 0 @pattern = @original_pattern else @pattern = (@pattern + 1) % 4 end @anime_count = 0 end end #-------------------------------------------------------------------------- alias :moveto_original :moveto def moveto(x, y) @revise_x = 0 @revise_y = 0 moveto_original(x, y) end #-------------------------------------------------------------------------- def last_move?(x, y, direction, distance) if direction == 2 or direction == 6 distance *= -1 end if (direction == 2 or direction == 8) and (y / 128.0).round != ((y - distance) / 128.0).round return true end if (direction == 4 or direction == 6) and (x / 128.0).round != ((x - distance) / 128.0).round return true end return false end end #============================================================================== # Game_Character #============================================================================== class Game_Character def update_move distance = 2 ** @move_speed if @x * 128 != @real_x and @y * 128 != @real_y and Game_Player::SLANT distance /= Math.sqrt(2) end if @y * 128 > @real_y @real_y = [@real_y + distance, @y * 128].min end if @x * 128 < @real_x @real_x = [@real_x - distance, @x * 128].max end if @x * 128 > @real_x @real_x = [@real_x + distance, @x * 128].min end if @y * 128 < @real_y @real_y = [@real_y - distance, @y * 128].max end if @walk_anime @anime_count += 1.5 elsif @step_anime @anime_count += 1 end end end #============================================================================== # Game_Event #============================================================================== class Game_Event < Game_Character def start if @list.size > 1 if $game_player.event != 0 $game_player.move_speed = $game_player.event end @starting = true end end end
     
     
    [info=Support Topic]http://www.rmxpunlimited.net/forums/index.php?showtopic=162[/info]

    490 downloads

    0 comments

    Updated

  18. Cheats Input Script - v1.2 - by BudsieBuds

    Script
    [spoiler=Script]
    #============================================================================== # Cheats Input Script - v1.2 - by BudsieBuds #------------------------------------------------------------------------------ # NOTE: Start editing at line 68 and stop editing at '# STOP EDITING \\'. #============================================================================== #============================================================================== # ** Scene_Cheats #------------------------------------------------------------------------------ # by BudsieBuds #============================================================================== class Scene_Cheats #-------------------------------------------------------------------------- # * Main Processing #-------------------------------------------------------------------------- def main # Make windows @edit_window = Window_CheatsEdit.new @input_window = Window_CheatsInput.new # 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 @edit_window.dispose @input_window.dispose end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update # Update windows @edit_window.update @input_window.update # If B button was pressed if Input.repeat?(Input:: B) # If cursor position is at 0 if @edit_window.index == 0 return end # Play cancel SE $game_system.se_play($data_system.cancel_se) # Delete text @edit_window.back return end # If C button was pressed if Input.trigger?(Input::C) # If cursor position is at [OK] if @input_window.character == nil @cheat_word = @edit_window.cheat.downcase =begin # START EDITING // =============================================================================== The cheat that you have to input: elsif @cheat_word == "Put the cheat you want to use here." ------------------------------------------------------------------------------- For item(s): $game_party.gain_item(Item ID, How many) For gold: $game_party.gain_gold(How many) For weapon(s): $game_party.gain_weapon(Weapon ID, How many) For armor(s): $game_party.gain_armor(Armor ID, How many) For skill(s): $game_party.actors[Actor ID].learn_skill(Skill ID) For adding (an) actor(s): $game_party.add_actor(id) For changing a stat: $game_actors[id].stat = amount ------------------------------------------------------------------------------- This is the verification sound $game_system.se_play($data_system.decision_se) ------------------------------------------------------------------------------- Your cheat can have a maximum of 17 letters. The first cheat has to start with 'if'. The cheats coming after that have to start with 'elsif'. =============================================================================== =end if @cheat_word == "iamrich" $game_party.gain_gold(500) $game_system.se_play($data_system.decision_se) elsif @cheat_word == "iamarealfighter" $game_party.gain_weapon(1, 1) $game_party.gain_armor(21, 1) $game_system.se_play($data_system.decision_se) elsif @cheat_word == "iloveitems" for i in 1...$data_items.size $game_party.gain_item(i, 10) $game_system.se_play($data_system.decision_se) end elsif @cheat_word == "somehelpplease" $game_party.add_actor(2) $game_system.se_play($data_system.decision_se) # STOP EDITING \\ else # Play buzzer SE $game_system.se_play($data_system.buzzer_se) end # Switch to map screen $scene = Scene_Map.new return end # If text character is empty if @input_window.character == "" # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end # Play decision SE $game_system.se_play($data_system.decision_se) # Add text character @edit_window.add(@input_window.character) return end end end #============================================================================== # ** Window_Base #------------------------------------------------------------------------------ # by BudsieBuds #============================================================================== class Window_Base < Window #-------------------------------------------------------------------------- # * Draw Graphic # icon : icon # x : draw spot x-coordinate # y : draw spot y-coordinate #-------------------------------------------------------------------------- def draw_icon_graphic(icon, x, y) bitmap = RPG::Cache.icon(icon) cw = bitmap.width ch = bitmap.height src_rect = Rect.new(0, 0, cw, ch) self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect) end end #============================================================================== # ** Window_CheatsEdit #------------------------------------------------------------------------------ # by BudsieBuds #============================================================================== class Window_CheatsEdit < Window_Base #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_reader :cheat # cheat attr_reader :index # cursor position #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize super(0, 0, 640, 128) self.contents = Bitmap.new(width - 32, height - 32) @max_char = 17 @index = 0 @cheat = "" refresh update_cursor_rect end #-------------------------------------------------------------------------- # * Add Character # character : text character to be added #-------------------------------------------------------------------------- def add(character) if @index < @max_char and character != "" @cheat += character @index += 1 refresh update_cursor_rect end end #-------------------------------------------------------------------------- # * Delete Character #-------------------------------------------------------------------------- def back if @index > 0 # Delete 1 text character name_array = @cheat.split(//) @cheat = "" for i in 0...name_array.size-1 @cheat += name_array[i] end @index -= 1 refresh update_cursor_rect end end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear # Draw cheat name_array = @cheat.split(//) for i in 0...@max_char c = name_array[i] if c == nil c = "_" end x = (i + 1) * 32 self.contents.draw_text(x, 32, 28, 32, c, 1) end # Draw graphic draw_icon_graphic("cheat", 16, 60) end #-------------------------------------------------------------------------- # * Cursor Rectangle Update #-------------------------------------------------------------------------- def update_cursor_rect x = (@index + 1) * 32 self.cursor_rect.set(x, 32, 28, 32) end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super update_cursor_rect end end #============================================================================== # ** Window_CheatsInput #------------------------------------------------------------------------------ # by BudsieBuds #============================================================================== class Window_CheatsInput < Window_Base CHARACTER_TABLE = [ "A","B","C","D","E", "F","G","H","I","J", "K","L","M","N","O", "P","Q","R","S","T", "U","V","W","X","Y", "Z"," "," "," "," ", "+","-","*","/","!", "1","2","3","4","5", "" ,"" ,"" ,"" ,"" , "a","b","c","d","e", "f","g","h","i","j", "k","l","m","n","o", "p","q","r","s","t", "u","v","w","x","y", "z"," "," "," "," ", "#","$","%","&","@", "6","7","8","9","0", "" ,"" ,"" ,"" ,"" , ] #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize super(0, 128, 640, 352) self.contents = Bitmap.new(width - 32, height - 32) @index = 0 refresh update_cursor_rect end #-------------------------------------------------------------------------- # * Text Character Acquisition #-------------------------------------------------------------------------- def character return CHARACTER_TABLE[@index] end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear for i in 0...90 x = 140 + i / 5 / 9 * 180 + i % 5 * 32 y = i / 5 % 9 * 32 self.contents.draw_text(x, y, 32, 32, CHARACTER_TABLE[i], 1) end self.contents.draw_text(428, 9 * 32, 48, 32, "OK", 1) end #-------------------------------------------------------------------------- # * Cursor Rectangle Update #-------------------------------------------------------------------------- def update_cursor_rect # If cursor is positioned on [OK] if @index >= 90 self.cursor_rect.set(428, 9 * 32, 48, 32) # If cursor is positioned on anything other than [OK] else x = 140 + @index / 5 / 9 * 180 + @index % 5 * 32 y = @index / 5 % 9 * 32 self.cursor_rect.set(x, y, 32, 32) end end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super # If cursor is positioned on [OK] if @index >= 90 # Cursor down if Input.trigger?(Input::DOWN) $game_system.se_play($data_system.cursor_se) @index -= 90 end # Cursor up if Input.repeat?(Input::UP) $game_system.se_play($data_system.cursor_se) @index -= 90 - 40 end # If cursor is positioned on anything other than [OK] else # If right directional button is pushed if Input.repeat?(Input::RIGHT) # If directional button pressed down is not a repeat, or # cursor is not positioned on the right edge if Input.trigger?(Input::RIGHT) or @index / 45 < 3 or @index % 5 < 4 # Move cursor to right $game_system.se_play($data_system.cursor_se) if @index % 5 < 4 @index += 1 else @index += 45 - 4 end if @index >= 90 @index -= 90 end end end # If left directional button is pushed if Input.repeat?(Input::LEFT) # If directional button pressed down is not a repeat, or # cursor is not positioned on the left edge if Input.trigger?(Input::LEFT) or @index / 45 > 0 or @index % 5 > 0 # Move cursor to left $game_system.se_play($data_system.cursor_se) if @index % 5 > 0 @index -= 1 else @index -= 45 - 4 end if @index < 0 @index += 90 end end end # If down directional button is pushed if Input.repeat?(Input::DOWN) # Move cursor down $game_system.se_play($data_system.cursor_se) if @index % 45 < 40 @index += 5 else @index += 90 - 40 end end # If up directional button is pushed if Input.repeat?(Input::UP) # If directional button pressed down is not a repeat, or # cursor is not positioned on the upper edge if Input.trigger?(Input::UP) or @index % 45 >= 5 # Move cursor up $game_system.se_play($data_system.cursor_se) if @index % 45 >= 5 @index -= 5 else @index += 90 end end end # If L or R button was pressed if Input.repeat?(Input::L) or Input.repeat?(Input::R) # Move capital / small $game_system.se_play($data_system.cursor_se) if @index < 45 @index += 45 else @index -= 45 end end end update_cursor_rect end end
     
     
    FAQ:
     
    Q: How to access the script?
    A: Use '$scene = Scene_Cheats.new'.
     
    Q: Can I make my own icon?
    A: Yeah, but make sure that your icon is 24x24 pixels, that the name is 'cheat.png' and that it's in the 'Icons' folder of your game.
     
    Q: I can't see any letters, how come?
    A: Well, that probably because you're using the illegal version of RPG Maker XP.
    You can download the legal version HERE, it's a 30 days trail.
    If the trail ends you can buy RMXP for $60.
     
    Put this icon in your icons folder:

     
    Future Changes:
     
    Case-sensitive
    Better design
    Buzzer sound when the cheat isn't correct
     
    Credits:
     
    BudsieBuds
     
     
    Thanks:
     
    Homer (aka Matte)
     
    [info=Support Topic]http://www.rmxpunlimited.net/forums/index.php?showtopic=153[/info]

    263 downloads

    1 comment

    Updated

  19. 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

  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. Ending Credits Script

    Ending Credits Script.
     
    Updated 8th March 08
    [info=Support Topic]http://www.rmxpunlimited.net/forums/index.php?showtopic=22[/info]
    [spoiler=The Script]
    CREDITS_FONT = "Times New Roman" CREDITS_SIZE = 24 CREDITS_OUTLINE = Color.new(0,0,127, 255) CREDITS_SHADOW = Color.new(0,0,0, 100) CREDITS_FILL = Color.new(255,255,255, 255) #============================================================================== # ¦ Scene_Credits #------------------------------------------------------------------------------ # ?????????????????? #============================================================================== class Scene_Credits # This next piece of code is the credits. Please keep the Zelda teams credits. CREDIT=<<_END_ #Edit here _END_ def main #------------------------------- # Animated Background Setup #------------------------------- @sprite = Sprite.new #@sprite.bitmap = RPG::Cache.title($data_system.title_name) @backgroundList = [""] #Edit this to the title screen(s) you wish to show in the background. They do repeat. Just put a comma in between each like this ["title1","title2"] @backgroundGameFrameCount = 0 # Number of game frames per background frame. @backgroundG_BFrameCount = 3.4 @sprite.bitmap = RPG::Cache.title(@backgroundList[0]) #------------------ # Credits txt Setup #------------------ credit_lines = CREDIT.split(/\n/) credit_bitmap = Bitmap.new(640,32 * credit_lines.size) credit_lines.each_index do |i| line = credit_lines[i] credit_bitmap.font.name = CREDITS_FONT credit_bitmap.font.size = CREDITS_SIZE x = 0 credit_bitmap.font.color = CREDITS_OUTLINE credit_bitmap.draw_text(0 + 1,i * 32 + 1,640,32,line,1) credit_bitmap.draw_text(0 - 1,i * 32 + 1,640,32,line,1) credit_bitmap.draw_text(0 + 1,i * 32 - 1,640,32,line,1) credit_bitmap.draw_text(0 - 1,i * 32 - 1,640,32,line,1) credit_bitmap.font.color = CREDITS_SHADOW credit_bitmap.draw_text(0,i * 32 + 8,640,32,line,1) credit_bitmap.font.color = CREDITS_FILL credit_bitmap.draw_text(0,i * 32,640,32,line,1) end @credit_sprite = Sprite.new(Viewport.new(0,50,640,380)) @credit_sprite.bitmap = credit_bitmap @credit_sprite.z = 9998 @credit_sprite.oy = -430 #-430 @frame_index = 0 @last_flag = false #-------- # Setup #-------- #Stops all audio but background music. Audio.me_stop Audio.bgs_stop Audio.se_stop Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end Graphics.freeze @sprite.dispose @credit_sprite.dispose end ##Checks if credits bitmap has reached it's ending point def last? if @frame_index > (@credit_sprite.bitmap.height + 500) $scene = Scene_Map.new #change this to Scene_Title.new if you wish it to go to title screen instead. Audio.bgm_fade(10000) #aprox 10 seconds return true end return false end #Check if the credits should be cancelled def cancel? if Input.trigger?(Input::C) $scene = Scene_Map.new #change this to Scene_Title.new if you wish it to go to title screen instead. return true end return false end def update @backgroundGameFrameCount = @backgroundGameFrameCount + 1 if @backgroundGameFrameCount >= @backgroundG_BFrameCount @backgroundGameFrameCount = 0 # Add current background frame to the end @backgroundList = @backgroundList << @backgroundList[0] # and drop it from the first position @backgroundList.delete_at(0) @sprite.bitmap = RPG::Cache.title(@backgroundList[0]) end return if cancel? return if last? @credit_sprite.oy += 1 #this is the speed that the text scrolls. 1 is default #The fastest I'd recomend is 5, after that it gets hard to read. @frame_index += 1 #This should fix the non-self-ending credits end end
     

    518 downloads

    4 comments

    Updated

  22. 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

  23. 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

  24. Virtual Pet System

    [info=Support Topic]http://www.rmxpunlimited.net/forums/index.php?showtopic=415[/info]

    1,697 downloads

    1 comment

    Updated

  25. Weather Script

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

    756 downloads

    1 comment

    Updated

×
×
  • Create New...