Per 2016, RMID pindah ke RMID Discord (Invite link dihapus untuk mencegah spambot -Theo @ 2019). Posting sudah tidak bisa dilakukan lagi.
Mohon maaf atas ketidaknyamanannya dan mohon kerjasamanya.
|
|
| [ASK] tentang inventory, dan penyimpanan | |
| 2012-02-26, 00:47 | [ASK] tentang inventory, dan penyimpanan |
---|
Fathan Novice
Posts : 143 Thanked : 0 Engine : RMVX Skill : Advanced Type : Developer
Awards:
| gan ane mau minta lontong,, eh tolong maksudnya ... ane dah cari di search, cuman ada yang xp , dah di om gugle juga nggak ketemu 1. kan default item bisa di simpan sebanyak 99 ane sih cuma ingin sampe 50 aja, dan yang senjata tuh hanya bisa satu saja di simpan... 2. ane kepingin iventorynya dilimitkan... 3. kan ada bank system, yang dimana player bisa menyimpan uangnya. yang ini ane pengen bisa menyimpan senjata dan item... 4. ada script buat option menu nggak? ane liat di XP ada, VX ad nggak?, isi menunya sih, change Volume BGM, SFX, Lighting, Skin, dan config button... mohon di jawab yah,., , klw salah kamar mohon dipindahkan, akhir kata terima kasih oh yah dijawab beserta link demonya , ato link scriptnya,., tenang aja ane akan list nama ente di special thanks , jangan JUNK yah |
| | | 2012-02-26, 07:31 | Re: [ASK] tentang inventory, dan penyimpanan |
---|
ashm Veteran
Posts : 1131 Thanked : 8 Engine : RMVX Ace Skill : Intermediate Type : Event Designer
Awards:
| Ada sih Fridgecrisis Limit inventory. Tapi jadinya kayak Ragnarok Online. (tau kan?) di script itu ada 2 fungsi. Nyang satu item limit nyang kedua Bank. Kalo setiap senjata biar memakan satu slot inventory, itu ada Omega equipment Crafting System. Kalo yg Menu Option itu Download deh Demo Yanfly Engine Zealous (YEZ). Itu ada didalem nya. Mungkin dibawah ane ada yg lebih jelas.
Terakhir diubah oleh ashm tanggal 2012-02-26, 07:34, total 1 kali diubah (Reason for editing : Salah ketik) |
| | | 2012-02-26, 09:40 | Re: [ASK] tentang inventory, dan penyimpanan |
---|
andry5ury4 Novice
Posts : 124 Thanked : 0 Engine : Multi-Engine User Skill : Intermediate Type : Jack of All Trades
| item di limitkan yahhh,.... hmmm... kayaknya aku pernah denger,,,, kalau aku tahu ntar ku pm bank untuk naruh barang???? aku punya scriptnya tapi kalau bukan ini maap yahhh - item_storage:
#=============================================================================== # Item Storage # Author game_guy # Version 1.2 #------------------------------------------------------------------------------- # Intro: # Okay. Well if you've played the Elder Scrolls Series or Fallout then you'd # know that it has an item storage system. What it does is lets you open up # closets, chests, ect and store and take items out of it. # # Features: # Store and Take Items Out of Chests, Closets, ect # Have Seperate Chests, Closets, ect # Easy to Use # Stores Chests into Game System Instead of Variables # Have Max Amount of Items In Chest # Set Default Items in Chest # # Instructions: # First lets go over the syntaxes. # # Calling the Item Storage: # $scene = Scene_Chest.new(chest_id, max_items) # chest_id is the number chest you want open # max_items is the max amount of any item the chest can hold # you can just use this to # $scene = Scene_Chest.new(chest_id) # because in the config this ChestMaxItems is the default so if you dont use # the long one, it'll use the default. # # Adding/Removing Items from Chest: # This feature is still being worked on. But what it will allow you to do # is add an item or remove it whithout actually opening the chest. # # Okay so thats done with the syntaxes. Now onto the configuration. # Go down to Begin Config and do all your configuration there. # # Credits: # game_guy ~ for making it # MightyLink ~ requesting the system #=============================================================================== module GameGuy #============================================================================ # ChestMaxItems = The max amount of any item a chest can hold. So example # Its 9999 so it can have 9999 of any item. #============================================================================ ChestMaxItems = 9999 def self.chest_items(id) case id #========================================================================== # Config Chest Items # Use this # when chest_id then return [[id, amount, type], [id, amount, type]] # id = item, weapon, or armor id # amount = the amount # type = 0, 1, or 2 0 = item, 1 = weapon, 2 = armor # Example: # when 1 then return [[1, 3, 0], [1, 1, 1]] # This has 3 potions, and 1 bronze sword. So when this is called # $scene = Scene_Chest.new(1) # it will have those items in the chest already. #========================================================================== when 1 then return [[1, 999, 0], [1, 1, 1]] when 2 then return [[1, 10, 0], [1, 1, 2], [1, 2, 1]] when 3 then return [[1, 10, 2], [3, 1, 1], [9, 1, 1]] end return [] end end
#============================================================================== # Game_System #------------------------------------------------------------------------------ # Modded it so it makes it store every chest. #============================================================================== class Game_System attr_accessor :chests alias gg_add_item_storage initialize def initialize @chests = [] return gg_add_item_storage end def add_chest(chest) @chests[chest] = $chest end end
#============================================================================== # Game_Chest #------------------------------------------------------------------------------ # Holds all the data for a single chest. #============================================================================== class Game_Chest attr_accessor :max def initialize(max) @max = max @items = {} @weapons = {} @armors = {} end def item_amount(item_id) return @items.include?(item_id) ? @items[item_id] : 0 end def weapon_amount(weapon_id) return @weapons.include?(weapon_id) ? @weapons[weapon_id] : 0 end def armor_amount(armor_id) return @armors.include?(armor_id) ? @armors[armor_id] : 0 end def add_item(item_id, n) if item_id > 0 @items[item_id] = [[item_amount(item_id) + n, 0].max, @max].min end end def add_weapon(weapon_id, n) if weapon_id > 0 @weapons[weapon_id] = [[weapon_amount(weapon_id) + n, 0].max, @max].min end end def add_armor(armor_id, n) if armor_id > 0 @armors[armor_id] = [[armor_amount(armor_id) + n, 0].max, @max].min end end def take_item(item_id, n) add_item(item_id, -n) end def take_weapon(weapon_id, n) add_weapon(weapon_id, -n) end def take_armor(armor_id, n) add_armor(armor_id, -n) end end
#============================================================================== # Window_Chest_Choices #------------------------------------------------------------------------------ # The choices for the chest when the scene is opened. #============================================================================== class Window_Chest_Choices < Window_Selectable def initialize super(0, 0, 640, 64) self.contents = Bitmap.new(width - 32, height - 32) @item_max = 3 @column_max = 3 @commands = ["Store Items", "Take Items", "Exit"] self.z = 200 refresh self.index = 0 end def refresh self.contents.clear for i in 0...@item_max draw_item(i) end end def draw_item(index) x = 4 + index * 215 self.contents.draw_text(x, 0, 128, 32, @commands[index], 1) end end
#============================================================================== # Window_Chest_Item #------------------------------------------------------------------------------ # Displays all items in the chest. #============================================================================== class Window_Chest_Item < Window_Selectable def initialize super(320, 64, 320, 416) @column_max = 1 refresh self.index = 0 if $game_temp.in_battle self.y = 64 self.height = 256 self.back_opacity = 160 end end def item return @data[self.index] end def refresh if self.contents != nil self.contents.dispose self.contents = nil end @data = [] for i in 1...$data_items.size if $chest.item_amount(i) > 0 @data.push($data_items[i]) end end unless $game_temp.in_battle for i in 1...$data_weapons.size if $chest.weapon_amount(i) > 0 @data.push($data_weapons[i]) end end for i in 1...$data_armors.size if $chest.armor_amount(i) > 0 @data.push($data_armors[i]) end end end @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 def draw_item(index) item = @data[index] case item when RPG::Item number = $chest.item_amount(item.id) when RPG::Weapon number = $chest.weapon_amount(item.id) when RPG::Armor number = $chest.armor_amount(item.id) end x = 4 + index % @column_max * (288 + 32) y = index / @column_max * 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) self.contents.draw_text(x + 216, y, 16, 32, ":", 1) self.contents.draw_text(x + 224, y, 48, 32, number.to_s, 2) end def update_help @help_window.set_text(self.item == nil ? "" : self.item.description) end end
#============================================================================== # Window_Party_Item #------------------------------------------------------------------------------ # Displays all items the party has. #============================================================================== class Window_Party_Item < Window_Selectable def initialize super(0, 64, 320, 416) @column_max = 1 refresh self.index = 0 if $game_temp.in_battle self.y = 64 self.height = 256 self.back_opacity = 160 end end def item return @data[self.index] end def refresh if self.contents != nil self.contents.dispose self.contents = nil end @data = [] for i in 1...$data_items.size if $game_party.item_number(i) > 0 @data.push($data_items[i]) end end 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 @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 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 x = 4 + index % @column_max * (288 + 32) y = index / @column_max * 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) self.contents.draw_text(x + 216, y, 16, 32, ":", 1) self.contents.draw_text(x + 224, y, 48, 32, number.to_s, 2) end def update_help @help_window.set_text(self.item == nil ? "" : self.item.description) end end
#============================================================================== # Scene_Chest #------------------------------------------------------------------------------ # The scene that controls storing and taking items. #============================================================================== class Scene_Chest def initialize(chest=1, max=GameGuy::ChestMaxItems) @chestid = chest if $game_system.chests[chest] == nil $chest = Game_Chest.new(max) items = GameGuy.chest_items(chest) for i in 0...items.size item = items[i][2] case item when 0 $chest.add_item(items[i][0], items[i][1]) when 1 $chest.add_weapon(items[i][0], items[i][1]) when 2 $chest.add_armor(items[i][0], items[i][1]) else $chest.add_item(items[i][0], items[i][1]) end end else $chest = $game_system.chests[chest] end end def main @help_window = Window_Help.new @help_window.visible = false @command_window = Window_Chest_Choices.new @party_window = Window_Party_Item.new @party_window.active = false @chest_window = Window_Chest_Item.new @chest_window.active = false Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end @help_window.dispose @command_window.dispose @party_window.dispose @chest_window.dispose end def update @help_window.update @command_window.update @party_window.update @chest_window.update if @command_window.active update_command return end if @party_window.active update_party return end if @chest_window.active update_chest return end end def update_command if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) $game_system.add_chest(@chestid) $scene = Scene_Map.new return end if Input.trigger?(Input::C) case @command_window.index when 0 $game_system.se_play($data_system.decision_se) @party_window.active = true @party_window.help_window = @help_window @command_window.active = false @help_window.z = 500 @help_window.visible = true when 1 $game_system.se_play($data_system.decision_se) @chest_window.active = true @chest_window.help_window = @help_window @command_window.active = false @help_window.z = 500 @help_window.visible = true when 2 $game_system.se_play($data_system.cancel_se) $game_system.add_chest(@chestid) $scene = Scene_Map.new end return end end def update_party if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) @command_window.active = true @help_window.visible = false @party_window.help_window = nil @party_window.active = false return end if Input.repeat?(Input::C) @item = @party_window.item unless @item.is_a?(RPG::Item) or @item.is_a?(RPG::Weapon) or @item.is_a?(RPG::Armor) $game_system.se_play($data_system.buzzer_se) return end case @item when RPG::Item amount = $chest.item_amount(@item.id) if amount < $chest.max $game_system.se_play($data_system.decision_se) $chest.add_item(@item.id, 1) $game_party.lose_item(@item.id, 1) else $game_system.se_play($data_system.buzzer_se) return end when RPG::Weapon amount = $chest.weapon_amount(@item.id) if amount < $chest.max $game_system.se_play($data_system.decision_se) $chest.add_weapon(@item.id, 1) $game_party.lose_weapon(@item.id, 1) else $game_system.se_play($data_system.buzzer_se) return end when RPG::Armor amount = $chest.armor_amount(@item.id) if amount < $chest.max $game_system.se_play($data_system.decision_se) $chest.add_armor(@item.id, 1) $game_party.lose_armor(@item.id, 1) else $game_system.se_play($data_system.buzzer_se) return end end @party_window.refresh @chest_window.refresh return end end def update_chest if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) @command_window.active = true @help_window.visible = false @chest_window.help_window = nil @chest_window.active = false return end if Input.repeat?(Input::C) @item = @chest_window.item unless @item.is_a?(RPG::Item) or @item.is_a?(RPG::Weapon) or @item.is_a?(RPG::Armor) $game_system.se_play($data_system.buzzer_se) return end case @item when RPG::Item amount = $game_party.item_number(@item.id) if amount < 99 $game_system.se_play($data_system.decision_se) $chest.take_item(@item.id, 1) $game_party.gain_item(@item.id, 1) else $game_system.se_play($data_system.buzzer_se) return end when RPG::Weapon amount = $game_party.weapon_number(@item.id) if amount < 99 $game_system.se_play($data_system.decision_se) $chest.take_weapon(@item.id, 1) $game_party.gain_weapon(@item.id, 1) else $game_system.se_play($data_system.buzzer_se) return end when RPG::Armor amount = $game_party.armor_number(@item.id) if amount < 99 $game_system.se_play($data_system.decision_se) $chest.take_armor(@item.id, 1) $game_party.gain_armor(@item.id, 1) else $game_system.se_play($data_system.buzzer_se) return end end @party_window.refresh @chest_window.refresh return end end end
cara manggilnya pakai $scene = Scene_Chest.new(id barang, banyak barang) kalau script buat ngatur menu kayaknya aku juga pernah dengar tapi versi XP kalau versi VX aku gak tau |
| | | 2012-02-26, 10:22 | Re: [ASK] tentang inventory, dan penyimpanan |
---|
LowlingLife Administrator
Posts : 2000 Thanked : 25 Engine : Multi-Engine User
Awards:
| 1 & 2 : Coba cek http://rmrk.net/index.php/topic,32918.0.html . Itu bukan yang om mau? 3 : Coba cek http://www.omega-dev.net/forums/showthread.php?tid=931 4 : Pake dari Yanfly Engine Zealous. Sama seperti om ashm. |
| | | 2012-02-27, 10:28 | Re: [ASK] tentang inventory, dan penyimpanan |
---|
Fathan Novice
Posts : 143 Thanked : 0 Engine : RMVX Skill : Advanced Type : Developer
Awards:
| @ashm : nggak apa2 gan, yang penting di limitkan , bisa minta linknya nggak?? link demo ato script,., @andy5fury4 : itu yang vx ato xp?? ,. truss maksud dari id barang??? nanti ane coba,., @lowlingLife : 1&2 aku dapet juga disitu, cuman link demonya nggak tau nyasar dimana, 3. yah dapat,., makasih,., 4. minta link demo ato scriptnya gan,., ane dah muter2 di gugle nggak ketemu |
| | | | Re: [ASK] tentang inventory, dan penyimpanan |
---|
Sponsored content
| | | | | [ASK] tentang inventory, dan penyimpanan | |
|
Halaman 1 dari 1 | |
| Permissions in this forum: | Anda tidak dapat menjawab topik
| |
| |
Latest 10 Topics | [Web Novel] Gloria Infidelis 2016-11-17, 21:27 by LightNightKnight
[Announcement] Forum baru untuk RMID 2016-08-25, 16:39 by TheoAllen
Where I'm Wrong ? 2016-07-24, 16:10 by ReydVires
flakeheartnet's Resources part III 2016-07-08, 14:30 by flakeheartnet
Keira's Art Warehouse 2016-06-28, 19:27 by KeiraBlaze
Theo Core Time System + Bingung 2016-06-27, 16:24 by Lockin
Error Script, Maybe ? 2016-06-27, 16:20 by Lockin
Nusaimoe @ RMID Lounge 2016-06-21, 05:02 by Jihad Bagas
Call Random Battle 2016-06-15, 17:04 by Lockin
Flakeheartnet Resources Part II [come back gift] 2016-06-07, 15:51 by flakeheartnet
|
Statistics
|
Members: [ 4947 ]
Topics: [ 8258 ]
Posts: [ 112606 ]
Newest member: [ https://rmid.forumotion.net/u4968 ]
|
|
|
|
|
|