RPG-Maker Quartier

Hier dreht sich alles um die RPG-Maker-Reihe von ASCII/Enterbrain. Der RPG-Maker ist ein Tool, mit dem du dir dein eigenes kleines Rollenspiel erstellen kannst. Du findest hier alles, was du dazu brauchst. Aber natürlich umfasst die Community noch mehr!
Aktuelle Zeit: Di Mär 03, 2020 0:45

Alle Zeiten sind UTC + 1 Stunde



Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste



Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 
Autor Nachricht
Offline
Rotfüchschen
Rotfüchschen
Benutzeravatar
Beiträge: 186
Alter: 29
Wohnort: Delmenhorst
BeitragVerfasst: Do Jan 14, 2010 13:43 
Hi Leute
ich bin gerade dabei das Shop System etwas zu modifzieren. Dazu würde gerne die Kommandos Kaufen, Verkaufen und Beenden durch Pictures anziegen lassen, so das sie sich bewegen, wenn man den Cursor zum nächsten Kommando bewegt. Kann mir vielleicht jemand erklären, wie ich das bewerkstelligen kann?

Code:
#========================================================================

#=======
# Leon's Shopping System
#-------------------------------------------------------------------------------
# 3/10/2007
# v. 1.0
#-------------------------------------------------------------------------------
# Instructions:
# Place above main, and below the other default scripts.
# (Yes, that is all of the instructions)
#
# Features:
# Replaces the default shop system.
#
#===============================================================================



#===============================================================================

# Window_Shop_Info
#===============================================================================

class Window_Shop_Info < Window_Base
def initialize
super(160, 0, 480, 64)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end

def refresh(selection = 0)
self.contents.clear
if selection == 0
self.contents.draw_text(0, 0, 448, 32, "Kaufen, verkaufen oder beenden", 1)
else
self.contents.draw_text(0, 0, 448, 32, "Drücke 'Z' für mehr Informationen", 1)
end
end
end
#===============================================================================

# END Window_Shop_Info
#===============================================================================



#===============================================================================

# Window_Shop_Option
#===============================================================================

class Window_Shop_Option < Window_Selectable
def initialize
super(0, 0, 160, 128)
@option = ["Kaufen", "Verkaufen", "Abbrechen"]
@item_max = @option.size
self.contents = Bitmap.new(width - 32, height - 32)
self.index = 0
self.active = true
refresh
end

def refresh
self.contents.clear
for i in 0...@option.size
y = i * 32
self.contents.draw_text(0, y, 128, 32, @option[i], 1)
end
end
end
#===============================================================================

# END Window_Shop_Option
#===============================================================================



#===============================================================================

# Window_Shop_Gold
#===============================================================================

class Window_Shop_Gold < Window_Base
def initialize
super(0, 128, 160, 64)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end

def refresh
self.contents.clear
self.contents.font.color = system_color
self.contents.draw_text(0, 0, 60, 32, $data_system.words.gold + ":")
self.contents.font.color = normal_color
self.contents.draw_text(0, 0, 128, 32, $game_party.gold.to_s, 2)
end
end
#===============================================================================

# END Window_Shop_Gold
#===============================================================================



#===============================================================================

# Window_Shop_Own
#===============================================================================

class Window_Shop_Own < Window_Base
def initialize
super(0, 192, 160, 64)
self.contents = Bitmap.new(width - 32, height - 32)
item = nil
refresh(item)
end

def refresh(item)
self.contents.clear
self.contents.font.color = system_color
self.contents.draw_text(0, 0, 48, 32, "Besitz:")
if item == nil
return
end
self.contents.font.color = normal_color
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
self.contents.draw_text(0, 0, 128, 32, number.to_s, 2)
end
end
#===============================================================================

# END Window_Shop_Own
#===============================================================================



#===============================================================================

# Window_Shop_List
#===============================================================================

class Window_Shop_List < Window_Selectable
def initialize(shop_goods)
super(160, 64, 480, 192)
self.contents = Bitmap.new(width - 32, height - 32)
self.active = false
self.index = 0
self.visible = false
@shop_goods = shop_goods
@sell = false
end

def item
if @data != nil
return @data[index]
end
end

def refresh
@sell = false
@option_index = nil
if self.contents != nil
self.contents.dispose
self.contents = nil
end
@data = []
for goods_item in @shop_goods
case goods_item[0]
when 0
item = $data_items[goods_item[1]]
when 1
item = $data_weapons[goods_item[1]]
when 2
item = $data_armors[goods_item[1]]
end
if item != nil
@data.push(item)
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 refresh_sell(option_index)
@sell = true
@option_index = option_index
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
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
@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
if @option_index == nil
if item.price <= $game_party.gold and number < 99
self.contents.font.color = normal_color
else
self.contents.font.color = disabled_color
end
else
self.contents.font.color = normal_color
end
x = 4
y = index * 32
if item.price == 0
self.contents.font.color = disabled_color
else
self.contents.font.color = normal_color
end
if @sell == false
if item.price < $game_party.gold and number < 99
self.contents.font.color = normal_color
else
self.contents.font.color = disabled_color
end
end
rect = Rect.new(x, y, self.width - 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)
if @option_index == nil
self.contents.draw_text(x + 350, y, 88, 32, item.price.to_s, 2)
else
item_price = (item.price / 2).round
self.contents.draw_text(x + 350, y, 88, 32, item_price.to_s, 2)
end
end
end
#===============================================================================

# END Window_Shop_List
#===============================================================================



#===============================================================================

# Window_Shop_Description_Item
#===============================================================================

class Window_Shop_Description_Item < Window_Base
def initialize
super(90, 256, 460, 192)
self.contents = Bitmap.new(width - 32, height - 32)
self.visible = false
item = nil
refresh(item)
end

def refresh(item)
self.contents.clear
if item == nil
return
end
bitmap = RPG::Cache.icon(item.icon_name)
opacity = self.contents.font.color == normal_color ? 255 : 128
self.contents.blt(0, 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.draw_text(28, 0, 120, 32, item.name)
self.contents.draw_text(0, 32, 428, 32, item.description)
self.contents.font.color = system_color
self.contents.draw_text(0, 64, 120, 32, "Order:")
self.contents.draw_text(0, 96, 140, 32, "% KP Heilung:")
self.contents.draw_text(0, 128, 140, 32, "% TP Heilung:")
self.contents.draw_text(230, 96, 120, 32, "KP Wiederherstellung:")
self.contents.draw_text(230, 128, 120, 32, "TP Wiederherstellung:")
self.contents.font.color = normal_color
self.contents.draw_text(150, 96, 90, 32, item.recover_hp_rate.to_s)
self.contents.draw_text(150, 128, 90, 32, item.recover_sp_rate.to_s)
self.contents.draw_text(360, 96, 90, 32, item.recover_hp.to_s)
self.contents.draw_text(360, 128, 90, 32, item.recover_sp.to_s)
case item.scope
when 0
self.contents.draw_text(70, 64, 120, 32, "Kein")
when 1
self.contents.draw_text(70, 64, 120, 32, "Ein Gegner")
when 2
self.contents.draw_text(70, 64, 120, 32, "Alle Gegner")
when 3
self.contents.draw_text(70, 64, 120, 32, "Ein Verbündeter")
when 4
self.contents.draw_text(70, 64, 120, 32, "Alle Verbündeten")
when 5
self.contents.draw_text(70, 64, 120, 32, "Ein bewusstloser Verbündeter")
when 6
self.contents.draw_text(70, 64, 120, 32, "Alle bewusstlosen Verbündeteb")
when 7
self.contents.draw_text(70, 64, 120, 32, "Anwender")
end
end
end
#===============================================================================

# END Window_Shop_Description_Item
#===============================================================================



#===============================================================================

# Window_Shop_Description_Equipment
#===============================================================================

class Window_Shop_Description_Equipment < Window_Base
def initialize
super(0, 256, 640, 224)
self.contents = Bitmap.new(width - 32, height - 32)
self.visible = false
item = nil
refresh(item)
end

def refresh(item)
self.contents.clear
if item == nil
return
end
bitmap = RPG::Cache.icon(item.icon_name)
opacity = self.contents.font.color == normal_color ? 255 : 128
self.contents.blt(0, 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.draw_text(28, 0, 120, 32, item.name)
self.contents.draw_text(0, 32, 460, 32, item.description)
self.contents.font.color = system_color
if item.is_a?(RPG::Weapon)
self.contents.draw_text(0, 64, 75, 32, "Attack:")
self.contents.draw_text(0, 96, 120, 32, "Wiederstand:")
self.contents.draw_text(0, 128, 120, 32, "Resistenz:")
self.contents.draw_text(165, 64, 120, 32, "Stk:")
self.contents.draw_text(165, 96, 120, 32, "Def:")
self.contents.draw_text(165, 128, 120, 32, "Agi:")
self.contents.draw_text(165, 160, 120, 32, "Int:")
self.contents.draw_text(290, 64, 120, 32, "Elemente:")
self.contents.draw_text(470, 64, 120, 32, "Statusveränderung:")
else
self.contents.draw_text(0, 64, 120, 32, "Wiederstand:")
self.contents.draw_text(0, 96, 120, 32, "Resistenz:")
self.contents.draw_text(0, 128, 120, 32, "Ausweichen:")
self.contents.draw_text(0, 160, 120, 32, "Auto:")
self.contents.draw_text(165, 64, 120, 32, "Stk:")
self.contents.draw_text(165, 96, 120, 32, "Def:")
self.contents.draw_text(165, 128, 120, 32, "Agi:")
self.contents.draw_text(165, 160, 120, 32, "Int:")
self.contents.draw_text(370, 64, 120, 32, "Schützt gegen:")
end
self.contents.font.color = normal_color
if item.is_a?(RPG::Weapon)
self.contents.draw_text(60, 64, 75, 32, item.atk.to_s)
self.contents.draw_text(90, 96, 75, 32, item.pdef.to_s)
self.contents.draw_text(90, 128, 75, 32, item.mdef.to_s)
self.contents.draw_text(195, 64, 50, 32, item.str_plus.to_s, 2)
self.contents.draw_text(195, 96, 50, 32, item.dex_plus.to_s, 2)
self.contents.draw_text(195, 128, 50, 32, item.agi_plus.to_s, 2)
self.contents.draw_text(195, 160, 50, 32, item.int_plus.to_s, 2)
self.contents.font.size = 14
for i in 0...item.element_set.size
x = 265 + i % 2 * 75
y = 80 + i / 2 * 14
self.contents.draw_text(x, y, 120, 32, $data_system.elements[item.element_set[i]])
end
for i in 0...item.plus_state_set.size
x = 445 + i % 2 * 75
y = 80 + i / 2 * 14
self.contents.draw_text(x, y, 120, 32, $data_states[item.plus_state_set[i]].name)
end
else
self.contents.draw_text(90, 64, 75, 32, item.pdef.to_s)
self.contents.draw_text(90, 96, 75, 32, item.mdef.to_s)
self.contents.draw_text(60, 128, 75, 32, item.eva.to_s)
if $data_states[item.auto_state_id] != nil
self.contents.draw_text(55, 160, 75, 32, $data_states[item.auto_state_id].name)
end
self.contents.draw_text(195, 64, 50, 32, item.str_plus.to_s, 2)
self.contents.draw_text(195, 96, 50, 32, item.dex_plus.to_s, 2)
self.contents.draw_text(195, 128, 50, 32, item.agi_plus.to_s, 2)
self.contents.draw_text(195, 160, 50, 32, item.int_plus.to_s, 2)
self.contents.font.size = 14
@defense = []
for i in 0...item.guard_element_set.size
@defense.push($data_system.elements[item.guard_element_set[i]])
end
for i in 0...item.guard_state_set.size
@defense.push($data_states[item.guard_state_set[i]].name)
end
for i in 0...@defense.size
x = 265 + i % 4 * 80
y = 80 + i / 4 * 14
self.contents.draw_text(x + 15, y, 85, 32, @defense[i])
end
end
self.contents.font.size = 22
end
end
#===============================================================================

# END Window_Shop_Description_Equipment
#===============================================================================



#===============================================================================

# Window_Shop_Actors
#===============================================================================

class Window_Shop_Actors < Window_Base
def initialize
super(84, 32, 472, 416)
self.contents = Bitmap.new(width - 32, height - 32)
self.visible = false
self.active = false
self.z += 100
item = nil
refresh(item)
end

def refresh(item)
self.contents.clear
if item == nil
return
end
for i in 0...$game_party.actors.size
x = i%2 * 236
y = i/2 * 192
draw_actor_graphic($game_party.actors[i], x + 16, y + 48)
draw_actor_name($game_party.actors[i], x + 48, y + 8)
pdef1 = item.pdef
mdef1 = item.mdef
str1 = item.str_plus
dex1 = item.dex_plus
agi1 = item.agi_plus
int1 = item.int_plus
atk2 = 0
eva2 = 0
pdef2 = 0
mdef2 = 0
str2 = 0
dex2 = 0
agi2 = 0
int2 = 0
if item.is_a?(RPG::Weapon)
if $data_weapons[$game_party.actors[i].weapon_id] != nil
atk1 = item.atk
atk2 = $data_weapons[$game_party.actors[i].weapon_id].atk
pdef2 = $data_weapons[$game_party.actors[i].weapon_id].pdef
mdef2 = $data_weapons[$game_party.actors[i].weapon_id].mdef
str2 = $data_weapons[$game_party.actors[i].weapon_id].str_plus
dex2 = $data_weapons[$game_party.actors[i].weapon_id].dex_plus
agi2 = $data_weapons[$game_party.actors[i].weapon_id].agi_plus
int2 = $data_weapons[$game_party.actors[i].weapon_id].int_plus
end
else
eva1 = item.eva
case item.kind
when 0
if $data_armors[$game_party.actors[i].armor1_id] != nil
eva2 = $data_armors[$game_party.actors[i].armor1_id].eva
pdef2 = $data_armors[$game_party.actors[i].armor1_id].pdef
mdef2 = $data_armors[$game_party.actors[i].armor1_id].mdef
str2 = $data_armors[$game_party.actors[i].armor1_id].str_plus
dex2 = $data_armors[$game_party.actors[i].armor1_id].dex_plus
agi2 = $data_armors[$game_party.actors[i].armor1_id].agi_plus
int2 = $data_armors[$game_party.actors[i].armor1_id].int_plus
end
when 1
if $data_armors[$game_party.actors[i].armor2_id] != nil
eva2 = $data_armors[$game_party.actors[i].armor2_id].eva
pdef2 = $data_armors[$game_party.actors[i].armor2_id].pdef
mdef2 = $data_armors[$game_party.actors[i].armor2_id].mdef
str2 = $data_armors[$game_party.actors[i].armor2_id].str_plus
dex2 = $data_armors[$game_party.actors[i].armor2_id].dex_plus
agi2 = $data_armors[$game_party.actors[i].armor2_id].agi_plus
int2 = $data_armors[$game_party.actors[i].armor2_id].int_plus
end
when 2
if $data_armors[$game_party.actors[i].armor3_id] != nil
eva2 = $data_armors[$game_party.actors[i].armor3_id].eva
pdef2 = $data_armors[$game_party.actors[i].armor3_id].pdef
mdef2 = $data_armors[$game_party.actors[i].armor3_id].mdef
str2 = $data_armors[$game_party.actors[i].armor3_id].str_plus
dex2 = $data_armors[$game_party.actors[i].armor3_id].dex_plus
agi2 = $data_armors[$game_party.actors[i].armor3_id].agi_plus
int2 = $data_armors[$game_party.actors[i].armor3_id].int_plus
end
when 3
if $data_armors[$game_party.actors[i].armor4_id] != nil
eva2 = $data_armors[$game_party.actors[i].armor4_id].eva
pdef2 = $data_armors[$game_party.actors[i].armor4_id].pdef
mdef2 = $data_armors[$game_party.actors[i].armor4_id].mdef
str2 = $data_armors[$game_party.actors[i].armor4_id].str_plus
dex2 = $data_armors[$game_party.actors[i].armor4_id].dex_plus
agi2 = $data_armors[$game_party.actors[i].armor4_id].agi_plus
int2 = $data_armors[$game_party.actors[i].armor4_id].int_plus
end
end
end
color1 = Color.new(25, 210, 25, 255)
color2 = Color.new(210, 25, 25, 255)
if $game_party.actors[i].equippable?(item)
self.contents.font.color = normal_color
# PDEF
if (pdef1 - pdef2) > 0
self.contents.font.color = color1
elsif (pdef1 - pdef2) < 0
self.contents.font.color = color2
else
self.contents.font.color = normal_color
end
self.contents.draw_text(x + 25, y + 80, 70, 32, (pdef1 - pdef2).to_s, 2)
# MDEF
if (mdef1 - mdef2) > 0
self.contents.font.color = color1
elsif (mdef1 - mdef2) < 0
self.contents.font.color = color2
else
self.contents.font.color = normal_color
end
self.contents.draw_text(x + 25, y + 112, 70, 32, (mdef1 - mdef2).to_s, 2)
# STR
if (str1 - str2) > 0
self.contents.font.color = color1
elsif (str1 - str2) < 0
self.contents.font.color = color2
else
self.contents.font.color = normal_color
end
self.contents.draw_text(x + 125, y + 48, 70, 32, (str1 - str2).to_s, 2)
# DEX
if (dex1 - dex2) > 0
self.contents.font.color = color1
elsif (dex1 - dex2) < 0
self.contents.font.color = color2
else
self.contents.font.color = normal_color
end
self.contents.draw_text(x + 125, y + 80, 70, 32, (dex1 - dex2).to_s, 2)
# AGI
if (agi1 - agi2) > 0
self.contents.font.color = color1
elsif (agi1 - agi2) < 0
self.contents.font.color = color2
else
self.contents.font.color = normal_color
end
self.contents.draw_text(x + 125, y + 112, 70, 32, (agi1 - agi2).to_s, 2)
# INT
if (int1 - int2) > 0
self.contents.font.color = color1
elsif (int1 - int2) < 0
self.contents.font.color = color2
else
self.contents.font.color = normal_color
end
self.contents.draw_text(x + 125, y + 144, 70, 32, (int1 - int2).to_s, 2)
if item.is_a?(RPG::Weapon)
self.contents.font.color = system_color
self.contents.draw_text(x, y + 48, 80, 32, "Atk:")
self.contents.draw_text(x, y + 80, 80, 32, "Wie:")
self.contents.draw_text(x, y + 112, 80, 32, "Res:")
self.contents.draw_text(x + 110, y + 48, 80, 32, "Stk:")
self.contents.draw_text(x + 110, y + 80, 80, 32, "Def:")
self.contents.draw_text(x + 110, y + 112, 80, 32, "Agi:")
self.contents.draw_text(x + 110, y + 144, 80, 32, "Int:")
self.contents.font.color = normal_color
# ATTACK
if (atk1 - atk2) > 0
self.contents.font.color = color1
elsif (atk1 - atk2) < 0
self.contents.font.color = color2
else
self.contents.font.color = normal_color
end
self.contents.draw_text(x + 25, y + 48, 70, 32, (atk1 - atk2).to_s, 2)
# ELSE if armor...
else
self.contents.font.color = system_color
self.contents.draw_text(x, y + 48, 80, 32, "Eva:")
self.contents.draw_text(x, y + 80, 80, 32, "Wie:")
self.contents.draw_text(x, y + 112, 80, 32, "Res:")
self.contents.draw_text(x + 110, y + 48, 80, 32, "Stk:")
self.contents.draw_text(x + 110, y + 80, 80, 32, "Def:")
self.contents.draw_text(x + 110, y + 112, 80, 32, "Agi:")
self.contents.draw_text(x + 110, y + 144, 80, 32, "Int:")
self.contents.font.color = normal_color
if (eva1 - eva2) > 0
self.contents.font.color = color1
elsif (eva1 - eva2) < 0
self.contents.font.color = color2
else
self.contents.font.color = normal_color
end
self.contents.draw_text(x + 25, y + 48, 70, 32, (eva1 - eva2).to_s, 2)
end
else
self.contents.font.color = disabled_color
self.contents.draw_text(x + 10, y + 80, 120, 32, "Nicht ausrüstbar")
self.contents.font.color = normal_color
end
end
end
end
#===============================================================================

# END Window_Shop_Actors
#===============================================================================



#===============================================================================

# Window_Shop_Amount
#===============================================================================

class Window_Shop_Amount < Window_Selectable

attr_accessor :amount

def initialize
super(80, 208, 480, 96)
@item_max = 1
self.contents = Bitmap.new(width - 32, height - 32)
self.visible = false
self.z += 100
@amount = 1
item = $data_items[1]
option_index = 0
refresh(item, option_index)
end

def refresh(item, option_index)
self.contents.clear
if item == nil
return
end
if option_index == nil
return
end
if option_index == 0
self.contents.font.color = system_color
self.contents.draw_text(0, 0, 200, 32, "Wie viele?")
self.contents.font.color = normal_color
if $game_party.gold < (@amount * item.price)
self.contents.font.color = disabled_color
end
bitmap = RPG::Cache.icon(item.icon_name)
opacity = self.contents.font.color == normal_color ? 255 : 128
self.contents.blt(0, 36, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.draw_text(28, 32, 120, 32, item.name)
self.contents.draw_text(335, 32, 10, 32, "x")
self.contents.draw_text(280, 32, 30, 32, @amount.to_s, 2)
self.cursor_rect.set(284, 32, 32, 32)
self.contents.draw_text(370, 32, 70, 32, (@amount * item.price).to_s, 2)
else
self.contents.font.color = system_color
self.contents.draw_text(0, 0, 200, 32, "Wie viele?")
self.contents.font.color = normal_color
bitmap = RPG::Cache.icon(item.icon_name)
opacity = self.contents.font.color == normal_color ? 255 : 128
self.contents.blt(0, 36, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.draw_text(28, 32, 120, 32, item.name)
self.contents.draw_text(335, 32, 10, 32, "x")
self.contents.draw_text(280, 32, 30, 32, @amount.to_s, 2)
self.cursor_rect.set(284, 32, 32, 32)
self.contents.draw_text(370, 32, 70, 32, (@amount * (item.price / 2)).to_s, 2)
end
end
end
#===============================================================================

# END Window_Shop_Amount
#===============================================================================



#===============================================================================

# Scene_Shop
#===============================================================================

class Scene_Shop
def main
@counter = 0
@info_window = Window_Shop_Info.new
@info_window.back_opacity = 255
@option_window = Window_Shop_Option.new
@option_window.back_opacity =255
@gold_window = Window_Shop_Gold.new
@gold_window.back_opacity = 255
@own_window = Window_Shop_Own.new
@own_window.back_opacity = 255
@list_window = Window_Shop_List.new($game_temp.shop_goods)
@list_window.back_opacity = 255
@desc_item_window = Window_Shop_Description_Item.new
@desc_item_window.back_opacity = 255
@desc_equip_window = Window_Shop_Description_Equipment.new
@desc_equip_window.back_opacity = 255
@actor_window = Window_Shop_Actors.new
@actor_window.back_opacity = 255
@amount_window = Window_Shop_Amount.new
@amount_window.back_opacity = 255

Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze

@info_window.dispose
@option_window.dispose
@gold_window.dispose
@own_window.dispose
@list_window.dispose
@desc_item_window.dispose
@desc_equip_window.dispose
@actor_window.dispose
@amount_window.dispose
end

def update
@option_window.update
@gold_window.update
@own_window.update
@list_window.update
@desc_item_window.update
@desc_equip_window.update
@actor_window.update
@amount_window.update

if @option_window.active
update_option
return
end

if @list_window.active
update_list
return
end

if @actor_window.visible
update_actors
return
end

if @amount_window.active and @option_window.index == 0
update_amount
return
end

if @amount_window.active and @option_window.index == 1
update_sell
return
end
end

def update_option
@info_window.refresh(0)
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
return
end
if Input.trigger?(Input::C)
case @option_window.index
when 0
$game_system.se_play($data_system.decision_se)
@list_window.refresh
@option_window.active = false
@list_window.visible = true
@list_window.active = true
@list_window.index = 0
when 1
$game_system.se_play($data_system.decision_se)
@list_window.refresh_sell(@option_window.index)
@option_window.active = false
@list_window.visible = true
@list_window.active = true
@list_window.index = 0
when 2
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
return
end
end
end

def update_list
@info_window.refresh(1)
@item = @list_window.item
if @counter != 1
if @item.is_a?(RPG::Item)
@desc_item_window.refresh(@item)
@counter = 1
else
@desc_equip_window.refresh(@item)
@counter = 1
end
end
@own_window.refresh(@list_window.item)
if Input.trigger?(Input::UP) or Input.trigger?(Input::DOWN) or Input.repeat?(Input::UP) or Input.repeat?(Input::DOWN)
@counter = 0
end
if @item.is_a?(RPG::Item)
if @counter != 1
@desc_item_window.refresh(@item)
@counter = 1
end
@desc_item_window.visible = true
@desc_equip_window.visible = false
else
if @counter != 1
@desc_equip_window.refresh(@item)
@counter = 1
end
@desc_item_window.visible = false
@desc_equip_window.visible = true
end
if Input.trigger?(Input::B)
@counter = 0
$game_system.se_play($data_system.cancel_se)
@desc_item_window.visible = false
@desc_equip_window.visible = false
@desc_item_window.refresh(nil)
@desc_equip_window.refresh(nil)
@option_window.active = true
@list_window.visible = false
@list_window.active = false
@own_window.refresh(nil)
return
end
if Input.trigger?(Input::A)
unless @item.is_a?(RPG::Item)
$game_system.se_play($data_system.decision_se)
@actor_window.refresh(@item)
@actor_window.visible = true
@list_window.active = false
return
else
$game_system.se_play($data_system.buzzer_se)
end
end
if Input.trigger?(Input::C)
if @item == nil or @item.id == 0 or @item.price == 0
$game_system.se_play($data_system.buzzer_se)
return
end
if @option_window.index == 0
case @item
when RPG::Item
if $game_party.item_number(@item.id) >= 99
$game_system.se_play($data_system.buzzer_se)
return
end
when RPG::Weapon
if $game_party.weapon_number(@item.id) >= 99
$game_system.se_play($data_system.buzzer_se)
return
end
when RPG::Armor
if $game_party.armor_number(@item.id) >= 99
$game_system.se_play($data_system.buzzer_se)
return
end
end
end
$game_system.se_play($data_system.decision_se)
@amount_window.visible = true
@amount_window.active = true
@list_window.active = false
return
end
end

def update_actors
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@actor_window.visible = false
@list_window.active = true
end
end

def update_amount
@amount_window.refresh(@item, @option_window.index)
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@amount_window.amount = 1
@amount_window.visible = false
@amount_window.active = false
@list_window.active = true
return
end
if Input.trigger?(Input::C)
if $game_party.gold >= (@amount_window.amount * @item.price)
$game_system.se_play($data_system.decision_se)
$game_party.lose_gold(@amount_window.amount * @item.price)
case @item
when RPG::Item
$game_party.gain_item(@item.id, @amount_window.amount)
when RPG::Weapon
$game_party.gain_weapon(@item.id, @amount_window.amount)
when RPG::Armor
$game_party.gain_armor(@item.id, @amount_window.amount)
end
@gold_window.refresh
@amount_window.amount = 1
@amount_window.visible = false
@amount_window.active = false
@list_window.active = true
@list_window.refresh
return
else
$game_system.se_play($data_system.buzzer_se)
end
end
if Input.trigger?(Input::LEFT)
$game_system.se_play($data_system.cursor_se)
@amount_window.amount -= 1
if @amount_window.amount == 0
@amount_window.amount = 1
end
return
end
if Input.trigger?(Input::RIGHT)
$game_system.se_play($data_system.cursor_se)
@amount_window.amount += 1
case @item
when RPG::Item
if ($game_party.item_number(@item.id) + @amount_window.amount) > 99
@amount_window.amount = (99 - $game_party.item_number(@item.id))
end
when RPG::Weapon
if ($game_party.weapon_number(@item.id) + @amount_window.amount) > 99
@amount_window.amount = (99 - $game_party.weapon_number(@item.id))
end
when RPG::Armor
if ($game_party.armor_number(@item.id) + @amount_window.amount) > 99
@amount_window.amount = (99 - $game_party.armor_number(@item.id))
end
end
return
end
if Input.trigger?(Input::UP)
$game_system.se_play($data_system.cursor_se)
@amount_window.amount += 10
case @item
when RPG::Item
if ($game_party.item_number(@item.id) + @amount_window.amount) > 99
@amount_window.amount = (99 - $game_party.item_number(@item.id))
end
when RPG::Weapon
if ($game_party.weapon_number(@item.id) + @amount_window.amount) > 99
@amount_window.amount = (99 - $game_party.weapon_number(@item.id))
end
when RPG::Armor
if ($game_party.armor_number(@item.id) + @amount_window.amount) > 99
@amount_window.amount = (99 - $game_party.armor_number(@item.id))
end
end
return
end
if Input.trigger?(Input::DOWN)
$game_system.se_play($data_system.cursor_se)
@amount_window.amount -= 10
if @amount_window.amount < 1
@amount_window.amount = 1
end
return
end
end

def update_sell
@amount_window.refresh(@item, @option_window.index)
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@amount_window.amount = 1
@amount_window.visible = false
@amount_window.active = false
@list_window.active = true
return
end
if Input.trigger?(Input::C)
if @item.price == 0
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
case @item
when RPG::Item
$game_party.gain_gold(@amount_window.amount * (@item.price / 2))
$game_party.lose_item(@item.id, @amount_window.amount)
when RPG::Weapon
$game_party.gain_gold(@amount_window.amount * (@item.price / 2))
$game_party.lose_weapon(@item.id, @amount_window.amount)
when RPG::Armor
$game_party.gain_gold(@amount_window.amount * (@item.price / 2))
$game_party.lose_armor(@item.id, @amount_window.amount)
end
@gold_window.refresh
@amount_window.amount = 1
@amount_window.visible = false
@amount_window.active = false
@list_window.active = true
@list_window.refresh_sell(@option_window.index)
@desc_equip_window.refresh(nil)
@desc_item_window.refresh(nil)
end
if Input.trigger?(Input::LEFT)
$game_system.se_play($data_system.cursor_se)
@amount_window.amount -= 1
if @amount_window.amount < 1
@amount_window.amount = 1
end
end
if Input.trigger?(Input::RIGHT)
$game_system.se_play($data_system.cursor_se)
case @item
when RPG::Item
@amount_window.amount += 1
if @amount_window.amount > $game_party.item_number(@item.id)
@amount_window.amount = $game_party.item_number(@item.id)
end
when RPG::Weapon
@amount_window.amount += 1
if @amount_window.amount > $game_party.weapon_number(@item.id)
@amount_window.amount = $game_party.weapon_number(@item.id)
end
when RPG::Armor
@amount_window.amount += 1
if @amount_window.amount > $game_party.armor_number(@item.id)
@amount_window.amount = $game_party.armor_number(@item.id)
end
end
end
if Input.trigger?(Input::UP)
$game_system.se_play($data_system.cursor_se)
case @item
when RPG::Item
@amount_window.amount += 10
if @amount_window.amount > $game_party.item_number(@item.id)
@amount_window.amount = $game_party.item_number(@item.id)
end
when RPG::Weapon
@amount_window.amount += 10
if @amount_window.amount > $game_party.weapon_number(@item.id)
@amount_window.amount = $game_party.weapon_number(@item.id)
end
when RPG::Armor
@amount_window.amount += 10
if @amount_window.amount > $game_party.armor_number(@item.id)
@amount_window.amount = $game_party.armor_number(@item.id)
end
end
end
if Input.trigger?(Input::DOWN)
$game_system.se_play($data_system.cursor_se)
@amount_window.amount -= 10
if @amount_window.amount < 1
@amount_window.amount = 1
end
end
end
end

_________________
Bild


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 

Alle Zeiten sind UTC + 1 Stunde


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de