曙海教育集团论坛ARM专区ARM技术讨论专区 → 装备脚本问题


  共有7099人关注过本帖树形打印

主题:装备脚本问题

美女呀,离线,留言给我吧!
wangxinxin
  1楼 个性首页 | 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:青蜂侠 帖子:1393 积分:14038 威望:0 精华:0 注册:2010-11-12 11:08:23
装备脚本问题  发帖心情 Post By:2010-11-18 9:16:36

请问怎去除最强装备和卸下所有装备的选项,直接进入装备更变?
  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/ ◆ 拡張装備画面 - KGC_ExtendedEquipScene ◆ VX ◆
  3. #_/ ◇ Last update : 2008/02/10 ◇
  4. #_/----------------------------------------------------------------------------
  5. #_/ 機能を強化した装備画面を作成します。
  6. #_/============================================================================
  7. #_/ 【基本機能】?ヘルプウィンドウ機能拡張? より下に導入してください。
  8. #_/ 【装備】?装備拡張? より上に導入してください。
  9. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  10. #==============================================================================
  11. # ★ カスタマイズ項目 - Customize ★
  12. #==============================================================================
  13. module KGC
  14. module ExtendedEquipScene
  15. # ◆ パラメータ名
  16. VOCAB_PARAM = {
  17. :hit => "命中率", # 命中率
  18. :eva => "回避率", # 回避率
  19. :cri => "必杀率", # クリティカル率
  20. } # ← この } は消さないこと!
  21. # ◆ 装備変更時に表示するパラメータ
  22. # 表示したい順に , で区切って記入。
  23. # :maxhp .. 最大 HP
  24. # :maxmp .. 最大 MP
  25. # :atk .. 攻撃力
  26. # :def .. 防御力
  27. # :spi .. 精神力
  28. # :agi .. 敏捷性
  29. # :hit .. 命中率
  30. # :eva .. 回避率
  31. # :cri .. クリティカル率
  32. EQUIP_PARAMS = [ :atk, :def, :spi, :agi, :hit, :eva, :cri ]
  33. # ◆ 装備画面のコマンド名
  34. COMMANDS = [
  35. "装备变更", # 装備変更
  36. "最强装备", # 最強装備
  37. "卸下所有装备", # すべて外す
  38. ] # ← この ] は消さないこと!
  39. # ◆ 装備画面コマンドのヘルプ
  40. COMMAND_HELP = [
  41. "更换装备而已", # 装備変更
  42. "省力啊但是不可靠", # 最強装備
  43. "省力又可靠", # すべて外す
  44. ] # ← この ] は消さないこと!
  45. # ◆ 最強装備を行わない装備種別
  46. # 最強装備から除外する装備種別を記述。
  47. # -1..武器 0..盾 1..頭 2..身体 3..装飾品 4~..?装備拡張? で定義
  48. IGNORE_STRONGEST_KIND = [3, 5]
  49. end
  50. end
  51. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  52. $imported = {} if $imported == nil
  53. $imported["ExtendedEquipScene"] = true
  54. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  55. #==============================================================================
  56. # ■ Vocab
  57. #==============================================================================
  58. module Vocab
  59. # 命中率
  60. def self.hit
  61. return KGC::ExtendedEquipScene::VOCAB_PARAM[:hit]
  62. end
  63. # 回避率
  64. def self.eva
  65. return KGC::ExtendedEquipScene::VOCAB_PARAM[:eva]
  66. end
  67. # クリティカル率
  68. def self.cri
  69. return KGC::ExtendedEquipScene::VOCAB_PARAM[:cri]
  70. end
  71. end
  72. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  73. #==============================================================================
  74. # □ Window_ExtendedEquipCommand
  75. #------------------------------------------------------------------------------
  76. # 拡張装備画面で、実行する操作を選択するウィンドウです。
  77. #==============================================================================
  78. class Window_ExtendedEquipCommand < Window_Command
  79. #--------------------------------------------------------------------------
  80. # ● オブジェクト初期化
  81. #--------------------------------------------------------------------------
  82. def initialize
  83. super(160, KGC::ExtendedEquipScene::COMMANDS)
  84. self.active = false
  85. self.z = 1000
  86. end
  87. #--------------------------------------------------------------------------
  88. # ● ヘルプウィンドウの更新
  89. #--------------------------------------------------------------------------
  90. def update_help
  91. @help_window.set_text(KGC::ExtendedEquipScene::COMMAND_HELP[self.index])
  92. end
  93. end
  94. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  95. #==============================================================================
  96. # □ Window_EquipBaseInfo
  97. #------------------------------------------------------------------------------
  98. # 装備画面で、アクターの基本情報を表示するウィンドウです。
  99. #==============================================================================
  100. class Window_EquipBaseInfo < Window_Base
  101. #--------------------------------------------------------------------------
  102. # ● オブジェクト初期化
  103. # x : ウィンドウの X 座標
  104. # y : ウィンドウの Y 座標
  105. # actor : アクター
  106. #--------------------------------------------------------------------------
  107. def initialize(x, y, actor)
  108. super(x, y, Graphics.width / 2, WLH + 32)
  109. @actor = actor
  110. refresh
  111. end
  112. #--------------------------------------------------------------------------
  113. # ● リフレッシュ
  114. #--------------------------------------------------------------------------
  115. def refresh
  116. self.contents.clear
  117. draw_actor_name(@actor, 0, 0)
  118. # EP 制を使用する場合は EP を描画
  119. if $imported["EquipExtension"] && KGC::EquipExtension::USE_EP_SYSTEM
  120. draw_actor_ep(@actor, 116, 0, Graphics.width / 2 - 148)
  121. end
  122. end
  123. end
  124. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  125. #==============================================================================
  126. # ■ Window_EquipItem
  127. #==============================================================================
  128. class Window_EquipItem < Window_Item
  129. #--------------------------------------------------------------------------
  130. # ● オブジェクト初期化
  131. # x : ウィンドウの X 座標
  132. # y : ウィンドウの Y 座標
  133. # width : ウィンドウの幅
  134. # height : ウィンドウの高さ
  135. # actor : アクター
  136. # equip_type : 装備部位
  137. #--------------------------------------------------------------------------
  138. alias initialize_KGC_ExtendedEquipScene initialize
  139. def initialize(x, y, width, height, actor, equip_type)
  140. width = Graphics.width / 2
  141. initialize_KGC_ExtendedEquipScene(x, y, width, height, actor, equip_type)
  142. @column_max = 1
  143. refresh
  144. end
  145. #--------------------------------------------------------------------------
  146. # ● リフレッシュ
  147. #--------------------------------------------------------------------------
  148. alias refresh_KGC_ExtendedEquipScene refresh
  149. def refresh
  150. return if @column_max == 2 # 無駄な描画は行わない
  151. refresh_KGC_ExtendedEquipScene
  152. end
  153. end
  154. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  155. #==============================================================================
  156. # □ Window_ExtendedEquipStatus
  157. #------------------------------------------------------------------------------
  158. # 拡張装備画面で、アクターの能力値変化を表示するウィンドウです。
  159. #==============================================================================
  160. class Window_ExtendedEquipStatus < Window_EquipStatus
  161. #--------------------------------------------------------------------------
  162. # ○ 公開インスタンス変数
  163. #--------------------------------------------------------------------------
  164. attr_writer :equip_type # 装備タイプ
  165. #--------------------------------------------------------------------------
  166. # ● オブジェクト初期化
  167. # x : ウィンドウの X 座標
  168. # y : ウィンドウの Y 座標
  169. # actor : アクター
  170. #--------------------------------------------------------------------------
  171. def initialize(x, y, actor)
  172. @equip_type = -1
  173. @caption_cache = nil
  174. super(x, y, actor)
  175. @new_item = nil
  176. @new_param = {}
  177. refresh
  178. end
  179. #--------------------------------------------------------------------------
  180. # ● 解放
  181. #--------------------------------------------------------------------------
  182. def dispose
  183. super
  184. @caption_cache.dispose if @caption_cache != nil
  185. end
  186. #--------------------------------------------------------------------------
  187. # ● ウィンドウ内容の作成
  188. #--------------------------------------------------------------------------
  189. def create_contents
  190. self.contents.dispose
  191. self.contents = Bitmap.new(Graphics.width / 2 - 32, height - 32)
  192. end
  193. #--------------------------------------------------------------------------
  194. # ● リフレッシュ
  195. #--------------------------------------------------------------------------
  196. def refresh
  197. return if @equip_type < 0
  198. if @caption_cache == nil
  199. create_cache
  200. else
  201. self.contents.clear
  202. self.contents.blt(0, 0, @caption_cache, @caption_cache.rect)
  203. end
  204. draw_item_name(@actor.equips[@equip_type], 0, 0)
  205. draw_item_name(@new_item, 24, WLH)
  206. KGC::ExtendedEquipScene::EQUIP_PARAMS.each_with_index { |param, i|
  207. draw_parameter(0, WLH * (i + 2), param)
  208. }
  209. end
  210. #--------------------------------------------------------------------------
  211. # ○ キャッシュ生成
  212. #--------------------------------------------------------------------------
  213. def create_cache
  214. create_contents
  215. self.contents.font.color = system_color
  216. self.contents.draw_text(0, WLH, 20, WLH, "→")
  217. # パラメータ描画
  218. KGC::ExtendedEquipScene::EQUIP_PARAMS.each_with_index { |param, i|
  219. draw_parameter_name(0, WLH * (i + 2), param)
  220. }
  221. @caption_cache = Bitmap.new(self.contents.width, self.contents.height)
  222. @caption_cache.blt(0, 0, self.contents, self.contents.rect)
  223. end
  224. #--------------------------------------------------------------------------
  225. # ○ 能力値名の描画
  226. # x : 描画先 X 座標
  227. # y : 描画先 Y 座標
  228. # type : 能力値の種類
  229. #--------------------------------------------------------------------------
  230. def draw_parameter_name(x, y, type)
  231. case type
  232. when :maxhp
  233. name = Vocab.hp
  234. when :maxmp
  235. name = Vocab.mp
  236. when :atk
  237. name = Vocab.atk
  238. when :def
  239. name = Vocab.def
  240. when :spi
  241. name = Vocab.spi
  242. when :agi
  243. name = Vocab.agi
  244. when :hit
  245. name = Vocab.hit
  246. when :eva
  247. name = Vocab.eva
  248. when :cri
  249. name = Vocab.cri
  250. end
  251. self.contents.font.color = system_color
  252. self.contents.draw_text(x + 4, y, 96, WLH, name)
  253. self.contents.font.color = system_color
  254. self.contents.draw_text(x + 156, y, 20, WLH, "→", 1)
  255. end
  256. #--------------------------------------------------------------------------
  257. # ● 装備変更後の能力値設定
  258. # new_param : 装備変更後のパラメータの配列
  259. # new_item : 変更後の装備
  260. #--------------------------------------------------------------------------
  261. def set_new_parameters(new_param, new_item)
  262. changed = false
  263. # パラメータ変化判定
  264. KGC::ExtendedEquipScene::EQUIP_PARAMS.each { |k|
  265. if @new_param[k] != new_param[k]
  266. changed = true
  267. break
  268. end
  269. }
  270. changed |= (@new_item != new_item)
  271. if changed
  272. @new_item = new_item
  273. @new_param = new_param
  274. refresh
  275. end
  276. end
  277. #--------------------------------------------------------------------------
  278. # ● 能力値の描画
  279. # x : 描画先 X 座標
  280. # y : 描画先 Y 座標
  281. # type : 能力値の種類
  282. #--------------------------------------------------------------------------
  283. def draw_parameter(x, y, type)
  284. case type
  285. when :maxhp
  286. value = @actor.maxhp
  287. when :maxmp
  288. value = @actor.maxmp
  289. when :atk
  290. value = @actor.atk

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部

返回版面帖子列表

装备脚本问题








签名