| 
 
| 赞 | 0 |  
| VIP | 0 |  
| 好人卡 | 0 |  
| 积分 | 1 |  
| 经验 | 8021 |  
| 最后登录 | 2016-9-13 |  
| 在线时间 | 521 小时 |  
 Lv1.梦旅人 
	梦石0 星屑50 在线时间521 小时注册时间2011-12-7帖子305 | 
| 
本帖最后由 Ceopal 于 2013-6-4 14:13 编辑
x
加入我们,或者,欢迎回来。您需要 登录 才可以下载或查看,没有帐号?注册会员  
 SystemStackError
 
 stack level too deep
 
 这个脚本引发的,怎么改,可以解决吗?
 
 
 #==============================================================================
 # ■ CURSOR SETTING
 #==============================================================================
 module MOG_BATTLE_CURSOR
 #Definição da posição do cursor em relação ao alvo.
 CURSOR_POSITION = [-45, -16]
 #Definição da posição do nome do alvo.
 CURSOR_NAME_POSITION = [-10, 35]
 #Ativar efeito deslizar.
 CURSOR_SLIDE_EFFECT = true
 #Ativar animação de levitação.
 CURSOR_FLOAT_EFFECT = true
 #Definição da prioridade do cursor.
 CURSOR_Z = 0
 end
 
 #==============================================================================
 # ■ Game Temp
 #==============================================================================
 class Game_Temp
 
 attr_accessor :battle_cursor
 
 #--------------------------------------------------------------------------
 # ● Initialize
 #--------------------------------------------------------------------------
 alias mog_battle_cursor_initialize initialize
 def initialize
 @battle_cursor = [0,0,false,""]
 mog_battle_cursor_initialize
 end
 
 end
 
 #==============================================================================
 # ■ Spriteset Battle Cursor
 #==============================================================================
 class Sprite_Battle_Cursor < Sprite
 include MOG_BATTLE_CURSOR
 
 #--------------------------------------------------------------------------
 # ● Initialize
 #--------------------------------------------------------------------------
 def initialize(viewport = nil)
 super(viewport)
 $game_temp.battle_cursor = [0,0,false,""]
 self.bitmap = Cache.system("Battle_Cursor")
 self.visible = $game_temp.battle_cursor[2]
 self.z = CURSOR_Z
 self.z = 10 if $mog_rgss3_battle_hud != nil
 @cursor_name = Sprite.new
 @cursor_name.bitmap = Bitmap.new(120,32)
 @cursor_name.z = self.z + 1
 @cursor_name.bitmap.font.size = 16
 @cursor_name_enemy = $game_temp.battle_cursor[3]
 @cursor_name_position = [CURSOR_NAME_POSITION[0] ,CURSOR_NAME_POSITION[1]]
 @cursor_float = [0,0]
 refresh_cursor_name
 end
 
 #--------------------------------------------------------------------------
 # ● Dispose Sprite
 #--------------------------------------------------------------------------
 def dispose
 super
 dispose_sprite_cursor
 end
 
 #--------------------------------------------------------------------------
 # ● Dispose Sprite Cursor
 #--------------------------------------------------------------------------
 def dispose_sprite_cursor
 if @cursor_name != nil
 @cursor_name.bitmap.dispose
 @cursor_name.dispose
 end
 self.bitmap.dispose
 end
 
 #--------------------------------------------------------------------------
 # ● Refresh Cursor Name
 #--------------------------------------------------------------------------
 def refresh_cursor_name
 @cursor_name_enemy = $game_temp.battle_cursor[3]
 @cursor_name.bitmap.clear
 @cursor_name.bitmap.draw_text(0,0,120,32,@cursor_name_enemy.to_s,1)
 end
 
 #--------------------------------------------------------------------------
 # ● Update
 #--------------------------------------------------------------------------
 def update
 super
 update_sprite_cursor
 end
 
 #--------------------------------------------------------------------------
 # ● Update Sprite Cursor
 #--------------------------------------------------------------------------
 def update_sprite_cursor
 update_visible
 update_cursor_float_effect
 execute_move(0,self.x,$game_temp.battle_cursor[0])
 execute_move(1,self.y,$game_temp.battle_cursor[1] + @cursor_float[1])
 update_sprite_name
 end
 
 #--------------------------------------------------------------------------
 # ● Update Visible
 #--------------------------------------------------------------------------
 def update_visible
 self.visible = $game_temp.battle_cursor[2]
 if !self.visible
 self.x = -64
 self.y = -64
 end
 end
 
 #--------------------------------------------------------------------------
 # ● Update Sprite Name
 #--------------------------------------------------------------------------
 def update_sprite_name
 return if @cursor_name == nil
 refresh_cursor_name  if @cursor_name_enemy != $game_temp.battle_cursor[3]
 @cursor_name.x = self.x + @cursor_name_position[0]
 @cursor_name.y = self.y + @cursor_name_position[1]
 @cursor_name.opacity = self.opacity
 @cursor_name.visible = self.visible
 end
 
 #--------------------------------------------------------------------------
 # ● Update Cursor Float Effect
 #--------------------------------------------------------------------------
 def update_cursor_float_effect
 return if !CURSOR_FLOAT_EFFECT
 @cursor_float[0] += 1
 case @cursor_float[0]
 when 0..20
 @cursor_float[1] += 1
 when 21..40
 @cursor_float[1]  -= 1
 else
 @cursor_float[0] = 0
 @cursor_float[1] = 0
 end
 end
 
 #--------------------------------------------------------------------------
 # ● Execute Move
 #--------------------------------------------------------------------------
 def execute_move(type,cp,np)
 sp = 5 + ((cp - np).abs / 5)
 if cp > np
 cp -= sp
 cp = np if cp < np
 elsif cp < np
 cp += sp
 cp = np if cp > np
 end
 self.x = cp if type == 0
 self.y = cp if type == 1
 end
 
 end
 
 #==============================================================================
 # ■ Spriteset Battle
 #==============================================================================
 class Spriteset_Battle
 
 #--------------------------------------------------------------------------
 # ● Initialize
 #--------------------------------------------------------------------------
 alias mog_battle_cursor_initialize initialize
 def initialize
 mog_battle_cursor_initialize
 create_cursor
 end
 
 #--------------------------------------------------------------------------
 # ● Dispose
 #--------------------------------------------------------------------------
 alias mog_battle_cursor_dispose dispose
 def dispose
 mog_battle_cursor_dispose
 dispose_cursor
 end
 
 #--------------------------------------------------------------------------
 # ● Update
 #--------------------------------------------------------------------------
 alias mog_battle_cursor_update update
 def update
 mog_battle_cursor_update
 update_battle_cursor
 end
 
 #--------------------------------------------------------------------------
 # ● Create_Cursor
 #--------------------------------------------------------------------------
 def create_cursor
 return if @battle_cursor != nil
 @battle_cursor = Sprite_Battle_Cursor.new
 end
 
 #--------------------------------------------------------------------------
 # ● Dispose Cursor
 #--------------------------------------------------------------------------
 def dispose_cursor
 return if @battle_cursor == nil
 @battle_cursor.dispose
 end
 
 #--------------------------------------------------------------------------
 # ● Update Battle Cursor
 #--------------------------------------------------------------------------
 def update_battle_cursor
 return if @battle_cursor == nil
 @battle_cursor.update
 end
 
 end
 
 #==============================================================================
 # ■ Battle Cursor Index
 #==============================================================================
 module Battle_Cursor_index
 include MOG_BATTLE_CURSOR
 #--------------------------------------------------------------------------
 # ● Check Index Limit
 #--------------------------------------------------------------------------
 def check_index_limit
 self.index = 0 if self.index >= item_max
 self.index = (item_max - 1) if self.index < 0
 end
 
 #--------------------------------------------------------------------------
 # ● Set Cursor Position Enemy
 #--------------------------------------------------------------------------
 def set_cursor_position_enemy
 return if !self.active
 $game_temp.battle_cursor[0] = $game_troop.alive_members[self.index].screen_x + CURSOR_POSITION[0] rescue nil
 $game_temp.battle_cursor[1] = $game_troop.alive_members[self.index].screen_y + CURSOR_POSITION[1] rescue nil
 $game_temp.battle_cursor[3] = $game_troop.alive_members[self.index].name rescue nil
 $game_temp.battle_cursor = [0,0,false,0] if $game_temp.battle_cursor[0] == nil
 end
 
 #--------------------------------------------------------------------------
 # ● Set Cursor Position Actor
 #--------------------------------------------------------------------------
 def set_cursor_position_actor
 return if !self.active
 $game_temp.battle_cursor[0] = $game_party.members[self.index].screen_x + CURSOR_POSITION[0] rescue nil
 $game_temp.battle_cursor[1] = $game_party.members[self.index].screen_y + CURSOR_POSITION[1] rescue nil
 $game_temp.battle_cursor[3] = $game_party.members[self.index].name rescue nil
 $game_temp.battle_cursor = [0,0,false,0] if $game_temp.battle_cursor[0] == nil
 end
 
 #--------------------------------------------------------------------------
 # ● Process Cursor Move
 #--------------------------------------------------------------------------
 def process_cursor_move
 return unless cursor_movable?
 last_index = @index
 cursor_move_index(+1) if Input.repeat?(:DOWN)
 cursor_move_index(-1) if Input.repeat?(:UP)
 cursor_move_index(+1) if Input.repeat?(:RIGHT)
 cursor_move_index(-1) if Input.repeat?(:LEFT)
 if @index != last_index
 Sound.play_cursor
 end
 end
 
 #--------------------------------------------------------------------------
 # ● Process Cursor Move Index
 #--------------------------------------------------------------------------
 def cursor_move_index(value = 0)
 self.index += value
 check_index_limit
 end
 
 end
 
 #==============================================================================
 # ■ Window_BattleActor
 #==============================================================================
 class Window_BattleActor < Window_BattleStatus
 include Battle_Cursor_index
 
 #--------------------------------------------------------------------------
 # ● Update
 #--------------------------------------------------------------------------
 def update
 super
 set_cursor_position_actor
 end
 
 #--------------------------------------------------------------------------
 # ● Show
 #--------------------------------------------------------------------------
 alias mog_battle_cursor_show show
 def show
 if @info_viewport
 set_cursor_position_actor
 $game_temp.battle_cursor[2] = true
 end
 mog_battle_cursor_show
 end
 
 #--------------------------------------------------------------------------
 # ● Hide
 #--------------------------------------------------------------------------
 alias mog_battle_cursor_hide hide
 def hide
 if @info_viewport
 $game_temp.battle_cursor[2] = false
 end
 mog_battle_cursor_hide
 end
 
 end
 
 #==============================================================================
 # ■ Window_BattleEnemy
 #==============================================================================
 class Window_BattleEnemy < Window_Selectable
 include Battle_Cursor_index
 
 #--------------------------------------------------------------------------
 # ● Update
 #--------------------------------------------------------------------------
 def update
 super
 set_cursor_position_enemy
 end
 
 #--------------------------------------------------------------------------
 # ● Show
 #--------------------------------------------------------------------------
 alias mog_battle_cursor_show show
 def show
 if @info_viewport
 set_cursor_position_enemy
 $game_temp.battle_cursor[2] = true
 end
 mog_battle_cursor_show
 end
 
 #--------------------------------------------------------------------------
 # ● Hide
 #--------------------------------------------------------------------------
 alias mog_battle_cursor_hide hide
 def hide
 if @info_viewport
 $game_temp.battle_cursor[2] = false
 end
 mog_battle_cursor_hide
 end
 
 end
 | 
 |