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

Project1

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

[已经解决] 怎么样实现某些技能需要特定武器才能使用

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
26 小时
注册时间
2012-5-4
帖子
351
跳转到指定楼层
1
发表于 2012-6-3 20:22:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
是这样
比如火球术学会了
不装备火焰之杖也不能使用

Lv1.梦旅人

梦石
0
星屑
49
在线时间
107 小时
注册时间
2012-5-1
帖子
45
2
发表于 2012-6-3 20:39:19 | 只看该作者
RUBY 代码复制
  1. #格式 【武器编号,技能编号1,技能编号2】
  2. class Game_Actor < Game_Battler  
  3.   C3_W_SKILL = []
  4.   C3_A1_SKILL = []
  5.   C3_A2_SKILL = []
  6.   C3_A3_SKILL = []
  7.   C3_A4_SKILL = []
  8.  
  9.   C3_W_SKILL.push [1,0] #武器编号,武器附带技能编号,战斗图前缀
  10.  
  11.   #------武器附加技能.------------------------------------------
  12.   C3_W_SKILL.push [86,258] #(86号武器,258号技能)(复制这条)
  13.  
  14.   #战斗图前缀后面会自动跟上角色的数据库编号。
  15.   #比如你使用上面的设定,你的1、2、3、4号角色可以用1号武器(铜剑)
  16.   #则你的battlers/下面应改有"剑_1.png","剑_2.png","剑_3.png","剑_4.png"
  17.  
  18.   #一个武器可以重复设置多种技能,防具也是。
  19.   #前卫编号,附带技能编号------------------------------------------------------
  20.   C3_A1_SKILL.push [153,288] # (复制这条)
  21.  
  22.   #中军编号,附带技能编号------------------------------------------------------
  23.   C3_A2_SKILL.push [150,297] # (复制这条)           
  24.  
  25.   #后军编号,附带技能编号------------------------------------------------------
  26.   C3_A3_SKILL.push [151,7]   #  (复制这条)            
  27.  
  28.   #策应编号,附带技能编号------------------------------------------------------
  29.   C3_A4_SKILL.push [152,295] # (复制这条)
  30. 0
  31.   #----------------------------------------------------------------------------
  32.   # ● 变更装备
  33.   #     equip_type : 装备类型
  34.   #     id    : 武器 or 防具 ID  (0 为解除装备)
  35.   #----------------------------------------------------------------------------
  36.   def equip(equip_type, id)
  37.     case equip_type
  38.     when 0  # 武器
  39.       if id == 0 or $game_party.weapon_number(id) > 0
  40.         old_weapon_id = @weapon_id
  41.         weapon_i = 0
  42.         for weapon_i in C3_W_SKILL         
  43.           if weapon_i[0] == old_weapon_id
  44.             if weapon_i[1] != 0
  45.               forget_skill(weapon_i[1])
  46.             end
  47.           end     
  48.         end
  49.         for weapon_i in C3_W_SKILL         
  50.           if weapon_i[0] == id
  51.             if weapon_i[1] != 0
  52.               learn_skill(weapon_i[1])
  53.             end
  54.           end
  55.         end
  56.         $game_party.gain_weapon(@weapon_id, 1)
  57.         @weapon_id = id
  58.         $game_party.lose_weapon(id, 1)
  59.       end
  60.     when 1  # 盾
  61.       if id == 0 or $game_party.armor_number(id) > 0
  62.         old_am_id = @armor1_id
  63.         am_i = 0
  64.         for am_i in C3_A1_SKILL         
  65.           if am_i[0] == old_am_id
  66.             if am_i[1] != 0
  67.               forget_skill(am_i[1])
  68.             end
  69.           end     
  70.         end
  71.         for am_i in C3_A1_SKILL
  72.           if am_i[0] == id
  73.             if am_i[1] != 0
  74.               learn_skill(am_i[1])
  75.             end
  76.           end
  77.         end
  78.         update_auto_state($data_armors[@armor1_id], $data_armors[id])
  79.         $game_party.gain_armor(@armor1_id, 1)
  80.         @armor1_id = id
  81.         $game_party.lose_armor(id, 1)
  82.       end
  83.     when 2  # 头
  84.       if id == 0 or $game_party.armor_number(id) > 0
  85.         old_am_id = @armor2_id
  86.         am_i = 0
  87.         for am_i in C3_A2_SKILL         
  88.           if am_i[0] == old_am_id
  89.             if am_i[1] != 0
  90.               forget_skill(am_i[1])
  91.             end
  92.           end   
  93.         end
  94.         for am_i in C3_A2_SKILL  
  95.           if am_i[0] == id
  96.             if am_i[1] != 0
  97.               learn_skill(am_i[1])
  98.             end
  99.           end
  100.         end
  101.         update_auto_state($data_armors[@armor2_id], $data_armors[id])
  102.         $game_party.gain_armor(@armor2_id, 1)
  103.         @armor2_id = id
  104.         $game_party.lose_armor(id, 1)
  105.       end
  106.     when 3  # 身体
  107.       if id == 0 or $game_party.armor_number(id) > 0
  108.         old_am_id = @armor3_id
  109.         am_i = 0
  110.         for am_i in C3_A3_SKILL         
  111.           if am_i[0] == old_am_id
  112.             if am_i[1] != 0
  113.               forget_skill(am_i[1])
  114.             end
  115.           end     
  116.         end
  117.         for am_i in C3_A3_SKILL  
  118.           if am_i[0] == id
  119.             if am_i[1] != 0
  120.               learn_skill(am_i[1])
  121.             end
  122.           end
  123.         end
  124.         update_auto_state($data_armors[@armor3_id], $data_armors[id])
  125.         $game_party.gain_armor(@armor3_id, 1)
  126.         @armor3_id = id
  127.         $game_party.lose_armor(id, 1)
  128.       end
  129.     when 4  # 装饰品
  130.       if id == 0 or $game_party.armor_number(id) > 0
  131.         old_am_id = @armor4_id
  132.         am_i = 0
  133.         for am_i in C3_A4_SKILL         
  134.           if am_i[0] == old_am_id
  135.             if am_i[1] != 0
  136.               forget_skill(am_i[1])
  137.             end
  138.           end     
  139.         end
  140.         for am_i in C3_A4_SKILL  
  141.           if am_i[0] == id
  142.             if am_i[1] != 0
  143.               learn_skill(am_i[1])
  144.             end
  145.           end
  146.         end
  147.         update_auto_state($data_armors[@armor4_id], $data_armors[id])
  148.         $game_party.gain_armor(@armor4_id, 1)
  149.         @armor4_id = id
  150.         $game_party.lose_armor(id, 1)
  151.       end
  152.     end
  153.   end
  154. end
  155. #------------------------------------------------------------

要改的已经注释过了
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
22 小时
注册时间
2012-6-3
帖子
40
3
发表于 2012-6-5 13:31:49 | 只看该作者
LZ说的是装备附加的技能···
回复

使用道具 举报

Lv4.逐梦者

梦石
8
星屑
2779
在线时间
1607 小时
注册时间
2010-10-22
帖子
1059

极短25获奖

4
发表于 2012-6-5 21:49:51 | 只看该作者
本帖最后由 kangxi0109 于 2012-6-5 21:54 编辑

在Game_Battler 3里面对应位置添加如下部分:

  1. #在最顶上添加法术对应的武器数组,这里只做两个例子,设火球术是100号技能,冷冻术是200号,需要的话可继续添加↓
  2. $火球术=[1,2,3]#1、2、3号武器
  3. $冷冻术=[3]#3号武器
  4. #==============================================================================
  5. # ■ Game_Battler (分割定义 3)
  6. #------------------------------------------------------------------------------
  7. #  处理战斗者的类。这个类作为 Game_Actor 类与 Game_Enemy 类的
  8. # 超级类来使用。
  9. #==============================================================================

  10. class Game_Battler
  11.   #--------------------------------------------------------------------------
  12.   # ● 可以使用特技的判定
  13.   #     skill_id : 特技 ID
  14.   #--------------------------------------------------------------------------
  15.   def skill_can_use?(skill_id)
  16. #----------------------------添加↓
  17.       if self.is_a?(Game_Actor) #角色的场合,敌人没武器嘛
  18.      if skill_id == 100 && $火球术.include?(self.weapon_id) #技能是火球术并且施法者武器符合火球术的武器数组
  19.      else
  20.           return false
  21.          end
  22.          if skill_id == 200 && $冷冻术.include?(self.weapon_id) #技能是冷冻术并且施法者武器符合冷冻术的武器数组
  23.      else
  24.           return false
  25.          end
  26.      end
  27. #----------------------------
  28.     # SP 不足的情况下不能使用
复制代码

点评

还算不错吧  发表于 2012-6-6 18:24
【2022.06.03】原本以为已经不可能再找回来的东西重新找回来了,原本一直念念不忘的坑终于再一次拿起铲子了。一别竟近10年,你好,我的世界我的梦。
【不可阻挡】异元-地劫黎明
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
79 小时
注册时间
2012-5-19
帖子
29
5
发表于 2012-6-6 11:00:25 | 只看该作者
事件党路过,偶有想法。

1、设置1号技能火球术(使用场合:不能使用),再设置2号技能火球术(和1号一样,但使用场合为战斗中)

2、设置公共事件:目标:并行处理,条件:开关1.
事件内容:条件分歧,装备火焰之杖时,学的2号,遗忘1号:否则学会一号,遗忘2号。

3、唯一麻烦的东西,在每个会战斗的地图做一个事件,执行条件:并行处理,内容:开关1,on
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-28 03:56

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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