Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #==============================================================================
- # [RGSS 2] Usage Frequency - Work In Progress
- # Version : 1.0
- # Author : LowlingLife
- #==============================================================================
- # Script akan mencatat berapa kali sebuah item/skill/equipment dipakai. Jika
- # sudah mencapai limit, dapat memberikan efek tertentu.
- #------------------------------------------------------------------------------
- # Contoh : Memakai Potion sebanyak 100 kali membuat Actor ID 1 mendapat
- # skill First Aid.
- #------------------------------------------------------------------------------
- # Untuk versi ini, hanya baru Item saja yang bisa.
- #==============================================================================
- module UsageFrequency
- #============================================================================
- # * Item Configuration
- #----------------------------------------------------------------------------
- # Jumlah usage yang harus dicapai sebelum mendapat efek. Usage akan bertambah
- # seiring pemakaian item baik di luar maupun di dalam battle.
- # ITEM_LIMIT[Item ID] = Limit
- #----------------------------------------------------------------------------
- ITEM_LIMIT = [] # Jangan di-delete.
- ITEM_LIMIT[1] = 10
- #----------------------------------------------------------------------------
- # Skill yang akan didapatkan oleh Actor jika usage item sudah mencapai limit.
- # SKILL_ITEM[Item ID] = {Actor ID => [Skill ID, Skill ID, ...]}
- #----------------------------------------------------------------------------
- SKILL_ITEM = [] # Jangan di-delete.
- SKILL_ITEM[1] = {1 => [12, 13, 14]}
- #----------------------------------------------------------------------------
- # Item / Weapon / Armor yang akan didapatkan oleh player jika sudah mencapai
- # limit.
- # ITEM_ITEM[Item ID] = [[Obtained Item ID], [Weapon ID], [Armor ID]]
- #----------------------------------------------------------------------------
- # Note : Jangan menghilangkan array jika tidak ingin mendapatkan.
- # Kosongkan array saja.
- # Ex. ITEM_ITEM[1] = [[], [], [1, 2, 3]]
- #----------------------------------------------------------------------------
- ITEM_ITEM = [] # Jangan di-detete.
- ITEM_ITEM[1] = [[1, 2, 3], [4, 3, 1], [6, 7, 8]]
- #============================================================================
- end
- #==============================================================================
- # EDITING BEYOND THIS LINE CAN CAUSE DAMAGE TO YOUR GAME, THEREFORE EDIT
- # WITH YOUR OWN RISK.
- #==============================================================================
- module RPG
- class Item < UsableItem
- include UsageFrequency
- def usage_init
- if ITEM_LIMIT[self.id] != nil
- @limit = ITEM_LIMIT[self.id]
- end
- @usage = 0
- end
- attr_accessor :usage
- attr_accessor :limit
- end
- end
- class Scene_Item < Scene_Base
- include UsageFrequency
- def check_usage
- @item.usage += 1
- if @item.usage == @item.limit
- SKILL_ITEM[@item.id].each{|actor, skill|
- for s in skill
- $game_actors[actor].learn_skill(s)
- end
- }
- for i in ITEM_ITEM[@item.id][0]
- $game_party.gain_item($data_items[i], 1)
- end
- for w in ITEM_ITEM[@item.id][1]
- $game_party.gain_item($data_weapons[w], 1)
- end
- for a in ITEM_ITEM[@item.id][2]
- $game_party.gain_item($data_armors[a], 1)
- end
- end
- end
- alias use_item_later use_item_nontarget
- def use_item_nontarget
- check_usage
- use_item_later
- end
- end
- class Scene_Battle < Scene_Base
- include UsageFrequency
- def check_usage
- item = @active_battler.action.item
- item.usage += 1
- if item.usage == item.limit
- SKILL_ITEM[item.id].each{|actor, skill|
- for s in skill
- $game_actors[actor].learn_skill(s)
- end
- }
- for i in ITEM_ITEM[item.id][0]
- $game_party.gain_item($data_items[i], 1)
- end
- for w in ITEM_ITEM[item.id][1]
- $game_party.gain_item($data_weapons[w], 1)
- end
- for a in ITEM_ITEM[item.id][2]
- $game_party.gain_item($data_armors[a], 1)
- end
- end
- end
- alias execute_item_later execute_action_item
- def execute_action_item
- check_usage
- execute_item_later
- end
- end
- class Scene_Title < Scene_Base
- alias usage_load_db load_database
- def load_database
- usage_load_db
- for item in $data_items
- item.usage_init if item != nil
- end
- end
- alias usage_load_bt_db load_bt_database
- def load_bt_database
- usage_load_bt_db
- for item in $data_items
- item.usage_init if item != nil
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment