标题: 脚本出错误了,怎么回事,应该放到哪啊? [打印本页] 作者: 50568358 时间: 2008-2-4 01:24 标题: 脚本出错误了,怎么回事,应该放到哪啊? 我靠的老外的横版战斗脚本,放到我的脚本空白页上,为什么出现错误
#==============================================================================
# ■ VX-RGSS2-6 サイドビュー戦闘[MotionCtrl] [Ver.1.0.1] by Claimh
#------------------------------------------------------------------------------
# English Translation By: Elemental Crisis [http://www.rpgcrisis.net]
#------------------------------------------------------------------------------
# This script carries out the movement controls of the actors.
#==============================================================================
#==============================================================================
# ■ Scene_Battle
#==============================================================================
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# ● Battle Start Process
#--------------------------------------------------------------------------
alias process_battle_start_sideview process_battle_start
def process_battle_start
for battler in $game_party.members + $game_troop.members
battler.move_mode = SideView::M_MODE_WAIT
end
process_battle_start_sideview
end
#--------------------------------------------------------------------------
# ● Victory Process
#--------------------------------------------------------------------------
alias process_victory_sideview process_victory
def process_victory
for actor in $game_party.members
actor.move_mode = SideView::M_MODE_WIN
end
process_victory_sideview
end
#--------------------------------------------------------------------------
# ● Wait Until Motion Control Is Finished
#--------------------------------------------------------------------------
def wait_for_motion
while @active_battler.motion_stop
update_basic
end
end
#--------------------------------------------------------------------------
# ● Execute Combat Operations: Attack [Redefinition]
#--------------------------------------------------------------------------
def execute_action_attack
text = sprintf(Vocab::DoAttack, @active_battler.name)
@message_window.add_instant_text(text)
targets = @active_battler.action.make_targets
#---Enemy attack sound reproduced.
if @active_battler.is_a?(Game_Enemy)
Sound.play_enemy_attack
wait(15, true)
end
#--- Proximity (Going)
SideView.set_target_point(@active_battler, targets[0])
@active_battler.move_mode = SideView::M_MODE_ATK1
@active_battler.motion_stop = true
wait_for_motion
#--- Attack
wait(5)
@active_battler.move_mode = SideView::M_MODE_ATK2
#---
display_attack_animation(targets)
wait(20)
for target in targets
target.attack_effect(@active_battler)
display_action_effects(target)
end
#--- Proximity (Return)
@active_battler.move_mode = SideView::M_MODE_ATK3
@active_battler.motion_stop = true
wait_for_motion
#---Wait
for target in targets
target.move_mode = SideView::M_MODE_WAIT
end
@active_battler.move_mode = SideView::M_MODE_WAIT
#---
end
#--------------------------------------------------------------------------
# ● Execute Combat Operations: Skill [Redefinition]
#--------------------------------------------------------------------------
def execute_action_skill
skill = @active_battler.action.skill
text = @active_battler.name + skill.message1
@message_window.add_instant_text(text)
unless skill.message2.empty?
wait(10)
@message_window.add_instant_text(skill.message2)
end
#--- Enemy attack sound reproduced.
if @active_battler.is_a?(Game_Enemy)
Sound.play_enemy_attack
wait(15, true)
end
#--- Long distance attack.
@active_battler.move_mode = SideView::M_MODE_MAGI
#---
targets = @active_battler.action.make_targets
display_animation(targets, skill.animation_id)
@active_battler.mp -= @active_battler.calc_mp_cost(skill)
$game_temp.common_event_id = skill.common_event_id
for target in targets
target.skill_effect(@active_battler, skill)
display_action_effects(target, skill)
end
#---Wait
for target in targets
target.move_mode = SideView::M_MODE_WAIT
end
@active_battler.move_mode = SideView::M_MODE_WAIT
#---
end
#--------------------------------------------------------------------------
# Execute Combat Operations: Item [Redefinition]
#--------------------------------------------------------------------------
def execute_action_item
item = @active_battler.action.item
text = sprintf(Vocab::UseItem, @active_battler.name, item.name)
@message_window.add_instant_text(text)
#--- Enemy attack sound reproduced.
if @active_battler.is_a?(Game_Enemy)
Sound.play_enemy_attack
wait(15, true)
end
#--- Long distance attack
@active_battler.move_mode = SideView::M_MODE_MAGI
#---
targets = @active_battler.action.make_targets
display_animation(targets, item.animation_id)
$game_party.consume_item(item)
$game_temp.common_event_id = item.common_event_id
for target in targets
target.item_effect(@active_battler, item)
display_action_effects(target, item)
end
#---Wait
for target in targets
target.move_mode = SideView::M_MODE_WAIT
end
@active_battler.move_mode = SideView::M_MODE_WAIT
#---
end
#--------------------------------------------------------------------------
# ● Attack Animation Display [Redefinition]
# Targets : Object's Arrangement
#--------------------------------------------------------------------------
# 【Changed part】
# Enemy sound effect is changed so it can be used in each phase of operation.
# It changes so that the attack animation of an enemy can be displayed.
#--------------------------------------------------------------------------
def display_attack_animation(targets)
display_normal_animation(targets, @active_battler.atk_animation_id, false)
display_normal_animation(targets, @active_battler.atk_animation_id2, true)
wait_for_animation
end
#--------------------------------------------------------------------------
# ● HP Damage display [Redefinition]
# Target : Candidate
# object : Skill or item
#--------------------------------------------------------------------------
def display_hp_damage(target, obj = nil)
if target.hp_damage == 0 # No damage
return if obj != nil and obj.damage_to_mp
return if obj != nil and obj.base_damage == 0
fmt = target.actor? ? Vocab::ActorNoDamage : Vocab::EnemyNoDamage
text = sprintf(fmt, target.name)
elsif target.absorbed # Absorption
fmt = target.actor? ? Vocab::ActorDrain : Vocab::EnemyDrain
text = sprintf(fmt, target.name, Vocab::hp, target.hp_damage)
elsif target.hp_damage > 0 # Damage
if target.actor?
text = sprintf(Vocab::ActorDamage, target.name, target.hp_damage)
Sound.play_actor_damage
$game_troop.screen.start_shake(5, 5, 10)
target.blink = true # Only adds here
else
text = sprintf(Vocab::EnemyDamage, target.name, target.hp_damage)
Sound.play_enemy_damage
target.blink = true
end
else # Recovery
fmt = target.actor? ? Vocab::ActorRecovery : Vocab::EnemyRecovery
text = sprintf(fmt, target.name, Vocab::hp, -target.hp_damage)
Sound.play_recovery
end
@message_window.add_instant_text(text)
wait(30)
end
end
#==============================================================================
# ■ VX-RGSS2-6 サイドビュー戦闘[MotionExe] [Ver.1.0.1] by Claimh
#------------------------------------------------------------------------------
# English Translation By: Elemental Crisis [http://www.rpgcrisis.net]
#------------------------------------------------------------------------------
# This script executes movement controls of the actors.
#==============================================================================