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

Noob Saibot

Locked Member
  • Content Count

    2,122
  • Joined

  • Last visited

  • Days Won

    23

Everything posted by Noob Saibot

  1. Just remember credit goes to: Phoenix not me.
  2. NOTHING!!! The country...how about riding a bike or depending on your "country" (not USA/Russia..mind you)a forest to roam.
  3. LOL; the charger or battery for my Sony laptop is starting to either not charge the battery or the battery won't hold a charge. But I also have a HP desktop so no worries on my end....yet.
  4. Actually I posted it here. Look for topic that says: "GATHERING OF THE TEMPLATES"
  5. It's Worth a Shot: If the above tutorial does not solve it for you, then use the following tutorial: Step 2 - Administator Priveledges Level 2 [spoiler=Tutorial 2, the second step in the ladder]First off, I want to say that this tutorial was first posted by me at a forum called Pokecommunity, on November 12, 2007. Within a week, it had been posted at nearly every help site I could find, and turned into quite a few Youtube videos to boot. (In more than just English, too!) Anyway, it incorporates the first tutorial, and goes a step further. This should solve the problem for almost anybody who found that the first tutorial did not help. 1. Go to your root RMXP directory. (Usually C:\Program Files\Enterbrain\RPGXP) 2. Right click RPGXP.exe and choose "Properties". 3. In the "Properties" popup, go to the "Compatibility" tab. 4. Check the box that says "Run this program in compatibility mode for:" and select "Windows XP (Service Pack 2)" 5. Check the box that says "Run this program as an administrator". 6. If you cannot check the box mentioned in step 5, follow steps 7 through 11. 7. Click on the button that says "Show settings for all users". 8. Click the "OK" button on the "Windows needs your permission to continue" button, after inputting the password of the specified administrator if necessary. 9. Check the box that says "Run this program in compatibility mode for:" and select "Windows XP (Service Pack 2)" 10. Check the box that says "Run this program as an administrator". 11. Click the "OK" button. 12. Click the "OK" button. 13. Right click PSIKey.dll and choose "Properties". 14. In the "Properties" popup, go to the "Security" tab. 15. Click on the "Advanced" button. 16. Highlight the permission entry that says "Users ([your computer's name]\Users)" where [your computer's name] is whatever you named your computer. (Mine is Media-PC) 17. Click the "Edit..." button. 18. Highlight the group "Users ([your computer's name]\Users)". 19. In the popup that appears (It should be named "Permission Entry for PSIKey.dll"), check the "Allow" box for the option "Full Control". 20. All of the "Allow" boxes below the box you just checked should now be checked as well. 21. Click the "OK" Button. 22. Check the box that says "Include inheritable permissios from this object's parents". 23. Click the "OK" button. 24. Click the "OK" Button. 25. Click the "OK" Button. 26. Run RPG Maker XP, and you should no longer get the error message! 27. If you still get the error message, log into the administrative account on the computer (With the owner's permission) and then run RPG Maker XP. It should work no matter what on that account, after you have successfully completed the above steps. 28. Have fun building games with the legal version of RPG Maker XP! If neither of the above tutorials works for you, or if you are trying to install RMXP or RMVX on a computer without internet, simply follow the steps in this tutorial. Step 3 - Rewritten Registry [spoiler=Tutorial 3, the final stop]Well, this is my final, and most extreme tutorial. This is not only for people who have found that nothing they do can fix their error, it is also for those who wish to install their programs on a computer not connected to the internet. Be warned, this final tutorial involves editing the registry. Do NOT edit the registry without proper guidance, as you can do serious damage to your computer. I have personally found and exported these from the registry, and then tested them on several different computers. As a final warning, if you follow the steps in this tutorial, you will be given an expired trial version, instead of a working 30-day trial. 1. Open Notepad, and copy the code from one of the two boxes below into a new document. (Depending on whether you want to fix RMXP or RMVX) 2. Save the document as "Protexis.reg". 3. Double-click on the new file, Preotexis.reg. (The .reg might not be there, depending on your computer's settings) 4. Navigate through the popups, so that it will import the new keys into the registry. (I will not give specific messages like in previous tutorials, because this is intended for more than just Vista. Suffice to say, you should get a message to the effect of "Are you sure you want to add the information in "C:\..." to the Registry?") 5. When you have added it to the registry, you should now be able to open the program to recieve a message saying that your 30-day trial has expired, instead of the standard nTitles error. Then, all you have to do is register your copy of the program, and you can use it, even if your computer has no internet! Here are the codes you need to copy. The first box is for RPG Maker XP, and the second is for RPG Maker VX: RPG Maker XP Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Protexis] [HKEY_CURRENT_USER\Software\Protexis\Licenses] [HKEY_CURRENT_USER\Software\Protexis\Licenses\438839465] [HKEY_CURRENT_USER\Software\Protexis\Licenses\438839465\Trial] "State"=hex:d6,f1,cf,6f,8e,d8,1d,d8,23,ff,93,ee,a5,5e,d8,84,4f,cb,c3,06,c4,d9,\ 86,73,3d,dd,9a,a1,a3 [HKEY_LOCAL_MACHINE\SOFTWARE\Protexis] [HKEY_LOCAL_MACHINE\SOFTWARE\Protexis\Licenses] [HKEY_LOCAL_MACHINE\SOFTWARE\Protexis\Licenses\438839465] "Ffg8YQgm49nQGBOS"="HKkFTV4H9P3zI0/ZUBSSWJar6s8" "ReleaseCode"="309396A1D2D79E0FE2A7" "Version"="1.3.7" "Verification"=hex:98,ec,72,c9,e0,a3,99,4a,b7,2a,17,fb,ca,55,f9,08,c8,38,58,0a,\ e9,ec,a5,6b,0e,a7,9f,57,f1,00,fd,5c,1e,76,bb,9a,eb,88,a8,a1,5f,7d,ad,67,57,\ 97,a4,55,e5,38,13,f6 [HKEY_LOCAL_MACHINE\SOFTWARE\Protexis\Licenses\438839465\Trial] "Terms"=hex:d6,f1,cf,6f,8e,d8,1d,d8,3d,ff,ac,ef,9e,61,d8,84,4f,46,e4,06,ff,e6,\ 86,73,3d,dd,9a,a1,29 RPG Maker VX Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Protexis] [HKEY_CURRENT_USER\Software\Protexis\Licenses] [HKEY_CURRENT_USER\Software\Protexis\Licenses\438848462] [HKEY_CURRENT_USER\Software\Protexis\Licenses\438848462\Trial] "State"=hex:f2,b5,66,bf,da,9b,42,53,6e,0b,55,cc,ab,02,83,ef,2c,a5,38,eb,ec,42,\ 23,31,b9,35,d0,d5,13 [HKEY_LOCAL_MACHINE\SOFTWARE\Protexis] [HKEY_LOCAL_MACHINE\SOFTWARE\Protexis\Licenses] [HKEY_LOCAL_MACHINE\SOFTWARE\Protexis\Licenses\438848462] "LpxXU/2AvhBzjA+V"="SLR/aMreuFxa2F2++aYViVgofQY" "ReleaseCode"="F440E556A6B776EBD961" "Version"="1.3.9" "Verification"=hex:12,24,d8,df,26,90,25,4f,b6,23,e3,85,a8,6d,8d,d5,cf,31,2a,df,\ 5e,79,d1,53,ad,60,1c,e8,d0,5c,e3,6a,a3,90,41,11,41,92,96,8b,68,d9,93,fe,13,\ d9,a0,b9,28,35,17,1b [HKEY_LOCAL_MACHINE\SOFTWARE\Protexis\Licenses\438848462\Trial] "Terms"=hex:f4,b5,66,bf,da,9b,42,53,70,0b,55,cc,84,43,83,ef,d2,29,1f,eb,c3,03,\ 23,31,b9,35,d0,d5,5e If that fails: http://www.google.com/search?hl=en&client=firefox-a&hs=keV&rls=org.mozilla%3Aen-US%3Aofficial&q=RPG+Maker+XP+Has+Stopped+Working&btnG=Search&aq=f&aqi=&aql=&oq=&gs_rfai=
  6. Call me picky but...SMF uses Themes, MyBB uses Themes. IPB Uses SKINS not themes. Ya...I'm just old fashioned.
  7. Well it is 11:03am on 07 APR 2010 and I am back pulling stuff from the RMXPU.net Archive... Blue Text---Working Link!! Red Text--- Broken Link Original Post: RMXPU.net Archive Back Up of Images: back_up_Graphics.zip ================================================================================================================================================ ================================================================================================================================================ Dash Template (maker unknown)
  8. Mad Klown brought this from the RMXPU.net Archive. If the image CANT be seen click here as we backed it up on our servers: back up Original Post: RMXPU.net Archive
  9. We find it in the RMXPU.net Archive we bring it here so you don't have to find it... If the image is gone then we backed it up on our servers here: herotierin9 | herotier3qi8.png Original Post: RMXPU.net Archive
  10. Pulling stuff from RMXPU.net Archive: Original Post: RMXPU.net Archive Back Up Links To Images: Ant | Millipede | Termite | Black Widow
  11. RMXPU.net Archive brings you another script from the Archive of RMXPU.net! Original Post: RMXPU.net Archive
  12. Retrieved the following script from the RMXPU.net archive: Original Post: RMXPU.net Archive
  13. I will revive these scripts if it kills me... Original Post: RMXPU.net Archive Back Up of Template: template back up
  14. I SEARCHED the Archive of RMXPU.net and revive the scripts so you don't have to... Original Post: RMXPU.net Archive
  15. I found a Script archived by the man himself, Constance of RMXPU.net Screenshots Demo RMXPU.net did not archive one SORRY; Mad Klown Script Click here RMXPU.com Have added a back up below as well! Instructions Place above main. Make sure you have the latest SDK version and the Sylfaen font as well. If you do not have the font installed, click here. FAQ There is a slight lag due to much updating. I know where this is occuring and I will fix this in the near future as well as make the coding simpler. :) Compatibility SDK Compatible Credits and Thanks Thanks goes to: SephirothSpawn for some small coding from the Advanced Monster Beastiary Script. jackatrades for some small coding from the Advanced Item Detail View Script. Slipknot for small coding mod Author's Notes I will not do requests for this script, however, you are free to edit this in any way but please give credit to me and the others mentioned. When I release the lag-free version I will update this topic. Enjoy. :) ~Constance Original Post: RMXPU.net Archive Back Up of Script #============================================================================== # ** Advanced Item Grid Menu #------------------------------------------------------------------------------ # Constance # Version: 1.1 # 11.4.06 #============================================================================== #------------------------------------------------------------------------------ # * SDK Log Script #------------------------------------------------------------------------------ SDK.log('Advanced Item Grid Menu', 'Constance', 1.0, '11.4.06') #------------------------------------------------------------------------------ # * Begin SDK Enable Test #------------------------------------------------------------------------------ if SDK.state('Advanced Item Grid Menu') == true #============================================================================== # ** Window_Base #------------------------------------------------------------------------------ # This class is for all in-game windows. #============================================================================== class Window_Base < Window #-------------------------------------------------------------------------- # * Draw Level2 # actor : actor # x : draw spot x-coordinate # y : draw spot y-coordinate #-------------------------------------------------------------------------- def draw_actor_level2(actor, x, y) self.contents.font.color = system_color self.contents.draw_text(x, y, 32, 32, "Lv:") self.contents.font.color = normal_color self.contents.draw_text(x + 16, y, 24, 32, actor.level.to_s, 2) end end #============================================================================== # ** Window_Grid_Dummy #------------------------------------------------------------------------------ # Dummy Window for viewing the real grid. #============================================================================== class Window_Grid_Dummy < Window_Base #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize super(0, 64, 352, 416) self.contents = Bitmap.new(width - 32, height - 32) end end #of class #============================================================================== # ** Window_Statistics #------------------------------------------------------------------------------ # Window for the statistics window for each item. #============================================================================== class Window_Statistics < Window_Base #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize super(352, 64, 288, 416) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = "Sylfaen" end end #of class #============================================================================== # ** Window_Welcome #------------------------------------------------------------------------------ # Window for the welcome at the top. #============================================================================== class Window_Welcome < Window_Base #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize super(0, 0, 640, 64) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = "Sylfaen" end end #of class #============================================================================== # ** Window_Selectable2 #------------------------------------------------------------------------------ # This class is the same as Window_Selectable but changes cursor properties for # the grid only. #============================================================================== class Window_Selectable2 < Window_Selectable #-------------------------------------------------------------------------- # * Update Cursor Rectangle #-------------------------------------------------------------------------- def update_cursor_rect # If cursor position is less than 0 if @index < 0 self.cursor_rect.empty return end # Get current row row = @index / @column_max # If current row is before top row if row < self.top_row # Scroll so that current row becomes top row self.top_row = row end # If current row is more to back than back row if row > self.top_row + (self.page_row_max - 1) # Scroll so that current row becomes back row self.top_row = row - (self.page_row_max - 1) end # Calculate cursor width cursor_width = self.width / @column_max - 32 # Calculate cursor coordinates x = @index % @column_max * (cursor_width) y = @index / @column_max * 32 - self.oy # Update cursor rectangle self.cursor_rect.set(x, y, cursor_width, 32) end end #============================================================================== # ** Window_Item #------------------------------------------------------------------------------ # The Item Grid Window. Based off a 10 column coding. #============================================================================== class Window_Item < Window_Selectable2 #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :item #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize super(0, 64, 640, 416) self.opacity = 0 @column_max = 10 refresh self.index = 0 # If in battle, move window to center of screen # and make it semi-transparent if $game_temp.in_battle self.x = 144 self.y = 64 self.back_opacity = 250 end end #-------------------------------------------------------------------------- # * Get Item #-------------------------------------------------------------------------- def item return @data[self.index] end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh if self.contents != nil self.contents.dispose self.contents = nil end @data = [] # Add item for i in 1...$data_items.size if $game_party.item_number(i) > 0 @data.push($data_items[i]) end end # Also add weapons and items if outside of battle unless $game_temp.in_battle for i in 1...$data_weapons.size if $game_party.weapon_number(i) > 0 @data.push($data_weapons[i]) end end for i in 1...$data_armors.size if $game_party.armor_number(i) > 0 @data.push($data_armors[i]) end end end # If item count is not 0, make a bit map and draw all items @item_max = @data.size if @item_max > 0 self.contents = Bitmap.new(width - 32, row_max * 32) for i in 0...@item_max draw_item(i) end end end #-------------------------------------------------------------------------- # * Draw Item # index : item number #-------------------------------------------------------------------------- def draw_item(index) item = @data[index] case item when RPG::Item number = $game_party.item_number(item.id) when RPG::Weapon number = $game_party.weapon_number(item.id) when RPG::Armor number = $game_party.armor_number(item.id) end if item.is_a?(RPG::Item) and $game_party.item_can_use?(item.id) self.contents.font.color = normal_color else self.contents.font.color = disabled_color end x = index % 10 * (32) y = index / 10 * 32 rect = Rect.new(x, y, self.width / @column_max - 32, 32) self.contents.fill_rect(rect, Color.new(0, 0, 0, 0)) bitmap = RPG::Cache.icon(item.icon_name) opacity = self.contents.font.color == normal_color ? 255 : 128 self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity) self.contents.draw_text(x + 2, y + 7, 24, 32, number.to_s, 2) end #-------------------------------------------------------------------------- # * Help Text Update #-------------------------------------------------------------------------- def update_help @help_window.set_text(self.item == nil ? "" : self.item.description) end end #of class #============================================================================== # ** Window_Target #------------------------------------------------------------------------------ # This window selects a use target for the actor on item and skill screens. #============================================================================== class Window_Target < Window_Selectable #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize super(202, 170, 288, 160) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = "Sylfaen" self.z += 10 @item_max = $game_party.actors.size @column_max = 4 end #-------------------------------------------------------------------------- # * Cursor Rectangle Update #-------------------------------------------------------------------------- def update_cursor_rect self.contents.clear for i in 0...$game_party.actors.size x = 10 + i * 60 y = 0 actor = $game_party.actors[i] draw_actor_name(actor, x, y) draw_actor_graphic(actor, x + 20, y + 80) draw_actor_level2(actor, x, y + 66) end actor = $game_party.actors[self.index] x = 0 y = 0 draw_actor_hp(actor, x + 60, y + 86) draw_actor_sp(actor, x + 60, y + 106) # Cursor position -1 = all choices, -2 or lower = independent choice # (meaning the user's own choice) if @index <= -2 self.cursor_rect.set(0, (@index + 10) * 60, 60, 96) elsif @index == -1 self.cursor_rect.set(0, 0, 60, @item_max * 116 - 20) else self.cursor_rect.set(@index * 60, 0, 60, 96) end end end #============================================================================== # ** Scene_Item #------------------------------------------------------------------------------ # This class performs item screen processing. #============================================================================== class Scene_Item #-------------------------------------------------------------------------- # * Main Processing #-------------------------------------------------------------------------- def main # Make help window @help_window = Window_Help.new @help_window.z = -10 # Make grid window @item_window = Window_Item.new # Associate help window @item_window.help_window = @help_window # Make dummy grid window @dummy_window = Window_Grid_Dummy.new # Make dummy statistics window @statistics_window = Window_Statistics.new # Make target window @target_window = Window_Target.new @target_window.active = false @target_window.visible = false # Make welcome window @welcome_window = Window_Welcome.new # Draw welcome text @welcome_window.contents.draw_text(0, 0, 255, 32, "Welcome to the Your Inventory Screen.", 1) # 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 @welcome_window.dispose @help_window.dispose @item_window.dispose @dummy_window.dispose @statistics_window.dispose @target_window.dispose end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update # Update windows @welcome_window.update @help_window.update @item_window.update @target_window.update # If grid window is active: call update_item if @item_window.active update_item update_stats return end # If target window is active: call update_target if @target_window.active update_target return end end #-------------------------------------------------------------------------- # * Stats Text Update # -- If Item = Item -> Item_Values # -- If Item = Weapon -> Weapon_Values # -- If Item = Armor -> Armor_Values #-------------------------------------------------------------------------- def update_stats @x, @y = 0, 0 @statistics_window.contents.clear if @item_window.item != 0 @item = @item_window.item update_item elsif @grid_widnow.item = 0 @statistics_window.contents.clear end case @item when RPG::Item number = $game_party.item_number(@item.id) update_item_values when RPG::Weapon number = $game_party.weapon_number(@item.id) update_weapon_values when RPG::Armor number = $game_party.armor_number(@item.id) update_armor_values end end #-------------------------------------------------------------------------- # * Update Item Values #-------------------------------------------------------------------------- def update_item_values # Clear Window @statistics_window.contents.clear # Create Default Word Values @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 @guard_word = $data_system.words.guard # Create Stats @statistics_window.contents.font.color = Color.new(192, 224, 255, 255) @statistics_window.contents.font.bold = true @statistics_window.contents.draw_text(@x, @y, 212, 32, "Name: ", 0) @statistics_window.contents.draw_text(@x, @y + 42, 212, 32, "Description:", 0) @statistics_window.contents.draw_text(@x, @y + 106, 212, 32, "Item Type: ", 0) @statistics_window.contents.draw_text(@x, @y + 140, 212, 32, "Statistics: ", 0) @statistics_window.contents.font.bold = false @statistics_window.contents.font.color = Color.new(255, 255, 255, 255) @statistics_window.contents.draw_text(@x + 60, @y, 212, 32, @item.name, 0) @statistics_window.contents.draw_text(@x, @y + 62, 252, 32, @item.description, 0) @statistics_window.contents.draw_text(@x + 95, @y + 106, 212, 32, "Item", 0) # Main Words @statistics_window.contents.font.color = Color.new(192, 224, 255, 255) @statistics_window.contents.draw_text(@x, @y + 165, 212, 32, "Enhancements: ", 0) @statistics_window.contents.draw_text(@x, @y + 185, 212, 32, "Range: ", 0) @statistics_window.contents.draw_text(@x, @y + 205, 212, 32, "Recovery: ", 0) @statistics_window.contents.draw_text(@x, @y + 225, 212, 32, "Elements: ", 0) @statistics_window.contents.draw_text(@x, @y + 245, 212, 32, "Status Effects: ", 0) # Values @statistics_window.contents.font.color = Color.new(255, 255, 255, 255) # Enhancements parameter = @item.parameter_type case parameter when 0 @statistics_window.contents.draw_text(@x + 108, @y + 165, 212, 32, "None", 0) when 1 @statistics_window.contents.draw_text(@x + 108, @y + 165, 212, 32, "Max #{@hp_word} + " + @item.parameter_points.to_s, 0) when 2 @statistics_window.contents.draw_text(@x + 108, @y + 165, 212, 32, "Max #{@sp_word} + " + @item.parameter_points.to_s, 0) when 3 @statistics_window.contents.draw_text(@x + 108, @y + 165, 212, 32, "#{@str_word} + " + @item.parameter_points.to_s, 0) when 4 @statistics_window.contents.draw_text(@x + 108, @y + 165, 212, 32, "#{@dex_word} + " + @item.parameter_points.to_s, 0) when 5 @statistics_window.contents.draw_text(@x + 108, @y + 165, 212, 32, "#{@agi_word} + " + @item.parameter_points.to_s, 0) when 6 @statistics_window.contents.draw_text(@x + 108, @y + 165, 212, 32, "#{@int_word} + " + @item.parameter_points.to_s, 0) end # Range scope = @item.scope case scope when 0 @statistics_window.contents.draw_text(@x + 110, @y + 185, 212, 32, "None", 0) when 1 @statistics_window.contents.draw_text(@x + 92, @y + 185, 212, 32, "One Enemy", 0) when 2 @statistics_window.contents.draw_text(@x + 92, @y + 185, 212, 32, "All Enemies", 0) when 3 @statistics_window.contents.draw_text(@x + 92, @y + 185, 212, 32, "One Ally", 0) when 4 @statistics_window.contents.draw_text(@x + 92, @y + 185, 212, 32, "All Allies", 0) when 5 @statistics_window.contents.draw_text(@x + 92, @y + 185, 212, 32, "One Ally", 0) when 6 @statistics_window.contents.draw_text(@x + 92, @y + 185, 212, 32, "All Allies", 0) when 7 @statistics_window.contents.draw_text(@x + 92, @y + 185, 212, 32, "This User", 0) end # HP hp_recover = @item.recover_hp if @item.recover_hp == 0 hp_recover = "0" end if @item.recover_sp == 0 sp_recover = "0" end @statistics_window.contents.font.color = Color.new(255, 255, 255, 255) @statistics_window.contents.draw_text(@x + 110, @y + 205, 212, 32, hp_recover.to_s + " HP", 0) # SP sp_recover = @item.recover_sp @statistics_window.contents.font.color = Color.new(255, 255, 255, 255) @statistics_window.contents.draw_text(@x + 180, @y + 205, 212, 32, sp_recover.to_s + " SP", 0) # Create Elements element = "" flag = false for i in @item.element_set if flag element += ", " end element += $data_system.elements[i] flag = true end if element == "" element = "None" end # Create Status Effects status = "" flag = false for i in @item.plus_state_set if flag status += ", " end status += $data_states[i].name flag = true end if status == "" status = "None" end # Draw Element And Status Effects @statistics_window.contents.draw_text(@x + 110, @y + 230, 420, 24, element, 0) @statistics_window.contents.draw_text(@x + 110, @y + 250, 420, 24, status, 0) end #-------------------------------------------------------------------------- # * Update Weapon Values #-------------------------------------------------------------------------- def update_weapon_values @statistics_window.contents.clear @statistics_window.contents.font.color = Color.new(192, 224, 255, 255) @statistics_window.contents.font.bold = true @statistics_window.contents.draw_text(@x, @y, 212, 32, "Name: ", 0) @statistics_window.contents.draw_text(@x, @y + 42, 212, 32, "Description:", 0) @statistics_window.contents.draw_text(@x, @y + 106, 212, 32, "Item Type: ", 0) @statistics_window.contents.draw_text(@x, @y + 140, 212, 32, "Statistics: ", 0) @statistics_window.contents.font.bold = false @statistics_window.contents.font.color = Color.new(255, 255, 255, 255) @statistics_window.contents.draw_text(@x + 60, @y, 212, 32, @item.name, 0) @statistics_window.contents.draw_text(@x, @y + 62, 252, 32, @item.description, 0) @statistics_window.contents.draw_text(@x + 95, @y + 106, 212, 32, "Weapon", 0) # Main Words @statistics_window.contents.font.color = Color.new(192, 224, 255, 255) @statistics_window.contents.draw_text(@x, @y + 165, 212, 32, "#{@atk_word}: ", 0) @statistics_window.contents.draw_text(@x, @y + 185, 212, 32, "#{@pdef_word}: ", 0) @statistics_window.contents.draw_text(@x, @y + 205, 212, 32, "#{@mdef_word}: ", 0) @statistics_window.contents.draw_text(@x, @y + 225, 212, 32, "#{@str_word}: ", 0) @statistics_window.contents.draw_text(@x, @y + 245, 212, 32, "#{@dex_word}: ", 0) @statistics_window.contents.draw_text(@x, @y + 265, 212, 32, "#{@agi_word}: ", 0) @statistics_window.contents.draw_text(@x, @y + 285, 212, 32, "#{@int_word}: ", 0) @statistics_window.contents.draw_text(@x, @y + 305, 212, 32, "Elements: ", 0) @statistics_window.contents.draw_text(@x, @y + 325, 212, 32, "Status Effects: ", 0) # Values @statistics_window.contents.font.color = Color.new(255, 255, 255, 255) # Attack atk = @item.atk @statistics_window.contents.draw_text(@x + 120, @y + 165, 212, 32, atk.to_s, 0) # Physical Defense pdef = @item.pdef @statistics_window.contents.draw_text(@x + 120, @y + 185, 212, 32, pdef.to_s, 0) # Magical Defense mdef = @item.mdef @statistics_window.contents.draw_text(@x + 120, @y + 205, 212, 32, mdef.to_s, 0) # Strength str_plus = @item.str_plus @statistics_window.contents.draw_text(@x + 120, @y + 225, 212, 32, str_plus.to_s, 0) # Dexterity dex_plus = @item.dex_plus @statistics_window.contents.draw_text(@x + 120, @y + 245, 212, 32, dex_plus.to_s, 0) # Agility agi_plus = @item.agi_plus @statistics_window.contents.draw_text(@x + 120, @y + 265, 212, 32, agi_plus.to_s, 0) # Intelligence int_plus = @item.int_plus @statistics_window.contents.draw_text(@x + 120, @y + 285, 212, 32, int_plus.to_s, 0) # Create Elements element = "" flag = false for i in @item.element_set if flag element += ", " end element += $data_system.elements[i] flag = true end if element == "" element = "None" end # Create Status Effects status = "" flag = false for i in @item.plus_state_set if flag status += ", " end status += $data_states[i].name flag = true end if status == "" status = "None" end # Draw Element And Status Effects @statistics_window.contents.draw_text(@x + 110, @y + 310, 420, 24, element, 0) @statistics_window.contents.draw_text(@x + 110, @y + 330, 420, 24, status, 0) end #-------------------------------------------------------------------------- # * Update Armor Values #-------------------------------------------------------------------------- def update_armor_values @statistics_window.contents.clear @statistics_window.contents.font.color = Color.new(192, 224, 255, 255) @statistics_window.contents.font.bold = true @statistics_window.contents.draw_text(@x, @y, 212, 32, "Name: ", 0) @statistics_window.contents.draw_text(@x, @y + 42, 212, 32, "Description:", 0) @statistics_window.contents.draw_text(@x, @y + 106, 212, 32, "Item Type: ", 0) @statistics_window.contents.draw_text(@x, @y + 140, 212, 32, "Statistics: ", 0) @statistics_window.contents.font.bold = false @statistics_window.contents.font.color = Color.new(255, 255, 255, 255) @statistics_window.contents.draw_text(@x + 60, @y, 212, 32, @item.name, 0) @statistics_window.contents.draw_text(@x, @y + 62, 252, 32, @item.description, 0) # Kind of Armor kind_word = $data_system.words.send("armor#{@item.kind + 1}") @statistics_window.contents.draw_text(@x + 95, @y + 106, 212, 32, "Armor -> #{kind_word}", 0) # Main Words @statistics_window.contents.font.color = Color.new(192, 224, 255, 255) @statistics_window.contents.draw_text(@x, @y + 165, 212, 32, "#{@pdef_word}: ", 0) @statistics_window.contents.draw_text(@x, @y + 185, 212, 32, "#{@mdef_word}: ", 0) @statistics_window.contents.draw_text(@x, @y + 205, 212, 32, "EVA: ", 0) @statistics_window.contents.draw_text(@x, @y + 225, 212, 32, "#{@str_word}: ", 0) @statistics_window.contents.draw_text(@x, @y + 245, 212, 32, "#{@dex_word}: ", 0) @statistics_window.contents.draw_text(@x, @y + 265, 212, 32, "#{@agi_word}: ", 0) @statistics_window.contents.draw_text(@x, @y + 285, 212, 32, "#{@int_word}: ", 0) @statistics_window.contents.draw_text(@x, @y + 305, 212, 32, "Guard Elements: ", 0) @statistics_window.contents.draw_text(@x, @y + 325, 212, 32, "Guard Effects: ", 0) # Values @statistics_window.contents.font.color = Color.new(255, 255, 255, 255) # Physical Defense pdef = @item.pdef @statistics_window.contents.draw_text(@x + 120, @y + 165, 212, 32, pdef.to_s, 0) # Magical Defense mdef = @item.mdef @statistics_window.contents.draw_text(@x + 120, @y + 185, 212, 32, mdef.to_s, 0) # Evasion eva = @item.eva @statistics_window.contents.draw_text(@x + 120, @y + 205, 212, 32, eva.to_s, 0) # Strength str_plus = @item.str_plus @statistics_window.contents.draw_text(@x + 120, @y + 225, 212, 32, str_plus.to_s, 0) # Dexterity dex_plus = @item.dex_plus @statistics_window.contents.draw_text(@x + 120, @y + 245, 212, 32, dex_plus.to_s, 0) # Agility agi_plus = @item.agi_plus @statistics_window.contents.draw_text(@x + 120, @y + 265, 212, 32, agi_plus.to_s, 0) # Intelligence int_plus = @item.int_plus @statistics_window.contents.draw_text(@x + 120, @y + 285, 212, 32, int_plus.to_s, 0) # Create Elements element = "" flag = false for i in @item.guard_element_set if flag element += ", " end element += $data_system.elements[i] flag = true end if element == "" element = "None" end # Create Status Effects status = "" flag = false for i in @item.guard_state_set if flag status += ", " end status += $data_states[i].name flag = true end if status == "" status = "None" end # Draw Element And Status Effects @statistics_window.contents.draw_text(@x + 110, @y + 310, 420, 24, element, 0) @statistics_window.contents.draw_text(@x + 110, @y + 330, 420, 24, status, 0) end #-------------------------------------------------------------------------- # * Frame Update (when item window is active) #-------------------------------------------------------------------------- def update_item # If B button was pressed if Input.trigger?(Input::B) # Play cancel SE $game_system.se_play($data_system.cancel_se) # Switch to menu screen $scene = Scene_Menu.new(0) return end # If C button was pressed if Input.trigger?(Input::C) # Get currently selected data on the item window @item = @item_window.item # If not a use item unless @item.is_a?(RPG::Item) # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end # If it can't be used unless $game_party.item_can_use?(@item.id) # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end # Play decision SE $game_system.se_play($data_system.decision_se) # If effect scope is an ally if @item.scope >= 3 # Activate target window @item_window.active = false @target_window.visible = true @target_window.active = true # Set cursor position to effect scope (single / all) if @item.scope == 4 || @item.scope == 6 @target_window.index = -1 else @target_window.index = 0 end # If effect scope is other than an ally else # If command event ID is valid if @item.common_event_id > 0 # Command event call reservation $game_temp.common_event_id = @item.common_event_id # Play item use SE $game_system.se_play(@item.menu_se) # If consumable if @item.consumable # Decrease used items by 1 $game_party.lose_item(@item.id, 1) # Draw item window item @item_window.draw_item(@item_window.index) end # Switch to map screen $scene = Scene_Map.new return end end return end end #-------------------------------------------------------------------------- # * Frame Update (when target window is active) #-------------------------------------------------------------------------- def update_target # If B button was pressed if Input.trigger?(Input::B) # Play cancel SE $game_system.se_play($data_system.cancel_se) # If unable to use because items ran out unless $game_party.item_can_use?(@item.id) # Remake item window contents @item_window.refresh end # Erase target window @item_window.active = true @target_window.visible = false @target_window.active = false return end # If C button was pressed if Input.trigger?(Input::C) # If items are used up if $game_party.item_number(@item.id) == 0 # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end # If target is all if @target_window.index == -1 # Apply item effects to entire party used = false for i in $game_party.actors used |= i.item_effect(@item) end end # If single target if @target_window.index >= 0 # Apply item use effects to target actor target = $game_party.actors[@target_window.index] used = target.item_effect(@item) end # If an item was used if used # Play item use SE $game_system.se_play(@item.menu_se) # If consumable if @item.consumable # Decrease used items by 1 $game_party.lose_item(@item.id, 1) # Redraw item window item @item_window.draw_item(@item_window.index) end # Remake target window contents @target_window.refresh # If all party members are dead if $game_party.all_dead? # Switch to game over screen $scene = Scene_Gameover.new return end # If common event ID is valid if @item.common_event_id > 0 # Common event call reservation $game_temp.common_event_id = @item.common_event_id # Switch to map screen $scene = Scene_Map.new return end end # If item wasn't used unless used # Play buzzer SE $game_system.se_play($data_system.buzzer_se) end return end end end #of class #============================================================================== # ** Scene_Battle (part 3) #------------------------------------------------------------------------------ # This class performs battle screen processing. #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # * Alias' New Game Method #-------------------------------------------------------------------------- alias con_ais_scene_battle_main main #-------------------------------------------------------------------------- # * Main Processing #-------------------------------------------------------------------------- def main # Make dummy grid window @dummy_window = Window_Grid_Dummy.new # Hide dummy window @dummy_window.visible = false @dummy_window.opacity = 255 # Call Original Method con_ais_scene_battle_main end #-------------------------------------------------------------------------- # * Frame Update (actor command phase : item selection) #-------------------------------------------------------------------------- def update_phase3_item_select # Make item window visible @item_window.visible = true @dummy_window.visible = true # Update item window @item_window.update # If B button was pressed if Input.trigger?(Input::B) # Play cancel SE $game_system.se_play($data_system.cancel_se) # End item selection end_item_select return end # If C button was pressed if Input.trigger?(Input::C) # Get currently selected data on the item window @item = @item_window.item # If it can't be used unless $game_party.item_can_use?(@item.id) # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end # Play decision SE $game_system.se_play($data_system.decision_se) # Set action @active_battler.current_action.item_id = @item.id # Make item window invisible @item_window.visible = false # Make dummy window invisible @dummy_window.visible = false # If effect scope is single enemy if @item.scope == 1 # Start enemy selection start_enemy_select # If effect scope is single ally elsif @item.scope == 3 or @item.scope == 5 # Start actor selection start_actor_select # If effect scope is not single else # End item selection end_item_select # Go to command input for next actor phase3_next_actor end return end end #-------------------------------------------------------------------------- # * Start Item Selection #-------------------------------------------------------------------------- def start_item_select # Make item window @item_window = Window_Item.new # Associate help window @item_window.help_window = @help_window # Disable actor command window @actor_command_window.active = false @actor_command_window.visible = false # Show dummy window @dummy_window.visible = true @dummy_window.opacity = 160 @dummy_window.x = 144 end #-------------------------------------------------------------------------- # * End Item Selection #-------------------------------------------------------------------------- def end_item_select # Dispose of item window @item_window.dispose @item_window = nil # Hide help window @help_window.visible = false # Enable actor command window @actor_command_window.active = true @actor_command_window.visible = true # Hide dummy window @dummy_window.visible = false end end #of class #-------------------------------------------------------------------------- # * End SDK Enable Test #-------------------------------------------------------------------------- end
  16. Here is a script I found in the archive of RMXPU.net, enjoy. Code #============================================================================== # ** Sideview System # ** Sideview Battle System Unanimated #------------------------------------------------------------------------------ # Ordaz , Paradox2D6 and Squall (Credits) # Version 1.14 # 3/10/2006 #============================================================================== #------------------------------------------------------------------------------ # * SDK Log Script #------------------------------------------------------------------------------ SDK.log(' Unanimated Sideview Battle System', 'Ordaz', 1, '2006-10-03') #------------------------------------------------------------------------------ # * Begin SDK Enable Test #------------------------------------------------------------------------------ if SDK.state(" Unanimated Sideview Battle System") == true #------------------------------------------------------------------------------ # * Actual Processing #------------------------------------------------------------------------------ module SDVA X_LINE = 400 # 横位置のバトラー表示座標 Y_LINE = 225 # 縦位置のバトラー表示座標 X_SPACE = 20 # 横位置のバトラー同士の間隔 Y_SPACE = 30 # 縦位置のバトラー同士の間隔 X_POSITION = 50 # 隊列[前衛・中衛・後衛]の横間隔 Y_POSITION = 0 # 隊列[前衛・中衛・後衛]の縦間隔 ATTACK_MOVE = true # 攻撃時に前へ踏み出すか( true / false ) SKILL_MOVE = false # スキル使用時に前へ踏み出すか( true / false ) ITEM_MOVE = false # アイテム使用時に前へ踏み出すか( true / false ) MOVE_STEP = 3 # 移動歩数 MOVE_PIXEL = 10 # 一歩あたりのピクセル数 PARTY_POS = 1 # キャラクターの向き( 0:下 / 1:左 / 2:右 / 3:上 ) WINDOWPOS_CHANGE = true # コマンドウインドウをバトラーの横に表示するか( true / false ) end #============================================================================== # ■ Game_Actor #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● Draw X Coordinate #-------------------------------------------------------------------------- def screen_x if self.index != nil # 隊列を取得 pos = $data_classes[self.class_id].position x_pos = pos * SDVA::X_POSITION scr_x = self.index * SDVA::X_SPACE + SDVA::X_LINE + x_pos # 移動アクションのとき if self.current_action.move_action == true # 横に移動 scr_x += @shift_x end return scr_x else return 0 end end #-------------------------------------------------------------------------- # ●Draw Y Coordinate #-------------------------------------------------------------------------- def screen_y if self.index != nil # 隊列を取得 pos = $data_classes[self.class_id].position y_pos = pos * SDVA::Y_POSITION scr_y = self.index * SDVA::Y_SPACE + SDVA::Y_LINE + y_pos # 移動アクションのとき if self.current_action.move_action == true # 縦に移動 scr_y += @shift_y end return scr_y else return 0 end end #-------------------------------------------------------------------------- # ● Draw Z Coordinate #-------------------------------------------------------------------------- def screen_z if self.index != nil return self.index else return 0 end end end #============================================================================== # ■ Game_Battler (分割定義 1) #============================================================================== class Game_Battler #------------------------------------------------------------------------------ # * Public Variables #------------------------------------------------------------------------------ attr_reader :pattern # 歩行パターン attr_reader :trans_x # X方向の移動距離 attr_reader :moving # 移動中フラグ #-------------------------------------------------------------------------- # ● Initialize Battle #-------------------------------------------------------------------------- alias initialize_sdva initialize def initialize initialize_sdva move_reset end #-------------------------------------------------------------------------- # ● Move Process #-------------------------------------------------------------------------- def move @moving = 1 if @step < SDVA::MOVE_STEP # 歩数を満たすまで移動 @pattern = (@pattern + 1) % 4 @step += 1 move_step else # 移動終了 @pattern = 1 @moving = 2 end end #-------------------------------------------------------------------------- # ● Sets up the position of your character #-------------------------------------------------------------------------- def move_step # パーティの向きによって移動座標を変える case SDVA::PARTY_POS when 0 @shift_y = @step * SDVA::MOVE_PIXEL when 1 @shift_x = -(@step * SDVA::MOVE_PIXEL) when 2 @shift_x = @step * SDVA::MOVE_PIXEL when 3 @shift_y = -(@step * SDVA::MOVE_PIXEL) end end #-------------------------------------------------------------------------- # ● Ending Movement module #-------------------------------------------------------------------------- def move_reset @moving = 0 @pattern = 0 @step = 0 @shift_x = 0 @shift_y = 0 end end #============================================================================== # ■ Game_BattleAction #============================================================================== class Game_BattleAction #-------------------------------------------------------------------------- # ● Public Insurance Variables #-------------------------------------------------------------------------- attr_accessor :move_action # 移動するアクションか #-------------------------------------------------------------------------- # ● Clear The System #-------------------------------------------------------------------------- alias clear_sdva clear def clear clear_sdva @move_action = false end end #============================================================================== # ■ Sprite_Battler #============================================================================== class Sprite_Battler < RPG::Sprite #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- alias update_sdva update def update # バトラーがアクターに含まれるとき if @battler.is_a?(Game_Actor) # ファイル名か色相が現在のものと異なる場合 # 行動中の場合 if @battler.battler_name != @battler_name or @battler.battler_hue != @battler_hue or @battler.current_action.basic == 0 or @battler.current_action.kind != 3 # ビットマップを取得、設定 @character_name = @battler.character_name @character_hue = @battler.character_hue # 歩行グラフィックを描画 self.bitmap = RPG::Cache.character(@character_name, @character_hue) cw = self.bitmap.width / 4 ch = self.bitmap.height / 4 @width = cw @height = ch if @battler.current_action.move_action == true # 歩かせる @battler.move else @battler.move_reset end # 転送元の矩形を設定 sx = @battler.pattern * cw sy = SDVA::PARTY_POS * ch self.src_rect.set(sx, sy, cw, ch) self.ox = @width / 2 self.oy = @height # 隠れ状態なら不透明度を 0 にする if @battler.hidden self.opacity = 0 end end end update_sdva end end #============================================================================== # ■ Scene_Battle #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # ● Initializing the windows and the Bars #-------------------------------------------------------------------------- alias phase3_setup_command_window_sdva phase3_setup_command_window def phase3_setup_command_window phase3_setup_command_window_sdva if SDVA::WINDOWPOS_CHANGE # アクターコマンドウィンドウの位置を設定 case SDVA::PARTY_POS when 0 x_pos = @active_battler.screen_x - (@actor_command_window.width/2) y_pos = @active_battler.screen_y when 1 x_pos = @active_battler.screen_x - @actor_command_window.width - 16 y_pos = @active_battler.screen_y - @actor_command_window.height when 2 x_pos = @active_battler.screen_x + 16 y_pos = @active_battler.screen_y - @actor_command_window.height when 3 x_pos = @active_battler.screen_x - (@actor_command_window.width/2) y_pos = @active_battler.screen_y - @actor_command_window.height - 48 end @actor_command_window.x = x_pos >= 0 ? x_pos : 0 @actor_command_window.x = x_pos+@actor_command_window.width <= 640 ? x_pos : 640-@actor_command_window.width @actor_command_window.y = y_pos >= 0 ? y_pos : 0 @actor_command_window.y = y_pos+@actor_command_window.height <= 480 ? y_pos : 480-@actor_command_window.height # ステータスウインドウに隠れないように @actor_command_window.z = 9999 end end #-------------------------------------------------------------------------- # ● Events Move #-------------------------------------------------------------------------- alias update_phase4_step3_sdva update_phase4_step3 def update_phase4_step3 if SDVA::ATTACK_MOVE if @active_battler.current_action.basic == 0 @active_battler.current_action.move_action = true end end if SDVA::SKILL_MOVE if @active_battler.current_action.kind == 1 @active_battler.current_action.move_action = true end end if SDVA::ITEM_MOVE if @active_battler.current_action.kind == 2 @active_battler.current_action.move_action = true end end # バトラーがアクターに含まれ、移動アクション中 if @active_battler.is_a?(Game_Actor) and @active_battler.current_action.move_action # 移動終了時 if @active_battler.moving == 2 update_phase4_step3_sdva end elsif @active_battler.moving == 0 update_phase4_step3_sdva end end #-------------------------------------------------------------------------- # ● Enemies Phase #-------------------------------------------------------------------------- alias update_phase4_step6_sdva update_phase4_step6 def update_phase4_step6 @active_battler.current_action.move_action = false @active_battler.move_reset update_phase4_step6_sdva end end #============================================================================== # ■ Spriteset_Battle #============================================================================== class Spriteset_Battle #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias initialize_sdva initialize def initialize initialize_sdva @viewport2.z = 1 end end #============================================================================== # ■ Arrow_Actor #============================================================================== class Arrow_Actor < Arrow_Base #-------------------------------------------------------------------------- # ● Update #-------------------------------------------------------------------------- alias update_sdva update def update update_sdva # カーソル下 if Input.repeat?(Input::DOWN) $game_system.se_play($data_system.cursor_se) @index += 1 @index %= $game_party.actors.size end # カーソル上 if Input.repeat?(Input::UP) $game_system.se_play($data_system.cursor_se) @index += $game_party.actors.size - 1 @index %= $game_party.actors.size end end end #============================================================================== # ■ Arrow_Enemy #============================================================================== class Arrow_Enemy < Arrow_Base #-------------------------------------------------------------------------- # ● Enemy Cursor #-------------------------------------------------------------------------- alias update_sdva update def update update_sdva # Change Choice if Input.repeat?(Input::DOWN) $game_system.se_play($data_system.cursor_se) $game_troop.enemies.size.times do @index += 1 @index %= $game_troop.enemies.size break if self.enemy.exist? end end # Change Choice #2 if Input.repeat?(Input::UP) $game_system.se_play($data_system.cursor_se) $game_troop.enemies.size.times do @index += $game_troop.enemies.size - 1 @index %= $game_troop.enemies.size break if self.enemy.exist? end end end end #-------------------------------------------------------------------------- # ● Damage Class (Written By Squall #-------------------------------------------------------------------------- class RPG::Sprite < ::Sprite #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- def initialize(viewport = nil) super(viewport) @_whiten_duration = 0 @_appear_duration = 0 @_escape_duration = 0 @_collapse_duration = 0 @_damage_durations = [] @_animation_duration = 0 @_blink = false end #-------------------------------------------------------------------------- # ● Dispose #-------------------------------------------------------------------------- def dispose dispose_damage(0...@_damage_durations.size) dispose_animation dispose_loop_animation super end #-------------------------------------------------------------------------- # ● Effect #-------------------------------------------------------------------------- def effect? damage_duration = 0 for value in @_damage_durations damage_duration += value end @_whiten_duration > 0 or @_appear_duration > 0 or @_escape_duration > 0 or @_collapse_duration > 0 or damage_duration > 0 or @_animation_duration > 0 end #-------------------------------------------------------------------------- # ● Damage #-------------------------------------------------------------------------- def damage(value, critical) dispose_damage(0...@_damage_durations.size) @_damage_sprites = [] if value.is_a?(Numeric) damage_string = value.abs.to_s else damage_string = value.to_s end if critical damage_string += " CRITICAL HIT" end for i in 0...damage_string.size letter = damage_string[i..i] bitmap = Bitmap.new(48, 48) bitmap.font.size = 24 bitmap.font.color.set(0, 0, 0) bitmap.draw_text(-1, 12-1, 48, 48, letter, 1) bitmap.draw_text(+1, 12-1, 48, 48, letter, 1) bitmap.draw_text(-1, 12+1, 48, 48, letter, 1) bitmap.draw_text(+1, 12+1, 48, 48, letter, 1) if value.is_a?(Numeric) and value < 0 bitmap.font.color.set(176, 255, 144) else bitmap.font.color.set(255, 255, 255) end bitmap.draw_text(0, 12, 48, 48, letter, 1) @_damage_sprites[i] = ::Sprite.new(self.viewport) @_damage_sprites[i].bitmap = bitmap @_damage_sprites[i].visible = false @_damage_sprites[i].ox = 16 @_damage_sprites[i].oy = 16 @_damage_sprites[i].x = self.x - self.ox / 2 + i * 12 @_damage_sprites[i].y = self.y - self.oy / 2 @_damage_sprites[i].z = 3000 @_damage_durations[i] = 40 + i * 2 end end #-------------------------------------------------------------------------- # ● Dispose Damage #-------------------------------------------------------------------------- def dispose_damage(index) return if @_damage_sprites == nil if @_damage_sprites[index].is_a?(::Sprite) and @_damage_sprites[index].bitmap != nil @_damage_sprites[index].bitmap.dispose @_damage_sprites[index].dispose @_damage_durations[index] = 0 end end #-------------------------------------------------------------------------- # ● Update #-------------------------------------------------------------------------- def update super if @_whiten_duration > 0 @_whiten_duration -= 1 self.color.alpha = 128 - (16 - @_whiten_duration) * 10 end if @_appear_duration > 0 @_appear_duration -= 1 self.opacity = (16 - @_appear_duration) * 16 end if @_escape_duration > 0 @_escape_duration -= 1 self.opacity = 256 - (32 - @_escape_duration) * 10 end if @_collapse_duration > 0 @_collapse_duration -= 1 self.opacity = 256 - (48 - @_collapse_duration) * 6 end for i in 0...@_damage_durations.size damage_sprite = @_damage_sprites[i] next if @_damage_durations[i] == nil if @_damage_durations[i] > 0 @_damage_durations[i] -= 1 damage_sprite.visible = (@_damage_durations[i] <= 40) case @_damage_durations[i] when 38..39 damage_sprite.y -= 4 when 36..37 damage_sprite.y -= 2 when 34..35 damage_sprite.y += 2 when 28..33 damage_sprite.y += 4 end damage_sprite.opacity = 256 - (12 - @_damage_durations[i]) * 32 if @_damage_durations[i] == 0 dispose_damage(i) end end end if @_animation != nil and (Graphics.frame_count % 2 == 0) @_animation_duration -= 1 update_animation end if @_loop_animation != nil and (Graphics.frame_count % 2 == 0) update_loop_animation @_loop_animation_index += 1 @_loop_animation_index %= @_loop_animation.frame_max end if @_blink @_blink_count = (@_blink_count + 1) % 32 if @_blink_count < 16 alpha = (16 - @_blink_count) * 6 else alpha = (@_blink_count - 16) * 6 end self.color.set(255, 255, 255, alpha) end @@_animations.clear end end #-------------------------------------------------------------------------- # ● Ends Damage Class (Written by Squall) #-------------------------------------------------------------------------- #-------------------------------------------------------------------------- # ● CBS Menu System (By ParaDog) #-------------------------------------------------------------------------- module PARA_CTB # HP Color HP_COLOR_LEFT = Color.new(0, 40, 0, 255) # HP Color 2 HP_COLOR_RIGHT= Color.new(0, 150, 0, 255) # SP Color SP_COLOR_LEFT = Color.new(0, 0, 40, 255) # SP Color 2 SP_COLOR_RIGHT= Color.new(0, 0, 150, 255) #Frames Initialize FRAME_COLOR = Color.new(192, 192, 192, 255) # Frame Border size FRAME_BORDER = 1 # Background Color BACK_COLOR = Color.new(128, 128, 128, 128) # Font Size NAME_FONT_SIZE =17 # HP/SP Font size HPSP_FONT_SIZE =18 # Enemies name Font ENEMY_FONT_SIZE =16 # Draws the MAX HP of enemies MAX_DRAW = false #-------------------------------------------------------------------------------- # * Party Things #-------------------------------------------------------------------------------- # Party Size (Default 4) PARTY_SIZE = 4 # Enemy Group Naming ENEMY_GROUPING = false #Sets your opinion if you want ENEMY_DRAWING_MATER = 0 # Draws Actor's HP / MP in help menu (Default : True) HELP_DRAWING_MATER_ACTOR = true # Draws Enemy's HP/MP in help menu (Default : False) HELP_DRAWING_MATER_ENEMY = false # Window Positioning Change WINDOWPOS_CHANGE = false WINDOWPOS_X = 100 # X座標 WINDOWPOS_Y = 320 # Y座標 # Sets Menu Opacity WINDOW_OPACITY = 160 end #-------------------------------------------------------------------------- # ● Ends The Variables #-------------------------------------------------------------------------- #============================================================================== # ■ Scene_Battle #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # ● CTB Main #-------------------------------------------------------------------------- alias main_ctb main def main # Starts CTB Window @status_window2 = Window_BattleStatus_enemy.new main_ctb # Dispose CTB Window @status_window2.dispose end #-------------------------------------------------------------------------- # ● CTB Update #-------------------------------------------------------------------------- alias ctb_update update def update # Interepter call if $game_system.battle_interpreter.running? $game_system.battle_interpreter.update if $game_temp.forcing_battler == nil unless $game_system.battle_interpreter.running? unless judge setup_battle_event end end if @phase != 5 @status_window2.refresh end end end ctb_update end #-------------------------------------------------------------------------- # ● Phases #-------------------------------------------------------------------------- alias phase3_setup_command_window_ctb phase3_setup_command_window def phase3_setup_command_window @actor_command_window.back_opacity = PARA_CTB::WINDOW_OPACITY phase3_setup_command_window_ctb if PARA_CTB::WINDOWPOS_CHANGE # アクターコマンドウィンドウの位置を設定 @actor_command_window.x = PARA_CTB::WINDOWPOS_X @actor_command_window.y = PARA_CTB::WINDOWPOS_Y # ステータスウインドウに隠れないように @actor_command_window.z = 9999 end end #-------------------------------------------------------------------------- # ● Phases #-------------------------------------------------------------------------- alias update_phase1_ctb update_phase1 def update_phase1 # エネミー名リストを更新 @status_window2.refresh update_phase1_ctb end #-------------------------------------------------------------------------- # ● Phase six #-------------------------------------------------------------------------- alias update_phase4_step6_ctb update_phase4_step6 def update_phase4_step6 # エネミー名リストを更新 @status_window2.refresh update_phase4_step6_ctb end end #============================================================================== # ■ Window_BattleStatus #============================================================================== class Window_BattleStatus < Window_Base #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- def initialize super(160, 320, 480, 160) self.contents = Bitmap.new(width - 32, height - 32) @level_up_flags = [] for i in 0..$game_party.actors.size @level_up_flags.push(false) end @before_hp = [] @before_sp = [] @before_states = [] @now_hp = [] @now_sp = [] @now_states = [] refresh end #-------------------------------------------------------------------------- # ● Refreshes The Party members #-------------------------------------------------------------------------- def refresh @item_max = $game_party.actors.size for i in 0...$game_party.actors.size actor = $game_party.actors[i] line_height = 120 / PARA_CTB::PARTY_SIZE actor_y = i * line_height + 4 # 現在のステータスを配列に @now_hp[i] = actor.hp @now_sp[i] = actor.sp @now_states[i] = actor.states # レベルアップ if @level_up_flags[i] self.contents.fill_rect(344, actor_y, 100, 32, Color.new(0, 0, 0, 0)) self.contents.font.color = normal_color self.contents.draw_text(344, actor_y, 120, 32, "LEVEL UP!") end end # バトルステータスの軽量化処理 # ステータスの配列が変化したときのみ描画処理 if @before_hp == nil or @before_sp == nil or @before_states == nil or @before_hp != @now_hp or @before_sp != @now_sp or @before_states != @now_states self.contents.clear for i2 in 0...$game_party.actors.size actor = $game_party.actors[i2] line_height = 120 / PARA_CTB::PARTY_SIZE actor_y = i2 * line_height + 4 self.contents.font.size = PARA_CTB::NAME_FONT_SIZE # 名前を描画 draw_actor_name(actor, 4, actor_y+16-PARA_CTB::NAME_FONT_SIZE) # HPを描画 hp_color1 = PARA_CTB::HP_COLOR_LEFT hp_color2 = PARA_CTB::HP_COLOR_RIGHT draw_meter(actor.hp, actor.maxhp, 125, actor_y+14, 80, 8, hp_color1, hp_color2) draw_actor_hp(actor, 102, actor_y+16-PARA_CTB::HPSP_FONT_SIZE, 100) # SPを描画 sp_color1 = PARA_CTB::SP_COLOR_LEFT sp_color2 = PARA_CTB::SP_COLOR_RIGHT draw_meter(actor.sp, actor.maxsp, 245, actor_y+14, 80, 8, sp_color1, sp_color2) draw_actor_sp(actor, 222, actor_y+16-PARA_CTB::HPSP_FONT_SIZE, 100) # 変化後のステータスを配列に @before_hp[i2] = actor.hp @before_sp[i2] = actor.sp @before_states[i2] = actor.states # レベルアップ if @level_up_flags[i2] == false draw_actor_state(actor, 344, actor_y) end end end end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- def update super end #-------------------------------------------------------------------------- # ● HP の描画 # actor : アクター # x : 描画先 X 座標 # y : 描画先 Y 座標 # width : 描画先の幅 #-------------------------------------------------------------------------- def draw_actor_hp(actor, x, y, width = 144) # 文字列 "HP" を描画 self.contents.font.color = system_color self.contents.font.size = 16 self.contents.draw_text(x, y+2, 32, 32, $data_system.words.hp) self.contents.font.color = normal_color self.contents.font.size = PARA_CTB::HPSP_FONT_SIZE if PARA_CTB::MAX_DRAW # MaxHP を描画 self.contents.draw_text(x, y, width, 32, actor.maxhp.to_s, 2) text_size = self.contents.text_size(actor.maxhp.to_s) text_x = x + width - text_size.width - 12 self.contents.draw_text(text_x, y, 12, 32, "/", 1) # HP を描画 self.contents.font.color = actor.hp == 0 ? knockout_color : actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color text_x = text_x - text_size.width self.contents.draw_text(text_x, y, text_size.width, 32, actor.hp.to_s, 2) else self.contents.font.color = actor.hp == 0 ? knockout_color : actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color self.contents.draw_text(x, y, width, 32, actor.hp.to_s, 2) end end #-------------------------------------------------------------------------- # ● SP の描画 # actor : アクター # x : 描画先 X 座標 # y : 描画先 Y 座標 # width : 描画先の幅 #-------------------------------------------------------------------------- def draw_actor_sp(actor, x, y, width = 144) # 文字列 "SP" を描画 self.contents.font.color = system_color self.contents.font.size = 16 self.contents.draw_text(x, y+2, 32, 32, $data_system.words.sp) self.contents.font.color = normal_color self.contents.font.size = PARA_CTB::HPSP_FONT_SIZE if PARA_CTB::MAX_DRAW # MaxSP を描画 self.contents.draw_text(x, y, width, 32, actor.maxsp.to_s, 2) text_size = self.contents.text_size(actor.maxsp.to_s) text_x = x + width - text_size.width - 12 self.contents.draw_text(text_x, y, 12, 32, "/", 1) # SP を描画 self.contents.font.color = actor.sp == 0 ? knockout_color : actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color text_x = text_x - text_size.width self.contents.draw_text(text_x, y, text_size.width, 32, actor.sp.to_s, 2) else self.contents.font.color = actor.sp == 0 ? knockout_color : actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color self.contents.draw_text(x, y, width, 32, actor.sp.to_s, 2) end end end #============================================================================== # □ 敵の名前を表示するウインドウ #============================================================================== class Window_BattleStatus_enemy < Window_Base #-------------------------------------------------------------------------- # ○ オブジェクト初期化 #-------------------------------------------------------------------------- def initialize super(0, 320, 160, 160) self.contents = Bitmap.new(width - 32, height - 32) refresh end #-------------------------------------------------------------------------- # ○ リフレッシュ #-------------------------------------------------------------------------- def refresh self.contents.clear self.contents.font.color = normal_color self.contents.font.size = PARA_CTB::ENEMY_FONT_SIZE @exist_enemies = [] if $game_troop.enemies != nil if PARA_CTB::ENEMY_GROUPING ememy_list = [] ememy_list_index = [] # エネミーをグループ化 for i in 0...$game_troop.enemies.size enemy = $game_troop.enemies[i] if enemy.exist? if ememy_list.include?(enemy.name) ememy_list_index[ememy_list.index(enemy.name)] += 1 else # エネミー名を記録 ememy_list.push(enemy.name) ememy_list_index[ememy_list.index(enemy.name)] = 1 end end end # エネミーの名前と数を描画 enemy_index = 0 for enemy_name in ememy_list enemy_y = enemy_index * (PARA_CTB::ENEMY_FONT_SIZE+6) + 4 if ememy_list_index[enemy_index] > 1 enemy_name = enemy_name + " " + ememy_list_index[enemy_index].to_s end self.contents.draw_text(4, enemy_y, 160, 20, enemy_name) enemy_index += 1 end else # エネミーの名前を描画 enemy_index = 0 for i in 0...$game_troop.enemies.size enemy = $game_troop.enemies[i] if enemy.exist? @exist_enemies.push(enemy) line_height = PARA_CTB::ENEMY_FONT_SIZE + 6 if PARA_CTB::ENEMY_DRAWING_MATER != 0 line_height += 10 end enemy_y = enemy_index * line_height + 4 self.contents.draw_text(4, enemy_y, 160, 20, enemy.name) enemy_index += 1 # HPゲージを描画 if PARA_CTB::ENEMY_DRAWING_MATER == 1 hp_color1 = PARA_CTB::HP_COLOR_LEFT hp_color2 = PARA_CTB::HP_COLOR_RIGHT y = enemy_y + PARA_CTB::ENEMY_FONT_SIZE + 3 draw_meter(enemy.hp, enemy.maxhp, 4, y, 80, 8, hp_color1, hp_color2) end end end end end end end #============================================================================== # ■ Window_Base #============================================================================== class Window_Base < Window #-------------------------------------------------------------------------- # ○ ゲージを描画 #-------------------------------------------------------------------------- def draw_meter(now, max, x, y, width, height, start_color, end_color=start_color ) self.contents.fill_rect(x, y, width, height, PARA_CTB::FRAME_COLOR) self.contents.fill_rect(x+PARA_CTB::FRAME_BORDER, y+PARA_CTB::FRAME_BORDER, width-PARA_CTB::FRAME_BORDER*2, height-PARA_CTB::FRAME_BORDER*2, PARA_CTB::BACK_COLOR) now = now > max ? max : now percentage = max != 0 ? (width-2) * now / max.to_f : 0 if start_color == end_color self.contents.fill_rect(x+1, y+1, percentage, height-2, start_color) else for i in 1..percentage r = start_color.red + (end_color.red - start_color.red) / percentage * i g = start_color.green + (end_color.green - start_color.green) / percentage * i b = start_color.blue + (end_color.blue - start_color.blue) / percentage * i a = start_color.alpha + (end_color.alpha - start_color.alpha) / percentage * i self.contents.fill_rect(x+i, y+1, 1, height-2, Color.new(r, g, b, a)) end end end end #============================================================================== # ■ Window_Help #============================================================================== class Window_Help < Window_Base #-------------------------------------------------------------------------- # ● アクター設定 # actor : ステータスを表示するアクター #-------------------------------------------------------------------------- alias set_actor_ctb set_actor def set_actor(actor) if PARA_CTB::HELP_DRAWING_MATER_ACTOR self.contents.clear draw_actor_name(actor, 4, 0) draw_actor_state(actor, 140, 0) hp_color1 = PARA_CTB::HP_COLOR_LEFT hp_color2 = PARA_CTB::HP_COLOR_RIGHT draw_meter(actor.hp, actor.maxhp, 316, 18, 112, 8, hp_color1, hp_color2) draw_actor_hp(actor, 284, 0) sp_color1 = PARA_CTB::SP_COLOR_LEFT sp_color2 = PARA_CTB::SP_COLOR_RIGHT draw_meter(actor.sp, actor.maxsp, 492, 18, 112, 8, sp_color1, sp_color2) draw_actor_sp(actor, 460, 0) @actor = actor @text = nil self.visible = true else set_actor_ctb(actor) end end #-------------------------------------------------------------------------- # ● エネミー設定 # enemy : 名前とステートを表示するエネミー #-------------------------------------------------------------------------- alias set_enemy_ctb set_enemy def set_enemy(enemy) if PARA_CTB::HELP_DRAWING_MATER_ENEMY self.contents.clear draw_actor_name(enemy, 4, 0) draw_actor_state(enemy, 140, 0) hp_color1 = PARA_CTB::HP_COLOR_LEFT hp_color2 = PARA_CTB::HP_COLOR_RIGHT draw_meter(enemy.hp, enemy.maxhp, 316, 18, 112, 8, hp_color1, hp_color2) draw_actor_hp(enemy, 284, 0) sp_color1 = PARA_CTB::SP_COLOR_LEFT sp_color2 = PARA_CTB::SP_COLOR_RIGHT draw_meter(enemy.sp, enemy.maxsp, 492, 18, 112, 8, sp_color1, sp_color2) draw_actor_sp(enemy, 460, 0) self.visible = true else set_enemy_ctb(enemy) end end end #------------------------------------------------------------------------------ # ● End SDK Enable Test #------------------------------------------------------------------------------ end Upgrades ATB Gauge (as shown below. Click here to view the upgrade code Install the upgrade: 1-Find module PARA_CTB 2-Replace it and EVERYTHING below it except "End SDK Enable Test". 3- Save and test your game. Credits Ordaz (It's me) ParaDog Squall (For his damage font) Bugs This system is an enemy for RTAB system :stunned: Original Post: RMXPU.net Archive
  17. Mad Klown has brought to you a script from SephirothSpawn which was originally posted on RMXPU.net before it died: Original Post: RMXPU.net Archive
  18. I pull a post from the RMXPU.net archive posted by DerVVulfman. Original Post: RMXPU.net Archive
  19. I pull a post from the RMXPU.net archive posted by SCMike: Original Post: RMXPU.net Archive
  20. I remeber a script that could do this do you remeber the creator?
  21. I like Dark Skis the best, but a nice light skin is cool as well. The old skin was light, but a dull shade of colors used.
  22. Sounds like something I would play on the nintendo.
  23. Welcome to RMXP Unlimited. As for RMVX seeming like a step backwards...well so was RMXP. Yes it had scripting, but I stll like many features found on RPG Maker 2003.
  24. This is corect you need permission regardless if you credit or not. But also remember that artist are not going to care about a 15 who used their music ina game. Of course sell it and the parents (or if they are over 171/2) of the 15 yaer old might find themselves in a lawsuit.
×
×
  • Create New...