Project1
标题:
脚本发生RangeError怎么解决
[打印本页]
作者:
赛露休斯
时间:
2009-7-17 03:33
标题:
脚本发生RangeError怎么解决
脚本发生RangeError
float -1.#IND out of range of integer
F1上说“在进行超出范围的数值变换(从 Bignum 变为 Fixnum)等操作时就会引发该异常。”
不知是怎么一回事?
怎么解决?
作者:
蓝の星辰
时间:
2009-7-17 09:29
提示:
作者被禁止或删除 内容自动屏蔽
作者:
玄月
时间:
2009-7-17 09:40
发现和尚 - - 是dbshy么
作者:
霜冻之狼
时间:
2009-7-17 10:11
2#
蓝の星辰
大师你又来了....
作者:
IamI
时间:
2009-7-17 10:12
伸手,脚本拿来- -
作者:
赛露休斯
时间:
2009-7-17 18:20
#出错点是Game_Map里的“tile_id = data[x, y, i]”这一句,可能是由于一些外挂脚本导致,错误的发生好像还带有一些随机性,有没有办法避免掉这个错误,使之不报错
def bush?(x, y)
if @map_id != 0
for i in [2, 1, 0]
tile_id = data[x, y, i]
if tile_id == nil
return false
elsif @passages[tile_id] & 0x40 == 0x40
return true
end
end
end
return false
end
复制代码
作者:
猫哥哥
时间:
2009-7-17 18:57
本帖最后由 猫哥哥 于 2009-7-17 19:09 编辑
这一段脚本看名字是检测图块繁茂(bush值)的,比默认脚本多出来的部分似乎是在迭代每个图块数据里的值,检查是否有空值产生。然后根据这里诡异地多出来的0和2设置通行(原脚本是@map.data[x,y,1])。
ps.第三次编辑帖子
实在是……很明显,我想问楼主,data这个变量是哪里钻出来的?
作者:
赛露休斯
时间:
2009-7-17 19:24
最好还是让这句“tile_id = data[x, y, i]”无错时执行,有错时忽略
另外,data这个变量也是默认Game_Map里的
获取地图数据
def data
return @map.data
end
复制代码
作者:
猫哥哥
时间:
2009-7-17 19:45
sorry,我看成VX的脚本了。
那什么,楼主你贴出来的这一段脚本和默认脚本一模一样 = =
作者:
蓝の星辰
时间:
2009-7-17 20:30
提示:
作者被禁止或删除 内容自动屏蔽
作者:
ONEWateR
时间:
2009-7-17 21:13
无错时执行,有错时忽略?
tile_id = data[x, y, i] if @map.data != nil and x != nil and y != nil
这样够保险 = =~
ps:因为这只是局部,难以顾全或者说无法顾全大局。
作者:
赛露休斯
时间:
2009-7-18 18:52
这个问题已经想到解决方法了
版主帮忙自己判断认可下吧,虽然上面一个方法也没用到
(那个认可专贴我为什么找不到了?)
作者:
ONEWateR
时间:
2009-7-18 20:21
认可贴……果然……我还是觉得不置顶较好……很容易被54
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1