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

Project1

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

[已经解决] 怎么样让防具附加技能变成武器附加技能啊

[复制链接]

Lv1.梦旅人

超级囧神 无尽的灌水

梦石
0
星屑
144
在线时间
784 小时
注册时间
2010-6-27
帖子
2065
跳转到指定楼层
1
发表于 2010-9-12 08:52:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1星屑
呜呜呜~我不会=-=!!!求!!!
  1. #==============================================================================
  2. # ★ LY0_Costants
  3. #------------------------------------------------------------------------------
  4. #  独自的定数的定义
  5. #==============================================================================
  6. #------------------------------------------------------------------------------
  7. # ◆ 基本設定
  8. #------------------------------------------------------------------------------
  9. # 装备技能(识別用文字列 + [技能 ID|技能 ID|...]) ※ 最大数 4
  10. LY0_ARMOR_SKILL_SIGNATURE = "*ARMORSKILL"

  11. #==============================================================================
  12. # ★ LY0_Module
  13. #------------------------------------------------------------------------------
  14. #  独自的机能添加
  15. #==============================================================================
  16. module LY0
  17. #--------------------------------------------------------------------------
  18. # ☆ 属性道具取得
  19. # id : 属性 ID
  20. #--------------------------------------------------------------------------
  21. def self.element_icon(id)
  22. return LY0_ELEMENT_ICON[id - 1]
  23. end
  24. #--------------------------------------------------------------------------
  25. # ☆ 防具技能的附加
  26. # item : 防具号
  27. #--------------------------------------------------------------------------
  28. def self.armor_skill(item)
  29. result = []
  30. if item.is_a?(RPG::Armor)
  31. sig = LY0_ARMOR_SKILL_SIGNATURE
  32. reg = /#{Regexp.quote sig}\[((\d+\|?)+)\]/
  33. if item.note.scan(reg).to_a[0]
  34. r = $~[0].gsub(/#{Regexp.quote sig}\[/, "").gsub(/\]/, "")
  35. for s in r.split(/\s*\|\s*/)
  36. skill = $data_skills[s.to_i]
  37. result.push(skill) if skill.is_a?(RPG::Skill)
  38. end
  39. end
  40. end
  41. return result
  42. end
  43. end

  44. class Game_Actor
  45. alias _ly0sys_skill_can_use? skill_can_use?
  46. #--------------------------------------------------------------------------
  47. # ☆ 技能配列取得
  48. #--------------------------------------------------------------------------
  49. def armor_skills
  50. result = []
  51. for armor in self.armors
  52. for skill in LY0::armor_skill(armor)
  53. result.push(skill)
  54. end
  55. end
  56. return result
  57. end
  58. #--------------------------------------------------------------------------
  59. # ○ 技能使用可能判定 (再定義)
  60. # skill : 技能
  61. #--------------------------------------------------------------------------
  62. def skill_can_use?(skill)
  63. # 防具
  64. for a_skill in armor_skills
  65. return super if a_skill.id == skill.id
  66. end
  67. return _ly0sys_skill_can_use?(skill)
  68. end
  69. end
  70. #==============================================================================
  71. # ★ LY0_Window
  72. #------------------------------------------------------------------------------
  73. #==============================================================================
  74. class Window_Base
  75. #--------------------------------------------------------------------------
  76. # ☆ システムメッセージの下地を描画
  77. #--------------------------------------------------------------------------
  78. def draw_system_base
  79. self.opacity = 0
  80. rect = Rect.new(0, 0, contents.width, self.contents.height)
  81. self.contents.fill_rect(rect, system_color)
  82. rect = Rect.new(2, 2, contents.width - 4, self.contents.height - 4)
  83. color = Color.new(24, 8, 4)
  84. self.contents.fill_rect(rect, color)
  85. end

  86. end
  87. #==============================================================================
  88. # ■ Window_Skill
  89. #------------------------------------------------------------------------------
  90. #  特技画面中、显示可以使用的特技浏览的窗口
  91. #==============================================================================
  92. class Window_Skill
  93. #--------------------------------------------------------------------------
  94. # ● 刷新
  95. #--------------------------------------------------------------------------
  96. def refresh
  97. temp = []
  98. for skill in @actor.skills
  99. next if $game_temp.in_battle and not skill.battle_ok?
  100. temp.push(skill)
  101. end
  102. # 防具加技能
  103. for skill in @actor.armor_skills
  104. next if $game_temp.in_battle and not skill.battle_ok?
  105. temp.push(skill) unless temp.include?(skill)
  106. end
  107. temp.sort! {|a, b| a.id <=> b.id}
  108. @data = []
  109. for skill in temp
  110. @data.push(skill)
  111. if skill.id == @actor.last_skill_id
  112. self.index = @data.size - 1
  113. end
  114. end
  115. @item_max = @data.size
  116. create_contents
  117. for i in 0...@item_max
  118. draw_item(i)
  119. end
  120. end
  121. end

  122. class Scene_Equip
  123. alias _ly0mequip_start start
  124. alias _ly0mequip_terminate terminate
  125. alias _ly0mequip_update update
  126. alias _ly0mequip_update_equip_selection update_equip_selection
  127. alias _ly0mequip_update_item_windows update_item_windows
  128. #--------------------------------------------------------------------------
  129. # ○ 開始処理 (追加定義)
  130. #--------------------------------------------------------------------------
  131. def start
  132. _ly0mequip_start
  133. @skill_window = LY0_WindowItemSpec.new(0, 248, 288, [@actor])
  134. @skill_window.y = 416 - @skill_window.height
  135. @skill_window.active = true
  136. @skill_window.visible = false
  137. end
  138. #--------------------------------------------------------------------------
  139. # ○ 終了処理 (追加定義)
  140. #--------------------------------------------------------------------------
  141. def terminate
  142. _ly0mequip_terminate
  143. @skill_window.dispose
  144. end
  145. #--------------------------------------------------------------------------
  146. # ○ フレーム更新 (追加定義)
  147. #--------------------------------------------------------------------------
  148. def update
  149. _ly0mequip_update
  150. @skill_window.update
  151. end
  152. #--------------------------------------------------------------------------
  153. # ○ 装備部位選択の更新 (追加定義)
  154. #--------------------------------------------------------------------------
  155. def update_equip_selection
  156. _ly0mequip_update_equip_selection
  157. @skill_window.x = 544 - 288
  158. @skill_window.item = @equip_window.item
  159. end
  160. #--------------------------------------------------------------------------
  161. # ○ アイテムウィンドウの更新 (追加定義)
  162. #--------------------------------------------------------------------------
  163. def update_item_windows
  164. _ly0mequip_update_item_windows
  165. @skill_window.x = @item_window.index % 2 == 0 ? 544 - 288 : 0
  166. @skill_window.item = @item_window.item
  167. end
  168. end
  169. #==============================================================================
  170. # ★ LY0_WindowItemSpec
  171. #------------------------------------------------------------------------------
  172. #  装备技能 属性的显示
  173. #==============================================================================
  174. class LY0_WindowItemSpec < Window_Base
  175. #--------------------------------------------------------------------------
  176. # ☆ オブジェクト初期化
  177. # actors : アクターの配列
  178. #--------------------------------------------------------------------------
  179. def initialize(x, y, width, actors)
  180. super(x, y, width, WLH * 5 + 48)
  181. @actors = actors
  182. @item = nil
  183. self.opacity = 0
  184. self.active = false
  185. refresh
  186. end
  187. #--------------------------------------------------------------------------
  188. # ☆ リフレッシュ
  189. #--------------------------------------------------------------------------
  190. def refresh
  191. self.contents.clear
  192. if self.active and @item != nil
  193. draw_system_base
  194. if @item.is_a?(RPG::Armor)
  195. draw_armor_skill
  196. else
  197. self.visible = false
  198. end
  199. end
  200. end
  201. #--------------------------------------------------------------------------
  202. # ☆防具技能的描画
  203. #--------------------------------------------------------------------------
  204. def draw_armor_skill
  205. cw = contents.width - @actors.size * 24 - 8
  206. #draw_system_font("ARMOR_SKILL", 8, 8)
  207. self.contents.draw_text(8, 8, 110, 24, "ARMOR SKILL")
  208. self.contents.font.color = normal_color
  209. skills = LY0::armor_skill(@item)
  210. for i in 0..3
  211. y = WLH * (i + 1) + 8
  212. if skills[i] != nil
  213. for actor in @actors
  214. x = cw + (@actors.size > 1 ? actor.index * 24 : -8)
  215. draw_actor_status_character(actor, x + 16, 32)
  216. if actor.skill_learn?(skills[i])
  217. #draw_system_icon("CHECK1", x, y, 24)
  218. self.contents.draw_text(x, y, 24, 2,"RE")
  219. elsif actor.armor_skills.include?(skills[i])
  220. #draw_system_icon("CHECK2", x, y, 24)
  221. self.contents.draw_text(x, y, 24, 24, "ON")
  222. end
  223. end
  224. draw_item_name(skills[i], 8, y)
  225. else
  226. self.contents.draw_text(32, y, cw, WLH, "------------")
  227. end
  228. end
  229. self.visible = (not skills.empty?)
  230. end
  231. #--------------------------------------------------------------------------
  232. # ☆ 技能图用步行图の描画
  233. # actor : 角色
  234. # x : 描画先 X 座標
  235. # y : 描画先 Y 座標
  236. # opacity : 不透明度
  237. #--------------------------------------------------------------------------
  238. def draw_actor_status_character(actor, x, y)
  239. bitmap = Cache.character(actor.character_name)
  240. cw = bitmap.width / 12
  241. ch = bitmap.height / 8
  242. n = actor.character_index
  243. src_rect = Rect.new((n%4*3+1)*cw + 5, (n/4*4)*ch, 22, 22)
  244. self.contents.blt(x - cw / 2 + 1, y - ch + 9, bitmap, src_rect)
  245. end
  246. #--------------------------------------------------------------------------
  247. # ☆ 道具的設定
  248. # item : 新变更的道具
  249. #--------------------------------------------------------------------------
  250. def item=(item)
  251. if @item != item
  252. @item = item
  253. refresh
  254. end
  255. end
  256. end
复制代码
网路原文“这个是防具的,把所有的"Armor”改成"Weapon"就行了,注意大小写,所有的都要改”

最佳答案

查看完整内容

回复 a554187203 的帖子 即使不装备那个附带技能的装备也可以使用 类似最终幻想战略版

点评

变成最佳答案之后我连帖了...  发表于 2010-9-12 14:18

Lv1.梦旅人

梦石
0
星屑
50
在线时间
554 小时
注册时间
2007-6-25
帖子
1188
2
发表于 2010-9-12 08:52:15 | 只看该作者
回复 a554187203 的帖子


    即使不装备那个附带技能的装备也可以使用
类似最终幻想战略版
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
416 小时
注册时间
2006-10-21
帖子
1245
3
发表于 2010-9-12 10:20:15 | 只看该作者
回复

使用道具 举报

Lv1.梦旅人

超级囧神 无尽的灌水

梦石
0
星屑
144
在线时间
784 小时
注册时间
2010-6-27
帖子
2065
4
 楼主| 发表于 2010-9-12 11:58:51 | 只看该作者
回复 wangswz 的帖子


    不会用啊=-=|||~
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
554 小时
注册时间
2007-6-25
帖子
1188
5
发表于 2010-9-12 12:14:04 | 只看该作者
回复 a554187203 的帖子

那个是在备注里面设定的
<need_ap XXX>这个是技能方面的注释,XXX填入学习技能需要的AP,不设定就学不会,和装备绑定
<スキル習得 XXX>这个是装备的注释,XXX填入绑定技能的ID
   
回复

使用道具 举报

Lv1.梦旅人

超级囧神 无尽的灌水

梦石
0
星屑
144
在线时间
784 小时
注册时间
2010-6-27
帖子
2065
6
 楼主| 发表于 2010-9-12 12:36:39 | 只看该作者
回复 SOU 的帖子


    技能有了足够的ap有什么用呢?
回复

使用道具 举报

Lv1.梦旅人

超级囧神 无尽的灌水

梦石
0
星屑
144
在线时间
784 小时
注册时间
2010-6-27
帖子
2065
7
 楼主| 发表于 2010-9-12 14:17:06 | 只看该作者
哦~唉,里面的功能还可以哦~使用使用~
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-15 23:16

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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