Project1

标题: 怎么在事件中使用脚本加攻防 [打印本页]

作者: 露璐    时间: 2012-2-6 21:58
标题: 怎么在事件中使用脚本加攻防
我想用事件加攻防,但是好像只能赋值不能加……我的事件脚本是这么写的:
$game_actors[1].pdef += 1
结果出错dsu_plus_rewardpost_czw
作者: Wind2010    时间: 2012-2-6 21:59
不如用状态吧
作者: feizhaodan    时间: 2012-2-6 22:29
自己在Game_Actor项加一个方法不就行了?
作者: 过眼云烟    时间: 2012-2-7 00:09
pdef是Game_Battler 1中的一个方法,而Game_Actor中只有一个名为base_pdef的方法
这样做是不对的,你可以修改base_pdef方法来实现想要的效果,比如说在pdef1 + pdef2 + pdef3 + pdef4 + pdef5(分别是武器,四件套防具所加成的防御力)之外,加上第六项,你想设定的加成
作者: 露璐    时间: 2012-2-7 08:16
本帖最后由 露璐 于 2012-2-7 08:23 编辑
过眼云烟 发表于 2012-2-7 00:09
pdef是Game_Battler 1中的一个方法,而Game_Actor中只有一个名为base_pdef的方法
这样做是不对的,你可以修 ...


    pdef1 = weapon != nil ? weapon.pdef : 0
    pdef2 = armor1 != nil ? armor1.pdef : 0
    pdef3 = armor2 != nil ? armor2.pdef : 0
    pdef4 = armor3 != nil ? armor3.pdef : 0
    pdef5 = armor4 != nil ? armor4.pdef : 0
    pdef6 = $game_variables[51]
    return pdef1 + pdef2 + pdef3 + pdef4 + pdef5 + pdef6

像这样吗?
作者: 过眼云烟    时间: 2012-2-7 08:56
本帖最后由 过眼云烟 于 2012-2-7 08:57 编辑
露璐 发表于 2012-2-7 08:16
pdef1 = weapon != nil ? weapon.pdef : 0
    pdef2 = armor1 != nil ? armor1.pdef : 0
    pdef3  ...


是,这样就可以了,这样的话所有人物的物理防御都会加上变量51的值。不知道这样是你不是你想要的效果
如果不是,再改就是
作者: awyb3110    时间: 2012-2-7 11:07
本帖最后由 awyb3110 于 2012-2-7 16:01 编辑

def initialize
    @pdef = 0

def pdef=(pdef)
    @pdef += pdef - self.pdef
    @pdef = [[@pdef, -999].max, 999].min
  end
  
  def pdef
    n = base_pdef + @pdef
    for i in @states
      n *= $data_states.pdef_rate / 100.0
    end
    return Integer(n)
  end

正确的应该是这个样子,重新看了下,这样才是重新设置防御力。
用$game_party.actors[x] 像hp一样可以随便更改。


‘‘

Game_Battler 1
#--------------------------------------------------------------------------
  # ● 获取物理防御
  #--------------------------------------------------------------------------
  def pdef
    n = base_pdef
    for i in @states
      n *= $data_states.pdef_rate / 100.0
    end
    return Integer(n)
  end

改成

def pdef=(pdef)
    @pdef = 0if @pdef == nil
    @pdef += pdef - self.pdef
    @pdef = [[@pdef, -999].max, 999].min
  end
  
  def pdef
    n = base_pdef + @pdef
    for i in @states
      n *= $data_states.pdef_rate / 100.0
    end
    return Integer(n)
  end




──awyb3110于2012-2-7 22:10补充以上内容’’




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1