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

Project1

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

[已经过期] 普通攻击与力量特技合并,求解

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
439 小时
注册时间
2013-3-2
帖子
710
跳转到指定楼层
1
发表于 2013-8-20 02:05:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 guoyq1988 于 2013-8-22 13:57 编辑

因为鄙人的游戏里有可以反弹物理和魔法的技能
但,貌似只能反弹力量特技,我想把普通攻击和物理特技归类在一起,或者说把它们的公式定义为一样
求前辈指点,可行么?

反弹物理特技脚本
RUBY 代码复制
  1. # ▼▲▼ xrxs27a. 特殊効果 SuperEX「魔法反射」 ver.1.03 ▼▲▼
  2. # by 桜雅 在土, clum-sea
  3.  
  4. #==============================================================================
  5. # □ カスタマイズポイント
  6. #==============================================================================
  7. class Scene_Battle
  8.   SKILL_REFREX_STATE_NAME         = "攻击反弹"   # 「魔法反射」ステート名
  9.   SKILL_REFREX_ANIMATION_ID       =  97          #  魔法反射のアニメーションID
  10.   REFREX_PENETRATION_SKILL_ELEMENT_NAME = "攻击反弹"   # 「反射貫通」属性名
  11. end
  12. class Scene_Battle
  13.   #--------------------------------------------------------------------------
  14.   # ○ スキルが魔法であるかどうか
  15.   #--------------------------------------------------------------------------
  16.   def skill1_is_a_magic?(skill)
  17.     return false unless skill.is_a?(RPG::Skill)
  18.     return (skill.int_f > skill.str_f)
  19.   end
  20. end
  21.  
  22. #=============================================================================
  23. # ◇ 「魔法反射」ステート by 桜雅 在土
  24. #=============================================================================
  25. class Scene_Battle
  26.   #--------------------------------------------------------------------------
  27.   # ● スキルまたはアイテムの対象側バトラー設定
  28.   #--------------------------------------------------------------------------
  29.   alias xrxs_skill_refrex_set_target_battlers set_target_battlers
  30.   def set_target_battlers(scope)
  31.     xrxs_skill_refrex_set_target_battlers(scope)
  32.     # スキル使用時
  33.     if @active_battler.current_action.kind == 1
  34.       # 魔法である場合
  35.       unless skill1_is_a_magic?(@skill)
  36.         element_id = get_refrex_skill_penetration_id
  37.         # スキルに反射貫通が付加されているか。
  38.         skill_state_penetration_skill(@skill, element_id, @active_battler)
  39.         if @active_battler.penetration != true
  40.           # 検索
  41.           for target in @target_battlers.dup
  42.             # 魔法反射ステートにかかっているか?
  43.             state_id = get_skillal_refrex_id
  44.             if state_id != nil and target.state?(state_id)
  45.               # 反射---
  46.               target.refrexed = true
  47.               @target_battlers.delete(target)
  48.               unless @target_battlers.include?(@active_battler)
  49.                 @target_battlers.push(@active_battler)
  50.               end
  51.               # ---反射の設定完了
  52.             end
  53.           end
  54.         end
  55.       end
  56.     end
  57.   end
  58.   #--------------------------------------------------------------------------
  59.   # ● スキルに反射貫通属性が付加されているか
  60.   #--------------------------------------------------------------------------
  61.   def skill_state_penetration_skill(skill, element_id, user)
  62.     if skill.element_set.include?(element_id)
  63.       # 反射フラグリセット
  64.       user.refrexed = false
  65.       # 貫通フラグをセット
  66.       user.penetration = true
  67.     end
  68.   end
  69.   #--------------------------------------------------------------------------
  70.   # ● フレーム更新 (メインフェーズ ステップ 4 : 対象側アニメーション)
  71.   #--------------------------------------------------------------------------
  72.   alias xrxs_skill_refrex_update_phase4_step4 update_phase4_step4
  73.   def update_phase4_step4
  74.     # 対象側アニメーション
  75.     xrxs_skill_refrex_update_phase4_step4
  76.     # 魔法反射(貫通しない場合)
  77.     for target in $game_party.actors + $game_troop.enemies - @target_battlers
  78.       next if target.refrexed == nil or target.refrexed == false
  79.       target.animation_id = SKILL_REFREX_ANIMATION_ID
  80.       target.animation_hit = (target.damage != "Miss")
  81.       # 反射フラグリセット
  82.       target.refrexed = false
  83.     end
  84.     for target in @target_battlers
  85.       # 反射フラグリセット
  86.       target.refrexed = false
  87.     end
  88.     # 貫通フラグリセット
  89.     @active_battler.penetration = false
  90.   end
  91.   #--------------------------------------------------------------------------
  92.   # ○ 魔法反射ステートのID取得
  93.   #--------------------------------------------------------------------------
  94.   def get_skillal_refrex_id
  95.     if @xrxs27a_skill_refrex_state_id == nil
  96.       result = nil
  97.       for i in 1 ... $data_states.size
  98.         if $data_states[i].name[/\A#{SKILL_REFREX_STATE_NAME}\Z/]
  99.           result = $data_states[i].id
  100.           break
  101.         end
  102.       end
  103.       @xrxs27a_skill_refrex_state_id = result
  104.     end
  105.     return @xrxs27a_skill_refrex_state_id
  106.   end
  107.   #--------------------------------------------------------------------------
  108.   # ○ 反射貫通属性のID取得
  109.   #--------------------------------------------------------------------------
  110.   def get_refrex_skill_penetration_id
  111.     if @xrxs27a_refrex_penetration_element_id == nil
  112.       result = nil
  113.       for i in 1 ... $data_system.elements.size
  114.         if $data_system.elements[i] == REFREX_PENETRATION_SKILL_ELEMENT_NAME
  115.           result = i
  116.           break
  117.         end
  118.       end
  119.       @xrxs27a_refrex_penetration_element_id = result
  120.     end
  121.     return @xrxs27a_refrex_penetration_element_id
  122.   end
  123. end
  124. #==============================================================================
  125. # ■ Game_Battler
  126. #==============================================================================
  127. class Game_Battler
  128.   attr_accessor :refrexed
  129.   attr_accessor :penetration
  130. end

   
【RMXP共享】50个脚本整合的系统

Lv1.梦旅人

梦石
0
星屑
50
在线时间
439 小时
注册时间
2013-3-2
帖子
710
2
 楼主| 发表于 2013-8-20 12:15:10 | 只看该作者
没人来指点,要沉了么?

   
【RMXP共享】50个脚本整合的系统
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33441
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

3
发表于 2013-8-20 18:26:12 | 只看该作者
可以实现的啊,其实也很简单。把普通攻击和物理特技算在一起,把魔法特技算在一起。
但是别人的脚本看起来很费劲,没处下手修改。
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
439 小时
注册时间
2013-3-2
帖子
710
4
 楼主| 发表于 2013-8-20 21:19:05 | 只看该作者
@芯☆淡茹水   求修改方法,我自己修改看看
谢谢

   
【RMXP共享】50个脚本整合的系统
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33441
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

5
发表于 2013-8-21 18:22:15 | 只看该作者
没看你的原脚本,所以改就无从说起。
在默认脚本上改,Game_Batter 3 里德应用普通攻击效果和应用特技攻击效果里改。在减少 HP 之前条件分歧,如果满足反射的条件(如反射装备等),普通攻击就直接是
物理伤害才反射,特技效果里需要再分歧,判断特技的威力(威力大于0,是攻击技能)和攻击力是否大于0。(等于0是魔法技能;大于0是物理技能),然后再反射给攻击者
的伤害百分比

点评

非常感谢芯大,目前在整合芯式战斗的脚本,正在测试八方向行走和回血技能。。。  发表于 2013-8-21 23:10
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
439 小时
注册时间
2013-3-2
帖子
710
6
 楼主| 发表于 2013-8-21 20:12:25 | 只看该作者
芯☆淡茹水 发表于 2013-8-21 18:22
没看你的原脚本,所以改就无从说起。
在默认脚本上改,Game_Batter 3 里德应用普通攻击效果和应用特技攻击 ...

用的是你的芯式战斗系统,应该是默认的Game_Batter 3
谢谢芯大的指点,虽然有点迷茫,但我放弃这个想法了,原因嘛,如果BOSS或主角用了一个能反魔反特连普通攻击都能反的技能,是不是有点变态,所以想把普通攻击留下,再把特技伤害搞高点就好了

请问芯大,芯式战斗系统里的随机两体攻击能否变成3体4体乃至7体这样的修改

点评

可以单独给你修改下,过几天给你  发表于 2013-8-21 22:16

   
【RMXP共享】50个脚本整合的系统
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 11:52

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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