~Site
Accueil
Forum
Admin

~Base de scripts
Scripts de base
Scripts Menu
Scripts Combat
Scripts Systθme
Scripts Modifiιs

Scripts de Base
Game_Temp
Game_System
Game_Switches
Game_Variables
Game_SelfSwitches
Game_Screen
Game_Picture
Game_Battler 1
Game_Battler 2
Game_Battler 3
Game_BattleAction
Game_Actor
Game_Enemy
Game_Actors
Game_Party
Game_Troop
Game_Map
Game_CommonEvent
Game_Character 1
Game_Character 2
Game_Character 3
Game_Event
Game_Player
Sprite_Character
Sprite_Battler
Sprite_Picture
Sprite_Timer
Spriteset_Map
Spriteset_Battle
Window_Base
Window_Selectable
Window_Command
Window_Help
Window_Gold
Window_PlayTime
Window_Steps
Window_MenuStatus
Window_Item
Window_Skill
Window_SkillStatus
Window_Target
Window_EquipLeft
Window_EquipRight
Window_EquipItem
Window_Status
Window_SaveFile
Window_ShopCommand
Window_ShopBuy
Window_ShopSell
Window_ShopNumber
Window_ShopStatus
Window_NameEdit
Window_NameInput
Window_InputNumber
Window_Message
Window_PartyCommand
Window_BattleStatus
Window_BattleResult
Window_DebugLeft
Window_DebugRight
Window_Dataset
Arrow_Base
Arrow_Enemy
Arrow_Actor
Interpreter 1
Interpreter 2
Interpreter 3
Interpreter 4
Interpreter 5
Interpreter 6
Interpreter 7
Scene_Title
Scene_Map
Scene_Menu
Scene_Item
Scene_Skill
Scene_Equip
Scene_Status
Scene_File
Scene_Save
Scene_Load
Scene_End
Scene_Battle 1
Scene_Battle 2
Scene_Battle 3
Scene_Battle 4
Scene_Shop
Scene_Name
Scene_Gameover
Scene_Debug
Main


Scene_Shop ::: postι le 2006-02-16 @ 10:28:00
Auteur: Yukihiro matsumoto

#============================================
# ‘ Scene_Shop
#----------------------------------------------
# @ƒVƒ‡ƒbƒv‰ζ–ʂ̏ˆ—‚πs‚€ƒNƒ‰ƒX‚Ε‚·B
#============================================

class Scene_Shop
#------------------------------------------
# œ ƒƒCƒ“ˆ—
#------------------------------------------
def main
# ƒwƒ‹ƒvƒEƒBƒ“ƒhƒE‚πμ¬
@help_window = Window_Help.new
# ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚πμ¬
@command_window = Window_ShopCommand.new
# ƒS[ƒ‹ƒhƒEƒBƒ“ƒhƒE‚πμ¬
@gold_window = Window_Gold.new
@gold_window.x = 480
@gold_window.y = 64
# ƒ_ƒ~[ƒEƒBƒ“ƒhƒE‚πμ¬
@dummy_window = Window_Base.new(0, 128, 640, 352)
# w“όƒEƒBƒ“ƒhƒE‚πμ¬
@buy_window = Window_ShopBuy.new($game_temp.shop_goods)
@buy_window.active = false
@buy_window.visible = false
@buy_window.help_window = @help_window
# ”„‹pƒEƒBƒ“ƒhƒE‚πμ¬
@sell_window = Window_ShopSell.new
@sell_window.active = false
@sell_window.visible = false
@sell_window.help_window = @help_window
# ŒΒ”“ό—ΝƒEƒBƒ“ƒhƒE‚πμ¬
@number_window = Window_ShopNumber.new
@number_window.active = false
@number_window.visible = false
# ƒXƒe[ƒ^ƒXƒEƒBƒ“ƒhƒE‚πμ¬
@status_window = Window_ShopStatus.new
@status_window.visible = false
# ƒgƒ‰ƒ“ƒWƒVƒ‡ƒ“Žΐs
Graphics.transition
# ƒƒCƒ“ƒ‹[ƒv
loop do
# ƒQ[ƒ€‰ζ–Κ‚πXV
Graphics.update
# “ό—͏ξ•ρ‚πXV
Input.update
# ƒtƒŒ[ƒ€XV
update
# ‰ζ–Κ‚ͺΨ‚θ‘Φ‚ν‚Α‚½‚烋[ƒv‚π’†’f
if $scene != self
break
end
end
# ƒgƒ‰ƒ“ƒWƒVƒ‡ƒ“€”υ
Graphics.freeze
# ƒEƒBƒ“ƒhƒE‚π‰π•ϊ
@help_window.dispose
@command_window.dispose
@gold_window.dispose
@dummy_window.dispose
@buy_window.dispose
@sell_window.dispose
@number_window.dispose
@status_window.dispose
end
#------------------------------------------
# œ ƒtƒŒ[ƒ€XV
#------------------------------------------
def update
# ƒEƒBƒ“ƒhƒE‚πXV
@help_window.update
@command_window.update
@gold_window.update
@dummy_window.update
@buy_window.update
@sell_window.update
@number_window.update
@status_window.update
# ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ͺƒAƒNƒeƒBƒu‚̏ꍇ: update_command ‚πŒΔ‚Τ
if @command_window.active
update_command
return
end
# w“όƒEƒBƒ“ƒhƒE‚ͺƒAƒNƒeƒBƒu‚̏ꍇ: update_buy ‚πŒΔ‚Τ
if @buy_window.active
update_buy
return
end
# ”„‹pƒEƒBƒ“ƒhƒE‚ͺƒAƒNƒeƒBƒu‚̏ꍇ: update_sell ‚πŒΔ‚Τ
if @sell_window.active
update_sell
return
end
# ŒΒ”“ό—ΝƒEƒBƒ“ƒhƒE‚ͺƒAƒNƒeƒBƒu‚̏ꍇ: update_number ‚πŒΔ‚Τ
if @number_window.active
update_number
return
end
end
#------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ͺƒAƒNƒeƒBƒu‚̏ꍇ)
#------------------------------------------
def update_command
# B ƒ{ƒ^ƒ“‚ͺ‰Ÿ‚³‚κ‚½κ‡
if Input.trigger?(Input::B)
# ƒLƒƒƒ“ƒZƒ‹ SE ‚π‰‰‘t
$game_system.se_play($data_system.cancel_se)
# ƒ}ƒbƒv‰ζ–ʂɐ؂θ‘Φ‚¦
$scene = Scene_Map.new
return
end
# C ƒ{ƒ^ƒ“‚ͺ‰Ÿ‚³‚κ‚½κ‡
if Input.trigger?(Input::C)
# ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ΜƒJ[ƒƒ‹ˆΚ’u‚Ε•ͺŠς
case @command_window.index
when 0 # w“ό‚·‚ι
# Œˆ’θ SE ‚π‰‰‘t
$game_system.se_play($data_system.decision_se)
# ƒEƒBƒ“ƒhƒE‚̏σ‘Τ‚πw“όƒ‚[ƒh‚Φ
@command_window.active = false
@dummy_window.visible = false
@buy_window.active = true
@buy_window.visible = true
@buy_window.refresh
@status_window.visible = true
when 1 # ”„‹p‚·‚ι
# Œˆ’θ SE ‚π‰‰‘t
$game_system.se_play($data_system.decision_se)
# ƒEƒBƒ“ƒhƒE‚̏σ‘Τ‚π”„‹pƒ‚[ƒh‚Φ
@command_window.active = false
@dummy_window.visible = false
@sell_window.active = true
@sell_window.visible = true
@sell_window.refresh
when 2 # ‚β‚ί‚ι
# Œˆ’θ SE ‚π‰‰‘t
$game_system.se_play($data_system.decision_se)
# ƒ}ƒbƒv‰ζ–ʂɐ؂θ‘Φ‚¦
$scene = Scene_Map.new
end
return
end
end
#------------------------------------------
# œ ƒtƒŒ[ƒ€XV (w“όƒEƒBƒ“ƒhƒE‚ͺƒAƒNƒeƒBƒu‚̏ꍇ)
#------------------------------------------
def update_buy
# ƒXƒe[ƒ^ƒXƒEƒBƒ“ƒhƒE‚ΜƒAƒCƒeƒ€‚πέ’θ
@status_window.item = @buy_window.item
# B ƒ{ƒ^ƒ“‚ͺ‰Ÿ‚³‚κ‚½κ‡
if Input.trigger?(Input::B)
# ƒLƒƒƒ“ƒZƒ‹ SE ‚π‰‰‘t
$game_system.se_play($data_system.cancel_se)
# ƒEƒBƒ“ƒhƒE‚̏σ‘Τ‚π‰Šϊƒ‚[ƒh‚Φ
@command_window.active = true
@dummy_window.visible = true
@buy_window.active = false
@buy_window.visible = false
@status_window.visible = false
@status_window.item = nil
# ƒwƒ‹ƒvƒeƒLƒXƒg‚πΑ‹Ž
@help_window.set_text("")
return
end
# C ƒ{ƒ^ƒ“‚ͺ‰Ÿ‚³‚κ‚½κ‡
if Input.trigger?(Input::C)
# ƒAƒCƒeƒ€‚πŽζ“Ύ
@item = @buy_window.item
# ƒAƒCƒeƒ€‚ͺ–³Œψ‚̏ꍇA‚ά‚½‚Ν‰ΏŠi‚ͺŠŽ‹ΰ‚ζ‚θγ‚̏ꍇ
if @item == nil or @item.price > $game_party.gold
# ƒuƒU[ SE ‚π‰‰‘t
$game_system.se_play($data_system.buzzer_se)
return
end
# ƒAƒCƒeƒ€‚ΜŠŽ”‚πŽζ“Ύ
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
# ‚·‚Ε‚Ι 99 ŒΒŠŽ‚΅‚Δ‚’‚ικ‡
if number == 99
# ƒuƒU[ SE ‚π‰‰‘t
$game_system.se_play($data_system.buzzer_se)
return
end
# Œˆ’θ SE ‚π‰‰‘t
$game_system.se_play($data_system.decision_se)
# Ε‘εw“ό‰Β”ŒΒ”‚πŒvŽZ
max = @item.price == 0 ? 99 : $game_party.gold / @item.price
max = [max, 99 - number].min
# ƒEƒBƒ“ƒhƒE‚̏σ‘Τ‚πŒΒ”“ό—Νƒ‚[ƒh‚Φ
@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
#------------------------------------------
# œ ƒtƒŒ[ƒ€XV (”„‹pƒEƒBƒ“ƒhƒE‚ͺƒAƒNƒeƒBƒu‚̏ꍇ)
#------------------------------------------
def update_sell
# B ƒ{ƒ^ƒ“‚ͺ‰Ÿ‚³‚κ‚½κ‡
if Input.trigger?(Input::B)
# ƒLƒƒƒ“ƒZƒ‹ SE ‚π‰‰‘t
$game_system.se_play($data_system.cancel_se)
# ƒEƒBƒ“ƒhƒE‚̏σ‘Τ‚π‰Šϊƒ‚[ƒh‚Φ
@command_window.active = true
@dummy_window.visible = true
@sell_window.active = false
@sell_window.visible = false
@status_window.item = nil
# ƒwƒ‹ƒvƒeƒLƒXƒg‚πΑ‹Ž
@help_window.set_text("")
return
end
# C ƒ{ƒ^ƒ“‚ͺ‰Ÿ‚³‚κ‚½κ‡
if Input.trigger?(Input::C)
# ƒAƒCƒeƒ€‚πŽζ“Ύ
@item = @sell_window.item
# ƒXƒe[ƒ^ƒXƒEƒBƒ“ƒhƒE‚ΜƒAƒCƒeƒ€‚πέ’θ
@status_window.item = @item
# ƒAƒCƒeƒ€‚ͺ–³Œψ‚̏ꍇA‚ά‚½‚Ν‰ΏŠi‚ͺ 0 (”„‹p•s‰Β) ‚̏ꍇ
if @item == nil or @item.price == 0
# ƒuƒU[ SE ‚π‰‰‘t
$game_system.se_play($data_system.buzzer_se)
return
end
# Œˆ’θ SE ‚π‰‰‘t
$game_system.se_play($data_system.decision_se)
# ƒAƒCƒeƒ€‚ΜŠŽ”‚πŽζ“Ύ
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
# Ε‘ε”„‹pŒΒ” = ƒAƒCƒeƒ€‚ΜŠŽ”
max = number
# ƒEƒBƒ“ƒhƒE‚̏σ‘Τ‚πŒΒ”“ό—Νƒ‚[ƒh‚Φ
@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
#------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ŒΒ”“ό—ΝƒEƒBƒ“ƒhƒE‚ͺƒAƒNƒeƒBƒu‚̏ꍇ)
#------------------------------------------
def update_number
# B ƒ{ƒ^ƒ“‚ͺ‰Ÿ‚³‚κ‚½κ‡
if Input.trigger?(Input::B)
# ƒLƒƒƒ“ƒZƒ‹ SE ‚π‰‰‘t
$game_system.se_play($data_system.cancel_se)
# ŒΒ”“ό—ΝƒEƒBƒ“ƒhƒE‚π”ρƒAƒNƒeƒBƒuE•s‰ΒŽ‹‚ɐݒθ
@number_window.active = false
@number_window.visible = false
# ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ΜƒJ[ƒƒ‹ˆΚ’u‚Ε•ͺŠς
case @command_window.index
when 0 # w“ό‚·‚ι
# ƒEƒBƒ“ƒhƒE‚̏σ‘Τ‚πw“όƒ‚[ƒh‚Φ
@buy_window.active = true
@buy_window.visible = true
when 1 # ”„‹p‚·‚ι
# ƒEƒBƒ“ƒhƒE‚̏σ‘Τ‚π”„‹pƒ‚[ƒh‚Φ
@sell_window.active = true
@sell_window.visible = true
@status_window.visible = false
end
return
end
# C ƒ{ƒ^ƒ“‚ͺ‰Ÿ‚³‚κ‚½κ‡
if Input.trigger?(Input::C)
# ƒVƒ‡ƒbƒv SE ‚π‰‰‘t
$game_system.se_play($data_system.shop_se)
# ŒΒ”“ό—ΝƒEƒBƒ“ƒhƒE‚π”ρƒAƒNƒeƒBƒuE•s‰ΒŽ‹‚ɐݒθ
@number_window.active = false
@number_window.visible = false
# ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ΜƒJ[ƒƒ‹ˆΚ’u‚Ε•ͺŠς
case @command_window.index
when 0 # w“ό‚·‚ι
# w“όˆ—
$game_party.lose_gold(@number_window.number * @item.price)
case @item
when RPG::Item
$game_party.gain_item(@item.id, @number_window.number)
when RPG::Weapon
$game_party.gain_weapon(@item.id, @number_window.number)
when RPG::Armor
$game_party.gain_armor(@item.id, @number_window.number)
end
# ŠeƒEƒBƒ“ƒhƒE‚πƒŠƒtƒŒƒbƒVƒ…
@gold_window.refresh
@buy_window.refresh
@status_window.refresh
# ƒEƒBƒ“ƒhƒE‚̏σ‘Τ‚πw“όƒ‚[ƒh‚Φ
@buy_window.active = true
@buy_window.visible = true
when 1 # ”„‹p‚·‚ι
# ”„‹pˆ—
$game_party.gain_gold(@number_window.number * (@item.price / 2))
case @item
when RPG::Item
$game_party.lose_item(@item.id, @number_window.number)
when RPG::Weapon
$game_party.lose_weapon(@item.id, @number_window.number)
when RPG::Armor
$game_party.lose_armor(@item.id, @number_window.number)
end
# ŠeƒEƒBƒ“ƒhƒE‚πƒŠƒtƒŒƒbƒVƒ…
@gold_window.refresh
@sell_window.refresh
@status_window.refresh
# ƒEƒBƒ“ƒhƒE‚̏σ‘Τ‚π”„‹pƒ‚[ƒh‚Φ
@sell_window.active = true
@sell_window.visible = true
@status_window.visible = false
end
return
end
end
end
Design By RaZ © Watery Build 2005