本人在自己的游戏中同时添加了LNX11与技能消耗道具两套脚本,可在实际操作过程中发现,虽然游戏不会报错,可是在战斗时技能界面的技能选项变得看不见了。 具体情况如下图: ...
taroxd 发表于 2015-8-5 11:26 将技能消耗道具对UI的修改废除就可以了。如想保留,请自己重写这部分代码 #https://rpg.blue/thread-22 ...
#[url]https://rpg.blue/thread-226207-1-1.html[/url]module IISNOW_ITEM_CONSUME_SKILL PATTERN = /.*ITEM:ID(\d+)NUM(\d+)(.*)/m # 非专业人士请勿修改,正则匹配式,修改后注意备注写法的改变,下同 PATTERN_E = /.*EQU:ID(\d+).*/m PATTERN_A = /.*ARM:ID(\d+).*/m STR_UN_CONSUM = "UN" # 物品不消耗标识 TP_ICON = 189 # 你说你懂的 MP_ICON = 188 STYLE = 1 # 界面风格(支持1,2,3,4效果自己体会,不推荐4) STYLE_A = 2 # 提示风格(支持1,2,3,同上) PLACE = 3 # 消耗物品的图标与数目间的间距 PLACE_E = 2 # 不同消耗物品间的间距 ORDER = [0,1,2] # 从右往左的消耗显示顺序(0,TP;1,MP;2,物品) COLOR_ITEM = Color.new(255,255,255) # 物品消耗数目的字的颜色 COLOR_WE_L = Color.new(255,0,0) # 具体限定武器的框的颜色 COLOR_WE_A = Color.new(255,0,0) # 具体限定防具的框的颜色 COLOR_UN_I = Color.new(0,255,0) # 物品限定但不消耗的提示框的颜色 TRAN_DE = 0 # 风格_A2下的透明度再次降低(最大为160)end #~ class Window_SkillList#~ #~ include IISNOW_ITEM_CONSUME_SKILL#~ #~ def col_max#~ case STYLE#~ when 1,3,4#~ return 2#~ when 2#~ return 1#~ end#~ end#~ #~ def item_height#~ case STYLE#~ when 3#~ line_height * 2#~ when 1,2,4#~ line_height + 1#~ end#~ end#~ #~ def draw_item(index)#~ skill = @data[index]#~ if skill#~ rect = item_rect(index)#~ rect.width -= 4#~ draw_item_name(skill, rect.x, rect.y, enable?(skill))#~ draw_skill_cost(rect, skill)#~ end#~ end#~ #~ alias :iisnow_draw_item_name :draw_item_name#~ def draw_item_name(item, x, y, enabled = true, width = 172)#~ iisnow_draw_item_name(item, x, y, enabled,width)#~ rect_temp = text_size(item.name)#~ if @actor.skill_eq_limt(item)#~ draw_kuang(x + 24 + PLACE + rect_temp.width,y,24,24,COLOR_WE_L,enabled)#~ draw_icon(@actor.skill_eq_limt(item).icon_index,x + 24 + PLACE + rect_temp.width,y,enabled) #~ rect_temp.width += (24 + PLACE_E)#~ end#~ if @actor.skill_ar_limt(item)#~ draw_kuang(x + 24 + PLACE + rect_temp.width,y,24,24,COLOR_WE_A,enabled)#~ draw_icon(@actor.skill_ar_limt(item).icon_index,x + 24 + PLACE + rect_temp.width,y,enabled) #~ end#~ end#~ #~ def draw_skill_cost(rect, skill)#~ str = create_string(skill)#~ color = [tp_cost_color,mp_cost_color,COLOR_ITEM]#~ str.each_with_index do |str,i|#~ next unless str#~ change_color(color[ORDER[i]], enable?(skill))#~ kuang = false#~ case i#~ when ORDER.index(2)#~ icon_index = str[0].icon_index#~ kuang = true if str[2]#~ str = str[1]#~ when ORDER.index(1)#~ icon_index = MP_ICON#~ when ORDER.index(0)#~ icon_index = TP_ICON#~ end#~ contents.font.size = STYLE == 1 ? Font.default_size - 6 : Font.default_size#~ draw_style(icon_index,rect,str,skill,kuang)#~ end#~ contents.font.size = Font.default_size#~ end#~ #~ def draw_style(icon_index,rect,str,skill,kuang)#~ case STYLE#~ when 1#~ draw_kuang(rect.width - 24 + rect.x,rect.y,24,24,COLOR_UN_I,enable?(skill)) if kuang#~ draw_icon(icon_index,rect.width - 24 + rect.x,rect.y,enable?(skill))#~ draw_text(Rect.new(rect.x + rect.width - 24,rect.y + 8,24,16),str,2) if str.to_i != 1#~ rect.width -= (24 + PLACE_E)#~ when 2,4#~ draw_text(rect,str,2) if str.to_i != 1#~ rect.width -= (text_size(str).width + PLACE) if str.to_i != 1#~ draw_kuang(rect.width - 24 + rect.x,rect.y,24,24,COLOR_UN_I,enable?(skill)) if kuang#~ draw_icon(icon_index,rect.width - 24 + rect.x,rect.y,enable?(skill))#~ rect.width -= (24 + PLACE_E)#~ when 3#~ rect_temp = rect.clone#~ rect_temp.y += (rect_temp.height / 2)#~ rect_temp.height /= 2#~ draw_text(rect_temp,str,2) if str.to_i != 1#~ rect.width -= (text_size(str).width + PLACE) if str.to_i != 1#~ draw_kuang(rect.width - 24 + rect.x,rect_temp.y,24,24,COLOR_UN_I,enable?(skill)) if kuang#~ draw_icon(icon_index,rect.width - 24 + rect.x,rect_temp.y,enable?(skill))#~ rect.width -= (24 + PLACE_E)#~ end#~ end#~ #~ def draw_kuang(x,y,w,h,c,fl)#~ c.alpha = fl ? 255 : translucent_alpha - (STYLE_A == 2 ? TRAN_DE : 0)#~ case STYLE_A #~ when 1#~ contents.fill_rect(x,y,w,1,c)#~ contents.fill_rect(x,y + 1,1,h - 1,c)#~ contents.fill_rect(x + 1,y + h - 1,w - 1,1,c)#~ contents.fill_rect(x + w -1,y + 1,1,h - 2,c)#~ when 2#~ contents.fill_rect(x,y,w,h,c)#~ end#~ end#~ #~ def create_string(skill)#~ str1 = @actor.skill_tp_cost(skill)#~ str2 = @actor.skill_mp_cost(skill)#~ str3 = @actor.skill_it_cost(skill)#~ str1 = str1 > 0 ? str1.to_s : nil#~ str2 = str2 > 0 ? str2.to_s : nil#~ str3 = str3[1] > 0 ? [str3[0],str3[1].to_s,str3[2]] : nil#~ str = [str1,str2,str3]#~ iisnow = [str[ORDER[0]],str[ORDER[1]],str[ORDER[2]]]#~ iisnow#~ end#~ #~ end class Game_BattlerBase include IISNOW_ITEM_CONSUME_SKILL def skill_it_cost(skill) skill.note.match(PATTERN) item = $data_items[$1.to_i] if $1 != 0 num = $2.to_i flag = $3.match(/^#{STR_UN_CONSUM}/) if $3 return [item,num,flag] end def skill_eq_limt(skill) skill.note.match(PATTERN_E) eq = $data_weapons[$1.to_i] if $1 != 0 return eq end def skill_ar_limt(skill) skill.note.match(PATTERN_A) eq = $data_armors[$1.to_i] if $1 != 0 return eq end alias :iisnow_skill_cost_payable? :skill_cost_payable? def skill_cost_payable?(skill) result1 = iisnow_skill_cost_payable?(skill) if skill_it_cost(skill)[0] result2 = $game_party.item_number(skill_it_cost(skill)[0]) >= skill_it_cost(skill)[1] return result1 && result2 end return result1 end alias :iisnow_pay_skill_cost :pay_skill_cost def pay_skill_cost(skill) iisnow_pay_skill_cost(skill) if skill_it_cost(skill)[0] && !skill_it_cost(skill)[2] $game_party.gain_item(skill_it_cost(skill)[0],-skill_it_cost(skill)[1]) end end end class Game_Actor alias :iisnow_skill_wtype_ok? :skill_wtype_ok? def skill_wtype_ok?(skill) result1 = iisnow_skill_wtype_ok?(skill) result2 = skill_eq_limt(skill) ? weapons.include?(skill_eq_limt(skill)) : true result3 = skill_ar_limt(skill) ? armors.include?(skill_ar_limt(skill)) : true return result1 && result2 && result3 end end
#[url]https://rpg.blue/thread-226207-1-1.html[/url] module IISNOW_ITEM_CONSUME_SKILL PATTERN = /.*ITEM:ID(\d+)NUM(\d+)(.*)/m # 非专业人士请勿修改,正则匹配式,修改后注意备注写法的改变,下同 PATTERN_E = /.*EQU:ID(\d+).*/m PATTERN_A = /.*ARM:ID(\d+).*/m STR_UN_CONSUM = "UN" # 物品不消耗标识 TP_ICON = 189 # 你说你懂的 MP_ICON = 188 STYLE = 1 # 界面风格(支持1,2,3,4效果自己体会,不推荐4) STYLE_A = 2 # 提示风格(支持1,2,3,同上) PLACE = 3 # 消耗物品的图标与数目间的间距 PLACE_E = 2 # 不同消耗物品间的间距 ORDER = [0,1,2] # 从右往左的消耗显示顺序(0,TP;1,MP;2,物品) COLOR_ITEM = Color.new(255,255,255) # 物品消耗数目的字的颜色 COLOR_WE_L = Color.new(255,0,0) # 具体限定武器的框的颜色 COLOR_WE_A = Color.new(255,0,0) # 具体限定防具的框的颜色 COLOR_UN_I = Color.new(0,255,0) # 物品限定但不消耗的提示框的颜色 TRAN_DE = 0 # 风格_A2下的透明度再次降低(最大为160) end #~ class Window_SkillList #~ #~ include IISNOW_ITEM_CONSUME_SKILL #~ #~ def col_max #~ case STYLE #~ when 1,3,4 #~ return 2 #~ when 2 #~ return 1 #~ end #~ end #~ #~ def item_height #~ case STYLE #~ when 3 #~ line_height * 2 #~ when 1,2,4 #~ line_height + 1 #~ end #~ end #~ #~ def draw_item(index) #~ skill = @data[index] #~ if skill #~ rect = item_rect(index) #~ rect.width -= 4 #~ draw_item_name(skill, rect.x, rect.y, enable?(skill)) #~ draw_skill_cost(rect, skill) #~ end #~ end #~ #~ alias :iisnow_draw_item_name :draw_item_name #~ def draw_item_name(item, x, y, enabled = true, width = 172) #~ iisnow_draw_item_name(item, x, y, enabled,width) #~ rect_temp = text_size(item.name) #~ if @actor.skill_eq_limt(item) #~ draw_kuang(x + 24 + PLACE + rect_temp.width,y,24,24,COLOR_WE_L,enabled) #~ draw_icon(@actor.skill_eq_limt(item).icon_index,x + 24 + PLACE + rect_temp.width,y,enabled) #~ rect_temp.width += (24 + PLACE_E) #~ end #~ if @actor.skill_ar_limt(item) #~ draw_kuang(x + 24 + PLACE + rect_temp.width,y,24,24,COLOR_WE_A,enabled) #~ draw_icon(@actor.skill_ar_limt(item).icon_index,x + 24 + PLACE + rect_temp.width,y,enabled) #~ end #~ end #~ #~ def draw_skill_cost(rect, skill) #~ str = create_string(skill) #~ color = [tp_cost_color,mp_cost_color,COLOR_ITEM] #~ str.each_with_index do |str,i| #~ next unless str #~ change_color(color[ORDER[i]], enable?(skill)) #~ kuang = false #~ case i #~ when ORDER.index(2) #~ icon_index = str[0].icon_index #~ kuang = true if str[2] #~ str = str[1] #~ when ORDER.index(1) #~ icon_index = MP_ICON #~ when ORDER.index(0) #~ icon_index = TP_ICON #~ end #~ contents.font.size = STYLE == 1 ? Font.default_size - 6 : Font.default_size #~ draw_style(icon_index,rect,str,skill,kuang) #~ end #~ contents.font.size = Font.default_size #~ end #~ #~ def draw_style(icon_index,rect,str,skill,kuang) #~ case STYLE #~ when 1 #~ draw_kuang(rect.width - 24 + rect.x,rect.y,24,24,COLOR_UN_I,enable?(skill)) if kuang #~ draw_icon(icon_index,rect.width - 24 + rect.x,rect.y,enable?(skill)) #~ draw_text(Rect.new(rect.x + rect.width - 24,rect.y + 8,24,16),str,2) if str.to_i != 1 #~ rect.width -= (24 + PLACE_E) #~ when 2,4 #~ draw_text(rect,str,2) if str.to_i != 1 #~ rect.width -= (text_size(str).width + PLACE) if str.to_i != 1 #~ draw_kuang(rect.width - 24 + rect.x,rect.y,24,24,COLOR_UN_I,enable?(skill)) if kuang #~ draw_icon(icon_index,rect.width - 24 + rect.x,rect.y,enable?(skill)) #~ rect.width -= (24 + PLACE_E) #~ when 3 #~ rect_temp = rect.clone #~ rect_temp.y += (rect_temp.height / 2) #~ rect_temp.height /= 2 #~ draw_text(rect_temp,str,2) if str.to_i != 1 #~ rect.width -= (text_size(str).width + PLACE) if str.to_i != 1 #~ draw_kuang(rect.width - 24 + rect.x,rect_temp.y,24,24,COLOR_UN_I,enable?(skill)) if kuang #~ draw_icon(icon_index,rect.width - 24 + rect.x,rect_temp.y,enable?(skill)) #~ rect.width -= (24 + PLACE_E) #~ end #~ end #~ #~ def draw_kuang(x,y,w,h,c,fl) #~ c.alpha = fl ? 255 : translucent_alpha - (STYLE_A == 2 ? TRAN_DE : 0) #~ case STYLE_A #~ when 1 #~ contents.fill_rect(x,y,w,1,c) #~ contents.fill_rect(x,y + 1,1,h - 1,c) #~ contents.fill_rect(x + 1,y + h - 1,w - 1,1,c) #~ contents.fill_rect(x + w -1,y + 1,1,h - 2,c) #~ when 2 #~ contents.fill_rect(x,y,w,h,c) #~ end #~ end #~ #~ def create_string(skill) #~ str1 = @actor.skill_tp_cost(skill) #~ str2 = @actor.skill_mp_cost(skill) #~ str3 = @actor.skill_it_cost(skill) #~ str1 = str1 > 0 ? str1.to_s : nil #~ str2 = str2 > 0 ? str2.to_s : nil #~ str3 = str3[1] > 0 ? [str3[0],str3[1].to_s,str3[2]] : nil #~ str = [str1,str2,str3] #~ iisnow = [str[ORDER[0]],str[ORDER[1]],str[ORDER[2]]] #~ iisnow #~ end #~ #~ end class Game_BattlerBase include IISNOW_ITEM_CONSUME_SKILL def skill_it_cost(skill) skill.note.match(PATTERN) item = $data_items[$1.to_i] if $1 != 0 num = $2.to_i flag = $3.match(/^#{STR_UN_CONSUM}/) if $3 return [item,num,flag] end def skill_eq_limt(skill) skill.note.match(PATTERN_E) eq = $data_weapons[$1.to_i] if $1 != 0 return eq end def skill_ar_limt(skill) skill.note.match(PATTERN_A) eq = $data_armors[$1.to_i] if $1 != 0 return eq end alias :iisnow_skill_cost_payable? :skill_cost_payable? def skill_cost_payable?(skill) result1 = iisnow_skill_cost_payable?(skill) if skill_it_cost(skill)[0] result2 = $game_party.item_number(skill_it_cost(skill)[0]) >= skill_it_cost(skill)[1] return result1 && result2 end return result1 end alias :iisnow_pay_skill_cost :pay_skill_cost def pay_skill_cost(skill) iisnow_pay_skill_cost(skill) if skill_it_cost(skill)[0] && !skill_it_cost(skill)[2] $game_party.gain_item(skill_it_cost(skill)[0],-skill_it_cost(skill)[1]) end end end class Game_Actor alias :iisnow_skill_wtype_ok? :skill_wtype_ok? def skill_wtype_ok?(skill) result1 = iisnow_skill_wtype_ok?(skill) result2 = skill_eq_limt(skill) ? weapons.include?(skill_eq_limt(skill)) : true result3 = skill_ar_limt(skill) ? armors.include?(skill_ar_limt(skill)) : true return result1 && result2 && result3 end end
查看全部评分
折叠内容标题(非必须)
折叠内容
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2024-11-16 14:20
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.