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

Project1

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

[已经解决] 怎么把脚本“随机属性装备”和“物品颜色描绘”合在一...

[复制链接]

Lv2.观梦者

梦石
0
星屑
304
在线时间
254 小时
注册时间
2011-1-29
帖子
231
跳转到指定楼层
1
发表于 2013-9-7 17:45:06 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 mabingjun626 于 2013-9-7 21:14 编辑


问题:我使用Equipplus.gainequip这个脚本得到一个随机装备。。
得到的随机装备都是白色的(物品颜色描绘脚本)。能不能在脚本中这样写
装备属性越多~颜色等级越高~~ 例如。。 如果随机装备属性是1个。那就是白色。如果2个那就是绿色。

可能你们听不明白。。我QQ 767444342.。谢谢!!

点评

拜托先把脚本放上来……  发表于 2013-9-7 19:37

Lv2.观梦者

梦石
0
星屑
304
在线时间
254 小时
注册时间
2011-1-29
帖子
231
2
 楼主| 发表于 2013-9-7 20:18:49 | 只看该作者
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ 随机属性装备 By wyongcan
  4. #==============================================================================
  5. module Equipplus
  6. #得到随机属性装备方法:Equipplus.gainequip(装备ID,属性数量)
  7. #~ 前缀结构:
  8. #~ ①权重(1-100) 越大越重要
  9. #~ ②名称(多个名称用","分开,会随机取其中一个添加到武器名前)
  10. #~ ③属性数组  提供两种方式:
  11. #~ 1.[属性ID,增加值]    属性ID参考说明增强脚本 增加了9号属性“极品出现率” ID为8,影响前缀的好坏 1 - 100
  12. #~ 2.与装备特性相同[code,data_id,value]  code,data_id参考说明增强脚本
  13.   @maxparamplus = 4 #最大前缀数
  14.   @moneyrate = 10 #物品价格计算公式为:原价格 + 前缀权重 * @moneyrate
  15.   @transpose = [*1..100].reverse #用于把1变成100,100变成1
  16.   @paramsplus = [           #暂时只写了三个前缀,可以自己添加,参照前缀结构
  17.   [10,"力量,凶残",[[2,10]]], #物理攻击加10
  18.   [20,"灵气",[[0,200],[1,200]]], # HP和MP各加200
  19. [20,"不屈",[[0,500]]],# HP加500
  20. [30,"灵巧",[[22,1,0.1]]],# 闪避+10%
  21. [45,"轻盈",[[22,1,0.15]]],# 闪避+15%
  22. [30,"稳重",[[43,0,0.1]]],# 命中+10%
  23. [25,"魔力",[[1,350]]],# MP+350
  24. [30,"专注",[[22,2,0.1]]],# 必杀几率+10%
  25. [30,"坚韧",[[22,7,1.1]]],# 体力恢复速度+10%
  26. [50,"悟性",[[23,9,1.1]]],# 经验获得+10%
  27.   [60,"战神",[[21,2,2]]] #物理攻击双倍
  28.   ]
  29.   $商店随机 = false #商店买装备时出随机属性
  30.   $战斗随机 = true #战斗后获得随机属性装备
  31.   def self.getname(paramsplus)
  32.     name = ""
  33.     paramsplus.is_a?(Array) ? paramsplus.each{|a| [url=home.php?mod=space&uid=263426]@temp[/url] = []; a[1].scan(/^[\u4e00-\u9fa5|\w]*|,[\u4e00-\u9fa5|\w]*/){|b| @temp.push b.gsub(","){}}; name += @temp[rand(@temp.size)]} : paramsplus[1].scan(/^[\u4e00-\u9fa5|\w]*|,[\u4e00-\u9fa5|\w]*/){|b| @temp = [] if @temp == nil ;@temp.push b.gsub(","){}}
  34.     name += @temp[rand(@temp.size)] if paramsplus.is_a?(Array) != true
  35.     name += "之"
  36.   end
  37.   def self.getluck #获得极品出现率
  38.     luck = 0
  39.     $game_party.all_members.each{|a| a.weapons.each{|a| luck += a.params[8] if a.params.size == 9};a.armors.each{|a| luck += a.params[8] if a.params.size == 9}}
  40.     luck
  41.   end
  42.   def self.getnewequip(xequip,params = nil) #提供两个参数  装备(RPG::Equip类下的)和附加前缀数,不填则为随机
  43.     return unless xequip.is_a?(RPG::EquipItem)
  44.     #xparamplus为前缀数
  45.     xequip.paramsplus = [] if xequip.paramsplus == nil
  46.     return if xequip.paramsplus.size >= @maxparamplus
  47.     params != nil ? xparamplus = params :  xparamplus = rand(@maxparamplus * 110) / 100
  48.     xparamplus = xparamplus.to_int
  49.     return xequip if xparamplus == 0
  50.     equip = xequip.dup
  51.     paramsplus = equip.paramsplus.dup  #无奈的方法,不这样改一个装备所有同父装备的装备都会变
  52.     newparams = equip.params.dup
  53.     newfeatures = equip.features.dup
  54.     aparamsplus = @paramsplus.collect{|a| [a[0] = @transpose[a[0]-1],a[1],a[2]]}.sort_by{|a| a[0]}
  55.     while paramsplus.size < xparamplus
  56.       temp = rand(aparamsplus[-1][0])
  57.       temp = [temp - getluck,0].max
  58.       x = []
  59.       for i in aparamsplus
  60.         x.push i if i[0] >= temp && paramsplus.include?(i) != true
  61.       end
  62.       if x != []
  63.         a = [(x.size-1)*100 - getluck,0].max
  64.         a = (rand(a)/100).to_int
  65.         paramsplus.push x[a]
  66.       end
  67.     end
  68.     equip.name = getname(paramsplus) + equip.name #更新名称
  69.     paramsplus.each{|a| equip.price += @transpose[a[0] - 1] * @moneyrate} #更新价格
  70.     paramsplus.select{|a| a[2].select{|a| a.size == 2}.each{|a| newparams[a[0]] += a[1]}} #更新属性
  71.     #以下为更新特性
  72.     features = []
  73.     paramsplus.each{|a| a[2].each{|a| features.push a if a.size == 3}}
  74.     while features.size > 0
  75.       i = features.pop
  76.       newfeatures.select{|a| a.code == i[0] && a.data_id == i[1]}.size == 0 ? newfeatures.push(RPG::BaseItem::Feature.new(i[0],i[1],i[2])) : newfeatures.each_with_index{|a,b| newfeatures[b].value += i[2] if a.code == i[0] && a.data_id == i[1]}
  77.     end
  78.     if equip.is_a?(RPG::Weapon)
  79.       equip.id = $data_weapons.size
  80.       $data_weapons.insert $data_weapons.size,equip
  81.       $data_weapons[equip.id].paramsplus = paramsplus
  82.       $data_weapons[equip.id].params = newparams
  83.       $data_weapons[equip.id].features = newfeatures
  84.     else
  85.       equip.id = $data_armors.size
  86.       $data_armors.insert $data_armors.size,equip
  87.       $data_armors[equip.id].paramsplus = paramsplus
  88.       $data_armors[equip.id].params = newparams
  89.       $data_armors[equip.id].features = newfeatures
  90.     end
  91.     equip
  92.   end
  93.   def self.gainequip(id,params = nil)
  94.     $game_party.gain_item(Equipplus.getnewequip($data_weapons[id],params),1,true)
  95.   end
  96. end
  97. if $商店随机 == true
  98.   class Scene_Shop < Scene_MenuBase
  99.     def do_buy(number)
  100.       $game_party.lose_gold(number * buying_price)
  101.       if @item.is_a?(RPG::EquipItem)
  102.         x = number
  103.         loop do
  104.           break if x <= 0
  105.           x -= 1
  106.           $game_party.gain_item(Equipplus.getnewequip(@item), 1)
  107.         end
  108.       else
  109.         $game_party.gain_item(@item, number)
  110.       end
  111.     end
  112.   end
  113. end
  114. if $战斗随机 == true
  115.   module BattleManager
  116.     def self.gain_drop_items
  117.       $game_troop.make_drop_items.each do |item|
  118.         item.is_a?(RPG::EquipItem) ? xitem = Equipplus.getnewequip(item) : xitem = item
  119.         $game_party.gain_item(xitem, 1)
  120.         $game_message.add(sprintf(Vocab::ObtainItem, xitem.name))
  121.       end
  122.       wait_for_message
  123.     end
  124.   end
  125. end
  126. class RPG::EquipItem < RPG::BaseItem
  127.   alias old initialize
  128.   def initialize
  129.     old
  130.     @paramsplus #前缀
  131.   end
  132.   attr_accessor :paramsplus
  133. end
复制代码
此为随机装备脚本!
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
304
在线时间
254 小时
注册时间
2011-1-29
帖子
231
3
 楼主| 发表于 2013-9-7 20:19:14 | 只看该作者
  1. #==============================================================================
  2. # [PS0]物品颜色描绘
  3. #      Window_Base_Itemcolor
  4. #------------------------------------------------------------------------------
  5. #     在物品、技能选项中显示物品品质并显示品质框和修改物品名颜色。
  6. #==============================================================================
  7. # [更新记录]
  8. #    - 2012.01.03 By 仲秋启明
  9. #      * 修改为VA定义
  10. #    - 2011.12.27 By 仲秋启明
  11. #      * 移植至RGSS3,遵循PS0协议;
  12. #      * 优化数据库备注中设定方法
  13. #    - 2011.08.22 By 冰舞蝶恋
  14. #      * 蓝本(实用·极简 -- 按品质,给物品描绘色彩边框)
  15. #    - 2010.08.06 By 仲秋启明
  16. #      * 蓝本(物品颜色描绘脚本(完整无冲突版))
  17. #------------------------------------------------------------------------------
  18. # [使用方法]
  19. #    - 替换原Window_Base中的draw_item_name定义或复制到Main之前
  20. #    复制即可     <品质 4>
  21. #==============================================================================
  22. $_PS0 = {} if $_PS0 == nil  
  23. $_PS0["Window_Base_Itemcolor"] = 20111227
  24. #==============================================================================
  25. # [PS0] 通用配置模块  
  26. #==============================================================================
  27. module PS0
  28.   module Window_Base_Itemcolor
  29.     Color1 = Color.new(255, 255, 255)  # 一般品质的色彩(白,1)
  30.     Color2 = Color.new(128, 255, 128)  # 平庸品质的色彩(绿,2)
  31.     Color3 = Color.new(128, 128, 255)  # 精良品质的色彩(蓝,3)
  32.     Color4 = Color.new(255, 0, 255)    # 卓越品质的色彩(紫,4)
  33.     Color5 = Color.new(255, 128, 128)  # 神秘品质的色彩(红,5)
  34.     Color6 = Color.new(255, 128, 0)    # 传说品质的色彩(橙,6)
  35.     Color7 = Color.new(255, 255, 128)  # 特殊品质的色彩(黄,7)
  36.   end
  37. end
  38. #==============================================================================
  39. # ■ Window_Base
  40. #==============================================================================
  41. class Window_Base < Window
  42.   def draw_item_name(item, x, y, enabled = true, width = 172)
  43.     if item != nil
  44.       n = item.note
  45.       a = n.split{/<(?:Quality|品质)\s*(.+)>/i}
  46.       c = a[1].to_i
  47.       if c <= 1
  48.         color = PS0::Window_Base_Itemcolor::Color1
  49.       elsif c == 2
  50.         color = PS0::Window_Base_Itemcolor::Color2
  51.       elsif c == 3
  52.         color = PS0::Window_Base_Itemcolor::Color3
  53.       elsif c == 4
  54.         color = PS0::Window_Base_Itemcolor::Color4
  55.       elsif c == 5
  56.         color = PS0::Window_Base_Itemcolor::Color5
  57.       elsif c == 6
  58.         color = PS0::Window_Base_Itemcolor::Color6
  59.       elsif c == 7
  60.         color = PS0::Window_Base_Itemcolor::Color7
  61.       else
  62.         color = Color.new(0, 0, 0, 0)
  63.       end
  64.       self.contents.fill_rect(x, y, 24, 1, color)
  65.       self.contents.fill_rect(x, y, 1, 24, color)
  66.       self.contents.fill_rect(x, y+23, 24, 1, color)
  67.       self.contents.fill_rect(x+23, y, 1, 24, color)
  68.       draw_icon(item.icon_index, x, y, enabled)
  69.       change_color(color, enabled)
  70.       draw_text(x + 24, y, width, line_height, item.name)
  71.     end
  72.   end
  73. end
  74. #==============================================================================
  75. # [PS0] End of Script
  76. #==============================================================================
复制代码
此为颜色描绘脚本!
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
585
在线时间
923 小时
注册时间
2011-5-11
帖子
438
4
发表于 2013-9-7 21:07:29 | 只看该作者
覆盖颜色描绘脚本,物品注备设置不变,武器防具可以不用设置
  1. class RPG::EquipItem < RPG::BaseItem
  2.   def color_level
  3.     i=features.size
  4.     for j in @params
  5.       if j>0
  6.         i+=1
  7.       end
  8.     end
  9.     return i
  10.   end
  11. end

  12. #==============================================================================
  13. # [PS0]物品颜色描绘
  14. #      Window_Base_Itemcolor
  15. #------------------------------------------------------------------------------
  16. #     在物品、技能选项中显示物品品质并显示品质框和修改物品名颜色。
  17. #==============================================================================
  18. # [更新记录]
  19. #    - 2012.01.03 By 仲秋启明
  20. #      * 修改为VA定义
  21. #    - 2011.12.27 By 仲秋启明
  22. #      * 移植至RGSS3,遵循PS0协议;
  23. #      * 优化数据库备注中设定方法
  24. #    - 2011.08.22 By 冰舞蝶恋
  25. #      * 蓝本(实用·极简 -- 按品质,给物品描绘色彩边框)
  26. #    - 2010.08.06 By 仲秋启明
  27. #      * 蓝本(物品颜色描绘脚本(完整无冲突版))
  28. #------------------------------------------------------------------------------
  29. # [使用方法]
  30. #    - 替换原Window_Base中的draw_item_name定义或复制到Main之前
  31. #    复制即可     <品质 4>
  32. #==============================================================================
  33. $_PS0 = {} if $_PS0 == nil  
  34. $_PS0["Window_Base_Itemcolor"] = 20111227
  35. #==============================================================================
  36. # [PS0] 通用配置模块  
  37. #==============================================================================
  38. module PS0
  39.   module Window_Base_Itemcolor
  40.     Color1 = Color.new(255, 255, 255)  # 一般品质的色彩(白,1)
  41.     Color2 = Color.new(128, 255, 128)  # 平庸品质的色彩(绿,2)
  42.     Color3 = Color.new(128, 128, 255)  # 精良品质的色彩(蓝,3)
  43.     Color4 = Color.new(255, 0, 255)    # 卓越品质的色彩(紫,4)
  44.     Color5 = Color.new(255, 128, 128)  # 神秘品质的色彩(红,5)
  45.     Color6 = Color.new(255, 128, 0)    # 传说品质的色彩(橙,6)
  46.     Color7 = Color.new(255, 255, 128)  # 特殊品质的色彩(黄,7)
  47.   end
  48. end
  49. #==============================================================================
  50. # ■ Window_Base
  51. #==============================================================================
  52. class Window_Base < Window
  53.   def draw_item_name(item, x, y, enabled = true, width = 172)
  54.     return unless item
  55.     c = item.color_level if item.is_a?(RPG::EquipItem)
  56.     if item.is_a?(RPG::Item)
  57.       n = item.note
  58.       a = n.split{/<(?:Quality|品质)\s*(.+)>/i}
  59.       c = a[1].to_i
  60.     end
  61.     if c <= 1
  62.       color = PS0::Window_Base_Itemcolor::Color1
  63.     elsif c == 2
  64.       color = PS0::Window_Base_Itemcolor::Color2
  65.     elsif c == 3
  66.       color = PS0::Window_Base_Itemcolor::Color3
  67.     elsif c == 4
  68.       color = PS0::Window_Base_Itemcolor::Color4
  69.     elsif c == 5
  70.       color = PS0::Window_Base_Itemcolor::Color5
  71.     elsif c == 6
  72.       color = PS0::Window_Base_Itemcolor::Color6
  73.     elsif c == 7
  74.       color = PS0::Window_Base_Itemcolor::Color7
  75.     else
  76.       color = Color.new(0, 0, 0, 0)
  77.     end
  78.     self.contents.fill_rect(x, y, 24, 1, color)
  79.     self.contents.fill_rect(x, y, 1, 24, color)
  80.     self.contents.fill_rect(x, y+23, 24, 1, color)
  81.     self.contents.fill_rect(x+23, y, 1, 24, color)
  82.     draw_icon(item.icon_index, x, y, enabled)
  83.     change_color(color, enabled)
  84.     draw_text(x + 24, y, width, line_height, item.name)
  85.   end
  86. end
  87. #==============================================================================
  88. # [PS0] End of Script
  89. #==============================================================================
复制代码
http://rpg.blue/static/image/smiley/yct/A059.gif中国字认识都不到一半,哪的心情学英语呀!
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
585
在线时间
923 小时
注册时间
2011-5-11
帖子
438
5
发表于 2013-9-7 21:08:48 | 只看该作者
覆盖颜色描绘脚本,物品注备设置不变,武器防具可以不用设置
  1. class RPG::EquipItem < RPG::BaseItem
  2.   def color_level
  3.     i=features.size
  4.     for j in @params
  5.       if j>0
  6.         i+=1
  7.       end
  8.     end
  9.     return i
  10.   end
  11. end

  12. #==============================================================================
  13. # [PS0]物品颜色描绘
  14. #      Window_Base_Itemcolor
  15. #------------------------------------------------------------------------------
  16. #     在物品、技能选项中显示物品品质并显示品质框和修改物品名颜色。
  17. #==============================================================================
  18. # [更新记录]
  19. #    - 2012.01.03 By 仲秋启明
  20. #      * 修改为VA定义
  21. #    - 2011.12.27 By 仲秋启明
  22. #      * 移植至RGSS3,遵循PS0协议;
  23. #      * 优化数据库备注中设定方法
  24. #    - 2011.08.22 By 冰舞蝶恋
  25. #      * 蓝本(实用·极简 -- 按品质,给物品描绘色彩边框)
  26. #    - 2010.08.06 By 仲秋启明
  27. #      * 蓝本(物品颜色描绘脚本(完整无冲突版))
  28. #------------------------------------------------------------------------------
  29. # [使用方法]
  30. #    - 替换原Window_Base中的draw_item_name定义或复制到Main之前
  31. #    复制即可     <品质 4>
  32. #==============================================================================
  33. $_PS0 = {} if $_PS0 == nil  
  34. $_PS0["Window_Base_Itemcolor"] = 20111227
  35. #==============================================================================
  36. # [PS0] 通用配置模块  
  37. #==============================================================================
  38. module PS0
  39.   module Window_Base_Itemcolor
  40.     Color1 = Color.new(255, 255, 255)  # 一般品质的色彩(白,1)
  41.     Color2 = Color.new(128, 255, 128)  # 平庸品质的色彩(绿,2)
  42.     Color3 = Color.new(128, 128, 255)  # 精良品质的色彩(蓝,3)
  43.     Color4 = Color.new(255, 0, 255)    # 卓越品质的色彩(紫,4)
  44.     Color5 = Color.new(255, 128, 128)  # 神秘品质的色彩(红,5)
  45.     Color6 = Color.new(255, 128, 0)    # 传说品质的色彩(橙,6)
  46.     Color7 = Color.new(255, 255, 128)  # 特殊品质的色彩(黄,7)
  47.   end
  48. end
  49. #==============================================================================
  50. # ■ Window_Base
  51. #==============================================================================
  52. class Window_Base < Window
  53.   def draw_item_name(item, x, y, enabled = true, width = 172)
  54.     return unless item
  55.     c = item.color_level if item.is_a?(RPG::EquipItem)
  56.     if item.is_a?(RPG::Item)
  57.       n = item.note
  58.       a = n.split{/<(?:Quality|品质)\s*(.+)>/i}
  59.       c = a[1].to_i
  60.     end
  61.     if c <= 1
  62.       color = PS0::Window_Base_Itemcolor::Color1
  63.     elsif c == 2
  64.       color = PS0::Window_Base_Itemcolor::Color2
  65.     elsif c == 3
  66.       color = PS0::Window_Base_Itemcolor::Color3
  67.     elsif c == 4
  68.       color = PS0::Window_Base_Itemcolor::Color4
  69.     elsif c == 5
  70.       color = PS0::Window_Base_Itemcolor::Color5
  71.     elsif c == 6
  72.       color = PS0::Window_Base_Itemcolor::Color6
  73.     elsif c == 7
  74.       color = PS0::Window_Base_Itemcolor::Color7
  75.     else
  76.       color = Color.new(0, 0, 0, 0)
  77.     end
  78.     self.contents.fill_rect(x, y, 24, 1, color)
  79.     self.contents.fill_rect(x, y, 1, 24, color)
  80.     self.contents.fill_rect(x, y+23, 24, 1, color)
  81.     self.contents.fill_rect(x+23, y, 1, 24, color)
  82.     draw_icon(item.icon_index, x, y, enabled)
  83.     change_color(color, enabled)
  84.     draw_text(x + 24, y, width, line_height, item.name)
  85.   end
  86. end
  87. #==============================================================================
  88. # [PS0] End of Script
  89. #==============================================================================
复制代码

点评

谢谢!!!你真是大好人。。对了。。再问下~~有没有 “RMVA 技能计算工具”~~那个原帖地址失效了。。你有没有哇?  发表于 2013-9-7 21:14
http://rpg.blue/static/image/smiley/yct/A059.gif中国字认识都不到一半,哪的心情学英语呀!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 16:33

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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