Project1

标题: LNX11战斗界面系统与技能消耗道具脚本冲突 [打印本页]

作者: XVI    时间: 2015-8-5 11:22
标题: LNX11战斗界面系统与技能消耗道具脚本冲突
本人在自己的游戏中同时添加了LNX11与技能消耗道具两套脚本,可在实际操作过程中发现,虽然游戏不会报错,可是在战斗时技能界面的技能选项变得看不见了。
具体情况如下图:

也许是两套脚本在特技这个选项上有些冲突,本人脚本知识匮乏所以无从下手,望各位大大出手相助。
最后附上范例:
Project2.zip (1.5 MB, 下载次数: 78)

作者: taroxd    时间: 2015-8-5 11:26
将技能消耗道具对UI的修改废除就可以了。如想保留,请自己重写这部分代码

RUBY 代码复制
  1. #[url]https://rpg.blue/thread-226207-1-1.html[/url]
  2. module IISNOW_ITEM_CONSUME_SKILL
  3.  
  4.   PATTERN = /.*ITEM:ID(\d+)NUM(\d+)(.*)/m  
  5.   # 非专业人士请勿修改,正则匹配式,修改后注意备注写法的改变,下同
  6.   PATTERN_E = /.*EQU:ID(\d+).*/m
  7.   PATTERN_A = /.*ARM:ID(\d+).*/m
  8.   STR_UN_CONSUM = "UN" # 物品不消耗标识
  9.  
  10.   TP_ICON = 189  # 你说你懂的
  11.   MP_ICON = 188
  12.  
  13.   STYLE = 1 # 界面风格(支持1,2,3,4效果自己体会,不推荐4)
  14.   STYLE_A = 2 # 提示风格(支持1,2,3,同上)
  15.   PLACE = 3 # 消耗物品的图标与数目间的间距
  16.   PLACE_E = 2 # 不同消耗物品间的间距
  17.   ORDER = [0,1,2]     # 从右往左的消耗显示顺序(0,TP;1,MP;2,物品)
  18.  
  19.   COLOR_ITEM = Color.new(255,255,255) # 物品消耗数目的字的颜色
  20.   COLOR_WE_L = Color.new(255,0,0) # 具体限定武器的框的颜色
  21.   COLOR_WE_A = Color.new(255,0,0) # 具体限定防具的框的颜色
  22.   COLOR_UN_I = Color.new(0,255,0) # 物品限定但不消耗的提示框的颜色
  23.  
  24.   TRAN_DE = 0 # 风格_A2下的透明度再次降低(最大为160)
  25. end
  26.  
  27. #~ class Window_SkillList
  28. #~   
  29. #~   include IISNOW_ITEM_CONSUME_SKILL
  30. #~   
  31. #~   def col_max
  32. #~     case STYLE
  33. #~     when 1,3,4
  34. #~       return 2
  35. #~     when 2
  36. #~       return 1
  37. #~     end
  38. #~   end
  39. #~   
  40. #~   def item_height
  41. #~     case STYLE
  42. #~     when 3
  43. #~       line_height * 2
  44. #~     when 1,2,4
  45. #~       line_height + 1
  46. #~     end
  47. #~   end
  48. #~   
  49. #~   def draw_item(index)
  50. #~     skill = @data[index]
  51. #~     if skill
  52. #~       rect = item_rect(index)
  53. #~       rect.width -= 4
  54. #~       draw_item_name(skill, rect.x, rect.y, enable?(skill))
  55. #~       draw_skill_cost(rect, skill)
  56. #~     end
  57. #~   end
  58. #~   
  59. #~   alias :iisnow_draw_item_name :draw_item_name
  60. #~   def draw_item_name(item, x, y, enabled = true, width = 172)
  61. #~     iisnow_draw_item_name(item, x, y, enabled,width)
  62. #~     rect_temp = text_size(item.name)
  63. #~     if @actor.skill_eq_limt(item)
  64. #~       draw_kuang(x + 24 + PLACE  + rect_temp.width,y,24,24,COLOR_WE_L,enabled)
  65. #~       draw_icon(@actor.skill_eq_limt(item).icon_index,x + 24 + PLACE + rect_temp.width,y,enabled)
  66. #~       rect_temp.width += (24 + PLACE_E)
  67. #~     end
  68. #~     if @actor.skill_ar_limt(item)
  69. #~       draw_kuang(x + 24 + PLACE + rect_temp.width,y,24,24,COLOR_WE_A,enabled)
  70. #~       draw_icon(@actor.skill_ar_limt(item).icon_index,x + 24 + PLACE + rect_temp.width,y,enabled)
  71. #~     end
  72. #~   end
  73. #~   
  74. #~   def draw_skill_cost(rect, skill)
  75. #~     str = create_string(skill)
  76. #~     color = [tp_cost_color,mp_cost_color,COLOR_ITEM]
  77. #~     str.each_with_index do |str,i|
  78. #~       next unless str
  79. #~       change_color(color[ORDER[i]], enable?(skill))
  80. #~       kuang = false
  81. #~       case i
  82. #~       when ORDER.index(2)
  83. #~         icon_index = str[0].icon_index
  84. #~         kuang = true if str[2]
  85. #~         str = str[1]
  86. #~       when ORDER.index(1)
  87. #~         icon_index = MP_ICON
  88. #~       when ORDER.index(0)
  89. #~         icon_index = TP_ICON
  90. #~       end
  91. #~       contents.font.size = STYLE == 1 ? Font.default_size - 6 : Font.default_size
  92. #~       draw_style(icon_index,rect,str,skill,kuang)
  93. #~     end
  94. #~     contents.font.size = Font.default_size
  95. #~   end
  96. #~   
  97. #~   def draw_style(icon_index,rect,str,skill,kuang)
  98. #~     case STYLE
  99. #~     when 1
  100. #~       draw_kuang(rect.width - 24 + rect.x,rect.y,24,24,COLOR_UN_I,enable?(skill)) if kuang
  101. #~       draw_icon(icon_index,rect.width - 24 + rect.x,rect.y,enable?(skill))
  102. #~       draw_text(Rect.new(rect.x + rect.width - 24,rect.y + 8,24,16),str,2) if str.to_i != 1
  103. #~       rect.width -= (24 + PLACE_E)
  104. #~     when 2,4
  105. #~       draw_text(rect,str,2) if str.to_i != 1
  106. #~       rect.width -= (text_size(str).width + PLACE) if str.to_i != 1
  107. #~       draw_kuang(rect.width - 24 + rect.x,rect.y,24,24,COLOR_UN_I,enable?(skill)) if kuang
  108. #~       draw_icon(icon_index,rect.width - 24 + rect.x,rect.y,enable?(skill))
  109. #~       rect.width -= (24 + PLACE_E)
  110. #~     when 3
  111. #~       rect_temp = rect.clone
  112. #~       rect_temp.y += (rect_temp.height / 2)
  113. #~       rect_temp.height /= 2
  114. #~       draw_text(rect_temp,str,2) if str.to_i != 1
  115. #~       rect.width -= (text_size(str).width + PLACE) if str.to_i != 1
  116. #~       draw_kuang(rect.width - 24 + rect.x,rect_temp.y,24,24,COLOR_UN_I,enable?(skill)) if kuang
  117. #~       draw_icon(icon_index,rect.width - 24 + rect.x,rect_temp.y,enable?(skill))
  118. #~       rect.width -= (24 + PLACE_E)
  119. #~     end
  120. #~   end
  121. #~   
  122. #~   def draw_kuang(x,y,w,h,c,fl)
  123. #~     c.alpha = fl ? 255 : translucent_alpha - (STYLE_A == 2 ? TRAN_DE : 0)
  124. #~     case STYLE_A
  125. #~     when 1
  126. #~       contents.fill_rect(x,y,w,1,c)
  127. #~       contents.fill_rect(x,y + 1,1,h - 1,c)
  128. #~       contents.fill_rect(x + 1,y + h - 1,w - 1,1,c)
  129. #~       contents.fill_rect(x + w -1,y + 1,1,h - 2,c)
  130. #~     when 2
  131. #~       contents.fill_rect(x,y,w,h,c)
  132. #~     end
  133. #~   end
  134. #~   
  135. #~   def create_string(skill)
  136. #~     str1 = @actor.skill_tp_cost(skill)
  137. #~     str2 = @actor.skill_mp_cost(skill)
  138. #~     str3 = @actor.skill_it_cost(skill)
  139. #~     str1 = str1 > 0 ?  str1.to_s : nil
  140. #~     str2 = str2 > 0 ?  str2.to_s : nil
  141. #~     str3 = str3[1] > 0 ? [str3[0],str3[1].to_s,str3[2]] : nil
  142. #~     str = [str1,str2,str3]
  143. #~     iisnow = [str[ORDER[0]],str[ORDER[1]],str[ORDER[2]]]
  144. #~     iisnow
  145. #~   end
  146. #~   
  147. #~ end
  148.  
  149. class Game_BattlerBase
  150.  
  151.   include IISNOW_ITEM_CONSUME_SKILL
  152.  
  153.   def skill_it_cost(skill)
  154.     skill.note.match(PATTERN)
  155.     item = $data_items[$1.to_i] if $1 != 0
  156.     num = $2.to_i
  157.     flag = $3.match(/^#{STR_UN_CONSUM}/) if $3
  158.     return [item,num,flag]
  159.   end
  160.  
  161.   def skill_eq_limt(skill)
  162.     skill.note.match(PATTERN_E)
  163.     eq = $data_weapons[$1.to_i] if $1 != 0
  164.     return eq
  165.   end
  166.  
  167.   def skill_ar_limt(skill)
  168.     skill.note.match(PATTERN_A)
  169.     eq = $data_armors[$1.to_i] if $1 != 0
  170.     return eq
  171.   end
  172.  
  173.   alias :iisnow_skill_cost_payable? :skill_cost_payable?
  174.   def skill_cost_payable?(skill)
  175.     result1 = iisnow_skill_cost_payable?(skill)
  176.     if skill_it_cost(skill)[0]
  177.       result2 = $game_party.item_number(skill_it_cost(skill)[0]) >= skill_it_cost(skill)[1]
  178.       return result1 && result2
  179.     end
  180.     return result1
  181.   end
  182.  
  183.   alias :iisnow_pay_skill_cost :pay_skill_cost
  184.   def pay_skill_cost(skill)
  185.     iisnow_pay_skill_cost(skill)
  186.     if skill_it_cost(skill)[0] && !skill_it_cost(skill)[2]
  187.       $game_party.gain_item(skill_it_cost(skill)[0],-skill_it_cost(skill)[1])
  188.     end
  189.   end
  190.  
  191. end
  192.  
  193. class Game_Actor
  194.  
  195.   alias :iisnow_skill_wtype_ok? :skill_wtype_ok?
  196.   def skill_wtype_ok?(skill)
  197.     result1 = iisnow_skill_wtype_ok?(skill)
  198.     result2 = skill_eq_limt(skill) ? weapons.include?(skill_eq_limt(skill)) : true
  199.     result3 = skill_ar_limt(skill) ? armors.include?(skill_ar_limt(skill)) : true
  200.     return result1 && result2 && result3
  201.   end
  202.  
  203. end

作者: XVI    时间: 2015-8-5 11:51
taroxd 发表于 2015-8-5 11:26
将技能消耗道具对UI的修改废除就可以了。如想保留,请自己重写这部分代码

#https://rpg.blue/thread-22 ...

非常感谢大大




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1