Advertisement
Falmc

Falcao Map drops 1.1

May 8th, 2013
853
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 5.98 KB | None | 0 0
  1. #==============================================================================#
  2. #  #*****************#                                                         #
  3. #  #*** By Falcao ***#          * Falcao Map Drop version 1.1                  #
  4. #  #*****************#          This script allow you set events to drop: items#
  5. #                               weapons, armor and gold. everything work with a#
  6. #       RMVXACE                 simple comment tag                             #
  7. #                               Date: Octuber 18 2012                          #
  8. #                               updated March 2013                             #
  9. # Falcao RGSS site:  http://falcaorgss.wordpress.com                           #
  10. # Falcao Forum site: http://makerpalace.com                                    #
  11. #==============================================================================#
  12.  
  13. # March 2013  update change log (1.1 versiom)
  14. # - Reduced cpu consuming by a notable amount
  15.  
  16. #-------------------------------------------------------------------------------
  17. # * Installation
  18. #
  19. # Copy and paste this script above main, no methods were overwritten so,
  20. # compatibility is very high.
  21. #-------------------------------------------------------------------------------
  22. #
  23. # Instructions:
  24. #
  25. # Tag events as follows
  26. #
  27. # <drop_item: id>    
  28. # <drop_weapon: id>    - Change id for the item id to drop. Ex: <drop_item: 2>
  29. # <drop_armor: id>
  30. # <quantity: x>        - Change x for the quantity of items/weapon/armor to gain
  31. #
  32. # <drop_gold: amount>  - Change amount for gold value Ex: <drop_gold: 25>
  33. #
  34. # Important!
  35. # Events drops only one item/weapon etc. at the time.
  36. # Event start when the player take the drop, so you have the chance to,
  37. # erase the event, activate a self switch or whatever you want.
  38. #-------------------------------------------------------------------------------
  39. # * License
  40. #
  41. # For non-comercial games only, for comercial use please contactme to
  42. # falmc99@gamail.com
  43. #-------------------------------------------------------------------------------
  44.  
  45. module FalMapDrop
  46.  
  47.   # Gold icon index
  48.   GoldIcon = 245
  49.  
  50. end
  51.  
  52. # Spriteset map
  53. class Spriteset_Map
  54.   alias falcao_mapdrop_create_characters create_characters
  55.   def create_characters
  56.     dispose_mapdrop_sprites if !@mapdrop_sprites.nil?
  57.     @mapdrop_sprites = []
  58.     @mapdrop_events = []
  59.     falcao_mapdrop_create_characters
  60.   end
  61.  
  62.   alias falcao_mapdrop_characters_update update_characters
  63.   def update_characters
  64.     update_mapdrop_sprites
  65.     falcao_mapdrop_characters_update
  66.   end
  67.  
  68.   alias falcao_mapdrop_dispose_h dispose
  69.   def dispose
  70.     dispose_mapdrop_sprites
  71.     falcao_mapdrop_dispose_h
  72.   end
  73.  
  74.   def update_mapdrop_sprites
  75.     for event in $game_map.events.values
  76.       kind = nil
  77.       kind = $data_items[event.d_item] if event.d_item != 0
  78.       kind = $data_weapons[event.d_weapon] if event.d_weapon != 0
  79.       kind = $data_armors[event.d_armor] if event.d_armor != 0
  80.       kind = event.d_gold if event.d_gold != 0
  81.       if kind != nil
  82.         unless @mapdrop_events.include?(event)
  83.           sprite = Sprite_MapDrop.new(@viewport1, event, kind)
  84.           @mapdrop_sprites.push(sprite)
  85.           @mapdrop_events.push(event)
  86.         end
  87.       end
  88.     end
  89.     for drop in @mapdrop_sprites
  90.       drop.update
  91.       @mapdrop_sprites.delete(drop) if drop.disposed?
  92.     end
  93.   end
  94.  
  95.   def dispose_mapdrop_sprites
  96.     @mapdrop_sprites.each {|sprite| sprite.dispose }
  97.     @mapdrop_sprites = nil
  98.   end
  99. end
  100.  
  101. # Basic drop sprites
  102. class Sprite_MapDrop < Sprite
  103.   def initialize(viewport, event, item)
  104.     super(viewport)
  105.     @event = event
  106.     @item = item
  107.     n = @event.check_drop("<quantity: ")
  108.     n > 0 ? @num = n : @num = 1
  109.     self.z = @event.screen_z + 1
  110.     @object_zooming = 0
  111.     set_bitmap
  112.     update
  113.   end
  114.  
  115.   def update
  116.     super
  117.     @event.through = true if not @event.through
  118.     self.bush_depth = @event.bush_depth
  119.     @object_zooming += 1
  120.     case @object_zooming
  121.     when 1..8  ; self.zoom_x -= 0.01 ;  self.zoom_y -= 0.01
  122.     when 9..16 ; self.zoom_x += 0.01 ;  self.zoom_y += 0.01
  123.     when 17..24 ; self.zoom_x = 1.0   ;  self.zoom_y = 1.0; @object_zooming = 0
  124.     end
  125.     self.x = @event.screen_x - 12
  126.     self.y = @event.screen_y - 24
  127.     if @event.x == $game_player.x and @event.y == $game_player.y and
  128.       !$game_player.moving?
  129.       if @item.is_a?(Fixnum)
  130.         $game_party.gain_gold(@item)
  131.         RPG::SE.new("Shop", 80).play
  132.       else
  133.         $game_party.gain_item(@item, @num)
  134.         RPG::SE.new("Item1", 80).play
  135.       end
  136.       @event.start
  137.       dispose
  138.     end
  139.   end
  140.  
  141.   def dispose
  142.     self.bitmap.dispose
  143.     self.bitmap = nil
  144.     super
  145.   end
  146.  
  147.   def set_bitmap
  148.     self.bitmap = Bitmap.new(26, 38)
  149.     bitmap = Cache.system("Iconset")
  150.     icon = @item.is_a?(Fixnum) ? FalMapDrop::GoldIcon : @item.icon_index
  151.     rect = Rect.new(icon % 16 * 24, icon / 16 * 24, 24, 24)
  152.     self.bitmap.blt(0, 0, bitmap, rect)
  153.     @item.is_a?(Fixnum) ? n = @item : n = @num
  154.     self.bitmap.font.size = 14
  155.     self.bitmap.draw_text(0, 8, 26, 32, n.to_s, 1)
  156.   end
  157. end
  158.  
  159. # Event tag definition
  160. class Game_Event < Game_Character
  161.   attr_accessor :through
  162.   attr_reader :d_item, :d_weapon, :d_armor, :d_gold
  163.  
  164.   alias falcaodrop_ini initialize
  165.   def initialize(map_id, event)
  166.     @d_item = 0; @d_weapon = 0; @d_armor = 0; @d_gold = 0
  167.     falcaodrop_ini(map_id, event)
  168.   end
  169.  
  170.   alias falcaodrop_setup_page_settings setup_page_settings
  171.   def setup_page_settings
  172.     falcaodrop_setup_page_settings
  173.     @d_item   = check_drop("<drop_item: ")
  174.     @d_weapon = check_drop("<drop_weapon: ")
  175.     @d_armor  = check_drop("<drop_armor: ")
  176.     @d_gold   = check_drop("<drop_gold: ")
  177.   end
  178.  
  179.   def check_drop(comment, sw=true)
  180.     return 0 if @list.nil? or @list.size <= 0
  181.     for item in @list
  182.       if item.code == 108 or item.code == 408
  183.         return sw ?$1.to_i : $1.to_s if item.parameters[0] =~ /#{comment}(.*)>/i
  184.       end
  185.     end
  186.     return 0
  187.   end
  188. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement