http://www.dubealex.com/asylum/index.php?showtopic=9362
간단한 여관스크립트입니다. 호출법은 이벤트 명령->스크립트에서:
a = #여관 비용
b = #주인의 인사말('어서 오세요~ 하룻밤에 $$$입니다. 쉬어가시겠습니까?')
c = #작별인사('안녕히 가세요~')
call_inn(a,b,c)
호출 예:
a = 300
b = '어서 오십시오. 하룻밤 자는데 300G입니다. 자고 가시겠습니까?'
c = '이용해 주셔서 감사합니다.'
call_inn(a,b,c)
#==============================================================================
# ** Inn
#------------------------------------------------------------------------------
# Tsunokiette
# 2
# 2006-06-12
#
# Edited by Zeriab
# 2006-06-13
#==============================================================================
# Quick Call
def call_inn(a,b,c)
$scene = Inn.new(a,b,c)
end
#=================================================================
# ** Scene Inn
#=================================================================
class Inn
#=================================================================
# * Initialization
#-----------------------------------------------------------------
# Cost = Ammount of Money to Charge.
# Message A = Message to say hello and ask if you want to stay.
# Message B = Message to say once you've stayed and are leaving.
#=================================================================
def initialize(cost,message_a,message_b)
@cost = cost
@hello = message_a
@goodbye = message_b
end
#=================================================================
# * Main Proccessing
#=================================================================
def main
@bitmap = Spriteset_Map.new
@gold = Window_Gold.new
@gold.x = (640 - @gold.width)
@gold.y = 0
@choice = Window_Command.new(200,['Yes','No'])
width = @choice.contents.text_size('Yes').width + 40
@choice.dispose
@choice = Window_Command.new(width,['Yes','No'])
@choice.width = width
@choice.y = 214
@choice.index = 0
@message = Window_Message.new
$game_temp.message_text = @hello.dup
@message.visible = true
# Execute transition
Graphics.transition
loop do
Graphics.update
Input.update
@choice.update
@bitmap.update
$game_temp.message_text = @hello.dup
@message.refresh
@message.update
if Input.trigger?(Input::C)
case @choice.index
when 0
if $game_party.gold >= @cost
for actor in $game_party.actors
actor.hp = actor.maxhp
actor.sp = actor.maxsp
end
@gold.visible = false
@message.visible = false
@choice.visible = false
@choice.active = false
$game_party.lose_gold(@cost)
@gold.refresh
tone1 = Tone.new(-255,-255,-255,255)
tone2 = Tone.new(0,0,0,0)
$game_screen.start_tone_change(tone1, 20)
wait = 0
max_wait = 165
while wait < max_wait do
if wait == 20
$game_system.me_play(RPG::AudioFile.new('014-Inn01'))
end
if wait == max_wait - 20
$game_screen.start_tone_change(tone2, 20)
end
wait += 1
$game_screen.update
Graphics.update
@bitmap.update
end
@gold.visible = true
@message.visible = true
else
@choice.visible = false
@choice.active = false
@goodbye = "It appears you don't have enough money."
end
end
break
elsif Input.trigger?(Input::B)
break
end
end
@choice.visible = false
@choice.active = false
$game_temp.message_text = @goodbye.dup
loop do
Graphics.update
Input.update
@bitmap.update
$game_temp.message_text = @goodbye.dup
@message.update
@message.refresh
if Input.trigger?(Input::C) or Input.trigger?(Input::B)
@message.visible = false
break
end
end
@gold.dispose
@message.dispose
@choice.dispose
@bitmap.dispose
$scene = Scene_Map.new
end
end
간단한 여관스크립트입니다. 호출법은 이벤트 명령->스크립트에서:
a = #여관 비용
b = #주인의 인사말('어서 오세요~ 하룻밤에 $$$입니다. 쉬어가시겠습니까?')
c = #작별인사('안녕히 가세요~')
call_inn(a,b,c)
호출 예:
a = 300
b = '어서 오십시오. 하룻밤 자는데 300G입니다. 자고 가시겠습니까?'
c = '이용해 주셔서 감사합니다.'
call_inn(a,b,c)
#==============================================================================
# ** Inn
#------------------------------------------------------------------------------
# Tsunokiette
# 2
# 2006-06-12
#
# Edited by Zeriab
# 2006-06-13
#==============================================================================
# Quick Call
def call_inn(a,b,c)
$scene = Inn.new(a,b,c)
end
#=================================================================
# ** Scene Inn
#=================================================================
class Inn
#=================================================================
# * Initialization
#-----------------------------------------------------------------
# Cost = Ammount of Money to Charge.
# Message A = Message to say hello and ask if you want to stay.
# Message B = Message to say once you've stayed and are leaving.
#=================================================================
def initialize(cost,message_a,message_b)
@cost = cost
@hello = message_a
@goodbye = message_b
end
#=================================================================
# * Main Proccessing
#=================================================================
def main
@bitmap = Spriteset_Map.new
@gold = Window_Gold.new
@gold.x = (640 - @gold.width)
@gold.y = 0
@choice = Window_Command.new(200,['Yes','No'])
width = @choice.contents.text_size('Yes').width + 40
@choice.dispose
@choice = Window_Command.new(width,['Yes','No'])
@choice.width = width
@choice.y = 214
@choice.index = 0
@message = Window_Message.new
$game_temp.message_text = @hello.dup
@message.visible = true
# Execute transition
Graphics.transition
loop do
Graphics.update
Input.update
@choice.update
@bitmap.update
$game_temp.message_text = @hello.dup
@message.refresh
@message.update
if Input.trigger?(Input::C)
case @choice.index
when 0
if $game_party.gold >= @cost
for actor in $game_party.actors
actor.hp = actor.maxhp
actor.sp = actor.maxsp
end
@gold.visible = false
@message.visible = false
@choice.visible = false
@choice.active = false
$game_party.lose_gold(@cost)
@gold.refresh
tone1 = Tone.new(-255,-255,-255,255)
tone2 = Tone.new(0,0,0,0)
$game_screen.start_tone_change(tone1, 20)
wait = 0
max_wait = 165
while wait < max_wait do
if wait == 20
$game_system.me_play(RPG::AudioFile.new('014-Inn01'))
end
if wait == max_wait - 20
$game_screen.start_tone_change(tone2, 20)
end
wait += 1
$game_screen.update
Graphics.update
@bitmap.update
end
@gold.visible = true
@message.visible = true
else
@choice.visible = false
@choice.active = false
@goodbye = "It appears you don't have enough money."
end
end
break
elsif Input.trigger?(Input::B)
break
end
end
@choice.visible = false
@choice.active = false
$game_temp.message_text = @goodbye.dup
loop do
Graphics.update
Input.update
@bitmap.update
$game_temp.message_text = @goodbye.dup
@message.update
@message.refresh
if Input.trigger?(Input::C) or Input.trigger?(Input::B)
@message.visible = false
break
end
end
@gold.dispose
@message.dispose
@choice.dispose
@bitmap.dispose
$scene = Scene_Map.new
end
end