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

Project1

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

[已经解决] 求教,想做这样一个魔法系统

[复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
36 小时
注册时间
2013-11-15
帖子
14
跳转到指定楼层
发表于 2014-2-10 18:31:01 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 Brushbrother 于 2014-2-15 23:21 编辑

就是角色装备上武器之后可以增加其属性值。比如:装备卧槽剑,火+5
然后这个属性值限定你可以使用的魔法(当然属性值越高可以用的魔法就越多)
然后魔法可以通过奥义书等道具来学习到。但是当卸下装备或属性值降低以后,魔法也就不可用了。
本人脚本小白。。。

Lv1.梦旅人

Mr.Gandum

梦石
0
星屑
226
在线时间
2070 小时
注册时间
2007-1-31
帖子
3039

贵宾

9
发表于 2014-2-15 01:30:44 | 只看该作者
Brushbrother 发表于 2014-2-14 21:45
还有我用了你这个脚本之后
装备一个武器时,武器的数量-2
  1. class RPG::BaseItem
  2.   def get_addvar
  3.     temp = []
  4.     @note.each_line do |line|
  5.       case line
  6.       when /\<Var(\d+)([+-]\d+)\>/i
  7.         temp.push([$1.to_i,$2.to_i])
  8.       end
  9.     end
  10.     return temp
  11.   end
  12. end
  13. #==============================================================================
  14. # ■ Game_Actor
  15. #------------------------------------------------------------------------------
  16. #  管理角色的类。
  17. #   本类在 Game_Actors 类 ($game_actors) 的内部使用。
  18. #   具体使用请查看 Game_Party 类 ($game_party) 。
  19. #==============================================================================

  20. class Game_Actor < Game_Battler
  21.   #--------------------------------------------------------------------------
  22.   # ● 更换装备
  23.   #     slot_id : 装备栏 ID
  24.   #     item    : 武器/护甲(为 nil 时装备解除)
  25.   #--------------------------------------------------------------------------
  26.   alias equipchangevar_change_equip change_equip
  27.   def change_equip(slot_id, item)
  28.     preitem = @equips[slot_id].object
  29.     return if item && equip_slots[slot_id] != item.etype_id
  30.     equipchangevar_change_equip(slot_id,item)
  31.     if item && !item.get_addvar.empty?
  32.       item.get_addvar.each do |arr|
  33.         $game_variables[arr[0]+@actor_id] += arr[1]
  34.       end
  35.     end
  36.     if preitem && !preitem.get_addvar.empty?
  37.       preitem.get_addvar.each do |arr|
  38.         $game_variables[arr[0]+@actor_id] -= arr[1]
  39.       end
  40.     end
  41.   end
  42.   #--------------------------------------------------------------------------
  43.   # ● 强制更换装备
  44.   #     slot_id : 装备栏 ID
  45.   #     item    : 武器/护甲(为 nil 时装备解除)
  46.   #--------------------------------------------------------------------------
  47.   alias equipchangevar_force_change_equip force_change_equip
  48.   def force_change_equip(slot_id, item)
  49.     preitem = @equips[slot_id].object
  50.     equipchangevar_force_change_equip(slot_id,item)
  51.     if item && !item.get_addvar.empty?
  52.       item.get_addvar.each do |arr|
  53.         $game_variables[arr[0]+@actor_id] += arr[1]
  54.       end
  55.     end
  56.     if preitem && !preitem.get_addvar.empty?
  57.       preitem.get_addvar.each do |arr|
  58.         $game_variables[arr[0]+@actor_id] -= arr[1]
  59.       end
  60.     end
  61.   end
  62. end
复制代码
修正。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
36 小时
注册时间
2013-11-15
帖子
14
8
 楼主| 发表于 2014-2-14 21:45:01 | 只看该作者
feizhaodan 发表于 2014-2-13 01:25
简单的做了一个脚本来让装备/拿下武器防具的时候让一个可以指定的变量增减。
在装备的备注栏内输入其中n ...

还有我用了你这个脚本之后
装备一个武器时,武器的数量-2


装备上就

请问这是什么情况
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
622
在线时间
129 小时
注册时间
2011-3-18
帖子
175
7
发表于 2014-2-13 19:40:27 | 只看该作者
Brushbrother 发表于 2014-2-13 18:02
谢谢大大。不过还有一个问题,我的魔法系统是想做成这样的:

给武器添加了这么一个备注,让它得到属性值 ...

公共事件再学一遍
评你毛个负分啊!
新人们辛辛苦苦挂的分就被你们些牛叉评没了!
好不容易挂的杂兵都被你们些牛叉评没了!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
36 小时
注册时间
2013-11-15
帖子
14
6
 楼主| 发表于 2014-2-13 18:02:19 | 只看该作者
feizhaodan 发表于 2014-2-13 01:25
简单的做了一个脚本来让装备/拿下武器防具的时候让一个可以指定的变量增减。
在装备的备注栏内输入其中n ...

谢谢大大。不过还有一个问题,我的魔法系统是想做成这样的:

给武器添加了这么一个备注,让它得到属性值这个变量
然后用技能书这样的物品来习得

技能书是这样的一个公共事件

这样在属性值不足的时候就无法习得技能,但是“火球术”会消耗。我想让属性值不足时“火球术”技能书就无法使用,怎么办?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

Mr.Gandum

梦石
0
星屑
226
在线时间
2070 小时
注册时间
2007-1-31
帖子
3039

贵宾

5
发表于 2014-2-13 01:25:37 | 只看该作者
Brushbrother 发表于 2014-2-12 15:07
简单但是怎么做。。。我过一会发一个详细一点的帖子


简单的做了一个脚本来让装备/拿下武器防具的时候让一个可以指定的变量增减。
在装备的备注栏内输入
  1. <VarnN>
复制代码
其中n是指定的变量ID,N是增减的数值并且要在前面输入加号或者减号。
然后变量ID也会根据装备/拿下武器防具的角色ID变化。
如1号角色装备上了备注栏上写着<Var10+5>的武器,那么第11号变量(指定的10加上角色ID1)就会多5。
拿下的时候会减去指定的数值。
以下是脚本
  1. class RPG::BaseItem
  2.   def get_addvar
  3.     temp = []
  4.     @note.each_line do |line|
  5.       case line
  6.       when /\<Var(\d+)([+-]\d+)\>/i
  7.         temp.push([$1.to_i,$2.to_i])
  8.       end
  9.     end
  10.     return temp
  11.   end
  12. end
  13. #==============================================================================
  14. # ■ Game_Actor
  15. #------------------------------------------------------------------------------
  16. #  管理角色的类。
  17. #   本类在 Game_Actors 类 ($game_actors) 的内部使用。
  18. #   具体使用请查看 Game_Party 类 ($game_party) 。
  19. #==============================================================================

  20. class Game_Actor < Game_Battler
  21.   #--------------------------------------------------------------------------
  22.   # ● 更换装备
  23.   #     slot_id : 装备栏 ID
  24.   #     item    : 武器/护甲(为 nil 时装备解除)
  25.   #--------------------------------------------------------------------------
  26.   alias equipchangevar_change_equip change_equip
  27.   def change_equip(slot_id, item)
  28.     preitem = @equips[slot_id].object
  29.     return unless trade_item_with_party(item, equips[slot_id])
  30.     return if item && equip_slots[slot_id] != item.etype_id
  31.     equipchangevar_change_equip(slot_id,item)
  32.     if item && !item.get_addvar.empty?
  33.       item.get_addvar.each do |arr|
  34.         $game_variables[arr[0]+@actor_id] += arr[1]
  35.       end
  36.     end
  37.     if preitem && !preitem.get_addvar.empty?
  38.       preitem.get_addvar.each do |arr|
  39.         $game_variables[arr[0]+@actor_id] -= arr[1]
  40.       end
  41.     end
  42.   end
  43.   #--------------------------------------------------------------------------
  44.   # ● 强制更换装备
  45.   #     slot_id : 装备栏 ID
  46.   #     item    : 武器/护甲(为 nil 时装备解除)
  47.   #--------------------------------------------------------------------------
  48.   alias equipchangevar_force_change_equip force_change_equip
  49.   def force_change_equip(slot_id, item)
  50.     preitem = @equips[slot_id].object
  51.     equipchangevar_force_change_equip(slot_id,item)
  52.     if item && !item.get_addvar.empty?
  53.       item.get_addvar.each do |arr|
  54.         $game_variables[arr[0]+@actor_id] += arr[1]
  55.       end
  56.     end
  57.     if preitem && !preitem.get_addvar.empty?
  58.       preitem.get_addvar.each do |arr|
  59.         $game_variables[arr[0]+@actor_id] -= arr[1]
  60.       end
  61.     end
  62.   end
  63. end
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
36 小时
注册时间
2013-11-15
帖子
14
4
 楼主| 发表于 2014-2-12 15:07:22 | 只看该作者
国产吃货 发表于 2014-2-10 23:04
如果你能说的更详细可能我就帮你

简单但是怎么做。。。我过一会发一个详细一点的帖子
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
36 小时
注册时间
2013-11-15
帖子
14
3
 楼主| 发表于 2014-2-12 10:34:29 | 只看该作者
国产吃货 发表于 2014-2-10 23:04
如果你能说的更详细可能我就帮你

问题的关键是在于怎么给武器定义属性值这一个参数

点评

这个简单  发表于 2014-2-12 10:48
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
218 小时
注册时间
2013-12-17
帖子
386
2
发表于 2014-2-10 23:04:04 | 只看该作者
如果你能说的更详细可能我就帮你
RM脚本定制/修改/整合 群:143356012(入群注明来意)
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3553
在线时间
1058 小时
注册时间
2009-10-3
帖子
185
1
发表于 2014-2-10 21:37:23 | 只看该作者
用变量吧,装备卧槽剑是 变量+5
然后分歧
当变量不小于5时,领悟火球术
当变量不小于10时,领悟XX技能

点评

请问怎么让装备卧槽剑时候变量+5?  发表于 2014-2-11 17:39
自己给自己挖了一个坑,然后掉下去的我,竟然爬不上来了,呵呵(NMB)。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 11:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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