MOG Item Limit é um script desenvolvido pelo Moghunter para ser usado com o RPG Maker XP que permite definir o limite máximo para cara item, arma ou armadura.
MOG Item Limit é um script desenvolvido pelo Moghunter para ser usado com o RPG Maker XP que permite definir o limite máximo para cara item, arma ou armadura.
Os limites máximos parecem estar contidos no próprio código, bastando observar e ler os comentários. Não são precisas habilidades avançadas de RGSS para personalizar o MOG Item Limit V1.5.
Para instalar o script, basta inserir o código abaixo em cima do “Main”, como o de costume:
#_______________________________________________________________________________ # MOG Item Limit V1.5 #_______________________________________________________________________________ # By Moghunter # http://www.atelier-rgss.com #_______________________________________________________________________________ # Permite definir o limite maximo para cada item, armas # ou armadura. #_______________________________________________________________________________ module MOG #------------------------------------------------------------------------------- # Definição do limite maximo de itens caso não # especificado. #------------------------------------------------------------------------------- DEFAULT_LIMIT = 50 #------------------------------------------------------------------------------- # A => B # # A = ID do item, armadura ou arma # B = Quantidade de itens maximo. # #------------------------------------------------------------------------------- #Definição do limite maximo de Itens. #------------------------------------------------------------------------------- ITEM_LIMIT = { 1=>50, #Potion 2=>35, #Hi Potion 3=>20, #Full Potion 4=>45, #Perfume 5=>30, #Hi Perfume 6=>15, #Full Perfume 7=>10, #Elixir 8=>5, #Full Elixir 9=>50, #Tonic 10=>15, #Full Tonic 11=>70 #Antidote } #------------------------------------------------------------------------------- #Definição do limite maximo de armas. #------------------------------------------------------------------------------- WEAPON_LIMIT = { 1=>9, #Bronze Sword 2=>6, #Iron Sword 3=>3, #Steel Sword 4=>1, #Mythril Sword 5=>9, #Bronze Spear 6=>6, #Iron Spear 7=>3, #Steel Spear 8=>1 #Mythril Spear } #------------------------------------------------------------------------------- #Definição do limite maximo de armaduras. #------------------------------------------------------------------------------- ARMOR_LIMIT = { 1=>20, #Bronze Shield 2=>15, #Iron Shield 5=>20, #Bronze Helm 13=>10 #Bronze Armor } #------------------------------------------------------------------------------- end $mogscript = {} if $mogscript == nil $mogscript["Item_Limit"] = true ############## # Game_Party # ############## class Game_Party alias mog45_gain_item gain_item def gain_item(item_id, n) if item_id > 0 item_limit = MOG::ITEM_LIMIT[item_id] if item_limit != nil @items[item_id] = [[item_number(item_id) + n, 0].max, item_limit].min else @items[item_id] = [[item_number(item_id) + n, 0].max, MOG::DEFAULT_LIMIT].min end end return mog45_gain_item(item_id, n) end alias mog45_gain_weapon gain_weapon def gain_weapon(weapon_id, n) if weapon_id > 0 weapon_limit = MOG::WEAPON_LIMIT[weapon_id] if weapon_limit !=nil @weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, weapon_limit].min else @weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, MOG::DEFAULT_LIMIT].min end end return mog45_gain_weapon(weapon_id, n) end alias mog45_gain_armor gain_armor def gain_armor(armor_id, n) if armor_id > 0 armor_limit = MOG::ARMOR_LIMIT[armor_id] if armor_limit != nil @armors[armor_id] = [[armor_number(armor_id) + n, 0].max, armor_limit].min else @armors[armor_id] = [[armor_number(armor_id) + n, 0].max, MOG::DEFAULT_LIMIT].min end end return mog45_gain_armor end end ############## # Scene_Shop # ############## class Scene_Shop alias mog45_update update def update if @sell_window.active == true $sell = true else $sell = false end mog45_update end alias mog45_update_buy update_buy def update_buy if Input.trigger?(Input::C) @item = @buy_window.item case @item when RPG::Item number = $game_party.item_number(@item.id) item_limit = MOG::ITEM_LIMIT[@item.id] if item_limit != nil if number >= item_limit $game_system.se_play($data_system.buzzer_se) return end else if number == MOG::DEFAULT_LIMIT $game_system.se_play($data_system.buzzer_se) return end end when RPG::Weapon number = $game_party.weapon_number(@item.id) weapon_limit = MOG::WEAPON_LIMIT[@item.id] if weapon_limit != nil if number >= weapon_limit $game_system.se_play($data_system.buzzer_se) return end else if number == MOG::DEFAULT_LIMIT $game_system.se_play($data_system.buzzer_se) return end end when RPG::Armor number = $game_party.armor_number(@item.id) armor_limit = MOG::ARMOR_LIMIT[@item.id] if armor_limit != nil if number >= armor_limit $game_system.se_play($data_system.buzzer_se) return end else if number == MOG::DEFAULT_LIMIT $game_system.se_play($data_system.buzzer_se) return end end end end mog45_update_buy end end ##################### # Window_ShopNumber # ##################### class Window_ShopNumber < Window_Base alias mog45_set set def set(item, max, price) @item = item case @item when RPG::Item number = $game_party.item_number(@item.id) item_limit = MOG::ITEM_LIMIT[@item.id] if item_limit!= nil if $sell == true valor = item_limit - number @max = item_limit - valor else @max = item_limit - number end else if $sell == true valor = MOG::DEFAULT_LIMIT - number @max = MOG::DEFAULT_LIMIT - valor else @max = MOG::DEFAULT_LIMIT - number end end when RPG::Weapon number = $game_party.weapon_number(@item.id) weapon_limit = MOG::WEAPON_LIMIT[@item.id] if weapon_limit!= nil if $sell == true valor = weapon_limit - number @max = weapon_limit - valor else @max = weapon_limit - number end else if $sell == true valor = MOG::DEFAULT_LIMIT - number @max = MOG::DEFAULT_LIMIT - valor else @max = MOG::DEFAULT_LIMIT - number end end when RPG::Armor number = $game_party.armor_number(@item.id) armor_limit = MOG::ARMOR_LIMIT[@item.id] if armor_limit!= nil if $sell == true valor = armor_limit - number @max = armor_limit - valor else @max = armor_limit - number end else if $sell == true valor = MOG::DEFAULT_LIMIT - number @max = MOG::DEFAULT_LIMIT - valor else @max = MOG::DEFAULT_LIMIT - number end end end @price = price @number = 1 refresh return mog45_set set(item, max, price) end end ############### # Window_Item # ############### class Window_Item < Window_Selectable def draw_item(index) item = @data[index] case item when RPG::Item number = $game_party.item_number(item.id) item_number = MOG::ITEM_LIMIT[item.id] when RPG::Weapon number = $game_party.weapon_number(item.id) item_number = MOG::WEAPON_LIMIT[item.id] when RPG::Armor number = $game_party.armor_number(item.id) item_number = MOG::ARMOR_LIMIT[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 = 4 + index % 2 * (288 + 32) y = index / 2 * 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 + 28, y, 212, 32, item.name, 0) if item_number != nil self.contents.draw_text(x + 220, y, 60, 32, number.to_s + " / " + item_number.to_s, 2) else max_limit = MOG::DEFAULT_LIMIT self.contents.draw_text(x + 220, y, 60, 32, number.to_s + " / " + max_limit.to_s, 2) end end end ##################### # Window_ShopStatus # ##################### class Window_ShopStatus < Window_Base alias mog45_refresh refresh def refresh if $mogscript["menu_shop"] == true mog45_refresh return false end self.contents.clear if @item == nil return end case @item when RPG::Item number = $game_party.item_number(@item.id) item_max = MOG::ITEM_LIMIT[@item.id] when RPG::Weapon number = $game_party.weapon_number(@item.id) item_max = MOG::WEAPON_LIMIT[@item.id] when RPG::Armor number = $game_party.armor_number(@item.id) item_max = MOG::ARMOR_LIMIT[@item.id] end self.contents.font.color = system_color self.contents.draw_text(4, 0, 200, 32, "Stock") self.contents.font.color = normal_color if item_max != nil self.contents.draw_text(155, 0, 80, 32, number.to_s + " / " + item_max.to_s, 2) else max_limit = MOG::DEFAULT_LIMIT self.contents.draw_text(155, 0, 80, 32, number.to_s + " / " + max_limit.to_s, 2) end if @item.is_a?(RPG::Item) return end for i in 0...$game_party.actors.size actor = $game_party.actors[i] if actor.equippable?(@item) self.contents.font.color = normal_color else self.contents.font.color = disabled_color end self.contents.draw_text(4, 64 + 64 * i, 120, 32, actor.name) if @item.is_a?(RPG::Weapon) item1 = $data_weapons[actor.weapon_id] elsif @item.kind == 0 item1 = $data_armors[actor.armor1_id] elsif @item.kind == 1 item1 = $data_armors[actor.armor2_id] elsif @item.kind == 2 item1 = $data_armors[actor.armor3_id] else item1 = $data_armors[actor.armor4_id] end if actor.equippable?(@item) if @item.is_a?(RPG::Weapon) atk1 = item1 != nil ? item1.atk : 0 atk2 = @item != nil ? @item.atk : 0 change = atk2 - atk1 end if @item.is_a?(RPG::Armor) pdef1 = item1 != nil ? item1.pdef : 0 mdef1 = item1 != nil ? item1.mdef : 0 pdef2 = @item != nil ? @item.pdef : 0 mdef2 = @item != nil ? @item.mdef : 0 change = pdef2 - pdef1 + mdef2 - mdef1 end self.contents.draw_text(124, 64 + 64 * i, 112, 32, sprintf("%+d", change), 2) end if item1 != nil x = 4 y = 64 + 64 * i + 32 bitmap = RPG::Cache.icon(item1.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 + 28, y, 212, 32, item1.name) end end return true mog45_refresh end end
Observação: se você gostou deste post ou ele lhe foi útil de alguma forma, por favor considere apoiar financeiramente a Gaming Room. Fico feliz só de ajudar, mas a contribuição do visitante é muito importante para que este site continua existindo e para que eu possa continuar provendo este tipo de conteúdo e melhorar cada vez mais. Acesse aqui e saiba como. Obrigado!