|
| [ASK] tentang inventory, dan penyimpanan | |
| | Pengirim | Message |
---|
Fathan Novice
Posts : 143 Thanked : 0 Engine : RMVX Skill : Advanced Type : Developer
Trophies
Awards: | Subyek: [ASK] tentang inventory, dan penyimpanan 2012-02-26, 00:47 | |
| 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 | |
| | | ashm Veteran
Posts : 1131 Thanked : 8 Engine : RMVX Ace Skill : Intermediate Type : Event Designer
Trophies
Awards:
| Subyek: Re: [ASK] tentang inventory, dan penyimpanan 2012-02-26, 07:31 | |
| 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) | |
| | | andry5ury4 Novice
Posts : 124 Thanked : 0 Engine : Multi-Engine User Skill : Intermediate Type : Jack of All Trades
| Subyek: Re: [ASK] tentang inventory, dan penyimpanan 2012-02-26, 09:40 | |
| 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 | |
| | | LowlingLife Administrator
Posts : 2000 Thanked : 25 Engine : Multi-Engine User
Trophies
Awards:
| Subyek: Re: [ASK] tentang inventory, dan penyimpanan 2012-02-26, 10:22 | |
| 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. | |
| | | Fathan Novice
Posts : 143 Thanked : 0 Engine : RMVX Skill : Advanced Type : Developer
Trophies
Awards: | Subyek: Re: [ASK] tentang inventory, dan penyimpanan 2012-02-27, 10:28 | |
| @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 | |
| | | Sponsored content
| Subyek: Re: [ASK] tentang inventory, dan penyimpanan | |
| |
| | | | [ASK] tentang inventory, dan penyimpanan | |
|
Similar topics | |
|
| Permissions in this forum: | Anda tidak dapat menjawab topik
| |
| |
| Latest topics | » [Web Novel] Gloria Infidelis by LightNightKnight 2016-11-17, 21:27
» [Announcement] Forum baru untuk RMID by TheoAllen 2016-08-25, 16:39
» Where I'm Wrong ? by ReydVires 2016-07-24, 16:10
» flakeheartnet's Resources part III by flakeheartnet 2016-07-08, 14:30
» Keira's Art Warehouse by KeiraBlaze 2016-06-28, 19:27
» Theo Core Time System + Bingung by Lockin 2016-06-27, 16:24
» Error Script, Maybe ? by Lockin 2016-06-27, 16:20
» Nusaimoe @ RMID Lounge by Jihad Bagas 2016-06-21, 05:02
» Call Random Battle by Lockin 2016-06-15, 17:04
» Flakeheartnet Resources Part II [come back gift] by flakeheartnet 2016-06-07, 15:51
|
Statistics
|
Members: [ 4947 ]
Topics: [ 8258 ]
Posts: [ 112606 ]
Newest member: [ https://rmid.forumotion.net/u4968 ]
|
|
|
|