Project1

标题: 使用一个目标不是使用者的技能之后,给使用者附加状态 [打印本页]

作者: wwla703    时间: 2013-5-9 20:01
标题: 使用一个目标不是使用者的技能之后,给使用者附加状态
本帖最后由 wwla703 于 2013-5-10 11:55 编辑

就是说 角色使用一个目标是敌人的技能之后 给该角色附加状态 类似于强力技能的副作用
还想问一下如果做蓄力\咏唱的效果 就是准备一回合,下一回合才能放出的技能
作者: lirn    时间: 2013-5-9 20:48
1:在技能下面附加公共事件,对某指定角色附加某状态,如果使用这种方法,多个使用相同技能的角色需要设置各自的技能以及独立的公共事件。

2:简单的一个方法就是,你想要使用的技能在蓄力这个状态里附加学会该技能。可以设置蓄力状态只存在两回合或者替技能附加公共事件解除该蓄力状态。
作者: wwla703    时间: 2013-5-9 21:14
lirn 发表于 2013-5-9 20:48
1:在技能下面附加公共事件,对某指定角色附加某状态,如果使用这种方法,多个使用相同技能的角色需要设置 ...

第一个 这个方法我也知道的 但是因为打算是很多个角色能用同一个技能的   或者说有办法判定是哪个角色放的么
第二个 状态的话,并不是强制使用的,我打算是做成强制必须释放这个技能的......
作者: lirn    时间: 2013-5-10 10:08
wwla703 发表于 2013-5-9 21:14
第一个 这个方法我也知道的 但是因为打算是很多个角色能用同一个技能的   或者说有办法判定是哪个角色放 ...

1:有,这是后知后觉提供的方法,原帖找不到,这是我复制到WORD里的,愿意是简易的技能冷却,当技能使用后会自动附带某一状态,但可以做到你那效果。

找到 Game_Battler 的第 415 行左右能看到这样的一段
1.       
2.       
3.          #--------------------------------------------------------------------------
4.          # ● 技能/使用物品
5.          #    对使用目标使用完毕后,应用对于使用目标以外的效果。
6.          #--------------------------------------------------------------------------
7.          def use_item(item)
8.            pay_skill_cost(item) if item.is_a?(RPG::Skill)
9.            consume_item(item)   if item.is_a?(RPG::Item)
10.            item.effects.each {|effect| item_global_effect_apply(effect) }
11.          end
12.       

在 def use_item(item) 的下面加几行变成这样...
1.       
2.
  1.           #--------------------------------------------------------------------------
  2.           # ● 技能/使用物品
  3.           #    对使用目标使用完毕后,应用对于使用目标以外的效果。
  4.           #--------------------------------------------------------------------------
  5.           def use_item(item)
  6.             if $game_party.in_battle
  7.               state = $data_states[item.id + 50]
  8.               if item.is_a?(RPG::Skill) && state && !state.name.empty?
  9.                 add_new_state(state.id) unless state?(state.id)
  10.                 reset_state_counts(state.id)
  11.               end
  12.                  end
  13.             pay_skill_cost(item) if item.is_a?(RPG::Skill)
  14.             consume_item(item)   if item.is_a?(RPG::Item)
  15.             item.effects.each {|effect| item_global_effect_apply(effect) }
  16.            end
复制代码
这样就OK了
然后在 数据库-状态 里设置就可以了
这一行

      state = $data_states[item.id + 50]
里面的 50 可以自己改.
比如使用第 80 号技能后要冷却.那么就在第 80 + 50 = 130 号状态的特性里设置 禁用技能80号技能
冷却的回合就是该状态自动解除的回合范围.
不过要注意实际情况是你设置的回合数-1.
也就是说该技能要求冷却1回合.你就得设置成2.
然后把该状态起个名字.随便叫什么.只要不是空的就行.
当然你还想在特性里加点别的东西我没意见^_^
还有就是记得把 战斗时解除 打上勾.下面的文字提示都别设置





2,如果可以选择用与不用,可以让战术更加灵活,不然同伴挂了,自己空血,也只能眼白白地看着被别人干。如果是敌人必须要用,但简单,只要在行动那里设置当处于某中状态时,使用某种技能就是了。
作者: wwla703    时间: 2013-5-10 11:55
lirn 发表于 2013-5-10 10:08
1:有,这是后知后觉提供的方法,原帖找不到,这是我复制到WORD里的,愿意是简易的技能冷却,当技能使用 ...

解决了 谢谢




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