TheoAllen

Theo - Non-RPG Main Menu

Jul 22nd, 2013
806
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 8.43 KB | None | 0 0
  1. # =============================================================================
  2. # TheoAllen - Non RPG Main Menu
  3. # Version : 0.8 (In development)
  4. # Contact : www.rpgmakerid.com (or) http://theolized.blogspot.com
  5. # (This script documentation is written in informal indonesian language)
  6. # -----------------------------------------------------------------------------
  7. # Requires :
  8. # >> Theo - Object Core Movement (can be found in Theo - Basic Modules)
  9. # =============================================================================
  10. # Change Logs :
  11. # -----------------------------------------------------------------------------
  12. # 2013.07.23 - Finished script
  13. # =============================================================================
  14. =begin
  15.  
  16.   Perkenalan :
  17.   Script ini didesain untuk game non-RPG yang hanya berisi item, load, save
  18.   dan game end
  19.  
  20.   Cara penggunaan :
  21.   Pasang dibawah material namun diatas main
  22.   Edit konfigurasinya kalo perlu
  23.  
  24.   Terms of Use :
  25.   Credit gw, TheoAllen. Kalo semisal u bisa ngedit2 script gw trus jadi lebih
  26.   keren, terserah. Ane bebasin. Asal ngga ngeklaim aja. Kalo semisal mau
  27.   dipake buat komersil, jangan lupa, gw dibagi gratisannya.
  28.  
  29.   Note :
  30.   1. Kalo kamu pengen menumu ada show location dan playtime, gunakan juga
  31.      script gw yg namanya Theo - Simple Menu Info
  32.   2. Karena gw ga tau apa aja yg dibutuhin di game non-RPG, jadi kalo ada
  33.      saran-saran untuk perkembangan script ini, kasi tau gw
  34.   3. Kalo kamu pake script gw yg Theo - Non-RPG Actor Biography, taruh script
  35.      ini dibawahnya.
  36.  
  37. =end
  38. # =============================================================================
  39. # Konfigurasi :
  40. # =============================================================================
  41. module THEO
  42.   module NONRPG
  43.    
  44.     # Deskripsi help untuk command
  45.     Command_Helps = {
  46.       "Items"     => "Check Your Inventory",
  47.       "Load"      => "Load Game",
  48.       "Save"      => "Save Game",
  49.       "Game End"  => "End the Game",
  50.     }
  51.    
  52.     Load_Vocab = "Load"
  53.    
  54.     ItemWindow_DisplayAmount  = true # Kalo true, item ditampilin jumlahnya
  55.     ItemWindow_DisplayOnly    = false # Kalo true, item ga bisa digunain
  56.     ItemWindow_Width          = 200 # Lebar item window
  57.    
  58.     Display_HelpWindow  = true # Centang true kalo pengen nampilih help window
  59.     HelpWindow_ItemOnly = true # Help window hanya untuk item
  60.     HelpWindow_BackType = 2 # Tipe background help window (0,1,2)
  61.     # 0 = Windowskin Biasa
  62.     # 1 = Dim Background
  63.     # 2 = Transparan background
  64.    
  65.   end
  66. end
  67. # =============================================================================
  68. # Akhir dari konfigurasi
  69. # =============================================================================
  70. if ($imported ||= {})[:Theo_Movement]
  71. $imported[:Theo_NonRPGMenu] = true
  72. class Window_MenuCommand < Window_Command
  73.  
  74.   # Overwrite Command List
  75.   def make_command_list
  76.     add_main_commands
  77.     add_original_commands
  78.     add_load_command
  79.     add_save_command
  80.     add_game_end_command
  81.   end
  82.  
  83.   def add_main_commands
  84.     add_command(Vocab::item, :item, main_commands_enabled)
  85.     if $imported[:Theo_NonRPGBioGraphy]
  86.       add_command(Vocab::status,:status,main_commands_enabled)
  87.     end
  88.   end
  89.  
  90.   def add_load_command
  91.     add_command(THEO::NONRPG::Load_Vocab, :continue, continue_enabled)
  92.   end
  93.  
  94.   def continue_enabled
  95.     DataManager.save_file_exists?
  96.   end
  97.  
  98.   def update_help
  99.     help = THEO::NONRPG::Command_Helps[command_name(index)]
  100.     @help_window.set_text(help)
  101.   end
  102.  
  103. end
  104.  
  105. class Window_MenuHelp < Window_Help
  106.  
  107.   def initialize(line_number = 2)
  108.     super(line_number)
  109.     self.opacity = 0 if THEO::NONRPG::HelpWindow_BackType > 0
  110.     self.openness = THEO::NONRPG::HelpWindow_ItemOnly ? 0 : 255
  111.     create_background
  112.     check_visibility
  113.   end
  114.  
  115.   def create_background
  116.     create_back_bitmap
  117.     create_back_sprite
  118.   end
  119.  
  120.   def create_back_bitmap
  121.     @back_bitmap = Bitmap.new(width, height)
  122.     rect1 = Rect.new(0, 0, width, 12)
  123.     rect2 = Rect.new(0, 12, width, height - 24)
  124.     rect3 = Rect.new(0, height - 12, width, 12)
  125.     @back_bitmap.gradient_fill_rect(rect1, back_color2, back_color1, true)
  126.     @back_bitmap.fill_rect(rect2, back_color1)
  127.     @back_bitmap.gradient_fill_rect(rect3, back_color1, back_color2, true)
  128.   end
  129.  
  130.   def back_color1
  131.     Color.new(0, 0, 0, 160)
  132.   end
  133.  
  134.   def back_color2
  135.     Color.new(0, 0, 0, 0)
  136.   end
  137.  
  138.   def create_back_sprite
  139.     @back_sprite = Sprite.new
  140.     @back_sprite.bitmap = @back_bitmap if THEO::NONRPG::HelpWindow_BackType == 1
  141.   end
  142.  
  143.   def check_visibility
  144.     @back_sprite.visible = self.visible = THEO::NONRPG::Display_HelpWindow
  145.   end
  146.  
  147.   def dispose
  148.     @back_sprite.dispose
  149.     @back_bitmap.dispose
  150.     super
  151.   end
  152.  
  153. end
  154.  
  155. class Window_MenuItem < Window_ItemList
  156.  
  157.   def initialize(*args)
  158.     super(*args)
  159.     self.category = :item
  160.   end
  161.  
  162.   def draw_item_number(rect, item)
  163.     super if THEO::NONRPG::ItemWindow_DisplayAmount
  164.   end
  165.  
  166.   def col_max
  167.     return 1
  168.   end
  169.  
  170.   def update_open
  171.     self.openness += 20
  172.     @opening = false if open?
  173.   end
  174.  
  175.   def update_close
  176.     self.openness -= 20
  177.     @closing = false if close?
  178.   end
  179.  
  180. end
  181.  
  182. class Scene_Menu < Scene_MenuBase
  183.  
  184.   include THEO::NONRPG
  185.  
  186.   alias theo_non_rpg_menu_start start
  187.   def start
  188.     theo_non_rpg_menu_start
  189.     create_menu_help
  190.     create_item_window
  191.     create_windows_notify
  192.     update_windows_placement
  193.   end
  194.  
  195.   alias theo_nonrpg_command_window create_command_window
  196.   def create_command_window
  197.     theo_nonrpg_command_window
  198.     @command_window.set_handler(:continue, method(:on_load_ok))
  199.   end
  200.  
  201.   def update_windows_placement
  202.     @command_window.x = (Graphics.width - @command_window.width)/2
  203.     @command_window.y = Graphics.height/2 - (@command_window.height/2 +
  204.       @gold_window.height/2)
  205.     update_gold_window_placement
  206.     update_item_window_position
  207.   end
  208.  
  209.   def create_menu_help
  210.     @help_window = Window_MenuHelp.new
  211.     @command_window.help_window = @help_window
  212.   end
  213.  
  214.   def create_item_window
  215.     width = THEO::NONRPG::ItemWindow_Width
  216.     height = @command_window.height + @gold_window.height
  217.     @item_window = Window_MenuItem.new(0,0,width,height)
  218.     @item_window.set_handler(:ok, method(:on_item_ok))
  219.     @item_window.set_handler(:cancel, method(:on_item_cancel))
  220.     @item_window.help_window = @help_window
  221.     @item_window.openness = 0
  222.   end
  223.  
  224.   def create_windows_notify
  225.   end
  226.  
  227.   def update_gold_window_placement
  228.     @gold_window.x = @command_window.x
  229.     @gold_window.y = @command_window.y + @command_window.height
  230.   end
  231.  
  232.   def update_item_window_position
  233.     @item_window.x = @command_window.x + @command_window.width
  234.     @item_window.y = @command_window.y
  235.   end
  236.  
  237.   def command_item
  238.     @help_window.open if HelpWindow_ItemOnly
  239.     xpos = Graphics.width/2 - (@command_window.width/2 + @item_window.width/2)
  240.     ypos = @command_window.y
  241.     @command_window.goto(xpos,ypos,10)
  242.     @item_window.activate
  243.     @item_window.select(0)
  244.     @item_window.open
  245.   end
  246.  
  247.   def on_item_ok
  248.     if ItemWindow_DisplayOnly
  249.       @item_window.activate
  250.       return
  251.     end
  252.     play_se_for_item
  253.     $game_party.members[0].use_item(@item_window.item)
  254.     check_common_event
  255.     check_gameover
  256.     @item_window.activate
  257.     @item_window.refresh
  258.   end
  259.  
  260.   def on_item_cancel
  261.     @help_window.openness = 0 if HelpWindow_ItemOnly
  262.     if @command_window.moving?
  263.       @item_window.activate
  264.       return
  265.     end
  266.     xpos = (Graphics.width - @command_window.width)/2
  267.     ypos = @command_window.y
  268.     @command_window.goto(xpos,ypos,10)
  269.     @command_window.activate
  270.     @item_window.close
  271.     @item_window.unselect
  272.   end
  273.  
  274.   def on_load_ok
  275.     SceneManager.call(Scene_Load)
  276.   end
  277.  
  278.   # Overwrite command personal
  279.   def command_personal
  280.     SceneManager.call(Scene_Status)
  281.   end
  282.  
  283.   alias theo_non_rpg_menu_update update
  284.   def update
  285.     theo_non_rpg_menu_update
  286.     update_gold_window_placement
  287.     update_item_window_position
  288.   end
  289.  
  290.   # Delete Status Window
  291.   def create_status_window
  292.   end
  293.  
  294.   def check_common_event
  295.     SceneManager.goto(Scene_Map) if $game_temp.common_event_reserved?
  296.   end
  297.  
  298.   def play_se_for_item
  299.     Sound.play_use_item
  300.   end
  301.  
  302. end
  303. else
  304.   msgbox "Theo - Non-RPG Main Menu Requires Theo - Core Movement \n" +
  305.     "It can be found in Theo - Basic Modules \n" +
  306.     "Please visit http://theolized.blogspot.com"
  307. end
Advertisement
Add Comment
Please, Sign In to add comment