2016-07-08 598 views
0

我对编码非常陌生。我最近一直在使用RPG Maker XP,并且能够解决我通过谷歌搜索需要完成的大多数问题,但是我似乎遇到了一些我找不到答案的问题。Script'Game_Actor'line 335(由于缺少代码,无法在RPG Maker XP中打开菜单?)

我已经删除了数据库中的一个类(不涉及脚本编辑),因此我可以完全重写它,当我完成并打开游戏时,我发现无法打开菜单并在游戏关闭之后关闭显示此错误消息。

Script'Game_Actor'line 335:NoMethodError occured。无法找到nil:NilClass的 方法'名称'。

我看着线335“Game_Actor”窗下,看到这一点:

return $data_classes[@class_id].name 

正如我已经说过了,我知道很少的代码,所以我不能真正看到什么错有了这个。我没有重写或编辑任何实际的脚本,所以我不知道我是如何影响脚本的。 (我没有触及任何脚本原则,我不知道如何解决这个问题。)

我已经搜索了答案,但不幸的是大多数人似乎在使用更高版本的RPG Maker,如Ace或MV,以及它们与XP的不同之处在于答案与此问题无关。

如果任何人都可以指出我正确的方向,或告诉我如何解决这个问题,我会非常感激。我在这个项目上非常努力工作,我讨厌不得不放弃它并重新开始。

再次感谢!

+0

我们需要看到整个游戏,如果它很长,请在Github上发布主文件。 – JohnDoeYo

回答

0

Basicaly错误消息是最高审计机关是$data_classes[@class_id]nil(这就是为什么$data_classes[@class_id].name不可用),所以你必须检查它变得nil和原因。如果没有向我们展示更多应用程序代码(大概是完整的代码),恐怕不可能有进一步的帮助。

0

代码仍可能尝试访问您在数据库中删除的“类”。我把它删除了一个数据库表,对吗?

错误Unable to find method 'name' for nil:NilClass.意味着代码尝试访问方法name的变量实际上是nil。代码期望它包含一个对象。

从它的外观来看,$data_classes[@class_id]是一个填充了'classes'定义的散列。它在某个早期阶段被填充,并且由于您删除了一个类,因此无法找到它的定义。

重要的是,它仍然知道它需要你删除的类。这意味着在这个哈希初始化发生之前,这个类在其他地方被提到。它可能在一个配置文件或另一个'类'中。如果没有看到完整的代码,就很难确切地指出它的位置。

如果找不到这个位置,请尝试恢复您删除的类,而不是完全删除它,只是删除它不需要的任何东西。这种方式本身仍然存在,并且这个错误不会发生。然后,您将能够在该课程中添加您想要的内容。