Project1

标题: 如何制作群嘲技能 [打印本页]

作者: 神蛋威武    时间: 2011-8-3 11:58
标题: 如何制作群嘲技能
之前也搜索到了XP区很多关于嘲讽技能的帖子,就是不知道VX该怎么弄
具体效果:1 该技能必须在回合中最先出手(不知道是不是要用到那个速度修正、、我一直不知道那是什么意思)
2 该技能会给施法者一个持续1回合的加防状态(脚本可以与这个状态挂钩)
3 在本回合内,敌人的所有单体伤害技能或攻击强制攻击嘲讽施法者,而群体伤害和无伤害技能目标维持不变
(关于无伤害技能目标维持不变。。。如果很麻烦的话可以忽略)dsu_plus_rewardpost_czw
作者: MSQ    时间: 2011-8-3 12:22
1,自问自答正确,大不了用公共事件,增加速度;
2,同样用公共事件,加防;
3,还是公共事件,设置变数作为行动的概率,接着条件分歧,在强制执行的动作中设置敌方行动。
3的缺点:
1,设置好人物,技能后就不能换队列了,否则就变成卖队友了。当然你可以设置对应的4个技能,在队员更换时用公共事件判断来更改技能;
2,敌人发动的一般都是攻击……虽然有条件分歧和变数来设置概率,但因为敌人的不同,所以发动的技能也应该不同。例如你设置了小火球之术,开始打小怪还可以,但到了最终BOSS那里,你发现他来了个小火球之术…………ORZ!
ps:楼主尽情无视我吧~我是新手一枚~只能打酱油的说{:nm_9:}
作者: SOU    时间: 2011-8-3 19:48
本帖最后由 SOU 于 2011-8-4 06:25 编辑
  1. #==============================================================================
  2. # ○隠密&挑発 Ver1.00
  3. # for RGSS2
  4. # 西瓜 / Space not far
  5. # http://muspell.raindrop.jp/
  6. # 敵の攻撃の対象外になったり、また必ず対象になるステートを作れます。
  7. #==============================================================================

  8. # 隠密ステートにかかっていると、敵のターゲット選択の候補になりません。
  9. # 挑発ステートにかかっているアクターがいると、敵はそれ以外のアクターを
  10. # ターゲット選択の候補にしません。
  11. # なお、どちらの効果も対象が全体の場合は無意味です。

  12. # ●注意
  13. # ・スキルなどで隠密/挑発のステートを受けた場合、
  14. #  ターゲットが決定されるタイミングがターン開始時という仕様上、
  15. #  隠密/挑発の効果が反映されるのは次ターン以降になります。

  16. module SNF
  17.   DISAPPEAR_STATE_ID = 33 # 隠密ステートのID
  18.   PROVOKE_STATE_ID = 34 # 挑発ステートのID
  19.   
  20. end
  21. class Game_Unit
  22.   def random_target
  23.     disappear = false
  24.     provoke = false
  25.     roulette = [] # 配列の定義
  26.     for member in existing_members
  27.       # 挑発しているメンバーがいるか否か
  28.       if member.states.include?($data_states[SNF::PROVOKE_STATE_ID])
  29.         provoke = true
  30.       end
  31.     end
  32.     for member in existing_members # 生存しているメンバーの配列取得
  33.       member.odds.times do
  34.         # 隠密状態の場合ルーレットに追加されない
  35.         if member.states.include?($data_states[SNF::DISAPPEAR_STATE_ID])
  36.           disappear = true
  37.         elsif provoke
  38.           if member.states.include?($data_states[SNF::PROVOKE_STATE_ID])
  39.             roulette.push(member)
  40.           end
  41.         else
  42.           roulette.push(member) # odds回数だけ配列にメンバーを追加
  43.         end # if member.states.include?($data_states[SNF::DISAPPEAR_STATE_ID])
  44.       end
  45.     end # member.odds.times do
  46.     if roulette.size <= 0 and disappear
  47.       roulette = existing_members
  48.     end
  49.     return roulette.size > 0 ? roulette[rand(roulette.size)] : nil # ランダムに選ぶ
  50.   end
  51. end
复制代码
我想这个应该是你需要的,在20行和21行设定状态ID
20行是与嘲讽相反的状态,就是不会被打的
21行是嘲讽状态

作者: 神蛋威武    时间: 2011-8-4 10:04
本帖最后由 神蛋威武 于 2011-8-6 16:47 编辑


额。。自顶一下,应该已经超过12小时了吧







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