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

Project1

 找回密码
 注册会员
搜索
查看: 9176|回复: 13

让物品也分职业

 关闭 [复制链接]

TA还没有解放自身的潜力。

Lv1.梦旅人

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

发表于 2008-8-25 19:53:33 | 显示全部楼层 |阅读模式

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

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

x
让物品也分职业 by 沉影不器

功能描述:
       让物品也跟武器防具那样,属于指定职业
       当物品为全体有效时,也只对归属的职业同伴有效
使用方法:
       ① 在数据库-物品-备注]中填写 职业 = 第一种职业ID,第二种职业ID...
          (详见范例)
       ② 未填写备注的情况下,视同属于所有职业

  1. #==============================================================================
  2. # 物品的职业归属 by 沉影不器
  3. # -----------------------------------------------------------------------------
  4. # 功能描述:
  5. #       让物品也跟武器防具那样,属于指定职业
  6. #       当物品为全体有效时,也只对归属的职业同伴有效
  7. # 使用方法:
  8. #       ① 在数据库-物品-备注]中填写 职业 = 第一种职业ID,第二种职业ID...
  9. #          (详见范例)
  10. #       ② 未填写备注的情况下,视同属于所有职业
  11. #==============================================================================
  12. # ■ Array
  13. #==============================================================================
  14. class Array
  15.   # 整个数组所有元素一起化成数值型
  16.   def to_i
  17.     array_to_i=[]
  18.     self.each{|i| array_to_i.push i.to_i}
  19.     return array_to_i
  20.   end
  21.   # 整个数组所有元素一起化成文本型
  22.   def to_s
  23.     array_to_s=[]
  24.     self.each{|s| array_to_s.push s.to_s}
  25.     return array_to_s
  26.   end
  27. end

  28. #==============================================================================
  29. # ■ RPG
  30. #==============================================================================
  31. module RPG
  32.   class Item < UsableItem
  33.     def class_set
  34.       self.read_note('职业').split(/,/).to_i
  35.     end
  36.   end
  37. end

  38. #==============================================================================
  39. # ■ Game_Actor
  40. #==============================================================================
  41. class Game_Actor < Game_Battler
  42.   #--------------------------------------------------------------------------
  43.   # ○ 判断是否可以应用物品
  44.   #     user : 物品使用者
  45.   #     item : 物品
  46.   #--------------------------------------------------------------------------
  47.   def item_effective?(user, item)
  48.     if item.for_dead_friend? != dead?
  49.       return false
  50.     end
  51.     # 判断职业归属
  52.     if user.is_a?(Game_Actor) and !item.class_set.empty?
  53.       unless item.class_set.include?(user.class_id)
  54.         return false
  55.       end
  56.     end
  57.     if not $game_temp.in_battle and item.for_friend?
  58.       return item_test(user, item)
  59.     end
  60.     return true
  61.   end
  62. end

  63. #==============================================================================
  64. # 读取rmvx备注栏指定字段 by 沉影不器
  65. # -----------------------------------------------------------------------------
  66. # 使用方法:
  67. #           在vx数据库比如1号物品的备注栏里书写: 耐久度 = 10
  68. #           读取时使用: p $data_items[1].read_note('耐久度')
  69. # 几点注意:
  70. #           ① 忽略空格
  71. #           ② 返回值为文本格式
  72. #==============================================================================
  73. module RPG
  74.   #=============================================================================
  75.   # ■ BaseItem
  76.   #=============================================================================
  77.   class BaseItem
  78.     #-------------------------------------------------------------------------
  79.     # ○ 读取rmvx备注栏指定字段
  80.     #     section : 字段名
  81.     #     ignore_caps : 忽略大小写(仅字段名)
  82.     #-------------------------------------------------------------------------
  83.     def read_note(section, ignore_caps = false)
  84.       result = ''
  85.       # 忽略大小写时,全部转大写
  86.       section.upcase! if ignore_caps
  87.       # 转symbol方便比较
  88.       s = section.to_sym
  89.       self.note.each_line{|line|
  90.         temp = line.split(/=/)
  91.         # 去掉干扰字符
  92.         temp.each {|i| i.strip!}
  93.         temp[0].upcase! if ignore_caps
  94.         if temp[0].to_sym == s
  95.           unless temp[1] == nil
  96.             result = temp[1]
  97.           end
  98.           # 如果希望同名字段值覆盖前面的字段,去掉下一行
  99.           break
  100.         end
  101.       }
  102.       return result
  103.     end
  104.   end
  105.   #=============================================================================
  106.   # ■ Enemy
  107.   #=============================================================================
  108.   class Enemy
  109.     #-------------------------------------------------------------------------
  110.     # ○ 读取rmvx备注栏指定字段
  111.     #     section : 字段名
  112.     #     ignore_caps : 忽略大小写(仅字段名)
  113.     #-------------------------------------------------------------------------
  114.     def read_note(section, ignore_caps = false)
  115.       result = ''
  116.       # 忽略大小写时,全部转大写
  117.       section.upcase! if ignore_caps
  118.       # 转symbol方便比较
  119.       s = section.to_sym
  120.       self.note.each_line{|line|
  121.         temp = line.split(/=/)
  122.         # 去掉干扰字符
  123.         temp.each {|i| i.strip!}
  124.         temp[0].upcase! if ignore_caps
  125.         if temp[0].to_sym == s
  126.           unless temp[1] == nil
  127.             result = temp[1]
  128.           end
  129.           # 如果希望同名字段值覆盖前面的字段,去掉下一行
  130.           break
  131.         end
  132.       }
  133.       return result
  134.     end
  135.   end
  136.   #=============================================================================
  137.   # ■ State
  138.   #=============================================================================
  139.   class State
  140.     #-------------------------------------------------------------------------
  141.     # ○ 读取rmvx备注栏指定字段
  142.     #     section : 字段名
  143.     #     ignore_caps : 忽略大小写(仅字段名)
  144.     #-------------------------------------------------------------------------
  145.     def read_note(section, ignore_caps = false)
  146.       result = ''
  147.       # 忽略大小写时,全部转大写
  148.       section.upcase! if ignore_caps
  149.       # 转symbol方便比较
  150.       s = section.to_sym
  151.       self.note.each_line{|line|
  152.         temp = line.split(/=/)
  153.         # 去掉干扰字符
  154.         temp.each {|i| i.strip!}
  155.         temp[0].upcase! if ignore_caps
  156.         if temp[0].to_sym == s
  157.           unless temp[1] == nil
  158.             result = temp[1]
  159.           end
  160.           # 如果希望同名字段值覆盖前面的字段,去掉下一行
  161.           break
  162.         end
  163.       }
  164.       return result
  165.     end
  166.   end
  167. end
复制代码


     >>点击此处下载范例工程<<

              [本贴由 八云紫 于 2008-10-30 15:23:13 进行了编辑]

              [本贴由 八云紫 于 2008-10-30 15:35:20 进行了编辑]

阿桑奇不是一个偶像;阿桑奇是一种思想

TA还没有解放自身的潜力。

Lv1.梦旅人

梦石
0
星屑
50
在线时间
9 小时
注册时间
2008-1-15
帖子
280
发表于 2008-8-25 21:49:18 | 显示全部楼层
{/fd}有什么用
回复 支持 反对

使用道具 举报

TA还没有解放自身的潜力。

Lv1.梦旅人

梦石
0
星屑
49
在线时间
157 小时
注册时间
2007-12-16
帖子
3454
发表于 2008-8-25 23:22:35 | 显示全部楼层
装备可以用
回复 支持 反对

使用道具 举报

[动态]受到SailCat的挑战,被揍得晕头转向。 (打开TA的战斗卡片)

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
2363
在线时间
3561 小时
注册时间
2006-9-6
帖子
37356

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

发表于 2008-8-25 23:31:04 | 显示全部楼层
= =
一般好像没有这种物品……
Lofter个站:点击进入吧 不要犹豫了come on baby! (闲水、游戏预告、游戏发布)

回复 支持 反对

使用道具 举报

TA还没有解放自身的潜力。

Lv1.梦旅人

邪恶米饼殿

梦石
0
星屑
219
在线时间
569 小时
注册时间
2007-12-23
帖子
1584
发表于 2009-6-12 08:00:00 | 显示全部楼层
默认不是有了前卫中卫后卫的设定了吗?
回复 支持 反对

使用道具 举报

TA还没有解放自身的潜力。

Lv1.梦旅人

天仙

梦石
0
星屑
55
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

发表于 2008-8-26 09:16:12 | 显示全部楼层
帮沉影解释一下吧
在制作强调职业差别的游戏中时,可以使用这个脚本

例如:
魔法传说类的游戏,总不能让「战士」使用只有魔法师能使用的「魔法卷轴」吧?
或是「技能书」之类的,限定某些职业无法使用该技能书....
用途很多滴....

PS:沉影拜托你写一下脚本介绍吧.....功能虽然有写,但是写一下实用方法吧...
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

TA还没有解放自身的潜力。

Lv1.梦旅人

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

 楼主| 发表于 2008-8-26 16:28:31 | 显示全部楼层
就是让物品也跟武器防具那些一样,按职业分类使用,至于如何使用这样的功能,看制作者的意思

啥功能倒不是很重要...我写来当做read_note返回数组范例的...

self.read_note('职业').split(/,/).to_i   # 返回数组

阿桑奇不是一个偶像;阿桑奇是一种思想

回复 支持 反对

使用道具 举报

TA还没有解放自身的潜力。

Lv1.梦旅人

梦石
0
星屑
50
在线时间
116 小时
注册时间
2008-5-12
帖子
264
发表于 2008-8-27 04:22:45 | 显示全部楼层
好东西,赞一个!
回复 支持 反对

使用道具 举报

TA还没有解放自身的潜力。

Lv1.梦旅人

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-9-7
帖子
51
发表于 2008-9-13 18:50:20 | 显示全部楼层
好棒啊,我很需要啊
【天堂魔剑传】 数据库:5% 剧情:0% 核心:100%
回复 支持 反对

使用道具 举报

TA还没有解放自身的潜力。

Lv1.梦旅人

梦石
0
星屑
80
在线时间
2 小时
注册时间
2008-10-9
帖子
58
发表于 2008-10-13 03:25:47 | 显示全部楼层
很不错噢·
可以写在武器上吗?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

站长信箱:fux2@moe9th.com|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2019-8-20 21:38

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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