Alte Version:
Kurze Erklärung: Das Script macht es möglich das Items nicht immer für die Hälfte des Einkaufspreises verkauft werden.
Um dies zu ändern müsst ihr einfach nur die Notiz bei dem Item ändern.
Wichtig: Es gibt Probleme wenn es mehr Notizen als nur die Preiszahl gibt. (Ich nehme gerne Vorschläge und Hilfen zur Lösung des Problems an.)
Wie baue ich das Script ein?Script über Main einfügen und beim gewünschten Item die Notiz ändern.
Wenn keine Notiz gesetzt wird, die Zahl 0 ist oder Buchstaben drin vor kommen ist der Preis des Itemverkaufs die Hälfte des Einkaufspreises (sprich: Standart).
Wenn die Notiz -1 entspricht, dann ist das Item beim verkauf nichts Wert, und das verkaufen bringt einem 0G.
Liegt der Preis der in der Notiz festgelegt ist über 0, so ist es der Verkaufspreis.
Das Scriptv.0.1
#==============================================================================
# ** ESS (Extended Sell System)
#------------------------------------------------------------------------------
# v.0.1
#
# English:
# You are able to change the sell price for items now.
# An item musn't be selled for the half buy price.
# Only type in the price at the item notes.
# Only if the Note is "-1" the Item will rais no money.
#
# WARNING: There only have to stand the price, not other notes or scripts
#
#
# Deutsch:
# Nun könnt ihr den Verkaufspreis für jedes Item festlegen.
# Die Items müssen nicht mehr die hälfte des Einkaufspreis einbringen.
# Ihr müsst einfach nur den Preis zu den Item Notizen schreiben.
# Nur wenn die Notiz "-1" ist, wird das Item kein geld einbringen.
#
# WARNUNG: Ihr dürft nur den preis dahin schreiben, keine anderen notizen
# oder scripts
#
#
# (C)lenni96 and ranack
#==============================================================================
class Scene_Shop < Scene_Base
#--------------------------------------------------------------------------
# * Update Buy Item Selection
#--------------------------------------------------------------------------
def update_buy_selection
@status_window.item = @buy_window.item
if Input.trigger?(Input::B)
Sound.play_cancel
@command_window.active = true
@dummy_window.visible = true
@buy_window.active = false
@buy_window.visible = false
@status_window.visible = false
@status_window.item = nil
@help_window.set_text("")
return
end
if Input.trigger?(Input::C)
@item = @buy_window.item
number = $game_party.item_number(@item)
if @item == nil or @item.price > $game_party.gold or number == 99
Sound.play_buzzer
else
Sound.play_decision
max = @item.price == 0 ? 99 : $game_party.gold / @item.price
max = [max, 99 - number].min
@buy_window.active = false
@buy_window.visible = false
@number_window.set(@item, max, @item.price)
@number_window.active = true
@number_window.visible = true
end
end
end
#--------------------------------------------------------------------------
# * Update Sell Item Selection
#--------------------------------------------------------------------------
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
Sound.play_buzzer
else
Sound.play_decision
max = $game_party.item_number(@item)
@sell_window.active = false
@sell_window.visible = false
if @item.note.to_i > 0
@number_window.set(@item, max, @item.note.to_i)
elsif @item.note.to_i == -1
@number_window.set(@item, max, 0)
else
@number_window.set(@item, max, @item.price / 2)
end
@number_window.active = true
@number_window.visible = true
@status_window.visible = true
end
end
end
#--------------------------------------------------------------------------
# * Confirm Number Input
#--------------------------------------------------------------------------
def decide_number_input
Sound.play_shop
@number_window.active = false
@number_window.visible = false
case @command_window.index
when 0 # Buy
$game_party.lose_gold(@number_window.number * @item.price)
$game_party.gain_item(@item, @number_window.number)
@gold_window.refresh
@buy_window.refresh
@status_window.refresh
@buy_window.active = true
@buy_window.visible = true
when 1 # sell
if @item.note.to_i > 0
$game_party.gain_gold(@number_window.number * (@item.note.to_i))
elsif @item.note.to_i == -1
$game_party.gain_gold(0)
else
$game_party.gain_gold(@number_window.number * (@item.price / 2))
end
$game_party.lose_item(@item, @number_window.number)
@gold_window.refresh
@sell_window.refresh
@status_window.refresh
@sell_window.active = true
@sell_window.visible = true
@status_window.visible = false
end
end
end
Neue Version:Kurze Erklärung: Das Script macht es möglich das Items nicht immer für die Hälfte des Einkaufspreises verkauft werden.
Um dies zu ändern müsst ihr einfach nur die Notiz bei dem Item ändern.
Wichtig: Ihr schreibt in die Notiz "<price>" (ohne ") dann den preis und nach dem preis schreibt ihr wieder "</price>".
Wichtiger: Dies ist leider noch verbuggt. Es kann zum Beispiel sein das wenn man den Preis 50 angibt, dass es nur für 2 verkauft wird.
Wie baue ich das Script ein?Script über Main einfügen und beim gewünschten Item, wie oben genannt, die notiz ändern.
Das Scriptv.0.5#==============================================================================
# ** ESS (Extended Sell System)
#------------------------------------------------------------------------------
# v.0.1
#
# English:
# You are able to change the sell price for items now.
#
# Deutsch:
# Nun könnt ihr den Verkaufspreis für jedes Item festlegen.
#
#
# (C)lenni96 and ranack
#==============================================================================
class Scene_Shop < Scene_Base
#--------------------------------------------------------------------------
# * Update Buy Item Selection
#--------------------------------------------------------------------------
def update_buy_selection
@status_window.item = @buy_window.item
if Input.trigger?(Input::B)
Sound.play_cancel
@command_window.active = true
@dummy_window.visible = true
@buy_window.active = false
@buy_window.visible = false
@status_window.visible = false
@status_window.item = nil
@help_window.set_text("")
return
end
if Input.trigger?(Input::C)
@item = @buy_window.item
number = $game_party.item_number(@item)
if @item == nil or @item.price > $game_party.gold or number == 99
Sound.play_buzzer
else
Sound.play_decision
max = @item.price == 0 ? 99 : $game_party.gold / @item.price
max = [max, 99 - number].min
@buy_window.active = false
@buy_window.visible = false
@number_window.set(@item, max, @item.price)
@number_window.active = true
@number_window.visible = true
end
end
end
#--------------------------------------------------------------------------
# * Update Sell Item Selection
#--------------------------------------------------------------------------
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
Sound.play_buzzer
else
Sound.play_decision
max = $game_party.item_number(@item)
@sell_window.active = false
@sell_window.visible = false
##
if @item.is_a?(RPG::Weapon)
@item2 = $data_weapons[@item.id]
elsif @item.is_a?(RPG::Armor)
@item2 = $data_armors[@item.id]
elsif @item.is_a?(RPG::Item)
@item2 = $data_items[@item.id]
end
@notes = @item2.note
if @notes.include?("<price>")
@tags = [@notes.index("<price>"),@notes.index("</price>")]
@price = ""
for i in @tags[0]...@tags[1]
@price += @notes[i].to_s
end
@price = @price.gsub("601121141059910162","")
@price = @price.gsub("48","0")
@price = @price.gsub("50","2")
@price = @price.gsub("52","4")
@price = @price.gsub("54","6")
@price = @price.gsub("56","8")
@price = @price.gsub("49","1")
@price = @price.gsub("51","3")
@price = @price.gsub("53","5")
@price = @price.gsub("55","7")
@price = @price.gsub("57","9")
else
@price = "-1"
end
##
if @price.to_i > -1
@number_window.set(@item, max, @price.to_i)
else
@number_window.set(@item, max, @item.price / 2)
end
@number_window.active = true
@number_window.visible = true
@status_window.visible = true
end
end
end
#--------------------------------------------------------------------------
# * Confirm Number Input
#--------------------------------------------------------------------------
def decide_number_input
Sound.play_shop
@number_window.active = false
@number_window.visible = false
case @command_window.index
when 0 # Buy
$game_party.lose_gold(@number_window.number * @item.price)
$game_party.gain_item(@item, @number_window.number)
@gold_window.refresh
@buy_window.refresh
@status_window.refresh
@buy_window.active = true
@buy_window.visible = true
when 1 # sell
####
if @item.is_a?(RPG::Weapon)
@item2 = $data_weapons[@item.id]
elsif @item.is_a?(RPG::Armor)
@item2 = $data_armors[@item.id]
elsif @item.is_a?(RPG::Item)
@item2 = $data_items[@item.id]
end
@notes = @item2.note
if @notes.include?("<price>")
@tags = [@notes.index("<price>"),@notes.index("</price>")]
@price = ""
for i in @tags[0]...@tags[1]
@price += @notes[i].to_s
end
@price = @price.gsub("601121141059910162","")
@price = @price.gsub("48","0")
@price = @price.gsub("50","2")
@price = @price.gsub("52","4")
@price = @price.gsub("54","6")
@price = @price.gsub("56","8")
@price = @price.gsub("49","1")
@price = @price.gsub("51","3")
@price = @price.gsub("53","5")
@price = @price.gsub("55","7")
@price = @price.gsub("57","9")
else
@price = "-1"
end
####
if @price.to_i > -1
$game_party.gain_gold(@number_window.number * (@price.to_i))
else
$game_party.gain_gold(@number_window.number * (@item.price / 2))
end
$game_party.lose_item(@item, @number_window.number)
@gold_window.refresh
@sell_window.refresh
@status_window.refresh
@sell_window.active = true
@sell_window.visible = true
@status_window.visible = false
end
end
end