查看: 2661|回复: 9

[結帖]stack level too deep

[复制链接]
david_ng223 该用户已被删除
发表于 2014-9-11 12:05:45 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2014-9-11 12:41:18 | 显示全部楼层
ruby有函数可以追踪一个全局变量,似乎是叫做 trace_var 来着,但我不建议这么做

我没看你具体的脚本。就你的问题而言,你可以用一个变量(实例变量或全局变量)保存 $abcdefg 的值,然后每帧判断一次这个保存的值是否和全局变量的值相等。

参考 Spriteset_Map 里面,在地图 ID 改变的时候会刷新所有 Character 的做法。
回复

使用道具 举报

梦石
1
星屑
23246
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2014-9-11 13:24:01 来自手机 | 显示全部楼层
你可以修改默认的变量类的赋值部分语句,当1号变量的值发生改变时执行这句代码。

评分

参与人数 1星屑 +6 收起 理由
moy + 6 我很赞同

查看全部评分

回复

使用道具 举报

david_ng223 该用户已被删除
 楼主| 发表于 2014-9-11 15:02:26 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2014-9-11 16:06:47 | 显示全部楼层
请确认一下,你在改变200号变量的值时,调用了 $game_player.refresh

因为这个方法并不是每一帧都会执行的

点评

moy
你在refresh里调用自身当然会堆栈过深。  发表于 2014-9-11 18:46
见2L  发表于 2014-9-11 16:37
那么......在哪地方調用才對??  发表于 2014-9-11 16:32
……你调用的地方不对。姿势参见2L  发表于 2014-9-11 16:11
事件裡調用$game_player.refresh沒問題, 腳本編輯器裡調用$game_player.refresh會報錯  发表于 2014-9-11 16:09
回复

使用道具 举报

无节操

梦石
0
星屑
608
在线时间
795 小时
注册时间
2009-2-6
回帖
3910

开拓者贵宾

发表于 2014-9-11 18:45:24 | 显示全部楼层
[pre lang="ruby" line="1"]class Game_Variables
  #--------------------------------------------------------------------------
  # ● 设置变量
  #--------------------------------------------------------------------------
  def []=(variable_id, value)
    @data[variable_id] = value
    on_change(variable_id)
  end
  #--------------------------------------------------------------------------
  # ● 设置变量时的处理
  #--------------------------------------------------------------------------
  def on_change(variable_id)
    $game_map.need_refresh = true
    $game_player.refresh if variable_id == 200
  end
end[/pre]

点评

我把你這一段腳本插在1L腳本的class Game_Player和class Game_Follower < Game_Character之間,請問我有沒有插錯位置?  发表于 2014-9-11 19:37

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 认可答案

查看全部评分

Brandnew day, Brandnew Life
                             规 实在  中
暂为素材区版主,版其  琢磨
应援一下~
RPG制作大师授权素材推广计划
回复

使用道具 举报

david_ng223 该用户已被删除
 楼主| 发表于 2014-9-11 22:17:34 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

卑微的梦

梦石
0
星屑
547
在线时间
820 小时
注册时间
2013-2-23
回帖
1121

短篇九勇士组季军

发表于 2014-9-11 23:27:25 来自手机 | 显示全部楼层
D君不上q了吗……

点评

沒有人和我qq,所以我也不上了  发表于 2014-9-11 23:56
回复

使用道具 举报

百合控

梦石
0
星屑
6548
在线时间
1275 小时
注册时间
2013-8-21
回帖
3522

开拓者

发表于 2014-9-14 16:12:21 | 显示全部楼层
  1. # 插在Main以上就行了
  2. class Game_Variables
  3.   alias :set_var_20140914 :[]=
  4.   def []=(variable_id, value)
  5.     $game_player.refresh if variable_id == 200 # 你的游戏变量
  6.     set_var_20140914 variable_id, value
  7.   end
  8. end
复制代码

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 我很赞同

查看全部评分

萌新瑟瑟发抖
看到我请叫我去干活
回复

使用道具 举报

david_ng223 该用户已被删除
 楼主| 发表于 2014-9-14 16:38:08 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部