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

Project1

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

[已经解决] 请问怎么做到放某个技能后马上又到自己行动?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1587
在线时间
594 小时
注册时间
2014-7-9
帖子
105

开拓者

跳转到指定楼层
1
发表于 2016-4-30 14:16:25 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
就是某角色发动某个技能后,该角色马上可以行动.
就是发动技能后该角色可以再行动一次,有类似的范例或者脚本么?
事件貌似无法做到,脚本会很难写吗?感觉好像会很难的样子...
如果我真是问了很麻烦的问题...大家就无视吧..

点评

我用的就是默认+CP的战斗系统.如果用加速度的方法确实可以实现,但是视觉上只是单纯速度加了而已.没有那种无视行动顺序的感觉  发表于 2016-5-1 07:45
CP制战斗脚本  发表于 2016-4-30 15:36

Lv4.逐梦者 (版主)

梦石
0
星屑
9532
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

16
发表于 2016-5-2 09:23:17 | 只看该作者
本帖最后由 RyanBern 于 2016-5-4 08:44 编辑
聪妖 发表于 2016-5-2 01:05
是这样的,因为这个技能敌我双方都会用到,但是我会在这个技能带入公共事件
为发动这个技能的角色或者敌人 ...


可以,改成这样:
RUBY 代码复制
  1. @phase4_act_continuation = [57, 58, 59].include?(@active_battler.current_action.skill_id) ? 1 : 0

或者指定范围:
RUBY 代码复制
  1. @phase4_act_continuation = (57..60).include?(@active_battler.current_action.skill_id) ? 1 : 0


脚本469~511行
RUBY 代码复制
  1. def update_phase4_step2
  2.   # 強制アクションでなければ
  3.   unless @active_battler.current_action.forcing
  4.     # 制約が [敵を通常攻撃する] か [味方を通常攻撃する] の場合
  5.     if @active_battler.restriction == 2 or @active_battler.restriction == 3
  6.       # アクションに攻撃を設定
  7.       @active_battler.current_action.kind = 0
  8.       @active_battler.current_action.basic = 0
  9.     end
  10.     # 制約が [行動できない] の場合
  11.     if @active_battler.restriction == 4
  12.       # アクション強制対象のバトラーをクリア
  13.       $game_temp.forcing_battler = nil
  14.       if @phase4_act_continuation == 0 and @active_battler.cp >= 65535
  15.         # ステート自然解除
  16.         @active_battler.remove_states_auto
  17.         # CP消費
  18.         @active_battler.cp -= 65535
  19.         # ステータスウィンドウをリフレッシュ
  20.         @status_window.refresh
  21.       end
  22.       # ステップ 1 に移行
  23.       @phase4_step = 1
  24.       return
  25.     end
  26.   end
  27.   # 在这里写哪些状态不消耗 CP(注意,该状态必须能自行解除,否则会有无限行动的BUG),例如,身上有17,18,19号状态之一时,行动不消耗 CP
  28.   @phase4_act_continuation += 1 if [17, 18, 19].any?{|id| @active_battler.state?(id)}
  29.   # アクションの種別で分岐
  30.   case @active_battler.current_action.kind
  31.   when 0
  32.   # 攻撃?防御?逃げる?何もしない時の共通消費CP
  33.   @active_battler.cp -= CP_COST_BASIC_ACTIONS if @phase4_act_continuation == 0
  34.   when 1
  35.   # 在这里写哪些特技不消耗 CP
  36.   @phase4_act_continuation += 1 if [57, 58, 59].include?(@active_battler.current_action.skill_id)
  37.   # スキル使用時の消費CP
  38.   @active_battler.cp -= CP_COST_SKILL_ACTION if @phase4_act_continuation == 0
  39.   when 2
  40.   # 在这里写哪些物品不消耗 CP
  41.   @phase4_act_continuation += 1 if [57, 58, 59].include?(@active_battler.current_action.item_id)
  42.   # アイテム使用時の消費CP
  43.   @active_battler.cp -= CP_COST_ITEM_ACTION if @phase4_act_continuation == 0
  44.   end
  45.   # ステート自然解除
  46.   @active_battler.remove_states_auto
  47.   # 呼び戻す
  48.   xrxs_bp1_update_phase4_step2
  49. end

点评

之前那个问题已经解决了,暂时没有发现其他问题.非常感谢你帮忙.  发表于 2016-5-4 23:02
已编辑  发表于 2016-5-4 08:44
愿意帮忙我就很高兴了,反正我一天也只有1.2个小时时间填坑所以不急.就目前为止已经有不少以外收获了  发表于 2016-5-4 00:00
有时间我改一下  发表于 2016-5-3 23:55
测试了1下,要是带状态防御或攻击确实不消耗CP,但使用技能或者物品的话,依然会消耗CP.到下次自己回合不执行技能和物品才会有不消耗CP的效果  发表于 2016-5-3 23:22
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1587
在线时间
594 小时
注册时间
2014-7-9
帖子
105

开拓者

15
 楼主| 发表于 2016-5-2 01:05:25 | 只看该作者
RyanBern 发表于 2016-5-1 15:54
501行加入这个:
@phase4_act_continuation = @active_battler.current_action.skill_id == 57 ? 1 : 0[/pr ...

是这样的,因为这个技能敌我双方都会用到,但是我会在这个技能带入公共事件
为发动这个技能的角色或者敌人插入该角色或者敌人专用的特效.

所以只有一个技能不够用,所以我想自己可以添加其他技能ID.
例如,你写的是ID57号技能带这个效果.我可以按照这个效果自己增加其他ID 例如 58 59 60等等也带这个效果,把原本只有57号技能才有的效果 增加复数我指定的技能,
也就是照着57号技能,生产更多和57号技能一样效果的技能.
可能要求有些多,但也想问一下.这个效果能量产吗?
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

14
发表于 2016-5-1 17:08:28 | 只看该作者
我想说你这样设置后不就产生了个BUG了吗
无限技能

点评

傻?是指作者还是指玩家?作者的话目前看这个帖子,没继续修改的话是肯定有这个BUG。玩家的话,对玩家有好处的何乐而不为。  发表于 2016-5-1 20:32
我是想到应该没人这么傻  发表于 2016-5-1 17:25
其他所有角色和敌人必须等那个角色没MP放那个技能了,才有机会行动  发表于 2016-5-1 17:18
本来CP战斗要等CP进度条满了才能行动的啊。可这么改了后,使用那个技能后还是那个角色行动,然后他就可以一直用那个技能,直到他不用出那个技能  发表于 2016-5-1 17:17
怎么说(无限极能是个什么BUG)  发表于 2016-5-1 17:12
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
77 小时
注册时间
2016-2-2
帖子
278
13
发表于 2016-5-1 16:19:11 | 只看该作者
看来我10楼的意见没被采纳啊(应该说被无视了),果然事件还是建立在脚本上的(可我却是个脚本盲),毕竟你我的战斗方式都不同(话说CP制还是没听懂是什么)

点评

了解,略懂了一点  发表于 2016-5-3 19:35
角色行动条满了就是哪个角色的回合,操作完就马上可以进入战斗不用像传统回合制那样吧全队人操作完才能进入战斗  发表于 2016-5-2 21:51
MA没碰过,不过VX和VA也有CP,甚至是RATB的战斗系统了.传统回合制是1队人做完操作然后才开始战斗的,CP是个人单个人操作完就可以开始战斗了  发表于 2016-5-2 21:45
理解到哪去了,和MV,VA还是XP又没什么关系,那是游戏内容,不是制作器内容。这种市面上一般叫做半回合制,轩辕剑就是例子  发表于 2016-5-2 11:36
我是用MV和VA的……  发表于 2016-5-2 09:36
呵呵
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
9532
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

12
发表于 2016-5-1 15:54:45 | 只看该作者
501行加入这个:
RUBY 代码复制
  1. @phase4_act_continuation = @active_battler.current_action.skill_id == 57 ? 1 : 0

这句话的作用就是当角色或敌人释放57号技能时不消耗对于角色或敌人的CP值。

点评

没太明白你的需求。“量产”的含义是什么?你在楼下回复我好了。  发表于 2016-5-2 00:17
那个,可能有些挑剔,这个技能能量产吗?因为我这个技能我会带入公共事件做视角效果.所以几乎得每个会这个技能的角色和敌人都要做一个,请问能行吗?  发表于 2016-5-1 23:30
没看到楼主的这方面需求啊。  发表于 2016-5-1 16:58
这样技能CP消耗解决了 不过楼主想定义多的功能效果 还得在Game_Battler 3和Scene_Battle 4下手  发表于 2016-5-1 16:14
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1587
在线时间
594 小时
注册时间
2014-7-9
帖子
105

开拓者

11
 楼主| 发表于 2016-5-1 15:50:42 | 只看该作者
jiushiainilip19 发表于 2016-5-1 15:17
不过我想CP值战斗都是这些代码应该不会去设定其他的,你用了CP值战斗的话就这样
找到:Game_Battler 3 中
...

果然需要脚本知识啊...脚本盲压力有些大,怕驾驭不了....
是直接在Game_Battler 3 中 def skill_effect(user, skill) 下面插入吗?
可能有些挑剔,不过我本来是打算敌我双方都能用这个效果是吧两段都插入吗?

点评

抱歉,刚下班所以现在才回信息,我试试吧.无论怎么样,都感谢你的关注和帮忙  发表于 2016-5-1 23:27
我写的比较多 不过多看多试一会可以了解的更多 实在不行你就用下面版主给的呗!  发表于 2016-5-1 16:00
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
77 小时
注册时间
2016-2-2
帖子
278
10
发表于 2016-5-1 15:23:55 | 只看该作者
突然想到,你可以添加一个状态(效果如下图,要按图示来),然后再新建一个技能,技能会造成的状态变化就是新加的状态(其余数据可调节)

捕获.PNG (11.85 KB, 下载次数: 25)

捕获.PNG

捕获2.PNG (18.41 KB, 下载次数: 25)

捕获2.PNG

点评

速度调的越快越好~  发表于 2016-5-1 15:27
呵呵
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
596
在线时间
797 小时
注册时间
2014-7-1
帖子
578

开拓者

9
发表于 2016-5-1 15:17:17 | 只看该作者
本帖最后由 jiushiainilip19 于 2016-5-1 15:29 编辑

不过我想CP值战斗都是这些代码应该不会去设定其他的,你用了CP值战斗的话就这样
找到:Game_Battler 3 中
查找def skill_effect(user, skill) 也就是应用特技的效果 然后调用命令
RUBY 代码复制
  1. #判定行动方是我军
  2. #if user.is_a(Game_Actor)
  3. #判定行动方是敌军
  4. #if user.is_a(Game_Enemy)
  5. #判定角色行动是ID是1号角色
  6. #user.id==1
  7. #判定技能是何种属性(1)表示为1号属性
  8. #skill.element_set.include?(1)
  9. #那么:我需要角色1行动后在行动一次
  10. if user.is_a(Game_Actor) && user.id == 1
  11.   user.cp+=65535 #一般都是65535满值
  12. end
  13. #如果想是敌人就改成(Game_Enemy) 然后对应号敌人在数据库中的ID
  14. #如果想做到被击加CP值 就是
  15. if self.is_a(Game_Actor) && self.id == 1
  16.   self.cp+=65535 #一般都是65535满值
  17. end
  18. #用self最好在属性修正和计算暴击的下面来抒写 这个自己看吧 因为self.damage的命令在上面调用是不行的
  19. #当然你用不上可以无视
  20. #还有就是Game_Battler 3中的效果和Scene_Battle 4中的效果是有差别的
  21. #你可以把Game_Battler 3中的效果当作是使用技能时触发的效果
  22. #而Scene_Battle 4中是使用技能后触发的效果
  23. #这样说比较简单理解 当然想做的效果不一样就看你慢慢琢磨了
  24. #在Scene_Battle 4中也可以调用CP值
  25. # 在def update_phase4_step5 显示伤害下面调用 代码是
  26. if @active_battler.is_a?(Game_Enemy)
  27. if @active_battler.is_a?(Game_Actor)
  28. #表示行动方 而被击方则是
  29. if target.is_a?(Game_Enemy)
  30. if target.is_a?(Game_Actor)
  31. #好了就这些了 其他的自己多琢磨 我也就会这么多
  32. #建议最好在抒写的时候把技能的ID,范围, 属性, 角色的ID多判定清楚一些 以免照成未知的后果
  33. #多写一些备注 好在内容比较多的时候可以通过记忆查到到对应的定义内容
  34. #若还有疑问 在提问 暂时不知道要说些什么了



找到:Game_Battler 3 中
实际效果如下
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 应用特技效果
  3.   #     user  : 特技的使用者 (battler)
  4.   #     skill : 特技
  5.   #--------------------------------------------------------------------------
  6.   def skill_effect(user, skill)
  7.     # 清除会心一击标志
  8.     self.critical = false
  9.     # 特技的效果范围是 HP 1 以上的己方、自己的 HP 为 0、
  10.     # 或者特技的效果范围是 HP 0 的己方、自己的 HP 为 1 以上的情况下
  11.     if ((skill.scope == 3 or skill.scope == 4) and self.hp == 0) or
  12.        ((skill.scope == 5 or skill.scope == 6) and self.hp >= 1)
  13.       # 过程结束
  14.       return false
  15.     end
  16.     # 清除有效标志
  17.     effective = false
  18.     # 公共事件 ID 是有效的情况下,设置为有效标志
  19.     effective |= skill.common_event_id > 0
  20.     # 第一命中判定
  21.     hit = skill.hit
  22.     if skill.atk_f > 0
  23.       hit *= user.hit / 100
  24.     end
  25.     hit_result = (rand(100) < hit)
  26.     # 不确定的特技的情况下设置为有效标志
  27.     effective |= hit < 100
  28.     # 命中的情况下
  29.     if hit_result == true
  30.       # 计算威力
  31.       power = skill.power + user.atk * skill.atk_f / 100
  32.       if power > 0
  33.         power -= self.pdef * skill.pdef_f / 200
  34.         power -= self.mdef * skill.mdef_f / 200
  35.         power = [power, 0].max
  36.       end
  37. ##############################################         
  38.    if user.is_a(Game_Actor) && user.id == 1
  39.       user.cp+=65535
  40.     end     
  41. ##############################################         
  42.  
  43.       # 计算倍率
  44.       rate = 20
  45.       rate += (user.str * skill.str_f / 100)
  46.       rate += (user.dex * skill.dex_f / 100)
  47.       rate += (user.agi * skill.agi_f / 100)
  48.       rate += (user.int * skill.int_f / 100)

点评

^_^!啰嗦了一些 只是希望他多了解些 嘿嘿!  发表于 2016-5-1 15:56
有点繁琐,请看楼下我的回复。  发表于 2016-5-1 15:51
学习使我疲劳,打工使我疲惫,恋爱使我伤身,吸烟伤我肺腑,饮酒损我形象,旅游使我破费,月底不见铜板,只有在论坛里面看看各种大佬才能使我进去
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1587
在线时间
594 小时
注册时间
2014-7-9
帖子
105

开拓者

8
 楼主| 发表于 2016-5-1 15:16:25 | 只看该作者
傲天哲 发表于 2016-5-1 14:51
这应该可以这样,将公共事件的强制行动改一下,改成:
战斗者:敌人
行为:基本:什么都不做

这样就和1楼点评哪里一样了,而且CP制战斗速度快的敌人可以在角色A行动之前就可以行动了.还有己方角色也得什么都不做才行.但是这样一来速度慢的己方就相当于被速度快的敌人白打了....
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-26 23:17

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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