Project1
标题: 怎样用事件(用物品给使用者加随机的体力上限等)? [打印本页]
作者: shengfeng 时间: 2017-6-23 22:28
标题: 怎样用事件(用物品给使用者加随机的体力上限等)?
没办法完成必须在事件中加脚本
作者: 魔法丶小肉包 时间: 2017-6-23 23:49
插件脚本
class Game_Battler < Game_BattlerBase
def item_apply(user, item)
@result.clear
@result.used = item_test(user, item)
@result.missed = (@result.used && rand >= item_hit(user, item))
@result.evaded = (!@result.missed && rand < item_eva(user, item))
if @result.hit?
unless item.damage.none?
@result.critical = (rand < item_cri(user, item))
make_damage_value(user, item)
execute_damage(user)
end
if /<随机增加最大HP\s*(\d+)>/ =~ item.note
add_param(0,rand($1.to_i)+1)
end
item.effects.each {|effect| item_effect_apply(user, item, effect) }
item_user_effect(user, item)
end
end
end
class Game_Battler < Game_BattlerBase
def item_apply(user, item)
@result.clear
@result.used = item_test(user, item)
@result.missed = (@result.used && rand >= item_hit(user, item))
@result.evaded = (!@result.missed && rand < item_eva(user, item))
if @result.hit?
unless item.damage.none?
@result.critical = (rand < item_cri(user, item))
make_damage_value(user, item)
execute_damage(user)
end
if /<随机增加最大HP\s*(\d+)>/ =~ item.note
add_param(0,rand($1.to_i)+1)
end
item.effects.each {|effect| item_effect_apply(user, item, effect) }
item_user_effect(user, item)
end
end
end
数据库物品备注
<随机增加最大HP 最大数值>
比如
<随机增加最大HP 100>
则随机范围为1~100
作者: shengfeng 时间: 2017-6-24 17:58
如果使用多个该怎么办(如mp上限 物攻上限 物防上限等等)
作者: shengfeng 时间: 2017-6-25 16:40
脚本有个bug必须在物品的能力提升(比如体力上限+1)否则出现物品使用无反应
作者: 魔法丶小肉包 时间: 2017-6-25 17:24
修复楼上说的bug
class Game_Battler < Game_BattlerBase
def item_apply(user, item)
@result.clear
@result.used = item_test(user, item)
@result.missed = (@result.used && rand >= item_hit(user, item))
@result.evaded = (!@result.missed && rand < item_eva(user, item))
if /<随机增加最大HP\s*(\d+)>/ =~ item.note
add_param(0,rand($1.to_i)+1)
end
if @result.hit?
unless item.damage.none?
@result.critical = (rand < item_cri(user, item))
make_damage_value(user, item)
execute_damage(user)
end
item.effects.each {|effect| item_effect_apply(user, item, effect) }
item_user_effect(user, item)
end
end
def item_test(user, item)
return false if item.for_dead_friend? != dead?
return true if $game_party.in_battle
return true if item.for_opponent?
return true if item.damage.recover? && item.damage.to_hp? && hp < mhp
return true if item.damage.recover? && item.damage.to_mp? && mp < mmp
return true if item_has_any_valid_effects?(user, item)
return true if /<随机增加最大HP\s*(\d+)>/ =~ item.note
return false
end
end
class Game_Battler < Game_BattlerBase
def item_apply(user, item)
@result.clear
@result.used = item_test(user, item)
@result.missed = (@result.used && rand >= item_hit(user, item))
@result.evaded = (!@result.missed && rand < item_eva(user, item))
if /<随机增加最大HP\s*(\d+)>/ =~ item.note
add_param(0,rand($1.to_i)+1)
end
if @result.hit?
unless item.damage.none?
@result.critical = (rand < item_cri(user, item))
make_damage_value(user, item)
execute_damage(user)
end
item.effects.each {|effect| item_effect_apply(user, item, effect) }
item_user_effect(user, item)
end
end
def item_test(user, item)
return false if item.for_dead_friend? != dead?
return true if $game_party.in_battle
return true if item.for_opponent?
return true if item.damage.recover? && item.damage.to_hp? && hp < mhp
return true if item.damage.recover? && item.damage.to_mp? && mp < mmp
return true if item_has_any_valid_effects?(user, item)
return true if /<随机增加最大HP\s*(\d+)>/ =~ item.note
return false
end
end
作者: shengfeng 时间: 2017-6-25 22:14
非常感谢
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |