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

Project1

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

[已经解决] 直接黏贴自范例的脚本,运行时弹出提示运行错误

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
18 小时
注册时间
2009-9-17
帖子
29
跳转到指定楼层
1
发表于 2012-11-16 15:36:19 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 Zale 于 2012-11-16 19:40 编辑



如图,脚本小白,请问大大们如何解决 undefined method"xxx" for nil:Nilclass 这样的问题?遇到过好多次了{:2_270:}

Lv2.观梦者

梦石
0
星屑
560
在线时间
1286 小时
注册时间
2011-6-14
帖子
4086
2
发表于 2012-11-16 17:18:00 | 只看该作者
请贴上脚本并用代码功能包含。
undefined method可能是脚本本身的bug也可能是脚本冲突引起的。前者没办法弄(除非……知道脚本思路+RGSS2),后者则可删除一些脚本来解决问题

评分

参与人数 1星屑 +40 收起 理由
咕噜 + 40 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
18 小时
注册时间
2009-9-17
帖子
29
3
 楼主| 发表于 2012-11-16 17:28:58 | 只看该作者
本帖最后由 Zale 于 2012-11-16 17:32 编辑
satgo1546 发表于 2012-11-16 17:18
请贴上脚本并用代码功能包含。
undefined method可能是脚本本身的bug也可能是脚本冲突引起的。前者没办法弄 ...


来自收录在置顶脚本库妖精图书馆里trentswd大大分享的地图名显示脚本:

http://rpg.blue/thread-100870-1-1.html
  1. #▼▼▼区域,地图,地区名显示▼▼▼ by trentswd
  2. #-----------------------------------------------------------------------------
  3. # ● 常量
  4. #-----------------------------------------------------------------------------
  5. #▼地名窗口
  6. WIDTH = 150                                   # 窗口宽度最小值      
  7. IN_TIME = 20                                  # 窗口出现时间
  8. SHOW_TIME = 60                                # 窗口显示时间
  9. FADE_TIME = 30                                # 窗口淡去时间
  10. TEXT1_SIZE = 19                               # 地图名,区域名的字体大小
  11. TEXT2_SIZE = 13                               # 地区名的字体大小
  12. TEXT1_COLOR = Color.new(255,255,255)          # 地图名,区域名的默认颜色
  13. TEXT2_COLOR = Color.new(255,60,60)            # 地区名的默认颜色
  14. SKIN = "red-grey"                             # 窗口皮肤的文件名
  15. VX_H = 416                                    # VX窗口高度
  16. VX_W = 544                                    # VX窗口宽度
  17. ZONE_NUM =8                                   # 地区名占用角色名的编号
  18. Map_W_S=1                                     # 控制是否显示的开关
  19. #▼地区名窗口
  20. Z_IN_TIME = 30                                 # 窗口出现时间
  21. Z_SHOW_TIME = 70                               # 窗口显示时间
  22. Z_FADE_TIME = 30                               # 窗口淡去时间
  23. ZONE_W_S=2                                     # 控制是否显示开关


  24. #▼计算
  25. HEIGHT = TEXT1_SIZE + TEXT2_SIZE + 34         # 窗口高度
  26. MWINDOW_Y = VX_H - HEIGHT - 16                # 窗口Y坐标


  27. #==============================================================================
  28. # ■ Game_Map
  29. #------------------------------------------------------------------------------
  30. #  对Game_Map类的追加定义。
  31. #=============================================================================
  32. class Game_Map
  33.   #--------------------------------------------------------------------------
  34.   # ● 获取所在场景名称
  35.   #--------------------------------------------------------------------------
  36.   def name
  37.       load_data("Data/MapInfos.rvdata")
  38.   end
  39. end

  40. #==============================================================================
  41. # ■ Map_Window
  42. #------------------------------------------------------------------------------
  43. #  游戏中显示地名的窗口。
  44. #=============================================================================
  45. class Map_Window<Window_Base
  46.   #--------------------------------------------------------------------------
  47.   # ● 初始化对象
  48.   #--------------------------------------------------------------------------
  49.   def initialize
  50.     super(-(5+WIDTH),MWINDOW_Y,WIDTH,HEIGHT)
  51.     self.windowskin = Cache.system(SKIN)
  52.     create_contents
  53.     self.opacity = 255
  54.     self.contents_opacity = 255
  55.     self.contents.font.name=["华文细黑","STXihei","黑体"]
  56.     @id=$game_map.map_id
  57.     @time=0
  58.     @a_id=$game_player.area_id
  59.     @zone_change=false
  60.   end
  61.   #--------------------------------------------------------------------------
  62.   # ● 覆盖定义contents(其实没有用囧)
  63.   #--------------------------------------------------------------------------
  64.   def create_contents
  65.     self.contents.dispose
  66.     self.contents = Bitmap.new(width-32, height-32)
  67.   end
  68.   #--------------------------------------------------------------------------
  69.   # ● 地区标记为改变
  70.   #--------------------------------------------------------------------------
  71.   def zone_change
  72.     @zone_change=true
  73.   end
  74.   #--------------------------------------------------------------------------
  75.   # ● 得到地名
  76.   #--------------------------------------------------------------------------  
  77.   def name(id=$game_map.map_id)
  78.     name=$game_map.name[id].name.split(/@/)[0]
  79.     return name
  80.   end
  81.   #--------------------------------------------------------------------------
  82.   # ● 得到区域名
  83.   #--------------------------------------------------------------------------
  84.   def area_name(id=$game_player.area_id)
  85.     name=$data_areas[id].name
  86.     return name
  87.   end
  88.   #--------------------------------------------------------------------------
  89.   # ● 得到地区名
  90.   #--------------------------------------------------------------------------
  91.   def zone(id=$game_map.map_id)
  92.     name=$game_map.name[id].name.split(/@/)[1]
  93.     return name
  94.   end
  95.   #--------------------------------------------------------------------------
  96.   # ● 刷新
  97.   #--------------------------------------------------------------------------
  98.   def refresh
  99.     if @a_id!=$game_player.area_id
  100.       @a_id=$game_player.area_id
  101.       if @a_id.is_a?(Numeric) && $game_switches[Map_W_S] == true
  102.         self.width=[WIDTH,TEXT1_SIZE*self.name.size/3+50].max
  103.         if @time==0
  104.           self.x=-5-self.width
  105.         end
  106.         create_contents
  107.         self.contents.font.size=TEXT1_SIZE
  108.         self.contents.font.color=TEXT1_COLOR
  109.         self.contents.draw_text(0,0,self.width-32,TEXT1_SIZE,self.area_name)
  110.         self.contents.font.size=TEXT2_SIZE
  111.         self.contents.font.color=TEXT2_COLOR
  112.          self.contents.draw_text(0,TEXT1_SIZE+2,self.width-32,TEXT2_SIZE,$game_actors[ZONE_NUM].name)     
  113.         if @time==0
  114.           @time=IN_TIME+SHOW_TIME+FADE_TIME
  115.         elsif @time>SHOW_TIME+FADE_TIME
  116.           @time=@time
  117.         elsif @time>FADE_TIME
  118.           @time=SHOW_TIME+FADE_TIME
  119.         else
  120.           @time=IN_TIME+(-self.width-5-self.x)/(self.width/IN_TIME)+SHOW_TIME+FADE_TIME
  121.         end
  122.       elsif $game_switches[Map_W_S] == true
  123.         self.width=[WIDTH,TEXT1_SIZE*self.name.size/3+50].max
  124.         if @time==0
  125.           self.x=-5-self.width
  126.         end
  127.         create_contents
  128.         self.contents.font.size=TEXT1_SIZE
  129.         self.contents.font.color=TEXT1_COLOR
  130.         self.contents.draw_text(0,0,self.width-32,TEXT1_SIZE,self.name)
  131.         self.contents.font.size=TEXT2_SIZE
  132.         self.contents.font.color=TEXT2_COLOR
  133.          self.contents.draw_text(0,TEXT1_SIZE+2,self.width-32,TEXT2_SIZE,$game_actors[ZONE_NUM].name)     
  134.         if @time==0
  135.           @time=IN_TIME+SHOW_TIME+FADE_TIME
  136.         elsif @time>SHOW_TIME+FADE_TIME
  137.           @time=time
  138.         elsif @time>FADE_TIME
  139.           @time=SHOW_TIME+FADE_TIME
  140.         else
  141.           @time=IN_TIME+(-self.width-5-self.x)/(self.width/IN_TIME)+SHOW_TIME+FADE_TIME
  142.         end
  143.       end
  144.     end

  145.     if @id!=$game_map.map_id
  146.       self.contents.clear
  147.       @id=$game_map.map_id
  148.       if $game_switches[Map_W_S] == true
  149.         if @zone_change == true
  150.           if self.zone==nil
  151.           else
  152.             $game_actors[ZONE_NUM].name=self.zone
  153.           end
  154.         end
  155.         self.width=[WIDTH,TEXT1_SIZE*self.name.size/3+50].max
  156.         if @time==0
  157.           self.x=-5-self.width
  158.         end
  159.         create_contents
  160.         self.contents.font.size=TEXT1_SIZE
  161.         self.contents.font.color=TEXT1_COLOR
  162.         self.contents.draw_text(0,0,self.width-32,TEXT1_SIZE,self.name)
  163.         self.contents.font.size=TEXT2_SIZE
  164.         self.contents.font.color=TEXT2_COLOR
  165.         self.contents.draw_text(0,TEXT1_SIZE+2,self.width-32,TEXT2_SIZE,$game_actors[ZONE_NUM].name)     
  166.         if @time==0
  167.           @time=IN_TIME+SHOW_TIME+FADE_TIME
  168.         elsif @time>SHOW_TIME+FADE_TIME
  169.           @time=@time
  170.         elsif @time>FADE_TIME
  171.           @time=SHOW_TIME+FADE_TIME
  172.         else  
  173.           @time=IN_TIME+(-self.width-5-self.x)/(self.width/IN_TIME)+SHOW_TIME+FADE_TIME
  174.         end
  175.       end
  176.     end
  177.     if @time>SHOW_TIME+FADE_TIME
  178.       self.opacity = 255*(IN_TIME+SHOW_TIME+FADE_TIME-@time)/(IN_TIME-1)
  179.       self.contents_opacity = 255*(IN_TIME+SHOW_TIME+FADE_TIME-@time)/(IN_TIME-1)
  180.       self.x = -self.width-5+self.width*(IN_TIME+SHOW_TIME+FADE_TIME-@time)/(IN_TIME-1)
  181.       @time-=1
  182.     elsif @time>FADE_TIME
  183.       @time-=1
  184.     elsif @time>0
  185.       self.opacity = 255*(@time-1)/(FADE_TIME-1)
  186.       self.contents_opacity = 255*(@time-1)/(FADE_TIME-1)
  187.       self.x = -self.width-5+self.width*(@time-1)/(FADE_TIME-1)
  188.       @time-=1
  189.     else
  190.       self.opacity = 0
  191.       self.contents_opacity = 0
  192.       self.x = -self.width-5
  193.     end
  194.    end
  195.   #--------------------------------------------------------------------------
  196.   # ● 直接显示
  197.   #--------------------------------------------------------------------------
  198.   def d_display
  199.     @time=IN_TIME+SHOW_TIME+FADE_TIME
  200.     self.opacity = 0
  201.     self.contents_opacity = 0
  202.     self.x = -self.width-5
  203.   end
  204. end

  205. #==============================================================================
  206. # ■ Game_Character
  207. #------------------------------------------------------------------------------
  208. #  判断当前人物所在区域id(by beside)。
  209. #=============================================================================
  210. class Game_Character
  211.   def area_id
  212.     for area in $data_areas.values
  213.      if in_area?(area)
  214.      return area.id
  215.      end
  216.     end
  217.   end
  218. end
  219. #==============================================================================
  220. # ■ Scene_Map
  221. #------------------------------------------------------------------------------
  222. #  对Scene_Map的追加定义。
  223. #==============================================================================

  224. class Scene_Map < Scene_Base  
  225.   #--------------------------------------------------------------------------
  226.   # ● 开始处理时建立对象
  227.   #--------------------------------------------------------------------------
  228.   alias _start start
  229.   def start
  230.     @map_window = Map_Window.new
  231.     @zone_window = Zone_Window.new
  232.     _start
  233.   end
  234.   #--------------------------------------------------------------------------
  235.   # ● 释放时释放对象
  236.   #--------------------------------------------------------------------------
  237.   alias _terminate terminate
  238.   def terminate
  239.     @map_window.dispose
  240.     @zone_window.dispose
  241.     _terminate
  242.   end
  243.   #--------------------------------------------------------------------------
  244.   # ● 刷新时刷新对象
  245.   #--------------------------------------------------------------------------
  246.   alias _update update
  247.   def update
  248.     @zone_window.refresh
  249.     @map_window.refresh
  250.     _update
  251.   end
  252.   #--------------------------------------------------------------------------
  253.   # ● 标记为地区已改变(这个参数传递的很囧我承认)
  254.   #--------------------------------------------------------------------------
  255.   def zone_change
  256.     @map_window.zone_change
  257.   end   
  258. end
  259. #==============================================================================
  260. # ■ Zone_Window
  261. #------------------------------------------------------------------------------
  262. #  显示地区名的类
  263. #=============================================================================
  264. class Zone_Window<Window_Base
  265.   #--------------------------------------------------------------------------
  266.   # ● 新建对象初始化
  267.   #--------------------------------------------------------------------------  
  268.   def initialize
  269.     super(0,0,50,50)
  270.     create_contents
  271.     self.opacity = 0
  272.     self.contents_opacity = 0
  273.     @time=0
  274.     self.contents.font.shadow = false
  275.   end
  276.   #--------------------------------------------------------------------------
  277.   # ● 直接显示
  278.   #--------------------------------------------------------------------------
  279.   def d_display
  280.     @time=Z_IN_TIME+Z_SHOW_TIME+Z_FADE_TIME
  281.     self.opacity = 0
  282.     self.contents_opacity = 0
  283.     self.x = -self.width-5
  284.   end
  285.   #--------------------------------------------------------------------------
  286.   # ● 得到地区名
  287.   #--------------------------------------------------------------------------
  288.   def zone(id=$game_map.map_id)
  289.     name=$game_map.name[id].name.split(/@/)[1]
  290.     return name
  291.   end
  292.   #--------------------------------------------------------------------------
  293.   # ● 得到地区英文名
  294.   #--------------------------------------------------------------------------
  295.   def zonee(id=$game_map.map_id)
  296.     name=$game_map.name[id].name.split(/@/)[2]
  297.     return name
  298.   end
  299.   #--------------------------------------------------------------------------
  300.   # ● 描绘中文名
  301.   #--------------------------------------------------------------------------
  302.   def drawtext(x)
  303.     self.contents.font.name=["华文中宋","STZhongsong","宋体","黑体"]
  304.     self.contents.font.size=36
  305.     self.contents.font.color=Color.new(255,255,255)
  306.     self.contents.draw_text_f(x,0,self.contents.width,36,@text)
  307.   end
  308.   #--------------------------------------------------------------------------
  309.   # ● 描绘英文名
  310.   #--------------------------------------------------------------------------
  311.   def drawtexten(x)
  312.     self.contents.font.name=["Copperplate Gothic Light"]
  313.     self.contents.font.size=12
  314.     self.contents.font.color=Color.new(255,255,255)
  315.     self.contents.draw_text_f(x,49,self.contents.width,12,@texten)
  316.   end
  317.   #--------------------------------------------------------------------------
  318.   # ● 描绘横线
  319.   #--------------------------------------------------------------------------
  320.   def drawline
  321.     self.contents.fill_rect(self.contents.width-5-@textw-1, 40, @textw+2, 5, Color.new(0,0,0,255))
  322.     self.contents.fill_rect(self.contents.width-5-@textw, 41, @textw, 3, Color.new(255,255,255,255))   
  323.   end
  324.   #--------------------------------------------------------------------------
  325.   # ● 刷新
  326.   #--------------------------------------------------------------------------
  327.   def refresh
  328.     if self.zone != $game_actors[ZONE_NUM].name && self.zone != "" && self.zone != nil
  329.       $game_actors[ZONE_NUM].name=self.zone
  330.       $scene.zone_change
  331.       if $game_switches[ZONE_W_S] == true
  332.         @text=self.zone
  333.         @texten=self.zonee
  334.         @[email protected]*36/3
  335.         @[email protected]*6
  336.         @textw=[@textl,@textenl].max+24
  337.         @l=@textw/12
  338.         self.x=VX_W-@textw-@textl-5-16
  339.         self.y=0
  340.         self.width=@textw+@textl+5+32
  341.         self.height=32+12+12+36
  342.         @time=Z_IN_TIME+Z_SHOW_TIME+Z_FADE_TIME
  343.         create_contents
  344.       end
  345.     end
  346.     if @time>Z_SHOW_TIME+Z_FADE_TIME
  347.       self.contents_opacity = 255*(Z_IN_TIME+Z_SHOW_TIME+Z_FADE_TIME-@time)/(Z_IN_TIME-1)
  348.       drawline
  349.       if @time%2==1
  350.         self.contents.clear
  351.         drawline
  352.         drawtext((self.contents.width-5-(@textw-@textl)/2-@textl)*(Z_IN_TIME+Z_SHOW_TIME+Z_FADE_TIME-@time)/(Z_IN_TIME-1))
  353.         drawtexten(self.contents.width-(5+(@textw-@textenl)/2+@textenl)*(Z_IN_TIME+Z_SHOW_TIME+Z_FADE_TIME-@time)/(Z_IN_TIME-1))
  354.       end
  355.       @time-=1
  356.     elsif @time>Z_FADE_TIME
  357.       @time-=1
  358.     elsif @time>0
  359.       self.contents_opacity = 255*(@time-1)/(Z_FADE_TIME-1)
  360.       if @time%2==1
  361.         self.contents.clear
  362.         drawline
  363.         drawtext(self.contents.width-(5+(@textw-@textl)/2+@textl)*(@time-1)/(Z_FADE_TIME-1))
  364.         drawtexten((self.contents.width-5-(@textw-@textenl)/2-@textenl)*(@time-1)/(Z_FADE_TIME-1))
  365.         self.contents.blur
  366.       end
  367.       @time-=1
  368.     else
  369.       self.opacity=0
  370.       self.contents_opacity=0
  371.     end
  372.   end
  373. end
  374. #==============================================================================
  375. # ◎ GPRA_Bitmap
  376. #------------------------------------------------------------------------------
  377. # ◎ Bitmap功能加强
  378. #------------------------------------------------------------------------------
  379. # 制作者:绿梨子红苹果
  380. # 个人主页:vbgm.9126.com
  381. # E-Mail:[email protected]
  382. # QQ:42378361
  383. #==============================================================================

  384. class Bitmap
  385.   # 影子字
  386.   def draw_text_s(x, y, width, height, str, align=0)
  387.     # 保存当前颜色
  388.     r=self.font.color.red
  389.     g=self.font.color.green
  390.     b=self.font.color.blue
  391.     # 颜色更改成黑色
  392.     self.font.color.set(0, 0, 0)
  393.     # 绘制影子
  394.     self.draw_text(x+2, y+2, width, height, str, align)
  395.     # 恢复原始字色
  396.     self.font.color.set(r,g,b)
  397.     # 绘制原来的字
  398.     self.draw_text(x, y, width, height, str, align)
  399.   end
  400.   # 描边字
  401.   def draw_text_f(x, y, width, height, str, align=0)
  402.     # 保存当前颜色
  403.     r=self.font.color.red
  404.     g=self.font.color.green
  405.     b=self.font.color.blue
  406.     # 颜色更改成黑色
  407.     self.font.color.set(0, 0, 0)
  408.     # 绘制边框
  409.     self.draw_text(x-1, y-1, width, height, str, align)
  410.     self.draw_text(x-1, y+1, width, height, str, align)
  411.     self.draw_text(x+1, y-1, width, height, str, align)
  412.     self.draw_text(x+1, y+1, width, height, str, align)
  413.     self.draw_text(x, y-1, width, height, str, align)
  414.     self.draw_text(x, y+1, width, height, str, align)
  415.     self.draw_text(x-1, y, width, height, str, align)
  416.     self.draw_text(x+1, y, width, height, str, align)
  417.     # 恢复原始字色
  418.     self.font.color.set(r,g,b)
  419.     # 绘制原来的字
  420.     self.draw_text(x, y, width, height, str, align)
  421.   end
  422. end
复制代码
原帖里提供的范例下来运行正常,但是拷了他的系统图和脚本后到自己的作品后一开始游戏就弹出那个提示,不知缺漏了什么步骤T_T
剑与电的浪漫由自己创造~
回复 支持 反对

使用道具 举报

Lv3.寻梦者

伴侣:北岛谜烟

梦石
0
星屑
3042
在线时间
3547 小时
注册时间
2012-8-7
帖子
12181

贵宾

4
发表于 2012-11-16 17:43:01 | 只看该作者
直接粘贴?

点评

是这样黏贴的啊  发表于 2012-11-16 18:06
本人收不到提醒(点评|回复|@人),总之有事情到空间留言一起普通普通
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4694
在线时间
5240 小时
注册时间
2009-4-29
帖子
14318

贵宾

5
发表于 2012-11-16 19:01:43 | 只看该作者
运行无错,估计是和你的脚本不兼容。看来需要你上工程了。

评分

参与人数 2星屑 +120 收起 理由
咕噜 + 60 认可答案
八宝粥先生 + 60 精品文章

查看全部评分

《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
18 小时
注册时间
2009-9-17
帖子
29
6
 楼主| 发表于 2012-11-16 19:38:42 | 只看该作者
汗,看来是脚本冲突,换成Beside大大那个好了= =
剑与电的浪漫由自己创造~
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-22 16:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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