赞 | 12 |
VIP | 2 |
好人卡 | 5 |
积分 | 13 |
经验 | 24311 |
最后登录 | 2023-9-26 |
在线时间 | 378 小时 |
Lv3.寻梦者
- 梦石
- 0
- 星屑
- 1345
- 在线时间
- 378 小时
- 注册时间
- 2015-6-16
- 帖子
- 571
|
Game_Battler里面def make_damage_value(user, item)这一块@result.make_damage(value.to_i, item)<造成伤害,上面都是判定>上面 value = item.damage.eval(user, self, $game_variables)<设置基础伤害,这个是赋值,写在它上面会被覆盖>下面
就行
我的写法
def make_damage_value(user, item)
value = item.damage.eval(user, self, $game_variables) #基础伤害(赋值)
value *= item_element_rate(user, item) #抗性
value *= pdr if item.physical? #物理有效度
value *= mdr if item.magical? #法术有效度
value *= rec if item.damage.recover? #恢复有效度(回复效率,药品效果)
value = apply_critical(value) if @result.critical #暴击(赋值)
value = apply_variance(value, item.damage.variance) #(方差,不知道哪里会涉及到)
value = apply_guard(value) #(防御,也就是2号技能的影响)(赋值)
#因为有好几项赋值建议写在这里
#固定值(目标存在1号状态)
if self.state?(1) (判定目标是否有1号状态)
user.hp += 100#(100随你改变成公式user.atk什么的,TXET那边的100和他对应最好,虽然不冲突。但是你明明扣除了那些,显示却是100,很迷。)
text = sprintf("%s被食梦了\\C[3]%s\\C[0]点血量", self.name, 100) #(解释下%s<跟","后面的一个对一个 第一个对应self.name 第二个对应100.多加按格式填写即可>)(可不加)(只是定义内容是什么,相当于变量=X)
SceneManager.scene.instance_variable_get(:@log_window).add_text(text)#(可不加,不加这一行和上一行两行都删了,不然没意义。)<这行是加入战斗日志>
end
#公式(用攻击力来回复,伤害公式脚本里面的a就是user,b就是self)(目标存在2号状态)
if self.state?(2)
user.hp += user.atk
text = sprintf("%s被食梦了\\C[3]%s\\C[0]点血量", self.name,user.atk)
SceneManager.scene.instance_variable_get(:@log_window).add_text(text)
end
#最简单的,没任何特效(攻击者回复100血量,但是却不显示)
if self.state?(2)
user.hp += 100
end
@result.make_damage(value.to_i, item)
end
最后的结尾:a=user b=self
%s相关(简单的理解)text = sprintf(%sA %sB %sC,1,2,3)最后的显示是1A 2B 3C为了让你看懂格式我空格了。
X.state?(Y) 判定X是否拥有Y号状态,角色来判断就是$game_actors[1].state?(2) 1号角色是否拥有2号状态 X还可以是$game_troop.members[ID](这个是敌群的位置,0是1,1是2)
一个if 跟一个end,其中多了或者少了会报错。依据事件的如果,结束 else是否则(就是选择了不符合执行其他内容格式(if else end)
所有符号均英文状态,比如你弄了中文(),。那么抱歉,无效且报错
脚本无效相关:全局搜索 def make_damage_value(user, item),前面的脚本会被覆盖
解决方法:
新建脚本
class Game_Battler < Game_BattlerBase
def make_damage_value(user, item)
value = item.damage.eval(user, self, $game_variables)
value *= item_element_rate(user, item)
value *= pdr if item.physical?
value *= mdr if item.magical?
value *= rec if item.damage.recover?
value = apply_critical(value) if @result.critical
value = apply_variance(value, item.damage.variance)
value = apply_guard(value)
@result.make_damage(value.to_i, item)
end
end
就是把这个局部脚本拿出来。加了类(新建很多或者放的很前面被覆盖,均无效)
话说三种挑一种即可。还有什么问题加Q1286124843即可,只要你这个能看懂。我都能解答。不然很难沟通
听说很难。伤害公式都应该知道吧 |
|