Project1

标题: 关于脚本的问题:脚本提示出错 [打印本页]

作者: jskr007    时间: 2008-2-29 05:36
标题: 关于脚本的问题:脚本提示出错
我有两个脚本错误:
1 脚本"game_battleaction"的62行发生nomethod error undefined method 'scope' for  nil:nilclass
2 脚本'interproter 6'的186行发生了nomethod error undefined method'[]'for  nil:nilclass
这两个错误都是什么意思,该怎样解决啊???? [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 水迭澜    时间: 2008-2-29 05:47
你用了什么脚本
作者: 英俊de狗    时间: 2008-2-29 05:49
提示: 作者被禁止或删除 内容自动屏蔽
作者: seles    时间: 2008-2-29 05:50
提示: 作者被禁止或删除 内容自动屏蔽
作者: jskr007    时间: 2008-2-29 05:51
大哥,你怎么看出的是脚本冲突?具体怎么改啊
作者: 暴风の龙    时间: 2008-2-29 05:52
以下引用英俊de狗于2008-2-28 21:49:11的发言:

请把两个脚本原文发上来,并且改动过这两个脚本的类,请一起发上

不把脚本原文发上来,无法看出是什么问题……
作者: jskr007    时间: 2008-2-29 05:54
先谢谢各位大哥,脚本我得明天发,我不是在自己家上网,让大家费心了
作者: jskr007    时间: 2008-2-29 05:56
还有,楼上的大哥,你的游戏我也会支持的,正在下载中......
作者: jskr007    时间: 2008-2-29 19:06
主题:《关于脚本出错的问题(接昨天的)》 原帖[LINE]1,#dddddd[/LINE]

  1. #==============================================================================
  2. # ■ Game_BattleAction
  3. #------------------------------------------------------------------------------
  4. #  处理行动 (战斗中的行动) 的类。这个类在 Game_Battler 类
  5. # 的内部使用。
  6. #==============================================================================

  7. class Game_BattleAction
  8.   #--------------------------------------------------------------------------
  9.   # ● 定义实例变量
  10.   #--------------------------------------------------------------------------
  11.   attr_accessor :speed                    # 速度
  12.   attr_accessor :kind                     # 种类 (基本 / 特技 / 物品)
  13.   attr_accessor :basic                    # 基本 (攻击 / 防御 / 逃跑)
  14.   attr_accessor :skill_id                 # 特技 ID
  15.   attr_accessor :item_id                  # 物品 ID
  16.   attr_accessor :target_index             # 对像索引
  17.   attr_accessor :forcing                  # 強强制标志
  18.   #--------------------------------------------------------------------------
  19.   # ● 初始化对像
  20.   #--------------------------------------------------------------------------
  21.   def initialize
  22.     clear
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ● 清除
  26.   #--------------------------------------------------------------------------
  27.   def clear
  28.     @speed = 0
  29.     @kind = 0
  30.     @basic = 3
  31.     @skill_id = 0
  32.     @item_id = 0
  33.     @target_index = -1
  34.     @forcing = false
  35.   end
  36.   #--------------------------------------------------------------------------
  37.   # ● 有效判定
  38.   #--------------------------------------------------------------------------
  39.   def valid?
  40.     return (not (@kind == 0 and @basic == 3))
  41.   end
  42.   #--------------------------------------------------------------------------
  43.   # ● 己方单体使用判定
  44.   #--------------------------------------------------------------------------
  45.   def for_one_friend?
  46.     # 种类为特级、效果范围是我方单体 (包含 HP 0) 的情况
  47.     if @kind == 1 and [3, 5].include?($data_skills[@skill_id].scope)
  48.       return true
  49.     end
  50.     # 种类为物品、效果范围是我方单体 (包含 HP 0) 的情况
  51.     if @kind == 2 and [3, 5].include?($data_items[@item_id].scope)
  52.       return true
  53.     end
  54.     return false
  55.   end
  56.   #--------------------------------------------------------------------------
  57.   # ● 己方单体用 (HP 0) 判定
  58.   #--------------------------------------------------------------------------
  59.   def for_one_friend_hp0?
  60.     # 种类为特级、效果范围是我方单体 (HP 0) 的情况
  61.       if @kind == 1 and [5].include?($data_skills[@skill_id].scope)
  62.       return true
  63.     end
  64.     # 种类为物品、效果范围是我方单体 (HP 0) 的情况
  65.     if @kind == 2 and [5].include?($data_items[@item_id].scope)
  66.       return true
  67.     end
  68.     return false
  69.   end
  70.   #--------------------------------------------------------------------------
  71.   # ● 随机目标 (角色用)
  72.   #--------------------------------------------------------------------------
  73.   def decide_random_target_for_actor
  74.     # 效果范围的分支
  75.     if for_one_friend_hp0?
  76.       battler = $game_party.random_target_actor_hp0
  77.     elsif for_one_friend?
  78.       battler = $game_party.random_target_actor
  79.     else
  80.       battler = $game_troop.random_target_enemy
  81.     end
  82.     # 对像存在的话取得索引、
  83.     # 对像不存在的场合下清除行动
  84.     if battler != nil
  85.       @target_index = battler.index
  86.     else
  87.       clear
  88.     end
  89.   end
  90.   #--------------------------------------------------------------------------
  91.   # ● 随机目标 (敌人用)
  92.   #--------------------------------------------------------------------------
  93.   def decide_random_target_for_enemy
  94.     # 效果范围的分支
  95.     if for_one_friend_hp0?
  96.       battler = $game_troop.random_target_enemy_hp0
  97.     elsif for_one_friend?
  98.       battler = $game_troop.random_target_enemy
  99.     else
  100.       battler = $game_party.random_target_actor
  101.     end
  102.     # 对像存在的话取得索引、
  103.     # 对像不存在的场合下清除行动
  104.     if battler != nil
  105.       @target_index = battler.index
  106.     else
  107.       clear
  108.     end
  109.   end
  110.   #--------------------------------------------------------------------------
  111.   # ● 最后的目标 (角色用)
  112.   #--------------------------------------------------------------------------
  113.   def decide_last_target_for_actor
  114.     # 效果范围是己方单体以及行动者、以外的的敌人
  115.     if @target_index == -1
  116.       battler = nil
  117.     elsif for_one_friend?
  118.       battler = $game_party.actors[@target_index]
  119.     else
  120.       battler = $game_troop.enemies[@target_index]
  121.     end
  122.     # 对像不存在的场合下清除行动
  123.     if battler == nil or not battler.exist?
  124.       clear
  125.     end
  126.   end
  127.   #--------------------------------------------------------------------------
  128.   # ● 最后的目标 (敌人用)
  129.   #--------------------------------------------------------------------------
  130.   def decide_last_target_for_enemy
  131.     # 效果范围是己方单体以敌人、以外的的角色
  132.     if @target_index == -1
  133.       battler = nil
  134.     elsif for_one_friend?
  135.       battler = $game_troop.enemies[@target_index]
  136.     else
  137.       battler = $game_party.actors[@target_index]
  138.     end
  139.     # 对像不存在的场合下清除行动
  140.     if battler == nil or not battler.exist?
  141.       clear
  142.     end
  143.   end
  144. end
复制代码

作者: jskr007    时间: 2008-2-29 19:07
re:主题:《关于脚本出错的问题(接昨天的)》 [LINE]1,#dddddd[/LINE]主题:《另外一个脚本(接昨天的)》 原帖[LINE]1,#dddddd[/LINE]

  1. #==============================================================================
  2. # ■ Interpreter (分割定义 6)
  3. #------------------------------------------------------------------------------
  4. #  执行事件命令的解释器。本类在 Game_System 类
  5. # 和 Game_Event 类的内部使用。
  6. #==============================================================================

  7. class Interpreter
  8.   #--------------------------------------------------------------------------
  9.   # ● 战斗处理
  10.   #--------------------------------------------------------------------------
  11.   def command_301
  12.     # 如果不是无效的队伍
  13.     if $data_troops[@parameters[0]] != nil
  14.       # 设置中断战斗标志
  15.       $game_temp.battle_abort = true
  16.       # 设置战斗调用标志
  17.       $game_temp.battle_calling = true
  18.       $game_temp.battle_troop_id = @parameters[0]
  19.       $game_temp.battle_can_escape = @parameters[1]
  20.       $game_temp.battle_can_lose = @parameters[2]
  21.       # 设置返回调用
  22.       current_indent = @list[@index].indent
  23.       $game_temp.battle_proc = Proc.new { |n| @branch[current_indent] = n }
  24.     end
  25.     # 推进索引
  26.     @index += 1
  27.     # 结束
  28.     return false
  29.   end
  30.   #--------------------------------------------------------------------------
  31.   # ● 胜利的情况下
  32.   #--------------------------------------------------------------------------
  33.   def command_601
  34.     # 战斗结果为胜利的情况下
  35.     if @branch[@list[@index].indent] == 0
  36.       # 删除分支数据
  37.       @branch.delete(@list[@index].indent)
  38.       # 继续
  39.       return true
  40.     end
  41.     # 不符合条件的情况下 : 指令跳转
  42.     return command_skip
  43.   end
  44.   #--------------------------------------------------------------------------
  45.   # ● 逃跑的情况下
  46.   #--------------------------------------------------------------------------
  47.   def command_602
  48.     # 战斗结果为逃跑的情况下
  49.     if @branch[@list[@index].indent] == 1
  50.       # 删除分支数据
  51.       @branch.delete(@list[@index].indent)
  52.       # 继续
  53.       return true
  54.     end
  55.     # 不符合条件的情况下 : 指令跳转
  56.     return command_skip
  57.   end
  58.   #--------------------------------------------------------------------------
  59.   # ● 失败的情况下
  60.   #--------------------------------------------------------------------------
  61.   def command_603
  62.     # 战斗结果为失败的情况下
  63.     if @branch[@list[@index].indent] == 2
  64.       # 删除分支数据
  65.       @branch.delete(@list[@index].indent)
  66.       # 继续
  67.       return true
  68.     end
  69.     # 不符合条件的情况下 : 指令跳转
  70.     return command_skip
  71.   end
  72.   #--------------------------------------------------------------------------
  73.   # ● 商店的处理
  74.   #--------------------------------------------------------------------------
  75.   def command_302
  76.     # 设置战斗中断标志
  77.     $game_temp.battle_abort = true
  78.     # 设置商店调用标志
  79.     $game_temp.shop_calling = true
  80.     # 设置商品列表的新项目
  81.     $game_temp.shop_goods = [@parameters]
  82.     # 循环
  83.     loop do
  84.       # 推进索引
  85.       @index += 1
  86.       # 下一个事件命令在商店两行以上的情况下
  87.       if @list[@index].code == 605
  88.         # 在商品列表中添加新项目
  89.         $game_temp.shop_goods.push(@list[@index].parameters)
  90.       # 事件命令不在商店两行以上的情况下
  91.       else
  92.         # 技术
  93.         return false
  94.       end
  95.     end
  96.   end
  97.   #--------------------------------------------------------------------------
  98.   # ● 名称输入处理
  99.   #--------------------------------------------------------------------------
  100.   def command_303
  101.     # 如果不是无效的角色
  102.     if $data_actors[@parameters[0]] != nil
  103.       # 设置战斗中断标志
  104.       $game_temp.battle_abort = true
  105.       # 设置名称输入调用标志
  106.       $game_temp.name_calling = true
  107.       $game_temp.name_actor_id = @parameters[0]
  108.       $game_temp.name_max_char = @parameters[1]
  109.     end
  110.     # 推进索引
  111.     @index += 1
  112.     # 结束
  113.     return false
  114.   end
  115.   #--------------------------------------------------------------------------
  116.   # ● 增减 HP
  117.   #--------------------------------------------------------------------------
  118.   def command_311
  119.     # 获取操作值
  120.     value = operate_value(@parameters[1], @parameters[2], @parameters[3])
  121.     # 处理重复
  122.     iterate_actor(@parameters[0]) do |actor|
  123.       # HP 不为 0 的情况下
  124.       if actor.hp > 0
  125.         # 更改 HP (如果不允许战斗不能的状态就设置为 1)
  126.         if @parameters[4] == false and actor.hp + value <= 0
  127.           actor.hp = 1
  128.         else
  129.           actor.hp += value
  130.         end
  131.       end
  132.     end
  133.     # 游戏结束判定
  134.     $game_temp.gameover = $game_party.all_dead?
  135.     # 继续
  136.     return true
  137.   end
  138.   #--------------------------------------------------------------------------
  139.   # ● 增减 SP
  140.   #--------------------------------------------------------------------------
  141.   def command_312
  142.     # 获取操作值
  143.     value = operate_value(@parameters[1], @parameters[2], @parameters[3])
  144.     # 处理重复
  145.     iterate_actor(@parameters[0]) do |actor|
  146.       # 更改角色的 SP
  147.       actor.sp += value
  148.     end
  149.     # 继续
  150.     return true
  151.   end
  152.   #--------------------------------------------------------------------------
  153.   # ● 更改状态
  154.   #--------------------------------------------------------------------------
  155.   def command_313
  156.     # 处理重复
  157.     iterate_actor(@parameters[0]) do |actor|
  158.       # 更改状态
  159.       if @parameters[1] == 0
  160.         actor.add_state(@parameters[2])
  161.       else
  162.         actor.remove_state(@parameters[2])
  163.       end
  164.     end
  165.     # 继续
  166.     return true
  167.   end
  168.   #--------------------------------------------------------------------------
  169.   # ● 全回复
  170.   #--------------------------------------------------------------------------
  171.   def command_314
  172.     # 处理重复
  173.     iterate_actor(@parameters[0]) do |actor|
  174.       # 角色全回复
  175.       actor.recover_all
  176.     end
  177.     # 继续
  178.     return true
  179.   end
  180.   #--------------------------------------------------------------------------
  181.   # ● 增减 EXP
  182.   #--------------------------------------------------------------------------
  183.   def command_315
  184.     # 获取操作值
  185.     value = operate_value(@parameters[1], @parameters[2], @parameters[3])
  186.     # 处理重复
  187.     iterate_actor(@parameters[0]) do |actor|
  188.       # 更改角色 EXP
  189.       actor.exp += value
  190.     end
  191.     # 继续
  192.     return true
  193.   end
  194.   #--------------------------------------------------------------------------
  195.   # ● 增减等级
  196.   #--------------------------------------------------------------------------
  197.   def command_316
  198.     # 获取操作值
  199.     value = operate_value(@parameters[1], @parameters[2], @parameters[3])
  200.     # 处理重复
  201.     iterate_actor(@parameters[0]) do |actor|
  202.       # 更改角色的等级
  203.       actor.level += value
  204.     end
  205.     # 继续
  206.     return true
  207.   end
  208.   #--------------------------------------------------------------------------
  209.   # ● 增减能力值
  210.   #--------------------------------------------------------------------------
  211.   def command_317
  212.     # 获取操作值
  213.     value = operate_value(@parameters[2], @parameters[3], @parameters[4])
  214.     # 获取角色
  215.     actor = $game_actors[@parameters[0]]
  216.     # 更改能力值
  217.     if actor != nil
  218.       case @parameters[1]
  219.       when 0  # MaxHP
  220.         actor.maxhp += value
  221.       when 1  # MaxSP
  222.         actor.maxsp += value
  223.       when 2  # 力量
  224.         actor.str += value
  225.       when 3  # 灵巧
  226.         actor.dex += value
  227.       when 4  # 速度
  228.         actor.agi += value
  229.       when 5  # 魔力
  230.         actor.int += value
  231.       end
  232.     end
  233.     # 继续
  234.     return true
  235.   end
  236.   #--------------------------------------------------------------------------
  237.   # ● 增减特技
  238.   #--------------------------------------------------------------------------
  239.   def command_318
  240.     # 获取角色
  241.     actor = $game_actors[@parameters[0]]
  242.     # 增减特技
  243.     if actor != nil
  244.       if @parameters[1] == 0
  245.         actor.learn_skill(@parameters[2])
  246.       else
  247.         actor.forget_skill(@parameters[2])
  248.       end
  249.     end
  250.     # 继续
  251.     return true
  252.   end
  253.   #--------------------------------------------------------------------------
  254.   # ● 变更装备
  255.   #--------------------------------------------------------------------------
  256.   def command_319
  257.     # 获取角色
  258.     actor = $game_actors[@parameters[0]]
  259.     # 变更角色
  260.     if actor != nil
  261.       actor.equip(@parameters[1], @parameters[2])
  262.     end
  263.     # 继续
  264.     return true
  265.   end
  266.   #--------------------------------------------------------------------------
  267.   # ● 更改角色的名字
  268.   #--------------------------------------------------------------------------
  269.   def command_320
  270.     # 获取角色
  271.     actor = $game_actors[@parameters[0]]
  272.     # 更改名字
  273.     if actor != nil
  274.       actor.name = @parameters[1]
  275.     end
  276.     # 继续
  277.     return true
  278.   end
  279.   #--------------------------------------------------------------------------
  280.   # ● 更改角色的职业
  281.   #--------------------------------------------------------------------------
  282.   def command_321
  283.     # 获取角色
  284.     actor = $game_actors[@parameters[0]]
  285.     # 更改职业
  286.     if actor != nil
  287.       actor.class_id = @parameters[1]
  288.     end
  289.     # 继续
  290.     return true
  291.   end
  292.   #--------------------------------------------------------------------------
  293.   # ● 更改角色的图形
  294.   #--------------------------------------------------------------------------
  295.   def command_322
  296.     # 获取角色
  297.     actor = $game_actors[@parameters[0]]
  298.     # 更改图形
  299.     if actor != nil
  300.       actor.set_graphic(@parameters[1], @parameters[2],
  301.         @parameters[3], @parameters[4])
  302.     end
  303.     # 刷新角色
  304.     $game_player.refresh
  305.     # 继续
  306.     return true
  307.   end
  308. end
复制代码

作者: 天圣的马甲    时间: 2008-2-29 21:37
re:主题:《关于脚本出错的问题(接昨天的)》 [LINE]1,#dddddd[/LINE]就这么粘一个脚本上来谁知道你出了什么问题……= =

把你的问题描述清楚,还有你重复发帖了。- -
作者: xiarongshan    时间: 2008-2-29 21:43
提示: 作者被禁止或删除 内容自动屏蔽
作者: 水迭澜    时间: 2008-2-29 23:07
帮你合并了
以后问问题请自己编辑在一个帖子里
作者: 沉影不器    时间: 2008-2-29 23:22
提示: 作者被禁止或删除 内容自动屏蔽
作者: wy29    时间: 2008-2-29 23:37
提示: 作者被禁止或删除 内容自动屏蔽
作者: jskr007    时间: 2009-6-12 08:00
都是从别的地方摘抄的,是关于升级后提示信息的,不过不能用,而且游戏运行都不正常




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