设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3742|回复: 10
打印 上一主题 下一主题

[已经解决] 【报酬1V】求给加点功能优化并添加各项加点的上限,thanks。

[复制链接]

Lv3.寻梦者 (版主)

  /) /)<

梦石
0
星屑
4212
在线时间
4890 小时
注册时间
2009-2-16
帖子
8434

开拓者短篇七成年组季军

跳转到指定楼层
1
发表于 2012-5-7 13:09:58 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
【我希望改成这样的】
一般每加一点属性点 消耗2(变量1)点待分配点数(LEVEL_UP_POINT),若属性累计加到100(变量2)次以上(需要统计加点总数 每个人物5个变量记录加点数吧),则每加一点该属性需要消耗3(变量3)点待分配点数,若该属性达到150(变量4)点,则无法再增加。
上面4个变量都能在脚本开始设置 像“# 每升一级所增加的点数”这样

【另外是界面的修改】
希望能在每个属性的详细信息显示
另外 在右下角加上“Page UP、Page DOWN键可切换加点对象”的提示
缩小几项属性显示间距 留出空位 右边加上属性加点记录 下面的框上移 下面多出的空位加上上面的消耗说明:“每次加点消耗2点待分配点数,属性100点以上时消耗3点,150以上时不能再增加。”
加上行走图 (顺便一说 我的行走图比默认的大 于是请用中心定位吧)

额 说的挺复杂 其实就是下面这两张图:
一张原图 一张目标修改图 上面说明的应该挺清楚的:



万分感谢!{:2_281:}

如下是加点脚本:

  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================


  4. # 脚本使用设定:

  5. LEVEL_UP_POINT = 2  # 每升一级所增加的点数
  6. LEVEL_UP_VARIABLE = 30   # 储存角色点数的变量编号与角色id编号的差值
  7.                          # 默认情况 = 100,
  8.                          # 则是数据库里1号角色的加点数存于101号变量
  9.                          # 3号角色的加点数存于103号变量。
  10.                          # 你可以直接操作变量赠与角色可分配点数

  11. # 每增加一次点数,各项能力值的变化:357-410行
  12.                         
  13. # 使用方法介绍:

  14. # 本脚本不会取代原默认加点,也就是说,默认的升级还在,但可以用这个功能手动追加点数。
  15. # 如果你想纯粹使用手动加点(而升级不提升能力),只要把数据库中角色升级能力,
  16. # 1-99级全部等于一个相同数值就行了。

  17. # 呼唤加点场景的方法:$scene = Scene_Lvup.new(角色编号,返回菜单编号)。
  18. # 默认都是0号

  19. # 加点场景中,page up,page down换人,如果想加点完毕后返回地图,
  20. # 464行$scene = Scene_Menu.new(0)改为$scene = Scene_Map.new

  21. # 推荐脚本搭配:魔法商店脚本,两者结合,制作自由型RPG

  22. #==============================================================================
  23. # ■ Window_Command
  24. #------------------------------------------------------------------------------
  25. #  一般的命令选择行窗口。(追加定义)
  26. #==============================================================================
  27. class Window_Command < Window_Selectable
  28.   #--------------------------------------------------------------------------
  29.   # ● 项目有效化
  30.   #     index : 项目编号
  31.   #--------------------------------------------------------------------------
  32.   def able_item(index)
  33.     draw_item(index, normal_color)
  34.   end
  35. end
  36. #==============================================================================
  37. # ■ Game_Actor
  38. #------------------------------------------------------------------------------
  39. #  处理角色的类。(再定义)
  40. #==============================================================================
  41. class Game_Actor < Game_Battler
  42.   #--------------------------------------------------------------------------
  43.   # ● 更改 EXP
  44.   #     exp : 新的 EXP
  45.   #--------------------------------------------------------------------------
  46.   def exp=(exp)
  47.     @exp = [[exp, 9999999].min, 0].max
  48.     # 升级
  49.     while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
  50.       @level += 1
  51.       # 增加4点可自由分配的点数
  52.       $game_variables[self.id + LEVEL_UP_VARIABLE] += LEVEL_UP_POINT
  53.       # 学会特技
  54.       for j in $data_classes[@class_id].learnings
  55.         if j.level == @level
  56.           learn_skill(j.skill_id)
  57.         end
  58.       end
  59.     end
  60.     # 降级
  61.     while @exp < @exp_list[@level]
  62.       @level -= 1
  63.     end
  64.     # 修正当前的 HP 与 SP 超过最大值
  65.     @hp = [@hp, self.maxhp].min
  66.     @sp = [@sp, self.maxsp].min
  67.   end
  68. end
  69. #==============================================================================
  70. # ■ Window_Base
  71. #------------------------------------------------------------------------------
  72. #  游戏中全部窗口的超级类(追加定义)
  73. #==============================================================================
  74. class Window_Base < Window
  75.   #--------------------------------------------------------------------------
  76.   # ● 描绘 HP
  77.   #     actor : 角色
  78.   #     x     : 描画目标 X 坐标
  79.   #     y     : 描画目标 Y 坐标
  80.   #     width : 描画目标的宽
  81.   #--------------------------------------------------------------------------
  82.   def draw_actor_hp_lvup(actor, x, y)
  83.     self.contents.font.color = system_color
  84.     self.contents.draw_text(x , y, 96, 32, "最大" + $data_system.words.hp)
  85.     if $temp_hp == 0
  86.       self.contents.font.color = normal_color
  87.       self.contents.draw_text(x + 120 , y, 48, 32, actor.maxhp.to_s, 2)
  88.     else
  89.       maxhp = actor.maxhp + $temp_hp
  90.       self.contents.font.color = Color.new(255, 128, 128, 255)
  91.       self.contents.draw_text(x + 120 , y, 48, 32, maxhp.to_s ,2)
  92.       self.contents.font.color = normal_color      
  93.       self.contents.draw_text(x + 155, y, 36, 32, "( ", 2)
  94.       if $temp_hp >=0
  95.         self.contents.font.color = Color.new(255, 128, 128, 255)
  96.         self.contents.draw_text(x + 155, y, 36, 32, " +",2)
  97.       else
  98.         self.contents.font.color = Color.new(255,255,0,255)
  99.         self.contents.draw_text(x + 155, y, 36, 32, " -",2)
  100.       end
  101.       self.contents.draw_text(x + 200, y, 36, 32, $temp_hp.to_s, 2)
  102.       self.contents.font.color = normal_color
  103.       self.contents.draw_text(x + 215, y, 36, 32, ")", 2)
  104.     end
  105.   end
  106.   #--------------------------------------------------------------------------
  107.   # ● 描绘 SP
  108.   #     actor : 角色
  109.   #     x     : 描画目标 X 坐标
  110.   #     y     : 描画目标 Y 坐标
  111.   #     width : 描画目标的宽
  112.   #--------------------------------------------------------------------------
  113.   def draw_actor_sp_lvup(actor, x, y)
  114.     self.contents.font.color = system_color
  115.     self.contents.draw_text(x , y, 96, 32, "最大" + $data_system.words.sp)
  116.     if $temp_sp == 0
  117.       self.contents.font.color = normal_color
  118.       self.contents.draw_text(x + 120 , y, 48, 32, actor.maxsp.to_s, 2)
  119.     else
  120.       maxsp = actor.maxsp + $temp_sp
  121.       self.contents.font.color = Color.new(255, 128, 128, 255)
  122.       self.contents.draw_text(x + 120 , y, 48, 32, maxsp.to_s ,2)
  123.       self.contents.font.color = normal_color      
  124.       self.contents.draw_text(x + 155, y, 36, 32, "( ", 2)
  125.       if $temp_sp >=0
  126.         self.contents.font.color = Color.new(255, 128, 128, 255)
  127.         self.contents.draw_text(x + 155, y, 36, 32, " +",2)
  128.       else
  129.         self.contents.font.color = Color.new(255,255,0,255)
  130.         self.contents.draw_text(x + 155, y, 36, 32, " -",2)
  131.       end
  132.       self.contents.draw_text(x + 200, y, 36, 32, $temp_sp.to_s, 2)
  133.       self.contents.font.color = normal_color
  134.       self.contents.draw_text(x + 215, y, 36, 32, ")", 2)
  135.     end
  136.   end
  137.   #--------------------------------------------------------------------------
  138.   # ● 描绘能力值
  139.   #     actor : 角色
  140.   #     x     : 描画目标 X 坐标
  141.   #     y     : 描画目标 Y 坐标
  142.   #     type  : 能力值种类 (0~4)
  143.   #--------------------------------------------------------------------------
  144.   def draw_actor_lvup(actor, x, y, type)   
  145.     # 定义数字颜色
  146.     lvup = normal_color
  147.     upcolor = Color.new(255, 128, 128, 255)
  148.     self.contents.font.color = normal_color   
  149.     case type
  150.     when 0
  151.       parameter_name = $data_system.words.str
  152.       parameter_value = actor.str
  153.       parameter_value_temp = parameter_value + $temp_str
  154.       if $temp_str != 0
  155.         lvup = upcolor
  156.         self.contents.draw_text(x + 256, y, 16, 32, "(")
  157.         if $temp_str >= 0
  158.           self.contents.font.color = lvup
  159.           self.contents.draw_text(x + 272, y, 80, 32, "+",0)
  160.         else
  161.           self.contents.font.color = Color.new(255,255,0,255)
  162.           self.contents.draw_text(x + 272, y, 80, 32, "-",0)
  163.         end        
  164.         self.contents.draw_text(x + 272, y, 80, 32, $temp_str.abs.to_s,1)
  165.         self.contents.font.color = normal_color
  166.         self.contents.draw_text(x + 272, y, 80, 32, ")", 2)
  167.       end
  168.     when 1
  169.       parameter_name = $data_system.words.dex
  170.       parameter_value = actor.dex
  171.       parameter_value_temp = parameter_value + $temp_dex
  172.       if $temp_dex != 0
  173.         lvup = upcolor
  174.         self.contents.draw_text(x + 256, y, 16, 32, "(")
  175.         if $temp_dex >= 0
  176.           self.contents.font.color = lvup
  177.           self.contents.draw_text(x + 272, y, 80, 32, "+",0)
  178.         else
  179.           self.contents.font.color = Color.new(255,255,0,255)
  180.           self.contents.draw_text(x + 272, y, 80, 32, "-",0)
  181.         end        
  182.         self.contents.draw_text(x + 272, y, 80, 32, $temp_dex.abs.to_s,1)
  183.         self.contents.font.color = normal_color
  184.         self.contents.draw_text(x + 272, y, 80, 32, ")", 2)
  185.       end
  186.     when 2
  187.       parameter_name = $data_system.words.agi
  188.       parameter_value = actor.agi
  189.       parameter_value_temp = parameter_value + $temp_agi
  190.       if $temp_agi != 0
  191.         lvup = upcolor
  192.         self.contents.draw_text(x + 256, y, 16, 32, "(")
  193.         if $temp_agi >= 0
  194.           self.contents.font.color = lvup
  195.           self.contents.draw_text(x + 272, y, 80, 32, "+",0)
  196.         else
  197.           self.contents.font.color = Color.new(255,255,0,255)
  198.           self.contents.draw_text(x + 272, y, 80, 32, "-",0)
  199.         end        
  200.         self.contents.draw_text(x + 272, y, 80, 32, $temp_agi.abs.to_s,1)
  201.         self.contents.font.color = normal_color
  202.         self.contents.draw_text(x + 272, y, 80, 32, ")", 2)
  203.       end
  204.     when 3
  205.       parameter_name = $data_system.words.int
  206.       parameter_value = actor.int
  207.       parameter_value_temp = parameter_value + $temp_int
  208.       if $temp_int != 0
  209.         lvup = upcolor
  210.         self.contents.draw_text(x + 256, y, 16, 32, "(")
  211.         if $temp_int >= 0
  212.           self.contents.font.color = lvup
  213.           self.contents.draw_text(x + 272, y, 80, 32, "+",0)
  214.         else
  215.           self.contents.font.color = Color.new(255,255,0,255)
  216.           self.contents.draw_text(x + 272, y, 80, 32, "-",0)
  217.         end        
  218.         self.contents.draw_text(x + 272, y, 80, 32, $temp_int.abs.to_s,1)
  219.         self.contents.font.color = normal_color
  220.         self.contents.draw_text(x + 272, y, 80, 32, ")", 2)
  221.       end
  222.     when 4
  223.       parameter_name = "尚未分配能力点数"
  224.       parameter_value = $point
  225.       if $point != 0
  226.         lvup = upcolor
  227.       end
  228.     end   
  229.     self.contents.font.color = system_color
  230.     self.contents.draw_text(x, y, 120, 32, parameter_name)
  231.     self.contents.font.color = normal_color
  232.     self.contents.draw_text(x + 120, y, 36, 32, parameter_value.to_s)   
  233.     if type != 4
  234.       self.contents.draw_text(x + 150, y, 36, 32, "→")
  235.     end  
  236.     self.contents.font.color = lvup
  237.     self.contents.draw_text(x + 180, y, 60, 32, parameter_value_temp.to_s)
  238.     self.contents.font.color = normal_color        
  239.   end
  240. end
  241. #==============================================================================
  242. # ■ Window_lvup
  243. #------------------------------------------------------------------------------
  244. #  显示升级状态窗口。
  245. #==============================================================================
  246. class Window_Lvup < Window_Base
  247.   #--------------------------------------------------------------------------
  248.   # ● 初始化对像
  249.   #     actor : 角色
  250.   #--------------------------------------------------------------------------
  251.   def initialize(actor)
  252.     super(0, 0, 512, 320)
  253.     self.contents = Bitmap.new(width - 32, height - 32)
  254.     @actor = actor
  255.     refresh
  256.   end  
  257.   #--------------------------------------------------------------------------
  258.   # ● 刷新
  259.   #--------------------------------------------------------------------------
  260.   def refresh
  261.     self.contents.clear
  262. #    draw_actor_graphic(@actor, 40, 112)
  263.     draw_actor_name(@actor, 4, 0)
  264.     draw_actor_class(@actor, 4 + 144, 0)
  265.     draw_actor_level(@actor, 96, 32)
  266.     draw_actor_state(@actor, 96, 64)   
  267.     draw_actor_hp_lvup(@actor, 96+128, 32)
  268.     draw_actor_sp_lvup(@actor, 96+128, 64)
  269.     draw_actor_lvup(@actor, 96, 128, 0)
  270.     draw_actor_lvup(@actor, 96, 160, 1)
  271.     draw_actor_lvup(@actor, 96, 192, 2)
  272.     draw_actor_lvup(@actor, 96, 224, 3)
  273.     draw_actor_lvup(@actor, 96, 256, 4)
  274.   end
  275. end
  276. #==============================================================================
  277. # ■ Window_Help
  278. #------------------------------------------------------------------------------
  279. #  特技及物品的说明、角色的状态显示的窗口。
  280. #==============================================================================
  281. class Window_Lvup_Help < Window_Base
  282.   #--------------------------------------------------------------------------
  283.   # ● 初始化对像
  284.   #--------------------------------------------------------------------------
  285.   def initialize
  286.     super(0, 320, 640, 160)
  287.     self.contents = Bitmap.new(width - 32, height - 32)
  288.     @test = "" #——这个东西用来检测,节约内存专用
  289.   end  
  290.   #--------------------------------------------------------------------------
  291.   # ● 设置文本
  292.   #--------------------------------------------------------------------------
  293.   def lvup_text(text1, text2 = nil, text3 = nil, text4 = nil)
  294.     if @test != text1
  295.       @test = text1
  296.     else
  297.       return
  298.     end   
  299.     self.contents.clear
  300.     self.contents.font.color = normal_color
  301.     self.contents.draw_text(4, 0, self.width - 40, 32, text1)
  302.     if text2 != nil
  303.       self.contents.draw_text(4 , 32, self.width - 40, 32, text2)
  304.     end
  305.     self.contents.font.size -= 4
  306.     if text3 != nil
  307.       self.contents.draw_text(4 , 64, self.width - 40, 32, text3)
  308.     end
  309.     if text4 != nil
  310.       self.contents.draw_text(4 , 96, self.width - 40, 32, text4)
  311.     end
  312.     self.contents.font.size += 4
  313.   end
  314. end
  315. #==============================================================================
  316. # ■ Scene_lvup
  317. #------------------------------------------------------------------------------
  318. #  处理升级画面的类。
  319. #==============================================================================
  320. class Scene_Lvup
  321.   #--------------------------------------------------------------------------
  322.   # ● 初始化对像
  323.   #     actor_index : 角色索引
  324.   #     menu_index : 选项起始位置
  325.   #--------------------------------------------------------------------------
  326.   def initialize(actor_index = 0 , menu_index = 0)
  327.     @actor_index = actor_index
  328.     @menu_index = menu_index
  329.   end
  330.   #--------------------------------------------------------------------------
  331.   # ● 主处理
  332.   #--------------------------------------------------------------------------
  333.   def main
  334.     s1 = "提升VIT"
  335.     s2 = "提升"+$data_system.words.str
  336.     s3 = "提升"+$data_system.words.dex
  337.     s4 = "提升"+$data_system.words.agi
  338.     s5 = "提升"+$data_system.words.int
  339.     s6 = "确认分配"
  340.     s7 = "取消分配"
  341.     @command_window = Window_Command.new(128, [s1, s2, s3, s4, s5, s6, s7])
  342.     @command_window.index = @menu_index
  343.     # 获取角色
  344.     @actor = $game_party.actors[@actor_index]
  345.     # 将角色的剩余点数带入
  346.     $point = $game_variables[@actor.id + LEVEL_UP_VARIABLE]   
  347.     # 初始化临时量
  348.     $temp_str = 0
  349.     $temp_dex = 0
  350.     $temp_agi = 0
  351.     $temp_int = 0
  352.     $temp_hp = 0
  353.     $temp_sp = 0
  354.     #=========================================================================
  355.     # 特别提示:这些设置也可以使用小数,但是可能出现0值意外错误
  356.     #  (各种编程语言都有这种意外),建议还是使用整数,正负不限
  357.     #=========================================================================
  358.     # 每提升一次力量,提升多少附加能力
  359.     #=========================================================================
  360.     @str_hp = 6     # 每提升一次力量附加提升多少HP
  361.     @str_sp = 0     # 每提升一次力量附加提升多少SP
  362.     @str_dex = 0    # 每提升一次力量附加提升多少灵巧
  363.     @str_agi = 0    # 每提升一次力量附加提升多少速度
  364.     @str_int = 0    # 每提升一次力量附加提升多少魔力
  365.     @str_str = 1    # 每提升一次力量附加提升多少力量
  366.     #=========================================================================
  367.     # 每提升一次灵巧,提升多少附加能力
  368.     #=========================================================================
  369.     @dex_hp = 0     # 每提升一次灵巧附加提升多少HP
  370.     @dex_sp = 0     # 每提升一次灵巧附加提升多少SP
  371.     @dex_str = 0    # 每提升一次灵巧附加提升多少力量
  372.     @dex_agi = 0    # 每提升一次灵巧附加提升多少速度
  373.     @dex_int = 0    # 每提升一次灵巧附加提升多少魔力
  374.     @dex_dex = 1    # 每提升一次灵巧附加提升多少灵巧
  375.     #=========================================================================
  376.     # 每提升一次速度,提升多少附加能力
  377.     #=========================================================================
  378.     @agi_hp = 0     # 每提升一次速度附加提升多少HP
  379.     @agi_sp = 0     # 每提升一次速度附加提升多少SP
  380.     @agi_str = 0    # 每提升一次速度附加提升多少力量
  381.     @agi_dex = 0    # 每提升一次速度附加提升多少灵巧
  382.     @agi_int = 0    # 每提升一次速度附加提升多少魔力
  383.     @agi_agi = 0.5    # 每提升一次速度附加提升多少速度
  384.     #=========================================================================
  385.     # 每提升一次魔力,提升多少附加能力
  386.     #=========================================================================
  387.     @int_hp = 0     # 每提升一次魔力附加提升多少HP
  388.     @int_sp = 2    # 每提升一次魔力附加提升多少SP
  389.     @int_str = 0   # 每提升一次魔力附加提升多少力量
  390.     @int_dex = 0   # 每提升一次魔力附加提升多少灵巧
  391.     @int_agi = 0   # 每提升一次魔力附加提升多少速度
  392.     @int_int = 1   # 每提升一次魔力附加提升多少魔力
  393.     #=========================================================================
  394.     # 每提升一次体力,提升多少附加能力
  395.     #=========================================================================
  396.     @hp = 22       # 每提升一次体力提升多少HP
  397.     @sp = 5       # 每提升一次体力提升多少SP
  398.     @hp_str = 0   # 每提升一次体力提升多少力量
  399.     @hp_dex = 0   # 每提升一次体力提升多少速度
  400.     @hp_agi = 0   # 每提升一次体力提升多少灵巧
  401.     @hp_int = 0   # 每提升一次体力提升多少魔力   
  402.     # 定义说明文字
  403.     @text_hp_sc = "HP是维持生命的指标,SP是使用魔法损耗的能量。"
  404.     @text_str_sc = $data_system.words.str + "可以增加物理攻击和物理技能的威力。"
  405.     @text_dex_sc = $data_system.words.dex + "可以提高攻击的命中率和必杀。"
  406.     @text_agi_sc = $data_system.words.agi + "可以提高回避、逃跑成功率。"
  407.     @text_int_sc = $data_system.words.int + "可以提高魔法的效果。"
  408.     @text_save = "确认能力分配并返回游戏"
  409.     @text_reset= "取消这次的能力点数分配"
  410.     @text_2 = "每增加一点此项能力值的效果"
  411.     @text_hp = "最大" + $data_system.words.hp + "值"
  412.     @text_sp = "最大" + $data_system.words.sp + "值"
  413.     @text_str = "最大" + $data_system.words.str + "值"
  414.     @text_dex = "最大" + $data_system.words.dex + "值"
  415.     @text_agi = "最大" + $data_system.words.agi + "值"
  416.     @text_int = "最大" + $data_system.words.int + "值"
  417.     s_disable
  418.     # 生成状态窗口
  419.     @lvup_window = Window_Lvup.new(@actor)
  420.     @lvup_window.x = 128
  421.     @lvup_window.y = 0   
  422.     # 生成帮助窗口并初始化帮助文本
  423.     @help_window = Window_Lvup_Help.new   
  424.     # 执行过渡
  425.     Graphics.transition(20, "Graphics/Transitions/" + $data_system.battle_transition)
  426.     # 主循环
  427.     loop do
  428.       # 刷新游戏画面
  429.       Graphics.update
  430.       # 刷新输入信息
  431.       Input.update
  432.       # 刷新画面
  433.       update
  434.       # 如果切换画面就中断循环
  435.       if $scene != self
  436.         break
  437.       end
  438.     end
  439.     # 准备过渡
  440.     Graphics.freeze
  441.     # 释放窗口
  442.     @command_window.dispose
  443.     @lvup_window.dispose
  444.     @help_window.dispose
  445.   end
  446.   #--------------------------------------------------------------------------
  447.   # ● 刷新画面
  448.   #--------------------------------------------------------------------------
  449.   def update
  450.     # 刷新窗口
  451.     @command_window.update
  452.     # 选项明暗判断(因为太消耗资源,所以屏蔽掉了)
  453.     s_disable
  454.     @lvup_window.update
  455.     #=============================================================
  456.     # 按下 B 键的情况下
  457.     #=============================================================
  458.     if Input.trigger?(Input::B)
  459.       # 演奏取消 SE
  460.       $game_system.se_play($data_system.cancel_se)
  461.       # 切换到地图画面
  462.       $scene = Scene_Menu.new(5)
  463.       return
  464.     end
  465.     #=============================================================
  466.     # 按下 C 键的情况下
  467.     #=============================================================
  468.     if Input.trigger?(Input::C)      
  469.       if @command_window.index == 5
  470.           # 演奏确定 SE
  471.         $game_system.se_play($data_system.decision_se)
  472.         # 将角色的剩余点数带回
  473.         $game_variables[@actor.id + LEVEL_UP_VARIABLE] = $point
  474.         # 将角色点数实际加上
  475.         @actor.str += $temp_str
  476.         @actor.dex += $temp_dex
  477.         @actor.agi += $temp_agi
  478.         @actor.int += $temp_int
  479.         @actor.maxhp += $temp_hp
  480.         @actor.maxsp += $temp_sp
  481.         # 切换到地图画面
  482.         $scene = Scene_Menu.new(5)
  483.       return
  484.       end
  485.       if @command_window.index == 6
  486.           # 演奏确定 SE
  487.         $game_system.se_play($data_system.cancel_se)
  488.           # 将角色的剩余点数带入
  489.         $point = $game_variables[@actor.id + LEVEL_UP_VARIABLE]   
  490.           # 初始化临时量
  491.         $temp_str = 0
  492.         $temp_dex = 0
  493.         $temp_agi = 0
  494.         $temp_int = 0
  495.         $temp_hp = 0
  496.         $temp_sp = 0
  497.         @lvup_window.refresh
  498.         return
  499.       end
  500.       if $point == 0
  501.         # 演奏冻结 SE
  502.         $game_system.se_play($data_system.buzzer_se)
  503.         return
  504.       end
  505.       case @command_window.index
  506.       when 0
  507.         # 演奏确定 SE
  508.         $game_system.se_play($data_system.decision_se)
  509.         $temp_hp += @hp
  510.         $temp_sp += @sp
  511.         $temp_str += @hp_str
  512.         $temp_dex += @hp_dex
  513.         $temp_agi += @hp_agi
  514.         $temp_int += @hp_int
  515.         $point -= 1
  516.         @lvup_window.refresh
  517.         s_disable
  518.         return
  519.       when 1
  520.         # 演奏确定 SE
  521.         $game_system.se_play($data_system.decision_se)
  522.         $temp_str += @str_str
  523.         $temp_hp += @str_hp
  524.         $temp_sp += @str_sp
  525.         $temp_dex += @str_dex
  526.         $temp_agi += @str_agi
  527.         $temp_int += @str_int
  528.         $point -= 1
  529.         @lvup_window.refresh
  530.         s_disable
  531.         return
  532.       when 2
  533.         # 演奏确定 SE
  534.         $game_system.se_play($data_system.decision_se)
  535.         $temp_dex += @dex_dex
  536.         $temp_hp += @dex_hp
  537.         $temp_sp += @dex_sp
  538.         $temp_str += @dex_str
  539.         $temp_agi += @dex_agi
  540.         $temp_int += @dex_int
  541.         $point -= 1
  542.         @lvup_window.refresh
  543.         s_disable
  544.         return
  545.       when 3
  546.         # 演奏确定 SE
  547.         $game_system.se_play($data_system.decision_se)
  548.         $temp_agi += @agi_agi
  549.         $temp_hp += @agi_hp
  550.         $temp_sp += @agi_sp
  551.         $temp_str += @agi_str
  552.         $temp_dex += @agi_dex
  553.         $temp_int += @agi_int
  554.         $point -= 1
  555.         @lvup_window.refresh
  556.         s_disable
  557.         return
  558.       when 4
  559.         # 演奏确定 SE
  560.         $game_system.se_play($data_system.decision_se)
  561.         $temp_int += @int_int
  562.         $temp_hp += @int_hp
  563.         $temp_sp += @int_sp
  564.         $temp_str += @int_str
  565.         $temp_dex += @int_dex
  566.         $temp_agi += @int_agi
  567.         $point -= 1
  568.         @lvup_window.refresh
  569.         s_disable
  570.         return
  571.       end
  572.     end
  573.     #=============================================================
  574.     # 什么都没有按下的情况
  575.     #=============================================================
  576.     case @command_window.index   
  577.     when 0  # 增加体力
  578.       temptext1 = @text_hp + @hp.to_s + "点   " + @text_str + @hp_str.to_s + "点   " + @text_dex + @hp_dex.to_s + "点"
  579.       temptext2 = @text_sp + @sp.to_s + "点   " + @text_agi + @hp_agi.to_s + "点   " + @text_int + @hp_int.to_s + "点"
  580.       @help_window.lvup_text(@text_hp_sc , @text_2 , temptext1 , temptext2)
  581.     when 1  # 增加力量
  582.       temptext1 = @text_hp + @str_hp.to_s + "点   " + @text_str + @str_str.to_s + "点   " + @text_dex + @str_dex.to_s + "点"
  583.       temptext2 = @text_sp + @str_sp.to_s + "点   " + @text_agi + @str_agi.to_s + "点   " + @text_int + @str_int.to_s + "点"
  584.       @help_window.lvup_text(@text_str_sc , @text_2 , temptext1 , temptext2)
  585.     when 2  # 增加灵巧
  586.       temptext1 = @text_hp + @dex_hp.to_s + "点   " + @text_str + @dex_agi.to_s + "点   " + @text_dex + @dex_dex.to_s + "点"
  587.       temptext2 = @text_sp + @dex_sp.to_s + "点   " + @text_agi + @dex_agi.to_s + "点   " + @text_int + @dex_int.to_s + "点"
  588.       @help_window.lvup_text(@text_dex_sc , @text_2 , temptext1 , temptext2)
  589.     when 3  # 增加速度
  590.       temptext1 = @text_hp + @agi_hp.to_s + "点   " + @text_str + @agi_str.to_s + "点   " + @text_dex + @agi_dex.to_s + "点"
  591.       temptext2 = @text_sp + @agi_sp.to_s + "点   " + @text_agi + @agi_agi.to_s + "点   " + @text_int + @agi_int.to_s + "点"
  592.       @help_window.lvup_text(@text_agi_sc , @text_2 , temptext1 , temptext2)
  593.     when 4  # 增加魔力
  594.       temptext1 = @text_hp + @int_hp.to_s + "点   " + @text_str + @int_str.to_s + "点   " + @text_dex + @int_dex.to_s + "点"
  595.       temptext2 = @text_sp + @int_sp.to_s + "点   " + @text_agi + @int_agi.to_s + "点   " + @text_int + @int_int.to_s + "点"
  596.       @help_window.lvup_text(@text_int_sc , @text_2 , temptext1 , temptext2)
  597.     when 5 # 保存设定
  598.       @help_window.lvup_text(@text_save)
  599.     when 6 # 点数重置
  600.       @help_window.lvup_text(@text_reset)     
  601.     end
  602.     #=============================================================
  603.     # 按下R与L换人的情况
  604.     #=============================================================      
  605.     if Input.trigger?(Input::R)
  606.       # 演奏光标 SE
  607.       $game_system.se_play($data_system.cursor_se)
  608.       # 移至下一位角色
  609.       @actor_index += 1
  610.       @actor_index %= $game_party.actors.size
  611.       # 切换到别的状态画面
  612.       $scene = Scene_Lvup.new(@actor_index , @command_window.index)
  613.       return
  614.     end
  615.     # 按下 L 键的情况下
  616.     if Input.trigger?(Input::L)
  617.       # 演奏光标 SE
  618.       $game_system.se_play($data_system.cursor_se)
  619.       # 移至上一位角色
  620.       @actor_index += $game_party.actors.size - 1
  621.       @actor_index %= $game_party.actors.size
  622.       # 切换到别的状态画面
  623.       $scene = Scene_Lvup.new(@actor_index , @command_window.index)
  624.       return
  625.     end
  626.   end  
  627.   #--------------------------------------------------------------------------
  628.   # ● 选项明暗判断
  629.   #--------------------------------------------------------------------------
  630.   def s_disable
  631.     # 判断剩余点数是否为0,如果为0,那么增加选项表示为暗色
  632.     if $point == 0
  633.       @command_window.disable_item(0)
  634.       @command_window.disable_item(1)
  635.       @command_window.disable_item(2)
  636.       @command_window.disable_item(3)
  637.       @command_window.disable_item(4)
  638.     else
  639.       @command_window.able_item(0)
  640.       @command_window.able_item(1)      
  641.       @command_window.able_item(2)
  642.       @command_window.able_item(3)
  643.       @command_window.able_item(4)
  644.     end
  645.   end
  646. end

  647. #==============================================================================
  648. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  649. #==============================================================================

复制代码


‘‘──天使喝可乐于2012-5-8 11:59补充以下内容

这玩意很难改吗= = 囧 竟然没人
’’

点评

就是改几个XY吧= = 如果不想调 也可以发来 我自己调  发表于 2012-5-7 23:04
觉得界面修改比较麻烦  发表于 2012-5-7 22:34

Lv1.梦旅人

梦石
0
星屑
50
在线时间
3 小时
注册时间
2012-5-1
帖子
26
2
发表于 2012-5-8 17:30:59 | 只看该作者
加我Q吧 1006474846

评分

参与人数 1星屑 +60 收起 理由
天使喝可乐 + 60 感谢帮助~

查看全部评分

回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1641
在线时间
2205 小时
注册时间
2010-6-27
帖子
1299
3
发表于 2012-5-8 17:35:33 | 只看该作者
话说可乐想用我那个加点么,自己写的哦~ {:2_262:}

点评

我没分离……就在游戏里 插卡 貌似一点看卡槽什么的 具体忘了 然后就卡住了…… 囧  发表于 2012-5-8 20:15

于是我也广告下…
回复

使用道具 举报

Lv3.寻梦者 (版主)

  /) /)<

梦石
0
星屑
4212
在线时间
4890 小时
注册时间
2009-2-16
帖子
8434

开拓者短篇七成年组季军

4
 楼主| 发表于 2012-5-8 17:41:42 | 只看该作者
pigsss 发表于 2012-5-8 17:35
话说可乐想用我那个加点么,自己写的哦~

你那个我没太看懂怎么用= = 囧
话说你那个强化系统 插卡系统 我都没看懂= = 一点貌似就会卡住 神马情况

点评

额,确实有这个bug···已经修正……  发表于 2012-5-8 20:34
有吗 = =? 貌似需要经过处理才能分离出来  发表于 2012-5-8 20:08
回复

使用道具 举报

Lv3.寻梦者

双子人

梦石
0
星屑
3185
在线时间
3618 小时
注册时间
2009-4-4
帖子
4154

开拓者

5
发表于 2012-5-8 19:06:29 | 只看该作者
本帖最后由 hys111111 于 2012-5-8 19:11 编辑

经过我的强力修改,写完了……
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================


  4. # 脚本使用设定:

  5. LEVEL_UP_POINT = 2  # 每升一级所增加的点数
  6. LEVEL_UP_VARIABLE = 30   # 储存角色点数的变量编号与角色id编号的差值
  7.                          # 默认情况 = 100,
  8.                          # 则是数据库里1号角色的加点数存于101号变量
  9.                          # 3号角色的加点数存于103号变量。
  10.                          # 你可以直接操作变量赠与角色可分配点数

  11. # 每增加一次点数,各项能力值的变化:357-410行
  12.                         
  13. # 使用方法介绍:

  14. # 本脚本不会取代原默认加点,也就是说,默认的升级还在,但可以用这个功能手动追加点数。
  15. # 如果你想纯粹使用手动加点(而升级不提升能力),只要把数据库中角色升级能力,
  16. # 1-99级全部等于一个相同数值就行了。

  17. # 呼唤加点场景的方法:$scene = Scene_Lvup.new(角色编号,返回菜单编号)。
  18. # 默认都是0号

  19. # 加点场景中,page up,page down换人,如果想加点完毕后返回地图,
  20. # 464行$scene = Scene_Menu.new(0)改为$scene = Scene_Map.new

  21. # 推荐脚本搭配:魔法商店脚本,两者结合,制作自由型RPG

  22. #==============================================================================
  23. # ■ Window_Steps
  24. #------------------------------------------------------------------------------
  25. #  菜单画面显示步数的窗口。
  26. #==============================================================================

  27. class Window_Aa < Window_Base
  28.   #--------------------------------------------------------------------------
  29.   # ● 初始化对像
  30.   #--------------------------------------------------------------------------
  31.   def initialize
  32.     super(400, 0, 240, 320)
  33.     self.contents = Bitmap.new(width - 32, height - 32)
  34.     self.opacity = 0
  35.     self.back_opacity = 0
  36.     refresh
  37.   end
  38.   #--------------------------------------------------------------------------
  39.   # ● 刷新
  40.   #--------------------------------------------------------------------------
  41.   def refresh
  42.     self.contents.clear
  43.     self.contents.font.color = system_color
  44.     self.contents.draw_text(4, 0, 240, 32, "分配记录:")
  45.     self.contents.draw_text(4, 32, 240, 32, "VIT("+ $have_vit.to_s + "/150)")
  46.     self.contents.draw_text(4, 64, 240, 32, "STR("+ $have_str.to_s + "/150)")
  47.     self.contents.draw_text(4, 96, 240, 32, "DEX("+ $have_dex.to_s + "/150)")
  48.     self.contents.draw_text(4, 128, 240, 32, "AGI("+ $have_agi.to_s + "/150)")
  49.     self.contents.draw_text(4, 160, 240, 32, "INT("+ $have_int.to_s + "/150)")
  50.     self.contents.draw_text(4, 192, 240, 32, "每次加点消耗2点加点")
  51.     self.contents.draw_text(4, 224, 240, 32, "累计100点后消耗3点加点")
  52.     self.contents.draw_text(4, 256, 240, 32, "累计150后不能加了")
  53.   end
  54. end

  55. class Window_Selectable2 < Window_Base
  56.   #--------------------------------------------------------------------------
  57.   # ● 定义实例变量
  58.   #--------------------------------------------------------------------------
  59.   attr_reader   :index                    # 光标位置
  60.   attr_reader   :help_window              # 帮助窗口
  61.   #--------------------------------------------------------------------------
  62.   # ● 初始画对像
  63.   #     x      : 窗口的 X 坐标
  64.   #     y      : 窗口的 Y 坐标
  65.   #     width  : 窗口的宽
  66.   #     height : 窗口的高
  67.   #--------------------------------------------------------------------------
  68.   def initialize(x, y, width, height)
  69.     super(x, y, width, height)
  70.     @item_max = 1
  71.     @column_max = 1
  72.     @index = -1
  73.   end
  74.   #--------------------------------------------------------------------------
  75.   # ● 设置光标的位置
  76.   #     index : 新的光标位置
  77.   #--------------------------------------------------------------------------
  78.   def index=(index)
  79.     @index = index
  80.     # 刷新帮助文本 (update_help 定义了继承目标)
  81.     if self.active and @help_window != nil
  82.       update_help
  83.     end
  84.     # 刷新光标矩形
  85.     update_cursor_rect
  86.   end
  87.   #--------------------------------------------------------------------------
  88.   # ● 获取行数
  89.   #--------------------------------------------------------------------------
  90.   def row_max
  91.     # 由项目数和列数计算出行数
  92.     return (@item_max + @column_max - 1) / @column_max
  93.   end
  94.   #--------------------------------------------------------------------------
  95.   # ● 获取开头行
  96.   #--------------------------------------------------------------------------
  97.   def top_row
  98.     # 将窗口内容的传送源 Y 坐标、1 行的高 32 等分
  99.     return self.oy / 40
  100.   end
  101.   #--------------------------------------------------------------------------
  102.   # ● 设置开头行
  103.   #     row : 显示开头的行
  104.   #--------------------------------------------------------------------------
  105.   def top_row=(row)
  106.     # row 未满 0 的场合更正为 0
  107.     if row < 0
  108.       row = 0
  109.     end
  110.     # row 超过 row_max - 1 的情况下更正为 row_max - 1
  111.     if row > row_max - 1
  112.       row = row_max - 1
  113.     end
  114.     # row 1 行高的 32 倍、窗口内容的传送源 Y 坐标
  115.     self.oy = row * 40
  116.   end
  117.   #--------------------------------------------------------------------------
  118.   # ● 获取 1 页可以显示的行数
  119.   #--------------------------------------------------------------------------
  120.   def page_row_max
  121.     # 窗口的高度,设置画面的高度减去 32 ,除以 1 行的高度 32
  122.     return (self.height - 40) / 40
  123.   end
  124.   #--------------------------------------------------------------------------
  125.   # ● 获取 1 页可以显示的项目数
  126.   #--------------------------------------------------------------------------
  127.   def page_item_max
  128.     # 将行数 page_row_max 乘上列数 @column_max
  129.     return page_row_max * @column_max
  130.   end
  131.   #--------------------------------------------------------------------------
  132.   # ● 帮助窗口的设置
  133.   #     help_window : 新的帮助窗口
  134.   #--------------------------------------------------------------------------
  135.   def help_window=(help_window)
  136.     @help_window = help_window
  137.     # 刷新帮助文本 (update_help 定义了继承目标)
  138.     if self.active and @help_window != nil
  139.       update_help
  140.     end
  141.   end
  142.   #--------------------------------------------------------------------------
  143.   # ● 更新光标矩形
  144.   #--------------------------------------------------------------------------
  145.   def update_cursor_rect
  146.     # 光标位置不满 0 的情况下
  147.     if @index < 0
  148.       self.cursor_rect.empty
  149.       return
  150.     end
  151.     # 获取当前的行
  152.     row = @index / @column_max
  153.     # 当前行被显示开头行前面的情况下
  154.     if row < self.top_row
  155.       # 从当前行向开头行滚动
  156.       self.top_row = row
  157.     end
  158.     # 当前行被显示末尾行之后的情况下
  159.     if row > self.top_row + (self.page_row_max - 1)
  160.       # 从当前行向末尾滚动
  161.       self.top_row = row - (self.page_row_max - 1)
  162.     end
  163.     # 计算光标的宽度
  164.     cursor_width = self.width / @column_max - 40
  165.     # 计算光标坐标
  166.     x = @index % @column_max * (cursor_width + 40)
  167.     y = @index / @column_max * 40 - self.oy
  168.     # 更新光标矩形
  169.     self.cursor_rect.set(x, y, cursor_width, 40)
  170.   end
  171.   #--------------------------------------------------------------------------
  172.   # ● 刷新画面
  173.   #--------------------------------------------------------------------------
  174.   def update
  175.     super
  176.     # 可以移动光标的情况下
  177.     if self.active and @item_max > 0 and @index >= 0
  178.       # 方向键下被按下的情况下
  179.       if Input.repeat?(Input::DOWN)
  180.         # 列数不是 1 并且不与方向键下的按下状态重复的情况、
  181.         # 或光标位置在(项目数-列数)之前的情况下
  182.         if (@column_max == 1 and Input.trigger?(Input::DOWN)) or
  183.            @index < @item_max - @column_max
  184.           # 光标向下移动
  185.           $game_system.se_play($data_system.cursor_se)
  186.           @index = (@index + @column_max) % @item_max
  187.         end
  188.       end
  189.       # 方向键上被按下的情况下
  190.       if Input.repeat?(Input::UP)
  191.         # 列数不是 1 并且不与方向键下的按下状态重复的情况、
  192.         # 或光标位置在列之后的情况下
  193.         if (@column_max == 1 and Input.trigger?(Input::UP)) or
  194.            @index >= @column_max
  195.           # 光标向上移动
  196.           $game_system.se_play($data_system.cursor_se)
  197.           @index = (@index - @column_max + @item_max) % @item_max
  198.         end
  199.       end
  200.       # 方向键右被按下的情况下
  201.       if Input.repeat?(Input::RIGHT)
  202.         # 列数为 2 以上并且、光标位置在(项目数 - 1)之前的情况下
  203.         if @column_max >= 2 and @index < @item_max - 1
  204.           # 光标向右移动
  205.           $game_system.se_play($data_system.cursor_se)
  206.           @index += 1
  207.         end
  208.       end
  209.       # 方向键左被按下的情况下
  210.       if Input.repeat?(Input::LEFT)
  211.         # 列数为 2 以上并且、光标位置在 0 之后的情况下
  212.         if @column_max >= 2 and @index > 0
  213.           # 光标向左移动
  214.           $game_system.se_play($data_system.cursor_se)
  215.           @index -= 1
  216.         end
  217.       end
  218.       # R 键被按下的情况下
  219.       if Input.repeat?(Input::R)
  220.         # 显示的最后行在数据中最后行上方的情况下
  221.         if self.top_row + (self.page_row_max - 1) < (self.row_max - 1)
  222.           # 光标向后移动一页
  223.           $game_system.se_play($data_system.cursor_se)
  224.           @index = [@index + self.page_item_max, @item_max - 1].min
  225.           self.top_row += self.page_row_max
  226.         end
  227.       end
  228.       # L 键被按下的情况下
  229.       if Input.repeat?(Input::L)
  230.         # 显示的开头行在位置 0 之后的情况下
  231.         if self.top_row > 0
  232.           # 光标向前移动一页
  233.           $game_system.se_play($data_system.cursor_se)
  234.           @index = [@index - self.page_item_max, 0].max
  235.           self.top_row -= self.page_row_max
  236.         end
  237.       end
  238.     end
  239.     # 刷新帮助文本 (update_help 定义了继承目标)
  240.     if self.active and @help_window != nil
  241.       update_help
  242.     end
  243.     # 刷新光标矩形
  244.     update_cursor_rect
  245.   end
  246. end

  247. #==============================================================================
  248. # ■ Window_Command
  249. #------------------------------------------------------------------------------
  250. #  一般的命令选择行窗口。
  251. #==============================================================================

  252. class Window_Command2 < Window_Selectable2
  253.   #--------------------------------------------------------------------------
  254.   # ● 初始化对像
  255.   #     width    : 窗口的宽
  256.   #     commands : 命令字符串序列
  257.   #--------------------------------------------------------------------------
  258.   def initialize(width, commands)
  259.     # 由命令的个数计算出窗口的高
  260.     super(0, 0, width, commands.size * 40 + 40)
  261.     @item_max = commands.size
  262.     @commands = commands
  263.     self.contents = Bitmap.new(width - 40, @item_max * 40)
  264.     refresh
  265.     self.index = 0
  266.   end
  267.   #--------------------------------------------------------------------------
  268.   # ● 刷新
  269.   #--------------------------------------------------------------------------
  270.   def refresh
  271.     self.contents.clear
  272.     for i in 0...@item_max
  273.       draw_item(i, normal_color)
  274.     end
  275.   end
  276.   #--------------------------------------------------------------------------
  277.   # ● 描绘项目
  278.   #     index : 项目编号
  279.   #     color : 文字色
  280.   #--------------------------------------------------------------------------
  281.   def draw_item(index, color)
  282.     self.contents.font.color = color
  283.     rect = Rect.new(4, 40 * index, self.contents.width - 8, 40)
  284.     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  285.     self.contents.draw_text(rect, @commands[index])
  286.   end
  287.   #--------------------------------------------------------------------------
  288.   # ● 项目无效化
  289.   #     index : 项目编号
  290.   #--------------------------------------------------------------------------
  291.   def disable_item(index)
  292.     draw_item(index, disabled_color)
  293.   end
  294. end

  295. #==============================================================================
  296. # ■ Window_Command
  297. #------------------------------------------------------------------------------
  298. #  一般的命令选择行窗口。(追加定义)
  299. #==============================================================================
  300. class Window_Command < Window_Selectable
  301.   #--------------------------------------------------------------------------
  302.   # ● 项目有效化
  303.   #     index : 项目编号
  304.   #--------------------------------------------------------------------------
  305.   def able_item(index)
  306.     draw_item(index, normal_color)
  307.   end
  308. end
  309. #==============================================================================
  310. # ■ Game_Actor
  311. #------------------------------------------------------------------------------
  312. #  处理角色的类。(再定义)
  313. #==============================================================================
  314. class Game_Actor < Game_Battler
  315.   #--------------------------------------------------------------------------
  316.   # ● 更改 EXP
  317.   #     exp : 新的 EXP
  318.   #--------------------------------------------------------------------------
  319.   def exp=(exp)
  320.     @exp = [[exp, 9999999].min, 0].max
  321.     # 升级
  322.     while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
  323.       @level += 1
  324.       # 增加4点可自由分配的点数
  325.       $game_variables[self.id + LEVEL_UP_VARIABLE] += LEVEL_UP_POINT
  326.       # 学会特技
  327.       for j in $data_classes[@class_id].learnings
  328.         if j.level == @level
  329.           learn_skill(j.skill_id)
  330.         end
  331.       end
  332.     end
  333.     # 降级
  334.     while @exp < @exp_list[@level]
  335.       @level -= 1
  336.     end
  337.     # 修正当前的 HP 与 SP 超过最大值
  338.     @hp = [@hp, self.maxhp].min
  339.     @sp = [@sp, self.maxsp].min
  340.   end
  341. end
  342. #==============================================================================
  343. # ■ Window_Base
  344. #------------------------------------------------------------------------------
  345. #  游戏中全部窗口的超级类(追加定义)
  346. #==============================================================================
  347. class Window_Base < Window
  348.   #--------------------------------------------------------------------------
  349.   # ● 描绘 HP
  350.   #     actor : 角色
  351.   #     x     : 描画目标 X 坐标
  352.   #     y     : 描画目标 Y 坐标
  353.   #     width : 描画目标的宽
  354.   #--------------------------------------------------------------------------
  355.   def draw_actor_hp_lvup(actor, x, y)
  356.     self.contents.font.color = system_color
  357.     self.contents.draw_text(x , y, 96, 32, "最大" + $data_system.words.hp)
  358.     if $temp_hp == 0
  359.       self.contents.font.color = normal_color
  360.       self.contents.draw_text(x + 60 , y, 48, 32, actor.maxhp.to_s, 2)
  361.     else
  362.       maxhp = actor.maxhp + $temp_hp
  363.       self.contents.font.color = Color.new(255, 128, 128, 255)
  364.       self.contents.draw_text(x + 60 , y, 48, 32, maxhp.to_s ,2)
  365.       self.contents.font.color = normal_color      
  366.       self.contents.draw_text(x + 155, y, 36, 32, "( ", 2)
  367.       if $temp_hp >=0
  368.         self.contents.font.color = Color.new(255, 128, 128, 255)
  369.         self.contents.draw_text(x + 155, y, 36, 32, " +",2)
  370.       else
  371.         self.contents.font.color = Color.new(255,255,0,255)
  372.         self.contents.draw_text(x + 155, y, 36, 32, " -",2)
  373.       end
  374.       self.contents.draw_text(x + 200, y, 36, 32, $temp_hp.to_s, 2)
  375.       self.contents.font.color = normal_color
  376.       self.contents.draw_text(x + 215, y, 36, 32, ")", 2)
  377.     end
  378.   end
  379.   #--------------------------------------------------------------------------
  380.   # ● 描绘 SP
  381.   #     actor : 角色
  382.   #     x     : 描画目标 X 坐标
  383.   #     y     : 描画目标 Y 坐标
  384.   #     width : 描画目标的宽
  385.   #--------------------------------------------------------------------------
  386.   def draw_actor_sp_lvup(actor, x, y)
  387.     self.contents.font.color = system_color
  388.     self.contents.draw_text(x , y, 96, 32, "最大" + $data_system.words.sp)
  389.     if $temp_sp == 0
  390.       self.contents.font.color = normal_color
  391.       self.contents.draw_text(x + 60 , y, 48, 32, actor.maxsp.to_s, 2)
  392.     else
  393.       maxsp = actor.maxsp + $temp_sp
  394.       self.contents.font.color = Color.new(255, 128, 128, 255)
  395.       self.contents.draw_text(x + 60 , y, 48, 32, maxsp.to_s ,2)
  396.       self.contents.font.color = normal_color      
  397.       self.contents.draw_text(x + 155, y, 36, 32, "( ", 2)
  398.       if $temp_sp >=0
  399.         self.contents.font.color = Color.new(255, 128, 128, 255)
  400.         self.contents.draw_text(x + 155, y, 36, 32, " +",2)
  401.       else
  402.         self.contents.font.color = Color.new(255,255,0,255)
  403.         self.contents.draw_text(x + 155, y, 36, 32, " -",2)
  404.       end
  405.       self.contents.draw_text(x + 200, y, 36, 32, $temp_sp.to_s, 2)
  406.       self.contents.font.color = normal_color
  407.       self.contents.draw_text(x + 215, y, 36, 32, ")", 2)
  408.     end
  409.   end
  410.   #--------------------------------------------------------------------------
  411.   # ● 描绘能力值
  412.   #     actor : 角色
  413.   #     x     : 描画目标 X 坐标
  414.   #     y     : 描画目标 Y 坐标
  415.   #     type  : 能力值种类 (0~4)
  416.   #--------------------------------------------------------------------------
  417.   def draw_actor_lvup(actor, x, y, type)   
  418.     # 定义数字颜色
  419.     lvup = normal_color
  420.     upcolor = Color.new(255, 128, 128, 255)
  421.     self.contents.font.color = normal_color   
  422.     case type
  423.     when 0
  424.       parameter_name = $data_system.words.str
  425.       parameter_value = actor.str
  426.       parameter_value_temp = parameter_value + $temp_str
  427.       if $temp_str != 0
  428.         lvup = upcolor
  429.         self.contents.draw_text(x + 256, y, 16, 32, "(")
  430.         if $temp_str >= 0
  431.           self.contents.font.color = lvup
  432.           self.contents.draw_text(x + 272, y, 80, 32, "+",0)
  433.         else
  434.           self.contents.font.color = Color.new(255,255,0,255)
  435.           self.contents.draw_text(x + 272, y, 80, 32, "-",0)
  436.         end        
  437.         self.contents.draw_text(x + 272, y, 80, 32, $temp_str.abs.to_s,1)
  438.         self.contents.font.color = normal_color
  439.         self.contents.draw_text(x + 272, y, 80, 32, ")", 2)
  440.       end
  441.     when 1
  442.       parameter_name = $data_system.words.dex
  443.       parameter_value = actor.dex
  444.       parameter_value_temp = parameter_value + $temp_dex
  445.       if $temp_dex != 0
  446.         lvup = upcolor
  447.         self.contents.draw_text(x + 256, y, 16, 32, "(")
  448.         if $temp_dex >= 0
  449.           self.contents.font.color = lvup
  450.           self.contents.draw_text(x + 272, y, 80, 32, "+",0)
  451.         else
  452.           self.contents.font.color = Color.new(255,255,0,255)
  453.           self.contents.draw_text(x + 272, y, 80, 32, "-",0)
  454.         end        
  455.         self.contents.draw_text(x + 272, y, 80, 32, $temp_dex.abs.to_s,1)
  456.         self.contents.font.color = normal_color
  457.         self.contents.draw_text(x + 272, y, 80, 32, ")", 2)
  458.       end
  459.     when 2
  460.       parameter_name = $data_system.words.agi
  461.       parameter_value = actor.agi
  462.       parameter_value_temp = parameter_value + $temp_agi
  463.       if $temp_agi != 0
  464.         lvup = upcolor
  465.         self.contents.draw_text(x + 256, y, 16, 32, "(")
  466.         if $temp_agi >= 0
  467.           self.contents.font.color = lvup
  468.           self.contents.draw_text(x + 272, y, 80, 32, "+",0)
  469.         else
  470.           self.contents.font.color = Color.new(255,255,0,255)
  471.           self.contents.draw_text(x + 272, y, 80, 32, "-",0)
  472.         end        
  473.         self.contents.draw_text(x + 272, y, 80, 32, $temp_agi.abs.to_s,1)
  474.         self.contents.font.color = normal_color
  475.         self.contents.draw_text(x + 272, y, 80, 32, ")", 2)
  476.       end
  477.     when 3
  478.       parameter_name = $data_system.words.int
  479.       parameter_value = actor.int
  480.       parameter_value_temp = parameter_value + $temp_int
  481.       if $temp_int != 0
  482.         lvup = upcolor
  483.         self.contents.draw_text(x + 256, y, 16, 32, "(")
  484.         if $temp_int >= 0
  485.           self.contents.font.color = lvup
  486.           self.contents.draw_text(x + 272, y, 80, 32, "+",0)
  487.         else
  488.           self.contents.font.color = Color.new(255,255,0,255)
  489.           self.contents.draw_text(x + 272, y, 80, 32, "-",0)
  490.         end        
  491.         self.contents.draw_text(x + 272, y, 80, 32, $temp_int.abs.to_s,1)
  492.         self.contents.font.color = normal_color
  493.         self.contents.draw_text(x + 272, y, 80, 32, ")", 2)
  494.       end
  495.     when 4
  496.       parameter_name = "尚未分配能力点数"
  497.       parameter_value = $point
  498.       if $point != 0
  499.         lvup = upcolor
  500.       end
  501.     end   
  502.     self.contents.font.color = system_color
  503.     self.contents.draw_text(x, y, 120, 32, parameter_name)
  504.     self.contents.font.color = normal_color
  505.     self.contents.draw_text(x + 120, y, 36, 32, parameter_value.to_s)   
  506.     if type != 4
  507.       self.contents.draw_text(x + 150, y, 36, 32, "→")
  508.     end  
  509.     self.contents.font.color = lvup
  510.     self.contents.draw_text(x + 180, y, 60, 32, parameter_value_temp.to_s)
  511.     self.contents.font.color = normal_color        
  512.   end
  513. end
  514. #==============================================================================
  515. # ■ Window_lvup
  516. #------------------------------------------------------------------------------
  517. #  显示升级状态窗口。
  518. #==============================================================================
  519. class Window_Lvup < Window_Base
  520.   #--------------------------------------------------------------------------
  521.   # ● 初始化对像
  522.   #     actor : 角色
  523.   #--------------------------------------------------------------------------
  524.   def initialize(actor)
  525.     super(0, 0, 512, 320)
  526.     self.contents = Bitmap.new(width - 32, height - 32)
  527.     @actor = actor
  528.     refresh
  529.   end  
  530.   #--------------------------------------------------------------------------
  531.   # ● 刷新
  532.   #--------------------------------------------------------------------------
  533.   def refresh
  534.     self.contents.clear
  535.     draw_actor_graphic(@actor, 18, 96)
  536.     draw_actor_name(@actor, 4, 0)
  537.     draw_actor_class(@actor, 4 + 144, 0)
  538.     draw_actor_level(@actor, 36, 32)
  539.     draw_actor_state(@actor, 33, 64)   
  540.     draw_actor_hp_lvup(@actor, 96, 32)
  541.     draw_actor_sp_lvup(@actor, 96, 64)
  542.     draw_actor_lvup(@actor, 4, 96, 0)
  543.     draw_actor_lvup(@actor, 4, 128, 1)
  544.     draw_actor_lvup(@actor, 4, 160, 2)
  545.     draw_actor_lvup(@actor, 4, 192, 3)
  546.     draw_actor_lvup(@actor, 4, 224, 4)
  547.   end
  548. end
  549. #==============================================================================
  550. # ■ Window_Help
  551. #------------------------------------------------------------------------------
  552. #  特技及物品的说明、角色的状态显示的窗口。
  553. #==============================================================================
  554. class Window_Lvup_Help < Window_Base
  555.   #--------------------------------------------------------------------------
  556.   # ● 初始化对像
  557.   #--------------------------------------------------------------------------
  558.   def initialize
  559.     super(0, 320, 640, 160)
  560.     self.contents = Bitmap.new(width - 32, height - 32)
  561.     @test = "" #——这个东西用来检测,节约内存专用
  562.   end  
  563.   #--------------------------------------------------------------------------
  564.   # ● 设置文本
  565.   #--------------------------------------------------------------------------
  566.   def lvup_text(text1, text2 = nil, text3 = nil, text4 = nil)
  567.     if @test != text1
  568.       @test = text1
  569.     else
  570.       return
  571.     end   
  572.     self.contents.clear
  573.     self.contents.font.color = normal_color
  574.     self.contents.draw_text(4, 0, self.width - 40, 32, text1)
  575.     if text2 != nil
  576.       self.contents.draw_text(4 , 32, self.width - 40, 32, text2)
  577.     end
  578.     self.contents.font.size -= 4
  579.     if text3 != nil
  580.       self.contents.draw_text(4 , 64, self.width - 40, 32, text3)
  581.     end
  582.     if text4 != nil
  583.       self.contents.draw_text(4 , 96, self.width - 40, 32, text4)
  584.     end
  585.     self.contents.font.size += 4
  586.   end
  587. end
  588. #==============================================================================
  589. # ■ Scene_lvup
  590. #------------------------------------------------------------------------------
  591. #  处理升级画面的类。
  592. #==============================================================================
  593. class Scene_Lvup
  594.   #--------------------------------------------------------------------------
  595.   # ● 初始化对像
  596.   #     actor_index : 角色索引
  597.   #     menu_index : 选项起始位置
  598.   #--------------------------------------------------------------------------
  599.   def initialize(actor_index = 0 , menu_index = 0)
  600.     #添加部分——————
  601.     $have_vit = 0 if $have_vit == nil
  602.     $have_str = 0 if $have_str == nil
  603.     $have_dex = 0 if $have_dex == nil
  604.     $have_agi = 0 if $have_agi == nil
  605.     $have_int = 0 if $have_int == nil
  606.     #添加部分——————
  607.     @actor_index = actor_index
  608.     @menu_index = menu_index
  609.   end
  610.   #--------------------------------------------------------------------------
  611.   # ● 主处理
  612.   #--------------------------------------------------------------------------
  613.   def main
  614.     s1 = "提升VIT"
  615.     s2 = "提升"+$data_system.words.str
  616.     s3 = "提升"+$data_system.words.dex
  617.     s4 = "提升"+$data_system.words.agi
  618.     s5 = "提升"+$data_system.words.int
  619.     s6 = "确认分配"
  620.     s7 = "取消分配"
  621.     @command_window = Window_Command2.new(128, [s1, s2, s3, s4, s5, s6, s7])
  622.     @command_window.index = @menu_index
  623.     @aa = Window_Aa.new
  624.     # 获取角色
  625.     @actor = $game_party.actors[@actor_index]
  626.     # 将角色的剩余点数带入
  627.     $point = $game_variables[@actor.id + LEVEL_UP_VARIABLE]   
  628.     # 初始化临时量
  629.     $temp_str = 0
  630.     $temp_dex = 0
  631.     $temp_agi = 0
  632.     $temp_int = 0
  633.     $temp_hp = 0
  634.     $temp_sp = 0
  635.     #=========================================================================
  636.     # 特别提示:这些设置也可以使用小数,但是可能出现0值意外错误
  637.     #  (各种编程语言都有这种意外),建议还是使用整数,正负不限
  638.     #=========================================================================
  639.     # 每提升一次力量,提升多少附加能力
  640.     #=========================================================================
  641.     @str_hp = 6     # 每提升一次力量附加提升多少HP
  642.     @str_sp = 0     # 每提升一次力量附加提升多少SP
  643.     @str_dex = 0    # 每提升一次力量附加提升多少灵巧
  644.     @str_agi = 0    # 每提升一次力量附加提升多少速度
  645.     @str_int = 0    # 每提升一次力量附加提升多少魔力
  646.     @str_str = 1    # 每提升一次力量附加提升多少力量
  647.     #=========================================================================
  648.     # 每提升一次灵巧,提升多少附加能力
  649.     #=========================================================================
  650.     @dex_hp = 0     # 每提升一次灵巧附加提升多少HP
  651.     @dex_sp = 0     # 每提升一次灵巧附加提升多少SP
  652.     @dex_str = 0    # 每提升一次灵巧附加提升多少力量
  653.     @dex_agi = 0    # 每提升一次灵巧附加提升多少速度
  654.     @dex_int = 0    # 每提升一次灵巧附加提升多少魔力
  655.     @dex_dex = 1    # 每提升一次灵巧附加提升多少灵巧
  656.     #=========================================================================
  657.     # 每提升一次速度,提升多少附加能力
  658.     #=========================================================================
  659.     @agi_hp = 0     # 每提升一次速度附加提升多少HP
  660.     @agi_sp = 0     # 每提升一次速度附加提升多少SP
  661.     @agi_str = 0    # 每提升一次速度附加提升多少力量
  662.     @agi_dex = 0    # 每提升一次速度附加提升多少灵巧
  663.     @agi_int = 0    # 每提升一次速度附加提升多少魔力
  664.     @agi_agi = 0.5    # 每提升一次速度附加提升多少速度
  665.     #=========================================================================
  666.     # 每提升一次魔力,提升多少附加能力
  667.     #=========================================================================
  668.     @int_hp = 0     # 每提升一次魔力附加提升多少HP
  669.     @int_sp = 2    # 每提升一次魔力附加提升多少SP
  670.     @int_str = 0   # 每提升一次魔力附加提升多少力量
  671.     @int_dex = 0   # 每提升一次魔力附加提升多少灵巧
  672.     @int_agi = 0   # 每提升一次魔力附加提升多少速度
  673.     @int_int = 1   # 每提升一次魔力附加提升多少魔力
  674.     #=========================================================================
  675.     # 每提升一次体力,提升多少附加能力
  676.     #=========================================================================
  677.     @hp = 22       # 每提升一次体力提升多少HP
  678.     @sp = 5       # 每提升一次体力提升多少SP
  679.     @hp_str = 0   # 每提升一次体力提升多少力量
  680.     @hp_dex = 0   # 每提升一次体力提升多少速度
  681.     @hp_agi = 0   # 每提升一次体力提升多少灵巧
  682.     @hp_int = 0   # 每提升一次体力提升多少魔力   
  683.     # 定义说明文字
  684.     @text_hp_sc = "HP是维持生命的指标,SP是使用魔法损耗的能量。"
  685.     @text_str_sc = $data_system.words.str + "可以增加物理攻击和物理技能的威力。"
  686.     @text_dex_sc = $data_system.words.dex + "可以提高攻击的命中率和必杀。"
  687.     @text_agi_sc = $data_system.words.agi + "可以提高回避、逃跑成功率。"
  688.     @text_int_sc = $data_system.words.int + "可以提高魔法的效果。"
  689.     @text_save = "确认能力分配并返回游戏"
  690.     @text_reset= "取消这次的能力点数分配"
  691.     @text_2 = "每增加一点此项能力值的效果                                  切换加点对象"
  692.     @text_hp = "最大" + $data_system.words.hp + "值"
  693.     @text_sp = "最大" + $data_system.words.sp + "值"
  694.     @text_str = "最大" + $data_system.words.str + "值"
  695.     @text_dex = "最大" + $data_system.words.dex + "值"
  696.     @text_agi = "最大" + $data_system.words.agi + "值"
  697.     @text_int = "最大" + $data_system.words.int + "值"
  698.     s_disable
  699.     # 生成状态窗口
  700.     @lvup_window = Window_Lvup.new(@actor)
  701.     @lvup_window.x = 128
  702.     @lvup_window.y = 0   
  703.     # 生成帮助窗口并初始化帮助文本
  704.     @help_window = Window_Lvup_Help.new   
  705.     # 执行过渡
  706.     Graphics.transition(20, "Graphics/Transitions/" + $data_system.battle_transition)
  707.     # 主循环
  708.     loop do
  709.       # 刷新游戏画面
  710.       Graphics.update
  711.       # 刷新输入信息
  712.       Input.update
  713.       # 刷新画面
  714.       update
  715.       # 如果切换画面就中断循环
  716.       if $scene != self
  717.         break
  718.       end
  719.     end
  720.     # 准备过渡
  721.     Graphics.freeze
  722.     # 释放窗口
  723.     @command_window.dispose
  724.     @lvup_window.dispose
  725.     @help_window.dispose
  726.     @aa.dispose
  727.   end
  728.   #--------------------------------------------------------------------------
  729.   # ● 刷新画面
  730.   #--------------------------------------------------------------------------
  731.   def update
  732.     # 刷新窗口
  733.     @aa.update
  734.     @command_window.update
  735.     # 选项明暗判断(因为太消耗资源,所以屏蔽掉了)
  736.     s_disable
  737.     @lvup_window.update
  738.     #=============================================================
  739.     # 按下 B 键的情况下
  740.     #=============================================================
  741.     if Input.trigger?(Input::B)
  742.       # 演奏取消 SE
  743.       $game_system.se_play($data_system.cancel_se)
  744.       # 切换到地图画面
  745.       $scene = Scene_Menu.new(5)
  746.       return
  747.     end
  748.     #=============================================================
  749.     # 按下 C 键的情况下
  750.     #=============================================================
  751.     if Input.trigger?(Input::C)      
  752.       if @command_window.index == 5
  753.           # 演奏确定 SE
  754.         $game_system.se_play($data_system.decision_se)
  755.         # 将角色的剩余点数带回
  756.         $game_variables[@actor.id + LEVEL_UP_VARIABLE] = $point
  757.         # 将角色点数实际加上
  758.         @actor.str += $temp_str
  759.         @actor.dex += $temp_dex
  760.         @actor.agi += $temp_agi
  761.         @actor.int += $temp_int
  762.         @actor.maxhp += $temp_hp
  763.         @actor.maxsp += $temp_sp
  764.         
  765.         #添加部分——————
  766.         $have_vit += $temp_hp + $temp_sp
  767.         $have_str += $temp_str
  768.         $have_dex += $temp_dex
  769.         $have_agi += $temp_agi
  770.         $have_int += $temp_int
  771.         #添加部分——————
  772.         
  773.         # 切换到地图画面
  774.         $scene = Scene_Menu.new(5)
  775.       return
  776.       end
  777.       if @command_window.index == 6
  778.           # 演奏确定 SE
  779.         $game_system.se_play($data_system.cancel_se)
  780.           # 将角色的剩余点数带入
  781.         $point = $game_variables[@actor.id + LEVEL_UP_VARIABLE]   
  782.           # 初始化临时量
  783.         $temp_str = 0
  784.         $temp_dex = 0
  785.         $temp_agi = 0
  786.         $temp_int = 0
  787.         $temp_hp = 0
  788.         $temp_sp = 0
  789.         @lvup_window.refresh
  790.         return
  791.       end
  792.       if $point == 0 or $point == 1
  793.         # 演奏冻结 SE
  794.         $game_system.se_play($data_system.buzzer_se)
  795.         return
  796.       end
  797.       case @command_window.index
  798.       when 0
  799.         if $have_vit == 150 or ($have_vit >= 100 and $point == 2)
  800.           $game_system.se_play($data_system.buzzer_se)
  801.           return
  802.         end
  803.         # 演奏确定 SE
  804.         $game_system.se_play($data_system.decision_se)
  805.         $temp_hp += @hp
  806.         $temp_sp += @sp
  807.         $temp_str += @hp_str
  808.         $temp_dex += @hp_dex
  809.         $temp_agi += @hp_agi
  810.         $temp_int += @hp_int
  811.         $point -= 2
  812.         $point -= 1 if $have_vit >= 100
  813.         @lvup_window.refresh
  814.         s_disable
  815.         return
  816.       when 1
  817.         if $have_str == 150 or ($have_str >= 100 and $point == 2)
  818.           $game_system.se_play($data_system.buzzer_se)
  819.           return
  820.         end
  821.         # 演奏确定 SE
  822.         $game_system.se_play($data_system.decision_se)
  823.         $temp_str += @str_str
  824.         $temp_hp += @str_hp
  825.         $temp_sp += @str_sp
  826.         $temp_dex += @str_dex
  827.         $temp_agi += @str_agi
  828.         $temp_int += @str_int
  829.         $point -= 2
  830.         $point -= 1 if $have_vit >= 100
  831.         @lvup_window.refresh
  832.         s_disable
  833.         return
  834.       when 2
  835.         if $have_dex == 150 or ($have_dex >= 100 and $point == 2)
  836.           $game_system.se_play($data_system.buzzer_se)
  837.           return
  838.         end
  839.         # 演奏确定 SE
  840.         $game_system.se_play($data_system.decision_se)
  841.         $temp_dex += @dex_dex
  842.         $temp_hp += @dex_hp
  843.         $temp_sp += @dex_sp
  844.         $temp_str += @dex_str
  845.         $temp_agi += @dex_agi
  846.         $temp_int += @dex_int
  847.         $point -= 2
  848.         $point -= 1 if $have_vit >= 100
  849.         @lvup_window.refresh
  850.         s_disable
  851.         return
  852.       when 3
  853.         if $have_agi == 150 or ($have_agi >= 100 and $point == 2)
  854.           $game_system.se_play($data_system.buzzer_se)
  855.           return
  856.         end
  857.         # 演奏确定 SE
  858.         $game_system.se_play($data_system.decision_se)
  859.         $temp_agi += @agi_agi
  860.         $temp_hp += @agi_hp
  861.         $temp_sp += @agi_sp
  862.         $temp_str += @agi_str
  863.         $temp_dex += @agi_dex
  864.         $temp_int += @agi_int
  865.         $point -= 2
  866.         $point -= 1 if $have_vit >= 100
  867.         @lvup_window.refresh
  868.         s_disable
  869.         return
  870.       when 4
  871.         if $have_int == 150 or ($have_int >= 100 and $point == 2)
  872.           $game_system.se_play($data_system.buzzer_se)
  873.           return
  874.         end
  875.         # 演奏确定 SE
  876.         $game_system.se_play($data_system.decision_se)
  877.         $temp_int += @int_int
  878.         $temp_hp += @int_hp
  879.         $temp_sp += @int_sp
  880.         $temp_str += @int_str
  881.         $temp_dex += @int_dex
  882.         $temp_agi += @int_agi
  883.         $point -= 2
  884.         $point -= 1 if $have_vit >= 100
  885.         @lvup_window.refresh
  886.         s_disable
  887.         return
  888.       end
  889.     end
  890.     #=============================================================
  891.     # 什么都没有按下的情况
  892.     #=============================================================
  893.     case @command_window.index   
  894.     when 0  # 增加体力
  895.       temptext1 = @text_hp + @hp.to_s + "点   " + @text_str + @hp_str.to_s + "点   " + @text_dex + @hp_dex.to_s + "点                Page UP  ↑"
  896.       temptext2 = @text_sp + @sp.to_s + "点   " + @text_agi + @hp_agi.to_s + "点   " + @text_int + @hp_int.to_s + "点                 Page DOWN↓"
  897.       @help_window.lvup_text(@text_hp_sc , @text_2 , temptext1 , temptext2)
  898.     when 1  # 增加力量
  899.       temptext1 = @text_hp + @str_hp.to_s + "点   " + @text_str + @str_str.to_s + "点   " + @text_dex + @str_dex.to_s + "点                 Page UP  ↑"
  900.       temptext2 = @text_sp + @str_sp.to_s + "点   " + @text_agi + @str_agi.to_s + "点   " + @text_int + @str_int.to_s + "点                 Page DOWN↓"
  901.       @help_window.lvup_text(@text_str_sc , @text_2 , temptext1 , temptext2)
  902.     when 2  # 增加灵巧
  903.       temptext1 = @text_hp + @dex_hp.to_s + "点   " + @text_str + @dex_agi.to_s + "点   " + @text_dex + @dex_dex.to_s + "点                 Page UP  ↑"
  904.       temptext2 = @text_sp + @dex_sp.to_s + "点   " + @text_agi + @dex_agi.to_s + "点   " + @text_int + @dex_int.to_s + "点                 Page DOWN↓"
  905.       @help_window.lvup_text(@text_dex_sc , @text_2 , temptext1 , temptext2)
  906.     when 3  # 增加速度
  907.       temptext1 = @text_hp + @agi_hp.to_s + "点   " + @text_str + @agi_str.to_s + "点   " + @text_dex + @agi_dex.to_s + "点                 Page UP  ↑"
  908.       temptext2 = @text_sp + @agi_sp.to_s + "点   " + @text_agi + @agi_agi.to_s + "点   " + @text_int + @agi_int.to_s + "点               Page DOWN↓"
  909.       @help_window.lvup_text(@text_agi_sc , @text_2 , temptext1 , temptext2)
  910.     when 4  # 增加魔力
  911.       temptext1 = @text_hp + @int_hp.to_s + "点   " + @text_str + @int_str.to_s + "点   " + @text_dex + @int_dex.to_s + "点                 Page UP  ↑"
  912.       temptext2 = @text_sp + @int_sp.to_s + "点   " + @text_agi + @int_agi.to_s + "点   " + @text_int + @int_int.to_s + "点                 Page DOWN↓"
  913.       @help_window.lvup_text(@text_int_sc , @text_2 , temptext1 , temptext2)
  914.     when 5 # 保存设定
  915.       @help_window.lvup_text(@text_save)
  916.     when 6 # 点数重置
  917.       @help_window.lvup_text(@text_reset)     
  918.     end
  919.     #=============================================================
  920.     # 按下R与L换人的情况
  921.     #=============================================================      
  922.     if Input.trigger?(Input::R)
  923.       # 演奏光标 SE
  924.       $game_system.se_play($data_system.cursor_se)
  925.       # 移至下一位角色
  926.       @actor_index += 1
  927.       @actor_index %= $game_party.actors.size
  928.       # 切换到别的状态画面
  929.       $scene = Scene_Lvup.new(@actor_index , @command_window.index)
  930.       return
  931.     end
  932.     # 按下 L 键的情况下
  933.     if Input.trigger?(Input::L)
  934.       # 演奏光标 SE
  935.       $game_system.se_play($data_system.cursor_se)
  936.       # 移至上一位角色
  937.       @actor_index += $game_party.actors.size - 1
  938.       @actor_index %= $game_party.actors.size
  939.       # 切换到别的状态画面
  940.       $scene = Scene_Lvup.new(@actor_index , @command_window.index)
  941.       return
  942.     end
  943.   end  
  944.   #--------------------------------------------------------------------------
  945.   # ● 选项明暗判断
  946.   #--------------------------------------------------------------------------
  947.   def s_disable
  948.     # 判断剩余点数是否为0,如果为0,那么增加选项表示为暗色
  949.     if $point == 0 or $point == 1
  950.       @command_window.disable_item(0)
  951.       @command_window.disable_item(1)
  952.       @command_window.disable_item(2)
  953.       @command_window.disable_item(3)
  954.       @command_window.disable_item(4)
  955.     else
  956.       if $have_vit == 150 or ($have_vit >= 100 and $point == 2)
  957.         @command_window.disable_item(0)
  958.       else
  959.         @command_window.able_item(0)
  960.       end
  961.       if $have_str == 150 or ($have_str >= 100 and $point == 2)
  962.         @command_window.disable_item(1)
  963.       else
  964.         @command_window.able_item(1)
  965.       end
  966.       if $have_dex == 150 or ($have_dex >= 100 and $point == 2)
  967.         @command_window.disable_item(2)
  968.       else
  969.         @command_window.able_item(2)
  970.       end
  971.       if $have_agi == 150 or ($have_agi >= 100 and $point == 2)
  972.         @command_window.disable_item(3)
  973.       else
  974.         @command_window.able_item(3)
  975.       end
  976.       if $have_int == 150 or ($have_int >= 100 and $point == 2)
  977.         @command_window.disable_item(4)
  978.       else
  979.         @command_window.able_item(4)
  980.       end
  981.     end
  982.   end
  983. end

  984. #==============================================================================
  985. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  986. #==============================================================================
复制代码
回复

使用道具 举报

Lv3.寻梦者 (版主)

  /) /)<

梦石
0
星屑
4212
在线时间
4890 小时
注册时间
2009-2-16
帖子
8434

开拓者短篇七成年组季军

6
 楼主| 发表于 2012-5-8 19:48:56 | 只看该作者
hys111111 发表于 2012-5-8 19:06
经过我的强力修改,写完了……

感谢~ 不过……错误了……囧


话说 那些说明没加上吗= =
回复

使用道具 举报

Lv3.寻梦者

双子人

梦石
0
星屑
3185
在线时间
3618 小时
注册时间
2009-4-4
帖子
4154

开拓者

7
发表于 2012-5-8 21:09:37 | 只看该作者
本帖最后由 hys111111 于 2012-5-11 12:36 编辑
天使喝可乐 发表于 2012-5-8 19:48
感谢~ 不过……错误了……囧


已经查明原因:
Window_Command2找不到able这个def
原先Window_Command追加了def able
现在,下面是修复的脚本

————————代码由于卡网速,已被屏蔽————————
回复

使用道具 举报

Lv3.寻梦者 (版主)

  /) /)<

梦石
0
星屑
4212
在线时间
4890 小时
注册时间
2009-2-16
帖子
8434

开拓者短篇七成年组季军

8
 楼主| 发表于 2012-5-9 12:31:57 | 只看该作者
本帖最后由 天使喝可乐 于 2012-5-9 12:40 编辑
hys111111 发表于 2012-5-8 21:09
已经查明原因:
Window_Command2找不到able这个def
原先Window_Command追加了def able


测试了一下 很多方面都没问题了 界面改的很满意

就是这个加点后的“(+1)” 和右边的加点记录重合了……
如图:(靠左点吧)


另外 加点记录 是加一点该属性点 记录数字+1
比如 我加1点VIT体质  效果是HP+6  然后我加完后  加点记录变成了 VIT(6/150)  我的意思是此时应该变为 VIT(1/150) 也就是能加150次VIT  而不是现在的HP增加量达到150

还有 加点记录应该是每个人物一个记录的 现在是集体共用一个记录- -   

麻烦你了0 0
==================================
又试了试 貌似没效果……  即使加到100以上依然是消耗2点  即使加到150依然能继续加……
另外 注意加点计算的时候 比如我直接加了101点  此时消耗的应该是 100X2+1X3    而不是101X2哦

点评

请稍等一下,我改到一半时,发现脚本错误了  发表于 2012-5-9 17:42
回复

使用道具 举报

Lv3.寻梦者

双子人

梦石
0
星屑
3185
在线时间
3618 小时
注册时间
2009-4-4
帖子
4154

开拓者

9
发表于 2012-5-10 12:37:48 | 只看该作者
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================


  4. # 脚本使用设定:

  5. LEVEL_UP_POINT = 2  # 每升一级所增加的点数
  6. LEVEL_UP_VARIABLE = 30   # 储存角色点数的变量编号与角色id编号的差值
  7.                          # 默认情况 = 100,
  8.                          # 则是数据库里1号角色的加点数存于101号变量
  9.                          # 3号角色的加点数存于103号变量。
  10.                          # 你可以直接操作变量赠与角色可分配点数

  11. # 每增加一次点数,各项能力值的变化:357-410行
  12.                         
  13. # 使用方法介绍:

  14. # 本脚本不会取代原默认加点,也就是说,默认的升级还在,但可以用这个功能手动追加点数。
  15. # 如果你想纯粹使用手动加点(而升级不提升能力),只要把数据库中角色升级能力,
  16. # 1-99级全部等于一个相同数值就行了。

  17. # 呼唤加点场景的方法:$scene = Scene_Lvup.new(角色编号,返回菜单编号)。
  18. # 默认都是0号

  19. # 加点场景中,page up,page down换人,如果想加点完毕后返回地图,
  20. # 464行$scene = Scene_Menu.new(0)改为$scene = Scene_Map.new

  21. # 推荐脚本搭配:魔法商店脚本,两者结合,制作自由型RPG

  22. class Game_Actor < Game_Battler
  23.   #--------------------------------------------------------------------------
  24.   # ● 定义实例变量
  25.   #--------------------------------------------------------------------------
  26.   attr_accessor   :have_vit                     # 增加的VIT
  27.   attr_accessor   :have_str
  28.   attr_accessor   :have_dex
  29.   attr_accessor   :have_agi
  30.   attr_accessor   :have_int
  31.   attr_accessor   :have_true
  32.   #--------------------------------------------------------------------------
  33.   # ● 初始化对像
  34.   #     actor_id : 角色 ID
  35.   #--------------------------------------------------------------------------
  36.   alias xz_setup setup
  37.   def setup(actor_id)
  38.     if have_true == 1
  39.       #空的地方
  40.     else
  41.       @have_vit = 0
  42.       @have_str = 0
  43.       @have_dex = 0
  44.       @have_agi = 0
  45.       @have_int = 0
  46.       @have_true = 1
  47.     end
  48.     xz_setup(actor_id)
  49.   end
  50. end
  51. #==============================================================================
  52. # ■ Window_Steps
  53. #------------------------------------------------------------------------------
  54. #  菜单画面显示步数的窗口。
  55. #==============================================================================

  56. class Window_Aa < Window_Base
  57.   #--------------------------------------------------------------------------
  58.   # ● 初始化对像
  59.   #--------------------------------------------------------------------------
  60.   def initialize(actor)
  61.     super(400, 0, 240, 320)
  62.     self.contents = Bitmap.new(width - 32, height - 32)
  63.     self.opacity = 0
  64.     self.back_opacity = 0
  65.     @actor = actor
  66.     refresh
  67.   end
  68.   #--------------------------------------------------------------------------
  69.   # ● 刷新
  70.   #--------------------------------------------------------------------------
  71.   def refresh
  72.     self.contents.clear
  73.     self.contents.font.color = system_color
  74.     self.contents.draw_text(4, 0, 240, 32, "分配记录:")
  75.     self.contents.draw_text(4, 32, 240, 32, "VIT("+ @actor.have_vit.to_s + "/150)")
  76.     self.contents.draw_text(4, 64, 240, 32, "STR("+ @actor.have_str.to_s + "/150)")
  77.     self.contents.draw_text(4, 96, 240, 32, "DEX("+ @actor.have_dex.to_s + "/150)")
  78.     self.contents.draw_text(4, 128, 240, 32, "AGI("+ @actor.have_agi.to_s + "/150)")
  79.     self.contents.draw_text(4, 160, 240, 32, "INT("+ @actor.have_int.to_s + "/150)")
  80.     self.contents.draw_text(4, 192, 240, 32, "每次加点消耗2点加点")
  81.     self.contents.draw_text(4, 224, 240, 32, "累计100点后消耗3点加点")
  82.     self.contents.draw_text(4, 256, 240, 32, "累计150后不能加了")
  83.   end
  84. end

  85. class Window_Selectable2 < Window_Base
  86.   #--------------------------------------------------------------------------
  87.   # ● 定义实例变量
  88.   #--------------------------------------------------------------------------
  89.   attr_reader   :index                    # 光标位置
  90.   attr_reader   :help_window              # 帮助窗口
  91.   #--------------------------------------------------------------------------
  92.   # ● 初始画对像
  93.   #     x      : 窗口的 X 坐标
  94.   #     y      : 窗口的 Y 坐标
  95.   #     width  : 窗口的宽
  96.   #     height : 窗口的高
  97.   #--------------------------------------------------------------------------
  98.   def initialize(x, y, width, height)
  99.     super(x, y, width, height)
  100.     @item_max = 1
  101.     @column_max = 1
  102.     @index = -1
  103.   end
  104.   #--------------------------------------------------------------------------
  105.   # ● 设置光标的位置
  106.   #     index : 新的光标位置
  107.   #--------------------------------------------------------------------------
  108.   def index=(index)
  109.     @index = index
  110.     # 刷新帮助文本 (update_help 定义了继承目标)
  111.     if self.active and @help_window != nil
  112.       update_help
  113.     end
  114.     # 刷新光标矩形
  115.     update_cursor_rect
  116.   end
  117.   #--------------------------------------------------------------------------
  118.   # ● 获取行数
  119.   #--------------------------------------------------------------------------
  120.   def row_max
  121.     # 由项目数和列数计算出行数
  122.     return (@item_max + @column_max - 1) / @column_max
  123.   end
  124.   #--------------------------------------------------------------------------
  125.   # ● 获取开头行
  126.   #--------------------------------------------------------------------------
  127.   def top_row
  128.     # 将窗口内容的传送源 Y 坐标、1 行的高 32 等分
  129.     return self.oy / 40
  130.   end
  131.   #--------------------------------------------------------------------------
  132.   # ● 设置开头行
  133.   #     row : 显示开头的行
  134.   #--------------------------------------------------------------------------
  135.   def top_row=(row)
  136.     # row 未满 0 的场合更正为 0
  137.     if row < 0
  138.       row = 0
  139.     end
  140.     # row 超过 row_max - 1 的情况下更正为 row_max - 1
  141.     if row > row_max - 1
  142.       row = row_max - 1
  143.     end
  144.     # row 1 行高的 32 倍、窗口内容的传送源 Y 坐标
  145.     self.oy = row * 40
  146.   end
  147.   #--------------------------------------------------------------------------
  148.   # ● 获取 1 页可以显示的行数
  149.   #--------------------------------------------------------------------------
  150.   def page_row_max
  151.     # 窗口的高度,设置画面的高度减去 32 ,除以 1 行的高度 32
  152.     return (self.height - 40) / 40
  153.   end
  154.   #--------------------------------------------------------------------------
  155.   # ● 获取 1 页可以显示的项目数
  156.   #--------------------------------------------------------------------------
  157.   def page_item_max
  158.     # 将行数 page_row_max 乘上列数 @column_max
  159.     return page_row_max * @column_max
  160.   end
  161.   #--------------------------------------------------------------------------
  162.   # ● 帮助窗口的设置
  163.   #     help_window : 新的帮助窗口
  164.   #--------------------------------------------------------------------------
  165.   def help_window=(help_window)
  166.     @help_window = help_window
  167.     # 刷新帮助文本 (update_help 定义了继承目标)
  168.     if self.active and @help_window != nil
  169.       update_help
  170.     end
  171.   end
  172.   #--------------------------------------------------------------------------
  173.   # ● 更新光标矩形
  174.   #--------------------------------------------------------------------------
  175.   def update_cursor_rect
  176.     # 光标位置不满 0 的情况下
  177.     if @index < 0
  178.       self.cursor_rect.empty
  179.       return
  180.     end
  181.     # 获取当前的行
  182.     row = @index / @column_max
  183.     # 当前行被显示开头行前面的情况下
  184.     if row < self.top_row
  185.       # 从当前行向开头行滚动
  186.       self.top_row = row
  187.     end
  188.     # 当前行被显示末尾行之后的情况下
  189.     if row > self.top_row + (self.page_row_max - 1)
  190.       # 从当前行向末尾滚动
  191.       self.top_row = row - (self.page_row_max - 1)
  192.     end
  193.     # 计算光标的宽度
  194.     cursor_width = self.width / @column_max - 40
  195.     # 计算光标坐标
  196.     x = @index % @column_max * (cursor_width + 40)
  197.     y = @index / @column_max * 40 - self.oy
  198.     # 更新光标矩形
  199.     self.cursor_rect.set(x, y, cursor_width, 40)
  200.   end
  201.   #--------------------------------------------------------------------------
  202.   # ● 刷新画面
  203.   #--------------------------------------------------------------------------
  204.   def update
  205.     super
  206.     # 可以移动光标的情况下
  207.     if self.active and @item_max > 0 and @index >= 0
  208.       # 方向键下被按下的情况下
  209.       if Input.repeat?(Input::DOWN)
  210.         # 列数不是 1 并且不与方向键下的按下状态重复的情况、
  211.         # 或光标位置在(项目数-列数)之前的情况下
  212.         if (@column_max == 1 and Input.trigger?(Input::DOWN)) or
  213.            @index < @item_max - @column_max
  214.           # 光标向下移动
  215.           $game_system.se_play($data_system.cursor_se)
  216.           @index = (@index + @column_max) % @item_max
  217.         end
  218.       end
  219.       # 方向键上被按下的情况下
  220.       if Input.repeat?(Input::UP)
  221.         # 列数不是 1 并且不与方向键下的按下状态重复的情况、
  222.         # 或光标位置在列之后的情况下
  223.         if (@column_max == 1 and Input.trigger?(Input::UP)) or
  224.            @index >= @column_max
  225.           # 光标向上移动
  226.           $game_system.se_play($data_system.cursor_se)
  227.           @index = (@index - @column_max + @item_max) % @item_max
  228.         end
  229.       end
  230.       # 方向键右被按下的情况下
  231.       if Input.repeat?(Input::RIGHT)
  232.         # 列数为 2 以上并且、光标位置在(项目数 - 1)之前的情况下
  233.         if @column_max >= 2 and @index < @item_max - 1
  234.           # 光标向右移动
  235.           $game_system.se_play($data_system.cursor_se)
  236.           @index += 1
  237.         end
  238.       end
  239.       # 方向键左被按下的情况下
  240.       if Input.repeat?(Input::LEFT)
  241.         # 列数为 2 以上并且、光标位置在 0 之后的情况下
  242.         if @column_max >= 2 and @index > 0
  243.           # 光标向左移动
  244.           $game_system.se_play($data_system.cursor_se)
  245.           @index -= 1
  246.         end
  247.       end
  248.       # R 键被按下的情况下
  249.       if Input.repeat?(Input::R)
  250.         # 显示的最后行在数据中最后行上方的情况下
  251.         if self.top_row + (self.page_row_max - 1) < (self.row_max - 1)
  252.           # 光标向后移动一页
  253.           $game_system.se_play($data_system.cursor_se)
  254.           @index = [@index + self.page_item_max, @item_max - 1].min
  255.           self.top_row += self.page_row_max
  256.         end
  257.       end
  258.       # L 键被按下的情况下
  259.       if Input.repeat?(Input::L)
  260.         # 显示的开头行在位置 0 之后的情况下
  261.         if self.top_row > 0
  262.           # 光标向前移动一页
  263.           $game_system.se_play($data_system.cursor_se)
  264.           @index = [@index - self.page_item_max, 0].max
  265.           self.top_row -= self.page_row_max
  266.         end
  267.       end
  268.     end
  269.     # 刷新帮助文本 (update_help 定义了继承目标)
  270.     if self.active and @help_window != nil
  271.       update_help
  272.     end
  273.     # 刷新光标矩形
  274.     update_cursor_rect
  275.   end
  276. end

  277. #==============================================================================
  278. # ■ Window_Command
  279. #------------------------------------------------------------------------------
  280. #  一般的命令选择行窗口。
  281. #==============================================================================

  282. class Window_Command2 < Window_Selectable2
  283.   #--------------------------------------------------------------------------
  284.   # ● 初始化对像
  285.   #     width    : 窗口的宽
  286.   #     commands : 命令字符串序列
  287.   #--------------------------------------------------------------------------
  288.   def initialize(width, commands)
  289.     # 由命令的个数计算出窗口的高
  290.     super(0, 0, width, commands.size * 40 + 40)
  291.     @item_max = commands.size
  292.     @commands = commands
  293.     self.contents = Bitmap.new(width - 40, @item_max * 40)
  294.     refresh
  295.     self.index = 0
  296.   end
  297.   #--------------------------------------------------------------------------
  298.   # ● 刷新
  299.   #--------------------------------------------------------------------------
  300.   def refresh
  301.     self.contents.clear
  302.     for i in 0...@item_max
  303.       draw_item(i, normal_color)
  304.     end
  305.   end
  306.   #--------------------------------------------------------------------------
  307.   # ● 描绘项目
  308.   #     index : 项目编号
  309.   #     color : 文字色
  310.   #--------------------------------------------------------------------------
  311.   def draw_item(index, color)
  312.     self.contents.font.color = color
  313.     rect = Rect.new(4, 40 * index, self.contents.width - 8, 40)
  314.     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  315.     self.contents.draw_text(rect, @commands[index])
  316.   end
  317.   #--------------------------------------------------------------------------
  318.   # ● 项目无效化
  319.   #     index : 项目编号
  320.   #--------------------------------------------------------------------------
  321.   def disable_item(index)
  322.     draw_item(index, disabled_color)
  323.   end
  324.   def able_item(index)
  325.     draw_item(index, normal_color)
  326.   end
  327. end

  328. #==============================================================================
  329. # ■ Window_Command
  330. #------------------------------------------------------------------------------
  331. #  一般的命令选择行窗口。(追加定义)
  332. #==============================================================================
  333. class Window_Command < Window_Selectable
  334.   #--------------------------------------------------------------------------
  335.   # ● 项目有效化
  336.   #     index : 项目编号
  337.   #--------------------------------------------------------------------------
  338.   def able_item(index)
  339.     draw_item(index, normal_color)
  340.   end
  341. end
  342. #==============================================================================
  343. # ■ Game_Actor
  344. #------------------------------------------------------------------------------
  345. #  处理角色的类。(再定义)
  346. #==============================================================================
  347. class Game_Actor < Game_Battler
  348.   #--------------------------------------------------------------------------
  349.   # ● 更改 EXP
  350.   #     exp : 新的 EXP
  351.   #--------------------------------------------------------------------------
  352.   def exp=(exp)
  353.     @exp = [[exp, 9999999].min, 0].max
  354.     # 升级
  355.     while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
  356.       @level += 1
  357.       # 增加4点可自由分配的点数
  358.       $game_variables[self.id + LEVEL_UP_VARIABLE] += LEVEL_UP_POINT
  359.       # 学会特技
  360.       for j in $data_classes[@class_id].learnings
  361.         if j.level == @level
  362.           learn_skill(j.skill_id)
  363.         end
  364.       end
  365.     end
  366.     # 降级
  367.     while @exp < @exp_list[@level]
  368.       @level -= 1
  369.     end
  370.     # 修正当前的 HP 与 SP 超过最大值
  371.     @hp = [@hp, self.maxhp].min
  372.     @sp = [@sp, self.maxsp].min
  373.   end
  374. end
  375. #==============================================================================
  376. # ■ Window_Base
  377. #------------------------------------------------------------------------------
  378. #  游戏中全部窗口的超级类(追加定义)
  379. #==============================================================================
  380. class Window_Base < Window
  381.   #--------------------------------------------------------------------------
  382.   # ● 描绘 HP
  383.   #     actor : 角色
  384.   #     x     : 描画目标 X 坐标
  385.   #     y     : 描画目标 Y 坐标
  386.   #     width : 描画目标的宽
  387.   #--------------------------------------------------------------------------
  388.   def draw_actor_hp_lvup(actor, x, y)
  389.     self.contents.font.color = system_color
  390.     self.contents.draw_text(x , y, 96, 32, "最大" + $data_system.words.hp)
  391.     if $temp_hp == 0
  392.       self.contents.font.color = normal_color
  393.       self.contents.draw_text(x + 60 , y, 48, 32, actor.maxhp.to_s, 2)
  394.     else
  395.       maxhp = actor.maxhp + $temp_hp
  396.       self.contents.font.color = Color.new(255, 128, 128, 255)
  397.       self.contents.draw_text(x + 60 , y, 48, 32, maxhp.to_s ,2)
  398.       self.contents.font.color = normal_color      
  399.       self.contents.draw_text(x + 155 - 64, y, 36, 32, "( ", 2)
  400.       if $temp_hp >=0
  401.         self.contents.font.color = Color.new(255, 128, 128, 255)
  402.         self.contents.draw_text(x + 155 - 64, y, 36, 32, " +",2)
  403.       else
  404.         self.contents.font.color = Color.new(255,255,0,255)
  405.         self.contents.draw_text(x + 155 - 64, y, 36, 32, " -",2)
  406.       end
  407.       self.contents.draw_text(x + 200 - 64, y, 36, 32, $temp_hp.to_s, 2)
  408.       self.contents.font.color = normal_color
  409.       self.contents.draw_text(x + 215 - 64, y, 36, 32, ")", 2)
  410.     end
  411.   end
  412.   #--------------------------------------------------------------------------
  413.   # ● 描绘 SP
  414.   #     actor : 角色
  415.   #     x     : 描画目标 X 坐标
  416.   #     y     : 描画目标 Y 坐标
  417.   #     width : 描画目标的宽
  418.   #--------------------------------------------------------------------------
  419.   def draw_actor_sp_lvup(actor, x, y)
  420.     self.contents.font.color = system_color
  421.     self.contents.draw_text(x , y, 96, 32, "最大" + $data_system.words.sp)
  422.     if $temp_sp == 0
  423.       self.contents.font.color = normal_color
  424.       self.contents.draw_text(x + 60 , y, 48, 32, actor.maxsp.to_s, 2)
  425.     else
  426.       maxsp = actor.maxsp + $temp_sp
  427.       self.contents.font.color = Color.new(255, 128, 128, 255)
  428.       self.contents.draw_text(x + 60 , y, 48, 32, maxsp.to_s ,2)
  429.       self.contents.font.color = normal_color      
  430.       self.contents.draw_text(x + 155 - 64, y, 36, 32, "( ", 2)
  431.       if $temp_sp >=0
  432.         self.contents.font.color = Color.new(255, 128, 128, 255)
  433.         self.contents.draw_text(x + 155 - 64, y, 36, 32, " +",2)
  434.       else
  435.         self.contents.font.color = Color.new(255,255,0,255)
  436.         self.contents.draw_text(x + 155 - 64, y, 36, 32, " -",2)
  437.       end
  438.       self.contents.draw_text(x + 200 - 64, y, 36, 32, $temp_sp.to_s, 2)
  439.       self.contents.font.color = normal_color
  440.       self.contents.draw_text(x + 215 - 64, y, 36, 32, ")", 2)
  441.     end
  442.   end
  443.   #--------------------------------------------------------------------------
  444.   # ● 描绘能力值
  445.   #     actor : 角色
  446.   #     x     : 描画目标 X 坐标
  447.   #     y     : 描画目标 Y 坐标
  448.   #     type  : 能力值种类 (0~4)
  449.   #--------------------------------------------------------------------------
  450.   def draw_actor_lvup(actor, x, y, type)   
  451.     # 定义数字颜色
  452.     lvup = normal_color
  453.     upcolor = Color.new(255, 128, 128, 255)
  454.     self.contents.font.color = normal_color   
  455.     case type
  456.     when 0
  457.       parameter_name = $data_system.words.str
  458.       parameter_value = actor.str
  459.       parameter_value_temp = parameter_value + $temp_str
  460.       if $temp_str != 0
  461.         lvup = upcolor
  462.         self.contents.draw_text(x + 256 - 64, y, 16, 32, "(")
  463.         if $temp_str >= 0
  464.           self.contents.font.color = lvup
  465.           self.contents.draw_text(x + 272 - 64, y, 80, 32, "+",0)
  466.         else
  467.           self.contents.font.color = Color.new(255,255,0,255)
  468.           self.contents.draw_text(x + 272 - 64, y, 80, 32, "-",0)
  469.         end        
  470.         self.contents.draw_text(x + 272 - 64, y, 80, 32, $temp_str.abs.to_s,1)
  471.         self.contents.font.color = normal_color
  472.         self.contents.draw_text(x + 272 - 80, y, 80, 32, ")", 2)
  473.       end
  474.     when 1
  475.       parameter_name = $data_system.words.dex
  476.       parameter_value = actor.dex
  477.       parameter_value_temp = parameter_value + $temp_dex
  478.       if $temp_dex != 0
  479.         lvup = upcolor
  480.         self.contents.draw_text(x + 256 - 64, y, 16, 32, "(")
  481.         if $temp_dex >= 0
  482.           self.contents.font.color = lvup
  483.           self.contents.draw_text(x + 272 - 64, y, 80, 32, "+",0)
  484.         else
  485.           self.contents.font.color = Color.new(255,255,0,255)
  486.           self.contents.draw_text(x + 272 - 64, y, 80, 32, "-",0)
  487.         end        
  488.         self.contents.draw_text(x + 272 - 64, y, 80, 32, $temp_dex.abs.to_s,1)
  489.         self.contents.font.color = normal_color
  490.         self.contents.draw_text(x + 272 - 80, y, 80, 32, ")", 2)
  491.       end
  492.     when 2
  493.       parameter_name = $data_system.words.agi
  494.       parameter_value = actor.agi
  495.       parameter_value_temp = parameter_value + $temp_agi
  496.       if $temp_agi != 0
  497.         lvup = upcolor
  498.         self.contents.draw_text(x + 256 - 64, y, 16, 32, "(")
  499.         if $temp_agi >= 0
  500.           self.contents.font.color = lvup
  501.           self.contents.draw_text(x + 272 - 64, y, 80, 32, "+",0)
  502.         else
  503.           self.contents.font.color = Color.new(255,255,0,255)
  504.           self.contents.draw_text(x + 272 - 64, y, 80, 32, "-",0)
  505.         end        
  506.         self.contents.draw_text(x + 272 - 64, y, 80, 32, $temp_agi.abs.to_s,1)
  507.         self.contents.font.color = normal_color
  508.         self.contents.draw_text(x + 272 - 80, y, 80, 32, ")", 2)
  509.       end
  510.     when 3
  511.       parameter_name = $data_system.words.int
  512.       parameter_value = actor.int
  513.       parameter_value_temp = parameter_value + $temp_int
  514.       if $temp_int != 0
  515.         lvup = upcolor
  516.         self.contents.draw_text(x + 256 - 64, y, 16, 32, "(")
  517.         if $temp_int >= 0
  518.           self.contents.font.color = lvup
  519.           self.contents.draw_text(x + 272 - 64, y, 80, 32, "+",0)
  520.         else
  521.           self.contents.font.color = Color.new(255,255,0,255)
  522.           self.contents.draw_text(x + 272 - 64, y, 80, 32, "-",0)
  523.         end        
  524.         self.contents.draw_text(x + 272 - 64, y, 80, 32, $temp_int.abs.to_s,1)
  525.         self.contents.font.color = normal_color
  526.         self.contents.draw_text(x + 272 - 80, y, 80, 32, ")", 2)
  527.       end
  528.     when 4
  529.       parameter_name = "尚未分配能力点数"
  530.       parameter_value = $point
  531.       if $point != 0
  532.         lvup = upcolor
  533.       end
  534.     end   
  535.     self.contents.font.color = system_color
  536.     self.contents.draw_text(x, y, 120, 32, parameter_name)
  537.     self.contents.font.color = normal_color
  538.     self.contents.draw_text(x + 110, y, 36, 32, parameter_value.to_s)   
  539.     if type != 4
  540.       self.contents.draw_text(x + 140, y, 36, 32, "→")
  541.     end  
  542.     self.contents.font.color = lvup
  543.     self.contents.draw_text(x + 170, y, 60, 32, parameter_value_temp.to_s)
  544.     self.contents.font.color = normal_color        
  545.   end
  546. end
  547. #==============================================================================
  548. # ■ Window_lvup
  549. #------------------------------------------------------------------------------
  550. #  显示升级状态窗口。
  551. #==============================================================================
  552. class Window_Lvup < Window_Base
  553.   #--------------------------------------------------------------------------
  554.   # ● 初始化对像
  555.   #     actor : 角色
  556.   #--------------------------------------------------------------------------
  557.   def initialize(actor)
  558.     super(0, 0, 576, 320)
  559.     self.contents = Bitmap.new(width - 32, height - 32)
  560.     @actor = actor
  561.     refresh
  562.   end  
  563.   #--------------------------------------------------------------------------
  564.   # ● 刷新
  565.   #--------------------------------------------------------------------------
  566.   def refresh
  567.     self.contents.clear
  568.     draw_actor_graphic(@actor, 18, 96)
  569.     draw_actor_name(@actor, 4, 0)
  570.     draw_actor_class(@actor, 4 + 144, 0)
  571.     draw_actor_level(@actor, 36, 32)
  572.     draw_actor_state(@actor, 33, 64)   
  573.     draw_actor_hp_lvup(@actor, 96, 32)
  574.     draw_actor_sp_lvup(@actor, 96, 64)
  575.     draw_actor_lvup(@actor, 4, 96, 0)
  576.     draw_actor_lvup(@actor, 4, 128, 1)
  577.     draw_actor_lvup(@actor, 4, 160, 2)
  578.     draw_actor_lvup(@actor, 4, 192, 3)
  579.     draw_actor_lvup(@actor, 4, 224, 4)
  580.   end
  581. end
  582. #==============================================================================
  583. # ■ Window_Help
  584. #------------------------------------------------------------------------------
  585. #  特技及物品的说明、角色的状态显示的窗口。
  586. #==============================================================================
  587. class Window_Lvup_Help < Window_Base
  588.   #--------------------------------------------------------------------------
  589.   # ● 初始化对像
  590.   #--------------------------------------------------------------------------
  591.   def initialize
  592.     super(0, 320, 640, 160)
  593.     self.contents = Bitmap.new(width - 32, height - 32)
  594.     @test = "" #——这个东西用来检测,节约内存专用
  595.   end  
  596.   #--------------------------------------------------------------------------
  597.   # ● 设置文本
  598.   #--------------------------------------------------------------------------
  599.   def lvup_text(text1, text2 = nil, text3 = nil, text4 = nil)
  600.     if @test != text1
  601.       @test = text1
  602.     else
  603.       return
  604.     end   
  605.     self.contents.clear
  606.     self.contents.font.color = normal_color
  607.     self.contents.draw_text(4, 0, self.width - 40, 32, text1)
  608.     if text2 != nil
  609.       self.contents.draw_text(4 , 32, self.width - 40, 32, text2)
  610.     end
  611.     self.contents.font.size -= 4
  612.     if text3 != nil
  613.       self.contents.draw_text(4 , 64, self.width - 40, 32, text3)
  614.     end
  615.     if text4 != nil
  616.       self.contents.draw_text(4 , 96, self.width - 40, 32, text4)
  617.     end
  618.     self.contents.font.size += 4
  619.   end
  620. end
  621. #==============================================================================
  622. # ■ Scene_lvup
  623. #------------------------------------------------------------------------------
  624. #  处理升级画面的类。
  625. #==============================================================================
  626. class Scene_Lvup
  627.   #--------------------------------------------------------------------------
  628.   # ● 初始化对像
  629.   #     actor_index : 角色索引
  630.   #     menu_index : 选项起始位置
  631.   #--------------------------------------------------------------------------
  632.   def initialize(actor_index = 0 , menu_index = 0)
  633.     @actor_index = actor_index
  634.     @menu_index = menu_index
  635.   end
  636.   #--------------------------------------------------------------------------
  637.   # ● 主处理
  638.   #--------------------------------------------------------------------------
  639.   def main
  640.     s1 = "提升VIT"
  641.     s2 = "提升"+$data_system.words.str
  642.     s3 = "提升"+$data_system.words.dex
  643.     s4 = "提升"+$data_system.words.agi
  644.     s5 = "提升"+$data_system.words.int
  645.     s6 = "确认分配"
  646.     s7 = "取消分配"
  647.     @command_window = Window_Command2.new(128, [s1, s2, s3, s4, s5, s6, s7])
  648.     @command_window.index = @menu_index
  649.     # 获取角色
  650.     @actor = $game_party.actors[@actor_index]
  651.     @aa = Window_Aa.new(@actor)
  652.     # 将角色的剩余点数带入
  653.     $point = $game_variables[@actor.id + LEVEL_UP_VARIABLE]   
  654.     # 初始化临时量
  655.     $temp_str = 0
  656.     $temp_dex = 0
  657.     $temp_agi = 0
  658.     $temp_int = 0
  659.     $temp_hp = 0
  660.     $temp_sp = 0
  661.    
  662.     #添加部分——————
  663.     $vit_a = 0
  664.     $str_a = 0
  665.     $dex_a = 0
  666.     $agi_a = 0
  667.     $int_a = 0
  668.     #添加部分——————
  669.    
  670.     #=========================================================================
  671.     # 特别提示:这些设置也可以使用小数,但是可能出现0值意外错误
  672.     #  (各种编程语言都有这种意外),建议还是使用整数,正负不限
  673.     #=========================================================================
  674.     # 每提升一次力量,提升多少附加能力
  675.     #=========================================================================
  676.     @str_hp = 6     # 每提升一次力量附加提升多少HP
  677.     @str_sp = 0     # 每提升一次力量附加提升多少SP
  678.     @str_dex = 0    # 每提升一次力量附加提升多少灵巧
  679.     @str_agi = 0    # 每提升一次力量附加提升多少速度
  680.     @str_int = 0    # 每提升一次力量附加提升多少魔力
  681.     @str_str = 1    # 每提升一次力量附加提升多少力量
  682.     #=========================================================================
  683.     # 每提升一次灵巧,提升多少附加能力
  684.     #=========================================================================
  685.     @dex_hp = 0     # 每提升一次灵巧附加提升多少HP
  686.     @dex_sp = 0     # 每提升一次灵巧附加提升多少SP
  687.     @dex_str = 0    # 每提升一次灵巧附加提升多少力量
  688.     @dex_agi = 0    # 每提升一次灵巧附加提升多少速度
  689.     @dex_int = 0    # 每提升一次灵巧附加提升多少魔力
  690.     @dex_dex = 1    # 每提升一次灵巧附加提升多少灵巧
  691.     #=========================================================================
  692.     # 每提升一次速度,提升多少附加能力
  693.     #=========================================================================
  694.     @agi_hp = 0     # 每提升一次速度附加提升多少HP
  695.     @agi_sp = 0     # 每提升一次速度附加提升多少SP
  696.     @agi_str = 0    # 每提升一次速度附加提升多少力量
  697.     @agi_dex = 0    # 每提升一次速度附加提升多少灵巧
  698.     @agi_int = 0    # 每提升一次速度附加提升多少魔力
  699.     @agi_agi = 0.5    # 每提升一次速度附加提升多少速度
  700.     #=========================================================================
  701.     # 每提升一次魔力,提升多少附加能力
  702.     #=========================================================================
  703.     @int_hp = 0     # 每提升一次魔力附加提升多少HP
  704.     @int_sp = 2    # 每提升一次魔力附加提升多少SP
  705.     @int_str = 0   # 每提升一次魔力附加提升多少力量
  706.     @int_dex = 0   # 每提升一次魔力附加提升多少灵巧
  707.     @int_agi = 0   # 每提升一次魔力附加提升多少速度
  708.     @int_int = 1   # 每提升一次魔力附加提升多少魔力
  709.     #=========================================================================
  710.     # 每提升一次体力,提升多少附加能力
  711.     #=========================================================================
  712.     @hp = 22       # 每提升一次体力提升多少HP
  713.     @sp = 5       # 每提升一次体力提升多少SP
  714.     @hp_str = 0   # 每提升一次体力提升多少力量
  715.     @hp_dex = 0   # 每提升一次体力提升多少速度
  716.     @hp_agi = 0   # 每提升一次体力提升多少灵巧
  717.     @hp_int = 0   # 每提升一次体力提升多少魔力   
  718.     # 定义说明文字
  719.     @text_hp_sc = "HP是维持生命的指标,SP是使用魔法损耗的能量。"
  720.     @text_str_sc = $data_system.words.str + "可以增加物理攻击和物理技能的威力。"
  721.     @text_dex_sc = $data_system.words.dex + "可以提高攻击的命中率和必杀。"
  722.     @text_agi_sc = $data_system.words.agi + "可以提高回避、逃跑成功率。"
  723.     @text_int_sc = $data_system.words.int + "可以提高魔法的效果。"
  724.     @text_save = "确认能力分配并返回游戏"
  725.     @text_reset= "取消这次的能力点数分配"
  726.     @text_2 = "每增加一点此项能力值的效果                                  切换加点对象"
  727.     @text_hp = "最大" + $data_system.words.hp + "值"
  728.     @text_sp = "最大" + $data_system.words.sp + "值"
  729.     @text_str = "最大" + $data_system.words.str + "值"
  730.     @text_dex = "最大" + $data_system.words.dex + "值"
  731.     @text_agi = "最大" + $data_system.words.agi + "值"
  732.     @text_int = "最大" + $data_system.words.int + "值"
  733.     s_disable
  734.     # 生成状态窗口
  735.     @lvup_window = Window_Lvup.new(@actor)
  736.     @lvup_window.x = 128
  737.     @lvup_window.y = 0   
  738.     # 生成帮助窗口并初始化帮助文本
  739.     @help_window = Window_Lvup_Help.new   
  740.     # 执行过渡
  741.     Graphics.transition(20, "Graphics/Transitions/" + $data_system.battle_transition)
  742.     # 主循环
  743.     loop do
  744.       # 刷新游戏画面
  745.       Graphics.update
  746.       # 刷新输入信息
  747.       Input.update
  748.       # 刷新画面
  749.       update
  750.       # 如果切换画面就中断循环
  751.       if $scene != self
  752.         break
  753.       end
  754.     end
  755.     # 准备过渡
  756.     Graphics.freeze
  757.     # 释放窗口
  758.     @command_window.dispose
  759.     @lvup_window.dispose
  760.     @help_window.dispose
  761.     @aa.dispose
  762.   end
  763.   #--------------------------------------------------------------------------
  764.   # ● 刷新画面
  765.   #--------------------------------------------------------------------------
  766.   def update
  767.     # 刷新窗口
  768.     @aa.update
  769.     @command_window.update
  770.     # 选项明暗判断(因为太消耗资源,所以屏蔽掉了)
  771.     s_disable
  772.     @lvup_window.update
  773.     #=============================================================
  774.     # 按下 B 键的情况下
  775.     #=============================================================
  776.     if Input.trigger?(Input::B)
  777.       #添加部分——————
  778.         @actor.have_vit -= $vit_a
  779.         @actor.have_str -= $str_a
  780.         @actor.have_dex -= $dex_a
  781.         @actor.have_agi -= $agi_a
  782.         @actor.have_int -= $int_a
  783.         #添加部分——————
  784.       # 演奏取消 SE
  785.       $game_system.se_play($data_system.cancel_se)
  786.       # 切换到地图画面
  787.       $scene = Scene_Menu.new(5)
  788.       return
  789.     end
  790.     #=============================================================
  791.     # 按下 C 键的情况下
  792.     #=============================================================
  793.     if Input.trigger?(Input::C)      
  794.       if @command_window.index == 5
  795.           # 演奏确定 SE
  796.         $game_system.se_play($data_system.decision_se)
  797.         # 将角色的剩余点数带回
  798.         $game_variables[@actor.id + LEVEL_UP_VARIABLE] = $point
  799.         # 将角色点数实际加上
  800.         @actor.str += $temp_str
  801.         @actor.dex += $temp_dex
  802.         @actor.agi += $temp_agi
  803.         @actor.int += $temp_int
  804.         @actor.maxhp += $temp_hp
  805.         @actor.maxsp += $temp_sp
  806.         # 切换到地图画面
  807.         $scene = Scene_Menu.new(5)
  808.       return
  809.       end
  810.       if @command_window.index == 6
  811.           # 演奏确定 SE
  812.         $game_system.se_play($data_system.cancel_se)
  813.           # 将角色的剩余点数带入
  814.         $point = $game_variables[@actor.id + LEVEL_UP_VARIABLE]   
  815.           # 初始化临时量
  816.         #添加部分——————
  817.         @actor.have_vit -= $vit_a
  818.         @actor.have_str -= $str_a
  819.         @actor.have_dex -= $dex_a
  820.         @actor.have_agi -= $agi_a
  821.         @actor.have_int -= $int_a
  822.         #添加部分——————
  823.          
  824.         $temp_str = 0
  825.         $temp_dex = 0
  826.         $temp_agi = 0
  827.         $temp_int = 0
  828.         $temp_hp = 0
  829.         $temp_sp = 0
  830.         @aa.refresh
  831.         @lvup_window.refresh
  832.         return
  833.       end
  834.       if $point == 0 or $point == 1
  835.         # 演奏冻结 SE
  836.         $game_system.se_play($data_system.buzzer_se)
  837.         return
  838.       end
  839.       case @command_window.index
  840.       when 0
  841.         if @actor.have_vit >= 147 or (@actor.have_vit >= 100 and $point == 2)
  842.           $game_system.se_play($data_system.buzzer_se)
  843.           return
  844.         end
  845.         # 演奏确定 SE
  846.         $game_system.se_play($data_system.decision_se)
  847.         $temp_hp += @hp
  848.         $temp_sp += @sp
  849.         $temp_str += @hp_str
  850.         $temp_dex += @hp_dex
  851.         $temp_agi += @hp_agi
  852.         $temp_int += @hp_int
  853.         $point -= 2
  854.         $point -= 1 if @actor.have_vit >= 100
  855.         
  856.         $vit_a += 1 if @actor.have_vit >= 100
  857.         @actor.have_vit += 1 if @actor.have_vit >= 100
  858.         @actor.have_vit += 2
  859.         $vit_a += 2
  860.         @aa.refresh
  861.         
  862.         @lvup_window.refresh
  863.         s_disable
  864.         return
  865.       when 1
  866.         if @actor.have_str >= 147 or (@actor.have_str >= 100 and $point == 2)
  867.           $game_system.se_play($data_system.buzzer_se)
  868.           return
  869.         end
  870.         # 演奏确定 SE
  871.         $game_system.se_play($data_system.decision_se)
  872.         $temp_str += @str_str
  873.         $temp_hp += @str_hp
  874.         $temp_sp += @str_sp
  875.         $temp_dex += @str_dex
  876.         $temp_agi += @str_agi
  877.         $temp_int += @str_int
  878.         $point -= 2
  879.         $point -= 1 if @actor.have_str >= 100
  880.         
  881.         $str_a += 1 if @actor.have_str >= 100
  882.         @actor.have_str += 1 if @actor.have_str >= 100
  883.         @actor.have_str += 2
  884.         $str_a += 2
  885.         @aa.refresh
  886.         
  887.         @lvup_window.refresh
  888.         s_disable
  889.         return
  890.       when 2
  891.         if @actor.have_dex >= 147 or (@actor.have_dex >= 100 and $point == 2)
  892.           $game_system.se_play($data_system.buzzer_se)
  893.           return
  894.         end
  895.         # 演奏确定 SE
  896.         $game_system.se_play($data_system.decision_se)
  897.         $temp_dex += @dex_dex
  898.         $temp_hp += @dex_hp
  899.         $temp_sp += @dex_sp
  900.         $temp_str += @dex_str
  901.         $temp_agi += @dex_agi
  902.         $temp_int += @dex_int
  903.         $point -= 2
  904.         $point -= 1 if @actor.have_dex >= 100
  905.         
  906.         $dex_a += 1 if @actor.have_dex >= 100
  907.         @actor.have_dex += 1 if @actor.have_dex >= 100
  908.         @actor.have_dex += 2
  909.         $dex_a += 2
  910.         @aa.refresh
  911.         
  912.         @lvup_window.refresh
  913.         s_disable
  914.         return
  915.       when 3
  916.         if @actor.have_agi >= 147 or (@actor.have_agi >= 100 and $point == 2)
  917.           $game_system.se_play($data_system.buzzer_se)
  918.           return
  919.         end
  920.         # 演奏确定 SE
  921.         $game_system.se_play($data_system.decision_se)
  922.         $temp_agi += @agi_agi
  923.         $temp_hp += @agi_hp
  924.         $temp_sp += @agi_sp
  925.         $temp_str += @agi_str
  926.         $temp_dex += @agi_dex
  927.         $temp_int += @agi_int
  928.         $point -= 2
  929.         $point -= 1 if @actor.have_agi >= 100
  930.                
  931.         $agi_a += 1 if @actor.have_agi >= 100
  932.         @actor.have_agi += 1 if @actor.have_agi >= 100
  933.         @actor.have_agi += 2
  934.         $agi_a += 2
  935.         @aa.refresh
  936.         
  937.         @lvup_window.refresh
  938.         s_disable
  939.         return
  940.       when 4
  941.         if @actor.have_int >= 147 or (@actor.have_int >= 100 and $point == 2)
  942.           $game_system.se_play($data_system.buzzer_se)
  943.           return
  944.         end
  945.         # 演奏确定 SE
  946.         $game_system.se_play($data_system.decision_se)
  947.         $temp_int += @int_int
  948.         $temp_hp += @int_hp
  949.         $temp_sp += @int_sp
  950.         $temp_str += @int_str
  951.         $temp_dex += @int_dex
  952.         $temp_agi += @int_agi
  953.         $point -= 2
  954.         $point -= 1 if @actor.have_int >= 100
  955.                
  956.         $int_a += 1 if @actor.have_int >= 100
  957.         @actor.have_int += 1 if @actor.have_int >= 100
  958.         @actor.have_int += 2
  959.         $agi_a += 2
  960.         @aa.refresh
  961.         
  962.         @lvup_window.refresh
  963.         s_disable
  964.         return
  965.       end
  966.     end
  967.     #=============================================================
  968.     # 什么都没有按下的情况
  969.     #=============================================================
  970.     case @command_window.index   
  971.     when 0  # 增加体力
  972.       temptext1 = @text_hp + @hp.to_s + "点   " + @text_str + @hp_str.to_s + "点   " + @text_dex + @hp_dex.to_s + "点                Page UP  ↑"
  973.       temptext2 = @text_sp + @sp.to_s + "点   " + @text_agi + @hp_agi.to_s + "点   " + @text_int + @hp_int.to_s + "点                 Page DOWN↓"
  974.       @help_window.lvup_text(@text_hp_sc , @text_2 , temptext1 , temptext2)
  975.     when 1  # 增加力量
  976.       temptext1 = @text_hp + @str_hp.to_s + "点   " + @text_str + @str_str.to_s + "点   " + @text_dex + @str_dex.to_s + "点                 Page UP  ↑"
  977.       temptext2 = @text_sp + @str_sp.to_s + "点   " + @text_agi + @str_agi.to_s + "点   " + @text_int + @str_int.to_s + "点                 Page DOWN↓"
  978.       @help_window.lvup_text(@text_str_sc , @text_2 , temptext1 , temptext2)
  979.     when 2  # 增加灵巧
  980.       temptext1 = @text_hp + @dex_hp.to_s + "点   " + @text_str + @dex_agi.to_s + "点   " + @text_dex + @dex_dex.to_s + "点                 Page UP  ↑"
  981.       temptext2 = @text_sp + @dex_sp.to_s + "点   " + @text_agi + @dex_agi.to_s + "点   " + @text_int + @dex_int.to_s + "点                 Page DOWN↓"
  982.       @help_window.lvup_text(@text_dex_sc , @text_2 , temptext1 , temptext2)
  983.     when 3  # 增加速度
  984.       temptext1 = @text_hp + @agi_hp.to_s + "点   " + @text_str + @agi_str.to_s + "点   " + @text_dex + @agi_dex.to_s + "点                 Page UP  ↑"
  985.       temptext2 = @text_sp + @agi_sp.to_s + "点   " + @text_agi + @agi_agi.to_s + "点   " + @text_int + @agi_int.to_s + "点               Page DOWN↓"
  986.       @help_window.lvup_text(@text_agi_sc , @text_2 , temptext1 , temptext2)
  987.     when 4  # 增加魔力
  988.       temptext1 = @text_hp + @int_hp.to_s + "点   " + @text_str + @int_str.to_s + "点   " + @text_dex + @int_dex.to_s + "点                 Page UP  ↑"
  989.       temptext2 = @text_sp + @int_sp.to_s + "点   " + @text_agi + @int_agi.to_s + "点   " + @text_int + @int_int.to_s + "点                 Page DOWN↓"
  990.       @help_window.lvup_text(@text_int_sc , @text_2 , temptext1 , temptext2)
  991.     when 5 # 保存设定
  992.       @help_window.lvup_text(@text_save)
  993.     when 6 # 点数重置
  994.       @help_window.lvup_text(@text_reset)     
  995.     end
  996.     #=============================================================
  997.     # 按下R与L换人的情况
  998.     #=============================================================      
  999.     if Input.trigger?(Input::R)
  1000.       #添加部分——————
  1001.         @actor.have_vit -= $vit_a
  1002.         @actor.have_str -= $str_a
  1003.         @actor.have_dex -= $dex_a
  1004.         @actor.have_agi -= $agi_a
  1005.         @actor.have_int -= $int_a
  1006.         #添加部分——————
  1007.       # 演奏光标 SE
  1008.       $game_system.se_play($data_system.cursor_se)
  1009.       # 移至下一位角色
  1010.       @actor_index += 1
  1011.       @actor_index %= $game_party.actors.size
  1012.       # 切换到别的状态画面
  1013.       $scene = Scene_Lvup.new(@actor_index , @command_window.index)
  1014.       return
  1015.     end
  1016.     # 按下 L 键的情况下
  1017.     if Input.trigger?(Input::L)
  1018.       #添加部分——————
  1019.         @actor.have_vit -= $vit_a
  1020.         @actor.have_str -= $str_a
  1021.         @actor.have_dex -= $dex_a
  1022.         @actor.have_agi -= $agi_a
  1023.         @actor.have_int -= $int_a
  1024.         #添加部分——————
  1025.       # 演奏光标 SE
  1026.       $game_system.se_play($data_system.cursor_se)
  1027.       # 移至上一位角色
  1028.       @actor_index += $game_party.actors.size - 1
  1029.       @actor_index %= $game_party.actors.size
  1030.       # 切换到别的状态画面
  1031.       $scene = Scene_Lvup.new(@actor_index , @command_window.index)
  1032.       return
  1033.     end
  1034.   end  
  1035.   #--------------------------------------------------------------------------
  1036.   # ● 选项明暗判断
  1037.   #--------------------------------------------------------------------------
  1038.   def s_disable
  1039.     # 判断剩余点数是否为0,如果为0,那么增加选项表示为暗色
  1040.     if $point == 0 or $point == 1
  1041.       @command_window.disable_item(0)
  1042.       @command_window.disable_item(1)
  1043.       @command_window.disable_item(2)
  1044.       @command_window.disable_item(3)
  1045.       @command_window.disable_item(4)
  1046.     else
  1047.       if @actor.have_vit >= 147 or (@actor.have_vit >= 100 and $point == 2)
  1048.         @command_window.disable_item(0)
  1049.       else
  1050.         @command_window.able_item(0)
  1051.       end
  1052.       if @actor.have_str >= 147 or (@actor.have_str >= 100 and $point == 2)
  1053.         @command_window.disable_item(1)
  1054.       else
  1055.         @command_window.able_item(1)
  1056.       end
  1057.       if @actor.have_dex >= 147 or (@actor.have_dex >= 100 and $point == 2)
  1058.         @command_window.disable_item(2)
  1059.       else
  1060.         @command_window.able_item(2)
  1061.       end
  1062.       if @actor.have_agi >= 147 or (@actor.have_agi >= 100 and $point == 2)
  1063.         @command_window.disable_item(3)
  1064.       else
  1065.         @command_window.able_item(3)
  1066.       end
  1067.       if @actor.have_int >= 147 or (@actor.have_int >= 100 and $point == 2)
  1068.         @command_window.disable_item(4)
  1069.       else
  1070.         @command_window.able_item(4)
  1071.       end
  1072.     end
  1073.   end
  1074. end

  1075. #==============================================================================
  1076. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  1077. #==============================================================================
复制代码
完成
回复

使用道具 举报

Lv3.寻梦者 (版主)

  /) /)<

梦石
0
星屑
4212
在线时间
4890 小时
注册时间
2009-2-16
帖子
8434

开拓者短篇七成年组季军

10
 楼主| 发表于 2012-5-10 22:07:35 | 只看该作者
本帖最后由 天使喝可乐 于 2012-5-10 22:08 编辑
hys111111 发表于 2012-5-10 12:37
完成


真是 让你修改这么多次我都不好意思了= =
现在加点规则没发现什么问题    不过这个记录的计算有点问题……

1.现在加一点属性 记录不是增加1点 而是2点

2.然后我希望是"加到150就不能加了" 不是“无法加到150” 或者可以说 我希望的是“无法加到151”吧  比如现在由于是每加一次属性 记录加2点 然后加到148的时候就不能再加了(148+2=150所以不能加了吗?设置成151吧)

3.有BUG 不知道是什么原因  
比如  我分配1点 INT  然后再点取消 记录却从零变为了AGI(-2/150) INT(2/150)  然后再加INT 再取消 AGI变成(-6/150) INT变成(4/150)……  
又发现 比如我选提升STR 再取消 VIT就会变成(-2/150)  我选提升DEX  再取消  DEX变成负的了  提升AGI 在取消 DEX和AGI也会减少

点评

哦  发表于 2012-5-11 12:35
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-26 21:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表