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

Project1

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

[Done]随机生成武器系统(仿暗黑)[BY SailCat]

 关闭 [复制链接]

Lv2.观梦者

梦石
0
星屑
275
在线时间
1373 小时
注册时间
2005-10-16
帖子
5113

贵宾

跳转到指定楼层
1
发表于 2005-10-22 00:35:01 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
  1. 说明:
  2. 1.因为本系统对RPG底层数据结构的改动非常大,对RGSS完全不了解者不建议采用本系统
  3. 2.因为同样的原因,本系统造成脚本冲突的可能性非常大
  4. 使用方法:
  5. 第一步,插入下列代码到Main以前:
  6. class Game_System
  7. attr_accessor :weapons
  8. alias sailcat_initialize initialize
  9. def initialize
  10. sailcat_initialize
  11. @weapons = [nil]
  12. end
  13. end
  14. class Game_Party

  15. def gain_weapon(weapon_id, n)
  16. if weapon_id > 0
  17. if n > 0
  18. weapon = RPG::Random_Weapon.new(weapon_id)
  19. weapon.id = $game_system.weapons.size
  20. $game_system.weapons.push(weapon)
  21. @weapons[weapon.id] = n
  22. end
  23. if n < 0
  24. @weapons[weapon_id] = [@weapons[weapon_id] + n, 0].max
  25. end
  26. elsif weapon_id < 0
  27. @weapons[-weapon_id] = [[@weapons[-weapon_id] + n, 0].max, 99].min
  28. end
  29. end

  30. end
  31. module RPG
  32. class Random_Weapon < Weapon

  33. attr_accessor :type
  34. attr_accessor :rarity
  35. attr_accessor :reqlevel

  36. def initialize(id)
  37. @type = id
  38. @name = $data_weapons[id].name
  39. @icon_name = $data_weapons[id].icon_name
  40. @description = $data_weapons[id].description
  41. @animation1_id = $data_weapons[id].animation1_id
  42. @animation2_id = $data_weapons[id].animation2_id
  43. @price = $data_weapons[id].price
  44. base_atk = $data_weapons[id].atk
  45. @atk = base_atk
  46. @pdef = $data_weapons[id].pdef
  47. @mdef = $data_weapons[id].mdef
  48. @str_plus = $data_weapons[id].str_plus
  49. @dex_plus = $data_weapons[id].dex_plus
  50. @agi_plus = $data_weapons[id].agi_plus
  51. @int_plus = $data_weapons[id].int_plus
  52. @element_set = $data_weapons[id].element_set
  53. @plus_state_set = $data_weapons[id].plus_state_set
  54. @minus_state_set = $data_weapons[id].minus_state_set
  55. @element_set.push(suffix)
  56. @minus_state_set.push(prefix)
  57. @reqlevel = 1
  58. case rand(256)
  59. when 0..31 # Low-Quality
  60. prefix = [99 - rand(4)]
  61. suffix = [101]
  62. @rarity = 0
  63. @name = $data_system.elements[prefix[0]] + " " + @name
  64. when 32..191 # Normal
  65. prefix = [101]
  66. suffix = [101]
  67. @rarity = 1
  68. when 192..223 # High-Quality
  69. prefix = [100]
  70. suffix = [101]
  71. @rarity = 2
  72. @name = $data_system.elements[prefix[0]] + " " + @name
  73. when 224..239 # Magic
  74. case rand(3)
  75. when 0
  76. prefix = [rand(40) + 102]
  77. suffix = [101]
  78. @name = $data_system.elements[prefix[0]] + " " + @name
  79. when 1
  80. prefix = [101]
  81. suffix = [rand(40) + 102]
  82. @name = @name + " of " + $data_states[suffix[0]].name
  83. when 2
  84. prefix = [rand(40) + 102]
  85. suffix = [rand(40) + 102]
  86. @name = $data_system.elements[prefix[0]] + " " + @name + " of " + $data_states[suffix[0]].name
  87. end
  88. @rarity = 3
  89. when 240..247 # Rare
  90. rname1 = rand(10) + 501
  91. rname2 = id * 2 + 501 + rand(2)
  92. prefix = []
  93. suffix = []
  94. case rand(10)
  95. when 0..1 # 3 affixes
  96. n = 1
  97. odd = true
  98. when 2..3 # 4 affixes
  99. n = 2
  100. odd = false
  101. when 4..6 # 5 affixes
  102. n = 2
  103. odd = true
  104. when 7..9 # 6 affixes
  105. n = 3
  106. odd = false
  107. end
  108. n.times do
  109. prefix.push(rand(40) + 102)
  110. suffix.push(rand(40) + 102)
  111. end
  112. if odd
  113. if rand(2) == 1
  114. prefix.push(rand(40) + 102)
  115. else
  116. suffix.push(rand(40) + 102)
  117. end
  118. end
  119. @rarity = 4
  120. @name = $data_system.elements[rname1] + " " + $data_states[rname2].name + " " + @name
  121. when 248..253 # Set
  122. sname = id + 801
  123. prefix = [sname]
  124. suffix = [101]
  125. @name = $data_system.elements[sname] + " " + @name
  126. @rarity = 5
  127. when 254..255 # Unique
  128. prefix = [101]
  129. uname = id + 801
  130. suffix = [uname]
  131. @name = $data_states[uname].name + " " + @name
  132. @rarity = 6
  133. end
  134. for i in prefix
  135. modify_weapon_prefix(i)
  136. end
  137. for j in suffix
  138. modify_weapon_suffix(j)
  139. end
  140. end

  141. def modify_weapon_prefix(prefix)
  142. case prefix
  143. when 96
  144. @atk -= base_atk * (31 + rand(10)) / 100 + 1
  145. when 97
  146. @atk -= base_atk * (21 + rand(10)) / 100 + 1
  147. when 98
  148. @atk -= base_atk * (11 + rand(10)) / 100 + 1
  149. when 99
  150. @atk -= base_atk * (1 + rand(10)) / 100 + 1
  151. when 100
  152. @atk += base_atk * (1 + rand(15)) / 100 + 1
  153. when 101
  154. @atk = base_atk
  155. when 102
  156. @atk += base_atk * (10 + rand(11)) / 100 + 1
  157. @reqlevel = [@reqlevel, 1].max
  158. when 103
  159. @atk += base_atk * (21 + rand(10)) / 100 + 1
  160. @reqlevel = [@reqlevel, 5].max
  161. when 104
  162. @atk += base_atk * (31 + rand(10)) / 100 + 1
  163. @reqlevel = [@reqlevel, 8].max
  164. when 105
  165. @atk += base_atk * (41 + rand(10)) / 100 + 1
  166. @reqlevel = [@reqlevel, 14].max
  167. when 106
  168. @atk += base_atk * (51 + rand(15)) / 100 + 1
  169. @reqlevel = [@reqlevel, 20].max
  170. when 107
  171. @atk += base_atk * (66 + rand(15)) / 100 + 1
  172. @reqlevel = [@reqlevel, 26].max
  173. when 108
  174. @atk += base_atk * (81 + rand(20)) / 100 + 1
  175. @reqlevel = [@reqlevel, 32].max
  176. when 109
  177. @atk += base_atk * (101 + rand(100)) / 100 + 1
  178. @reqlevel = [@reqlevel, 41].max
  179. when 110
  180. @atk += base_atk * (201 + rand(100)) / 100 + 1
  181. @reqlevel = [@reqlevel, 51].max
  182. if @rarity == 4
  183. @reqlevel = [@reqlevel, 56].max
  184. end
  185. when 111
  186. end
  187. end

  188. def modify_weapon_suffix(suffix)
  189. case suffix
  190. when 101
  191. @reqlevel = 1
  192. when 102
  193. @str_plus += rand(2) + 1
  194. @reqlevel = [@reqlevel, 1].max
  195. when 103
  196. @str_plus += rand(3) + 3
  197. @reqlevel = [@reqlevel, 10].max
  198. when 104
  199. @str_plus += rand(4) + 6
  200. @reqlevel = [@reqlevel, 26].max
  201. when 105
  202. @str_plus += rand(6) + 10
  203. @reqlevel = [@reqlevel, 42].max
  204. when 106
  205. @str_plus += rand(5) + 16
  206. @reqlevel = [@reqlevel, 58].max
  207. when 107
  208. @str_plus += rand(10) + 21
  209. @reqlevel = [@reqlevel, 71].max
  210. when 108
  211. end
  212. end

  213. end
  214. end
  215. 第二步: 修改所插入代码中的modify_weapon_prefix和modify_weapon_suffix两个方法的内容
  216. 通过你需要的效果更改相应的武器属性,如
  217. 攻击力: @atk
  218. 防御力: @pdef
  219. 魔防力: @mdef
  220. 力/灵/速/魔加成: @str_plus/@dex_plus/@agi_plus/@int_plus
  221. 价格: @price
  222. 武器属性: @element_set (用push/delete方法增减)
  223. 武器状态: @plus_state_set/@minus_state_set(用push/delete方法增减)
  224. 第三步: 设定数据库
  225. 在武器设定里,只写武器的基本名称
  226. 在状态设定里,从102编号开始,填写魔法类武器的后辍名,从501编号开始,填写稀有类武器的后辍名,从802编号开始,填写无双类武器的后辍名(从802开始须与数据库的基本名称一一对应)
  227. 在系统设定-属性里,从96-99编号填写低品质武器的前辍名,100号填写强化武器的前辍名,101留白,102开始填魔法类武器的前辍名,501开始填稀有类武器的前辍名,802开始填套装类武器的前辍名(从802开始须与数据库的基本名称一一对应)
  228. 第四步: 修改原有系统脚本
  229. 在Game_Actor定义部分
  230. 1.全局搜索 $data_weapons,替换为$game_system.weapons
  231. 2.修改装备可能判定
  232. def equippable?(item)
  233. ....
  234. if $data_classes[@class_id].weapon_set.include?(item.type)
  235. ....

  236. end
  237. 3. 修改更改装备方法
  238. def equip(equip_type, id)
  239. case equip_type
  240. when 0 # 武器
  241. if id == 0 or $game_party.weapon_number(id) > 0
  242. $game_party.gain_weapon(-@weapon_id, 1)
  243. @weapon_id = id
  244. $game_party.lose_weapon(id, 1)
  245. end
  246. ....
  247. 在Window_Item, Window_Status, Window_EquipItem, Window_EquipRight四个定义中
  248. 全局搜索$data_weapons,替换为$game_system.weapons
  249. 将Window_EquipItem第41行改为
  250. if $game_party.weapon_number(i) > 0 and weapon_set.include?($game_system.weapons[i].type)
  251. 第五步: 调用方法
  252. 使用事件"增减装备"来获得武器,武器的编号为数据库的编号
  253. 例如: 增减装备, 1.剑, 1
  254. 这样就会随机产生一把剑并获取之
  255. 不建议使用事件"增减装备"来失去武器
  256. 要失去武器时,可事件调用脚本
  257. $game_party.lose_item(weapon.id, 数量)
  258. (weapon请预先定义为你持有的某一件具体武器)
  259. 备注:系统生成的装备类型概率
  260. 1/8 - 低品质武器
  261. 1/16 - 强化品质武器
  262. 1/16 - 魔法类武器
  263. 1/32 - 稀有类武器
  264. 1/64 - 套装类武器
  265. 1/128 - 无双类武器
  266. 其余为一般的武器
  267. 追加的武器公共定义,以下可以按自己需要在相关脚本中调用:
  268. @type: 武器的原本类型,主要是判断能不能装备
  269. @rarity: 武器的稀有度,可以配合道具颜色脚本进行颜色显示控制
  270. @reqlevel: 武器的需要等级,可以用在判定是否能装备该武器上(该Demo脚本没有加这个判定)
复制代码
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……

Lv1.梦旅人

梦石
0
星屑
55
在线时间
0 小时
注册时间
2008-5-24
帖子
94
10
发表于 2008-5-30 01:14:30 | 只看该作者
有谁测试过没有...
回复 支持 反对

使用道具 举报

Lv1.梦旅人

堕落天使

梦石
0
星屑
55
在线时间
73 小时
注册时间
2005-10-22
帖子
337
9
发表于 2005-10-25 01:59:33 | 只看该作者
老坛子转过来的~~~~~不过依然支持!
厌世了……
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

本尊<

梦石
0
星屑
50
在线时间
0 小时
注册时间
2005-10-22
帖子
205
8
发表于 2005-10-24 22:41:30 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

本尊<

梦石
0
星屑
50
在线时间
0 小时
注册时间
2005-10-22
帖子
205
7
发表于 2005-10-24 22:41:30 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

66RPG站长

梦石
0
星屑
54
在线时间
615 小时
注册时间
2005-10-10
帖子
5734

RMVX自由创作大赛亚军第2届短篇游戏比赛亚军第5届短篇游戏比赛冠军

6
发表于 2005-10-24 21:05:50 | 只看该作者
OK,不好意思{/cy}
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

遠航の猫咪

梦石
3
星屑
23186
在线时间
2387 小时
注册时间
2005-10-15
帖子
1166

开拓者

5
发表于 2005-10-24 19:14:17 | 只看该作者
汗,柳柳把这个发布了?...先撤下来吧

好像有一些bug...另外这个脚本需要设置的地方太多,等以后做示范工程再发布比较好..这么干巴巴的讲讲不清楚的
SailCat (小猫子·要开心一点) 共上站 24 次,发表过 11 篇文章 上 次 在: [2006年01月28日11:41:18 星期六] 从 [162.105.120.91] 到本站一游。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
65
在线时间
2 小时
注册时间
2005-10-21
帖子
96
4
发表于 2005-10-24 05:09:31 | 只看该作者
以下引用光灵旋影于2005-10-23 20:43:32的发言:

看的头晕晕~~~

看到我修改后的版本,你绝对会更晕
我自己看着我那个都晕
[FLY][B]Think Globally - Act locally[/B][/FLY]
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2005-10-15
帖子
32
3
发表于 2005-10-24 04:43:32 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
275
在线时间
1373 小时
注册时间
2005-10-16
帖子
5113

贵宾

2
 楼主| 发表于 2005-10-22 00:35:01 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
  1. 说明:
  2. 1.因为本系统对RPG底层数据结构的改动非常大,对RGSS完全不了解者不建议采用本系统
  3. 2.因为同样的原因,本系统造成脚本冲突的可能性非常大
  4. 使用方法:
  5. 第一步,插入下列代码到Main以前:
  6. class Game_System
  7. attr_accessor :weapons
  8. alias sailcat_initialize initialize
  9. def initialize
  10. sailcat_initialize
  11. @weapons = [nil]
  12. end
  13. end
  14. class Game_Party

  15. def gain_weapon(weapon_id, n)
  16. if weapon_id > 0
  17. if n > 0
  18. weapon = RPG::Random_Weapon.new(weapon_id)
  19. weapon.id = $game_system.weapons.size
  20. $game_system.weapons.push(weapon)
  21. @weapons[weapon.id] = n
  22. end
  23. if n < 0
  24. @weapons[weapon_id] = [@weapons[weapon_id] + n, 0].max
  25. end
  26. elsif weapon_id < 0
  27. @weapons[-weapon_id] = [[@weapons[-weapon_id] + n, 0].max, 99].min
  28. end
  29. end

  30. end
  31. module RPG
  32. class Random_Weapon < Weapon

  33. attr_accessor :type
  34. attr_accessor :rarity
  35. attr_accessor :reqlevel

  36. def initialize(id)
  37. @type = id
  38. @name = $data_weapons[id].name
  39. @icon_name = $data_weapons[id].icon_name
  40. @description = $data_weapons[id].description
  41. @animation1_id = $data_weapons[id].animation1_id
  42. @animation2_id = $data_weapons[id].animation2_id
  43. @price = $data_weapons[id].price
  44. base_atk = $data_weapons[id].atk
  45. @atk = base_atk
  46. @pdef = $data_weapons[id].pdef
  47. @mdef = $data_weapons[id].mdef
  48. @str_plus = $data_weapons[id].str_plus
  49. @dex_plus = $data_weapons[id].dex_plus
  50. @agi_plus = $data_weapons[id].agi_plus
  51. @int_plus = $data_weapons[id].int_plus
  52. @element_set = $data_weapons[id].element_set
  53. @plus_state_set = $data_weapons[id].plus_state_set
  54. @minus_state_set = $data_weapons[id].minus_state_set
  55. @element_set.push(suffix)
  56. @minus_state_set.push(prefix)
  57. @reqlevel = 1
  58. case rand(256)
  59. when 0..31 # Low-Quality
  60. prefix = [99 - rand(4)]
  61. suffix = [101]
  62. @rarity = 0
  63. @name = $data_system.elements[prefix[0]] + " " + @name
  64. when 32..191 # Normal
  65. prefix = [101]
  66. suffix = [101]
  67. @rarity = 1
  68. when 192..223 # High-Quality
  69. prefix = [100]
  70. suffix = [101]
  71. @rarity = 2
  72. @name = $data_system.elements[prefix[0]] + " " + @name
  73. when 224..239 # Magic
  74. case rand(3)
  75. when 0
  76. prefix = [rand(40) + 102]
  77. suffix = [101]
  78. @name = $data_system.elements[prefix[0]] + " " + @name
  79. when 1
  80. prefix = [101]
  81. suffix = [rand(40) + 102]
  82. @name = @name + " of " + $data_states[suffix[0]].name
  83. when 2
  84. prefix = [rand(40) + 102]
  85. suffix = [rand(40) + 102]
  86. @name = $data_system.elements[prefix[0]] + " " + @name + " of " + $data_states[suffix[0]].name
  87. end
  88. @rarity = 3
  89. when 240..247 # Rare
  90. rname1 = rand(10) + 501
  91. rname2 = id * 2 + 501 + rand(2)
  92. prefix = []
  93. suffix = []
  94. case rand(10)
  95. when 0..1 # 3 affixes
  96. n = 1
  97. odd = true
  98. when 2..3 # 4 affixes
  99. n = 2
  100. odd = false
  101. when 4..6 # 5 affixes
  102. n = 2
  103. odd = true
  104. when 7..9 # 6 affixes
  105. n = 3
  106. odd = false
  107. end
  108. n.times do
  109. prefix.push(rand(40) + 102)
  110. suffix.push(rand(40) + 102)
  111. end
  112. if odd
  113. if rand(2) == 1
  114. prefix.push(rand(40) + 102)
  115. else
  116. suffix.push(rand(40) + 102)
  117. end
  118. end
  119. @rarity = 4
  120. @name = $data_system.elements[rname1] + " " + $data_states[rname2].name + " " + @name
  121. when 248..253 # Set
  122. sname = id + 801
  123. prefix = [sname]
  124. suffix = [101]
  125. @name = $data_system.elements[sname] + " " + @name
  126. @rarity = 5
  127. when 254..255 # Unique
  128. prefix = [101]
  129. uname = id + 801
  130. suffix = [uname]
  131. @name = $data_states[uname].name + " " + @name
  132. @rarity = 6
  133. end
  134. for i in prefix
  135. modify_weapon_prefix(i)
  136. end
  137. for j in suffix
  138. modify_weapon_suffix(j)
  139. end
  140. end

  141. def modify_weapon_prefix(prefix)
  142. case prefix
  143. when 96
  144. @atk -= base_atk * (31 + rand(10)) / 100 + 1
  145. when 97
  146. @atk -= base_atk * (21 + rand(10)) / 100 + 1
  147. when 98
  148. @atk -= base_atk * (11 + rand(10)) / 100 + 1
  149. when 99
  150. @atk -= base_atk * (1 + rand(10)) / 100 + 1
  151. when 100
  152. @atk += base_atk * (1 + rand(15)) / 100 + 1
  153. when 101
  154. @atk = base_atk
  155. when 102
  156. @atk += base_atk * (10 + rand(11)) / 100 + 1
  157. @reqlevel = [@reqlevel, 1].max
  158. when 103
  159. @atk += base_atk * (21 + rand(10)) / 100 + 1
  160. @reqlevel = [@reqlevel, 5].max
  161. when 104
  162. @atk += base_atk * (31 + rand(10)) / 100 + 1
  163. @reqlevel = [@reqlevel, 8].max
  164. when 105
  165. @atk += base_atk * (41 + rand(10)) / 100 + 1
  166. @reqlevel = [@reqlevel, 14].max
  167. when 106
  168. @atk += base_atk * (51 + rand(15)) / 100 + 1
  169. @reqlevel = [@reqlevel, 20].max
  170. when 107
  171. @atk += base_atk * (66 + rand(15)) / 100 + 1
  172. @reqlevel = [@reqlevel, 26].max
  173. when 108
  174. @atk += base_atk * (81 + rand(20)) / 100 + 1
  175. @reqlevel = [@reqlevel, 32].max
  176. when 109
  177. @atk += base_atk * (101 + rand(100)) / 100 + 1
  178. @reqlevel = [@reqlevel, 41].max
  179. when 110
  180. @atk += base_atk * (201 + rand(100)) / 100 + 1
  181. @reqlevel = [@reqlevel, 51].max
  182. if @rarity == 4
  183. @reqlevel = [@reqlevel, 56].max
  184. end
  185. when 111
  186. end
  187. end

  188. def modify_weapon_suffix(suffix)
  189. case suffix
  190. when 101
  191. @reqlevel = 1
  192. when 102
  193. @str_plus += rand(2) + 1
  194. @reqlevel = [@reqlevel, 1].max
  195. when 103
  196. @str_plus += rand(3) + 3
  197. @reqlevel = [@reqlevel, 10].max
  198. when 104
  199. @str_plus += rand(4) + 6
  200. @reqlevel = [@reqlevel, 26].max
  201. when 105
  202. @str_plus += rand(6) + 10
  203. @reqlevel = [@reqlevel, 42].max
  204. when 106
  205. @str_plus += rand(5) + 16
  206. @reqlevel = [@reqlevel, 58].max
  207. when 107
  208. @str_plus += rand(10) + 21
  209. @reqlevel = [@reqlevel, 71].max
  210. when 108
  211. end
  212. end

  213. end
  214. end
  215. 第二步: 修改所插入代码中的modify_weapon_prefix和modify_weapon_suffix两个方法的内容
  216. 通过你需要的效果更改相应的武器属性,如
  217. 攻击力: @atk
  218. 防御力: @pdef
  219. 魔防力: @mdef
  220. 力/灵/速/魔加成: @str_plus/@dex_plus/@agi_plus/@int_plus
  221. 价格: @price
  222. 武器属性: @element_set (用push/delete方法增减)
  223. 武器状态: @plus_state_set/@minus_state_set(用push/delete方法增减)
  224. 第三步: 设定数据库
  225. 在武器设定里,只写武器的基本名称
  226. 在状态设定里,从102编号开始,填写魔法类武器的后辍名,从501编号开始,填写稀有类武器的后辍名,从802编号开始,填写无双类武器的后辍名(从802开始须与数据库的基本名称一一对应)
  227. 在系统设定-属性里,从96-99编号填写低品质武器的前辍名,100号填写强化武器的前辍名,101留白,102开始填魔法类武器的前辍名,501开始填稀有类武器的前辍名,802开始填套装类武器的前辍名(从802开始须与数据库的基本名称一一对应)
  228. 第四步: 修改原有系统脚本
  229. 在Game_Actor定义部分
  230. 1.全局搜索 $data_weapons,替换为$game_system.weapons
  231. 2.修改装备可能判定
  232. def equippable?(item)
  233. ....
  234. if $data_classes[@class_id].weapon_set.include?(item.type)
  235. ....

  236. end
  237. 3. 修改更改装备方法
  238. def equip(equip_type, id)
  239. case equip_type
  240. when 0 # 武器
  241. if id == 0 or $game_party.weapon_number(id) > 0
  242. $game_party.gain_weapon(-@weapon_id, 1)
  243. @weapon_id = id
  244. $game_party.lose_weapon(id, 1)
  245. end
  246. ....
  247. 在Window_Item, Window_Status, Window_EquipItem, Window_EquipRight四个定义中
  248. 全局搜索$data_weapons,替换为$game_system.weapons
  249. 将Window_EquipItem第41行改为
  250. if $game_party.weapon_number(i) > 0 and weapon_set.include?($game_system.weapons[i].type)
  251. 第五步: 调用方法
  252. 使用事件"增减装备"来获得武器,武器的编号为数据库的编号
  253. 例如: 增减装备, 1.剑, 1
  254. 这样就会随机产生一把剑并获取之
  255. 不建议使用事件"增减装备"来失去武器
  256. 要失去武器时,可事件调用脚本
  257. $game_party.lose_item(weapon.id, 数量)
  258. (weapon请预先定义为你持有的某一件具体武器)
  259. 备注:系统生成的装备类型概率
  260. 1/8 - 低品质武器
  261. 1/16 - 强化品质武器
  262. 1/16 - 魔法类武器
  263. 1/32 - 稀有类武器
  264. 1/64 - 套装类武器
  265. 1/128 - 无双类武器
  266. 其余为一般的武器
  267. 追加的武器公共定义,以下可以按自己需要在相关脚本中调用:
  268. @type: 武器的原本类型,主要是判断能不能装备
  269. @rarity: 武器的稀有度,可以配合道具颜色脚本进行颜色显示控制
  270. @reqlevel: 武器的需要等级,可以用在判定是否能装备该武器上(该Demo脚本没有加这个判定)
复制代码
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2024-11-16 18:57

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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