KYLTRWT0R%I}]V2Z8J)MXU0.png (1019.73 KB, 下载次数: 25)
#============================================================================== # ■ Scene_Menu #------------------------------------------------------------------------------ # 处理菜单画面的类。 #============================================================================== #修改部分: #添加了升级加点 #去除了步数的描绘 class Scene_Menu #-------------------------------------------------------------------------- # ● 初始化对像 # menu_index : 命令光标的初期位置 #-------------------------------------------------------------------------- def initialize(menu_index = 0) @menu_index = menu_index end #-------------------------------------------------------------------------- # ● 主处理 #-------------------------------------------------------------------------- def main # 生成命令窗口 s1 = $data_system.words.item s2 = $data_system.words.skill s3 = $data_system.words.equip s4 = "状态" s5 = "存档" s7 = "结束游戏" s6 = "加点" @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6,s7])#宽度 @command_window.index = @menu_index # 同伴人数为 0 的情况下 if $game_party.actors.size == 0 # 物品、特技、装备、状态无效化 @command_window.disable_item(0) @command_window.disable_item(1) @command_window.disable_item(2) @command_window.disable_item(3) end # 禁止存档的情况下 if $game_system.save_disabled # 存档无效 @command_window.disable_item(4) end # 生成游戏时间窗口 @playtime_window = Window_PlayTime.new @playtime_window.x = 0 @playtime_window.y = 320 # 生成步数窗口 #删@steps_window = Window_Steps.new #@steps_window.x = 0 #@steps_window.y = 320 # 生成金钱窗口 @gold_window = Window_Gold.new @gold_window.x = 0 @gold_window.y = 416 # 生成状态窗口 @status_window = Window_MenuStatus.new @status_window.x = 160 @status_window.y = 0 # 执行过渡 Graphics.transition # 主循环 loop do # 刷新游戏画面 Graphics.update # 刷新输入信息 Input.update # 刷新画面 update # 如果切换画面就中断循环 if $scene != self break end end # 准备过渡 Graphics.freeze # 释放窗口 @command_window.dispose @playtime_window.dispose #删@steps_window.dispose @gold_window.dispose @status_window.dispose end #-------------------------------------------------------------------------- # ● 刷新画面 #-------------------------------------------------------------------------- def update # 刷新窗口 @command_window.update @playtime_window.update #删@steps_window.update @gold_window.update @status_window.update # 命令窗口被激活的情况下: 调用 update_command if @command_window.active update_command return end # 状态窗口被激活的情况下: 调用 update_status if @status_window.active update_status return end end #-------------------------------------------------------------------------- # ● 刷新画面 (命令窗口被激活的情况下) #-------------------------------------------------------------------------- def update_command # 按下 B 键的情况下 if Input.trigger?(Input::B) # 演奏取消 SE $game_system.se_play($data_system.cancel_se) # 切换的地图画面 $scene = Scene_Map.new return end # 按下 C 键的情况下 if Input.trigger?(Input::C) # 同伴人数为 0、存档、游戏结束以外的场合 if $game_party.actors.size == 0 and @command_window.index < 4 # 演奏冻结 SE $game_system.se_play($data_system.buzzer_se) return end # 命令窗口的光标位置分支 case @command_window.index when 0 # 物品 # 演奏确定 SE $game_system.se_play($data_system.decision_se) # 切换到物品画面 $scene = Scene_Item.new when 1 # 特技 # 演奏确定 SE $game_system.se_play($data_system.decision_se) # 激活状态窗口 @command_window.active = false @status_window.active = true @status_window.index = 0 when 2 # 装备 # 演奏确定 SE $game_system.se_play($data_system.decision_se) # 激活状态窗口 @command_window.active = false @status_window.active = true @status_window.index = 0 when 3 # 状态 # 演奏确定 SE $game_system.se_play($data_system.decision_se) # 激活状态窗口 @command_window.active = false @status_window.active = true @status_window.index = 0 when 4 # 存档 # 禁止存档的情况下 if $game_system.save_disabled # 演奏冻结 SE $game_system.se_play($data_system.buzzer_se) return end # 演奏确定 SE $game_system.se_play($data_system.decision_se) # 切换到存档画面 $scene = Scene_Save.new when 6 # 游戏结束 # 演奏确定 SE $game_system.se_play($data_system.decision_se) # 切换到游戏结束画面 $scene = Scene_End.new when 5 ###改 # 演奏确定 SE $game_system.se_play($data_system.decision_se) # 切换到加点 $scene = Scene_Lvup.new end return end end #-------------------------------------------------------------------------- # ● 刷新画面 (状态窗口被激活的情况下) #-------------------------------------------------------------------------- def update_status # 按下 B 键的情况下 if Input.trigger?(Input::B) # 演奏取消 SE $game_system.se_play($data_system.cancel_se) # 激活命令窗口 @command_window.active = true @status_window.active = false @status_window.index = -1 return end # 按下 C 键的情况下 if Input.trigger?(Input::C) # 命令窗口的光标位置分支 case @command_window.index when 1 # 特技 # 本角色的行动限制在 2 以上的情况下 if $game_party.actors[@status_window.index].restriction >= 2 # 演奏冻结 SE $game_system.se_play($data_system.buzzer_se) return end # 演奏确定 SE $game_system.se_play($data_system.decision_se) # 切换到特技画面 $scene = Scene_Skill.new(@status_window.index) when 2 # 装备 # 演奏确定 SE $game_system.se_play($data_system.decision_se) # 切换的装备画面 $scene = Scene_Equip.new(@status_window.index) when 3 # 状态 # 演奏确定 SE $game_system.se_play($data_system.decision_se) # 切换到状态画面 $scene = Scene_Status.new(@status_window.index) end return end end end
#============================================================================== # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息 #============================================================================== #需要调整的地方: #1.菜单中改角色脸谱为角色头像 #2.升级加点中改角色脸谱为战斗图 #3.加点属性更改 class Scene_Save #-------------------------------------------------------------------------- # ● 写入存档数据 # file : 写入用文件对像 (已经打开) #-------------------------------------------------------------------------- def write_save_data(file) # 生成描绘存档文件用的角色图形 characters = [] for i in 0...[$game_party.actors.size,4].min actor = $game_party.actors[i] characters.push([actor.character_name, actor.character_hue]) end # 写入描绘存档文件用的角色数据 Marshal.dump(characters, file) # 写入测量游戏时间用画面计数 Marshal.dump(Graphics.frame_count, file) # 增加 1 次存档次数 $game_system.save_count += 1 # 保存魔法编号 # (将编辑器保存的值以随机值替换) $game_system.magic_number = $data_system.magic_number # 写入各种游戏对像 Marshal.dump($game_system, file) Marshal.dump($game_switches, file) Marshal.dump($game_variables, file) Marshal.dump($game_self_switches, file) Marshal.dump($game_screen, file) Marshal.dump($game_actors, file) Marshal.dump($game_party, file) Marshal.dump($game_troop, file) Marshal.dump($game_map, file) Marshal.dump($game_player, file) end end class Scene_Battle #-------------------------------------------------------------------------- # ● 设置物品或特技对像方的战斗者 # scope : 特技或者是物品的范围 #-------------------------------------------------------------------------- def set_target_battlers(scope) # 行动方的战斗者是敌人的情况下 if @active_battler.is_a?(Game_Enemy) # 效果范围分支 case scope when 1 # 敌单体 index = @active_battler.current_action.target_index @target_battlers.push($game_party.smooth_target_actor(index)) when 2 # 敌全体 for actor in 0...[$game_party.actors.size,4].min if $game_party.actors[actor].exist? @target_battlers.push($game_party.actors[actor]) end end when 3 # 我方单体 index = @active_battler.current_action.target_index @target_battlers.push($game_troop.smooth_target_enemy(index)) when 4 # 我方全体 for enemy in $game_troop.enemies if enemy.exist? @target_battlers.push(enemy) end end when 5 # 我方单体 (HP 0) index = @active_battler.current_action.target_index enemy = $game_troop.enemies[index] if enemy != nil and enemy.hp0? @target_battlers.push(enemy) end when 6 # 我方全体 (HP 0) for enemy in $game_troop.enemies if enemy != nil and enemy.hp0? @target_battlers.push(enemy) end end when 7 # 使用者 @target_battlers.push(@active_battler) end end # 行动方的战斗者是角色的情况下 if @active_battler.is_a?(Game_Actor) # 效果范围分支 case scope when 1 # 敌单体 index = @active_battler.current_action.target_index @target_battlers.push($game_troop.smooth_target_enemy(index)) when 2 # 敌全体 for enemy in $game_troop.enemies if enemy.exist? @target_battlers.push(enemy) end end when 3 # 我方单体 index = @active_battler.current_action.target_index @target_battlers.push($game_party.smooth_target_actor(index)) when 4 # 我方全体 for actor in 0...[$game_party.actors.size,4].min if $game_party.actors[actor].exist? @target_battlers.push($game_party.actors[actor]) end end when 5 # 我方单体 (HP 0) index = @active_battler.current_action.target_index actor = $game_party.actors[index] if actor != nil and actor.hp0? @target_battlers.push(actor) end when 6 # 我方全体 (HP 0) for actor in 0...[$game_party.actors.size,4].min if $game_party.actors[actor] != nil and $game_party.actors[actor].hp0? @target_battlers.push($game_party.actors[actor]) end end when 7 # 使用者 @target_battlers.push(@active_battler) end end end #-------------------------------------------------------------------------- # ● 生成行动循序 #-------------------------------------------------------------------------- def make_action_orders # 初始化序列 @action_battlers @action_battlers = [] # 添加敌人到 @action_battlers 序列 for enemy in $game_troop.enemies @action_battlers.push(enemy) end # 添加角色到 @action_battlers 序列 for actor in 0...[$game_party.actors.size,4].min @action_battlers.push($game_party.actors[actor]) end # 确定全体的行动速度 for battler in @action_battlers battler.make_action_speed end # 按照行动速度从大到小排列 @action_battlers.sort! {|a,b| b.current_action.speed - a.current_action.speed } end #-------------------------------------------------------------------------- # ● 开始结束战斗回合 #-------------------------------------------------------------------------- def start_phase5 # 转移到回合 5 @phase = 5 if $game_switches[79] == true $game_variables[100] += 1 end # 演奏战斗结束 ME $game_system.me_play($game_system.battle_end_me) # 还原为战斗开始前的 BGM $game_system.bgm_play($game_temp.map_bgm) # 初始化 EXP、金钱、宝物 exp = 0 gold = 0 treasures = [] # 循环 for enemy in $game_troop.enemies # 敌人不是隐藏状态的情况下 unless enemy.hidden # 获得 EXP、增加金钱 exp += enemy.exp gold += enemy.gold # 出现宝物判定 if rand(100) < enemy.treasure_prob if enemy.item_id > 0 treasures.push($data_items[enemy.item_id]) end if enemy.weapon_id > 0 treasures.push($data_weapons[enemy.weapon_id]) end if enemy.armor_id > 0 treasures.push($data_armors[enemy.armor_id]) end end end end # 限制宝物数为 6 个 treasures = treasures[0..5] # 获得 EXP for i in 0...[$game_party.actors.size,4].min actor = $game_party.actors[i] if actor.cant_get_exp? == false last_level = actor.level actor.exp += exp if actor.level > last_level @status_window.level_up(i) end end end # 获得金钱 $game_party.gain_gold(gold) # 获得宝物 for item in treasures case item when RPG::Item $game_party.gain_item(item.id, 1) when RPG::Weapon $game_party.gain_weapon(item.id, 1) when RPG::Armor $game_party.gain_armor(item.id, 1) end end # 生成战斗结果窗口 @result_window = Window_BattleResult.new(exp, gold, treasures) # 设置等待计数 @phase5_wait_count = 100 end #-------------------------------------------------------------------------- # ● 转到输入下一个角色的命令 #-------------------------------------------------------------------------- def phase3_next_actor # 循环 begin # 角色的明灭效果 OFF if @active_battler != nil @active_battler.blink = false end # 最后的角色的情况 if @actor_index == [$game_party.actors.size-1,3].min # 开始主回合 start_phase4 return end # 推进角色索引 @actor_index += 1 @active_battler = $game_party.actors[@actor_index] @active_battler.blink = true # 如果角色是在无法接受指令的状态就再试 end until @active_battler.inputable? # 设置角色的命令窗口 phase3_setup_command_window end end class Arrow_Actor < Arrow_Base #-------------------------------------------------------------------------- # ● 刷新画面 #-------------------------------------------------------------------------- def update super # 光标右 if Input.repeat?(Input::RIGHT) $game_system.se_play($data_system.cursor_se) @index += 1 @index %= [$game_party.actors.size,4].min end # 光标左 if Input.repeat?(Input::LEFT) $game_system.se_play($data_system.cursor_se) @index += $game_party.actors.size - 1 @index %= [$game_party.actors.size,4].min end # 设置活动块坐标 if self.actor != nil self.x = self.actor.screen_x self.y = self.actor.screen_y end end end #============================================================================== # ■ Window_Target #------------------------------------------------------------------------------ # 物品画面与特技画面的、使用对像角色选择窗口。 #============================================================================== class Window_Target < Window_Selectable #-------------------------------------------------------------------------- # ● 初始化对像 #-------------------------------------------------------------------------- def initialize super(0, 0, 336, 480) self.contents = Bitmap.new(width - 32, $game_party.actors.size*112) self.z += 10 @item_max = $game_party.actors.size @top_row = 0 refresh end #-------------------------------------------------------------------------- # ● 刷新 #-------------------------------------------------------------------------- def refresh self.contents.clear for i in 0...$game_party.actors.size x = 4 y = i * 112 actor = $game_party.actors[i] draw_actor_name(actor, x-40, y) #draw_actor_class(actor, x + 144, y) draw_actor_level(actor, x -32 , y + 32) draw_actor_state(actor, x -32, y + 64) draw_actor_hp(actor, x + 152, y + 32) draw_actor_sp(actor, x + 152, y + 64) end end #-------------------------------------------------------------------------- # ● 刷新光标矩形 #-------------------------------------------------------------------------- def update_cursor_rect # 光标位置 -1 为全选、-2 以下为单独选择 (使用者自身) if @index <= -2 self.cursor_rect.set(0, (@index + 10) * 112, self.width - 32, 96) elsif @index == -1 self.cursor_rect.set(0, 0, self.width - 32, @item_max * 112 - 20) else tpy = @index * 112 - self.oy self.cursor_rect.set(0, tpy, self.width - 32, 96) if @index < @top_row @top_row = @index self.oy = @top_row *112 end if @index > @top_row+3 @top_row = @index-3 self.oy = @top_row *112 end end end end #============================================================================== # ■ Window_MenuStatus #------------------------------------------------------------------------------ # 显示菜单画面和同伴状态的窗口。 #============================================================================== class Window_MenuStatus < Window_Selectable #-------------------------------------------------------------------------- # ● 初始化目标 #-------------------------------------------------------------------------- def initialize super(0, 0, 480, 380) self.contents = Bitmap.new(width - 32, $game_party.actors.size*112) refresh @top_row = 0 self.active = false self.index = -1 end #-------------------------------------------------------------------------- # ● 刷新 #-------------------------------------------------------------------------- def refresh self.contents.clear @item_max = $game_party.actors.size for i in 0...$game_party.actors.size x = 64 y = i * 112 if i <=3 self.contents.font.color = Color.new(255,255,0,255) #self.contents.draw_text(x,y,340,32,"[出战]",2) self.contents.font.color = normal_color else self.contents.font.color = Color.new(128,128,128,255) self.contents.draw_text(x,y,340,32,"[支援]",2) self.contents.font.color = normal_color end actor = $game_party.actors[i] draw_actor_graphic(actor, x-20, y + 80) draw_actor_name(actor, x+20, y) #draw_actor_class(actor, x + 144, y) draw_actor_level(actor, x+20, y + 32) draw_actor_state(actor, x+20, y + 64) #draw_actor_exp(actor, x, y + 64) draw_actor_hp(actor, x + 136, y + 32) draw_actor_sp(actor, x + 136, y + 64) end end #-------------------------------------------------------------------------- # ● 刷新光标矩形 #-------------------------------------------------------------------------- def update_cursor_rect if @index < 0 self.cursor_rect.empty else tpy = @index * 112 - self.oy self.cursor_rect.set(0, tpy, self.width - 32, 96) if @index < @top_row @top_row = @index self.oy = @top_row *112 end if @index > @top_row+3 @top_row = @index-3 self.oy = @top_row *112 end end end end class Game_Party #-------------------------------------------------------------------------- # ● 全灭判定 #-------------------------------------------------------------------------- def all_dead? # 同伴人数为 0 的情况下 if $game_party.actors.size == 0 return false end # 同伴中无人 HP 在 0 以上 for i in 0..3 if @actors[i] != nil and@actors[i].hp >0 return false end end # 全灭 return true end #-------------------------------------------------------------------------- # ● 加入同伴 # actor_id : 角色 ID #-------------------------------------------------------------------------- def add_actor(actor_id) # 获取角色 actor = $game_actors[actor_id] # 同伴人数未满 4 人、本角色不在队伍中的情况下 if not @actors.include?(actor) # 添加角色 @actors.push(actor) # 还原主角 $game_player.refresh end end end #============================================================================== # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息 #============================================================================== class Scene_Menu # -------------------------------- def initialize(menu_index = 0) @menu_index = menu_index @changer = 0 @where = 0 @checker = 0 end # -------------------------------- def main s1 = $data_system.words.item s2 = $data_system.words.skill s3 = $data_system.words.equip s4 = "状态" s5 = "储存进度" s6 = "离开游戏" s7 = "调整队伍" s8 = "升级加点" s9 = "任务列表(未实装)" @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7, s8, s9]) @command_window.index = @menu_index if $game_party.actors.size == 0 @command_window.disable_item(0) @command_window.disable_item(1) @command_window.disable_item(2) @command_window.disable_item(3) end if $game_system.save_disabled @command_window.disable_item(4) end if $game_party.actors.size == 1 @command_window.disable_item(6) end @playtime_window = Window_PlayTime.new @playtime_window.x = 0 @playtime_window.y = 320 @gold_window = Window_Gold.new @gold_window.x = 0 @gold_window.y = 416 @status_window = Window_MenuStatus.new @status_window.x = 260 @status_window.y = 0 Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end Graphics.freeze @command_window.dispose @playtime_window.dispose @gold_window.dispose @status_window.dispose end # -------------------------------- def update @command_window.update @playtime_window.update @gold_window.update @status_window.update if @command_window.active update_command return end if @status_window.active update_status return end end # -------------------------------- def update_command if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) $scene = Scene_Map.new return end if Input.trigger?(Input::C) if $game_party.actors.size == 0 and @command_window.index < 4 $game_system.se_play($data_system.buzzer_se) return end if $game_party.actors.size == 1 and @command_window.index ==6 $game_system.se_play($data_system.buzzer_se) return end case @command_window.index when 0 $game_system.se_play($data_system.decision_se) $scene = Scene_Item.new when 1 $game_system.se_play($data_system.decision_se) @command_window.active = false @status_window.active = true @status_window.index = 0 when 2 $game_system.se_play($data_system.decision_se) @command_window.active = false @status_window.active = true @status_window.index = 0 when 3 $game_system.se_play($data_system.decision_se) @command_window.active = false @status_window.active = true @status_window.index = 0 when 4 if $game_system.save_disabled $game_system.se_play($data_system.buzzer_se) return end $game_system.se_play($data_system.decision_se) $scene = Scene_Save.new when 5 $game_system.se_play($data_system.decision_se) $scene = Scene_End.new when 6 $game_system.se_play($data_system.decision_se) @checker = 0 @command_window.active = false @status_window.active = true @status_window.index = 0 when 7 $game_system.se_play($data_system.decision_se) @command_window.active = false @status_window.active = true @status_window.index = 0 when 8 $game_system.se_play($data_system.decision_se) @command_window.active = false @status_window.active = true @status_window.index = 0 end return end end # -------------------------------- def update_status if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) @command_window.active = true @status_window.active = false @status_window.index = -1 return end if Input.trigger?(Input::C) case @command_window.index when 1 if $game_party.actors[@status_window.index].restriction >= 2 $game_system.se_play($data_system.buzzer_se) return end $game_system.se_play($data_system.decision_se) $scene = Scene_Skill.new(@status_window.index) when 2 $game_system.se_play($data_system.decision_se) $scene = Scene_Equip.new(@status_window.index) when 3 $game_system.se_play($data_system.decision_se) $scene = Scene_Status.new(@status_window.index) when 6 $game_system.se_play($data_system.decision_se) if @checker == 0 @changer = $game_party.actors[@status_window.index] @where = @status_window.index @checker = 1 else $game_party.actors[@where] = $game_party.actors[@status_window.index] $game_party.actors[@status_window.index] = @changer @checker = 0 @status_window.refresh end when 7 $game_system.se_play($data_system.decision_se) $scene = Scene_Lvup.new(@status_window.index) when 8 $game_system.se_play($data_system.decision_se) $scene = Scene_Charactor.new(@status_window.index) end return end end end #插件(升级加点,换队伍顺序,人物介绍,动态行走图) #============================================================================== # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息 #============================================================================== # 作者: 柳柳 # # 说明:这是功能我再比较早期的时候发布在幻森,不过那时候比较笨,方法很糟糕 # 这次是拿上就可以用的。 # # 感谢:Claimh的脚本使我想起这个功能重做了一遍,本想直接用他的,不过他的算法过分 # 冗余了,没好意思用。 #============================================================================== # 使用方法:默认情况下把静态图变为了走步图。如果想自行修改,提供功能如下: # # 角色走步图:draw_walk_actor_graphic # 角色转向图:draw_turn_actor_graphic # # 回复原有静态角色图:删除100行以后的内容。修改下面这个变量可以更改行走速度 #============================================================================== WALK_REFRESH_FRAME_SPEED = 15 # 刷新的速度,越大越慢,你可以改为3左右试试看 #============================================================================== # Window_Base #============================================================================== class Window_Base < Window #-------------------------------------------------------------------------- # 初始化方法 #-------------------------------------------------------------------------- alias initialize_walk initialize def initialize(x, y, width, height) initialize_walk(x, y, width, height) @start_walk = false @turn_index = 0 @turn_phase = 0 end #-------------------------------------------------------------------------- # ★ 角色行走图 # actor : 角色 # x : 描绘的 X 坐标 # y : 描绘的 Y 坐标 #-------------------------------------------------------------------------- def draw_walk_actor_graphic(actor, x, y) bitmap = RPG::Cache.character(actor.character_name, actor.character_hue) cw = bitmap.width / 4 ch = bitmap.height / 4 @start_turn = true case @turn_phase when 0 x_x = 0 when 1 x_x = cw when 2 x_x = cw * 2 when 3 x_x = cw * 3 end src_rect = Rect.new(x_x, 0, cw, ch) self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect) end #-------------------------------------------------------------------------- # ★ 角色转向图 # actor : 角色 # x : 描绘的 X 坐标 # y : 描绘的 Y 坐标 #-------------------------------------------------------------------------- def draw_turn_actor_graphic(actor, x, y) bitmap = RPG::Cache.character(actor.character_name, actor.character_hue) cw = bitmap.width / 4 ch = bitmap.height / 4 @start_turn = true case @turn_phase when 0 x_x = 0 when 1 x_x = ch when 2 x_x = ch * 3 when 3 x_x = ch * 2 end src_rect = Rect.new(0, x_x, cw, ch) self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect) end #-------------------------------------------------------------------------- # 更新(可别使用刷新,玩命耗费内存= =) #-------------------------------------------------------------------------- alias walk_update update def update walk_update if @start_turn == true @turn_index += 1 if @turn_index == WALK_REFRESH_FRAME_SPEED refresh @turn_index = 0 @turn_phase = (@turn_phase+1)%4 end end end end #============================================================================== # Window_Base #============================================================================== class Window_Base < Window #-------------------------------------------------------------------------- # 把原有静态图改为动态走步图 #-------------------------------------------------------------------------- def draw_actor_graphic(actor, x, y) draw_walk_actor_graphic(actor, x, y) end end #============================================================================== # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息 #============================================================================== #============================================================================== # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息 #============================================================================== # 脚本使用设定: LEVEL_UP_POINT = 3 # 每升一级所增加的点数 LEVEL_UP_VARIABLE = 200 # 储存角色点数的变量编号与角色id编号的差值 # 默认情况 = 200, # 则是数据库里1号角色的加点数存于101号变量 # 3号角色的加点数存于103号变量。 # 你可以直接操作变量赠与角色可分配点数 # 每增加一次点数,各项能力值的变化:357-410行 # 使用方法介绍: # 本脚本不会取代原升级功能 也就是说,默认的升级还在,但可以用这个功能手动追加点数。 # 如果你想纯粹使用手动加点(而升级不提升能力),只要把数据库中角色升级能力, # 1-99级全部等于一个相同数值就行了。 # 呼唤加点场景的方法:$scene = Scene_Lvup.new(角色编号,返回菜单编号)。 # 默认都是0号 # 加点场景中,page up,page down换人,如果想加点完毕后返回地图, # 464行$scene = Scene_Menu.new(0)改为$scene = Scene_Map.new # 推荐脚本搭配:魔法商店脚本,两者结合,制作自由型RPG #============================================================================== # ■ Window_Command #------------------------------------------------------------------------------ # 一般的命令选择行窗口。(追加定义) #============================================================================== class Window_Command < Window_Selectable #-------------------------------------------------------------------------- # ● 项目有效化 # index : 项目编号 #-------------------------------------------------------------------------- def able_item(index) draw_item(index, normal_color) end end #============================================================================== # ■ Game_Actor #------------------------------------------------------------------------------ # 处理角色的类。(再定义) #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● 更改 EXP # exp : 新的 EXP #-------------------------------------------------------------------------- def exp=(exp) @exp = [[exp, 9999999].min, 0].max # 升级 while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0 @level += 1 # 增加4点可自由分配的点数 $game_variables[self.id + LEVEL_UP_VARIABLE] += LEVEL_UP_POINT # 学会特技 for j in $data_classes[@class_id].learnings if j.level == @level learn_skill(j.skill_id) end end end # 降级 while @exp < @exp_list[@level] @level -= 1 end # 修正当前的 HP 与 SP 超过最大值 @hp = [@hp, self.maxhp].min @sp = [@sp, self.maxsp].min end end #============================================================================== # ■ Window_Base #------------------------------------------------------------------------------ # 游戏中全部窗口的超级类(追加定义) #============================================================================== class Window_Base < Window #-------------------------------------------------------------------------- # ● 描绘 HP # actor : 角色 # x : 描画目标 X 坐标 # y : 描画目标 Y 坐标 # width : 描画目标的宽 #-------------------------------------------------------------------------- def draw_actor_hp_lvup(actor, x, y) self.contents.font.color = system_color self.contents.draw_text(x , y, 96, 32, "最大" + $data_system.words.hp) if $temp_hp == 0 self.contents.font.color = normal_color self.contents.draw_text(x + 120 , y, 48, 32, actor.maxhp.to_s, 2) else maxhp = actor.maxhp + $temp_hp self.contents.font.color = Color.new(255, 128, 128, 255) self.contents.draw_text(x + 120 , y, 48, 32, maxhp.to_s ,2) self.contents.font.color = normal_color self.contents.draw_text(x + 155, y, 36, 32, "( ", 2) if $temp_hp >=0 self.contents.font.color = Color.new(255, 128, 128, 255) self.contents.draw_text(x + 155, y, 36, 32, " +",2) else self.contents.font.color = Color.new(255,255,0,255) self.contents.draw_text(x + 155, y, 36, 32, " -",2) end self.contents.draw_text(x + 200, y, 36, 32, $temp_hp.to_s, 2) self.contents.font.color = normal_color self.contents.draw_text(x + 215, y, 36, 32, ")", 2) end end #-------------------------------------------------------------------------- # ● 描绘 SP # actor : 角色 # x : 描画目标 X 坐标 # y : 描画目标 Y 坐标 # width : 描画目标的宽 #-------------------------------------------------------------------------- def draw_actor_sp_lvup(actor, x, y) self.contents.font.color = system_color self.contents.draw_text(x , y, 96, 32, "最大" + $data_system.words.sp) if $temp_sp == 0 self.contents.font.color = normal_color self.contents.draw_text(x + 120 , y, 48, 32, actor.maxsp.to_s, 2) else maxsp = actor.maxsp + $temp_sp self.contents.font.color = Color.new(255, 128, 128, 255) self.contents.draw_text(x + 120 , y, 48, 32, maxsp.to_s ,2) self.contents.font.color = normal_color self.contents.draw_text(x + 155, y, 36, 32, "( ", 2) if $temp_sp >=0 self.contents.font.color = Color.new(255, 128, 128, 255) self.contents.draw_text(x + 155, y, 36, 32, " +",2) else self.contents.font.color = Color.new(255,255,0,255) self.contents.draw_text(x + 155, y, 36, 32, " -",2) end self.contents.draw_text(x + 200, y, 36, 32, $temp_sp.to_s, 2) self.contents.font.color = normal_color self.contents.draw_text(x + 215, y, 36, 32, ")", 2) end end #-------------------------------------------------------------------------- # ● 描绘能力值 # actor : 角色 # x : 描画目标 X 坐标 # y : 描画目标 Y 坐标 # type : 能力值种类 (0~4) #-------------------------------------------------------------------------- def draw_actor_lvup(actor, x, y, type) # 定义数字颜色 lvup = normal_color upcolor = Color.new(255, 128, 128, 255) self.contents.font.color = normal_color case type when 0 parameter_name = $data_system.words.str parameter_value = actor.str parameter_value_temp = parameter_value + $temp_str if $temp_str != 0 lvup = upcolor self.contents.draw_text(x + 256, y, 16, 32, "(") if $temp_str >= 0 self.contents.font.color = lvup self.contents.draw_text(x + 272, y, 80, 32, "+",0) else self.contents.font.color = Color.new(255,255,0,255) self.contents.draw_text(x + 272, y, 80, 32, "-",0) end self.contents.draw_text(x + 272, y, 80, 32, $temp_str.abs.to_s,1) self.contents.font.color = normal_color self.contents.draw_text(x + 272, y, 80, 32, ")", 2) end when 1 parameter_name = $data_system.words.dex parameter_value = actor.dex parameter_value_temp = parameter_value + $temp_dex if $temp_dex != 0 lvup = upcolor self.contents.draw_text(x + 256, y, 16, 32, "(") if $temp_dex >= 0 self.contents.font.color = lvup self.contents.draw_text(x + 272, y, 80, 32, "+",0) else self.contents.font.color = Color.new(255,255,0,255) self.contents.draw_text(x + 272, y, 80, 32, "-",0) end self.contents.draw_text(x + 272, y, 80, 32, $temp_dex.abs.to_s,1) self.contents.font.color = normal_color self.contents.draw_text(x + 272, y, 80, 32, ")", 2) end when 2 parameter_name = $data_system.words.agi parameter_value = actor.agi parameter_value_temp = parameter_value + $temp_agi if $temp_agi != 0 lvup = upcolor self.contents.draw_text(x + 256, y, 16, 32, "(") if $temp_agi >= 0 self.contents.font.color = lvup self.contents.draw_text(x + 272, y, 80, 32, "+",0) else self.contents.font.color = Color.new(255,255,0,255) self.contents.draw_text(x + 272, y, 80, 32, "-",0) end self.contents.draw_text(x + 272, y, 80, 32, $temp_agi.abs.to_s,1) self.contents.font.color = normal_color self.contents.draw_text(x + 272, y, 80, 32, ")", 2) end when 3 parameter_name = $data_system.words.int parameter_value = actor.int parameter_value_temp = parameter_value + $temp_int if $temp_int != 0 lvup = upcolor self.contents.draw_text(x + 256, y, 16, 32, "(") if $temp_int >= 0 self.contents.font.color = lvup self.contents.draw_text(x + 272, y, 80, 32, "+",0) else self.contents.font.color = Color.new(255,255,0,255) self.contents.draw_text(x + 272, y, 80, 32, "-",0) end self.contents.draw_text(x + 272, y, 80, 32, $temp_int.abs.to_s,1) self.contents.font.color = normal_color self.contents.draw_text(x + 272, y, 80, 32, ")", 2) end when 4 parameter_name = "剩余点数" parameter_value = $point if $point != 0 lvup = upcolor end 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 + 120, y, 36, 32, parameter_value.to_s) if type != 4 self.contents.draw_text(x + 150, y, 36, 32, "→") end self.contents.font.color = lvup self.contents.draw_text(x + 180, y, 60, 32, parameter_value_temp.to_s) self.contents.font.color = normal_color end end #============================================================================== # ■ Window_lvup #------------------------------------------------------------------------------ # 显示升级状态窗口。 #============================================================================== class Window_Lvup < Window_Base #-------------------------------------------------------------------------- # ● 初始化对像 # actor : 角色 #-------------------------------------------------------------------------- def initialize(actor) super(0, 0, 512, 320) self.contents = Bitmap.new(width - 32, height - 32) @actor = actor refresh end #-------------------------------------------------------------------------- # ● 刷新 #-------------------------------------------------------------------------- def refresh self.contents.clear draw_actor_graphic(@actor, 40, 112) draw_actor_name(@actor, 4, 0) draw_actor_class(@actor, 4 + 144, 0) draw_actor_level(@actor, 96, 32) draw_actor_state(@actor, 96, 64) draw_actor_hp_lvup(@actor, 96+128, 32) draw_actor_sp_lvup(@actor, 96+128, 64) draw_actor_lvup(@actor, 96, 128, 0) draw_actor_lvup(@actor, 96, 160, 1) draw_actor_lvup(@actor, 96, 192, 2) draw_actor_lvup(@actor, 96, 224, 3) draw_actor_lvup(@actor, 96, 256, 4) end end #============================================================================== # ■ Window_Help #------------------------------------------------------------------------------ # 特技及物品的说明、角色的状态显示的窗口。 #============================================================================== class Window_Lvup_Help < Window_Base #-------------------------------------------------------------------------- # ● 初始化对像 #-------------------------------------------------------------------------- def initialize super(0, 320, 640, 160) self.contents = Bitmap.new(width - 32, height - 32) @test = "" #——这个东西用来检测,节约内存专用 end #-------------------------------------------------------------------------- # ● 设置文本 #-------------------------------------------------------------------------- def lvup_text(text1, text2 = nil, text3 = nil, text4 = nil) if @test != text1 @test = text1 else return end self.contents.clear self.contents.font.color = normal_color self.contents.draw_text(4, 0, self.width - 40, 32, text1) if text2 != nil self.contents.draw_text(4 , 32, self.width - 40, 32, text2) end self.contents.font.size -= 4 if text3 != nil self.contents.draw_text(4 , 64, self.width - 40, 32, text3) end if text4 != nil self.contents.draw_text(4 , 96, self.width - 40, 32, text4) end self.contents.font.size += 4 end end #============================================================================== # ■ Scene_lvup #------------------------------------------------------------------------------ # 处理升级画面的类。 #============================================================================== class Scene_Lvup #-------------------------------------------------------------------------- # ● 初始化对像 # actor_index : 角色索引 # menu_index : 选项起始位置 #-------------------------------------------------------------------------- def initialize(actor_index = 0 , menu_index = 0) @actor_index = actor_index @menu_index = menu_index end #-------------------------------------------------------------------------- # ● 主处理 #-------------------------------------------------------------------------- def main s1 = "增加体力" s2 = "增加"+$data_system.words.str s3 = "增加"+$data_system.words.dex s4 = "增加"+$data_system.words.agi s5 = "增加"+$data_system.words.int s6 = "确认加点" s7 = "点数重置" @command_window = Window_Command.new(128, [s1, s2, s3, s4, s5, s6, s7]) @command_window.index = @menu_index # 获取角色 @actor = $game_party.actors[@actor_index] # 将角色的剩余点数带入 $point = $game_variables[@actor.id + LEVEL_UP_VARIABLE] # 初始化临时量 $temp_str = 0 $temp_dex = 0 $temp_agi = 0 $temp_int = 0 $temp_hp = 0 $temp_sp = 0 #========================================================================= # 特别提示:这些设置也可以使用小数,但是可能出现0值意外错误 # (各种编程语言都有这种意外),建议还是使用整数,正负不限 #========================================================================= # 每提升一次力量,提升多少附加能力 #========================================================================= @str_hp = 5 # 每提升一次力量附加提升多少HP @str_sp = 0 # 每提升一次力量附加提升多少SP @str_dex = 1 # 每提升一次力量附加提升多少灵巧 @str_agi = 1 # 每提升一次力量附加提升多少速度 @str_int = 0 # 每提升一次力量附加提升多少魔力 @str_str = 3 # 每提升一次力量附加提升多少力量 #========================================================================= # 每提升一次灵巧,提升多少附加能力 #========================================================================= @dex_hp = 2 # 每提升一次灵巧附加提升多少HP @dex_sp = 3 # 每提升一次灵巧附加提升多少SP @dex_str = 1 # 每提升一次灵巧附加提升多少力量 @dex_agi = 1 # 每提升一次灵巧附加提升多少速度 @dex_int = 0 # 每提升一次灵巧附加提升多少魔力 @dex_dex = 3 # 每提升一次灵巧附加提升多少灵巧 #========================================================================= # 每提升一次速度,提升多少附加能力 #========================================================================= @agi_hp = 0 # 每提升一次速度附加提升多少HP @agi_sp = 0 # 每提升一次速度附加提升多少SP @agi_str = 0 # 每提升一次速度附加提升多少力量 @agi_dex = 1 # 每提升一次速度附加提升多少灵巧 @agi_int = 0 # 每提升一次速度附加提升多少魔力 @agi_agi = 3 # 每提升一次速度附加提升多少速度 #========================================================================= # 每提升一次魔力,提升多少附加能力 #========================================================================= @int_hp = 1 # 每提升一次魔力附加提升多少HP @int_sp = 15 # 每提升一次魔力附加提升多少SP @int_str = -1 # 每提升一次魔力附加提升多少力量 @int_dex = 0 # 每提升一次魔力附加提升多少灵巧 @int_agi = 0 # 每提升一次魔力附加提升多少速度 @int_int = 7 # 每提升一次魔力附加提升多少魔力 #========================================================================= # 每提升一次体力,提升多少附加能力 #========================================================================= @hp = 20 # 每提升一次体力提升多少HP @sp = 10 # 每提升一次体力提升多少SP @hp_str = 0 # 每提升一次体力提升多少力量 @hp_dex = 0 # 每提升一次体力提升多少速度 @hp_agi = 0 # 每提升一次体力提升多少灵巧 @hp_int = -1 # 每提升一次体力提升多少魔力 # 定义说明文字 @text_hp_sc = "体力可以增加生存的能力,增加HP与SP的最大上限!" @text_str_sc = $data_system.words.str + "可以增加物理攻击和物理技能的威力!" @text_dex_sc = $data_system.words.dex + "可以提高攻击的命中率和防御系数!" @text_agi_sc = $data_system.words.agi + "可以提高行动速度、逃跑成功率!" @text_int_sc = $data_system.words.int + "可以提高魔法攻击的效果!" @text_save = "保存分配情况并返回游戏" @text_reset= "重新分配能力点数" @text_2 = "每增加一次此项能力值,可以提升能力值" @text_hp = "最大" + $data_system.words.hp + "值" @text_sp = "最大" + $data_system.words.sp + "值" @text_str = "最大" + $data_system.words.str + "值" @text_dex = "最大" + $data_system.words.dex + "值" @text_agi = "最大" + $data_system.words.agi + "值" @text_int = "最大" + $data_system.words.int + "值" s_disable # 生成状态窗口 @lvup_window = Window_Lvup.new(@actor) @lvup_window.x = 128 @lvup_window.y = 0 # 生成帮助窗口并初始化帮助文本 @help_window = Window_Lvup_Help.new # 执行过渡 Graphics.transition(40, "Graphics/Transitions/" + $data_system.battle_transition) # 主循环 loop do # 刷新游戏画面 Graphics.update # 刷新输入信息 Input.update # 刷新画面 update # 如果切换画面就中断循环 if $scene != self break end end # 准备过渡 Graphics.freeze # 释放窗口 @command_window.dispose @lvup_window.dispose @help_window.dispose end #-------------------------------------------------------------------------- # ● 刷新画面 #-------------------------------------------------------------------------- def update # 刷新窗口 @command_window.update # 选项明暗判断(因为太消耗资源,所以屏蔽掉了) s_disable @lvup_window.update #============================================================= # 按下 B 键的情况下 #============================================================= if Input.trigger?(Input::B) # 演奏取消 SE $game_system.se_play($data_system.cancel_se) # 切换到地图画面 $scene = Scene_Menu.new return end #============================================================= # 按下 C 键的情况下 #============================================================= if Input.trigger?(Input::C) if @command_window.index == 5 # 演奏确定 SE $game_system.se_play($data_system.decision_se) # 将角色的剩余点数带回 $game_variables[@actor.id + LEVEL_UP_VARIABLE] = $point # 将角色点数实际加上 @actor.str += $temp_str @actor.dex += $temp_dex @actor.agi += $temp_agi @actor.int += $temp_int @actor.maxhp += $temp_hp @actor.maxsp += $temp_sp # 切换到地图画面 $scene = Scene_Menu.new return end if @command_window.index == 6 # 演奏确定 SE $game_system.se_play($data_system.cancel_se) # 将角色的剩余点数带入 $point = $game_variables[@actor.id + LEVEL_UP_VARIABLE] # 初始化临时量 $temp_str = 0 $temp_dex = 0 $temp_agi = 0 $temp_int = 0 $temp_hp = 0 $temp_sp = 0 @lvup_window.refresh return end if $point == 0 # 演奏冻结 SE $game_system.se_play($data_system.buzzer_se) return end case @command_window.index when 0 # 演奏确定 SE $game_system.se_play($data_system.decision_se) $temp_hp += @hp $temp_sp += @sp $temp_str += @hp_str $temp_dex += @hp_dex $temp_agi += @hp_agi $temp_int += @hp_int $point -= 1 @lvup_window.refresh s_disable return when 1 # 演奏确定 SE $game_system.se_play($data_system.decision_se) $temp_str += @str_str $temp_hp += @str_hp $temp_sp += @str_sp $temp_dex += @str_dex $temp_agi += @str_agi $temp_int += @str_int $point -= 1 @lvup_window.refresh s_disable return when 2 # 演奏确定 SE $game_system.se_play($data_system.decision_se) $temp_dex += @dex_dex $temp_hp += @dex_hp $temp_sp += @dex_sp $temp_str += @dex_str $temp_agi += @dex_agi $temp_int += @dex_int $point -= 1 @lvup_window.refresh s_disable return when 3 # 演奏确定 SE $game_system.se_play($data_system.decision_se) $temp_agi += @agi_agi $temp_hp += @agi_hp $temp_sp += @agi_sp $temp_str += @agi_str $temp_dex += @agi_dex $temp_int += @agi_int $point -= 1 @lvup_window.refresh s_disable return when 4 # 演奏确定 SE $game_system.se_play($data_system.decision_se) $temp_int += @int_int $temp_hp += @int_hp $temp_sp += @int_sp $temp_str += @int_str $temp_dex += @int_dex $temp_agi += @int_agi $point -= 1 @lvup_window.refresh s_disable return end end #============================================================= # 什么都没有按下的情况 #============================================================= case @command_window.index when 0 # 增加体力 temptext1 = @text_hp + @hp.to_s + "点 " + @text_str + @hp_str.to_s + "点 " + @text_dex + @hp_dex.to_s + "点" temptext2 = @text_sp + @sp.to_s + "点 " + @text_agi + @hp_agi.to_s + "点 " + @text_int + @hp_int.to_s + "点" @help_window.lvup_text(@text_hp_sc , @text_2 , temptext1 , temptext2) when 1 # 增加力量 temptext1 = @text_hp + @str_hp.to_s + "点 " + @text_str + @str_str.to_s + "点 " + @text_dex + @str_dex.to_s + "点" temptext2 = @text_sp + @str_sp.to_s + "点 " + @text_agi + @str_agi.to_s + "点 " + @text_int + @str_int.to_s + "点" @help_window.lvup_text(@text_str_sc , @text_2 , temptext1 , temptext2) when 2 # 增加灵巧 temptext1 = @text_hp + @dex_hp.to_s + "点 " + @text_str + @dex_agi.to_s + "点 " + @text_dex + @dex_dex.to_s + "点" temptext2 = @text_sp + @dex_sp.to_s + "点 " + @text_agi + @dex_agi.to_s + "点 " + @text_int + @dex_int.to_s + "点" @help_window.lvup_text(@text_dex_sc , @text_2 , temptext1 , temptext2) when 3 # 增加速度 temptext1 = @text_hp + @agi_hp.to_s + "点 " + @text_str + @agi_str.to_s + "点 " + @text_dex + @agi_dex.to_s + "点" temptext2 = @text_sp + @agi_sp.to_s + "点 " + @text_agi + @agi_agi.to_s + "点 " + @text_int + @agi_int.to_s + "点" @help_window.lvup_text(@text_agi_sc , @text_2 , temptext1 , temptext2) when 4 # 增加魔力 temptext1 = @text_hp + @int_hp.to_s + "点 " + @text_str + @int_str.to_s + "点 " + @text_dex + @int_dex.to_s + "点" temptext2 = @text_sp + @int_sp.to_s + "点 " + @text_agi + @int_agi.to_s + "点 " + @text_int + @int_int.to_s + "点" @help_window.lvup_text(@text_int_sc , @text_2 , temptext1 , temptext2) when 5 # 保存设定 @help_window.lvup_text(@text_save) when 6 # 点数重置 @help_window.lvup_text(@text_reset) end #============================================================= # 按下R与L换人的情况 #============================================================= if Input.trigger?(Input::R) # 演奏光标 SE $game_system.se_play($data_system.cursor_se) # 移至下一位角色 @actor_index += 1 @actor_index %= $game_party.actors.size # 切换到别的状态画面 $scene = Scene_Lvup.new(@actor_index , @command_window.index) return end # 按下 L 键的情况下 if Input.trigger?(Input::L) # 演奏光标 SE $game_system.se_play($data_system.cursor_se) # 移至上一位角色 @actor_index += $game_party.actors.size - 1 @actor_index %= $game_party.actors.size # 切换到别的状态画面 $scene = Scene_Lvup.new(@actor_index , @command_window.index) return end end #-------------------------------------------------------------------------- # ● 选项明暗判断 #-------------------------------------------------------------------------- def s_disable # 判断剩余点数是否为0,如果为0,那么增加选项表示为暗色 if $point == 0 @command_window.disable_item(0) @command_window.disable_item(1) @command_window.disable_item(2) @command_window.disable_item(3) @command_window.disable_item(4) else @command_window.able_item(0) @command_window.able_item(1) @command_window.able_item(2) @command_window.able_item(3) @command_window.able_item(4) end end end #============================================================================== # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息 #============================================================================== #============================================================================== # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息 #==============================================================================
新建画布1.png (27.45 KB, 下载次数: 38)
#============================================================================== # ■ Window_j_mission #------------------------------------------------------------------------------ # 显示任务的窗口。 #============================================================================== $任务叙术_1 = "打以下列怪" $任务叙术_2 = "吱喳鸡" $任务叙术_3 = "狸花猫" $任务类型 = "打怪" $已完成任务 = 1 $任务完成率 = 1 $任务要求打多少只_1 = 5 $任务你打了多少只_1 = 10 $任务要求打多少只_2 = 0 $任务你打了多少只_2 = 20 $是否已完成 = "不是" class Window_j_mission < Window_Base #-------------------------------------------------------------------------- # ● 初始化窗口 #-------------------------------------------------------------------------- def initialize super(0, 0, 100, 480) self.contents = Bitmap.new(width - 32, height - 32) refresh end #-------------------------------------------------------------------------- # ● 刷新 #-------------------------------------------------------------------------- def refresh self.contents.clear #cx = contents.text_size($data_system.words.gold).width self.contents.font.color = normal_color self.contents.font.size = 16 self.contents.draw_text(0, 0, 70, 60, "现在任务", 0) self.contents.draw_text(0, 0+20, 70, 60, "#{$任务类型}", 0) self.contents.draw_text(0, 0+40, 70, 60, "#{$任务叙术_1}", 0) self.contents.draw_text(0, 0+60, 70, 60, "#{$任务叙术_2}", 0) self.contents.draw_text(0, 0+80, 70, 60, "#{$任务叙术_3}", 0) self.contents.font.color = text_color(5) self.contents.font.size = 16 self.contents.draw_text(0, 150, 70, 60, "已打完成数量", 0) self.contents.draw_text(0, 150+20, 70, 60, "#{$任务你打了多少只_1}"+"/"+"#{$任务要求打多少只_1}", 0) self.contents.draw_text(0, 150+40, 70, 60, "#{$任务你打了多少只_2}"+"/"+"#{$任务要求打多少只_2}", 0) self.contents.font.color = text_color(6) self.contents.font.size = 16 self.contents.draw_text(0, 350, 70, 60, "任务进度", 0) self.contents.draw_text(0, 350+20, 70, 60,"是否已完成", 0) self.contents.draw_text(0, 350+40, 70, 60,"#{$是否已完成}" , 0) end end
灯笼菜刀王 发表于 2019-3-30 15:04
那你可以自己加窗口
常规窗口写法可以参考 game gold 它就是标准的XP窗口模范, 把def refresh ...
9RYOPPO808XSL]$`]_1R)9L.png (717.49 KB, 下载次数: 28)
OS%X@6K[T7$W{Y}WGD4WQ[M.png (1.12 MB, 下载次数: 25)
欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |