赞 | 3 |
VIP | 0 |
好人卡 | 0 |
积分 | 2 |
经验 | 45777 |
最后登录 | 2018-5-25 |
在线时间 | 248 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 199
- 在线时间
- 248 小时
- 注册时间
- 2012-4-29
- 帖子
- 386
|
- #战斗时用箭头指定敌人
- #==============================================================================
- # +++ MOG - Battle Cursor (1.0) +++
- #==============================================================================
- # By Moghunter
- # [url]http://www.atelier-rgss.com/[/url]
- #==============================================================================
- # Sistema de cursor animado de batalha nos sprites dos battlers.
- #==============================================================================
- # Arquivo necessário. (Graphics/System)
- #
- # Battle_Cursor.png
- #
- #==============================================================================
-
- #==============================================================================
- # ■ CURSOR SETTING
- #==============================================================================
- module MOG_BATTLE_CURSOR
- #Definição da posição do cursor em relação ao alvo.
- CURSOR_POSITION = [-20, -16]
- #Definição da posição do nome do alvo.
- CURSOR_NAME_POSITION = [-20, 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
-
- $mog_rgss3_battle_cursor = true
复制代码 弄一个命名为“Battle_Cursor”放在system文件夹 |
评分
-
查看全部评分
|