设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1511|回复: 3
打印 上一主题 下一主题

[已经解决] 如何制作群嘲技能

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
161 小时
注册时间
2011-2-8
帖子
274
跳转到指定楼层
1
发表于 2011-8-3 11:58:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
之前也搜索到了XP区很多关于嘲讽技能的帖子,就是不知道VX该怎么弄
具体效果:1 该技能必须在回合中最先出手(不知道是不是要用到那个速度修正、、我一直不知道那是什么意思)
2 该技能会给施法者一个持续1回合的加防状态(脚本可以与这个状态挂钩)
3 在本回合内,敌人的所有单体伤害技能或攻击强制攻击嘲讽施法者,而群体伤害和无伤害技能目标维持不变
(关于无伤害技能目标维持不变。。。如果很麻烦的话可以忽略)

Lv2.观梦者

梦石
0
星屑
354
在线时间
1036 小时
注册时间
2011-5-19
帖子
2098
2
发表于 2011-8-3 12:22:11 | 只看该作者
1,自问自答正确,大不了用公共事件,增加速度;
2,同样用公共事件,加防;
3,还是公共事件,设置变数作为行动的概率,接着条件分歧,在强制执行的动作中设置敌方行动。
3的缺点:
1,设置好人物,技能后就不能换队列了,否则就变成卖队友了。当然你可以设置对应的4个技能,在队员更换时用公共事件判断来更改技能;
2,敌人发动的一般都是攻击……虽然有条件分歧和变数来设置概率,但因为敌人的不同,所以发动的技能也应该不同。例如你设置了小火球之术,开始打小怪还可以,但到了最终BOSS那里,你发现他来了个小火球之术…………ORZ!
ps:楼主尽情无视我吧~我是新手一枚~只能打酱油的说{:nm_9:}

点评

额。。我这里怪的AI都很复杂的。。这样没法弄了  发表于 2011-8-3 16:13
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
554 小时
注册时间
2007-6-25
帖子
1188
3
发表于 2011-8-3 19:48:25 | 只看该作者
本帖最后由 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-8 12:40
唔,可以汉化一下么,脚本盲表示看不明白。没啥要用两个状态  发表于 2011-8-3 22:53
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
161 小时
注册时间
2011-2-8
帖子
274
4
 楼主| 发表于 2011-8-4 10:04:49 | 只看该作者
本帖最后由 神蛋威武 于 2011-8-6 16:47 编辑


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


回复

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-10 17:41

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表