=begin 简单说明: 【考虑到帮助窗口会盖住后边文本】
头像素材名称就是角色ID.png的图像 【所以,在系统中按下F5,会隐藏】
例如:阿尔西斯的头像素材名就该是 “1.png” 【帮助窗口(包括角色信息窗口和】
也可在脚本631行修改。 【一般的命令选择行窗口) 】
融入了多货币系统,初始值在脚本81行修改
如果脚本有BUG欢迎联系作者薄凉看客。
=end
# ------------------------------------------
# * Scene_Battle
# ------------------------------------------
class Scene_Battle
# ------------------------------------------
# * battle_end
# ------------------------------------------
def battle_end(result)#(0:胜利 1:失败 2:逃跑)
# 清除战斗中标志
$game_temp.in_battle = false
# 清除全体同伴的行动
$game_party.clear_actions
# 解除战斗用状态
for actor in $game_party.actors
actor.remove_states_battle
end
# 清除敌人
$game_troop.enemies.clear
# 调用战斗返回
if $game_temp.battle_proc != nil
$game_temp.battle_proc.call(result)
$game_temp.battle_proc = nil
end
# 处理战斗场次
if $game_temp.actors != []
for i in $game_temp.actors
id = i.id
time = $game_temp.actors_time_2[id] -= 1
if time == 0
$game_party.remove_actor(id)
$game_temp.actors_time_2[id] = $game_temp.actors_time[id]
end
end
$game_temp.actors = []
for i in 19..39
if i == 29
next
end
if $game_party.actors.include?($game_actors[i])
$game_temp.actors << $game_actors[i]
end
end
end
# 切换到地图画面
$scene = Scene_Map.new
end
end
# ------------------------------------------
# * Game_Temp
# ------------------------------------------
class Game_Temp
# ------------------------------------------
# * $gold
# ------------------------------------------
attr_accessor :gold_bule
attr_accessor :gold_red
attr_accessor :gold_yellow
attr_accessor :gold_green
# ------------------------------------------
# * $ actors
# ------------------------------------------
attr_accessor :actors#队伍中雇佣角色(actors)的数组
attr_accessor :actors_2#仓库中雇佣角色(actors)的数组
# ------------------------------------------
# * $ 剩余战斗次数
# ------------------------------------------
attr_accessor :actors_time
attr_accessor :actors_time_2
# ------------------------------------------
# * initialize
# ------------------------------------------
alias initialize_actor_shop_old_kk_ initialize
def initialize
@gold_bule = 12000
@gold_red = 12000
@gold_yellow = 12000
@gold_green = 12000
@actors = []
@actors_2 = []
# 战斗场次在这里定义,前一个数字是ID后一个数字是可参与战斗场次数。
# 要改两次,下面@actors_time_2也要改,
@actors_time = {29=>1, 30=>2, 31=>3, 32=>4, 33=>5, 34=>1, 35=>2, 36=>3,
37=>4, 38=>5, 39=>1, 40=>2}
@actors_time_2 = {29=>1, 30=>2, 31=>3, 32=>4, 33=>5, 34=>1, 35=>2, 36=>3,
37=>4, 38=>5, 39=>1, 40=>2}
initialize_actor_shop_old_kk_
end
end
# ------------------------------------------
# * ACTORSHOP
# ------------------------------------------
module ACTORSHOP
# ------------------------------------------
# * actors
# ------------------------------------------
# 说明:
# ITEM = [数组1, 数组2, ``````, 数组N]
# 数组 = [角色ID, 雇佣酬金, 酬金类型, 颜色(含天气背景), 美化图标(文件名),
# 图标后的显示的文字]
# ------------------------------------------
ITEM = [[29, 100, 0, 7, "深渊の呼唤.PNG", "深渊呼唤"],
[30, 200, 1, 1, "光明神の长枪.PNG", "光明神"],
[31, 300, 2, 2, "次元双刃斧.png", "次元双刃"],
[32, 400, 3, 3, "超级烈焰大炮.PNG", "超级烈焰"],
[33, 500, 0, 4, "深海の潜伏者.png", "深海潜伏者"],
[34, 600, 1, 5, "闪耀の拉克丝手枪.png", "闪耀拉克丝"],
[35, 700, 2, 6, "慈悲者の法杖.png", "慈悲者"],
[36, 800, 3, 7, "迷惑の黑暗圣杖.png", "迷惑黑暗"],
[37, 900, 0, 1, "凶残の撕裂者.png", "凶残撕裂者"],
[38, 1000, 1, 2, "b霍波尔斯特の次元盾(三阶).PNG", "霍波尔斯特"],
[39, 1100, 0, 7, "深渊の呼唤.PNG", "深渊呼唤"],
[40, 1200, 1, 1, "光明神の长枪.PNG", "光明神"]]
end
# ------------------------------------------
# * include module and @@
# ------------------------------------------
class Actor_Shop_Command < Window_Selectable
include ACTORSHOP
@@item = ACTORSHOP::ITEM
end
class Actor_Shop_Message < Window_Base
include ACTORSHOP
@@item = ACTORSHOP::ITEM
end
class Scene_Actor_Shop
include ACTORSHOP
@@item = ACTORSHOP::ITEM
end
# ------------------------------------------
# * Window_HelpCommand # 一般命令窗体帮助
# ------------------------------------------
class Window_HelpCommand < Window_Base
# ------------------------------------------
# * initialize
# ------------------------------------------
def initialize
super(0, 0, 170, 96)
self.opacity= 0
self.contents_opacity= 0
self.z = 9998
self.contents = Bitmap.new(width - 32, height - 32)
end
# ------------------------------------------
# * set_text
# ------------------------------------------
def set_text(text1, text2, x, y)
if text1 != @text1 or x = @x or y = @y
self.contents.clear
self.x = x
self.y = y
self.contents.font.size = 15
self.contents.draw_text(10, 0, width - 8, 32, text1)
self.contents.draw_text(10, 32, width - 8, 32, text2)
@text1 = text1
@text2 = text2
@x = x
@y = y
@actor = nil
end
self.visible = true
end
end
# ------------------------------------------
# * Window_Selectable # 命令窗体以及左右选
# ------------------------------------------
class Window_Selectable < Window_Base
# ------------------------------------------
# * update
# ------------------------------------------
def update
super
# 可以移动光标的情况下
if self.active and @item_max > 0 and @index >= 0
# 方向键下被按下的情况下
if Input.repeat?(Input::DOWN)
# 列数不是 1 并且不与方向键下的按下状态重复的情况、
# 或光标位置在(项目数-列数)之前的情况下
if (@column_max == 1 and Input.trigger?(Input::DOWN)) or
@index < @item_max - @column_max
# 光标向下移动
$game_system.se_play($data_system.cursor_se)
@index = (@index + @column_max) % @item_max
end
end
# 方向键上被按下的情况下
if Input.repeat?(Input::UP)
# 列数不是 1 并且不与方向键下的按下状态重复的情况、
# 或光标位置在列之后的情况下
if (@column_max == 1 and Input.trigger?(Input::UP)) or
@index >= @column_max
# 光标向上移动
$game_system.se_play($data_system.cursor_se)
@index = (@index - @column_max + @item_max) % @item_max
end
end
# 方向键右被按下的情况下
if Input.repeat?(Input::RIGHT)
# 列数为 2 以上并且、光标位置在(项目数 - 1)之前的情况下
if @column_max >= 2# and @index < @item_max - 1
if @index < @item_max - 1
# 光标向右移动
$game_system.se_play($data_system.cursor_se)
@index += 1
else
@index = 0
end
end
end
# 方向键左被按下的情况下
if Input.repeat?(Input::LEFT)
# 列数为 2 以上并且、光标位置在 0 之后的情况下
if @column_max >= 2# and @index > 0
if @index > 0
# 光标向左移动
$game_system.se_play($data_system.cursor_se)
@index -= 1
else
@index = @item_max - 1
end
end
end
# R 键被按下的情况下
if Input.repeat?(Input::R)
# 显示的最后行在数据中最后行上方的情况下
if self.top_row + (self.page_row_max - 1) < (self.row_max - 1)
# 光标向后移动一页
$game_system.se_play($data_system.cursor_se)
@index = [@index + self.page_item_max, @item_max - 1].min
self.top_row += self.page_row_max
end
end
# L 键被按下的情况下
if Input.repeat?(Input::L)
# 显示的开头行在位置 0 之后的情况下
if self.top_row > 0
# 光标向前移动一页
$game_system.se_play($data_system.cursor_se)
@index = [@index - self.page_item_max, 0].max
self.top_row -= self.page_row_max
end
end
end
# 刷新帮助文本 (update_help 定义了继承目标)
if self.active and @help_window != nil
update_help
end
# 刷新光标矩形
update_cursor_rect
end
end
# ------------------------------------------
# * Window_Command_Shop
# ------------------------------------------
class Window_Command_Shop < Window_Selectable
# ------------------------------------------
# * initialize
# ------------------------------------------
def initialize(width, commands, column_max = 1, size = 22)
super(0, 0, width, 0)
if column_max == 1
self.height = commands.size * 32 + 32
else
self.height = 64
end
@item_max = commands.size
@commands = commands
@column_max = column_max
@size = size
self.contents = Bitmap.new(width - 32, @item_max * 32)
refresh
self.index = 0
end
# ------------------------------------------
# * refresh
# ------------------------------------------
def refresh
self.contents.clear
for i in 0...@item_max
if @column_max != 1
if i == self.index
color = text_color(2)
else
color = normal_color
end
else
color = normal_color
end
draw_item(i, color)
end
end
# ------------------------------------------
# * draw_item
# ------------------------------------------
def draw_item(index, color)
self.contents.font.color = color
self.contents.font.size = @size
if @column_max == 1
self.contents.draw_text(4, 32 * index, width - 8, 32, @commands[index])
else
if @size == 15
self.contents.draw_text(
width / @column_max * index + 50, 0, width - 8, 32, @commands[index])
else
self.contents.draw_text(
width / @column_max * index + 20, 0, width - 8, 32, @commands[index])
end
end
end
# ------------------------------------------
# * disable_item
# ------------------------------------------
def disable_item(index)
draw_item(index, disabled_color)
end
# ------------------------------------------
# * update
# ------------------------------------------
def update
super
if self.index != @old_index
refresh
@old_index = self.index
end
end
# ------------------------------------------
# * update
# ------------------------------------------
def update_help
case self.index
when 0
@help_window.set_text("进行召唤并参战", "或加入掠阵队伍", 240, 64)
when 1
@help_window.set_text("查看已经召唤的", "十二生肖的属性", 640-170, 64)
end
end
end
# ------------------------------------------
# * Window_Command_Shop
# ------------------------------------------
class Window_Command_Shop_2 < Window_Selectable
# ------------------------------------------
# * initialize
# ------------------------------------------
def initialize(width, commands, column_max = 1, size = 22)
super(0, 0, width, 0)
if column_max == 1
self.height = commands.size * 32 + 32
else
self.height = 64
end
@item_max = commands.size
@commands = commands
@column_max = column_max
@size = size
self.contents = Bitmap.new(width - 32, @item_max * 32)
refresh
self.index = 0
end
# ------------------------------------------
# * refresh
# ------------------------------------------
def refresh
self.contents.clear
for i in 0...@item_max
if @column_max != 1
if i == self.index
color = text_color(2)
else
color = normal_color
end
else
color = normal_color
end
draw_item(i, color)
end
end
# ------------------------------------------
# * draw_item
# ------------------------------------------
def draw_item(index, color)
self.contents.font.color = color
self.contents.font.size = @size
if @column_max == 1
self.contents.draw_text(4, 32 * index, width - 8, 32, @commands[index])
else
if @size == 15
self.contents.draw_text(
width / @column_max * index + 50, 0, width - 8, 32, @commands[index])
else
self.contents.draw_text(
width / @column_max * index + 20, 0, width - 8, 32, @commands[index])
end
end
end
# ------------------------------------------
# * disable_item
# ------------------------------------------
def disable_item(index)
draw_item(index, disabled_color)
end
# ------------------------------------------
# * update
# ------------------------------------------
def update
super
if self.index != @old_index
refresh
@old_index = self.index
end
end
# ------------------------------------------
# * update
# ------------------------------------------
def update_help
case self.index
when 0
@help_window.set_text("查看当前在队伍中", "的十二生肖属性", 440-170, 64)
when 1
@help_window.set_text("查看掠阵队伍中的", "十二生肖的属性", 440-170, 96)
end
end
end
# ------------------------------------------
# * Window_Command_Shop
# ------------------------------------------
class Window_Command_Shop_3 < Window_Selectable
# ------------------------------------------
# * initialize
# ------------------------------------------
def initialize(width, commands, column_max = 1, size = 22)
super(0, 0, width, 0)
if column_max == 1
self.height = commands.size * 32 + 32
else
self.height = 64
end
@item_max = commands.size
@commands = commands
@column_max = column_max
@size = size
self.contents = Bitmap.new(width - 32, @item_max * 32)
refresh
self.index = 0
end
# ------------------------------------------
# * refresh
# ------------------------------------------
def refresh
self.contents.clear
for i in 0...@item_max
if @column_max != 1
if i == self.index
color = text_color(2)
else
color = normal_color
end
else
color = normal_color
end
draw_item(i, color)
end
end
# ------------------------------------------
# * draw_item
# ------------------------------------------
def draw_item(index, color)
self.contents.font.color = color
self.contents.font.size = @size
if @column_max == 1
self.contents.draw_text(4, 32 * index, width - 8, 32, @commands[index])
else
if @size == 15
self.contents.draw_text(
width / @column_max * index + 50, 0, width - 8, 32, @commands[index])
else
self.contents.draw_text(
width / @column_max * index + 20, 0, width - 8, 32, @commands[index])
end
end
end
# ------------------------------------------
# * disable_item
# ------------------------------------------
def disable_item(index)
draw_item(index, disabled_color)
end
# ------------------------------------------
# * update
# ------------------------------------------
def update
super
if self.index != @old_index
refresh
@old_index = self.index
end
end
# ------------------------------------------
# * update
# ------------------------------------------
def update_help
case self.index
when 0
@help_window.set_text("召唤生肖兽并且", "参加战斗。", 0, 480-92*2-32)
when 1
@help_window.set_text("召唤生肖兽加入", "掠阵队伍中", 240, 480-92*2-32)
end
end
end
# ------------------------------------------
# * Window_TipCommand_help # 参与N场战斗的提示
# ------------------------------------------
class Window_TipCommand_help < Window_Base
# ------------------------------------------
# * initialize
# ------------------------------------------
def initialize
super(0, 480 - 64 - 64, 450, 64)
self.z = 9998
self.opacity = 200
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
# ------------------------------------------
# * refresh
# ------------------------------------------
def refresh(actor = $game_actors[1], color = 1)
self.contents.clear
self.contents.font.size = 15
@bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
rect = Rect.new(0, 0, @bitmap.width / 4, @bitmap.height / 8)
self.contents.blt(0, 2, @bitmap, rect)
self.contents.font.color = text_color(color)
time = $game_temp.actors_time[actor.id]
text = "(只可参与#{time}场战斗)"
self.contents.draw_text(35, 0, width - 8, 32, actor.name + text)
end
# ------------------------------------------
# * dispose
# ------------------------------------------
def dispose
super
@bitmap.dispose
end
end
# ------------------------------------------
# * Actor_Shop_Command_Help # 雇佣兵雇佣选择列表帮助
# ------------------------------------------
class Actor_Shop_Command_Help < Window_Base
# ------------------------------------------
# * initialize
# ------------------------------------------
def initialize
super(150, 0, 240, 364)
self.z = 123
self.opacity = 160
self.contents = Bitmap.new(width - 32, height - 32)
end
# ------------------------------------------
# * dispose
# ------------------------------------------
def dispose
super
if @bitmap != nil
@bitmap.dispose
end
if @icon != nil
@icon.dispose
end
end
# ------------------------------------------
# * text_color
# ------------------------------------------
def text_color(n)
case n
when 0
return Color.new(255, 255, 255, 255)
when 1
return Color.new(0, 0, 255, 255)
when 2
return Color.new(255, 128, 128, 255)
when 3
return Color.new(128, 255, 128, 255)
when 4
return Color.new(128, 255, 255, 255)
when 5
return Color.new(255, 128, 255, 255)
when 6
return Color.new(255, 255, 128, 255)
when 7
return Color.new(192, 192, 192, 255)
else
normal_color
end
end
# ------------------------------------------
# * set_text
# ------------------------------------------
def set_text(actor_index, y, gold_type = nil, gold = nil, x = 150)
if actor_index != @actor_index or y != @y or gold_type != @gold_type or
gold != @gold
self.contents.clear
self.contents.font.color = normal_color
self.x = x
self.y = y
if actor_index != nil
# ------------------------------------------
# * dispose
# ------------------------------------------
if @bitmap != nil
@bitmap.dispose
end
# ------------------------------------------
# * face
# ------------------------------------------
@bitmap = RPG::Cache.picture(actor_index.id.to_s+".png")
w = @bitmap.width
h = @bitmap.height
self.contents.blt(-5, 35, @bitmap, Rect.new(0, 0, w, h), 160)
# ------------------------------------------
# * color
# ------------------------------------------
for b in 1..150
@color_2 = Color.new(255, 128, 255, 80 - b)
@color_3 = Color.new(255, 128, 255, 60 + b)
self.contents.fill_rect(
Rect.new(2 * b + 4, 0, 2, 30), @color_2)
self.contents.fill_rect(
Rect.new(2 * b + 4 - 32, 0, 2, 30), @color_3) if b < 20
@color_2 = Color.new(128, 128, 255, 80 - b)
@color_3 = Color.new(128, 128, 255, 60 + b)
self.contents.fill_rect(
Rect.new(2 * b + 96+30, 32, 2, 30), @color_2)
self.contents.fill_rect(
Rect.new(2 * b + 92, 32, 2, 30), @color_3) if b < 20
@color_2 = Color.new(255, 255, 128, 80 - b)
@color_3 = Color.new(255, 255, 128, 60 + b)
self.contents.fill_rect(
Rect.new(2 * b + 96+30, 64, 2, 30), @color_2)
self.contents.fill_rect(
Rect.new(2 * b + 92, 64, 2, 30), @color_3) if b < 20
@color_2 = Color.new(128, 255, 128, 80 - b)
@color_3 = Color.new(128, 255, 128, 60 + b)
self.contents.fill_rect(
Rect.new(2 * b + 96+30, 96, 2, 30), @color_2)
self.contents.fill_rect(
Rect.new(2 * b + 92, 96, 2, 30), @color_3) if b < 20
@color_2 = Color.new(128, 255, 255, 80 - b)
@color_3 = Color.new(128, 255, 255, 60 + b)
self.contents.fill_rect(
Rect.new(2 * b + 4, 96+32+10, 2, 30), @color_2)
self.contents.fill_rect(
Rect.new(2 * b + 4-32, 96+32+10, 2, 30), @color_3) if b < 20
@color_2 = Color.new(255, 128, 255, 80 - b)
@color_3 = Color.new(255, 128, 255, 60 + b)
self.contents.fill_rect(
Rect.new(2 * b + 4, 96+64+10, 2, 30), @color_2)
self.contents.fill_rect(
Rect.new(2 * b + 4-32, 96+64+10, 2, 30), @color_3) if b < 20
@color_2 = Color.new(255, 255, 128, 80 - b)
@color_3 = Color.new(255, 255, 128, 60 + b)
self.contents.fill_rect(
Rect.new(2 * b + 4, 96*2+10, 2, 30), @color_2)
self.contents.fill_rect(
Rect.new(2 * b + 4-32, 96*2+10, 2, 30), @color_3) if b < 20
@color_2 = Color.new(192, 192, 192, 80 - b)
@color_3 = Color.new(192, 192, 192, 60 + b)
self.contents.fill_rect(
Rect.new(2 * b + 4, 96*2+42, 2, 30), @color_2)
self.contents.fill_rect(
Rect.new(2 * b + 4-32, 96*2+42, 2, 30), @color_3) if b < 20
@color_2 = Color.new(255, 128, 255, 80 - b)
@color_3 = Color.new(255, 128, 255, 60 + b)
self.contents.fill_rect(
Rect.new(2 * b + 4, 96*2+74, 2, 30), @color_2)
self.contents.fill_rect(
Rect.new(2 * b + 4-32, 96*2+74, 2, 30), @color_3) if b < 20
@color_2 = Color.new(128, 255, 255, 80 - b)
@color_3 = Color.new(128, 255, 255, 60 + b)
self.contents.fill_rect(
Rect.new(2 * b + 4, 96*2+108, 2, 30), @color_2)
self.contents.fill_rect(
Rect.new(2 * b + 4-32, 96*2+108, 2, 30), @color_3) if b < 20
end
# ------------------------------------------
# * text
# ------------------------------------------
self.contents.font.size = 15
draw_actor_name(actor_index, 4, 0)
name_x_p = contents.text_size(actor_index.name).width
self.contents.font.color = text_color(3)
self.contents.draw_text(
4+name_x_p, 0, width - 8, 32, "["<<actor_index.class_name<<"]")
draw_actor_level(actor_index, 96, 32)
self.contents.font.color = system_color
self.contents.draw_text(
96, 64, width - 8, 32, ""<<$data_system.words.hp)
self.contents.font.color = normal_color
self.contents.draw_text(
96+64, 64, width - 8, 32, actor_index.maxhp.to_s)
self.contents.font.color = system_color
self.contents.draw_text(
96, 96, width - 8, 32, ""<<$data_system.words.sp)
self.contents.font.color = normal_color
self.contents.draw_text(
96+64, 96, width - 8, 32, actor_index.maxsp.to_s)
draw_actor_parameter_new(actor_index, 4, 96+32+10, 3)
draw_actor_parameter_new(actor_index, 4, 96+64+10, 4)
draw_actor_parameter_new(actor_index, 4, 96*2+10, 5)
draw_actor_parameter_new(actor_index, 4, 96*2+32+10, 6)
draw_actor_parameter_new(actor_index, 4, 96*2+64+10, 1)
draw_actor_parameter_new(actor_index, 4, 96*3+10, 2)
# ------------------------------------------
# * gold
# ------------------------------------------
if gold_type != nil
cx = name_x_p+contents.text_size("["<<actor_index.class_name<<"]").width
@icon = RPG::Cache.icon(gold_type)
w = @icon.width
h = @icon.height
self.contents.blt(4 + cx, 3, @icon, Rect.new(0, 0, w, h))
case gold_type
when "0.PNG"
self.contents.font.color = text_color(1)
when "1.PNG"
self.contents.font.color = text_color(2)
when "2.PNG"
self.contents.font.color = text_color(6)
when "3.PNG"
self.contents.font.color = text_color(3)
end
self.contents.draw_text(4 + cx + w, 0, width - 8, 32, gold)
end
# ------------------------------------------
# * Equip
# ------------------------------------------
self.contents.font.color = system_color
self.contents.draw_text(100, 96+32+10, 96, 32, "装备")
draw_item_name($data_weapons[actor_index.weapon_id], 100, 96+64+10)
draw_item_name($data_armors[actor_index.armor1_id], 100, 96*2+10)
draw_item_name($data_armors[actor_index.armor2_id], 100, 96*2+42)
draw_item_name($data_armors[actor_index.armor3_id], 100, 96*2+64+10)
draw_item_name($data_armors[actor_index.armor4_id], 100, 96*3+10)
else
self.visible = false
end
@actor_index = actor_index
@y = y
@gold_type = gold_type
@gold = gold
@actor = nil
end
self.visible = true
end
# ------------------------------------------
# * draw_actor_parameter_new
# ------------------------------------------
def draw_actor_parameter_new(actor, x, y, type)
case type
when 0
parameter_name = $data_system.words.atk
parameter_value = actor.atk
when 1
parameter_name = $data_system.words.pdef
parameter_value = actor.pdef
when 2
parameter_name = $data_system.words.mdef
parameter_value = actor.mdef
when 3
parameter_name = $data_system.words.str
parameter_value = actor.str
when 4
parameter_name = $data_system.words.dex
parameter_value = actor.dex
when 5
parameter_name = $data_system.words.agi
parameter_value = actor.agi
when 6
parameter_name = $data_system.words.int
parameter_value = actor.int
end
self.contents.font.color = system_color
self.contents.draw_text(x, y, 120, 32, parameter_name)
self.contents.font.color = normal_color
self.contents.draw_text(x + 30, y, 36, 32, parameter_value.to_s, 2)
end
end
# ------------------------------------------
# * Actor_Shop_Command # 选择雇佣兵(列表)
# ------------------------------------------
class Actor_Shop_Command < Window_Selectable
# ------------------------------------------
# * initialize
# ------------------------------------------
def initialize
super(0, 0, 240, 480 + 80)
self.opacity = 100
@item_max = @@item.size
if @item_max > 10
self.contents = Bitmap.new(width - 32, 10 * 46)
else
self.contents = Bitmap.new(width - 32, @item_max * 46)
end
@column_max = 1
refresh
self.index = 0
end
# ------------------------------------------
# * refresh
# ------------------------------------------
def refresh(page = 1)
self.contents.clear
@commands = []
for i in 0...@item_max
@actor = $game_actors[@@item[i][0]]
@commands[i] = @actor.name
color = text_color(@@item[i][3].to_i)
shop_draw_item(i, color, @@item[i][3].to_i, page)
end
end
# ------------------------------------------
# * shop_draw_item
# ------------------------------------------
def shop_draw_item(i, color, color_2, page)
self.contents.font.size = 15
x = 36 + i % @column_max * (288 + 32)
if page == 1
y = i / @column_max * 46
else
y = (i - 10) / @column_max * 46
end
for b in 1..150
case color_2
when 1
@color_2 = Color.new(128, 128, 255, 80 - b)
@color_3 = Color.new(128, 128, 255, 60 + b)
when 2
@color_2 = Color.new(255, 128, 128, 80 - b)
@color_3 = Color.new(255, 128, 128, 60 + b)
when 3
@color_2 = Color.new(128, 255, 128, 80 - b)
@color_3 = Color.new(128, 255, 128, 60 + b)
when 4
@color_2 = Color.new(128, 255, 255, 80 - b)
@color_3 = Color.new(128, 255, 255, 60 + b)
when 5
@color_2 = Color.new(255, 128, 255, 80 - b)
@color_3 = Color.new(255, 128, 255, 60 + b)
when 6
@color_2 = Color.new(255, 255, 128, 80 - b)
@color_3 = Color.new(255, 255, 128, 60 + b)
when 7
@color_2 = Color.new(192, 192, 192, 80 - b)
@color_3 = Color.new(192, 192, 192, 60 + b)
end
self.contents.fill_rect(
Rect.new(2 * b + x, y, 2, 30), @color_2)
self.contents.fill_rect(
Rect.new(2 * b + x - 32, y, 2, 30), @color_3) if b < 20
end
self.contents.font.color = color
@bitmap = RPG::Cache.character(@actor.character_name, @actor.character_hue)
rect = Rect.new(0, 0, @bitmap.width / 4, @bitmap.height / 8)
self.contents.blt(x - 32, y + 3, @bitmap, rect)
self.contents.draw_text(x, y, width - 8, 32, @commands[i])
cx = contents.text_size("艾斯迪儿").width - 15
@icon = RPG::Cache.icon(@@item[i][4])
w = @icon.width
h = @icon.height
self.contents.blt(x + cx + 24, y + 3, @icon, Rect.new(0, 0, w, h))
self.contents.draw_text(x + cx + 52, y, width - 8, 32, @@item[i][5].to_s)
end
# ------------------------------------------
# * dispose
# ------------------------------------------
def dispose
super
@bitmap.dispose
@icon.dispose
end
# ------------------------------------------
# * update_cursor_rect
# ------------------------------------------
def update_cursor_rect
if @index < 0
self.cursor_rect.empty
end
cursor_width = self.width / @column_max - 32
x = @index % @column_max * (cursor_width + 32)
if @index < 10
y = @index / @column_max * 46 - self.oy
if @index != @old_index_index
refresh(1)
@old_index_index = @index
end
else
if @index != @old_index_index
refresh(2)
@old_index_index = @index
end
y = (@index - 10) / @column_max * 46 - self.oy
end
self.cursor_rect.set(x, y, cursor_width, 32)
end
# ------------------------------------------
# * update_help
# ------------------------------------------
def update_help
# ------------------------------------------
# * Actors and Y and Gold
# ------------------------------------------
case self.index
when 0...2
y = self.index * 45 + 64
when 2
y = 480 - 364
when 3
y = 480 - 364
when 4
y = 32
when 5
y = 32
when 6
y = 32
when 7
y = 64
when 8
y = 480 - 364
when 9
y = 480 - 364
when 10...12
y = (self.index - 10) * 45 + 64
when 12
y = 480 - 364
when 13
y = 480 - 364
when 14
y = 32
when 15
y = 32
when 16
y = 32
when 17
y = 64
when 18
y = 480 - 364
when 19
y = 480 - 364
end
@help_window.set_text(
$game_actors[@@item[self.index][0]], y, @@item[self.index][2].to_s<<".PNG",
@@item[self.index][1].to_s)
end
end
# ------------------------------------------
# * Actor_Shop_Window_Gold # 显示现有资源的窗口
# ------------------------------------------
class Actor_Shop_Window_Gold < Window_Base
# ------------------------------------------
# * initialize
# ------------------------------------------
def initialize
super(240, 480 - 64, 400, 64)
self.opacity = 100
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
# ------------------------------------------
# * dispose
# ------------------------------------------
def dispose
super
for i in 0...4
@bitmap[i].dispose
end
end
# ------------------------------------------
# * refresh
# ------------------------------------------
def refresh
self.contents.clear
self.contents.font.size = 15
@bitmap = []
for i in 0...4
@bitmap[i] = RPG::Cache.icon("#{i}.PNG")
w = @bitmap[i].width - 5
self.contents.blt(i * 100, 4, @bitmap[i], Rect.new(0, 0, 24, 24))
wt = width - 8
ht = 32
case i
when 0
self.contents.font.color = text_color(1)
self.contents.draw_text(4+w+i*100, 0, wt, ht, $game_temp.gold_bule.to_s)
when 1
self.contents.font.color = text_color(2)
self.contents.draw_text(4+w+i*100, 0, wt, ht, $game_temp.gold_red.to_s)
when 2
self.contents.font.color = text_color(6)
self.contents.draw_text(4+w+i*100, 0, wt, ht, $game_temp.gold_yellow.to_s)
when 3
self.contents.font.color = text_color(3)
self.contents.draw_text(4+w+i*100, 0, wt, ht, $game_temp.gold_green.to_s)
end
end
end
end
# ------------------------------------------
# * Actor_Shop_Message_Save_2 # 显示仓库中雇佣角色的列表
# ------------------------------------------
class Actor_Shop_Message_Save_2 < Window_Selectable
# ------------------------------------------
# * initialize
# ------------------------------------------
def initialize
super(240, 64 + (480 - 128) / 2, 400, (480 - 128) / 2)
self.opacity = 100
@column_max = 1
self.contents = Bitmap.new(width - 32, 4*32)
refresh
end
# ------------------------------------------
# * refresh
# ------------------------------------------
def refresh(page = 1)
self.contents.clear
@item_max = $game_temp.actors_2.size
self.contents.font.size = 15
for b in 1..150
@color_2 = Color.new(128, 128, 255, 120 - b)
@color_3 = Color.new(128, 128, 255, 100 + b)
self.contents.fill_rect(
Rect.new(2 * b + 4, 32*0, 2, 30), @color_2)
self.contents.fill_rect(
Rect.new(2 * b + 4 - 32, 32*0, 2, 30), @color_3) if b < 20
@color_2 = Color.new(192, 192, 192, 120 - b)
@color_3 = Color.new(192, 192, 192, 100 + b)
self.contents.fill_rect(
Rect.new(2 * b + 4, 32*1, 2, 30), @color_2)
self.contents.fill_rect(
Rect.new(2 * b + 4 - 32, 32*1, 2, 30), @color_3) if b < 20
@color_2 = Color.new(255, 255, 64, 120 - b)
@color_3 = Color.new(255, 255, 64, 100 + b)
self.contents.fill_rect(
Rect.new(2 * b + 4, 32*2, 2, 30), @color_2)
self.contents.fill_rect(
Rect.new(2 * b + 4 - 32, 32*2, 2, 30), @color_3) if b < 20
@color_2 = Color.new(128, 255, 255, 120 - b)
@color_3 = Color.new(128, 255, 255, 100 + b)
self.contents.fill_rect(
Rect.new(2 * b + 4, 32*3, 2, 30), @color_2)
self.contents.fill_rect(
Rect.new(2 * b + 4 - 32, 32*3, 2, 30), @color_3) if b < 20
end
self.contents.draw_text(4, 0, width - 8, 32, "掠阵队伍中的生肖兽")
for i in 0...@item_max
item_actor(i, page)
end
end
# ------------------------------------------
# * dispose
# ------------------------------------------
def dispose
super
if @bitmap != nil
@bitmap.dispose
end
if @bitmap_2 != nil
@bitmap_2.dispose
end
end
# ------------------------------------------
# * item_actor
# ------------------------------------------
def item_actor(i, page)
self.contents.font.size = 15
if $game_temp.actors_2 != []
@bitmap = RPG::Cache.character(
$game_temp.actors_2[i].character_name,
$game_temp.actors_2[i].character_hue)
rect = Rect.new(0, 0, @bitmap.width / 4, @bitmap.height / 8)
if page == 1
self.contents.blt(0, 32*(i+1), @bitmap, rect)
self.contents.draw_text(
40, 32*(i+1), width - 8, 32, $game_temp.actors_2[i].name)
else
if i != 2
self.contents.blt(0, 32*(i-2), @bitmap, rect)
self.contents.draw_text(
40, 32*(i-2), width - 8, 32, $game_temp.actors_2[i].name)
end
end
end
end
# ------------------------------------------
# * update_cursor_rect
# ------------------------------------------
def update_cursor_rect
if self.index != @oldold_index
if @index >= 3
refresh(2)
else
refresh(1)
end
@oldold_index = self.index
end
if @index < 0
self.cursor_rect.empty
else
if @index >= 3
self.cursor_rect.set(0, (@index-2)*32, 240, 32)
else
self.cursor_rect.set(0, (@index+1)*32, 240, 32)
end
end
end
# ------------------------------------------
# * update_help
# ------------------------------------------
def update_help
if $game_temp.actors_2 != [] and self.index != -1
actor_index = $game_temp.actors_2[self.index]
y = 0
y = self.index * 64 if self.index < 2
y = 480 - 364 if self.index == 2
y = (self.index-2) * 64 if self.index == 3
y = (self.index-3) * 64 if self.index == 4 or self.index == 5
y = 480 - 364 if self.index == 6
@help_window.set_text(actor_index, y, nil, nil, 640 - 240)
end
end
end
# ------------------------------------------
# * Actor_Shop_Message_Save # 显示参战的雇佣角色的列表
# ------------------------------------------
class Actor_Shop_Message_Save < Window_Selectable
# ------------------------------------------
# * initialize
# ------------------------------------------
def initialize
super(240, 64, 400, (480 - 128) / 2)
self.opacity = 100
@column_max = 1
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
# ------------------------------------------
# * refresh
# ------------------------------------------
def refresh
self.contents.clear
@item_max = $game_temp.actors.size
self.contents.font.size = 15
for b in 1..150
@color_2 = Color.new(255, 255, 128, 120 - b)
@color_3 = Color.new(255, 255, 128, 100 + b)
self.contents.fill_rect(
Rect.new(2 * b + 4, 0, 2, 30), @color_2)
self.contents.fill_rect(
Rect.new(2 * b + 4 - 32, 0, 2, 30), @color_3) if b < 20
@color_2 = Color.new(255, 128, 255, 120 - b)
@color_3 = Color.new(255, 128, 255, 100 + b)
self.contents.fill_rect(
Rect.new(2 * b + 4, 32, 2, 30), @color_2)
self.contents.fill_rect(
Rect.new(2 * b + 4 - 32, 32, 2, 30), @color_3) if b < 20
@color_2 = Color.new(128, 255, 255, 120 - b)
@color_3 = Color.new(128, 255, 255, 100 + b)
self.contents.fill_rect(
Rect.new(2 * b + 4, 64, 2, 30), @color_2)
self.contents.fill_rect(
Rect.new(2 * b + 4 - 32, 64, 2, 30), @color_3) if b < 20
@color_2 = Color.new(255, 128, 128, 120 - b)
@color_3 = Color.new(255, 128, 128, 100 + b)
self.contents.fill_rect(
Rect.new(2 * b + 4, 96, 2, 30), @color_2)
self.contents.fill_rect(
Rect.new(2 * b + 4 - 32, 96, 2, 30), @color_3) if b < 20
end
self.contents.draw_text(4, 0, width - 8, 32, "参战的生肖兽")
for i in 0...@item_max
item_actor(i)
end
end
# ------------------------------------------
# * dispose
# ------------------------------------------
def dispose
super
if @bitmap != nil
@bitmap.dispose
end
if @bitmap_2 != nil
@bitmap_2.dispose
end
end
# ------------------------------------------
# * item_actor
# ------------------------------------------
def item_actor(i)
self.contents.font.size = 15
if $game_temp.actors != []
@bitmap = RPG::Cache.character(
$game_temp.actors[i].character_name, $game_temp.actors[i].character_hue)
rect = Rect.new(0, 0, @bitmap.width / 4, @bitmap.height / 8)
self.contents.blt(0, 32*(i+1), @bitmap, rect)
self.contents.draw_text(
40, 32*(i+1), width - 8, 32, $game_temp.actors[i].name)
cx = contents.text_size($game_temp.actors[i].name).width
id = $game_temp.actors[i].id
self.contents.draw_text(
50+cx, 32*(i+1), width - 8, 32, "剩余战斗次数:")
dx = contents.text_size("剩余战斗次数:").width
self.contents.draw_text(
50+cx+dx, 32*(i+1), width - 8, 32, $game_temp.actors_time_2[id].to_s)
end
end
# ------------------------------------------
# * update_cursor_rect
# ------------------------------------------
def update_cursor_rect
if self.index != @oldold_index
refresh
@oldold_index = self.index
end
if @index < 0
self.cursor_rect.empty
else
self.cursor_rect.set(0, (@index+1)*32, 240, 32)
end
end
# ------------------------------------------
# * update_help
# ------------------------------------------
def update_help
if $game_temp.actors != [] and self.index != -1
actor_index = $game_temp.actors[self.index]
y = self.index * 64 if self.index < 2
y = 480 - 364 if self.index == 2
y = (self.index-2) * 64 if self.index == 3
@help_window.set_text(actor_index, y, nil, nil, 640 - 240)
end
end
end
# ------------------------------------------
# * Scene_Actor_Shop
# ------------------------------------------
class Scene_Actor_Shop
# ------------------------------------------
# * color
# ------------------------------------------
def text_color(n)
case n
when 0
return Color.new(255, 255, 255, 255)
when 1
return Color.new(128, 128, 255, 255)
when 2
return Color.new(255, 128, 128, 255)
when 3
return Color.new(128, 255, 128, 255)
when 4
return Color.new(128, 255, 255, 255)
when 5
return Color.new(255, 128, 255, 255)
when 6
return Color.new(255, 255, 128, 255)
when 7
return Color.new(192, 192, 192, 255)
else
normal_color
end
end
# ------------------------------------------
# * main
# ------------------------------------------
def main
map = Spriteset_Map.new
@command = Actor_Shop_Command.new
@command.x -= 200
@command.active = false
@command.index = -1
@message = Actor_Shop_Message_Save.new
@message.active = false
@message.index = -1
@message.x += 200
@message_2 = Actor_Shop_Message_Save_2.new
@message_2.active = false
@message_2.index = -1
@message_2.x += 200
@gold = Actor_Shop_Window_Gold.new
@gold.y += 50
@help = Actor_Shop_Command_Help.new
@help.visible = false
@command.help_window = @help
@message.help_window = @help
@message_2.help_window = @help
@tip_c = Window_TipCommand_help.new
@tip_c.visible = false
@flash_viewport_time = 20
@flash_viewport = Viewport.new(240, 0, 400, 64)
@flash_viewport.z = 9999
@flash_viewport_2 = Viewport.new(0, 0, 240, 480)
@flash_viewport_2.z = 9999
@flash_viewport_2_2 = Viewport.new(240, 64, 150, 480 - 64)
@flash_viewport_2_2.z = 9999
@flash_viewport_3 = Viewport.new(0, 480 - 128, 450, 128)
@flash_viewport_3.z = 9999
@flash_viewport_4 = Viewport.new(240, 64, 640 - 240, (480 - 128) / 2)
@flash_viewport_4.z = 9999
@flash_viewport_5 = Viewport.new(
240, 64 + (480 - 128) / 2, 640 - 240, (480 - 128) / 2)
@flash_viewport_5.z = 9999
@flash_viewport_6 = Viewport.new(440, 64, 200, 3 * 32)
@flash_viewport_6.z = 9999
black = Sprite.new
black.bitmap = Bitmap.new(
"Graphics/Pictures/color (6).png")
black.opacity = 160
@black_pictrue = []
for i in 1..7
@black_pictrue[i] = Sprite.new
@black_pictrue[i].bitmap = Bitmap.new(
"Graphics/Pictures/color (#{i - 1}).png")
@black_pictrue[i].opacity = 0
end
@black_pictrue[(@@item[0][3].to_i)].opacity = 50
$game_temp.map_bgm = $game_system.playing_bgm
$game_system.bgm_stop
Audio.bgm_play("Audio/BGM/058-Slow01.mid")
@command_c = Window_Command_Shop_3.new(450,
[" 参战", " 掠阵"], 2, 15)
@command_c.opacity = 200
@command_c.y = 480 - 64
@command_c.z = 9998
@command_c.active = false
@command_c.visible = false
@command_c.index = -1
@command_s = Window_Command_Shop.new(400, [" 召唤", " 状态"], 2, 15)
@command_s.opacity = 100
@command_s.x = 240
@command_s.y -= 50
@command_status = Window_Command_Shop_2.new(
200, ["当前队伍", "掠阵队伍"], 1, 15)
@command_status.x = 640 - 200
@command_status.y = 64
@command_status.opacity = 200
@command_status.active = false
@command_status.index = -1
@command_status.visible = false
@help_command = Window_HelpCommand.new
@help_command.y = -200
@command_s.help_window = @help_command
@command_status.help_window = @help_command
@command_c.help_window = @help_command
@command_canzhan = Window_Command_Shop.new(
110, [" 加入掠阵队伍", " 取消"], 1, 15)
@command_canzhan.active = false
@command_canzhan.visible = false
@command_canzhan.index = -1
@command_canzhan.x = 300
@command_canzhan.y = 150
@command_canzhan.z = 9998
@command_canzhan2 = Window_Command_Shop.new(
110, [" 参与战斗", " 取消"], 1, 15)
@command_canzhan2.active = false
@command_canzhan2.visible = false
@command_canzhan2.index = -1
@command_canzhan2.x = 300
@command_canzhan2.y = 300
@command_canzhan2.z = 9998
Graphics.transition
for i in 1..21
Graphics.update
@command_s.y += 2
@gold.y -= 2
@message.x -= 10
@message_2.x -= 10
@command.x += 10
@help_command.opacity += 10
@help_command.contents_opacity += 10
if i == 21
@command_s.y = 0
@gold.y = 480 - 64
@message.x = 240
@message_2.x = 240
@command.x = 0
@help_command.opacity = 200
@help_command.contents_opacity = 200
end
end
@flash_viewport.flash(Color.new(255,255,255,255),20)
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
for i in 1..21
Graphics.update
@command_s.y -= 2
@gold.y += 2
@message.x += 10
@command.x -= 10
@message_2.x += 10
@help_command.y -= 10
if i == 21
@command_s.y = - 50
@gold.y = 480 - 64 + 50
@message.x = 240 + 200
@message_2.x = 240 + 200
@command.x = 0 - 200
@help_command.y = 0 - 200
end
end
Graphics.freeze
$game_system.bgm_play($game_temp.map_bgm)
@command.dispose
@message.dispose
@message_2.dispose
@help.dispose
@gold.dispose
black.bitmap.dispose
black.dispose
map.dispose
@command_c.dispose
@command_s.dispose
@tip_c.dispose
@help_command.dispose
@command_status.dispose
@flash_viewport_2.dispose
@flash_viewport_2_2.dispose
@flash_viewport_3.dispose
@flash_viewport_4.dispose
@flash_viewport_5.dispose
@command_canzhan.dispose
@command_canzhan2.dispose
for i in 1..7
@black_pictrue[i].bitmap.dispose
@black_pictrue[i].dispose
end
for i in 0..19
@picture[i].bitmap.dispose
@picture[i].dispose
end
end
# ------------------------------------------
# * update
# ------------------------------------------
def update
@command_c.update
@command_canzhan.update
@command_canzhan2.update
@command_s.update
@message.update
@actor = @@item[@command.index][0]
if @flash_viewport_time >0
@flash_viewport_time -= 1
@flash_viewport.update
end
if @command.index != @oldindex
if @command.index != -1
@black_pictrue[(@@item[@command.index][3].to_i)].opacity = 50
else
@rand_num = rand(7) + 1
@black_pictrue[(@@item[@rand_num][3].to_i)].opacity = 50
end
for i in 1..7
if @command.index != -1
@black_pictrue[i].opacity = 0 if i != (@@item[@command.index][3].to_i)
else
@black_pictrue[i].opacity = 0 if i != (@@item[@rand_num][3].to_i)
end
end
@oldindex = @command.index
end
if @true_ == nil or @command.index != @oldindex_index
if @picture != nil
for i in 0..19
@picture[i].bitmap.dispose
@picture[i].dispose
end
end
@picture = []
if @command.index != -1
@picture_name = @@item[@command.index][3].to_i
else
@picture_name = @@item[rand(7) + 1][3].to_i
end
for i in 0..19
@picture[i] = Sprite.new
@picture[i].bitmap = Bitmap.new(
"Graphics/Pictures/chage_picture#{@picture_name}.png")
@picture[i].x, @picture[i].y = rand(640 - @picture[i].bitmap.width * 2) +
1, rand(480 - @picture[i].bitmap.height * 2) + 1
if @picture_name != 2
rand_num = rand(5)
case rand_num
when 0
@picture[i].zoom_x = 0.7
@picture[i].zoom_x = 0.7
when 1
@picture[i].zoom_x = 0.8
@picture[i].zoom_x = 0.8
when 2
@picture[i].zoom_x = 1.2
@picture[i].zoom_x = 1.2
when 3
@picture[i].zoom_x = 1.3
@picture[i].zoom_x = 1.3
end
end
@picture[i].opacity = rand(50) + 206
end
@rand_picture = []
for i in 0..5
@rand_picture[i] = i - i * 2
end
@true_ = true
@oldindex_index = @command.index
end
for i in 0..19
@picture[i].x += rand(10) if i <= 9
@picture[i].y += rand(10) if i <= 9
@picture[i].x += rand(5) if i > 9
@picture[i].y += rand(5) if i > 9
if @picture_name != 2
@picture[i].angle += @rand_picture[i] if i <= 5
end
@picture[i].opacity -= rand(10) + 1
if @picture[i].opacity <= 50
@picture[i].x, @picture[i].y = rand(640) + 1, rand(480) + 1
@picture[i].opacity = 255
end
end
@command.update
@help.update
@command_status.update
@message_2.update
if @command.active
update_command
return
end
if @command_c.active
update_command_c
return
end
if @command_s.active
update_command_s
return
end
if @message.active
update_message
return
end
if @message_2.active
update_message_2
return
end
if @command_status.active
update_command_status
return
end
if @command_canzhan.active
update_command_canzhan
return
end
if @command_canzhan2.active
update_command_canzhan2
return
end
end
# ------------------------------------------
# * update_command_status
# ------------------------------------------
def update_command_status
if Input.press?(Input::F5)
if @f3 == nil
$game_system.se_play($data_system.decision_se)
for i in 1..21
Graphics.update
@help_command.opacity -= 10
@help_command.contents_opacity -= 10
if i == 21
@help_command.opacity = 0
@help_command.contents_opacity = 0
end
end
@f3 = true
else
for i in 1..21
Graphics.update
@help_command.opacity += 10
@help_command.contents_opacity += 10
if i == 21
@help_command.opacity = 200
@help_command.contents_opacity = 200
end
end
@f3 = nil
end
end
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@command_status.active = false
@command_status.index = -1
@command_status.visible = false
@command_s.active = true
@flash_viewport.flash(Color.new(255,255,255,255),20)
for i in 1..22
Graphics.update
@flash_viewport.update
end
end
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
case @command_status.index
when 0
if $game_temp.actors.size > 0
@command_status.active = false
@command_status.index = -1
@command_status.visible = false
@message.active = true
@message.index = 0
@help.visible = true if $game_temp.actors != []
@help_command.visible = false
@flash_viewport_4.flash(Color.new(255,255,255,255),20)
for i in 1..22
Graphics.update
@flash_viewport_4.update
end
else
$game_system.se_play($data_system.cancel_se)
end
when 1
if $game_temp.actors_2.size > 0
@command_status.active = false
@command_status.index = -1
@command_status.visible = false
@message_2.active = true
@message_2.index = 0
@help.visible = true if $game_temp.actors_2 != []
@help_command.visible = false
@flash_viewport_5.flash(Color.new(255,255,255,255),20)
for i in 1..22
Graphics.update
@flash_viewport_5.update
end
else
$game_system.se_play($data_system.cancel_se)
end
end
end
end
# ------------------------------------------
# * update_command_canzhan
# ------------------------------------------
def update_command_canzhan
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@command_canzhan.active = false
@command_canzhan.index = -1
@command_canzhan.visible = false
@message.active = true
@flash_viewport_4.flash(Color.new(255,255,255,255),20)
for i in 1..22
Graphics.update
@flash_viewport_4.update
end
end
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
case @command_canzhan.index
when 0
if $game_temp.actors.size > 0
$game_temp.actors_2 << $game_temp.actors[@message.index]
$game_party.remove_actor($game_temp.actors[@message.index].id)
$game_temp.actors = []
for i in 0...@@item.size
if $game_party.actors.include?($game_actors[@@item[i][0]])
$game_temp.actors << $game_actors[@@item[i][0]]
end
end
@message.refresh
@message_2.refresh
@command_canzhan.active = false
@command_canzhan.index = -1
@command_canzhan.visible = false
@message.active = true
@flash_viewport_4.flash(Color.new(255,255,255,255),20)
for i in 1..22
Graphics.update
@flash_viewport_4.update
end
else
$game_system.se_play($data_system.cancel_se)
end
when 1
@command_canzhan.active = false
@command_canzhan.index = -1
@command_canzhan.visible = false
@message.active = true
@flash_viewport_4.flash(Color.new(255,255,255,255),20)
for i in 1..22
Graphics.update
@flash_viewport_4.update
end
end
end
end
# ------------------------------------------
# * update_message
# ------------------------------------------
def update_message
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@message.active = false
@message.index = -1
@command_s.active = true
@help.visible = false
@help_command.visible = true
@flash_viewport.flash(Color.new(255,255,255,255),20)
for i in 1..22
Graphics.update
@flash_viewport.update
end
end
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
if $game_temp.actors.size > 0
@command_canzhan.active = true
@command_canzhan.index = 0
@command_canzhan.visible = true
@message.active = false
else
$game_system.se_play($data_system.cancel_se)
end
end
end
# ------------------------------------------
# * update_command_canzhan2
# ------------------------------------------
def update_command_canzhan2
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@command_canzhan2.active = false
@command_canzhan2.index = -1
@command_canzhan2.visible = false
@message_2.active = true
@flash_viewport_5.flash(Color.new(255,255,255,255),20)
for i in 1..22
Graphics.update
@flash_viewport_5.update
end
end
if Input.trigger?(Input::C)
$game_system.se_play($data_system.cancel_se)
case @command_canzhan2.index
when 0
if $game_party.actors.size < 4
$game_temp.actors << $game_temp.actors_2[@message_2.index]
$game_party.add_actor($game_temp.actors_2[@message_2.index].id)
$game_temp.actors_2.delete_at(@message_2.index)
@message.refresh
@message_2.refresh
@command_canzhan2.active = false
@command_canzhan2.index = -1
@command_canzhan2.visible = false
@message_2.active = true
@flash_viewport_5.flash(Color.new(255,255,255,255),20)
for i in 1..22
Graphics.update
@flash_viewport_5.update
end
else
$game_system.se_play($data_system.cancel_se)
end
when 1
$game_system.se_play($data_system.cancel_se)
@command_canzhan2.active = false
@command_canzhan2.index = -1
@command_canzhan2.visible = false
@message_2.active = true
@flash_viewport_5.flash(Color.new(255,255,255,255),20)
for i in 1..22
Graphics.update
@flash_viewport_5.update
end
end
end
end
# ------------------------------------------
# * update_message_2
# ------------------------------------------
def update_message_2
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@message_2.active = false
@message_2.index = -1
@command_s.active = true
@help.visible = false
@help_command.visible = true
@flash_viewport.flash(Color.new(255,255,255,255),20)
for i in 1..22
Graphics.update
@flash_viewport.update
end
end
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
if $game_temp.actors_2.size > 0
@command_canzhan2.active = true
@command_canzhan2.index = 0
@command_canzhan2.visible = true
@message_2.active = false
else
$game_system.se_play($data_system.cancel_se)
end
end
end
# ------------------------------------------
# * update_command
# ------------------------------------------
def update_command
if Input.press?(Input::F5)
if @f7 == nil
$game_system.se_play($data_system.decision_se)
for i in 1..21
Graphics.update
@help.opacity -= 10
@help.contents_opacity -= 10
if i == 21
@help.opacity = 0
@help.contents_opacity = 0
end
end
@f7 = true
else
for i in 1..21
Graphics.update
@help.opacity += 10
@help.contents_opacity += 10
if i == 21
@help.opacity = 200
@help.contents_opacity = 200
end
end
@f7 = nil
end
end
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@command.active = false
@command.index = -1
@command_s.active = true
@help.visible = false
@help_command.visible = true
@flash_viewport.flash(Color.new(255,255,255,255),20)
for i in 1..22
Graphics.update
@flash_viewport.update
end
end
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
@command_c.active = true
@command_c.visible = true
@command_c.index = 0
@command.active = false
@tip_c.visible = true
@tip_c.refresh($game_actors[@actor], @@item[@command.index][3])
@flash_viewport_3.flash(Color.new(255,255,255,255),20)
for i in 1..22
Graphics.update
@flash_viewport_3.update
end
end
end
# ------------------------------------------
# * update_command_c
# ------------------------------------------
def update_command_c
if Input.press?(Input::F5)
if @f3 == nil
$game_system.se_play($data_system.decision_se)
for i in 1..21
Graphics.update
@help_command.opacity -= 10
@help_command.contents_opacity -= 10
if i == 21
@help_command.opacity = 0
@help_command.contents_opacity = 0
end
end
@f3 = true
else
for i in 1..21
Graphics.update
@help_command.opacity += 10
@help_command.contents_opacity += 10
if i == 21
@help_command.opacity = 200
@help_command.contents_opacity = 200
end
end
@f3 = nil
end
end
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@command_c.active = false
@command_c.visible = false
@command_c.index = -1
@tip_c.visible = false
@command.active = true
@help_command.visible = false
@flash_viewport_2.flash(Color.new(255,255,255,255),20)
@flash_viewport_2_2.flash(Color.new(255,255,255,255),20)
for i in 1..22
Graphics.update
@flash_viewport_2.update
@flash_viewport_2_2.update
end
end
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
case @command_c.index
when 0
case @@item[@command.index][2]
when 0
if $game_temp.gold_bule >= @@item[@command.index][1]
unless $game_party.actors.include?($game_actors[@actor]) or
$game_temp.actors.include?($game_actors[@actor]) or
$game_temp.actors_2.include?($game_actors[@actor])
@buy = true
$game_temp.gold_bule -= @@item[@command.index][1]
@gold.refresh
else
$game_system.se_play($data_system.buzzer_se)
end
else
@buy = false
end
when 1
if $game_temp.gold_red >= @@item[@command.index][1]
unless $game_party.actors.include?($game_actors[@actor]) or
$game_temp.actors.include?($game_actors[@actor]) or
$game_temp.actors_2.include?($game_actors[@actor])
@buy = true
$game_temp.gold_red -= @@item[@command.index][1]
@gold.refresh
else
$game_system.se_play($data_system.buzzer_se)
end
else
@buy = false
end
when 2
if $game_temp.gold_yellow >= @@item[@command.index][1]
unless $game_party.actors.include?($game_actors[@actor]) or
$game_temp.actors.include?($game_actors[@actor]) or
$game_temp.actors_2.include?($game_actors[@actor])
@buy = true
$game_temp.gold_yellow -= @@item[@command.index][1]
@gold.refresh
else
$game_system.se_play($data_system.buzzer_se)
end
else
@buy = false
end
when 3
if $game_temp.gold_green >= @@item[@command.index][1]
unless $game_party.actors.include?($game_actors[@actor]) or
$game_temp.actors.include?($game_actors[@actor]) or
$game_temp.actors_2.include?($game_actors[@actor])
@buy = true
$game_temp.gold_green -= @@item[@command.index][1]
@gold.refresh
for i in 0...6
Graphics.update
end
else
$game_system.se_play($data_system.buzzer_se)
end
else
@buy = false
end
end
if @buy == true
if $game_party.actors.size < 4
unless $game_party.actors.include?($game_actors[@actor]) or
$game_temp.actors.include?($game_actors[@actor]) or
$game_temp.actors_2.include?($game_actors[@actor])
$game_party.add_actor(@actor)
$game_temp.actors << $game_actors[@actor]
@message.refresh
@tip = true
else
@tip = nil
end
else
@tip = false
end
tip = Window_Base.new(150, 150, 340, 64)
tip.z = 9999
tip.opacity = 0
tip.contents_opacity = 0
tip.contents = Bitmap.new(tip.width - 32, tip.height - 32)
tip.contents.font.color = text_color(@@item[@command.index][3])
tip.contents.draw_text(
40, 0, tip.width - 8, 32, $game_actors[@actor].name)
cx = tip.contents.text_size($game_actors[@actor].name).width
tip.contents.font.color = Color.new(255, 255, 255, 255)
if @tip == true
tip.contents.draw_text(
40 + cx, 0, tip.width - 8, 32, "成功加入队伍")
elsif @tip == false
tip.contents.draw_text(
40 + cx, 0, tip.width - 8, 32, "无法加入队伍")
elsif @tip == nil
tip.contents.draw_text(
40 + cx, 0, tip.width - 8, 32, "已经在队伍中")
end
bitmap = RPG::Cache.character(
$game_actors[@actor].character_name, $game_actors[@actor].character_hue)
rect = Rect.new(0, 0, bitmap.width / 4, bitmap.height / 8)
tip.contents.blt(0, 3, bitmap, rect)
for i in 1..21
Graphics.update
tip.opacity += 10
tip.contents_opacity += 10
if i == 21
tip.opacity = 200
tip.contents_opacity = 200
end
end
for i in 1..50
Graphics.update
end
for i in 1..21
Graphics.update
tip.opacity -= 10
tip.contents_opacity -= 10
if i == 21
tip.opacity = 0
tip.contents_opacity = 0
end
end
tip.dispose
@command_c.active = false
@command_c.visible = false
@command_c.index = -1
@command.active = true
@tip_c.visible = false
@help_command.visible = false
@flash_viewport_2.flash(Color.new(255,255,255,255),20)
@flash_viewport_2_2.flash(Color.new(255,255,255,255),20)
for i in 1..22
Graphics.update
@flash_viewport_2.update
@flash_viewport_2_2.update
end
else
$game_system.se_play($data_system.buzzer_se)
end
when 1
case @@item[@command.index][2]
when 0
if $game_temp.gold_bule >= @@item[@command.index][1]
unless $game_party.actors.include?($game_actors[@actor]) or
$game_temp.actors.include?($game_actors[@actor]) or
$game_temp.actors_2.include?($game_actors[@actor])
@buy = true
$game_temp.gold_bule -= @@item[@command.index][1]
@gold.refresh
else
$game_system.se_play($data_system.buzzer_se)
end
else
@buy = false
end
when 1
if $game_temp.gold_red >= @@item[@command.index][1]
unless $game_party.actors.include?($game_actors[@actor]) or
$game_temp.actors.include?($game_actors[@actor]) or
$game_temp.actors_2.include?($game_actors[@actor])
@buy = true
$game_temp.gold_red -= @@item[@command.index][1]
@gold.refresh
else
$game_system.se_play($data_system.buzzer_se)
end
else
@buy = false
end
when 2
if $game_temp.gold_yellow >= @@item[@command.index][1]
unless $game_party.actors.include?($game_actors[@actor]) or
$game_temp.actors.include?($game_actors[@actor]) or
$game_temp.actors_2.include?($game_actors[@actor])
@buy = true
$game_temp.gold_yellow -= @@item[@command.index][1]
@gold.refresh
else
$game_system.se_play($data_system.buzzer_se)
end
else
@buy = false
end
when 3
if $game_temp.gold_green >= @@item[@command.index][1]
unless $game_party.actors.include?($game_actors[@actor]) or
$game_temp.actors.include?($game_actors[@actor]) or
$game_temp.actors_2.include?($game_actors[@actor])
@buy = true
$game_temp.gold_green -= @@item[@command.index][1]
@gold.refresh
for i in 0...6
Graphics.update
end
else
$game_system.se_play($data_system.buzzer_se)
end
else
@buy = false
end
end
if @buy == true
unless $game_party.actors.include?($game_actors[@actor]) or
$game_temp.actors.include?($game_actors[@actor]) or
$game_temp.actors_2.include?($game_actors[@actor])
$game_temp.actors_2 << $game_actors[@actor]
@message_2.refresh
@tip = true
else
@tip = false
end
tip = Window_Base.new(150, 150, 340, 64)
tip.z = 9999
tip.opacity = 0
tip.contents_opacity = 0
tip.contents = Bitmap.new(tip.width - 32, tip.height - 32)
tip.contents.font.color = text_color(@@item[@command.index][3])
tip.contents.draw_text(
40, 0, tip.width - 8, 32, $game_actors[@actor].name)
cx = tip.contents.text_size($game_actors[@actor].name).width
tip.contents.font.color = Color.new(255, 255, 255, 255)
if @tip == true
tip.contents.draw_text(
40 + cx, 0, tip.width - 8, 32, "已经加入掠阵队伍")
elsif @tip == false
tip.contents.draw_text(
40 + cx, 0, tip.width - 8, 32, "无法加入掠阵队伍")
end
bitmap = RPG::Cache.character(
$game_actors[@actor].character_name, $game_actors[@actor].character_hue)
rect = Rect.new(0, 0, bitmap.width / 4, bitmap.height / 8)
tip.contents.blt(0, 3, bitmap, rect)
for i in 1..21
Graphics.update
tip.opacity += 10
tip.contents_opacity += 10
if i == 21
tip.opacity = 200
tip.contents_opacity = 200
end
end
for i in 1..50
Graphics.update
end
for i in 1..21
Graphics.update
tip.opacity -= 10
tip.contents_opacity -= 10
if i == 21
tip.opacity = 0
tip.contents_opacity = 0
end
end
tip.dispose
@command_c.active = false
@command_c.visible = false
@command_c.index = -1
@command.active = true
@tip_c.visible = false
@help_command.visible = false
@flash_viewport_2.flash(Color.new(255,255,255,255),20)
@flash_viewport_2_2.flash(Color.new(255,255,255,255),20)
for i in 1..22
Graphics.update
@flash_viewport_2.update
@flash_viewport_2_2.update
end
else
$game_system.se_play($data_system.buzzer_se)
end
end
end
end
# ------------------------------------------
# * update_command_s
# ------------------------------------------
def update_command_s
if Input.press?(Input::F5)
if @f3 == nil
$game_system.se_play($data_system.decision_se)
for i in 1..21
Graphics.update
@help_command.opacity -= 10
@help_command.contents_opacity -= 10
if i == 21
@help_command.opacity = 0
@help_command.contents_opacity = 0
end
end
@f3 = true
else
for i in 1..21
Graphics.update
@help_command.opacity += 10
@help_command.contents_opacity += 10
if i == 21
@help_command.opacity = 200
@help_command.contents_opacity = 200
end
end
@f3 = nil
end
end
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
end
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
case @command_s.index
when 0
if @@item.size > 0
@help.visible = true
@command_s.active = false
@command.active = true
@command.index = 0
@help_command.visible = false
@flash_viewport_2.flash(Color.new(255,255,255,255),20)
@flash_viewport_2_2.flash(Color.new(255,255,255,255),20)
for i in 1..22
Graphics.update
@flash_viewport_2.update
@flash_viewport_2_2.update
end
else
$game_system.se_play($data_system.cancel_se)
end
when 1
@command_status.active = true
@command_status.visible = true
@command_status.index = 0
@command_s.active = false
@flash_viewport_6.flash(Color.new(255,255,255,255),20)
for i in 1..22
Graphics.update
@flash_viewport_6.update
end
end
end
end
end