使用后在得到新道具,或者使用道具时,有时候(只是有时候)会报stack level too deep错误。
这是怎么回事呢?我搜了搜,大大们似乎说这个报错是内存释放问题,我不太明白。不知有没有朋友也用这个脚本呢?怎么才能尽量避免这个问题呢?
(又人点评后回帖,应该不算连贴吧?)
我确实用了个怪物图鉴的脚本,但是怎么更改呢?
class Game_Party
attr_accessor :item_count
attr_accessor :weapon_count
attr_accessor :armor_count
alias item_book_info_initialize initialize
def initialize
item_book_info_initialize
@item_count = {}
@weapon_count = {}
@armor_count = {}
end
alias item_book_gain_item gain_item
def gain_item(item_id, n)
add_item_count(item_id, 0) if n > 0
item_book_gain_item(item_id, n)
end
alias item_book_gain_weapon gain_weapon
def gain_weapon(item_id, n)
add_weapon_count(item_id, 0) if n > 0
item_book_gain_weapon(item_id, n)
end
alias item_book_gain_armor gain_armor
def gain_armor(item_id, n)
add_armor_count(item_id, 0) if n > 0
item_book_gain_armor(item_id, n)
end
def add_item_count(item_id, type = 0)
if type == -1
@item_count[item_id] = 0
else
@item_count[item_id] = 1
end
end
def add_weapon_count(weapon_id, type = 0)
if type == -1
@weapon_count[weapon_id] = 0
else
@weapon_count[weapon_id] = 1
end
end
def add_armor_count(armor_id, type = 0)
if type == -1
@armor_count[armor_id] = 0
else
@armor_count[armor_id] = 1
end
end
报错的时候脚本都提到了这里,是这里的问题吗? 作者: 六祈 时间: 2010-10-18 21:34 回复 pan2003abc 的帖子
还是烦请发上你的工程吧~这样比较容易解决【至少脚本部分】作者: pan2003abc 时间: 2010-10-18 21:56 本帖最后由 六祈 于 2010-10-19 01:14 编辑
报错的时候弹到这个地方……
def add_item_count(item_id, type = 0)
if type == -1
@item_count[item_id] = 0
else
@item_count[item_id] = 1
end
end
我查了查,那个怪物图鉴和他相似的也就是
def add_enemy_info(enemy_id, type = 0)
case type
when 0
if @enemy_info[enemy_id] == 2
return false
end
@enemy_info[enemy_id] = 1
when 1
@enemy_info[enemy_id] = 2
when -1
@enemy_info[enemy_id] = 0
end
end
实在不知道哪里的问题,而且不是说那个特定道具入手时报错而是随机的!
无语
盼望指点
主要是发生在新道具获得时,但是不明白为什么有时候使用道具也用这个问题
(找到那个脚本的链接了!) http://rpg.blue/web/htm/news191.htm作者: 九夜神尊 时间: 2010-10-18 23:08
你这样都能吓死人