Project1

标题: Game_Skill 脚本错误 请大家帮帮忙 [打印本页]

作者: dsasdasdas    时间: 2013-5-6 12:07
标题: Game_Skill 脚本错误 请大家帮帮忙
107 行    return SKILL_EXP[@id][@level] 有问题,我也不知道怎么回事,我弄个技能在游戏中一碰就显示Game_Skill 107行return SKILL_EXP.[@id][@level]....就退出来了请大家们帮帮忙啊
作者: dsasdasdas    时间: 2013-5-7 07:58
本帖最后由 亿万星辰 于 2013-5-8 06:54 编辑
  1. #==============================================================================
  2. # ■ Window_Skill
  3. #------------------------------------------------------------------------------
  4. #  特技画面、战斗画面、显示可以使用的特技浏览的窗口。
  5. #==============================================================================

  6. class Window_Skill < Window_Selectable
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #     actor : 角色
  10.   #--------------------------------------------------------------------------
  11.   def initialize(actor)
  12.     super(142, 64, 320, 256)
  13.     [url=home.php?mod=space&uid=95897]@actor[/url] = actor
  14.     @column_max = 4
  15.     refresh
  16.     self.index = 0
  17.     #self.active = true
  18.   end
  19.   #--------------------------------------------------------------------------
  20.   # ● 获取特技
  21.   #--------------------------------------------------------------------------
  22.   def skill
  23.     return @data[self.index]
  24.   end
  25.   #--------------------------------------------------------------------------
  26.   # ● 刷新
  27.   #--------------------------------------------------------------------------
  28.   def refresh
  29.     if self.contents != nil
  30.       self.contents.dispose
  31.       self.contents = nil
  32.     end
  33.     @data = []
  34.     for i in [email protected]
  35.       skill = $game_skills[@actor.skills[i]]#$data_skills[@actor.skills[i]]
  36.       if skill != nil
  37.         @data.push(skill)
  38.       end
  39.     end
  40.     @data.push(nil)
  41.     # 如果项目数不是 0 就生成位图、重新描绘全部项目
  42.     @item_max = @data.size
  43.     if @item_max > 0
  44.       self.contents = Bitmap.new(width - 32, row_max * 56)
  45.       for i in 0...@item_max
  46.         draw_item(i)
  47.       end
  48.     end
  49.   end  
  50.   #--------------------------------------------------------------------------
  51.   # ● 描绘项目
  52.   #     index : 项目编号
  53.   #--------------------------------------------------------------------------
  54.   def draw_item(index)
  55.     skill = @data[index]
  56.     return if skill.nil?
  57.     self.contents.font.color = normal_color
  58.     self.contents.font.size = 13
  59.     x = index % @column_max * 70#(288 + 32)
  60.     y = index / @column_max * 56#32
  61.     rect = Rect.new(x, y, self.width / @column_max - 32, 32)
  62.     bitmap = RPG::Cache.icon(skill.icon_name)
  63.     self.contents.blt(x+4, y + 4, bitmap, Rect.new(0, 0, 30, 30))
  64.     self.contents.draw_text(x+4, y+32, 212, 32, skill.name)
  65.     self.contents.draw_text(x+4, y+24, 64, 16, "sp:"+skill.sp_cost.to_s)
  66.   end
  67.   #--------------------------------------------------------------------------
  68.   # ● 刷新帮助文本
  69.   #--------------------------------------------------------------------------
  70.   def update_help
  71.     @help_window.set_skill(self.skill)
  72.     @help_window.x = (self.index % @column_max * 70) + 48 + self.x
  73.     @help_window.y = (self.index / @column_max * 56) + 52 - self.oy + self.y
  74.   end
  75.   #--------------------------------------------------------------------------
  76.   # ● 更新光标举行
  77.   #--------------------------------------------------------------------------
  78.   def update_cursor_rect
  79.     # 光标位置不满 0 的情况下
  80.     if @index < 0
  81.       self.cursor_rect.empty
  82.       return
  83.     end
  84.     # 获取当前的行
  85.     row = @index / @column_max
  86.     # 当前行被显示开头行前面的情况下
  87.     if row < self.top_row
  88.       # 从当前行向开头行滚动
  89.       self.top_row = row
  90.     end
  91.     # 当前行被显示末尾行之后的情况下
  92.     if row > self.top_row + (self.page_row_max - 1)
  93.       # 从当前行向末尾滚动
  94.       self.top_row = row - (self.page_row_max - 1)
  95.     end
  96.     # 计算光标的宽
  97.     cursor_width = self.width / @column_max - 70#32
  98.     # 计算光标坐标
  99.     x = @index % @column_max * 70#(cursor_width + 32)
  100.     y = @index / @column_max * 56 - self.oy
  101.     # 更新国标矩形
  102.     self.cursor_rect.set(x, y, 70, 56)
  103.   end
  104.   #--------------------------------------------------------------------------
  105.   # ● 获取开头行
  106.   #--------------------------------------------------------------------------
  107.   def top_row
  108.     # 将窗口内容的传送源 Y 坐标、1 行的高 32 等分
  109.     return self.oy / 56
  110.   end
  111.   #--------------------------------------------------------------------------
  112.   # ● 设置开头行
  113.   #     row : 显示开头的行
  114.   #--------------------------------------------------------------------------
  115.   def top_row=(row)
  116.     # row 未满 0 的场合更正为 0
  117.     if row < 0
  118.       row = 0
  119.     end
  120.     # row 超过 row_max - 1 的情况下更正为 row_max - 1
  121.     if row > row_max - 1
  122.       row = row_max - 1
  123.     end
  124.     # row 1 行高的 32 倍、窗口内容的传送源 Y 坐标
  125.     self.oy = row * 56
  126.   end
  127.   #--------------------------------------------------------------------------
  128.   # ● 获取 1 页可以显示的行数
  129.   #--------------------------------------------------------------------------
  130.   def page_row_max
  131.     # 窗口的高度,设置画面的高度减去 32 ,除以 1 行的高度 32
  132.     return (self.height - 32) / 56
  133.   end
  134. end
复制代码

作者: dsasdasdas    时间: 2013-5-7 08:00
谢谢帮帮忙把 ,我比如新做了一个技能,基本都可以我的工程是别人的范例,上面带的几个技能都可以用,就我新制作的不行,工程是ARPG的
作者: 光の異形    时间: 2013-5-7 09:09
dsasdasdas 发表于 2013-5-7 08:00
谢谢帮帮忙把 ,我比如新做了一个技能,基本都可以我的工程是别人的范例,上面带的几个技能都可以用,就我 ...


  你在哪里做的新技能啊 ······· 看样子是你的 技能设置有问题啊
虽然你说的不是很清楚 但是我想
到 ID  LEVEL 的数据出错了 说明无法获取吧
这个该是角色的ID 和 等级吧
所以说你是不是 只设置了技能 没有设置这个技能的习得条件啊

试试看 把技能习得的调教也填上 不行再说吧 ·························
作者: dsasdasdas    时间: 2013-5-7 09:18
怎么调饿,我还是初出茅庐
作者: 光の異形    时间: 2013-5-7 10:05
dsasdasdas 发表于 2013-5-7 09:18
怎么调饿,我还是初出茅庐

在任意职业中的右下角吧 把你新弄的技能加上去
作者: dsasdasdas    时间: 2013-5-7 10:17
还是不行没用已碰就怎么回事饿

作者: 芯☆淡茹水    时间: 2013-5-7 23:42
    for i in [email protected]
      skill = $game_skills[@actor.skills]#$data_skills[@actor.skills]
      if skill != nil
        @data.push(skill)
      end
    end

这句什么意思,没搞懂
已经代入 i 了,那个 i 哪儿去了?整个循环没看见用 i 的地方

如果这句:skill = $game_skills[@actor.skills]  是正确的
那就不用循环 i 了,直接 skill = $game_skills[@actor.skills]

如果LZ得 Game_Skill 脚本正确,那就应该是:
RUBY 代码复制
  1. skill = $game_skills[@actor.skills[i]]


skill 没有定义好,所以后面会报错
作者: 亿万星辰    时间: 2013-5-8 06:53
你不是提示Game_Skill出错么?你贴个Window_Skill上来是个什么情况?
作者: dsasdasdas    时间: 2013-5-8 16:05
谢谢了我解决了,是那个技能熟练度没编写,谢谢大家了




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1