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

Project1

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

[有事请教] 如何将技能添加在装备上 技能在自我魔法里

[复制链接]

Lv4.逐梦者

梦石
0
星屑
6291
在线时间
1103 小时
注册时间
2015-8-15
帖子
658
跳转到指定楼层
1
发表于 2023-5-27 08:25:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
技能在自我魔法模型里面,我想把技能附加在武器而不是在人物ID上, 武器不在系统上 而是module Equips_data里面
module Equips_data
  
@data_id = 2
ICON[@data_id] = "icon_1280"
NAME[@data_id] = "测试刀"
DISCRIPTION[@data_id] = "测试用的刀,非常坚固,非常OP"
PRICE[@data_id] = 999
#类型:   1.甲 2.盾 3.近战武器  4.远程武器 5.马
TYPE[@data_id] =  3         
#限制:只有特定兵种才能装,nil都能装
LIMIT[@data_id] = nil

#防具类, 都是加成
AMMOR_HP[@data_id] = 0
SHD_HP[@data_id] = 0
LIVE_CHANCE[@data_id] = 0
MOVEMENT_SPEED[@data_id] = 0

CRITICAL[@data_id] = 0

BASE_ATK[@data_id] = 9999
BRO_ATK[@data_id] = 0
S_BASE_ATK[@data_id] = 0
S_BRO_ATK[@data_id] = 0
ANTI_CAV[@data_id] = 0
ANTI_INF[@data_id] = 0

ATK_FR[@data_id] = 0

ACCURATCY[@data_id] = 0
ENGAGE_RANGE[@data_id] = 0
AMMO_MAX[@data_id] = 0



MORALE[@data_id] = 0


RUBY 代码复制
  1. module State_data
  2.  
  3. data_id = 2
  4. #名字
  5. NAME[data_id] = "狂暴攻击"
  6. ICON[data_id] = ""
  7. ANIMATION[data_id] = 32
  8. #持续时间(nil 表示整个战场中都有)
  9. TIME[data_id] =nil  #400
  10. #移动速度
  11. MOVEMENT_SPEED[data_id] = 100
  12. #精确度(远程)
  13. ACCURATCY[data_id] =  100
  14. #熟练度
  15. SKILLED_LEVEL[data_id] = 115
  16. #攻击力
  17. AP[data_id] = 175
  18. #攻击频率
  19. ATK_FR[data_id] = 999#125
  20. #护甲
  21. ARMOR[data_id] = 25
  22. #远程攻击力
  23. S_AP[data_id] = 100
  24.  
  25. end


自我魔法
RUBY 代码复制
  1. module EFS_Spell#魔法
  2.  
  3. module Skill_data
  4.  
  5. data_id = 1
  6. #名称
  7. NAME[data_id] = "强制热血"
  8. #图标
  9. ICON[data_id] = "skill1"
  10. #冷却时间
  11. CD[data_id] = 10#400
  12. #使用次数限制
  13. TIME[data_id] = 100#2
  14. #技能代码
  15. CODE[data_id] = 1
  16.  
  17. end
  18.  
  19.   def self.use_spell(code_id)
  20. #--------------------------------------------------------------------------      
  21.     if code_id == 1  #强制热血
  22. #--------------------------------------------------------------------------
  23.     $game_party.actors[0].sp = 0
  24.     $game_player.animation_id = 32
  25.     Audio.se_play("Audio/SE/rush_"+(rand(4)+1).to_s,100, 100)
  26.     for e in $Team_Fighter
  27.       next if e.is_a?(Game_Player)
  28.       e.add_state(2)
  29.     end

Lv3.寻梦者

梦石
0
星屑
4481
在线时间
380 小时
注册时间
2012-11-8
帖子
272
2
发表于 2023-5-27 08:42:24 | 只看该作者
在Equips_data加入技能项目,数据为技能ID,然后在使用装备的脚本中读取装备附带的技能数据,角色习得这个技能;在卸下装备的脚本中遗忘装备附带的技能。
另外还要注意装备的技能是否与职业技能有重叠
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6291
在线时间
1103 小时
注册时间
2015-8-15
帖子
658
3
 楼主| 发表于 2023-5-27 12:32:07 | 只看该作者
qq634488405 发表于 2023-5-27 08:42
在Equips_data加入技能项目,数据为技能ID,然后在使用装备的脚本中读取装备附带的技能数据,角色习得这个 ...

CODE[data_id] = 1 是这个吗
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4481
在线时间
380 小时
注册时间
2012-11-8
帖子
272
4
发表于 2023-5-27 13:49:59 | 只看该作者
金芒芒 发表于 2023-5-27 12:32
CODE[data_id] = 1 是这个吗

只看你这个脚本片段不知道是什么,总之大致思路就是那样
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6291
在线时间
1103 小时
注册时间
2015-8-15
帖子
658
5
 楼主| 发表于 2023-5-27 17:12:14 | 只看该作者
qq634488405 发表于 2023-5-27 13:49
只看你这个脚本片段不知道是什么,总之大致思路就是那样


你这一指点我也开始有点初窥门径了,
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33188
在线时间
10490 小时
注册时间
2009-3-15
帖子
4756
6
发表于 2023-5-27 20:08:01 | 只看该作者
你先去理解定义和脚本执行的区别

发这些定义的内容无人能帮
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6291
在线时间
1103 小时
注册时间
2015-8-15
帖子
658
7
 楼主| 发表于 2023-5-28 11:37:31 | 只看该作者
本帖最后由 金芒芒 于 2023-5-28 11:40 编辑
soulsaga 发表于 2023-5-27 20:08
你先去理解定义和脚本执行的区别

发这些定义的内容无人能帮


我这个用的时候ARPG技能  实际又是EFS 魔法
对于技能和发动技能的关系我还没理解到位不过加上这段应该可以了
  1.   #--------------------------------------------------------------------------
  2.   # ● 使用技能
  3.   #--------------------------------------------------------------------------   
  4.   def use_spell
  5.     return if $selected_spell == 0
  6.     # 如果技能使用次数用完
  7.     if @spell_used[$selected_spell] <= 0
  8.         # 演奏冻结 SE
  9.         $game_system.se_play($data_system.buzzer_se)
  10.         return
  11.     end
  12.     # 如果交战中
  13.     if $game_player.attack?
  14.         # 演奏冻结 SE
  15.         $game_system.se_play($data_system.buzzer_se)
  16.         return
  17.     end      
  18.     #冷却时间
  19.     if $spell_cd > 0
  20.         # 演奏冻结 SE
  21.         $game_system.se_play($data_system.buzzer_se)
  22.         return
  23.     end   
  24.       
  25.     @spell_used[$selected_spell] -= 1
  26.     $spell_cd = Skill_data::CD[$selected_spell]
  27.     name = Skill_data::NAME[$selected_spell]
  28.     code = Skill_data::CODE[$selected_spell]
  29.     Notification.post("发动了技能"+name+"!")
  30.     EFS_Spell.use_spell(code)
  31.    
  32.   end
复制代码
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-28 13:25

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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