| 赞 | 5 |
| VIP | |
| 好人卡 | |
| 积分 | 12 |
| 经验 | |
| 最后登录 | 2023-9-30 |
| 在线时间 | 69 小时 |
- 梦石
- 0
- 星屑
- 1249
- 在线时间
- 69 小时
- 注册时间
- 2019-2-12
- 回帖
- 73
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有账号?注册会员
×
本帖最后由 小姐姐一个 于 2020-8-16 17:38 编辑
萌新的我打算挖一个新坑(不知道什么时候能填好吧)
其中包含了一些游戏技能或者被动(其中一些配合大佬们的脚本)
看看我什么时候能更新完吧=。=...那个,欢迎大家提点建议,第一次发这种帖子QwQ
图的话我抽空补上~
更新完成后我也会奉上范例的~
先说好,技能基础伤害不是加点的,如果要加点的技能另求大佬吧~
这里是随等级变化基础伤害
大佬们可以提提建议哦
目前已更新4个
时间刺客(大招)使用了KB.Driver大佬的脚本=.=
R时空断裂 短时间内免疫伤害且无法被选为目标,然后重新出现在数秒前所在的位置。重新出现时,艾克将回复数秒内损失生命值的一部分,并且对附近的所有敌人造成成吨的伤害。
这里把MP值也加了上去=。=,在技能属性公式中再运用公共事件对全体敌人造成伤害.
[pre lang="ruby" line="3"]module CLD99
module REWIND_HP_MP
# 回溯的回合数
DEPTH = 3
# 信息格式(请不要修改汉字以外的部分)
FMT = "%s的%s与%s恢复到了#{DEPTH}回合之前"
end
end
class RPG::Skill
def rewind_skill?
self.note =~ /<回溯>/
end
end
class Game_Actor
#--------------------------------------------------------------------------
# ● 战斗开始处理
#--------------------------------------------------------------------------
def on_battle_start
super
store_hp_mp
end
#--------------------------------------------------------------------------
# ● 回合结束处理
#--------------------------------------------------------------------------
def on_turn_end
super
store_hp_mp
end
#--------------------------------------------------------------------------
# ● 战斗结束处理
#--------------------------------------------------------------------------
def on_battle_end
super
clear_stroring_hp_mp
end
def store_hp_mp
if skills.any?{|s| s.rewind_skill? }
@storing_hp ||= []
@storing_mp ||= []
@storing_hp << @hp
@storing_mp << @mp
end
end
def rewind_hp_mp
turn = [$game_troop.turn_count - CLD99::REWIND_HP_MP::DEPTH, 0].max
@hp = @storing_hp[turn]
@mp = @storing_mp[turn]
end
def clear_stroring_hp_mp
if skills.any?{|s| s.rewind_skill? }
@storing_hp && @storing_hp.clear
@storing_mp && @storing_mp.clear
end
end
end
class Scene_Battle
#--------------------------------------------------------------------------
# ● 发动技能/物品
#--------------------------------------------------------------------------
alias invoke_item_for_rewind_hp_mp invoke_item
def invoke_item(target, item)
invoke_item_for_rewind_hp_mp(target, item)
if item.is_a?(RPG::Skill) && item.rewind_skill?
target.rewind_hp_mp
end
end
end
class Window_BattleLog
#--------------------------------------------------------------------------
# ● 显示行动结果
#--------------------------------------------------------------------------
alias display_action_results_for_rewind_hp_mp display_action_results
def display_action_results(target, item)
if item.is_a?(RPG::Skill) && item.rewind_skill?
add_text(CLD99::REWIND_HP_MP::FMT % [target.name, Vocab.hp, Vocab.mp])
end
display_action_results_for_rewind_hp_mp(target, item)
end
end[/pre]
[/quote]
诺手(大招)R诺克萨斯断头台 跃向目标英雄并进行致命打击,造成100/200/300(+0.75)点真实伤害。 目标身上的每层出血效果,都会使【诺克萨斯断头台】额外造成20%的伤害。
在伤害公式里写:(多花里胡哨都行,写不开在脚本里写,详细教程在救世小树大佬的帖子https://rpg.blue/forum.php?mod=viewthread&tid=307316)
比如这个: b.hp <= 100 ? b.hp + a.add.state(1).to_i : 100
意思是,敌人受到100点真实伤害,如果敌人死亡,给自己1号状态。
然后再创一个公共事件,分歧—判定这个角色是否有1号状态,然后在公共事件中写上脚本(给自己加怒气值$game_actors[角色id].tp = $game_actors[角色id].tp + 100,100也就是返还消耗的怒气),最后在清除这个状态,就完成了
原本技能是可以刷新的,那就在公共事件下继续
搞多些选项,(应该是8个敌人)选定刷新技能第二次要进行攻击的敌人,然后有个选项是强制技能攻击敌人...这样...应该就行了吧
最后别忘了在技能伤害公式下面的属性栏里点上这个公共事件。
剑魔(被动/大招)又使用了KB.Driver大佬的脚本=.=
E暗影冲决 被动效果:剑魔会获得治疗效果
[pre lang="ruby" line="3"]module CLD99
module Dracula
DRAIN_STATE_ID = 1
# 获得此ID状态后,所有攻击带吸血
DRAIN_RATE = 0.3
# 因上面的情况允许吸血时的比例
#这个随便写 到后面得调的~
end
end
class Game_Battler
#--------------------------------------------------------------------------
# ● [追加]是否所有攻击带吸血
#--------------------------------------------------------------------------
def dracula?
state?(CLD99::Dracula::DRAIN_STATE_ID)
end
#--------------------------------------------------------------------------
# ● [别名修改]计算伤害
#--------------------------------------------------------------------------
alias :make_damage_value_for_dracula :make_damage_value
def make_damage_value(user, item)
make_damage_value_for_dracula(user, item)
@result.make_dracula(item) if user.actor? && user.dracula?
end
end
class Game_ActionResult
attr_reader :dracula
#--------------------------------------------------------------------------
# ● [追加]计算吸血
#--------------------------------------------------------------------------
def make_dracula(item)
return if item.damage.drain? # 自带吸血的技能不参与
return if @hp_damage < 0 # 回复类技能不参与
@hp_drain = (@hp_damage * CLD99::Dracula::DRAIN_RATE).to_i
@dracula = true
end
#--------------------------------------------------------------------------
# ● [别名修改]获取 HP 伤害的文字
#--------------------------------------------------------------------------
alias hp_damage_text_for_dracula hp_damage_text
def hp_damage_text
if @dracula
fmt = "%s造成了%s伤害,吸收了%s%s"
return sprintf(fmt, @battler.name, @hp_damage, @hp_drain, Vocab.hp)
end
hp_damage_text_for_dracula
end
end
class Window_BattleLog
#--------------------------------------------------------------------------
# ● 显示 HP 伤害
#--------------------------------------------------------------------------
alias :display_hp_damage_for_dracula :display_hp_damage
def display_hp_damage(target, item)
target.perform_damage_effect if target.result.dracula
display_hp_damage_for_dracula(target, item)
end
end[/pre]
之后是剑魔大招 期间加随等级变化的物理攻击和回复能力
随等级变化的物理攻击: 详细看我这个帖子吧,俺也不太会,问的大佬,建议用置顶的,亲测有效https://rpg.blue/thread-482465-1-1.html
然后在敌群-事件-回合结束时-间隔:回合中(建议用公共事件,有点多)写很多的东西,图已在下面给出

(真的太感谢KB.Driver大佬了=.=)
瑟提(被动,W)半兽之心 瑟提每损失5%生命值,生命回复提高0.25/0.5/1/2(于1/6/11/16级变化)
[pre lang="ruby" line="1"]
class Scene_Battle < Scene_Base
alias vip20140805_1 process_action
#--------------------------------------------------------------------------
# ● 战斗行动结束时运行公共事件
#--------------------------------------------------------------------------
def process_action
vip20140805_1
#括号里记得填上对应角色id~这里我有点懒 只写了3个等级
#敌人攻击后变量就会变化一次 然后在敌群-事件-回合结束时-间隔:回合-脚本 $game_actors[].hp += $game_variables[1]
if $game_actors[].level == 18
$game_variables[1] = (2 * (1 - ( 1.0 * $game_actors[].hp) / (1.0 * $game_actors[].mhp)) * 100 / 5).to_i
elsif $game_actors[].level >= 11
$game_variables[1] = (1 * (1 - ( 1.0 * $game_actors[].hp) / (1.0 * $game_actors[].mhp)) * 100 / 5).to_i
else
$game_variables[1] = (0.25 * (1 - ( 1.0 * $game_actors[].hp) / (1.0 * $game_actors[].mhp)) * 100 / 5).to_i
end
end
end[/pre]
W-蓄意轰拳
首先是被动吧 受到的100%伤害转化为豪意值 这里我打算吧TP值改成豪意值
[pre lang="ruby" line="1"]
#受到攻击的100%转化为tp值https://rpg.blue/thread-482848-1-1.html
class Game_ActionResult
alias old_make_damage_old make_damage
def make_damage(value, item)
old_make_damage_old(value, item)
$charge_tp_damage = value if item.damage.to_hp?
end
end
class Game_Battler < Game_BattlerBase
attr_accessor :charge_tp_damage
alias old_initialize_old initialize
def initialize
@charge_tp_damage = 0
old_initialize_old
end
alias old_charge_tp_by_damage_old charge_tp_by_damage
def charge_tp_by_damage(damage_rate)
@charge_tp_damage = $charge_tp_damage
if @actor_id == 8 && @charge_tp_damage > 0
self.tp += @charge_tp_damage
@charge_tp_damage = 0
else
old_charge_tp_by_damage_old(damage_rate)
@charge_tp_damage = 0
end
end
end[/pre]
然后在game_battler里找到700-800行
#--------------------------------------------------------------------------
# ● 初始化目标 TP
#--------------------------------------------------------------------------
def init_tp
if @actor_id == ?
#写上该角色的id
self.tp = 0
else
self.tp = rand * 25
end
end
Game_BattlerBase里的500行
#--------------------------------------------------------------------------
# ● 获取 TP 的最大值
#--------------------------------------------------------------------------
def max_tp
return (self.mhp * 0.5).to_i if @actor_id == 8
return 100
end
534行
#--------------------------------------------------------------------------
# ● 获取 TP 的比率
#--------------------------------------------------------------------------
def tp_rate
if @actor_id == 8
@tp.to_f / (self.mhp * 0.5).to_i
else
@tp.to_f / 100
end
end
现在 豪意值就做好了
开始做个技能了(写上伤害公式,写不开在脚本里写,详细教程在救世小树大佬的帖子6楼https://rpg.blue/forum.php?mod=viewthread&tid=307316)
我的是这样
value = user.level == 18 ? 55 + (user.tp * (25 + user.atk * 0.1) / 100) : user.level >= 11 ? 45 + (user.tp * (25 + user.atk * 0.1) / 100) : 35 + (user.tp * (25 + user.atk * 0.1) / 100)
user.add_state(1)#记得填上ID
解释一下吧
35/45/55这个是基础伤害值 劲量少点
(25 + user.atk * 0.1)这里是 25%的豪意值 加上每10点物理攻击加1%
然后在使用后获得1回合的状态,在敌群-事件-回合结束时-间隔:回合-分歧-如果[]的状态是[]-脚本 $game_actors[].tp = 0
再解释一下吧
为什么不直接去TP值?非得这么麻烦
试试就知道了,在技能页面中用公共事件去除TP会导致仅有一个敌人造成正常伤害,第二个敌人就只会受到基础伤害惹~
为什么去除TP值?
这里视为豪意值,释放技能后豪意值清除,不然的话...一直放满豪意值的技能,伤害这不拉胯?
另外建议在状态设置护盾值什么的,这里就不多写了
最后的话,建议使用技能冷却脚本,善用搜索
记得收藏哦,时不时看一眼,主题分类什么的搞不懂,就当是转载的吧AwA~
|
-
剑魔大招-魄视为剑魔
评分
-
查看全部评分
|