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

Project1

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

[已经过期] 超好用的技能消耗物品怎么同时消耗多样不同数量的物品?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1019 小时
注册时间
2012-4-25
帖子
799
跳转到指定楼层
1
发表于 2015-5-4 14:14:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

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


其实,我是打算用来做生活技能用的。虽然我也知道有一些制作的脚本,但是我是不希望有材料有钱就能无限做,我的设定是每次使用会消耗魔法和时间(游戏中的),由于涉及变量比较多,需要每个生产都会有不同的变量,以我的能力不大可能大规模修改那些脚本,于是我就相出了一个办法。通过技能计算公式给变量。然后由公共事件来执行。

这个脚本很适合,但是,目前这个脚本只能消耗一种物品,没办法同时消耗多种不同数量的物品,而那个帖子也有许多人问同样的问题。我之所以不再等是因为上述考虑要涉及到不少变量开关,如果真的没办法我也得花上不少时间去找其他可能的方法,所以才到这里问了。

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1019 小时
注册时间
2012-4-25
帖子
799
2
 楼主| 发表于 2015-5-5 15:53:35 | 只看该作者
本帖最后由 lirn 于 2015-5-5 15:55 编辑

由于我是不懂脚本,我想到一个笨办法,但乱改可能有很大麻烦,所以我来问问。

就上述脚本同类的只能读取一个,那我选择增加备注栏的数目应该可以吧。

比如一开始的

RUBY 代码复制
  1. PATTERN = /.*I:ID(\d+)N(\d+)(.*)/m


我再添加一个
RUBY 代码复制
  1. PATTERN_1= /.*I1:ID(\d+)N(\d+)(.*)/m




RUBY 代码复制
  1. def skill_it_cost(skill)
  2.     skill.note.match(PATTERN)
  3.     item = $data_items[$1.to_i] if $1 != 0
  4.     num = $2.to_i
  5.     flag = $3.match(/^#{STR_UN_CONSUM}/) if $3
  6.     return [item,num,flag]
  7.     skill.note.match(PATTERN_1)
  8.     item = $data_items[$1.to_i] if $1 != 0
  9.     num = $2.to_i
  10.     flag = $3.match(/^#{STR_UN_CONSUM}/) if $3
  11.     return [item,num,flag]
  12.   end


然后这样行不?

点评

相关部分改成数组就行了  发表于 2017-11-30 14:57
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1019 小时
注册时间
2012-4-25
帖子
799
3
 楼主| 发表于 2015-5-8 01:20:59 | 只看该作者
  1. module IISNOW_ITEM_CONSUME_SKILL
  2.   
  3.   PATTERN = /.*I0:I(\d+)N(\d+)(.*)/m  
  4.   # 非专业人士请勿修改,正则匹配式,修改后注意备注写法的改变,下同
  5.   PATTERN_1 = /.*I1:I(\d+)N(\d+)(.*)/m
  6.   PATTERN_2 = /.*I2:I(\d+)N(\d+)(.*)/m
  7.   PATTERN_3 = /.*I3:I(\d+)N(\d+)(.*)/m
  8.   PATTERN_4 = /.*I4:I(\d+)N(\d+)(.*)/m
  9.   PATTERN_5 = /.*I5:I(\d+)N(\d+)(.*)/m
  10.   PATTERN_E = /.*EQU:ID(\d+).*/m
  11.   PATTERN_A = /.*ARM:ID(\d+).*/m
  12.   STR_UN_CONSUM = "UN" # 物品不消耗标识
  13.   
  14.   TP_ICON = 189  # 你说你懂的
  15.   MP_ICON = 188
  16.   
  17.   STYLE = 2 # 界面风格(支持1,2,3,4效果自己体会,不推荐4)
  18.   STYLE_A = 2 # 提示风格(支持1,2,3,同上)
  19.   PLACE = 3 # 消耗物品的图标与数目间的间距
  20.   PLACE_E = 2 # 不同消耗物品间的间距
  21.   ORDER = [0,1,2]     # 从右往左的消耗显示顺序(0,TP;1,MP;2,物品)
  22.   
  23.   COLOR_ITEM = Color.new(255,255,255) # 物品消耗数目的字的颜色
  24.   COLOR_WE_L = Color.new(255,0,0) # 具体限定武器的框的颜色
  25.   COLOR_WE_A = Color.new(255,0,0) # 具体限定防具的框的颜色
  26.   COLOR_UN_I = Color.new(0,255,0) # 物品限定但不消耗的提示框的颜色
  27.   
  28.   TRAN_DE = 100 # 风格_A2下的透明度再次降低(最大为160)
  29. end

  30. class Window_SkillList
  31.   
  32.   include IISNOW_ITEM_CONSUME_SKILL
  33.   
  34.   def col_max
  35.     case STYLE
  36.     when 1,3,4
  37.       return 2
  38.     when 2
  39.       return 1
  40.     end
  41.   end
  42.   
  43.   def item_height
  44.     case STYLE
  45.     when 3
  46.       line_height * 2
  47.     when 1,2,4
  48.       line_height + 1
  49.     end
  50.   end
  51.   
  52.   def draw_item(index)
  53.     skill = @data[index]
  54.     if skill
  55.       rect = item_rect(index)
  56.       rect.width -= 4
  57.       draw_item_name(skill, rect.x, rect.y, enable?(skill))
  58.       draw_skill_cost(rect, skill)
  59.     end
  60.   end
  61.   
  62.   alias :iisnow_draw_item_name :draw_item_name
  63.   def draw_item_name(item, x, y, enabled = true, width = 172)
  64.     iisnow_draw_item_name(item, x, y, enabled,width)
  65.     rect_temp = text_size(item.name)
  66.     if @actor.skill_eq_limt(item)
  67.       draw_kuang(x + 24 + PLACE  + rect_temp.width,y,24,24,COLOR_WE_L,enabled)
  68.       draw_icon(@actor.skill_eq_limt(item).icon_index,x + 24 + PLACE + rect_temp.width,y,enabled)
  69.       rect_temp.width += (24 + PLACE_E)
  70.     end
  71.     if @actor.skill_ar_limt(item)
  72.       draw_kuang(x + 24 + PLACE + rect_temp.width,y,24,24,COLOR_WE_A,enabled)
  73.       draw_icon(@actor.skill_ar_limt(item).icon_index,x + 24 + PLACE + rect_temp.width,y,enabled)
  74.     end
  75.   end
  76.   
  77.   def draw_skill_cost(rect, skill)
  78.     str = create_string(skill)
  79.     color = [tp_cost_color,mp_cost_color,COLOR_ITEM]
  80.     str.each_with_index do |str,i|
  81.       next unless str
  82.       change_color(color[ORDER[i]], enable?(skill))
  83.       kuang = false
  84.       case i
  85.       when ORDER.index(2)
  86.         icon_index = str[0].icon_index
  87.         kuang = true if str[2]
  88.         str = str[1]
  89.       when ORDER.index(1)
  90.         icon_index = MP_ICON
  91.       when ORDER.index(0)
  92.         icon_index = TP_ICON
  93.       end
  94.       contents.font.size = STYLE == 1 ? Font.default_size - 6 : Font.default_size
  95.       draw_style(icon_index,rect,str,skill,kuang)
  96.     end
  97.     contents.font.size = Font.default_size
  98.   end
  99.   
  100.   def draw_style(icon_index,rect,str,skill,kuang)
  101.     case STYLE
  102.     when 1
  103.       draw_kuang(rect.width - 24 + rect.x,rect.y,24,24,COLOR_UN_I,enable?(skill)) if kuang
  104.       draw_icon(icon_index,rect.width - 24 + rect.x,rect.y,enable?(skill))
  105.       draw_text(Rect.new(rect.x + rect.width - 24,rect.y + 8,24,16),str,2) if str.to_i != 1
  106.       rect.width -= (24 + PLACE_E)
  107.     when 2,4
  108.       draw_text(rect,str,2) if str.to_i != 1
  109.       rect.width -= (text_size(str).width + PLACE) if str.to_i != 1
  110.       draw_kuang(rect.width - 24 + rect.x,rect.y,24,24,COLOR_UN_I,enable?(skill)) if kuang
  111.       draw_icon(icon_index,rect.width - 24 + rect.x,rect.y,enable?(skill))
  112.       rect.width -= (24 + PLACE_E)
  113.     when 3
  114.       rect_temp = rect.clone
  115.       rect_temp.y += (rect_temp.height / 2)
  116.       rect_temp.height /= 2
  117.       draw_text(rect_temp,str,2) if str.to_i != 1
  118.       rect.width -= (text_size(str).width + PLACE) if str.to_i != 1
  119.       draw_kuang(rect.width - 24 + rect.x,rect_temp.y,24,24,COLOR_UN_I,enable?(skill)) if kuang
  120.       draw_icon(icon_index,rect.width - 24 + rect.x,rect_temp.y,enable?(skill))
  121.       rect.width -= (24 + PLACE_E)
  122.     end
  123.   end
  124.   
  125.   def draw_kuang(x,y,w,h,c,fl)
  126.     c.alpha = fl ? 255 : translucent_alpha - (STYLE_A == 2 ? TRAN_DE : 0)
  127.     case STYLE_A
  128.     when 1
  129.       contents.fill_rect(x,y,w,1,c)
  130.       contents.fill_rect(x,y + 1,1,h - 1,c)
  131.       contents.fill_rect(x + 1,y + h - 1,w - 1,1,c)
  132.       contents.fill_rect(x + w -1,y + 1,1,h - 2,c)
  133.     when 2
  134.       contents.fill_rect(x,y,w,h,c)
  135.     end
  136.   end
  137.   
  138.   def create_string(skill)
  139.     str1 = @actor.skill_tp_cost(skill)
  140.     str2 = @actor.skill_mp_cost(skill)
  141.     str3 = @actor.skill_it_cost(skill)
  142.     str4 = @actor.skill_it1_cost(skill)
  143.     str1 = str1 > 0 ?  str1.to_s : nil
  144.     str2 = str2 > 0 ?  str2.to_s : nil
  145.     str3 = str3[1] > 0 ? [str3[0],str3[1].to_s,str3[2]] : nil
  146.     str4 = str4[1] > 0 ? [str4[0],str4[1].to_s,str4[2]] : nil#4
  147.     str = [str1,str2,str3,str4]
  148.     iisnow = [str[ORDER[0]],str[ORDER[1]],str[ORDER[2]]]
  149.     iisnow
  150.   end
  151.   
  152. end

  153. class Game_BattlerBase
  154.   
  155.   include IISNOW_ITEM_CONSUME_SKILL
  156.   
  157.   def skill_it_cost(skill)
  158.     skill.note.match(PATTERN)
  159.     item = $data_items[$1.to_i] if $1 != 0
  160.     num = $2.to_i
  161.     flag = $3.match(/^#{STR_UN_CONSUM}/) if $3
  162.     return [item,num,flag]
  163.   end
  164.   
  165.     def skill_it1_cost(skill)#加
  166.     skill.note.match(PATTERN_1)
  167.     item = $data_items[$1.to_i] if $1 != 0
  168.     num = $2.to_i
  169.     flag = $3.match(/^#{STR_UN_CONSUM}/) if $3
  170.     return [item,num,flag]
  171.   end#加
  172.       def skill_it2_cost(skill)#加
  173.     skill.note.match(PATTERN_2)
  174.     item = $data_items[$1.to_i] if $1 != 0
  175.     num = $2.to_i
  176.     flag = $3.match(/^#{STR_UN_CONSUM}/) if $3
  177.     return [item,num,flag]
  178.   end#加
  179.       def skill_it3_cost(skill)#加
  180.     skill.note.match(PATTERN_3)
  181.     item = $data_items[$1.to_i] if $1 != 0
  182.     num = $2.to_i
  183.     flag = $3.match(/^#{STR_UN_CONSUM}/) if $3
  184.     return [item,num,flag]
  185.   end#加
  186.   
  187.   def skill_it4_cost(skill)#加
  188.     skill.note.match(PATTERN_4)
  189.     item = $data_items[$1.to_i] if $1 != 0
  190.     num = $2.to_i
  191.     flag = $3.match(/^#{STR_UN_CONSUM}/) if $3
  192.     return [item,num,flag]
  193.   end#加
  194.       
  195.   def skill_it5_cost(skill)#加
  196.     skill.note.match(PATTERN_5)
  197.     item = $data_items[$1.to_i] if $1 != 0
  198.     num = $2.to_i
  199.     flag = $3.match(/^#{STR_UN_CONSUM}/) if $3
  200.     return [item,num,flag]
  201.   end#加
  202.   
  203.   def skill_eq_limt(skill)
  204.     skill.note.match(PATTERN_E)
  205.     eq = $data_weapons[$1.to_i] if $1 != 0
  206.     return eq
  207.   end
  208.   
  209.   def skill_ar_limt(skill)
  210.     skill.note.match(PATTERN_A)
  211.     eq = $data_armors[$1.to_i] if $1 != 0
  212.     return eq
  213.   end
  214.   
  215.   alias :iisnow_skill_cost_payable? :skill_cost_payable?
  216.   def skill_cost_payable?(skill)
  217.     result1 = iisnow_skill_cost_payable?(skill)
  218.     if skill_it_cost(skill)[0]
  219.       result2 = $game_party.item_number(skill_it_cost(skill)[0]) >= skill_it_cost(skill)[1]
  220.       return result1 && result2
  221.       elsif  skill_it1_cost(skill)[0] #加
  222.       result4 = $game_party.item_number(skill_it1_cost(skill)[0]) >= skill_it1_cost(skill)[1]
  223.       return result1 && result4
  224.       elsif skill_it2_cost(skill)[0] #加
  225.       result5 = $game_party.item_number(skill_it2_cost(skill)[0]) >= skill_it2_cost(skill)[1]
  226.       return result1 && result5
  227.       elsif skill_it3_cost(skill)[0] #加
  228.       result6 = $game_party.item_number(skill_it3_cost(skill)[0]) >= skill_it3_cost(skill)[1]
  229.       return result1 && result6
  230.       elsif skill_it4_cost(skill)[0] #加
  231.       result7 = $game_party.item_number(skill_it4_cost(skill)[0]) >= skill_it4_cost(skill)[1]
  232.       return result1 && result7
  233.       elsif skill_it5_cost(skill)[0] #加
  234.       result8 = $game_party.item_number(skill_it5_cost(skill)[0]) >= skill_it5_cost(skill)[1]
  235.       return result1 && result8
  236.     end
  237.     return result1
  238.   end
  239.   
  240.   alias :iisnow_pay_skill_cost :pay_skill_cost
  241.   def pay_skill_cost(skill)
  242.     iisnow_pay_skill_cost(skill)
  243.     if skill_it_cost(skill)[0] && !skill_it_cost(skill)[2]
  244.       $game_party.gain_item(skill_it_cost(skill)[0],-skill_it_cost(skill)[1])
  245.     end
  246.     if skill_it1_cost(skill)[0] && !skill_it1_cost(skill)[2]#加
  247.       $game_party.gain_item(skill_it1_cost(skill)[0],-skill_it1_cost(skill)[1])
  248.     end #加
  249.     if skill_it2_cost(skill)[0] && !skill_it2_cost(skill)[2]#加
  250.       $game_party.gain_item(skill_it2_cost(skill)[0],-skill_it2_cost(skill)[1])
  251.     end #加
  252.     if skill_it3_cost(skill)[0] && !skill_it3_cost(skill)[2]#加
  253.       $game_party.gain_item(skill_it3_cost(skill)[0],-skill_it3_cost(skill)[1])
  254.     end #加
  255.     if skill_it4_cost(skill)[0] && !skill_it4_cost(skill)[2]#加
  256.       $game_party.gain_item(skill_it4_cost(skill)[0],-skill_it4_cost(skill)[1])
  257.     end #加
  258.     if skill_it5_cost(skill)[0] && !skill_it5_cost(skill)[2]#加
  259.       $game_party.gain_item(skill_it5_cost(skill)[0],-skill_it5_cost(skill)[1])
  260.     end #加
  261.   end

  262. end

  263. class Game_Actor
  264.   
  265.   alias :iisnow_skill_wtype_ok? :skill_wtype_ok?
  266.   def skill_wtype_ok?(skill)
  267.     result1 = iisnow_skill_wtype_ok?(skill)
  268.     result2 = skill_eq_limt(skill) ? weapons.include?(skill_eq_limt(skill)) : true
  269.     result3 = skill_ar_limt(skill) ? armors.include?(skill_ar_limt(skill)) : true
  270.     return result1 && result2 && result3
  271.   end
  272.   
  273. end
复制代码
我想了一个笨办法,通过添加这些来增加这些。目前来说确实做到了消耗多样问题,但还有几个个问题。图标没描绘是小事,大问题那就是能否使用技能这里。
  1. alias :iisnow_skill_cost_payable? :skill_cost_payable?
  2.   def skill_cost_payable?(skill)
  3.     result1 = iisnow_skill_cost_payable?(skill)
  4.     if skill_it_cost(skill)[0]
  5.       result2 = $game_party.item_number(skill_it_cost(skill)[0]) >= skill_it_cost(skill)[1]
  6.       return result1 && result2
  7.       elsif  skill_it1_cost(skill)[0] #加
  8.       result4 = $game_party.item_number(skill_it1_cost(skill)[0]) >= skill_it1_cost(skill)[1]
  9.       return result1 && result4
  10.       elsif skill_it2_cost(skill)[0] #加
  11.       result5 = $game_party.item_number(skill_it2_cost(skill)[0]) >= skill_it2_cost(skill)[1]
  12.       return result1 && result5
  13.       elsif skill_it3_cost(skill)[0] #加
  14.       result6 = $game_party.item_number(skill_it3_cost(skill)[0]) >= skill_it3_cost(skill)[1]
  15.       return result1 && result6
  16.       elsif skill_it4_cost(skill)[0] #加
  17.       result7 = $game_party.item_number(skill_it4_cost(skill)[0]) >= skill_it4_cost(skill)[1]
  18.       return result1 && result7
  19.       elsif skill_it5_cost(skill)[0] #加
  20.       result8 = $game_party.item_number(skill_it5_cost(skill)[0]) >= skill_it5_cost(skill)[1]
  21.       return result1 && result8
  22.     end
  23.     return result1
  24.   end
复制代码
没猜错的话,应该是这段有问题。因为只要有了其中一种物品,就会return result1,技能就可以使用,请问应该要怎么做?
回复 支持 反对

使用道具 举报

Lv3.寻梦者

闇吼者の災悪眷族
不気味存在締造者

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
帖子
6491
4
发表于 2015-5-9 02:31:21 | 只看该作者
本帖最后由 三途亚梦 于 2015-5-9 02:36 编辑

脚本我还没细看,话说既然提到要消耗“时间”你,你想要如何达成呢?

如果单纯的是作为生活技能看待的话,我更建议你找一个物品选择扩张的脚本,然后纯事件做这样的生活技能。

点评

估计是经过回合数  发表于 2017-11-30 14:56
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1019 小时
注册时间
2012-4-25
帖子
799
5
 楼主| 发表于 2015-5-9 15:16:28 | 只看该作者
三途亚梦 发表于 2015-5-9 02:31
脚本我还没细看,话说既然提到要消耗“时间”你,你想要如何达成呢?

如果单纯的是作为生活技能 ...

消耗时间一类的可以用公共事件完成。

我在计算公式里写的就是输入变量,然后根本变量执行相关事件。

目前我的朋友已经帮我完成了,只要其中一个不满足就返回0。

现在就差技能描绘,不过这算是小事情了。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 07:47

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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