广场
工具/教程/素材
超评测活动结果
第29届极短篇游戏制作比赛
优秀游戏推荐
非官方运行时(20250730)
登录
RPGMaker工具集[20250416]
基础教程
授权素材推广
优秀原创游戏区
精品推荐贴
【RGD】DirectX驱动的RMVA
RGSS3 - runtime by Lanza
【RGM】RGModern - RMXP新runtime
【URGE】兼容 XP/VX/Ace 三系通用跨平台游戏引擎
Project1
»
广场
›
技术讨论
›
RPG Maker XP 讨论区
›
回血,回法总显示1个常数
返回列表
发新帖
查看:
1167
|
回复:
2
回血,回法总显示1个常数
[复制链接]
七仙女
七仙女
当前离线
赞
0
VIP
好人卡
积分
1
经验
最后登录
2009-12-6
在线时间
0 小时
写轮眼
头像被屏蔽
七仙女
梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-15
回帖
342
发消息
发表于 2008-5-31 22:55:12
|
显示全部楼层
|
阅读模式
提示:
作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复
使用道具
举报
提升卡
沉默号角
喧嚣号角
变色卡
升龙剑
zlink
zlink
当前离线
赞
0
VIP
好人卡
积分
1
经验
最后登录
2012-4-7
在线时间
0 小时
写轮眼
梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-4-15
回帖
114
发消息
发表于 2008-5-31 23:34:30
|
显示全部楼层
Game_Battler item_effect里面
回复
使用道具
举报
havealook
havealook
当前离线
赞
0
VIP
好人卡
积分
1
经验
最后登录
2014-1-10
在线时间
27 小时
写轮眼
梦石
0
星屑
50
在线时间
27 小时
注册时间
2008-2-13
回帖
1700
发消息
发表于 2008-6-1 00:14:49
|
显示全部楼层
这问题不很简单吗 - -
把下列脚本插入到Main之前,即可
class Game_Battler
def item_effect(item)
# 清除会心一击标志
self.critical = false
# 物品的效果范围是 HP 1 以上的己方、自己的 HP 为 0、
# 或者物品的效果范围是 HP 0 的己方、自己的 HP 为 1 以上的情况下
if ((item.scope == 3 or item.scope == 4) and self.hp == 0) or
((item.scope == 5 or item.scope == 6) and self.hp >= 1)
# 过程结束
return false
end
# 清除有效标志
effective = false
# 公共事件 ID 是有效的情况下,设置为有效标志
effective |= item.common_event_id > 0
# 命中判定
hit_result = (rand(100) < item.hit)
# 不确定的特技的情况下设置为有效标志
effective |= item.hit < 100
# 命中的情况
if hit_result == true
# 计算回复量
recover_hp = maxhp * item.recover_hp_rate / 100 + item.recover_hp
recover_sp = maxsp * item.recover_sp_rate / 100 + item.recover_sp
if recover_hp < 0
recover_hp += self.pdef * item.pdef_f / 20
recover_hp += self.mdef * item.mdef_f / 20
recover_hp = [recover_hp, 0].min
end
# 属性修正
recover_hp *= elements_correct(item.element_set)
recover_hp /= 100
recover_sp *= elements_correct(item.element_set)
recover_sp /= 100
# 分散
if item.variance > 0 and recover_hp.abs > 0
amp = [recover_hp.abs * item.variance / 100, 1].max
recover_hp += rand(amp+1) + rand(amp+1) - amp
end
if item.variance > 0 and recover_sp.abs > 0
amp = [recover_sp.abs * item.variance / 100, 1].max
recover_sp += rand(amp+1) + rand(amp+1) - amp
end
# 回复量符号为负的情况下
if recover_hp < 0
# 防御修正
if self.guarding?
recover_hp /= 2
end
end
###########################havealook###################################
if self.maxhp - self.hp < recover_hp
recover_hp = self.maxhp - self.hp
end
if self.maxsp - self.sp < recover_sp
recover_sp = self.maxsp - self.sp
end
###############################havealook###############################
# HP 回复量符号的反转、设置伤害值
self.damage = -recover_hp
# HP 以及 SP 的回复
last_hp = self.hp
last_sp = self.sp
self.hp += recover_hp
self.sp += recover_sp
effective |= self.hp != last_hp
effective |= self.sp != last_sp
# 状态变化
@state_changed = false
effective |= states_plus(item.plus_state_set)
effective |= states_minus(item.minus_state_set)
# 能力上升值有效的情况下
if item.parameter_type > 0 and item.parameter_points != 0
# 能力值的分支
case item.parameter_type
when 1 # MaxHP
@maxhp_plus += item.parameter_points
when 2 # MaxSP
@maxsp_plus += item.parameter_points
when 3 # 力量
@str_plus += item.parameter_points
when 4 # 灵巧
@dex_plus += item.parameter_points
when 5 # 速度
@agi_plus += item.parameter_points
when 6 # 魔力
@int_plus += item.parameter_points
end
# 设置有效标志
effective = true
end
# HP 回复率与回复量为 0 的情况下
if item.recover_hp_rate == 0 and item.recover_hp == 0
# 设置伤害为空的字符串
self.damage = ""
# SP 回复率与回复量为 0、能力上升值无效的情况下
if item.recover_sp_rate == 0 and item.recover_sp == 0 and
(item.parameter_type == 0 or item.parameter_points == 0)
# 状态没有变化的情况下
unless @state_changed
# 伤害设置为 "Miss"
self.damage = "Miss"
end
end
end
# Miss 的情况下
else
# 伤害设置为 "Miss"
self.damage = "Miss"
end
# 不在战斗中的情况下
unless $game_temp.in_battle
# 伤害设置为 nil
self.damage = nil
end
# 过程结束
return effective
end
end
复制代码
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
好吧,果然换个签名就没人认识我了。我承认我被时间埋没了
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册会员
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
Archiver
|
手机版
|
小黑屋
|
Project1游戏制作
Powered by
Discuz!
X5.0
© 2001-2026
Discuz! Team
.
在本版发帖
返回顶部
快速回复
返回顶部
返回列表