=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
360截图20161206031539677.jpg (58.03 KB, 下载次数: 6)
360截图20161206031601111.jpg (61.82 KB, 下载次数: 4)
860.67 KB, 下载次数: 52
j296196585 发表于 2016-12-20 15:24
@yang1zhi 求帮忙看看 这个脚本还有救吗
yang1zhi 发表于 2016-12-20 16:39
附件下载后提示有毒被自动删了。
在ITEM = [[14, 100, 0, 7, "深渊の呼唤.PNG", "深渊呼唤"],继续添加不 ...
欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |