Project1
标题:
RMXP比较难的问题?
[打印本页]
作者:
hh19961123
时间:
2009-9-12 10:42
标题:
RMXP比较难的问题?
1.攻击吸取攻击力10%的HP
2.反弹10%的受到的伤害
3.得到 ×× 状态 攻击动画更改, ×× 状态消失,攻击动画复原
作者:
link006007
时间:
2009-9-12 11:10
问题很简洁。。。
不过ms在我刚接触RMXP的时候就有人做出来了哦 - -,现在还在不在就不知道了
脚本要改Game_Actor的damage还是哪里的,忘记了。。。
事件的话有一个公共事件版。。 这些都是原始级的解决方案。 现在有没有更新就不知道了- -
作者:
fofolee
时间:
2009-9-12 11:50
其实都不是太难滴
不过你问的太多了点吧?直接复制以下脚本
class Game_Battler
def attack_effect(attacker)
self.critical = false
hit_result = (rand(100) < attacker.hit)
if hit_result == true
atk = [attacker.atk - self.pdef / 2, 0].max
self.damage = atk * (20 + attacker.str) / 20
self.damage *= elements_correct(attacker.element_set)
self.damage /= 100
if self.damage > 0
if rand(100) < 4 * attacker.dex / self.agi
self.damage *= 2
self.critical = true
end
if self.guarding?
self.damage /= 2
end
end
if self.damage.abs > 0
amp = [self.damage.abs * 15 / 100, 1].max
self.damage += rand(amp+1) + rand(amp+1) - amp
end
eva = 8 * self.agi / attacker.dex + self.eva
hit = self.damage < 0 ? 100 : 100 - eva
hit = self.cant_evade? ? 100 : hit
hit_result = (rand(100) < hit)
end
if hit_result == true
remove_states_shock
#=============================================================================
if self.state?(29)
attacker.damage = self.damage / 10
self.damage = self.damage * 9 / 10
end
#=============================================================================
self.hp -= self.damage
@state_changed = false
states_plus(attacker.plus_state_set)
states_minus(attacker.minus_state_set)
else
self.damage = "Miss"
self.critical = false
end
return true
end
end
class Scene_Battle
def update_phase4_step4
# 对像方动画
for target in @target_battlers
#==========================================================================
if @active_battler.state?(17)
target.animation_id = 1
else
target.animation_id = @animation2_id
end
#==========================================================================
target.animation_hit = (target.damage != "Miss")
end
# 限制动画长度、最低 8 帧
@wait_count = 8
# 移至步骤 5
@phase4_step = 5
end
def update_phase4_step5
@help_window.visible = false
@status_window.refresh
for target in @target_battlers
if target.damage != nil
target.damage_pop = true
end
end
#=============================================================================
if @active_battler.is_a?(Game_Actor)
for target in @target_battlers
if target.damage != nil and target.damage != "Miss"
if $data_weapons[@active_battler.weapon_id].element_set.include?(23)
@active_battler.damage = -@active_battler.atk / 10
@active_battler.hp -= @active_battler.damage
@active_battler.damage_pop = true
end
end
end
end
for target in @target_battlers
if target.state?(29)
if @active_battler.current_action.kind == 0 and target.damage != "Miss"
@active_battler.hp -= @active_battler.damage.to_i
@active_battler.damage_pop = true
end
end
end
#=============================================================================
@phase4_step = 6
end
end
复制代码
#=============表示修改处
武器带上23号属性就能吸血了,不过吸10%的攻击力好怪的说
自己带上29号状态就会反弹10%伤害,具体可以依靠防具的自动状态来实现这个效果
当有状态17时,动画会变成1号动画,我该的是默认战斗系统,所以只改了被攻击方动画,感觉这样ok了
以上你都可以自己更改,找到两个#=============之间部分,改些数字就行了
PS:下次不要问这么多了,一般是不会有人理你的
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1