這是人物升級素質顯示視窗,錯誤發生在F12重啟後
在魔劍工鋪找到了解決方式,原文連結
--------------------------------------------------------------------------------------------------------------------------------------
stack level too deep
可能是無限循環呼叫同個方法時發生
通常發生這個情況比較多都是用保留字「alias」重定義內部的方法名稱後
按下F12鍵重新開始時觸發的情況較多,由於F12重新只重置腳本編輯器定義的內容
內部已經被修改的定義不會重置(全局變量也不重置),導致執行「alias」2次而發生!!
要避免這種事情的發生,可以善用全局變量也不重置的特性,用條件分歧判斷是否執行
(這也是為什麼有些腳本有F12除錯標誌的原因)
class Sword
def a
a
end
end
Sword.new.aclass Array # 數組類(內部)
alias sword_clear clear
def clear
sword_clear # 按下F12執行這個方法後會出錯
end
end
解決方法
class Array
alias sword_clear clear if $ass == nil # 如果$ass是nil(默認值)就執行
def clear
sword_clear
end
end
$ass = true # 將$ass改為true,防止F12重新時又再次被「alias」重定義
--------------------------------------------------------------------------------------------------------------------------------