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

Project1

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

[已经过期] 关于XP横版脚本与VX横版脚本的区别

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3176
在线时间
1442 小时
注册时间
2009-7-27
帖子
1454
跳转到指定楼层
1
发表于 2017-10-18 14:54:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我玩过VX横版战斗时可以用二刀流的,而且可以做多次连击的技能,甚至可以做到随机攻击敌人,而不是全体技能,而且MISS还是分开来计算的,不是一个技能MISS了所有的动画都是MISS了。请问XP是否无法实现像VX那样的横版效果?感觉画面更喜欢XP,但是兼容和质量VX要更胜一筹。

博客:我的博客

Lv5.捕梦者 (版主)

梦石
1
星屑
23984
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

2
发表于 2017-10-18 15:14:37 手机端发表。 | 只看该作者
这种效果不受引擎限制,自己花钱找人写呗。
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

遠航の猫咪

梦石
3
星屑
23109
在线时间
2386 小时
注册时间
2005-10-15
帖子
1166

开拓者

3
发表于 2017-10-18 17:48:15 | 只看该作者

2

本帖最后由 SailCat 于 2017-10-18 18:00 编辑

这和横版没有关系

二刀流:有多个脚本,比如http://rpg.blue/forum.php?mod=viewthread&tid=225786
技能多次连击:http://rpg.blue/forum.php?mod=viewthread&tid=1020
技能对象随机化:http://rpg.blue/forum.php?mod=viewthread&tid=31747 之范例2
技能多次连击的贴子好像挂了,代码在这里:
RUBY 代码复制
  1. #==============================================================================
  2. # ■ 连击效果(完美版) v1.3 by SailCat
  3. #------------------------------------------------------------------------------
  4. # 数据库设定(特技):
  5. #   描述:原描述 #hc=连击次数
  6. #   例如:恢复中量HP #hc=2
  7. #         对鸟系敌人特效 #hc=9
  8. # 注意这是连击次数,实际攻击的回数是这个回数+1回。
  9. # 连击次数是负数的话,将取绝对值处理。
  10. # 视觉效果是发动动画只放1回,击中动画放N回,伤害值显示N次,
  11. # 所以,如使用了齐时战斗的话,要修改倒数第四行,该行内容为:
  12. #     @phase4_step = 4
  13. # 改为@phase4_step = 3
  14. # 其他:RTAB不适用
  15. #==============================================================================
  16. module Data_Note
  17.   #--------------------------------------------------------------------------
  18.   # ● 常量
  19.   #--------------------------------------------------------------------------
  20.   SEPARATOR = "#"                # 备注与正文的分隔符,可以更改为其他字符
  21.   SEP_REGEX = /#{SEPARATOR}.+$/  # 切分用正则表达式,请不要修改
  22.   #--------------------------------------------------------------------------
  23.   # ● 备注值(注:不可运行时修改)
  24.   #--------------------------------------------------------------------------
  25.   def note
  26.     # 如果是公共事件,用前面的注释
  27.     if self.is_a?(RPG::CommonEvent)
  28.       if @note.nil?
  29.         index = 0
  30.         index += 1 while list[index].code == 108 or list[index].code == 408
  31.         @note = (list[0...index].collect {|x| x.parameters[0]}).join(";")
  32.       end
  33.     # 如果是队伍,用第1页前面的注释
  34.     elsif self.is_a?(RPG::Troop)
  35.       if @note.nil?
  36.         list = pages[0].list
  37.         index = 0
  38.         index += 1 while list[index].code == 108 or list[index].code == 408
  39.         @note = split((list[0...index].collect {|x| x.parameters[0]}).join(";"))
  40.       end
  41.     # 如果是其他,用描述或者名称来备注
  42.     else
  43.       @note ||= has_description? ? split(@description) : split(@name)
  44.     end
  45.   end
  46.   #--------------------------------------------------------------------------
  47.   # ● 取得备注值
  48.   #--------------------------------------------------------------------------
  49.   def method_missing(param_name, *args, &block)
  50.     return get_note(param_name.to_s, args[0])
  51.   end
  52.   #--------------------------------------------------------------------------
  53.   # ● 是否有描述字段(内部使用)
  54.   #--------------------------------------------------------------------------
  55.   def has_description?
  56.     instance_variables.include?("@description")
  57.   end
  58.   #--------------------------------------------------------------------------
  59.   # ● 切分备注用字段(内部使用)
  60.   #--------------------------------------------------------------------------
  61.   def split(text)
  62.     text.slice(SEP_REGEX).to_s
  63.   end
  64.   #--------------------------------------------------------------------------
  65.   # ● 取得备注参数值(内部使用或重名时使用)
  66.   #--------------------------------------------------------------------------
  67.   def get_note(param_name, default = nil)
  68.     return default if note == ""
  69.     param_regex = /^#{param_name}\b([+:=\-]?(.*?))$/
  70.     @note_array ||= @note[1, @note.length - 1].split(";")
  71.     @note_array.each do |x|
  72.       if x[param_regex] != nil
  73.         value = $1
  74.         # 开关型(+)
  75.         if value.strip == "" or value[0] == 43
  76.           return true
  77.         # 开关型(-)
  78.         elsif value[0] == 45
  79.           return false
  80.         # 数值型
  81.         elsif value[0] == 61
  82.           return (eval($2) rescue default)
  83.         # 字符型
  84.         elsif value[0] == 58
  85.           return $2
  86.         # 不能识别
  87.         else
  88.           return nil
  89.         end
  90.       end
  91.     end
  92.     return default
  93.   end
  94. end
  95. #==============================================================================
  96. # ■ RPG 模块的植入
  97. #------------------------------------------------------------------------------
  98. #   以下植入12个数据库内容模块
  99. #==============================================================================
  100. module RPG
  101.   [Actor, Class, Enemy, State, Animation, Tileset].each do |c|
  102.     c.send :include, Data_Note
  103.     c.send :define_method, :name do
  104.       @name1 ||= @name.sub(Data_Note::SEP_REGEX) {|s| ""}
  105.     end
  106.     c.send :define_method, :name= do |value|
  107.       @name1 = value
  108.       @name = value + Data_Note::SEPARATOR + note
  109.     end
  110.   end
  111.   [Item, Skill, Weapon, Armor].each do |c|
  112.     c.send :include, Data_Note
  113.     c.send :define_method, :description do
  114.       @description1 ||= @description.sub(Data_Note::SEP_REGEX) {|s| ""}
  115.     end
  116.     c.send :define_method, :description= do |value|
  117.       @description1 = value
  118.       @description = value + Data_Note::SEPARATOR + note
  119.     end
  120.   end
  121.   [Troop, CommonEvent].each do |c|
  122.     c.send :include, Data_Note
  123.   end
  124. end
  125. #==============================================================================
  126. # ■ 连击效果实装
  127. #==============================================================================
  128. module RPG
  129.   class Skill; def hit_count; hc(0).abs; end; end
  130.   class Sprite < ::Sprite
  131.     def effect?
  132.       @_whiten_duration > 0 or
  133.       @_appear_duration > 0 or
  134.       @_escape_duration > 0 or
  135.       @_animation_duration > 0
  136.     end
  137.     def damage_effect?
  138.       @_damage_duration > 0 or
  139.       @_collapse_duration > 0
  140.     end
  141.   end
  142. end
  143. class Spriteset_Battle
  144.   def damage_effect?
  145.     for sprite in @enemy_sprites + @actor_sprites
  146.       return true if sprite.damage_effect?
  147.     end
  148.     return false
  149.   end
  150. end  
  151. class Scene_Battle
  152.   unless method_defined? :sailcat_update_phase4_step1
  153.     alias sailcat_update_phase4_step1 update_phase4_step1
  154.     alias sailcat_make_skill_action_result make_skill_action_result
  155.     alias sailcat_update_phase4_step5 update_phase4_step5
  156.   end
  157.   def update_phase4_step1
  158.     @hit_count = 0
  159.     sailcat_update_phase4_step1
  160.   end
  161.   def make_skill_action_result
  162.     sailcat_make_skill_action_result
  163.     @hit_count = @skill.hit_count
  164.   end
  165.   def update_phase4_step5
  166.     sailcat_update_phase4_step5
  167.     if @hit_count > 0
  168.       for target in @target_battlers.clone
  169.         if target.dead?
  170.           if @target_battlers.size > 1
  171.             @target_battlers.delete(target)
  172.           else
  173.             @target_battlers.delete(target)
  174.             if target.is_a?(Game_Enemy)
  175.               target = $game_troop.smooth_target_enemy(target.index)
  176.             else
  177.               target = $game_party.smooth_target_actor(target.index)
  178.             end
  179.             if target.is_a?(Game_Battler)
  180.               @target_battlers.push(target)
  181.             end
  182.           end
  183.         end
  184.       end
  185.       if @target_battlers.size == 0
  186.         return
  187.       end
  188.       for target in @target_battlers
  189.         if target.damage != nil
  190.           @phase4_step = 5
  191.           return
  192.         end
  193.         target.skill_effect(@active_battler, @skill)
  194.       end
  195.       # 如果你应用了23种战斗特效的公共事件版脚本请去掉下面几行的注释
  196.       # if @common_event_id > 0
  197.       #   common_event = $data_common_events[@common_event_id]
  198.       #   $game_system.battle_interpreter.setup(common_event.list, 0)
  199.       # end
  200.       @hit_count -= 1
  201.       @phase4_step = 4
  202.     end
  203.   end
  204. end


点评

那不是VX横板实现的,那是VX数据库默认就有的技能效果,XP的数据库没有这些效果,只能通过扩展来实现  发表于 2017-10-19 02:11
跟VX完全不是一个概念,我说的就是横版脚本VX能实现的,XP实现不了  发表于 2017-10-19 02:03
SailCat (小猫子·要开心一点) 共上站 24 次,发表过 11 篇文章 上 次 在: [2006年01月28日11:41:18 星期六] 从 [162.105.120.91] 到本站一游。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-21 18:51

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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