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

Project1

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

[已经解决] 用成就腳本出現了下列錯處, 怎麼做?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
69
在线时间
22 小时
注册时间
2013-5-2
帖子
9
跳转到指定楼层
1
发表于 2013-5-15 01:14:52 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 cacya 于 2013-5-17 22:32 编辑


好奇怪哦...
不知道为什么会出了这个讯息...
请问是什么意思呢?

谢谢!!

RUBY 代码复制
  1. #==============================================================================
  2. # ★ RGSS3_実績メダル Ver1.01
  3. #==============================================================================
  4. =begin
  5.  
  6. 作者:tomoaky
  7. webサイト:ひきも記
  8.  
  9. すごい記録を達成したときにポコンッと出るあれです。
  10.  
  11. イベントコマンド『スクリプト』を使ってメダルを獲得することができます。
  12.   例)gain_medal(0)   # 0番のメダルを獲得する
  13.   設定項目にて番号に対応するメダルの内容を設定してください。
  14.  
  15.  
  16. 2012.01.25  Ver1.01
  17.   メダル獲得表示中のシーン切り替えにより表示がリセットされないように修正
  18.  
  19. 2012.01.16  Ver1.0
  20.   公開
  21.  
  22. =end
  23.  
  24. #==============================================================================
  25. # □ 設定項目
  26. #==============================================================================
  27. module TMMEDAL
  28.   COMMAND_MEDAL = "成就"     # 菜单命令名字
  29.  
  30.   # メダルが1枚もない状態でメダルコマンドを隠すかどうか(true で隠す)
  31.   HIDE_COMMAND = false
  32.  
  33.   # 获得证件时的效果音
  34.   SE_GAIN_MEDAL = RPG::SE.new("Powerup", 90, 140)
  35.  
  36.                 # 证件名,图标ID,说明的设定    脚本设置:gain_medal(0)
  37.   MEDAL_DATA = {}
  38.   MEDAL_DATA[0] = ["主人", 187, "女仆和会话的证明"]
  39.   MEDAL_DATA[1] = ["禁断の光魔法", 187, "光魔法オメガアツマーレを目撃した証"]
  40.   MEDAL_DATA[2] = ["サキュバスファン", 190, "サキュバスと会話をした証"]
  41. end
  42.  
  43. #==============================================================================
  44. # ■ Game_Party
  45. #==============================================================================
  46. class Game_Party
  47.   #--------------------------------------------------------------------------
  48.   # ● 公开实例变量
  49.   #--------------------------------------------------------------------------
  50.   attr_reader   :medals                   # 已获得证件
  51.   attr_reader   :new_medals               # 新获得证件
  52.   attr_accessor :medal_info_count         # 证件信息显示计数
  53.   attr_accessor :medal_info_opacity       # 证件信息显示不透明度
  54.   #--------------------------------------------------------------------------
  55.   # ● 对象初期化
  56.   #--------------------------------------------------------------------------
  57.   alias tmmedal_game_party_initialize initialize
  58.   def initialize
  59.     tmmedal_game_party_initialize
  60.     @medals = []
  61.     @new_medals = []
  62.     @medal_info_count = 0
  63.     @medal_info_opacity = 0
  64.   end
  65.   #--------------------------------------------------------------------------
  66.   # ○ メダルの獲得
  67.   #--------------------------------------------------------------------------
  68.   def gain_medal(medal_id)
  69.     return if @medals.any? {|medal| medal[0] == medal_id }
  70.     t = Time.now.strftime(" (%Y/%m/%d %H:%M)")
  71.     @medals.push([medal_id, t])
  72.     @new_medals.push([medal_id, t])
  73.   end
  74.   #--------------------------------------------------------------------------
  75.   # ○ 获得证件信息消去
  76.   #--------------------------------------------------------------------------
  77.   def delete_new_medal
  78.     @new_medals.shift
  79.   end
  80. end
  81.  
  82. #==============================================================================
  83. # ■ Game_Interpreter
  84. #==============================================================================
  85. class Game_Interpreter
  86.   #--------------------------------------------------------------------------
  87.   # ○ メダルの獲得
  88.   #--------------------------------------------------------------------------
  89.   def gain_medal(medal_id)
  90.     $game_party.gain_medal(medal_id)
  91.   end
  92. end
  93.  
  94. #==============================================================================
  95. # ■ Window_MenuCommand
  96. #==============================================================================
  97. class Window_MenuCommand
  98.   #--------------------------------------------------------------------------
  99.   # ● 独自指令的追加用
  100.   #--------------------------------------------------------------------------
  101.   alias tmmedal_window_menucommand_add_original_commands add_original_commands
  102.   def add_original_commands
  103.     tmmedal_window_menucommand_add_original_commands
  104.     unless TMMEDAL::HIDE_COMMAND && !medal_enabled
  105.       add_command(TMMEDAL::COMMAND_MEDAL, :medal, medal_enabled)
  106.     end
  107.   end
  108.   #--------------------------------------------------------------------------
  109.   # ○ メダルの有効状態を取得
  110.   #--------------------------------------------------------------------------
  111.   def medal_enabled
  112.     !$game_party.medals.empty?
  113.   end
  114. end
  115.  
  116. #==============================================================================
  117. # □ Window_MedalInfo
  118. #==============================================================================
  119. class Window_MedalInfo < Window_Base
  120.   #--------------------------------------------------------------------------
  121.   # ● オブジェクト初期化
  122.   #--------------------------------------------------------------------------
  123.   def initialize
  124.     super(Graphics.width - window_width, 0, window_width, fitting_height(1))
  125.     self.opacity = 0
  126.     self.contents_opacity = $game_party.medal_info_opacity
  127.     refresh
  128.   end
  129.   #--------------------------------------------------------------------------
  130.   # ● ウィンドウ幅の取得
  131.   #--------------------------------------------------------------------------
  132.   def window_width
  133.     return 240
  134.   end
  135.   #--------------------------------------------------------------------------
  136.   # ● フレーム更新
  137.   #--------------------------------------------------------------------------
  138.   def update
  139.     super
  140.     if $game_party.medal_info_count > 0
  141.       self.contents_opacity += 16
  142.       $game_party.medal_info_count -= 1
  143.       $game_party.delete_new_medal if $game_party.medal_info_count == 0
  144.     else
  145.       self.contents_opacity -= 16
  146.       if self.contents_opacity == 0
  147.         open unless $game_party.new_medals.empty?
  148.       end
  149.     end
  150.     $game_party.medal_info_opacity = self.contents_opacity
  151.   end
  152.   #--------------------------------------------------------------------------
  153.   # ● ウィンドウを開く
  154.   #--------------------------------------------------------------------------
  155.   def open
  156.     refresh
  157.     TMMEDAL::SE_GAIN_MEDAL.play
  158.     $game_party.medal_info_count = 150
  159.     self.contents_opacity = 0
  160.     self
  161.   end
  162.   #--------------------------------------------------------------------------
  163.   # ○ リフレッシュ
  164.   #--------------------------------------------------------------------------
  165.   def refresh
  166.     contents.clear
  167.     unless $game_party.new_medals.empty?
  168.       draw_background(contents.rect)
  169.       medal = TMMEDAL::MEDAL_DATA[$game_party.new_medals[0][0]]
  170.       rect = contents.rect.clone
  171.       draw_icon(medal[1], rect.x, rect.y)
  172.       rect.x += 24
  173.       rect.width -= 24
  174.       draw_text(rect, medal[0])
  175.     end
  176.   end
  177.   #--------------------------------------------------------------------------
  178.   # ○ 背景の描画
  179.   #--------------------------------------------------------------------------
  180.   def draw_background(rect)
  181.     temp_rect = rect.clone
  182.     temp_rect.width /= 2
  183.     contents.gradient_fill_rect(temp_rect, back_color2, back_color1)
  184.     temp_rect.x = temp_rect.width
  185.     contents.gradient_fill_rect(temp_rect, back_color1, back_color2)
  186.   end
  187.   #--------------------------------------------------------------------------
  188.   # ○ 背景色 1 の取得
  189.   #--------------------------------------------------------------------------
  190.   def back_color1
  191.     Color.new(0, 0, 0, 192)
  192.   end
  193.   #--------------------------------------------------------------------------
  194.   # ○ 背景色 2 の取得
  195.   #--------------------------------------------------------------------------
  196.   def back_color2
  197.     Color.new(0, 0, 0, 0)
  198.   end
  199. end
  200.  
  201. #==============================================================================
  202. # □ Window_Medal
  203. #==============================================================================
  204. class Window_Medal < Window_Selectable
  205.   #--------------------------------------------------------------------------
  206.   # ● オブジェクト初期化
  207.   #--------------------------------------------------------------------------
  208.   def initialize(x, y, width, height)
  209.     super
  210.     refresh
  211.     select(0)
  212.     activate
  213.   end
  214.   #--------------------------------------------------------------------------
  215.   # ● 桁数の取得
  216.   #--------------------------------------------------------------------------
  217.   def col_max
  218.     return 1
  219.   end
  220.   #--------------------------------------------------------------------------
  221.   # ● 項目数の取得
  222.   #--------------------------------------------------------------------------
  223.   def item_max
  224.     @data ? @data.size : 1
  225.   end
  226.   #--------------------------------------------------------------------------
  227.   # ● アイテムの取得
  228.   #--------------------------------------------------------------------------
  229.   def item
  230.     @data && index >= 0 ? @data[index] : nil
  231.   end
  232.   #--------------------------------------------------------------------------
  233.   # ● アイテムリストの作成
  234.   #--------------------------------------------------------------------------
  235.   def make_item_list
  236.     @data = $game_party.medals
  237.   end
  238.   #--------------------------------------------------------------------------
  239.   # ● 項目の描画
  240.   #--------------------------------------------------------------------------
  241.   def draw_item(index)
  242.     item = @data[index]
  243.     medal = TMMEDAL::MEDAL_DATA[item[0]]
  244.     rect = item_rect(index)
  245.     draw_icon(medal[1], rect.x, rect.y)
  246.     rect.x += 24
  247.     rect.width -= 216
  248.     draw_text(rect, medal[0])
  249.     rect.x = contents.width - 192
  250.     rect.width = 192
  251.     draw_text(rect, item[1], 2)
  252.   end
  253.   #--------------------------------------------------------------------------
  254.   # ● ヘルプテキスト更新
  255.   #--------------------------------------------------------------------------
  256.   def update_help
  257.     if item
  258.       medal = TMMEDAL::MEDAL_DATA[item[0]]
  259.       text = medal[2]
  260.       @help_window.set_text(text)
  261.     end
  262.   end
  263.   #--------------------------------------------------------------------------
  264.   # ● リフレッシュ
  265.   #--------------------------------------------------------------------------
  266.   def refresh
  267.     make_item_list
  268.     create_contents
  269.     draw_all_items
  270.   end
  271. end
  272.  
  273. #==============================================================================
  274. # ■ Scene_Map
  275. #==============================================================================
  276. class Scene_Map
  277.   #--------------------------------------------------------------------------
  278.   # ● 全ウィンドウの作成
  279.   #--------------------------------------------------------------------------
  280.   alias tmmedal_scene_map_create_all_windows create_all_windows
  281.   def create_all_windows
  282.     tmmedal_scene_map_create_all_windows
  283.     create_medal_window
  284.   end
  285.   #--------------------------------------------------------------------------
  286.   # ○ メダルウィンドウの作成
  287.   #--------------------------------------------------------------------------
  288.   def create_medal_window
  289.     @medal_window = Window_MedalInfo.new
  290.   end
  291. end
  292.  
  293. #==============================================================================
  294. # ■ Scene_Menu
  295. #==============================================================================
  296. class Scene_Menu
  297.   #--------------------------------------------------------------------------
  298.   # ● コマンドウィンドウの作成
  299.   #--------------------------------------------------------------------------
  300.   alias tmmedal_scene_menu_create_command_window create_command_window
  301.   def create_command_window
  302.     tmmedal_scene_menu_create_command_window
  303.     @command_window.set_handler(:medal, method(:command_medal))
  304.   end
  305.   #--------------------------------------------------------------------------
  306.   # ○ コマンド[メダル]
  307.   #--------------------------------------------------------------------------
  308.   def command_medal
  309.     SceneManager.call(Scene_Medal)
  310.   end
  311. end
  312.  
  313. #==============================================================================
  314. # □ Scene_Medal
  315. #==============================================================================
  316. class Scene_Medal < Scene_MenuBase
  317.   #--------------------------------------------------------------------------
  318.   # ● 開始処理
  319.   #--------------------------------------------------------------------------
  320.   def start
  321.     super
  322.     create_help_window
  323.     create_item_window
  324.   end
  325.   #--------------------------------------------------------------------------
  326.   # ○ アイテムウィンドウの作成
  327.   #--------------------------------------------------------------------------
  328.   def create_item_window
  329.     wy = @help_window.height
  330.     wh = Graphics.height - wy
  331.     @item_window = Window_Medal.new(0, wy, Graphics.width, wh)
  332.     @item_window.viewport = @viewport
  333.     @item_window.help_window = @help_window
  334.     @item_window.set_handler(:cancel, method(:return_scene))
  335.   end
  336. end

a2.png (18.29 KB, 下载次数: 36)

a2.png

Lv1.梦旅人

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
帖子
1543
2
发表于 2013-5-15 01:22:27 | 只看该作者
不能转换 nil 为整数。

应该是 $game_party.medal_info_opacity 的值为 nil 了
修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
69
在线时间
22 小时
注册时间
2013-5-2
帖子
9
3
 楼主| 发表于 2013-5-15 01:32:41 | 只看该作者
j433463 发表于 2013-5-15 01:22
不能转换 nil 为整数。

应该是 $game_party.medal_info_opacity 的值为 nil 了

对不起...
我是新手.... 请问可以说得详细一点吗? ><"
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
46 小时
注册时间
2011-2-18
帖子
37
4
发表于 2013-5-15 01:54:36 | 只看该作者
cacya 发表于 2013-5-15 01:32
对不起...
我是新手.... 请问可以说得详细一点吗? >

我也不是很懂代码 感觉他指的是

def update
    super
    if $game_party.medal_info_count > 0
      self.contents_opacity += 16
      $game_party.medal_info_count -= 1
      $game_party.delete_new_medal if $game_party.medal_info_count == 0
    else
      self.contents_opacity -= 16
      if self.contents_opacity == 0
        open unless $game_party.new_medals.empty?
      end
    end
    $game_party.medal_info_opacity = self.contents_opacity
  end

这段代码当中
   self.contents_opacity -= 16
      if self.contents_opacity == 0

2次相等后 就变成了整数了  你试试把  $game_party.medal_info_opacity = self.contents_opacity 改成  $game_party.medal_info_opacity =nil

评分

参与人数 1星屑 +50 收起 理由
Sion + 50 感谢帮忙

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
69
在线时间
22 小时
注册时间
2013-5-2
帖子
9
5
 楼主| 发表于 2013-5-15 02:11:16 | 只看该作者
cccjjjcui 发表于 2013-5-15 01:54
我也不是很懂代码 感觉他指的是

def update

谢谢你! 但还是不行啊.... ><""
这个我也是直接复印过来的...
所以不知道是为什么.....
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
帖子
1543
6
发表于 2013-5-15 06:04:21 | 只看该作者
不清楚您的情况,脚本复制测试没有出现错误讯息,您给的错误讯息却是说第 126 行取得的值是 nil 不符合整数值的要求,但那个明明有初始化为 0 的,除非另外设定了 $game_party.medal_info_opacity 为 nil,否则不应该如此,怀疑是否有脚本与它冲突了。

评分

参与人数 1星屑 +50 收起 理由
Sion + 50 感谢帮忙

查看全部评分

修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
103
在线时间
156 小时
注册时间
2013-8-6
帖子
76
7
发表于 2015-8-21 12:05:45 | 只看该作者
不对!这是因为读取了旧的存档,开新档就行了。
笑尽天下可笑之事。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 12:35

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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