$db_point = {} $db_point_old = {} $db_point_enable = {} for i in 1 ... $data_actors.size $db_point[i] = [0,0,0,0,0,0] $db_point_old[i] = [0,0,0,0,0] $db_point_enable[i] = [true,true,true,true,true] end
attr_accessor :db_point_old attr_accessor :db_point_enable attr_accessor :db_point
@db_point = {} @db_point_old = {} @db_point_enable = {} for i in 1 ... $data_actors.size @db_point[i] = [0,0,0,0,0,0] @db_point_old[i] = [0,0,0,0,0] @db_point_enable[i] = [true,true,true,true,true] 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 @系统菜单 = Sprite.new @系统菜单.bitmap = RPG::Cache.picture("系统菜单整体") @系统菜单.visible = true @系统菜单.x = 0 @系统菜单.y = 453 @系统菜单.z = 1 @a = Sprite.new @a.bitmap = Bitmap.new("Graphics/Pictures/菜单类/加点菜单.png") @a.opacity=255 s1 = "" s2 = "" s3 = "" s4 = "" s5 = "" s6 = "" s7 = "" @command_window = Window_Commandjd.new(128, [s1, s2, s3, s4, s5, s6, s7]) @command_window.index = @menu_index @command_window.x = 185 @command_window.y = 94#416 # 获取角色 @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 = 0 # 每提升一次力量附加提升多少HP @str_sp = 0 # 每提升一次力量附加提升多少SP @str_dex = 0 # 每提升一次力量附加提升多少灵巧 @str_agi = 0.1 # 每提升一次力量附加提升多少速度 @str_int = 0 # 每提升一次力量附加提升多少魔力 @str_str = 2 # 每提升一次力量附加提升多少力量 #========================================================================= # 每提升一次灵巧,提升多少附加能力 #========================================================================= @dex_hp = 10 # 每提升一次速度附加提升多少HP @dex_sp = 0 # 每提升一次速度附加提升多少SP @dex_str = 0 # 每提升一次速度附加提升多少力量 @dex_dex = 2 # 每提升一次速度附加提升多少灵巧 @dex_int = 0 # 每提升一次速度附加提升多少魔力 @dex_agi = 0 # 每提升一次速度附加提升多少速度 #========================================================================= # 每提升一次速度,提升多少附加能力 #========================================================================= @agi_hp = 0 # 每提升一次速度附加提升多少HP @agi_sp = 0 # 每提升一次速度附加提升多少SP @agi_str = 0 # 每提升一次速度附加提升多少力量 @agi_dex = 0 # 每提升一次速度附加提升多少灵巧 @agi_int = 0.1 # 每提升一次速度附加提升多少魔力 @agi_agi = 2 # 每提升一次速度附加提升多少速度 #========================================================================= # 每提升一次魔力,提升多少附加能力 #========================================================================= @int_hp = 0 # 每提升一次魔力附加提升多少HP @int_sp = 60 # 每提升一次魔力附加提升多少SP @int_str = 0 # 每提升一次魔力附加提升多少力量 @int_dex = 0 # 每提升一次魔力附加提升多少灵巧 @int_agi = 0 # 每提升一次魔力附加提升多少速度 @int_int = 2 # 每提升一次魔力附加提升多少魔力 #========================================================================= # 每提升一次体力,提升多少附加能力 #========================================================================= @hp = 60 # 每提升一次体力提升多少HP @sp = 10 # 每提升一次体力提升多少SP @hp_str = 0 # 每提升一次体力提升多少力量 @hp_dex = 0 # 每提升一次体力提升多少速度 @hp_agi = 0 # 每提升一次体力提升多少灵巧 @hp_int = 0 # 每提升一次体力提升多少魔力 # 定义说明文字 @text_hp_sc = "体力可以增加生存的能力,可以延长生存的时间!" @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 + "可以提高魔法的效果,可以增加1点魔法!和魔法防御" @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 = 0 @lvup_window.y = 0 # 执行过渡 Graphics.transition # 主循环 loop do # 刷新游戏画面 Graphics.update # 刷新输入信息 Input.update # 刷新画面 update # 如果切换画面就中断循环 if $scene != self break end end # 准备过渡 Graphics.freeze # 释放窗口 @command_window.dispose @lvup_window.dispose @a.dispose @系统菜单.dispose end #-------------------------------------------------------------------------- # ● 刷新画面 #-------------------------------------------------------------------------- def update lcy = [] m = 0 for i in 0...$game_party.actors.size actor = $game_party.actors[i] if actor.id <= 22 lcy[m] = i m += 1 end end # 刷新窗口 @command_window.update # 选项明暗判断(因为太消耗资源,所以屏蔽掉了) s_disable @lvup_window.update #============================================================= # 按下 B 键的情况下 #============================================================= if Input.trigger?(Input::B) for i in 0..4 #加的3行 ($game_system.db_point[@actor.id])[i] = ($game_system.db_point_old[@actor.id])[i] end for i in 0..4 #加的3行 ($game_system.db_point_old[@actor.id])[i] = ($game_system.db_point[@actor.id])[i] end # 演奏取消 SE $game_system.se_play($data_system.cancel_se) # 切换到地图画面 $scene = Scene_Atactor1.new return end #============================================================= # 按下 C 键的情况下 #============================================================= if Input.trigger?(Input::C) if @command_window.index == 6 for i in 0..4 #加的3行 ($game_system.db_point_old[@actor.id])[i] = ($game_system.db_point[@actor.id])[i] end for i in 0..4 #加的3行 ($game_system.db_point[@actor.id])[i] = ($game_system.db_point_old[@actor.id])[i] end # 演奏确定 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 # 演奏光标 SE $game_system.se_play($data_system.cursor_se) # 移至下一位角色 @actor_index += 1 @actor_index %= lcy.size#$game_party.actors.size # p lcy.size # 切换到别的状态画面 $scene = Scene_Lvup.new(@actor_index , @command_window.index) # $scene = Scene_Menu.new(0) return end if @command_window.index == 5 for i in 0..4 #加的3行 ($game_system.db_point[@actor.id])[i] = ($game_system.db_point_old[@actor.id])[i] end for i in 0..4 #加的3行 ($game_system.db_point_old[@actor.id])[i] = ($game_system.db_point[@actor.id])[i] end # 演奏确定 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 if !($game_system.db_point_enable[@actor.id])[0] #加的判断 # 演奏冻结 SE $game_system.se_play($data_system.buzzer_se) return else # 演奏确定 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 ($game_system.db_point[@actor.id])[0] += 1 s_disable return end when 1 if !($game_system.db_point_enable[@actor.id])[1]#加的判断 # 演奏冻结 SE $game_system.se_play($data_system.buzzer_se) return else # 演奏确定 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 ($game_system.db_point[@actor.id])[1] += 1 s_disable return end when 2 if !($game_system.db_point_enable[@actor.id])[2]#加的判断 # 演奏冻结 SE $game_system.se_play($data_system.buzzer_se) return else # 演奏确定 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 ($game_system.db_point[@actor.id])[2] += 1 s_disable return end when 3 if !($game_system.db_point_enable[@actor.id])[3]#加的判断 # 演奏冻结 SE $game_system.se_play($data_system.buzzer_se) return else # 演奏确定 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 ($game_system.db_point[@actor.id])[3] += 1 s_disable return end when 4 if !($game_system.db_point_enable[@actor.id])[4]#加的判断 # 演奏冻结 SE $game_system.se_play($data_system.buzzer_se) return else # 演奏确定 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 ($game_system.db_point[@actor.id])[4] += 1 s_disable return end 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 + "点" 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 + "点" 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 + "点" 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 + "点" 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 + "点" when 6 # 保存设定 # @help_window.lvup_text(@text_save) when 5 # 点数重置 # @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 %= lcy.size#$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 += lcy.size - 1#$game_party.actors.size - 1 @actor_index %= lcy.size#$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.contents.font.color = Color.new(255, 255, 255, 128) @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.contents.font.color = Color.new(255, 255, 255, 255) @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) for i in 0 ..4 #加的判断 if !($game_system.db_point_enable[@actor.id])[i] = ($game_system.db_point[@actor.id])[i] < (($game_system.db_point[@actor.id])[5] / 2) @command_window.contents.font.color = Color.new(255, 255, 255, 128) @command_window.disable_item(i) end end end end end
汪汪 发表于 2015-10-20 19:25
[fold]
#==============================================================================
# ■ Scene_lv ...
511.05 KB, 下载次数: 66
欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |