Project1
标题:
请问在地图上移动一格就自动扣除SP的效果要怎么实现呢?
[打印本页]
作者:
水舞沨流
时间:
2021-6-15 07:17
标题:
请问在地图上移动一格就自动扣除SP的效果要怎么实现呢?
本帖最后由 水舞沨流 于 2021-6-15 07:19 编辑
简单来说就是“
中毒状态
”的变体,主要也很好奇中毒状态的
实现原理
,想知道可否根据它的原理
举一反三
出更多的效果来。
——————————————————————————————————————————————————————————————————————————————————
另一方面也有点好奇有没有办法给中毒状态一个“血量保护”,让它扣血扣到指定数值就锁血,防止角色被毒死啥的
比如设置公共事件-条件是进入中毒状态后一旦血量低于50则强制让血量=50之类的……
有更加便捷简练的做法吗?
作者:
灯笼菜刀王
时间:
2021-6-15 10:27
LOCK_HP_SLIP_DAMAGE = 10 #锁血的比例,即中毒后HP低于10%不扣血
#-------------------------------------------------------------------------
class Game_Paryt
def check_map_slip_damage
for actor in @actors
if actor.hp > actor.maxhp.to_f/LOCK_HP_SLIP_DAMAGE and actor.slip_damage?
actor.hp -= [actor.maxhp / 100, 1].max
$game_screen.start_flash(Color.new(255,0,0,128), 4)
end
end
$game_temp.gameover = $game_party.all_dead?
end
def slip_sp
@actors.each{|i| i.sp -= 1 unless i.dead?}
end
end
class Game_Battler
def slip_damage_effect
self.damage = self.maxhp / 10
if self.damage.abs > self.maxhp.to_f/LOCK_HP_SLIP_DAMAGE
amp = [self.damage.abs * 15 / 100, 1].max
self.damage += rand(amp+1) + rand(amp+1) - amp
end
self.hp -= self.damage
return true
end
end
class Game_Player < Game_Character
alias oxox_steps increase_steps
def increase_steps
oxox_steps
$game_party.slip_sp
end
end
复制代码
把它塞到 Main 这个脚本前即可
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1