查看: 1717|回复: 6

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

[复制链接]
梦石
0
星屑
7296
在线时间
1244 小时
注册时间
2015-8-15
回帖
473
发表于 2023-5-27 08:25:29 | 显示全部楼层 |阅读模式

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

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

×
技能在自我魔法模型里面,我想把技能附加在武器而不是在人物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


[pre lang="ruby"]module State_data
  
data_id = 2
#名字
NAME[data_id] = "狂暴攻击"
ICON[data_id] = ""
ANIMATION[data_id] = 32
#持续时间(nil 表示整个战场中都有)
TIME[data_id] =nil  #400
#移动速度
MOVEMENT_SPEED[data_id] = 100
#精确度(远程)
ACCURATCY[data_id] =  100
#熟练度
SKILLED_LEVEL[data_id] = 115
#攻击力
AP[data_id] = 175
#攻击频率
ATK_FR[data_id] = 999#125
#护甲
ARMOR[data_id] = 25
#远程攻击力
S_AP[data_id] = 100

end[/pre]

自我魔法
[pre lang="ruby"]module EFS_Spell#魔法
  
module Skill_data
  
data_id = 1
#名称
NAME[data_id] = "强制热血"
#图标
ICON[data_id] = "skill1"
#冷却时间
CD[data_id] = 10#400
#使用次数限制
TIME[data_id] = 100#2
#技能代码
CODE[data_id] = 1

end

  def self.use_spell(code_id)
#--------------------------------------------------------------------------      
    if code_id == 1  #强制热血
#--------------------------------------------------------------------------
    $game_party.actors[0].sp = 0
    $game_player.animation_id = 32
    Audio.se_play("Audio/SE/rush_"+(rand(4)+1).to_s,100, 100)
    for e in $Team_Fighter
      next if e.is_a?(Game_Player)
      e.add_state(2)
    end[/pre]
梦石
0
星屑
4756
在线时间
389 小时
注册时间
2012-11-8
回帖
235
发表于 2023-5-27 08:42:24 | 显示全部楼层
在Equips_data加入技能项目,数据为技能ID,然后在使用装备的脚本中读取装备附带的技能数据,角色习得这个技能;在卸下装备的脚本中遗忘装备附带的技能。
另外还要注意装备的技能是否与职业技能有重叠
回复

使用道具 举报

梦石
0
星屑
7296
在线时间
1244 小时
注册时间
2015-8-15
回帖
473
 楼主| 发表于 2023-5-27 12:32:07 | 显示全部楼层
qq634488405 发表于 2023-5-27 08:42
在Equips_data加入技能项目,数据为技能ID,然后在使用装备的脚本中读取装备附带的技能数据,角色习得这个 ...

CODE[data_id] = 1 是这个吗
回复

使用道具 举报

梦石
0
星屑
4756
在线时间
389 小时
注册时间
2012-11-8
回帖
235
发表于 2023-5-27 13:49:59 | 显示全部楼层
金芒芒 发表于 2023-5-27 12:32
CODE[data_id] = 1 是这个吗

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

使用道具 举报

梦石
0
星屑
7296
在线时间
1244 小时
注册时间
2015-8-15
回帖
473
 楼主| 发表于 2023-5-27 17:12:14 | 显示全部楼层
qq634488405 发表于 2023-5-27 13:49
只看你这个脚本片段不知道是什么,总之大致思路就是那样


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

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2023-5-27 20:08:01 | 显示全部楼层
你先去理解定义和脚本执行的区别

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

使用道具 举报

梦石
0
星屑
7296
在线时间
1244 小时
注册时间
2015-8-15
回帖
473
 楼主| 发表于 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
复制代码
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部