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

Project1

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

[已经过期] 加点脚本错误

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
21 小时
注册时间
2010-10-3
帖子
20
跳转到指定楼层
1
发表于 2010-10-16 15:25:49 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
我从梦2上提取了加点的脚本,但是却出现脚本错误。代码是

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

  4. # 设定说明:
  5. # 在数据库的角色一栏里的名称加上如下的信息,如:
  6. #
  7. # 阿尔西斯,9999,5555,999,55,60,36
  8. #          HP   SP   力  巧 速 魔
  9. #
  10. # 如果某一项不想受限制,则可输入
  11. #
  12. # 阿尔西斯,,5555,,,60,36
  13. #
  14. # 也就是只需要把受限的属性最大值写出即可
  15. #
  16. # 还有就是,如果都不受限……(那似乎就没必要用这个了)
  17. # 也要在名字后面加上6个半角的逗号……
  18. #
  19. # 阿尔西斯,,,,,,
  20. #
  21. # 这样就可以一直加下去……上万也没问题,不过前提是在相关的类中已经扩大上限。
  22. # 默认的 HP SP 最大为9999 其余四项为999。

  23. module RPG
  24. class Actor
  25.    def name
  26.      name = @name.split(/,/)[0]
  27.      return name != nil ? name : ''
  28.    end
  29.    
  30.    def max_hp_stars
  31.      max_hp = @name.split(/,/)[1]
  32.      return max_hp != nil ? max_hp.to_i : 0
  33.    end
  34.    
  35.    def max_sp_stars
  36.      max_sp = @name.split(/,/)[2]
  37.      return max_sp != nil ? max_sp.to_i : 0
  38.    end
  39.    
  40.    def max_str_stars
  41.      max_str = @name.split(/,/)[3]
  42.      return max_str != nil ? max_str.to_i : 0
  43.    end
  44.    
  45.    def max_dex_stars
  46.      max_dex = @name.split(/,/)[4]
  47.      return max_dex != nil ? max_dex.to_i : 0
  48.    end
  49.    
  50.    def max_agi_stars
  51.      max_agi = @name.split(/,/)[5]
  52.      return max_agi != nil ? max_agi.to_i : 0
  53.    end
  54.    
  55.    def max_int_stars
  56.      max_int = @name.split(/,/)[6]
  57.      return max_int != nil ? max_int.to_i : 0
  58.    end
  59. end
  60. end

  61. # 脚本使用设定:

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

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

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

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

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

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

  79. #==============================================================================
  80. # ■ Window_Command
  81. #------------------------------------------------------------------------------
  82. #  一般的命令选择行窗口。(追加定义)
  83. #==============================================================================
  84. class Window_Command < Window_Selectable
  85. #--------------------------------------------------------------------------
  86. # ● 项目有效化
  87. #     index : 项目编号
  88. #--------------------------------------------------------------------------
  89. def able_item(index)
  90.    draw_item(index, normal_color)
  91. end
  92. end
  93. #==============================================================================
  94. # ■ Game_Actor
  95. #------------------------------------------------------------------------------
  96. #  处理角色的类。(再定义)
  97. #==============================================================================
  98. class Game_Actor < Game_Battler
  99. #--------------------------------------------------------------------------
  100. # ● 更改 EXP
  101. #     exp : 新的 EXP
  102. #--------------------------------------------------------------------------
  103. def exp=(exp)

  104.    # 升级
  105.    if @actor_id > 20 and $game_actors[self.zhuren].level + 6 <= self.level
  106.      @exp = @exp
  107.      return
  108.    else
  109.      @exp = [[exp, 9999999].min, 0].max
  110.    end
  111.    
  112.    
  113.    while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
  114.      @level += 1
  115.      @qianli += 5

  116.      # 增加4点可自由分配的点数
  117.      $game_variables[self.id + LEVEL_UP_VARIABLE] += LEVEL_UP_POINT
  118.      # 学会特技
  119.      for j in $data_classes[@class_id].learnings
  120.        if j.level == @level
  121.          learn_skill(j.skill_id)
  122.        end
  123.      end
  124.      if @actor_id > 20 and $game_actors[self.zhuren].level + 6 <= self.level
  125.        break
  126.      end
  127.    end
  128.    # 降级
  129.    #if @actor_id == 88
  130.    #  p $game_actors[self.zhuren].level
  131.    #  p self.level
  132.    #end
  133.    if @actor_id > 20 and $game_actors[self.zhuren].level + 6 <= self.level
  134.      @exp = @exp
  135.      return
  136.    end
  137.    while @exp < @exp_list[@level]
  138.     # p self.name
  139.      @level -= 1
  140.      @qianli -= 5
  141.      @qianli = [@qianli, 0].max
  142.    end
  143.    # 修正当前的 HP 与 SP 超过最大值
  144.    @hp = [@hp, self.maxhp].min
  145.    @sp = [@sp, self.maxsp].min
  146. end
  147. end
  148. #==============================================================================
  149. # ■ Window_Base
  150. #------------------------------------------------------------------------------
  151. #  游戏中全部窗口的超级类(追加定义)
  152. #==============================================================================
  153. class Window_Base < Window
  154. #--------------------------------------------------------------------------
  155. # ● 描绘 HP
  156. #     actor : 角色
  157. #     x     : 描画目标 X 坐标
  158. #     y     : 描画目标 Y 坐标
  159. #     width : 描画目标的宽
  160. #--------------------------------------------------------------------------
  161. def draw_actor_hp_lvup(actor, x, y)
  162.    self.contents.font.color = system_color
  163.    self.contents.draw_text(x , y, 96, 32, "最大" + $data_system.words.hp)
  164.    if $temp_hp == 0
  165.      self.contents.font.color = normal_color
  166.      self.contents.draw_text(x + 120 , y, 48, 32, actor.maxhp.to_s, 2)
  167.    else
  168.      maxhp = actor.maxhp + $temp_hp
  169.      self.contents.font.color = Color.new(255, 128, 128, 255)
  170.      self.contents.draw_text(x + 120 , y, 48, 32, maxhp.to_s ,2)
  171.      self.contents.font.color = normal_color      
  172.      self.contents.draw_text(x + 155, y, 36, 32, "( ", 2)
  173.      if $temp_hp >=0
  174.        self.contents.font.color = Color.new(255, 128, 128, 255)
  175.        self.contents.draw_text(x + 155, y, 36, 32, " +",2)
  176.      else
  177.        self.contents.font.color = Color.new(255,255,0,255)
  178.        self.contents.draw_text(x + 155, y, 36, 32, " -",2)
  179.      end
  180.      self.contents.draw_text(x + 200, y, 36, 32, $temp_hp.to_s, 2)
  181.      self.contents.font.color = normal_color
  182.      self.contents.draw_text(x + 215, y, 36, 32, ")", 2)
  183.    end
  184. end
  185. #--------------------------------------------------------------------------
  186. # ● 描绘 SP
  187. #     actor : 角色
  188. #     x     : 描画目标 X 坐标
  189. #     y     : 描画目标 Y 坐标
  190. #     width : 描画目标的宽
  191. #--------------------------------------------------------------------------
  192. def draw_actor_sp_lvup(actor, x, y)
  193.    self.contents.font.color = system_color
  194.    self.contents.draw_text(x , y, 96, 32, "最大" + $data_system.words.sp)
  195.    if $temp_sp == 0
  196.      self.contents.font.color = normal_color
  197.      self.contents.draw_text(x + 120 , y, 48, 32, actor.maxsp.to_s, 2)
  198.    else
  199.      maxsp = actor.maxsp + $temp_sp
  200.      self.contents.font.color = Color.new(255, 128, 128, 255)
  201.      self.contents.draw_text(x + 120 , y, 48, 32, maxsp.to_s ,2)
  202.      self.contents.font.color = normal_color      
  203.      self.contents.draw_text(x + 155, y, 36, 32, "( ", 2)
  204.      if $temp_sp >=0
  205.        self.contents.font.color = Color.new(255, 128, 128, 255)
  206.        self.contents.draw_text(x + 155, y, 36, 32, " +",2)
  207.      else
  208.        self.contents.font.color = Color.new(255,255,0,255)
  209.        self.contents.draw_text(x + 155, y, 36, 32, " -",2)
  210.      end
  211.      self.contents.draw_text(x + 200, y, 36, 32, $temp_sp.to_s, 2)
  212.      self.contents.font.color = normal_color
  213.      self.contents.draw_text(x + 215, y, 36, 32, ")", 2)
  214.      


  215.    end
  216. end
  217. #--------------------------------------------------------------------------
  218. # ● 描绘能力值
  219. #     actor : 角色
  220. #     x     : 描画目标 X 坐标
  221. #     y     : 描画目标 Y 坐标
  222. #     type  : 能力值种类 (0~4)
  223. #--------------------------------------------------------------------------
  224. def draw_actor_lvup(actor, x, y, type)   
  225.    # 定义数字颜色
  226.    lvup = normal_color
  227.    upcolor = Color.new(255, 128, 128, 255)
  228.    self.contents.font.color = normal_color   
  229.    case type
  230.    when 0
  231.      parameter_name = $data_system.words.str
  232.      parameter_value = actor.str
  233.      parameter_value_temp = parameter_value + $temp_str
  234.      if $temp_str != 0
  235.        lvup = upcolor
  236.        self.contents.draw_text(x + 256, y, 16, 32, "(")
  237.        if $temp_str >= 0
  238.          self.contents.font.color = lvup
  239.          self.contents.draw_text(x + 272, y, 80, 32, "+",0)
  240.        else
  241.          self.contents.font.color = Color.new(255,255,0,255)
  242.          self.contents.draw_text(x + 272, y, 80, 32, "-",0)
  243.        end        
  244.        self.contents.draw_text(x + 272, y, 80, 32, $temp_str.abs.to_s,1)
  245.        self.contents.font.color = normal_color
  246.        self.contents.draw_text(x + 272, y, 80, 32, ")", 2)
  247.      end
  248.    when 1
  249.      parameter_name = $data_system.words.dex
  250.      parameter_value = actor.dex
  251.      parameter_value_temp = parameter_value + $temp_dex
  252.      if $temp_dex != 0
  253.        lvup = upcolor
  254.        self.contents.draw_text(x + 256, y, 16, 32, "(")
  255.        if $temp_dex >= 0
  256.          self.contents.font.color = lvup
  257.          self.contents.draw_text(x + 272, y, 80, 32, "+",0)
  258.        else
  259.          self.contents.font.color = Color.new(255,255,0,255)
  260.          self.contents.draw_text(x + 272, y, 80, 32, "-",0)
  261.        end        
  262.        self.contents.draw_text(x + 272, y, 80, 32, $temp_dex.abs.to_s,1)
  263.        self.contents.font.color = normal_color
  264.        self.contents.draw_text(x + 272, y, 80, 32, ")", 2)
  265.       
  266.    
  267.       
  268.       
  269.      end
  270.    when 2
  271.      parameter_name = $data_system.words.agi
  272.      parameter_value = actor.agi
  273.      parameter_value_temp = parameter_value + $temp_agi
  274.      if $temp_agi != 0
  275.        lvup = upcolor
  276.        self.contents.draw_text(x + 256, y, 16, 32, "(")
  277.        if $temp_agi >= 0
  278.          self.contents.font.color = lvup
  279.          self.contents.draw_text(x + 272, y, 80, 32, "+",0)
  280.        else
  281.          self.contents.font.color = Color.new(255,255,0,255)
  282.          self.contents.draw_text(x + 272, y, 80, 32, "-",0)
  283.        end        
  284.        self.contents.draw_text(x + 272, y, 80, 32, $temp_agi.abs.to_s,1)
  285.        self.contents.font.color = normal_color
  286.        self.contents.draw_text(x + 272, y, 80, 32, ")", 2)
  287.      end
  288.    when 3
  289.      parameter_name = $data_system.words.int
  290.      parameter_value = actor.int
  291.      parameter_value_temp = parameter_value + $temp_int
  292.      if $temp_int != 0
  293.        lvup = upcolor
  294.        self.contents.draw_text(x + 256, y, 16, 32, "(")
  295.        if $temp_int >= 0
  296.          self.contents.font.color = lvup
  297.          self.contents.draw_text(x + 272, y, 80, 32, "+",0)
  298.        else
  299.          self.contents.font.color = Color.new(255,255,0,255)
  300.          self.contents.draw_text(x + 272, y, 80, 32, "-",0)
  301.        end        
  302.        self.contents.draw_text(x + 272, y, 80, 32, $temp_int.abs.to_s,1)
  303.        self.contents.font.color = normal_color
  304.        self.contents.draw_text(x + 272, y, 80, 32, ")", 2)
  305.      end
  306.    when 4
  307.      parameter_name = "剩余点数"
  308.      parameter_value = $point
  309.      if $point != 0
  310.        lvup = upcolor
  311.      end
  312.    when 5
  313.      parameter_name = $data_system.words.pdef
  314.      parameter_value = actor.pdef
  315.      parameter_value_temp = parameter_value + $temp_dex
  316.      if $temp_dex != 0
  317.        lvup = upcolor
  318.        self.contents.draw_text(x + 256, 96, 16, 32, "(")
  319.        if $temp_dex >= 0
  320.          self.contents.font.color = lvup
  321.          self.contents.draw_text(x + 272, 96, 80, 32, "+",0)
  322.        else
  323.          self.contents.font.color = Color.new(255,255,0,255)
  324.          self.contents.draw_text(x + 272, 96, 80, 32, "-",0)
  325.        end        
  326.        self.contents.draw_text(x + 272, 96, 80, 32, $temp_dex.abs.to_s,1)
  327.        self.contents.font.color = normal_color
  328.        self.contents.draw_text(x + 272, 96, 80, 32, ")", 2)
  329.       
  330.    
  331.       
  332.       
  333.      end

  334.     end

  335.    
  336.    self.contents.font.color = system_color
  337.    self.contents.draw_text(x, y, 120, 32, parameter_name)
  338.    self.contents.font.color = normal_color
  339.    self.contents.draw_text(x + 120, y, 36, 32, parameter_value.to_s)   
  340.    if type != 4
  341.      self.contents.draw_text(x + 150, y, 36, 32, "→")
  342.    end  
  343.    self.contents.font.color = lvup
  344.    self.contents.draw_text(x + 180, y, 60, 32, parameter_value_temp.to_s)
  345.    self.contents.font.color = normal_color        
  346. end
  347. end
  348. #==============================================================================
  349. # ■ Window_lvup
  350. #------------------------------------------------------------------------------
  351. #  显示升级状态窗口。
  352. #==============================================================================
  353. class Window_Lvup < Window_Base
  354. #--------------------------------------------------------------------------
  355. # ● 初始化对像
  356. #     actor : 角色
  357. #--------------------------------------------------------------------------
  358. def initialize(actor)
  359.    super(0, 0, 512, 320)
  360.    self.contents = Bitmap.new(width - 32, height - 32)
  361.    @actor = actor
  362.    refresh
  363. end  
  364. #--------------------------------------------------------------------------
  365. # ● 刷新
  366. #--------------------------------------------------------------------------
  367. def refresh
  368.    self.contents.clear
  369.    draw_actor_graphic(@actor, 40, 112)
  370.    draw_actor_name(@actor, 4, 0)
  371.    draw_actor_class(@actor, 4 + 144, 0)
  372.    draw_actor_level(@actor, 96, 32)
  373.    draw_actor_state(@actor, 96, 64)   
  374.    draw_actor_hp_lvup(@actor, 96+128, 32)
  375.    draw_actor_sp_lvup(@actor, 96+128, 64)
  376.    draw_actor_lvup(@actor, 96, 128, 0)
  377.    draw_actor_lvup(@actor, 96, 160, 1)
  378.    draw_actor_lvup(@actor, 96, 192, 2)
  379.    draw_actor_lvup(@actor, 96, 224, 3)
  380.    draw_actor_lvup(@actor, 96, 256, 4)
  381.    draw_actor_lvup(@actor, 96, 96, 5)
  382. end
  383. end
  384. #==============================================================================
  385. # ■ Window_Help
  386. #------------------------------------------------------------------------------
  387. #  特技及物品的说明、角色的状态显示的窗口。
  388. #==============================================================================
  389. class Window_Lvup_Help < Window_Base
  390. #--------------------------------------------------------------------------
  391. # ● 初始化对像
  392. #--------------------------------------------------------------------------
  393. def initialize
  394.    super(0, 320, 640, 160)
  395.    self.contents = Bitmap.new(width - 32, height - 32)
  396.    @test = "" #——这个东西用来检测,节约内存专用
  397. end  
  398. #--------------------------------------------------------------------------
  399. # ● 设置文本
  400. #--------------------------------------------------------------------------
  401. def lvup_text(text1, text2 = nil, text3 = nil, text4 = nil)
  402.    if @test != text1
  403.      @test = text1
  404.    else
  405.      return
  406.    end   
  407.    self.contents.clear
  408.    self.contents.font.color = normal_color
  409.    self.contents.draw_text(4, 0, self.width - 40, 32, text1)
  410.    if text2 != nil
  411.      self.contents.draw_text(4 , 32, self.width - 40, 32, text2)
  412.    end
  413.    self.contents.font.size -= 4
  414.    if text3 != nil
  415.      self.contents.draw_text(4 , 64, self.width - 40, 32, text3)
  416.    end
  417.    if text4 != nil
  418.      self.contents.draw_text(4 , 96, self.width - 40, 32, text4)
  419.    end
  420.    self.contents.font.size += 4
  421. end
  422. end
  423. #==============================================================================
  424. # ■ Scene_lvup
  425. #------------------------------------------------------------------------------
  426. #  处理升级画面的类。
  427. #==============================================================================
  428. class Scene_Lvup
  429. #--------------------------------------------------------------------------
  430. # ● 初始化对像
  431. #     actor_index : 角色索引
  432. #     menu_index : 选项起始位置
  433. #--------------------------------------------------------------------------
  434. def initialize(actor_index = 0 , menu_index = 0)
  435.    @actor_index = actor_index
  436.    @menu_index = menu_index
  437. end
  438. #--------------------------------------------------------------------------
  439. # ● 主处理
  440. #--------------------------------------------------------------------------
  441. def main
  442.   s1 = "增加体力"
  443.     s2 = "增加力量"
  444.     s3 = "增加罡气"
  445.     s4 = "增加敏捷"
  446.     s5 = "增加仙力"
  447.    s6 = "确认加点"
  448.    s7 = "点数重置"
  449.    @command_window = Window_Command.new(128, [s1, s2, s3, s4, s5, s6, s7])
  450.    @command_window.index = @menu_index
  451.    # 获取角色
  452.    @actor = $game_party.actors[@actor_index]
  453.    # 将角色的剩余点数带入
  454.    $point = $game_variables[@actor.id + LEVEL_UP_VARIABLE]   
  455.    # 初始化临时量
  456.    $temp_str = 0
  457.    $temp_dex = 0
  458.    $temp_pdef = 0
  459.    $temp_agi = 0
  460.    $temp_int = 0
  461.    $temp_hp = 0
  462.    $temp_sp = 0
  463.    #=========================================================================
  464.    # 特别提示:这些设置也可以使用小数,但是可能出现0值意外错误
  465.    #  (各种编程语言都有这种意外),建议还是使用整数,正负不限
  466.    #=========================================================================
  467.     # 每提升一次力量,提升多少附加能力
  468.     #=========================================================================
  469.     @str_hp = 0     # 每提升一次力量附加提升多少HP
  470.     @str_sp =  0   # 每提升一次力量附加提升多少SP
  471.     @str_dex = 0   # 每提升一次力量附加提升多少灵巧
  472.     @str_agi = 0    # 每提升一次力量附加提升多少速度
  473.     @str_int = 0    # 每提升一次力量附加提升多少魔力
  474.     @str_str = 1   # 每提升一次力量附加提升多少力量
  475.     #=========================================================================
  476.     # 每提升一次灵巧,提升多少附加能力
  477.     #=========================================================================
  478.     @dex_hp = 0     # 每提升一次灵巧附加提升多少HP
  479.     @dex_sp = 0    # 每提升一次灵巧附加提升多少SP
  480.     @dex_str = 0   # 每提升一次灵巧附加提升多少力量
  481.     @dex_agi = 0    # 每提升一次灵巧附加提升多少速度
  482.     @dex_int = 0    # 每提升一次灵巧附加提升多少魔力
  483.     @dex_dex = 1   # 每提升一次灵巧附加提升多少灵巧
  484.     #=========================================================================
  485.     # 每提升一次速度,提升多少附加能力
  486.     #=========================================================================
  487.     @agi_hp = 0     # 每提升一次速度附加提升多少HP
  488.     @agi_sp = 0     # 每提升一次速度附加提升多少SP
  489.     @agi_str = 0    # 每提升一次速度附加提升多少力量
  490.     @agi_dex = 0    # 每提升一次速度附加提升多少灵巧
  491.     @agi_int = 0   # 每提升一次速度附加提升多少魔力
  492.     @agi_agi = 1   # 每提升一次速度附加提升多少速度
  493.     #=========================================================================
  494.     # 每提升一次魔力,提升多少附加能力
  495.     #=========================================================================
  496.     @int_hp = 0     # 每提升一次魔力附加提升多少HP
  497.     @int_sp = 8    # 每提升一次魔力附加提升多少SP
  498.     @int_str = 0  # 每提升一次魔力附加提升多少力量
  499.     @int_dex = 0   # 每提升一次魔力附加提升多少灵巧
  500.     @int_agi = 0   # 每提升一次魔力附加提升多少速度
  501.     @int_int = 1   # 每提升一次魔力附加提升多少魔力
  502.     #=========================================================================
  503.     # 每提升一次体力,提升多少附加能力
  504.     #=========================================================================
  505.     @hp = 12       # 每提升一次体力提升多少HP
  506.     @sp = 0       # 每提升一次体力提升多少SP
  507.     @hp_str = 0   # 每提升一次体力提升多少力量
  508.     @hp_dex = 0   # 每提升一次体力提升多少速度
  509.     @hp_agi = 0   # 每提升一次体力提升多少灵巧
  510.     @hp_int = 0   # 每提升一次体力提升多少魔力   
  511.     # 定义说明文字
  512.     @text_hp_sc = "【提高12点气血上限】"
  513.     @text_str_sc = $data_system.words.str + "【提高1点伤害】"
  514.     @text_dex_sc = $data_system.words.dex + "【提高1点防御】【提高物理命中】【提高必杀率】"
  515.     @text_agi_sc = $data_system.words.agi + "【提高1点速度】【提高躲避】"
  516.     @text_int_sc = $data_system.words.int + "【提升8点魔法上限】【提高1点灵力】"
  517.    @text_save = "保存分配情况并返回游戏"
  518.    @text_reset= "重新分配能力点数"
  519.    @text_2 = "每增加一次此项能力值,可以提升能力值"
  520.    @text_hp = "最大" + $data_system.words.hp + "值"
  521.    @text_sp = "最大" + $data_system.words.sp + "值"
  522.    @text_str = "最大" + $data_system.words.str + "值"
  523.    @text_dex = "最大" + $data_system.words.dex + "值"
  524.    @text_agi = "最大" + $data_system.words.agi + "值"
  525.    @text_int = "最大" + $data_system.words.int + "值"
  526.    s_disable
  527.    # 生成状态窗口
  528.    @lvup_window = Window_Lvup.new(@actor)
  529.    @lvup_window.x = 128
  530.    @lvup_window.y = 0   
  531.    # 生成帮助窗口并初始化帮助文本
  532.    @help_window = Window_Lvup_Help.new   
  533.    # 执行过渡
  534.    Graphics.transition(40, "Graphics/Transitions/" + $data_system.battle_transition)
  535.    # 主循环
  536.    loop do
  537.      # 刷新游戏画面
  538.      Graphics.update
  539.      # 刷新输入信息
  540.      Input.update
  541.      # 刷新画面
  542.      update
  543.      # 如果切换画面就中断循环
  544.      if $scene != self
  545.        break
  546.      end
  547.    end
  548.    # 准备过渡
  549.    Graphics.freeze
  550.    # 释放窗口
  551.    @command_window.dispose
  552.    @lvup_window.dispose
  553.    @help_window.dispose
  554. end
  555. #--------------------------------------------------------------------------
  556. # ● 刷新画面
  557. #--------------------------------------------------------------------------
  558. def update
  559.    # 刷新窗口
  560.    @command_window.update
  561.    # 选项明暗判断(因为太消耗资源,所以屏蔽掉了)
  562.    s_disable
  563.    @lvup_window.update
  564.    #=============================================================
  565.    # 按下 B 键的情况下
  566.    #=============================================================
  567.    if Input.trigger?(Input::B)
  568.      # 演奏取消 SE
  569.      $game_system.se_play($data_system.cancel_se)
  570.      # 切换到地图画面
  571.      #$scene = Scene_Map.new
  572.      $scene = Scene_Menu.new(6)
  573.      return
  574.    end
  575.    #=============================================================
  576.    # 按下 C 键的情况下
  577.    #=============================================================
  578.    if Input.trigger?(Input::C)      
  579.      if @command_window.index == 5
  580.          # 演奏确定 SE
  581.        $game_system.se_play($data_system.decision_se)
  582.        # 将角色的剩余点数带回
  583.        $game_variables[@actor.id + LEVEL_UP_VARIABLE] = $point
  584.        # 将角色点数实际加上
  585.        @actor.str += $temp_str
  586.        @actor.dex += $temp_dex
  587.        @actor.agi += $temp_agi
  588.        @actor.int += $temp_int
  589.        @actor.maxhp += $temp_hp
  590.        @actor.maxsp += $temp_sp
  591.        @actor.maxhp = $data_actors[@actor.id].max_hp_stars if @actor.maxhp >= $data_actors[@actor.id].max_hp_stars and $data_actors[@actor.id].max_hp_stars != 0
  592.        @actor.maxsp = $data_actors[@actor.id].max_sp_stars if @actor.maxsp >= $data_actors[@actor.id].max_sp_stars and $data_actors[@actor.id].max_sp_stars != 0
  593.        @actor.str = $data_actors[@actor.id].max_str_stars if @actor.str >= $data_actors[@actor.id].max_str_stars and $data_actors[@actor.id].max_str_stars != 0
  594.        @actor.dex = $data_actors[@actor.id].max_dex_stars if @actor.dex >= $data_actors[@actor.id].max_dex_stars and $data_actors[@actor.id].max_dex_stars != 0
  595.        @actor.agi = $data_actors[@actor.id].max_agi_stars if @actor.agi >= $data_actors[@actor.id].max_agi_stars and $data_actors[@actor.id].max_agi_stars != 0
  596.        @actor.int = $data_actors[@actor.id].max_int_stars if @actor.int >= $data_actors[@actor.id].max_int_stars and $data_actors[@actor.id].max_int_stars != 0
  597.        # 切换到地图画面
  598.        $scene = Scene_Lvup.new(@actor_index)
  599.        return
  600.      end
  601.      if @command_window.index == 6
  602.          # 演奏确定 SE
  603.        $game_system.se_play($data_system.cancel_se)
  604.          # 将角色的剩余点数带入
  605.        $point = $game_variables[@actor.id + LEVEL_UP_VARIABLE]   
  606.          # 初始化临时量
  607.        $temp_str = 0
  608.        $temp_dex = 0
  609.        $temp_agi = 0
  610.        $temp_int = 0
  611.        $temp_hp = 0
  612.        $temp_sp = 0
  613.        @lvup_window.refresh
  614.        return
  615.      end
  616.      if $point == 0
  617.        # 演奏冻结 SE
  618.        $game_system.se_play($data_system.buzzer_se)
  619.        return
  620.      end
  621.      case @command_window.index
  622.      when 0
  623.        if flag(0)
  624.          $game_system.se_play($data_system.buzzer_se)
  625.          return
  626.        end
  627.        # 演奏确定 SE
  628.        $game_system.se_play($data_system.decision_se)
  629.        $temp_hp += flag(0) ? 0 : @hp
  630.        $temp_sp += flag(5) ? 0 : @sp
  631.        $temp_str += flag(1) ? 0 : @hp_str
  632.        $temp_dex += flag(2) ? 0 : @hp_dex
  633.        $temp_agi += flag(3) ? 0 : @hp_agi
  634.        $temp_int += flag(4) ? 0 :@hp_int
  635.        judge
  636.        $point -= 1
  637.        @lvup_window.refresh
  638.        s_disable
  639.        return
  640.      when 1
  641.        if flag(1)
  642.          $game_system.se_play($data_system.buzzer_se)
  643.          return
  644.        end
  645.        # 演奏确定 SE
  646.        $game_system.se_play($data_system.decision_se)
  647.        $temp_hp += flag(0) ? 0 : @str_hp
  648.        $temp_sp += flag(5) ? 0 : @str_sp
  649.        $temp_str += flag(1) ? 0 : @str_str
  650.        $temp_dex += flag(2) ? 0 : @str_dex
  651.        $temp_agi += flag(3) ? 0 : @str_agi
  652.        $temp_int += flag(4) ? 0 :@str_int
  653.        judge
  654.        $point -= 1
  655.        @lvup_window.refresh
  656.        s_disable
  657.        return
  658.      when 2
  659.        if flag(2)
  660.          $game_system.se_play($data_system.buzzer_se)
  661.          return
  662.        end
  663.        # 演奏确定 SE
  664.        $game_system.se_play($data_system.decision_se)
  665.        $temp_hp += flag(0) ? 0 : @dex_hp
  666.        $temp_sp += flag(5) ? 0 : @dex_sp
  667.        $temp_str += flag(1) ? 0 : @dex_str
  668.        $temp_dex += flag(2) ? 0 : @dex_dex
  669.        $temp_agi += flag(3) ? 0 : @dex_agi
  670.        $temp_int += flag(4) ? 0 :@dex_int
  671.        judge
  672.        $point -= 1
  673.        @lvup_window.refresh
  674.        s_disable
  675.        return
  676.      when 3
  677.        if flag(3)
  678.          $game_system.se_play($data_system.buzzer_se)
  679.          return
  680.        end
  681.        # 演奏确定 SE
  682.        $game_system.se_play($data_system.decision_se)
  683.        $temp_hp += flag(0) ? 0 : @agi_hp
  684.        $temp_sp += flag(5) ? 0 : @agi_sp
  685.        $temp_str += flag(1) ? 0 : @agi_str
  686.        $temp_dex += flag(2) ? 0 : @agi_dex
  687.        $temp_agi += flag(3) ? 0 : @agi_agi
  688.        $temp_int += flag(4) ? 0 :@agi_int
  689.        judge
  690.        $point -= 1
  691.        @lvup_window.refresh
  692.        s_disable
  693.        return
  694.      when 4
  695.        if flag(4)
  696.          $game_system.se_play($data_system.buzzer_se)
  697.          return
  698.        end
  699.        # 演奏确定 SE
  700.        $game_system.se_play($data_system.decision_se)
  701.        $temp_hp += flag(0) ? 0 : @int_hp
  702.        $temp_sp += flag(5) ? 0 : @int_sp
  703.        $temp_str += flag(1) ? 0 : @int_str
  704.        $temp_dex += flag(2) ? 0 : @int_dex
  705.        $temp_agi += flag(3) ? 0 : @int_agi
  706.        $temp_int += flag(4) ? 0 :@int_int
  707.        judge
  708.        $point -= 1
  709.        @lvup_window.refresh
  710.        s_disable
  711.        return
  712.      end
  713.    end
  714.    #=============================================================
  715.    # 什么都没有按下的情况
  716.    #=============================================================
  717.    case @command_window.index   
  718.    when 0  # 增加体力
  719.      temptext1 = @text_hp + @hp.to_s + "点   " + @text_str + @hp_str.to_s + "点   " + @text_dex + @hp_dex.to_s + "点"
  720.      temptext2 = @text_sp + @sp.to_s + "点   " + @text_agi + @hp_agi.to_s + "点   " + @text_int + @hp_int.to_s + "点"
  721.      @help_window.lvup_text(@text_hp_sc , @text_2 , temptext1 , temptext2)
  722.    when 1  # 增加力量
  723.      temptext1 = @text_hp + @str_hp.to_s + "点   " + @text_str + @str_str.to_s + "点   " + @text_dex + @str_dex.to_s + "点"
  724.      temptext2 = @text_sp + @str_sp.to_s + "点   " + @text_agi + @str_agi.to_s + "点   " + @text_int + @str_int.to_s + "点"
  725.      @help_window.lvup_text(@text_str_sc , @text_2 , temptext1 , temptext2)
  726.    when 2  # 增加灵巧
  727.      temptext1 = @text_hp + @dex_hp.to_s + "点   " + @text_str + @dex_agi.to_s + "点   " + @text_dex + @dex_dex.to_s + "点"
  728.      temptext2 = @text_sp + @dex_sp.to_s + "点   " + @text_agi + @dex_agi.to_s + "点   " + @text_int + @dex_int.to_s + "点"
  729.      @help_window.lvup_text(@text_dex_sc , @text_2 , temptext1 , temptext2)
  730.    when 3  # 增加速度
  731.      temptext1 = @text_hp + @agi_hp.to_s + "点   " + @text_str + @agi_str.to_s + "点   " + @text_dex + @agi_dex.to_s + "点"
  732.      temptext2 = @text_sp + @agi_sp.to_s + "点   " + @text_agi + @agi_agi.to_s + "点   " + @text_int + @agi_int.to_s + "点"
  733.      @help_window.lvup_text(@text_agi_sc , @text_2 , temptext1 , temptext2)
  734.    when 4  # 增加魔力
  735.      temptext1 = @text_hp + @int_hp.to_s + "点   " + @text_str + @int_str.to_s + "点   " + @text_dex + @int_dex.to_s + "点"
  736.      temptext2 = @text_sp + @int_sp.to_s + "点   " + @text_agi + @int_agi.to_s + "点   " + @text_int + @int_int.to_s + "点"
  737.      @help_window.lvup_text(@text_int_sc , @text_2 , temptext1 , temptext2)
  738.    when 5 # 保存设定
  739.      @help_window.lvup_text(@text_save)
  740.    when 6 # 点数重置
  741.      @help_window.lvup_text(@text_reset)     
  742.    end
  743.    #=============================================================
  744.    # 按下R与L换人的情况
  745.    #=============================================================      
  746.    if Input.trigger?(Input::R)
  747.      # 演奏光标 SE
  748.      $game_system.se_play($data_system.cursor_se)
  749.      # 移至下一位角色
  750.      @actor_index += 1
  751.      @actor_index %= $game_party.actors.size
  752.      # 切换到别的状态画面
  753.      $scene = Scene_Lvup.new(@actor_index , @command_window.index)
  754.      return
  755.    end
  756.    # 按下 L 键的情况下
  757.    if Input.trigger?(Input::L)
  758.      # 演奏光标 SE
  759.      $game_system.se_play($data_system.cursor_se)
  760.      # 移至上一位角色
  761.      @actor_index += $game_party.actors.size - 1
  762.      @actor_index %= $game_party.actors.size
  763.      # 切换到别的状态画面
  764.      $scene = Scene_Lvup.new(@actor_index , @command_window.index)
  765.      return
  766.    end
  767. end
  768. #--------------------------------------------------------------------------
  769. # ● 指数超标判断
  770. #--------------------------------------------------------------------------
  771. def flag(i)
  772.    case i
  773.    when 0 # hp
  774.      if $data_actors[@actor.id].max_hp_stars == 0
  775.        return false
  776.      else
  777.        return @actor.maxhp + $temp_hp >= $data_actors[@actor.id].max_hp_stars
  778.      end
  779.    when 1 # str
  780.      if $data_actors[@actor.id].max_str_stars == 0
  781.        return false
  782.      else
  783.        return @actor.str + $temp_str >= $data_actors[@actor.id].max_str_stars
  784.      end
  785.    when 2 # dex
  786.      if $data_actors[@actor.id].max_dex_stars == 0
  787.        return false
  788.      else
  789.        return @actor.dex + $temp_dex >= $data_actors[@actor.id].max_dex_stars
  790.      end
  791.    when 3 # agi
  792.      if $data_actors[@actor.id].max_agi_stars == 0
  793.        return false
  794.      else
  795.        return @actor.agi + $temp_agi >= $data_actors[@actor.id].max_agi_stars
  796.      end
  797.    when 4 # int
  798.      if $data_actors[@actor.id].max_int_stars == 0
  799.        return false
  800.      else
  801.        return @actor.int + $temp_int >= $data_actors[@actor.id].max_int_stars
  802.      end
  803.    when 5 # sp
  804.      if $data_actors[@actor.id].max_sp_stars == 0
  805.        return false
  806.      else
  807.        return @actor.maxsp + $temp_sp >= $data_actors[@actor.id].max_sp_stars
  808.      end
  809.    end
  810. end
  811. #--------------------------------------------------------------------------
  812. # ● 超标属性校正
  813. #--------------------------------------------------------------------------
  814. def judge
  815.    $temp_hp = $data_actors[@actor.id].max_hp_stars - @actor.maxhp if flag(0)
  816.    $temp_sp = $data_actors[@actor.id].max_sp_stars - @actor.maxsp if flag(5)
  817.    $temp_str = $data_actors[@actor.id].max_str_stars - @actor.str if flag(1)
  818.    $temp_dex = $data_actors[@actor.id].max_dex_stars - @actor.dex if flag(2)
  819.    $temp_agi = $data_actors[@actor.id].max_agi_stars - @actor.agi if flag(3)
  820.    $temp_int = $data_actors[@actor.id].max_int_stars - @actor.int if flag(4)
  821. end
  822. #--------------------------------------------------------------------------
  823. # ● 选项明暗判断
  824. #--------------------------------------------------------------------------
  825. def s_disable
  826.    # 判断剩余点数是否为0,如果为0,那么增加选项表示为暗色
  827.    if $point == 0
  828.      @command_window.disable_item(0)
  829.      @command_window.disable_item(1)
  830.      @command_window.disable_item(2)
  831.      @command_window.disable_item(3)
  832.      @command_window.disable_item(4)
  833.    else
  834.      @command_window.able_item(0)
  835.      @command_window.able_item(1)      
  836.      @command_window.able_item(2)
  837.      @command_window.able_item(3)
  838.      @command_window.able_item(4)
  839.    end
  840.    if flag(1)
  841.      @command_window.disable_item(1)
  842.    end
  843.    if flag(2)
  844.      @command_window.disable_item(2)
  845.    end
  846.    if flag(3)
  847.      @command_window.disable_item(3)
  848.    end
  849.    if flag(4)
  850.      @command_window.disable_item(4)
  851.    end
  852.    if flag(0)
  853.      @command_window.disable_item(0)
  854.    end
  855. end
  856. end

  857. #==============================================================================
  858. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  859. #=============================================================================

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

本版积分规则

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

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

GMT+8, 2024-11-23 12:33

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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