赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 550 |
最后登录 | 2014-8-15 |
在线时间 | 1 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 1 小时
- 注册时间
- 2007-7-5
- 帖子
- 44
|
我找了个网站翻译了以下哪个脚本中的日语,现在你个我举个例子吧
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
# 特技组合 源自日本
# 如(十字斩+扫荡=十字斩扫荡)
# 我方的特技可以组合。
# 条件基本如下
# 1.施展组合技能的角色的技能中间敌人没攻击.
# 2.攻击同一个敌人
#
# 组合成功的话,伤害增加.
# 伤害率:
# 不组合一律100%
# 每多组合1人增加25%
#===============================================
module Combo_Skill_Config
# 组合技威力(%)
COMBO_BONUS = 25
# 全体攻撃的组合值,=0表示无效
ALL_ATTCK_SKILL_MAX = 1
# 组合技能动画编号
COMBO_ANIME_ID = 101
# 基本前组合成功率
BASE_BEFORE_REVISION = 100
# 基本後组合成功率
BASE_AFTER_REVISION = 100
# ダメージ一括表示するかどうか(?)
SHOW_DAMAGE_LUMP = true
# 显示组合名称
COMBO_NAME_SHOW = true
# 特级名段落最小字数
# 这个数字以下的文字数的技艺就那样被联合编入。
COMBO_NAME_SPLIT = 3
end
class Scene_Battle
include Combo_Skill_Config
#--------------------------------------------------------------------------
# ● 主要阶段开始|
#--------------------------------------------------------------------------
alias scene_battle_skill_combo_start_phase4 start_phase4
def start_phase4
@combo_on = false
@combo_bese_target = nil
@combo_finish = false
@combo_count = 0
@combo_name = ""
scene_battle_skill_combo_start_phase4
end
#--------------------------------------------------------------------------
# ● 框架更新(主要阶段)
#--------------------------------------------------------------------------
alias scene_battle_skill_combo_update_phase4 update_phase4
def update_phase4
if @combo_effect_start
update_phase4_combo_effect
return
end
scene_battle_skill_combo_update_phase4
end
#--------------------------------------------------------------------------
# ● 框架更新(主要阶段 阶段 2: 动作开始)
#--------------------------------------------------------------------------
alias scene_battle_skill_combo_update_phase4_step2 update_phase4_step2
def update_phase4_step2
# 如果不是强制动作
unless @active_battler.current_action.forcing
# 规定通常攻击 [敌人]是[通常攻击伙伴的]情况
if @active_battler.restriction == 2 or @active_battler.restriction == 3
# 动作设定攻击
@active_battler.current_action.kind = 0
@active_battler.current_action.basic = 0
end
# 规定不能是 [行动的]情况
if @active_battler.restriction == 4
# 清洁动作强制对象的butler
$game_temp.forcing_battler = nil
# 阶段 1 转移
@phase4_step = 1
return
end
end
# 联合判断
# 未行动butler不是0,如果不是联合的进行中联合判断
if @action_battlers.size != 0 and @combo_on == false
# 行动者联合可能或者判断
if combo_ok?(@active_battler)
@combo_skill = []
@combo_skill.push(@active_battler.current_action.skill_id)
@combo_member = []
@combo_member.push(@active_battler)
last_battler = @active_battler
# 继续的朋友的联合判断
for i in 0...@action_battlers.size
next_battler = @action_battlers
break if combo_ok?(next_battler) == false
break if combo_probability(last_battler, next_battler) == false
next_battler.combo_number = i + 2
@combo_skill.push(next_battler.current_action.skill_id)
@combo_member.push(next_battler)
last_battler = @action_battlers
end
@combo_max = @combo_member.size
if @combo_max > 1
@combo_count = 0
@active_battler.combo_number = 1
@combo_on = true
@combo_effect = true
else
@combo_bese_target = nil
@combo_all_target_count = 0
@combo_on = false
end
end
end
if @combo_effect
@combo_effect_start = true
end
scene_battle_skill_combo_update_phase4_step2
end
#--------------------------------------------------------------------------
# ● 特级动作 结果作成
#--------------------------------------------------------------------------
alias scene_battle_skill_combo_make_skill_action_result make_skill_action_result
def make_skill_action_result
scene_battle_skill_combo_make_skill_action_result
# 消去行动者的联合号码
if @combo_on
@active_battler.combo_number = nil
@combo_count += 1
if @combo_count >= @combo_max
@combo_finish = true
end
if COMBO_NAME_SHOW
c_name = get_combo_skill_name(@skill)
if @combo_finish
@combo_name += c_name[1]
@help_window.set_text(@combo_name, 1)
@help_window.visible = true
else
@combo_name += c_name[0]
@help_window.visible = false
end
end
end
end
#--------------------------------------------------------------------------
# ● 框架更新(联合效果表示)
#--------------------------------------------------------------------------
def update_phase4_combo_effect
# 行动方面动画
@active_battler.animation_id = COMBO_ANIME_ID
@active_battler.animation_hit = true
# 尽管是动画的长度,最低8 框架等候
@wait_count = 8
@combo_effect_start = false
@phase4_step = 3
end
#--------------------------------------------------------------------------
# ● 框架更新(主要阶段 阶段 5: 损坏表示)
#--------------------------------------------------------------------------
alias scene_battle_skill_combo_update_phase4_step5 update_phase4_step5
def update_phase4_step5
scene_battle_skill_combo_update_phase4_step5
# 是联合的最后的情况
if @combo_finish
# 联合的时候的处理遗漏的应对
battler = []
battler += $game_troop.enemies
battler += $game_party.actors
for target in battler
if target.exist?
if SHOW_DAMAGE_LUMP
if target.combo_total_damage != nil
target.damage = target.combo_total_damage
target.damage_pop = true
target.combo_total_damage = nil
end
end
if target.combo_dead
target.hp = 0
target.combo_dead = false
end
end
end
end
end
#--------------------------------------------------------------------------
# ● 框架更新(主要阶段 阶段 6: 恢复精神)
#--------------------------------------------------------------------------
alias scene_battle_skill_combo_update_phase4_step6 update_phase4_step6
def update_phase4_step6
scene_battle_skill_combo_update_phase4_step6
if @combo_finish
@combo_on = false
@combo_bese_target = nil
@combo_count = 0
@combo_finish = false
@combo_effect = false
@combo_name = ""
end
end
#--------------------------------------------------------------------------
# ● 联合发动判断
#--------------------------------------------------------------------------
def combo_ok?(actor)
all_attck_skill_max = ALL_ATTCK_SKILL_MAX
# 行动者要是敌人还false
if actor.is_a?(Game_Enemy)
return false
end
# 行动者如果是特级以外的行动还false
if actor.current_action.kind != 1
return false
end
# 行动者如果不能使用特级还false
unless actor.skill_can_use?(actor.current_action.skill_id)
return false
end
# 取得特级
skill = $data_skills[actor.current_action.skill_id]
# 使用特级如果有联合禁止属性还false
for i in skill.element_set
if $data_system.elements != nil
if $data_system.elements =~ /連携禁止/
return false
end
end
end
# 基本目标没决定的情况
if @combo_bese_target == nil
@combo_all_target_count = 0
# 本来是攻击的情况
if skill.scope == 2
if @combo_all_target_count >= all_attck_skill_max
return false
end
# 全体(-1)设定基本目标
@combo_bese_target = -1
@combo_all_target_count += 1
# 是单体攻击的情况
else
@combo_bese_target = actor.current_action.target_index
end
# 如果基本目标决定最初的
# 攻击本来是攻击的情况
elsif @combo_bese_target == -1
if skill.scope == 2
# 1联合中规定回数以上的全体攻击不能编入
if @combo_all_target_count >= all_attck_skill_max
return false
end
@combo_all_target_count += 1
else
@combo_bese_target = actor.current_action.target_index
end
else
if skill.scope == 2
# 1联合中规定回数以上的全体攻击不能编入
if @combo_all_target_count >= all_attck_skill_max
return false
end
@combo_all_target_count += 1
else
# 目标是不是与基本目标一起
if actor.current_action.target_index != @combo_bese_target
return false
end
end
end
return true
end
#--------------------------------------------------------------------------
# ● 联合概率计算
#--------------------------------------------------------------------------
def combo_probability(last_battler, next_battler)
s_num = $data_system.switches.index("テスト用 絶対連携")
if s_num != nil
return true if $game_switches[s_num]
end
last_skill = $data_skills[last_battler.current_action.skill_id]
next_skill = $data_skills[next_battler.current_action.skill_id]
last_n = skill_combo_after_revision(last_skill)
last_n += actor_combo_after_revision(last_battler)
next_n = skill_combo_before_revision(next_skill)
next_n += actor_combo_before_revision(next_battler)
n = last_n + next_n
if (rand(100) < n)
return true
end
return false
end
#--------------------------------------------------------------------------
# ● actor 的基本联合概率补正取得
#--------------------------------------------------------------------------
def actor_combo_base_revision(actor)
return 0
end
#--------------------------------------------------------------------------
# ● actor 的前联合概率补正取得
#--------------------------------------------------------------------------
def actor_combo_before_revision(actor)
n = actor_combo_base_revision(actor)
n += BASE_BEFORE_REVISION
return n
end
#--------------------------------------------------------------------------
# ● actor 之后联合概率补正取得
#--------------------------------------------------------------------------
def actor_combo_after_revision(actor)
n = actor_combo_base_revision(actor)
n += BASE_AFTER_REVISION
return n
end
#--------------------------------------------------------------------------
# ● 特级的前联合概率补正取得
#--------------------------------------------------------------------------
def skill_combo_before_revision(skill)
rate = 0
for i in skill.element_set
if $data_system.elements != nil
if $data_system.elements =~ /前連携率([+-]?[0-9]+)(%|%)/
rate += $1.to_i
end
end
end
return rate
end
#--------------------------------------------------------------------------
# ●特级之后联合概率补正取得
#--------------------------------------------------------------------------
def skill_combo_after_revision(skill)
rate = 0
for i in skill.element_set
if $data_system.elements != nil
if $data_system.elements =~ /後連携率([+-]?[0-9]+)(%|%)/
rate += $1.to_i
end
end
end
return rate
end
#--------------------------------------------------------------------------
# ● 把特级名分成前半部分后半还那个排列
#--------------------------------------------------------------------------
def get_combo_skill_name(skill)
name = skill.name.split('')
if name.size == 1
return [name[0], name[0]]
elsif name.size <= COMBO_NAME_SPLIT
tempname = name.join
return [tempname, tempname]
end
num = name.size / 2
name1 = ""
name2 = ""
for i in 0...num
name1 += name
end
for i in num...name.size
name2 += name
end
return [name1, name2]
end
end
class Game_Battler
include Combo_Skill_Config
attr_accessor :combo_number # 联合发动的时候的顺
attr_accessor :combo_dead # 序联合发动的时候的死亡标
attr_accessor :combo_total_damage # 志联合发动的时候的总损坏
#--------------------------------------------------------------------------
# ● 客观初始化
#--------------------------------------------------------------------------
alias game_battler_skill_combo_initialize initialize
def initialize
game_battler_skill_combo_initialize
@combo_number = nil
@combo_dead = false
@combo_total_damage = nil
end
#--------------------------------------------------------------------------
# ● 特级的效果适用
# user : 特级的使用者(butler)
# skill : 特级
#--------------------------------------------------------------------------
alias game_battler_skill_combo_skill_effect skill_effect
def skill_effect(user, skill)
result = game_battler_skill_combo_skill_effect(user, skill)
if user.combo_number != nil
# 联合补正
if self.damage.is_a?(Numeric)
combo_rate = user.combo_number * COMBO_BONUS
damage = self.damage * combo_rate / 100
self.damage += damage
self.hp -= damage
if SHOW_DAMAGE_LUMP
@combo_total_damage = 0 if @combo_total_damage == nil
@combo_total_damage += self.damage
self.damage = nil
end
end
if self.dead?
self.combo_dead = true
self.hp = 1
end
end
return result
end
end
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#============================================================================== |
|