| 赞 | 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即可,只要你这个能看懂。我都能解答。不然很难沟通 
听说很难。伤害公式都应该知道吧 |   
 
 
 
 |