赞 | 14 |
VIP | 0 |
好人卡 | 4 |
积分 | 24 |
经验 | 30333 |
最后登录 | 2024-3-12 |
在线时间 | 912 小时 |
Lv3.寻梦者
- 梦石
- 0
- 星屑
- 2385
- 在线时间
- 912 小时
- 注册时间
- 2014-10-14
- 帖子
- 1331

|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 j296196585 于 2016-12-15 00:36 编辑
=begin 简单说明: 【考虑到帮助窗口会盖住后边文本】 头像素材名称就是角色ID.png的图像 【所以,在系统中按下F5,会隐藏】 例如:阿尔西斯的头像素材名就该是 “1.png” 【帮助窗口(包括角色信息窗口和】 也可在脚本631行修改。 【一般的命令选择行窗口) 】 融入了多货币系统,初始值在脚本81行修改 如果脚本有BUG欢迎联系作者薄凉看客。 $game_temp.gold_bule += 100 $game_temp.gold_red += 100 $game_temp.gold_yellow += 100 $game_temp.gold_green += 100 =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 = {14=>5, 15=>2, 16=>3, 17=>4, 18=>5, 19=>1, 20=>2, 21=>3, 22=>4, 23=>5, 24=>1, 25=>2, 26=>3, 27=>4, 29=>5, 30=>1, 31=>2, 32=>3, 33=>4, 35=>5, 36=>5} @actors_time_2 = {14=>5, 15=>2, 16=>3, 17=>4, 18=>5, 19=>1, 20=>2, 21=>3, 22=>4, 23=>5, 24=>1, 25=>2, 26=>3, 27=>4, 29=>5, 30=>1, 31=>2, 32=>3, 33=>4, 35=>5, 36=>5} @actors_time_3 = {14=>5, 15=>2, 16=>3, 17=>4, 18=>5, 19=>1, 20=>2, 21=>3, 22=>4, 23=>5, 24=>1, 25=>2, 26=>3, 27=>4, 29=>5, 30=>1, 31=>2, 32=>3, 33=>4, 35=>5, 36=>5} initialize_actor_shop_old_kk_ end end # ------------------------------------------ # * ACTORSHOP # ------------------------------------------ module ACTORSHOP # ------------------------------------------ # * actors # ------------------------------------------ # 说明: # ITEM = [数组1, 数组2, ``````, 数组N] # 数组 = [角色ID, 雇佣酬金, 酬金类型, 颜色(含天气背景), 美化图标(文件名), # 图标后的显示的文字] # ------------------------------------------ ITEM = [[14, 100, 0, 7, "深渊の呼唤.PNG", "深渊呼唤"], [15, 200, 1, 1, "光明神の长枪.PNG", "光明神"], [16, 300, 2, 2, "次元双刃斧.png", "次元双刃"], [17, 400, 3, 3, "超级烈焰大炮.PNG", "超级烈焰"], [18, 500, 0, 4, "深海の潜伏者.png", "深海潜伏者"], [19, 600, 1, 5, "闪耀の拉克丝手枪.png", "闪耀拉克丝"], [20, 700, 2, 6, "慈悲者の法杖.png", "慈悲者"], [21, 800, 3, 7, "迷惑の黑暗圣杖.png", "迷惑黑暗"], [22, 900, 0, 1, "凶残の撕裂者.png", "凶残撕裂者"], [23, 1000, 1, 2, "b霍波尔斯特の次元盾(三阶).PNG", "霍波尔斯特"], [24, 1100, 0, 7, "深渊の呼唤.PNG", "深渊呼唤"], [25, 1200, 1, 1, "光明神の长枪.PNG", "光明神"], [26, 1300, 2, 2, "次元双刃斧.png", "次元双刃"], [27, 1400, 3, 3, "超级烈焰大炮.PNG", "超级烈焰"], [29, 1500, 0, 4, "深海の潜伏者.png", "深海潜伏者"], [30, 1600, 1, 5, "闪耀の拉克丝手枪.png", "闪耀拉克丝"], [31, 1700, 2, 6, "慈悲者の法杖.png", "慈悲者"], [32, 1800, 3, 7, "迷惑の黑暗圣杖.png", "迷惑黑暗"], [33, 1900, 0, 1, "凶残の撕裂者.png", "凶残撕裂者"], [35, 1900, 0, 1, "凶残の撕裂者.png", "凶残撕裂者"], [36, 2000, 1, 2, "b霍波尔斯特の次元盾(三阶).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(3 * b + 4, 0, 2, 30), @color_2) self.contents.fill_rect( Rect.new(3 * 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(3 * b + 96+30, 32, 2, 30), @color_2) self.contents.fill_rect( Rect.new(3 * 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(3 * b + 96+30, 64, 2, 30), @color_2) self.contents.fill_rect( Rect.new(3 * 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(3 * b + 96+30, 96, 2, 30), @color_2) self.contents.fill_rect( Rect.new(3 * 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(3 * b + 4, 96+32+10, 2, 30), @color_2) self.contents.fill_rect( Rect.new(3 * 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(3 * b + 4, 96+64+10, 2, 30), @color_2) self.contents.fill_rect( Rect.new(3 * 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(3 * b + 4, 96*2+10, 2, 30), @color_2) self.contents.fill_rect( Rect.new(3 * 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(3 * b + 4, 96*2+42, 2, 30), @color_2) self.contents.fill_rect( Rect.new(3 * 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(3 * b + 4, 96*2+74, 2, 30), @color_2) self.contents.fill_rect( Rect.new(3 * 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(3 * b + 4, 96*2+108, 2, 30), @color_2) self.contents.fill_rect( Rect.new(3 * 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
=begin 简单说明: 【考虑到帮助窗口会盖住后边文本】
头像素材名称就是角色ID.png的图像 【所以,在系统中按下F5,会隐藏】
例如:阿尔西斯的头像素材名就该是 “1.png” 【帮助窗口(包括角色信息窗口和】
也可在脚本631行修改。 【一般的命令选择行窗口) 】
融入了多货币系统,初始值在脚本81行修改
如果脚本有BUG欢迎联系作者薄凉看客。
$game_temp.gold_bule += 100
$game_temp.gold_red += 100
$game_temp.gold_yellow += 100
$game_temp.gold_green += 100
=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 = {14=>5, 15=>2, 16=>3, 17=>4, 18=>5, 19=>1, 20=>2, 21=>3,
22=>4, 23=>5, 24=>1, 25=>2, 26=>3, 27=>4, 29=>5, 30=>1, 31=>2, 32=>3,
33=>4, 35=>5, 36=>5}
@actors_time_2 = {14=>5, 15=>2, 16=>3, 17=>4, 18=>5, 19=>1, 20=>2, 21=>3,
22=>4, 23=>5, 24=>1, 25=>2, 26=>3, 27=>4, 29=>5, 30=>1, 31=>2, 32=>3,
33=>4, 35=>5, 36=>5}
@actors_time_3 = {14=>5, 15=>2, 16=>3, 17=>4, 18=>5, 19=>1, 20=>2, 21=>3,
22=>4, 23=>5, 24=>1, 25=>2, 26=>3, 27=>4, 29=>5, 30=>1, 31=>2, 32=>3,
33=>4, 35=>5, 36=>5}
initialize_actor_shop_old_kk_
end
end
# ------------------------------------------
# * ACTORSHOP
# ------------------------------------------
module ACTORSHOP
# ------------------------------------------
# * actors
# ------------------------------------------
# 说明:
# ITEM = [数组1, 数组2, ``````, 数组N]
# 数组 = [角色ID, 雇佣酬金, 酬金类型, 颜色(含天气背景), 美化图标(文件名),
# 图标后的显示的文字]
# ------------------------------------------
ITEM = [[14, 100, 0, 7, "深渊の呼唤.PNG", "深渊呼唤"],
[15, 200, 1, 1, "光明神の长枪.PNG", "光明神"],
[16, 300, 2, 2, "次元双刃斧.png", "次元双刃"],
[17, 400, 3, 3, "超级烈焰大炮.PNG", "超级烈焰"],
[18, 500, 0, 4, "深海の潜伏者.png", "深海潜伏者"],
[19, 600, 1, 5, "闪耀の拉克丝手枪.png", "闪耀拉克丝"],
[20, 700, 2, 6, "慈悲者の法杖.png", "慈悲者"],
[21, 800, 3, 7, "迷惑の黑暗圣杖.png", "迷惑黑暗"],
[22, 900, 0, 1, "凶残の撕裂者.png", "凶残撕裂者"],
[23, 1000, 1, 2, "b霍波尔斯特の次元盾(三阶).PNG", "霍波尔斯特"],
[24, 1100, 0, 7, "深渊の呼唤.PNG", "深渊呼唤"],
[25, 1200, 1, 1, "光明神の长枪.PNG", "光明神"],
[26, 1300, 2, 2, "次元双刃斧.png", "次元双刃"],
[27, 1400, 3, 3, "超级烈焰大炮.PNG", "超级烈焰"],
[29, 1500, 0, 4, "深海の潜伏者.png", "深海潜伏者"],
[30, 1600, 1, 5, "闪耀の拉克丝手枪.png", "闪耀拉克丝"],
[31, 1700, 2, 6, "慈悲者の法杖.png", "慈悲者"],
[32, 1800, 3, 7, "迷惑の黑暗圣杖.png", "迷惑黑暗"],
[33, 1900, 0, 1, "凶残の撕裂者.png", "凶残撕裂者"],
[35, 1900, 0, 1, "凶残の撕裂者.png", "凶残撕裂者"],
[36, 2000, 1, 2, "b霍波尔斯特の次元盾(三阶).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(3 * b + 4, 0, 2, 30), @color_2)
self.contents.fill_rect(
Rect.new(3 * 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(3 * b + 96+30, 32, 2, 30), @color_2)
self.contents.fill_rect(
Rect.new(3 * 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(3 * b + 96+30, 64, 2, 30), @color_2)
self.contents.fill_rect(
Rect.new(3 * 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(3 * b + 96+30, 96, 2, 30), @color_2)
self.contents.fill_rect(
Rect.new(3 * 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(3 * b + 4, 96+32+10, 2, 30), @color_2)
self.contents.fill_rect(
Rect.new(3 * 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(3 * b + 4, 96+64+10, 2, 30), @color_2)
self.contents.fill_rect(
Rect.new(3 * 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(3 * b + 4, 96*2+10, 2, 30), @color_2)
self.contents.fill_rect(
Rect.new(3 * 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(3 * b + 4, 96*2+42, 2, 30), @color_2)
self.contents.fill_rect(
Rect.new(3 * 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(3 * b + 4, 96*2+74, 2, 30), @color_2)
self.contents.fill_rect(
Rect.new(3 * 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(3 * b + 4, 96*2+108, 2, 30), @color_2)
self.contents.fill_rect(
Rect.new(3 * 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
难道 就没有 会╮(╯_╰)╭ 吗555 |
|