查看: 2994|回复: 2

[RMXP发布] [xyz][15/01/14更新]说好的技能特效

[复制链接]
梦石
0
星屑
50
在线时间
92 小时
注册时间
2014-12-19
回帖
95
发表于 2015-1-14 19:01:50 | 显示全部楼层 |阅读模式

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

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

×
本帖的缘由是这个帖子,征集了一些技能效果,然后将其实现了。
我会在这个帖子里持续更新那个贴子里的技能特效……
目前仅有1个特效。
总共有三个脚本,脚本1是纯说明,脚本2是设置,脚本3是实现,如果不需要某功能填写一个外太空id即可。
更新日期:2015年1月14日
·发布这个脚本,唯一的特效是“封锁敌我”。

[fold=脚本1]
  1. =begin
  2. 前言:基本来自于66rpg(rpg.blue)论坛,有些自己想的。

  3. 封锁敌我:敌人和自己同时不能行动,当解除后才可以。
  4. 贡献人:stevenrock
  5. 思路:放招的时候给自己也带上,当自己或敌人屎了以后解除。
  6. =end
复制代码
[/fold]

[fold=脚本2]
  1. # xyz技能模块
  2. module XYZ
  3.   class Skill
  4.     attr_accessor :tx
  5.     def initialize
  6.       @tx = {} # 不为空代表有特效需要执行
  7.       get_fsdw
  8.     end
  9.     attr_reader :fsdw_id1
  10.     attr_reader :fsdw_id2
  11.     def get_fsdw # 封锁敌我
  12.       @fsdw_use = true # 使用
  13.       @fsdw_id1 = 82 #技能的编号
  14.       @fsdw_id2 = 18 #状态的编号
  15.       # 该技能无需附带状态,创建好即可
  16.       # 该技能仅可一人使用
  17.     end
  18.   end
  19. end  
复制代码
[/fold]

[fold=脚本3]
  1. # 战斗特效的核心内容 By XYZ加农炮
  2. class Scene_Battle
  3.   attr_reader :xyz_skill
  4.   alias xyz_skill_initialize initialize
  5.   def initialize
  6.     @xyz_skill = XYZ::Skill.new
  7.     xyz_skill_initialize
  8.   end
  9. end  
  10. class Game_Battler
  11.   alias xyz_skill_effect skill_effect
  12.   def skill_effect(user, skill)
  13.     xyz_skill_effect(user, skill)
  14.     xyz = $scene.xyz_skill
  15.     if skill.id == xyz.fsdw_id1
  16.       self.damage = ""
  17.       fsdw_skill_effect(user, skill)
  18.     end  
  19.   end
  20.   def fsdw_skill_effect(user, skill)
  21.     $scene.xyz_skill.tx['封锁敌我'] = true
  22.     $scene.xyz_skill.tx['封锁敌我发动者'] = user
  23.     $scene.xyz_skill.tx['封锁敌我的目标'] = self
  24.     self.add_state($scene.xyz_skill.fsdw_id2)
  25.     user.add_state($scene.xyz_skill.fsdw_id2)
  26.   end  
  27. end

  28. class Scene_Battle
  29.   alias xyz_skill_update_phase4_step1 update_phase4_step1
  30.   def update_phase4_step1
  31.     xyz_skill_update_phase4_step1
  32.     if @xyz_skill.tx['封锁敌我']
  33.       a = @xyz_skill.tx['封锁敌我发动者']
  34.       b = @xyz_skill.tx['封锁敌我的目标']
  35.       id = @xyz_skill.fsdw_id2
  36.       if not (a.state?(id))or(a.state?(1))or not(b.state?(id))or(b.state?(1))
  37.         @xyz_skill.tx['封锁敌我发动者'].remove_state(@xyz_skill.fsdw_id2)   
  38.         @xyz_skill.tx['封锁敌我的目标'].remove_state(@xyz_skill.fsdw_id2)
  39.         @xyz_skill.tx['封锁敌我'] = false
  40.       end
  41.     end
  42.   end
  43. end  
复制代码
[/fold]

再一次感谢提供创意的人。
X
梦石
0
星屑
211
在线时间
905 小时
注册时间
2010-9-6
回帖
3138
发表于 2015-1-15 07:44:47 | 显示全部楼层
好厉害~其实偶也是随口说了一个特效呢,支持~!
回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2015-1-15 12:48:14 | 显示全部楼层
有一个很好的东西叫做常量

点评

我正在看第一版,第二版是英文的……  发表于 2015-1-16 18:32
↓ 这本书,说实话,对 RM 的脚本帮助不大。但是想要理解 Ruby 的对象模型的话,这本书相当值得一读。另外,我指的是第二版《Metaprogramming Ruby》。  发表于 2015-1-16 18:29
↓ 虽然我挺喜欢这本书的,但是我不记得我提到过很多遍啊?  发表于 2015-1-16 18:26
留意了您的回帖,点评之后,发现您十分推崇《Ruby元编程》这本书?  发表于 2015-1-16 18:20
一般除了模块和类之外都用大写字母的  发表于 2015-1-16 12:31
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部