发生NoMethodError,nil:NilClass 的未定义方法

问题描述 投票:0回答:2

首先,我知道它已经发布了,我已经看过大部分问题帖子,但我仍然不明白它是如何工作的。

所以我收到错误:

Script 'Terrain Tag Detection ~' line 115: NoMethodError occurred.

undefined method '[]' for nil:NilClass

我的“地形标记检测 ~”脚本如下所示:http://pastebin.com/PUypTwJs(无法正确粘贴代码,是的,它是关于 Pokemon 的)。

ruby methods null
2个回答
0
投票

这意味着您的

@map = WildPokemon.fetch($game_map.map_id)
方法不会返回值,并且您想要访问 @map 变量。

您可以在代码中添加检查,如下所示:

@map = WildPokemon.fetch($game_map.map_id)
if @map.present?
    @enemy = @map[0][rand(@map[0].size)]
    @level = @map[1][rand(@map[1].size)]
end

0
投票

我有一台 MacBook Pro M1,我在上面下载了 Pokémon Myth,但在一些战斗中我收到此错误,有人知道如何解决它吗?
`[2024 年 11 月 24 日星期日 14:56:06 中欧标准时间] [精灵宝可梦基础版18.1] 【Phantombass AI 4.0版本】 例外:挂断 消息:事件 3(坐标 14,22)、地图 112(Infusion Inc. 总部)内的脚本错误: 例外:挂断 消息:脚本花费的时间太长。游戏将重新开始。

***完整脚本: pbTrainerBattle(:LILY,"莉莉",nil,nil,25)

回溯: 翻译:197:in

pbExecuteScript' PBDebug:9:in 
logonerr' MidBattle2:106:在
pbBattleLoop' MidBattle2:86:in 
循环中' MidBattle2:125:在
pbBattleLoop' Battle_StartAndEnd:301:in 
pbStartBattleCore' Battle_StartAndEnd:259:在
pbStartBattle' PField_Battles:421:in 
pbTrainerBattleCore' PField_Battles:420:在
pbSceneStandby' PField_Battles:422:in 
pbTrainerBattleCore'

回溯: 翻译:197:in

pbExecuteScript' PBDebug:9:in 
logonerr' MidBattle2:106:在
pbBattleLoop' MidBattle2:86:in 
循环中' MidBattle2:125:在
pbBattleLoop' Battle_StartAndEnd:301:in 
pbStartBattleCore' Battle_StartAndEnd:259:在
pbStartBattle' PField_Battles:421:in 
pbTrainerBattleCore' PField_Battles:420:在
pbSceneStandby' PField_Battles:422:in 
pbTrainerBattleCore'`

© www.soinside.com 2019 - 2024. All rights reserved.