RE: Sorting Items in Shop Window - DerVVulfman - 01-17-2018
Kinda got a script of sorts, but not TOO friendly. It lets you add items to the shop. All items added this way are added to the 'END' of your shop list, so whatever you want to be at the top... better have it set first in the 'SHOP PROCESSING' command.
Code: #==============================================================================
# ** Game_Temp
#------------------------------------------------------------------------------
# This class handles temporary data that is not included with save data.
# Refer to "$game_temp" for the instance of this class.
#==============================================================================
class Game_Temp
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :new_goods # list of shop goods
end
#==============================================================================
# ** Interpreter
#------------------------------------------------------------------------------
# This interpreter runs event commands. This class is used within the
# Game_System class and the Game_Event class.
#==============================================================================
class Interpreter
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias guten_morgen_shop command_302
#--------------------------------------------------------------------------
# * Shop Processing
#--------------------------------------------------------------------------
def command_302
effective = guten_morgen_shop
unless $game_temp.new_goods.nil?
for items in $game_temp.new_goods
$game_temp.shop_goods.push(items)
end
$game_temp.new_goods = nil
end
return effective
end
#--------------------------------------------------------------------------
# * Add to Shop
# list : list of items in an array
#--------------------------------------------------------------------------
def add_to_shop(list=nil)
$game_temp.new_goods = list
end
end
You use this by adding a script call before you run the shop. This script call is 'add_to_shop' and you pass an array of items into it. The items are added to the END of your shopping list, but will be in the order you add. An example of the call may appear like this:
Code: list = [ [0,3], [1,4], [0,2], [2,1] ]
add_to_shop(list)
This adds the 'Full Potion' [0,3], 'Mythril Sword' [1,4], 'High Potion [0,2], and 'Bronze Shield' [2,1] to the end of the list.
Each item is an array of two parameters [type, ID] Type 0 is an item, 1 is a weapon and 2 is armor. ID si just the item id in the database.
Testing it, my event list looks like this:
Code: @>Script: list = [ [0,3], [1,4], [0,2], [2,1] ]
: : add_to_shop(list)
@>Shop Processing [High Potion]
@>
Unfortunately, I do have to have an item in the shop first, and that one is always at the top of the list. In this case, the High Potion appears before the others I mentioned. But... here ya go? You can add them in your order just by manually making a list like above.
RE: Sorting Items in Shop Window - Mel - 01-18-2018
Oh well, I will definitely try this out. :)
RE: Sorting Items in Shop Window - kyonides - 01-18-2018
Or if anybody wants them to be ordered alphabetically and type no script call at all, use the following snippet...
Code: class Scene_Shop
alias kyon_alphabet_scn_shop_main main
def main
goods = $game_temp.shop_goods.map do |data|
kind, id = data
data << case kind
when 0 then $data_items[id].name
when 1 then $data_weapons[id].name
when 2 then $data_armors[id].name
end
end
goods.sort! {|a,b| a[2] <=> b[2] }
$game_temp.shop_goods = goods.select {|g| g[0..1] }
kyon_alphabet_scn_shop_main
end
end
RE: Sorting Items in Shop Window - DerVVulfman - 01-18-2018
(01-18-2018, 01:02 AM)Melana Wrote: Oh well, I will definitely try this out. :)
Hey, if you try that script out, try this one too: Store Goods Wipe
When you use the Shop Processing command, you need to make at least ONE item. This script can erase the item, so all you add with what I sent ya here can take over 100 percent.
|