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]
#==============================================================================
# ■ Game_BattleAction
#------------------------------------------------------------------------------
# 处理行动 (战斗中的行动) 的类。这个类在 Game_Battler 类
# 的内部使用。
#==============================================================================
class Game_BattleAction
#--------------------------------------------------------------------------
# ● 定义实例变量
#--------------------------------------------------------------------------
attr_accessor :speed # 速度
attr_accessor :kind # 种类 (基本 / 特技 / 物品)
attr_accessor :basic # 基本 (攻击 / 防御 / 逃跑)
attr_accessor :skill_id # 特技 ID
attr_accessor :item_id # 物品 ID
attr_accessor :target_index # 对像索引
attr_accessor :forcing # 強强制标志
#--------------------------------------------------------------------------
# ● 初始化对像
#--------------------------------------------------------------------------
def initialize
clear
end
#--------------------------------------------------------------------------
# ● 清除
#--------------------------------------------------------------------------
def clear
@speed = 0
@kind = 0
@basic = 3
@skill_id = 0
@item_id = 0
@target_index = -1
@forcing = false
end
#--------------------------------------------------------------------------
# ● 有效判定
#--------------------------------------------------------------------------
def valid?
return (not (@kind == 0 and @basic == 3))
end
#--------------------------------------------------------------------------
# ● 己方单体使用判定
#--------------------------------------------------------------------------
def for_one_friend?
# 种类为特级、效果范围是我方单体 (包含 HP 0) 的情况
if @kind == 1 and [3, 5].include?($data_skills[@skill_id].scope)
return true
end
# 种类为物品、效果范围是我方单体 (包含 HP 0) 的情况
if @kind == 2 and [3, 5].include?($data_items[@item_id].scope)
return true
end
return false
end
#--------------------------------------------------------------------------
# ● 己方单体用 (HP 0) 判定
#--------------------------------------------------------------------------
def for_one_friend_hp0?
# 种类为特级、效果范围是我方单体 (HP 0) 的情况
if @kind == 1 and [5].include?($data_skills[@skill_id].scope)
return true
end
# 种类为物品、效果范围是我方单体 (HP 0) 的情况
if @kind == 2 and [5].include?($data_items[@item_id].scope)
return true
end
return false
end
#--------------------------------------------------------------------------
# ● 随机目标 (角色用)
#--------------------------------------------------------------------------
def decide_random_target_for_actor
# 效果范围的分支
if for_one_friend_hp0?
battler = $game_party.random_target_actor_hp0
elsif for_one_friend?
battler = $game_party.random_target_actor
else
battler = $game_troop.random_target_enemy
end
# 对像存在的话取得索引、
# 对像不存在的场合下清除行动
if battler != nil
@target_index = battler.index
else
clear
end
end
#--------------------------------------------------------------------------
# ● 随机目标 (敌人用)
#--------------------------------------------------------------------------
def decide_random_target_for_enemy
# 效果范围的分支
if for_one_friend_hp0?
battler = $game_troop.random_target_enemy_hp0
elsif for_one_friend?
battler = $game_troop.random_target_enemy
else
battler = $game_party.random_target_actor
end
# 对像存在的话取得索引、
# 对像不存在的场合下清除行动
if battler != nil
@target_index = battler.index
else
clear
end
end
#--------------------------------------------------------------------------
# ● 最后的目标 (角色用)
#--------------------------------------------------------------------------
def decide_last_target_for_actor
# 效果范围是己方单体以及行动者、以外的的敌人
if @target_index == -1
battler = nil
elsif for_one_friend?
battler = $game_party.actors[@target_index]
else
battler = $game_troop.enemies[@target_index]
end
# 对像不存在的场合下清除行动
if battler == nil or not battler.exist?
clear
end
end
#--------------------------------------------------------------------------
# ● 最后的目标 (敌人用)
#--------------------------------------------------------------------------
def decide_last_target_for_enemy
# 效果范围是己方单体以敌人、以外的的角色
if @target_index == -1
battler = nil
elsif for_one_friend?
battler = $game_troop.enemies[@target_index]
else
battler = $game_party.actors[@target_index]
end
# 对像不存在的场合下清除行动
if battler == nil or not battler.exist?
clear
end
end
end
复制代码
作者:
jskr007
时间:
2008-2-29 19:07
re:主题:《关于脚本出错的问题(接昨天的)》 [LINE]1,#dddddd[/LINE]主题:《另外一个脚本(接昨天的)》 原帖[LINE]1,#dddddd[/LINE]
#==============================================================================
# ■ Interpreter (分割定义 6)
#------------------------------------------------------------------------------
# 执行事件命令的解释器。本类在 Game_System 类
# 和 Game_Event 类的内部使用。
#==============================================================================
class Interpreter
#--------------------------------------------------------------------------
# ● 战斗处理
#--------------------------------------------------------------------------
def command_301
# 如果不是无效的队伍
if $data_troops[@parameters[0]] != nil
# 设置中断战斗标志
$game_temp.battle_abort = true
# 设置战斗调用标志
$game_temp.battle_calling = true
$game_temp.battle_troop_id = @parameters[0]
$game_temp.battle_can_escape = @parameters[1]
$game_temp.battle_can_lose = @parameters[2]
# 设置返回调用
current_indent = @list[@index].indent
$game_temp.battle_proc = Proc.new { |n| @branch[current_indent] = n }
end
# 推进索引
@index += 1
# 结束
return false
end
#--------------------------------------------------------------------------
# ● 胜利的情况下
#--------------------------------------------------------------------------
def command_601
# 战斗结果为胜利的情况下
if @branch[@list[@index].indent] == 0
# 删除分支数据
@branch.delete(@list[@index].indent)
# 继续
return true
end
# 不符合条件的情况下 : 指令跳转
return command_skip
end
#--------------------------------------------------------------------------
# ● 逃跑的情况下
#--------------------------------------------------------------------------
def command_602
# 战斗结果为逃跑的情况下
if @branch[@list[@index].indent] == 1
# 删除分支数据
@branch.delete(@list[@index].indent)
# 继续
return true
end
# 不符合条件的情况下 : 指令跳转
return command_skip
end
#--------------------------------------------------------------------------
# ● 失败的情况下
#--------------------------------------------------------------------------
def command_603
# 战斗结果为失败的情况下
if @branch[@list[@index].indent] == 2
# 删除分支数据
@branch.delete(@list[@index].indent)
# 继续
return true
end
# 不符合条件的情况下 : 指令跳转
return command_skip
end
#--------------------------------------------------------------------------
# ● 商店的处理
#--------------------------------------------------------------------------
def command_302
# 设置战斗中断标志
$game_temp.battle_abort = true
# 设置商店调用标志
$game_temp.shop_calling = true
# 设置商品列表的新项目
$game_temp.shop_goods = [@parameters]
# 循环
loop do
# 推进索引
@index += 1
# 下一个事件命令在商店两行以上的情况下
if @list[@index].code == 605
# 在商品列表中添加新项目
$game_temp.shop_goods.push(@list[@index].parameters)
# 事件命令不在商店两行以上的情况下
else
# 技术
return false
end
end
end
#--------------------------------------------------------------------------
# ● 名称输入处理
#--------------------------------------------------------------------------
def command_303
# 如果不是无效的角色
if $data_actors[@parameters[0]] != nil
# 设置战斗中断标志
$game_temp.battle_abort = true
# 设置名称输入调用标志
$game_temp.name_calling = true
$game_temp.name_actor_id = @parameters[0]
$game_temp.name_max_char = @parameters[1]
end
# 推进索引
@index += 1
# 结束
return false
end
#--------------------------------------------------------------------------
# ● 增减 HP
#--------------------------------------------------------------------------
def command_311
# 获取操作值
value = operate_value(@parameters[1], @parameters[2], @parameters[3])
# 处理重复
iterate_actor(@parameters[0]) do |actor|
# HP 不为 0 的情况下
if actor.hp > 0
# 更改 HP (如果不允许战斗不能的状态就设置为 1)
if @parameters[4] == false and actor.hp + value <= 0
actor.hp = 1
else
actor.hp += value
end
end
end
# 游戏结束判定
$game_temp.gameover = $game_party.all_dead?
# 继续
return true
end
#--------------------------------------------------------------------------
# ● 增减 SP
#--------------------------------------------------------------------------
def command_312
# 获取操作值
value = operate_value(@parameters[1], @parameters[2], @parameters[3])
# 处理重复
iterate_actor(@parameters[0]) do |actor|
# 更改角色的 SP
actor.sp += value
end
# 继续
return true
end
#--------------------------------------------------------------------------
# ● 更改状态
#--------------------------------------------------------------------------
def command_313
# 处理重复
iterate_actor(@parameters[0]) do |actor|
# 更改状态
if @parameters[1] == 0
actor.add_state(@parameters[2])
else
actor.remove_state(@parameters[2])
end
end
# 继续
return true
end
#--------------------------------------------------------------------------
# ● 全回复
#--------------------------------------------------------------------------
def command_314
# 处理重复
iterate_actor(@parameters[0]) do |actor|
# 角色全回复
actor.recover_all
end
# 继续
return true
end
#--------------------------------------------------------------------------
# ● 增减 EXP
#--------------------------------------------------------------------------
def command_315
# 获取操作值
value = operate_value(@parameters[1], @parameters[2], @parameters[3])
# 处理重复
iterate_actor(@parameters[0]) do |actor|
# 更改角色 EXP
actor.exp += value
end
# 继续
return true
end
#--------------------------------------------------------------------------
# ● 增减等级
#--------------------------------------------------------------------------
def command_316
# 获取操作值
value = operate_value(@parameters[1], @parameters[2], @parameters[3])
# 处理重复
iterate_actor(@parameters[0]) do |actor|
# 更改角色的等级
actor.level += value
end
# 继续
return true
end
#--------------------------------------------------------------------------
# ● 增减能力值
#--------------------------------------------------------------------------
def command_317
# 获取操作值
value = operate_value(@parameters[2], @parameters[3], @parameters[4])
# 获取角色
actor = $game_actors[@parameters[0]]
# 更改能力值
if actor != nil
case @parameters[1]
when 0 # MaxHP
actor.maxhp += value
when 1 # MaxSP
actor.maxsp += value
when 2 # 力量
actor.str += value
when 3 # 灵巧
actor.dex += value
when 4 # 速度
actor.agi += value
when 5 # 魔力
actor.int += value
end
end
# 继续
return true
end
#--------------------------------------------------------------------------
# ● 增减特技
#--------------------------------------------------------------------------
def command_318
# 获取角色
actor = $game_actors[@parameters[0]]
# 增减特技
if actor != nil
if @parameters[1] == 0
actor.learn_skill(@parameters[2])
else
actor.forget_skill(@parameters[2])
end
end
# 继续
return true
end
#--------------------------------------------------------------------------
# ● 变更装备
#--------------------------------------------------------------------------
def command_319
# 获取角色
actor = $game_actors[@parameters[0]]
# 变更角色
if actor != nil
actor.equip(@parameters[1], @parameters[2])
end
# 继续
return true
end
#--------------------------------------------------------------------------
# ● 更改角色的名字
#--------------------------------------------------------------------------
def command_320
# 获取角色
actor = $game_actors[@parameters[0]]
# 更改名字
if actor != nil
actor.name = @parameters[1]
end
# 继续
return true
end
#--------------------------------------------------------------------------
# ● 更改角色的职业
#--------------------------------------------------------------------------
def command_321
# 获取角色
actor = $game_actors[@parameters[0]]
# 更改职业
if actor != nil
actor.class_id = @parameters[1]
end
# 继续
return true
end
#--------------------------------------------------------------------------
# ● 更改角色的图形
#--------------------------------------------------------------------------
def command_322
# 获取角色
actor = $game_actors[@parameters[0]]
# 更改图形
if actor != nil
actor.set_graphic(@parameters[1], @parameters[2],
@parameters[3], @parameters[4])
end
# 刷新角色
$game_player.refresh
# 继续
return true
end
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