| [Script] zoom batallasJue Abr 03, 2008 9:01 pm por jirachi wolas,good afternoon,este script es para que en las batallas tenga un zoom,osea,que se acerque al enemigo al atacar haciendo un efecto muy wapo,aqui esta el script que va como siempre encima de main:
SCRIPT(lo pongo en filefront porque aqui no m deja,dice que es largo el mensaje!!!??)
http://files.filefront.com/zoombatallastxt/;9943704;/fileinfo.html
- Código:
# Momo Camera Script
# Zoom battle effect
# Modificado por Soramaro para La Compañia Nodws
# 基本的に導入するだけで大丈夫です。
#
# 2005.5.18 バグ修正
# Arrow_Actor 修正
# self.enemy → self.actor
# アホなミスを犯してました。
#
# 2005.11.5 更新
# 設定項目を増やしました。
# いくつかの項目は、デフォルト(アクターがバトルフィールド上にいない)状態だと
# 変になるので、適切設定してください。
# (デフォ状態でtrueにするとマズイものには★をつけてます)
module MoMo_Camera
# カメラの移動にかけるフレーム数の初期値
MOVE_SPEED_INI = 8
# カメラのズームにかけるフレーム数の初期値
ZOOM_SPEED_INI = 8
# バトルバック引き伸ばし率追加値(0.0で引き伸ばし無し)
BATTLEBACK_ZOOM = 1.0
# アクターもカメラの影響を受けるようにする ★
# (★のついている項目を true にする場合などはこちらも true にして下さい)
CAMERA_UPDATE_ACTOR = false
# エネミー通常攻撃時、行動者を注視する
ACTIVE_LOOK_ENEMY_NOMAL_ATTACK = true
# エネミー防御時、行動者を注視する
ACTIVE_LOOK_ENEMY_GUARD = true
# エネミー逃走時、行動者を注視する
ACTIVE_LOOK_ENEMY_ESCAPE = true
# エネミースキル使用時、行動者を注視する
ACTIVE_LOOK_ENEMY_SKILL = true
# エネミー選択時、選択エネミーを注視する
ACTIVE_LOOK_ENEMY_SELECT = true
# エネミー通常攻撃時、対象者を注視する(対象がアクターの時) ★
TARGET_LOOK_ENEMY_NOMAL_ATTACK_TR_ACTOR = false
# エネミー通常攻撃時、対象者を注視する(対象がエネミーの時)
TARGET_LOOK_ENEMY_NOMAL_ATTACK_TR_ENEMY = true
# エネミースキル使用時、対象者を注視する(対象がアクターの時) ★
TARGET_LOOK_ENEMY_SKILL_TR_ACTOR = false
# エネミースキル使用時、対象者を注視する(対象がエネミーの時)
TARGET_LOOK_ENEMY_SKILL_TR_ENEMY = true
# エネミークリティカル発生時は問答無用で対象を注視する(対象がアクターの時) ★
CLITICAL_LOOK_ENEMY_TR_ACTOR = false
# エネミークリティカル発生時は問答無用で対象を注視する(対象がエネミーの時)
CLITICAL_LOOK_ENEMY_TR_ENEMY = true
# エネミークリティカル発生時のズーム倍率(ズームしたくない時は0.0を設定)
CRITICAL_ZOOM_ENEMY = 0.3
# アクター通常攻撃時、行動者を注視する ★
ACTIVE_LOOK_ACTOR_NOMAL_ATTACK = false
# アクター防御時、行動者を注視する ★
ACTIVE_LOOK_ACTOR_GUARD = false
# アクター逃走時、行動者を注視する ★
ACTIVE_LOOK_ACTOR_ESCAPE = false
# アクタースキル使用時、行動者を注視する ★
ACTIVE_LOOK_ACTOR_SKILL = false
# アクターアイテム使用時、行動者を注視する ★
ACTIVE_LOOK_ACTOR_ITEM = false
# アクター選択時、選択アクターを注視する ★
ACTIVE_LOOK_ACTOR_SELECT = false
# アクター通常攻撃時、対象者を注視する(対象がアクターの時) ★
TARGET_LOOK_ACTOR_NOMAL_ATTACK_TR_ACTOR = false
# アクター通常攻撃時、対象者を注視する(対象がエネミーの時)
TARGET_LOOK_ACTOR_NOMAL_ATTACK_TR_ENEMY = true
# アクタースキル使用時、対象者を注視する(対象がアクターの時) ★
TARGET_LOOK_ACTOR_SKILL_TR_ACTOR = false
# アクタースキル使用時、対象者を注視する(対象がエネミーの時)
TARGET_LOOK_ACTOR_SKILL_TR_ENEMY = true
# アクターアイテム使用時、対象者を注視する(対象がアクターの時) ★
TARGET_LOOK_ACTOR_ITEM_TR_ACTOR = false
# アクターアイテム使用時、対象者を注視する(対象がエネミーの時)
TARGET_LOOK_ACTOR_ITEM_TR_ENEMY = true
# アクタークリティカル発生時は問答無用で対象を注視する(対象がアクターの時) ★
CLITICAL_LOOK_ACTOR_TR_ACTOR = true
# アクタークリティカル発生時は問答無用で対象を注視する(対象がエネミーの時)
CLITICAL_LOOK_ACTOR_TR_ENEMY = true
# アクタークリティカル発生時のズーム倍率(ズームしたくない時は0.0を設定)
CRITICAL_ZOOM_ACTOR = 0.3
# エネミースリップダメージ時に注視する
LOOK_ENEMY_SLIP_DAMAGE = true
# アクタースリップダメージ時に注視する ★
LOOK_ACTOR_SLIP_DAMAGE = false
# コマンド入力時に、アクターを注視 ★
LOOK_ACTOR_COMMAND_INPUT = false
# 行動終了毎にカメラをセンタリング
EACH_ACTION_CENTERING = true
# 全体攻撃時のズーム率
ALL_ATTACK_ZOOM = 0.6
end
class Battle_Camera
attr_accessor :x
attr_accessor :y
attr_accessor :zoom
attr_accessor :new_x
attr_accessor :new_y
attr_accessor :new_zoom
def initialize
@x = 320
@y = 160
@zoom = 1.0
@new_x = @x
@new_y = @y
@dis_x = 0
@dis_y = 0
@dis_zoom = 0.0
@new_zoom = @zoom
@move_speed = MoMo_Camera::MOVE_SPEED_INI
@zoom_speed = MoMo_Camera::ZOOM_SPEED_INI
end
# 新しい移動先設定
def new_x=(newx)
@new_x = newx
@dis_x = (@x - @new_x).abs
end
def new_y=(newy)
@new_y = newy
@dis_y = (@y - @new_y).abs
end
def new_zoom=(newz)
@new_zoom = newz
@dis_zoom = (@zoom - @new_zoom).abs
end
# カメラセット
def set(x, y, zoom=nil, speed=nil)
unless speed.nil?
@move_speed = speed
@zoom_speed = speed
end
self.new_x = x
self.new_y = y
self.new_zoom = zoom unless zoom.nil?
end
# カメラを真ん中に
def center(zoom=1.0)
self.new_x = 320
self.new_y = 160
self.new_zoom = zoom
end
# バトラー注視
def battler_look(battler)
hei = get_battler_height(battler)
zoom = [160.0 / hei, 0.8].max
self.new_zoom = zoom
self.new_x = battler.screen_x
self.new_y = (battler.screen_y - hei / 2 * [[@new_zoom, 1.0].max, 1.5].min).truncate
end
# バトラーの計算色々
def battler_x_plus(battler)
dis = battler.screen_x - @x
val = dis * (@zoom - 1.0)
return val
end
def pos_battler_x(battler)
return battler.screen_x - (@x - 320)
end
def battler_x(battler)
return pos_battler_x(battler) + battler_x_plus(battler)
end
def battler_y_plus(battler)
dis = battler.screen_y - @y
val = dis * (@zoom - 1.0)
return val
end
def pos_battler_y(battler)
return battler.screen_y - (@y - 160)
end
def battler_y(battler)
return pos_battler_y(battler) + battler_y_plus(battler)
end
# 更新
def update
if @x != @new_x
if @new_x - @x > 0
@x = [@x + move_speed_x, @new_x].min
else
@x = [@x - move_speed_x, @new_x].max
end
end
if @y != @new_y
if @new_y - @y > 0
@y = [@y + move_speed_y, @new_y].min
else
@y = [@y - move_speed_y, @new_y].max
end
end
if @zoom != @new_zoom
if @new_zoom - @zoom > 0
@zoom = [@zoom + zoom_speed, @new_zoom].min
else
@zoom = [@zoom - zoom_speed, @new_zoom].max
end
end
end
# 移動距離計算
def move_speed_x
return [(@dis_x / @move_speed).to_i, 1].max
end
def move_speed_y
return [(@dis_y / @move_speed).to_i, 1].max
end
# ズーム倍率計算
def zoom_speed
return [(@dis_zoom / @zoom_speed), 0.01].max
end
def get_battler_height(battler)
bammy = get_battler_bmp(battler)
return bammy.height
end
def get_battler_bmp(battler)
return RPG::Cache.battler(battler.battler_name, battler.battler_hue)
end
def move?
return (@x != @new_x or @y != @new_y or @zoom != @new_zoom)
end
end
continuo en otro post por que no cabe todo el script.Comentarios: 4 | ¿Quién está en línea ? En total hay 1 usuario en línea: 0 Registrados, 0 Ocultos y 1 Huésped Usuarios registrados: Ninguno [ Ver toda la lista ] La mayor cantidad de usuarios en línea fue 4 el Vie Mar 14, 2008 7:04 pm. Estadísticas Tenemos 23 usuarios registrados. El último usuario registrado es larita. Nuestros usuarios han publicado un total de 644 mensajes. en 182 argumentos. |