查看: 3725|回复: 18

[已经过期] 每回合怪物定值强化怎么实现?

[复制链接]
梦石
0
星屑
672
在线时间
132 小时
注册时间
2011-3-18
回帖
129
发表于 2018-1-9 17:43:40 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 eel 于 2018-1-9 17:51 编辑

比如每回合+20攻击,想单纯事件执行结果发现只能强化玩家的
强制执行战斗指令又要占用怪物行动,最多只能多一个部件专门负责强化
怎么实现回合开始时候,单个怪自动强化且不影响怪物的攻击?
评你毛个负分啊!
新人们辛辛苦苦挂的分就被你们些牛叉评没了!
好不容易挂的杂兵都被你们些牛叉评没了!

最萌的小猫

梦石
0
星屑
1347
在线时间
692 小时
注册时间
2011-11-5
回帖
3320
发表于 2018-1-9 18:56:18 | 显示全部楼层
同求,等待大佬
小猫,感情浓郁的天然嘿啾一只,属性:水,嘿啾,无轨迹流线萌。喜欢在正午伸出小爪子卖着各种次元萌。平行穿越次元萌差。
如需要小猫,请认准啾怪时空电话。这宇宙萌源的秘密,需要找到时空边界萌源能量爆发的封印钥匙。快来和小猫一同去冒险吧!
回复

使用道具 举报

梦石
0
星屑
1461
在线时间
815 小时
注册时间
2013-8-3
回帖
355
发表于 2018-1-9 19:27:11 | 显示全部楼层
把脚本放进去。
在公共事件101放一个变量250+20  
在公共事件102放一个变量250=0
技能计算公式:v[250] + a.atk * 4 - b.def * 2
这样就形成了这个技能每回合伤害增加20,战斗结束还原=0


神秘代码[pre lang="ruby"]module BattleManager
    def self.turn_end
    $game_temp.reserve_common_event(101)#公共事件101每回合执行一次
    @phase = :turn_end
    @preemptive = false
    @surprise = false
  end
  def self.battle_end(result)
    $game_temp.reserve_common_event(102) #公共事件102战斗结束执行
    @phase = nil
    @event_proc.call(result) if @event_proc
    $game_party.on_battle_end
    $game_troop.on_battle_end
    SceneManager.exit if $BTEST
  end
end[/pre]

【同人游戏】勇者斗恶龙TG
欢迎加入游戏测试群333599798
如有需私聊请加QQ:516425000
回复

使用道具 举报

梦石
0
星屑
672
在线时间
132 小时
注册时间
2011-3-18
回帖
129
 楼主| 发表于 2018-1-9 19:40:30 | 显示全部楼层
小小西 发表于 2018-1-9 19:27
把脚本放进去。
在公共事件101放一个变量250+20  
在公共事件102放一个变量250=0

自动执行吗?
如果是hp或者防御值呢?

点评

如果不嫌麻烦可以用状态叠加脚本,每回合换了状态也可以虐玩家  发表于 2018-1-9 19:46
正常执行 HP的话想虐玩家就特性加个HP再生5%(太变态估计玩家秒删游戏) 防御的话没想到  发表于 2018-1-9 19:46
评你毛个负分啊!
新人们辛辛苦苦挂的分就被你们些牛叉评没了!
好不容易挂的杂兵都被你们些牛叉评没了!
回复

使用道具 举报

梦石
0
星屑
672
在线时间
132 小时
注册时间
2011-3-18
回帖
129
 楼主| 发表于 2018-1-9 19:53:53 | 显示全部楼层
@小小茜
我还是加个部件吧,脚本啥的完全不会……
评你毛个负分啊!
新人们辛辛苦苦挂的分就被你们些牛叉评没了!
好不容易挂的杂兵都被你们些牛叉评没了!
回复

使用道具 举报

梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
回帖
659

开拓者

发表于 2018-1-9 20:01:05 | 显示全部楼层
本帖最后由 jianyulei 于 2018-1-9 20:05 编辑

脚本
[pre lang="ruby"]
#==============================================================================
# ■ RGSS3 能力値増加特徴 Ver2.01 by 星潟
#------------------------------------------------------------------------------
# 特徴を有する項目による能力値増加を割合の他に
# 特定の値で増加させる事が可能になります。
# 長すぎて2行になっても、自分で改行を行っていないのであれば機能すると思います。
# 記述方法を変える事で常時増加させる場合と
# 戦闘中のみ増加させる場合とで使い分けが可能です。
# なお、マイナスの値が指定された場合は、減算扱いとなります。
#------------------------------------------------------------------------------

#
#設定例(職業・ステート等のメモ欄に記入)
# <MHP:500>
# 最大HPが500増加する。
#
# <MMP:250>
# 最大HPが250減少する。
#
# <BATK:self.hp/5>
# 戦闘中、自分の現在HPの5分の1分、攻撃力が増加する。
#
# <BDEF:friends_unit.alive_members.size*50>
# 戦闘中、生存している味方数の50倍分、防御力が増加する。
#
# <MAT:$game_variables[9]>
# 魔法力が変数9の値分増加する。
#
# <MDF:$game_party.item_number($data_items[5])*10>
# 魔法防御がアイテムID5の所持数×10分増加する。
#
# <AGI:$game_party.gold/1000>
# 敏捷性が所持金の1000分の1の値分増加する。
#
# <BLUK:rand(1000)>
# 戦闘中、運の値を常に0~999の間のどれかの値で増加する。
#
# <HIT:$game_variables[11]>
# 命中率が変数11の値%分増加する。
#
# <TGR:50>
# 狙われ率が50%増加する。
#
# <BMHP:-50>
# HP弱体有効度が50%減少する。(耐性上昇)
#
# <ELE:3,-75>
# 属性ID3の有効度が75%低下する。(耐性上昇)
#
# <STA:2,25>
# ステートID2の有効度が25%増加する。(耐性低下)
#------------------------------------------------------------------------------
# なお、処理によってはループしてエラーを吐く場合がある為
# キャラクターの能力値が相互に影響を及ぼすような設定は避けて下さい。
# (<ATK:self.param(2)>と設定したり
#   <ATK:self.param(3)>と<DEF:self.param(2)>を1キャラクターに設定したり
#    常時増加値として敵のデータを参照するように設定するとエラーを吐きます)
#
# Ver1.01 テスト用のp文を消去。
# Ver1.02 指定値強化・弱体アイテム・スキルとの競合を解消。
# Ver2.00 新たに追加能力値/特殊能力値/弱体有効度
#          属性有効度/ステート有効度への設定が可能になりました。
# Ver2.01 属性有効度/ステート有効度への設定が
#          1つしか有効にならない不具合を修正しました。
#==============================================================================
module VU_F
#==============================================================================
  #空のハッシュを準備します。(消さないで下さい)
#------------------------------------------------------------------------------
  W1 = {}
#==============================================================================
  #通常能力値設定用キーワードを括弧内に設定します。
  #最大HPから運までの8種を順番に設定します。(変更不要です)
#------------------------------------------------------------------------------
  #空の配列を用意。
#------------------------------------------------------------------------------
  W1[0] = []
#------------------------------------------------------------------------------
  #★以下に設定★
#------------------------------------------------------------------------------
  W1[0].push("MHP")# 最大HP
  W1[0].push("MMP")# 最大MP
  W1[0].push("ATK")# 攻撃力
  W1[0].push("DEF")# 防御力
  W1[0].push("MAT")# 魔法力
  W1[0].push("MDF")# 魔法防御
  W1[0].push("AGI")# 敏捷性
  W1[0].push("LUK")# 運
#==============================================================================
  #追加能力値設定用キーワードを括弧内に設定します。
  #命中率からTP再生率までの10種を順番に設定します。(変更不要です)
#------------------------------------------------------------------------------
  #空の配列を用意。
#------------------------------------------------------------------------------
  W1[1] = []
#------------------------------------------------------------------------------
  #★以下に設定★
#------------------------------------------------------------------------------
  W1[1].push("HIT")# 命中率
  W1[1].push("EVA")# 回避率
  W1[1].push("CRI")# 会心率
  W1[1].push("CEV")# 会心回避率
  W1[1].push("MEV")# 魔法回避率
  W1[1].push("MRF")# 魔法反射率
  W1[1].push("CNT")# 反撃率
  W1[1].push("HRG")# HP再生率
  W1[1].push("MRG")# MP再生率
  W1[1].push("TRG")# TP再生率
#==============================================================================
  #特殊能力値設定用キーワードを括弧内に設定します。
  #狙われ率から経験値獲得率までの10種を順番に設定します。(変更不要です)
#------------------------------------------------------------------------------
  #空の配列を用意。
#------------------------------------------------------------------------------
  W1[2] = []
#------------------------------------------------------------------------------
  #★以下に設定★
#------------------------------------------------------------------------------
  W1[2].push("仇恨")# 狙われ率
  W1[2].push("GRD")# 防御効果率
  W1[2].push("REC")# 回復効果率
  W1[2].push("PHA")# 薬の知識
  W1[2].push("MCR")# MP消費率
  W1[2].push("TCR")# TPチャージ率
  W1[2].push("PDR")# 物理ダメージ率
  W1[2].push("MDR")# 魔法ダメージ率
  W1[2].push("FDR")# 床ダメージ率
  W1[2].push("EXR")# 経験獲得率
#==============================================================================
  #弱体有効度設定用キーワードを括弧内に設定します。
  #最大HPから運までの8種を順番に設定します。(変更不要です)
#------------------------------------------------------------------------------
  #空の配列を用意。
#------------------------------------------------------------------------------
  W1[3] = []
#------------------------------------------------------------------------------
  #★以下に設定★
#------------------------------------------------------------------------------
  W1[3].push("DBMHP")# 最大HP
  W1[3].push("DBMMP")# 最大MP
  W1[3].push("DBATK")# 攻撃力
  W1[3].push("DBDEF")# 防御力
  W1[3].push("DBMAT")# 魔法力
  W1[3].push("DBMDF")# 魔法防御
  W1[3].push("DBAGI")# 敏捷性
  W1[3].push("DBLUK")# 運
#==============================================================================
  #戦闘中に限定して作用する通常能力値設定用キーワードを括弧内に設定します。
  #最大HPから運までの8種を順番に設定します。(変更不要です)
#------------------------------------------------------------------------------
  #空の配列を用意。
#------------------------------------------------------------------------------
  W1[4] = []
#------------------------------------------------------------------------------
  #★以下に設定★
#------------------------------------------------------------------------------
  W1[4].push("BMHP")# 最大HP弱体
  W1[4].push("BMMP")# 最大MP弱体
  W1[4].push("BATK")# 攻撃力弱体
  W1[4].push("BDEF")# 防御力弱体
  W1[4].push("BMAT")# 魔法力弱体
  W1[4].push("BMDF")# 魔法防御弱体
  W1[4].push("BAGI")# 敏捷性弱体
  W1[4].push("BLUK")# 運弱体
#==============================================================================
  #戦闘中に限定して作用する追加能力値設定用キーワードを括弧内に設定します。
  #命中率からTP再生率までの10種を順番に設定します。(変更不要です)
#------------------------------------------------------------------------------
  #空の配列を用意。
#------------------------------------------------------------------------------
  W1[5] = []
#------------------------------------------------------------------------------
  #★以下に設定★
#------------------------------------------------------------------------------
  W1[5].push("BHIT")# 命中率
  W1[5].push("BEVA")# 回避率
  W1[5].push("BCRI")# 会心率
  W1[5].push("BCEV")# 会心回避率
  W1[5].push("BMEV")# 魔法回避率
  W1[5].push("BMRF")# 魔法反射率
  W1[5].push("BCNT")# 反撃率
  W1[5].push("BHRG")# HP再生率
  W1[5].push("BMRG")# MP再生率
  W1[5].push("BTRG")# TP再生率
#==============================================================================
  #戦闘中に限定して作用する特殊能力値設定用キーワードを括弧内に設定します。
  #狙われ率から経験値獲得率までの10種を順番に設定します。(変更不要です)
#------------------------------------------------------------------------------
  #空の配列を用意。
#------------------------------------------------------------------------------
  W1[6] = []
#------------------------------------------------------------------------------
  #★以下に設定★
#------------------------------------------------------------------------------
  W1[6].push("BTGR")# 狙われ率
  W1[6].push("BGRD")# 防御効果率
  W1[6].push("BREC")# 回復効果率
  W1[6].push("BPHA")# 薬の知識
  W1[6].push("BMCR")# MP消費率
  W1[6].push("BTCR")# TPチャージ率
  W1[6].push("BPDR")# 物理ダメージ率
  W1[6].push("BMDR")# 魔法ダメージ率
  W1[6].push("BFDR")# 床ダメージ率
  W1[6].push("BEXR")# 経験獲得率
#==============================================================================
  #戦闘中に限定して作用する弱体有効度設定用キーワードを括弧内に設定します。
  #最大HPから運までの8種を順番に設定します。(変更不要です)
#------------------------------------------------------------------------------
  #空の配列を用意。
#------------------------------------------------------------------------------
  W1[7] = []
#------------------------------------------------------------------------------
  #★以下に設定★
#------------------------------------------------------------------------------
  W1[7].push("BDBMHP")# 最大HP弱体
  W1[7].push("BDBMMP")# 最大MP弱体
  W1[7].push("BDBATK")# 攻撃力弱体
  W1[7].push("BDBDEF")# 防御力弱体
  W1[7].push("BDBMAT")# 魔法力弱体
  W1[7].push("BDBMDF")# 魔法防御弱体
  W1[7].push("BDBAGI")# 敏捷性弱体
  W1[7].push("BDBLUK")# 運弱体
#==============================================================================
  #属性有効度/ステート有効度設定用キーワードを順番に設定します。
#------------------------------------------------------------------------------
  #空の配列を用意。
#------------------------------------------------------------------------------
  W2 = []
#------------------------------------------------------------------------------
  #★以下に設定★
#------------------------------------------------------------------------------
  W2[0] = "ELE" #属性有効度
  W2[1] = "STA" #ステート有効度
  W2[2] = "BELE"#属性有効度(戦闘中のみ)
  W2[3] = "BSTA"#ステート有効度(戦闘中のみ)
#==============================================================================
end
class Game_BattlerBase
  #--------------------------------------------------------------------------
  # 通常能力値
  #--------------------------------------------------------------------------
  alias param_plus_exppf param_plus
  def param_plus(param_id)
    #元の処理に追加データを加算。
    param_plus_exppf(param_id) + ppf_param_plus(0,param_id)
  end
  #--------------------------------------------------------------------------
  # 追加能力値
  #--------------------------------------------------------------------------
  alias xparam_exppf xparam
  def xparam(param_id)
    #元の処理に追加データを加算。
    xparam_exppf(param_id) + ppf_param_plus(1,param_id)
  end
  #--------------------------------------------------------------------------
  # 特殊能力値
  #--------------------------------------------------------------------------
  alias sparam_exppf sparam
  def sparam(param_id)
    #元の処理に追加データを加算。   
   
   if param_id == 0
    sparam_exppf(param_id) * (1+ppf_param_plus(2,param_id))
  else
    sparam_exppf(param_id) + ppf_param_plus(2,param_id)
  end

  
  end
  #--------------------------------------------------------------------------
  # 弱体有効度
  #--------------------------------------------------------------------------
  alias debuff_rate_exppf debuff_rate
  def debuff_rate(param_id)
    #元の処理に追加データを加算。
    debuff_rate_exppf(param_id) + ppf_param_plus(3,param_id)
  end
  #--------------------------------------------------------------------------
  # 属性有効度
  #--------------------------------------------------------------------------
  alias element_rate_exppf element_rate
  def element_rate(element_id)
    #元の処理に追加データを加算。
    if element_id == 27 or element_id == 24 or element_id == 25 #改 特定属性加算
       if ppf_param_plus(4,element_id) == 0
        element_rate_exppf(element_id) + ppf_param_plus(4,element_id) - 1
      else
        element_rate_exppf(element_id) * ppf_param_plus(4,element_id)
      end
      
    else
     element_rate_exppf(element_id) + ppf_param_plus(4,element_id)
   end
  end
  #--------------------------------------------------------------------------
  # ステート有効度
  #--------------------------------------------------------------------------
  alias state_rate_exppf state_rate
  def state_rate(state_id)
    #元の処理に追加データを加算。
    state_rate_exppf(state_id) + ppf_param_plus(5,state_id)
  end
  #--------------------------------------------------------------------------
  # 追加データ
  #--------------------------------------------------------------------------
  def ppf_param_plus(type,param_id)
    data = 0
    #各特徴のデータを加算。
    feature_objects.each {|f|
    case type
    when 0..3
      #テキストデータを取得。
      text = f.ex_p_data[0 + type][param_id]
      #テキストデータを取得出来た場合は分岐。
      if text     
        #基本追加データを計算。
        sub_data = eval(f.ex_p_data[0 + type][param_id])
        #データが正常な場合は加算。
        data += sub_data if sub_data
      end
      #戦闘中でない場合は次の処理へ。
      next unless $game_party.in_battle
      #テキストデータを取得。
      text = f.ex_p_data[4 + type][param_id]
      #テキストデータを取得出来た場合は分岐。
      if text
        #戦闘中限定追加データを計算。
        sub_data = eval(text)
        #データが正常な場合は加算。
        data += sub_data if sub_data
      end
    when 4..5
      #テキストデータを取得。
      text = f.ex_r_data[type - 4][param_id]
      #テキストデータを取得出来た場合は分岐。
      if text
        #基本追加データを計算。
        sub_data = eval(f.ex_r_data[type - 4][param_id])
        #データが正常な場合は加算。
        data += sub_data if sub_data
      end
      #戦闘中でない場合は次の処理へ。
      next unless $game_party.in_battle
      #テキストデータを取得。
      text = f.ex_r_data[type - 2][param_id]
      #テキストデータを取得出来た場合は分岐。
      if text
        #戦闘中限定追加データを計算。
        sub_data = eval(text)
        #データが正常な場合は加算。
        data += sub_data if sub_data
      end
    end}
    #基本能力値でない場合は100.0で割る。
    data / (type == 0 ? 1 : 100.0)
  end
end
class RPG::BaseItem
  #--------------------------------------------------------------------------
  # 追加データ(基本能力値/追加能力値/特殊能力値/弱体有効度用)
  #--------------------------------------------------------------------------
  def ex_p_data
    #増加値設定が既に存在するならそれを返す。
    return @ex_p_data if @ex_p_data != nil
    #増加値設定用ハッシュを準備。
    @ex_p_data = {}
    #8回分処理。
    8.times {|n|
    #配列を生成。
    @ex_p_data[n] = []
    #設定項目内の文字列設定に応じてメモ欄からデータを取得。
    VU_F::W1[n].each {|i| @ex_p_data[n].push(/<#{i}[::](\S+)>/ =~ @note ? $1.to_s : "0")}}
# VU_F::W1[n].each {|i| @ex_p_data[n].push(/#{i}[::](\S+)/ =~ @note ? $1.to_s : "0")}}
    #データを返す。
    @ex_p_data
  end
  #--------------------------------------------------------------------------
  # 追加データ(属性有効度/ステート有効度用)
  #--------------------------------------------------------------------------
  def ex_r_data
    #増加値設定が既に存在するならそれを返す。
    return @ex_r_data if @ex_r_data != nil
    #増加値設定用ハッシュを準備。
    @ex_r_data = {}
    #4回分処理。
    4.times {|n|
    #配列を生成。
    @ex_r_data[n] = {}
    #行別に処理。
    @note.each_line {|l|
    #設定項目内の文字列設定に応じて各行からデータを取得。
    data = /<#{VU_F::W2[n]}[::](\d+),(\S+)>/ =~ l ? [$1.to_i,$2.to_s] : nil
# data = /#{VU_F::W2[n]}[:](\d+),(\S+)/ =~ l ? [$1.to_i,$2.to_s] : nil
    #nilの場合は次の行へ。
    next unless data
    #データを登録。
    @ex_r_data[n][data[0]] = data[1]}}
    #データを返す。
    @ex_r_data
  end
end
[/pre]


$game_troop.turn_count 用这个判断回合数
给敌人备注个 <MHP:$game_troop.turn_count*50>  意思是HP最大值为回合数50倍的数值,给有特性的地方备注。
效果是你会发现敌人每回合的HP最大值都会提升50点。

点评

eel
生效了 谢谢 之前没生效原因居然是血太厚没看出来……  发表于 2018-1-11 22:21
增加了HP上限不会让HP恢复,你可以试试攻击力,这样看起来更明显  发表于 2018-1-9 23:40
eel
没生效啊  发表于 2018-1-9 20:29
回复 1 0

使用道具 举报

梦石
0
星屑
672
在线时间
132 小时
注册时间
2011-3-18
回帖
129
 楼主| 发表于 2018-1-9 20:19:09 | 显示全部楼层
jianyulei 发表于 2018-1-9 20:01
[fold=脚本]

#==============================================================================

哦 谢谢 我等下去试试
评你毛个负分啊!
新人们辛辛苦苦挂的分就被你们些牛叉评没了!
好不容易挂的杂兵都被你们些牛叉评没了!
回复

使用道具 举报

梦石
1
星屑
14374
在线时间
2109 小时
注册时间
2017-9-28
回帖
607
发表于 2018-1-10 12:35:23 | 显示全部楼层
YEA-Lunatic States (疯狂的状态) 可以用脚本实现,只要你会基础脚本公式,回合前/后/过程中,每回合加攻击、根据自身属性加攻击、根据回合数加攻击、根据前一回合受到的伤害加攻击等等乱七八糟的都可以实现。具体脚本看我的帖子或签名档

点评

eel
请问下,有没有自爆技能啊?怪物用的那种  发表于 2018-1-11 23:14
VA外站脚本汉化群:226308173   |    部分远古文件备份:https://wwzv.lanzoue.com/b02rac5pc  密码:acgm
回复

使用道具 举报

梦石
1
星屑
14374
在线时间
2109 小时
注册时间
2017-9-28
回帖
607
发表于 2018-1-11 23:23:14 | 显示全部楼层
   有的,参考脚本疯狂的对象组件:破釜沉舟....

# 破釜沉舟效果 No.1: 自杀
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    # 最好用于使用后效果.使技能的使用者自杀(HP变为0),然后显示一段文本.
    #
    # 技能/物品备注:
    #   <使用后效果: suicide>
VA外站脚本汉化群:226308173   |    部分远古文件备份:https://wwzv.lanzoue.com/b02rac5pc  密码:acgm
回复

使用道具 举报

梦石
0
星屑
672
在线时间
132 小时
注册时间
2011-3-18
回帖
129
 楼主| 发表于 2018-1-12 21:53:53 | 显示全部楼层
Nil2018 发表于 2018-1-11 23:23
有的,参考脚本疯狂的对象组件:破釜沉舟....

# 破釜沉舟效果 No.1: 自杀

那个文件……怎么打开?

点评

eel
疯狂对象和破釜沉舟加入脚本里再备注里写<使用后效果: suicide>就行了吧?但是怪兽使用后没死啊  发表于 2018-1-13 21:35
晕,新建一个工程然后放在,data文件夹里啊。。。 rvdata2文件是va工程的数据文件可是rm常识唉  发表于 2018-1-13 11:21
eel
又点点评点到回复了!  发表于 2018-1-12 21:54
评你毛个负分啊!
新人们辛辛苦苦挂的分就被你们些牛叉评没了!
好不容易挂的杂兵都被你们些牛叉评没了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部