Aloha
Spędziłem ponad 2 godziny w przeszukiwaniu internetu i nie potrafiłem znaleźć odpowiedzi do na pozór łatwego do rozwiązania problemu. Chodzi mi o to, żeby w sklepie można było jedynie sprzedawać NPCkom przedmioty i to nie wszystkie, a jedynie wybrane. Jak to zrobić?
Zależy mi też, żeby przedmioty nie były sprzedawane pojedynczo a np. w 30 sztukach. Standardowy sklep nie ma opcji "Tylko sprzedawaj przedmioty". Gdy próbowałem zrobić alternatywny sklep przy pomocy zmiennych to wyskakiwał mi bląd w 750linijce w Game Interpreter.
Pomogła: 232 razy Dołączyła: 18 Wrz 2007 Posty: 2424
Wysłany: Pon 18 Lip, 2011 12:20
Spróbuj tego skryptu:
Spoiler:
Kod:
#===================================================================
# Sprzedaż wybranych przedmiotów [VX]
# by Ayene
#===================================================================
# Opis:
# Skrypt umożliwia wybranie, które dokładnie przedmioty można sprzedać w sklepie.
# Wyłącza ponado opcję
#
# Instrukcja:
# By skorzystać ze skryptu w oknie 'Note' przy danym przedmiocie w Bazie Danych
# umieść tekst <sell_only> lub <SELL_ONLY>
# Pamiętaj o aktywacj przełącznika ustalonego poniżej w konfiguracji.
#===================================================================
module AYE
SELL_NOTE = /<(?:SELL_ONLY|sell_only)>/i
SWITCH_ID = 3 # przełącznik włączający możliwość kontrolowanej sprzedaży
end
class RPG::BaseItem
def sell_only?
@sell_only = false
self.note.split(/[\r\n]+/).each {|i| @sell_only = true if i =~ AYE::SELL_NOTE}
return @sell_only
end
end
class Scene_Shop < Scene_Base
alias aye_scshop_crcomwin create_command_window
def create_command_window
aye_scshop_crcomwin
if $game_switches[AYE::SWITCH_ID]
@command_window.draw_item(0, false)
@command_window.draw_item(1, true)
end
end
def update_command_selection
if Input.trigger?(Input::B)
Sound.play_cancel
$scene = Scene_Map.new
elsif Input.trigger?(Input::C)
case @command_window.index
when 0 # buy
if $game_switches[AYE::SWITCH_ID]
Sound.play_buzzer
else
Sound.play_decision
@command_window.active = false
@dummy_window.visible = false
@buy_window.active = true
@buy_window.visible = true
@buy_window.refresh
@status_window.visible = true
end
when 1 # sell
if $game_temp.shop_purchase_only
Sound.play_buzzer
else
Sound.play_decision
@command_window.active = false
@dummy_window.visible = false
@sell_window.active = true
@sell_window.visible = true
@sell_window.refresh
end
when 2 # Quit
Sound.play_decision
$scene = Scene_Map.new
end
end
end
def update_sell_selection
if Input.trigger?(Input::B)
Sound.play_cancel
@command_window.active = true
@dummy_window.visible = true
@sell_window.active = false
@sell_window.visible = false
@status_window.item = nil
@help_window.set_text("")
elsif Input.trigger?(Input::C)
@item = @sell_window.item
@status_window.item = @item
if @item == nil or @item.price == 0 or
(!@item.sell_only? and $game_switches[AYE::SWITCH_ID])
Sound.play_buzzer
else
Sound.play_decision
max = $game_party.item_number(@item)
@sell_window.active = false
@sell_window.visible = false
@number_window.set(@item, max, @item.price / 2)
@number_window.active = true
@number_window.visible = true
@status_window.visible = true
end
end
end
end
class Window_ShopSell < Window_Item
def draw_item(index)
rect = item_rect(index)
self.contents.clear_rect(rect)
item = @data[index]
if item != nil
number = $game_party.item_number(item)
enabled = $game_switches[AYE::SWITCH_ID] ? item.sell_only? : true
rect.width -= 4
draw_item_name(item, rect.x, rect.y, enabled)
self.contents.draw_text(rect, sprintf(":%2d", number), 2)
end
end
end
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum