Project1

标题: 【结贴】装备属性错乱 [打印本页]

作者: 小小西    时间: 2017-5-24 10:35
标题: 【结贴】装备属性错乱
本帖最后由 小小西 于 2017-5-27 23:37 编辑

衣服装备初始设置躲避力+1%,由于玩家大量刷随机属性装备,导致初始躲避力属性慢慢增加变成了+35%,连商店卖的数据库装备也变成躲避力+35%,是脚本哪里导致的。
随机属性装备

附件
有测试存档可以看到所有装备初始1%变成11%
附加召唤术:@魔法丶小肉包
作者: 魔法丶小肉包    时间: 2017-5-24 16:47
本帖最后由 魔法丶小肉包 于 2017-5-24 16:48 编辑

由于时间关系,所以只能随便看了一下,未测试
作为插件脚本放在原脚本下方使用
RUBY 代码复制
  1. module Equipplus
  2.   def self.getnewequip(xequip,params = nil) #提供两个参数  装备(RPG::Equip类下的)和附加前缀数,不填则为随机
  3.     return unless xequip.is_a?(RPG::EquipItem)
  4.     #xparamplus为前缀数
  5.     xequip.paramsplus = [] if xequip.paramsplus == nil
  6.     return if xequip.paramsplus.size >= @maxparamplus
  7.     params != nil ? xparamplus = params :  xparamplus = rand(@maxparamplus * 110) / 100
  8.     xparamplus = xparamplus.to_int
  9.     return xequip if xparamplus == 0
  10.     equip = xequip.dup
  11.     paramsplus = equip.paramsplus.dup  #无奈的方法,不这样改一个装备所有同父装备的装备都会变
  12.     newparams = equip.params.dup
  13.     newfeatures = equip.features.dup
  14.     aparamsplus = @paramsplus.collect{|a| [a[0] = @transpose[a[0]-1],a[1],a[2]]}.sort_by{|a| a[0]}
  15.     while paramsplus.size < xparamplus
  16.       temp = rand(aparamsplus[-1][0])
  17.       temp = [temp - getluck,0].max
  18.       x = []
  19.       for i in aparamsplus
  20.         x.push i if i[0] >= temp && paramsplus.include?(i) != true
  21.       end
  22.       if x != []
  23.         a = [(x.size-1)*100 - getluck,0].max
  24.         a = (rand(a)/100).to_int
  25.         paramsplus.push x[a]
  26.       end
  27.     end
  28.     equip.name = getname(paramsplus) + equip.name #更新名称
  29.     paramsplus.each{|a| equip.price += @transpose[a[0] - 1] * @moneyrate} #更新价格
  30.     paramsplus.select{|a| a[2].select{|a| a.size == 2}.each{|a| newparams[a[0]] += a[1]}} #更新属性
  31.     #以下为更新特性
  32.     features = []
  33.     paramsplus.each{|a| a[2].each{|a| features.push a if a.size == 3}}
  34.     while features.size > 0
  35.       i = features.pop
  36.       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 += 0 if a.code == i[0] && a.data_id == i[1]}
  37.     end
  38.     if equip.is_a?(RPG::Weapon)
  39.       equip.id = $data_weapons.size
  40.       $data_weapons.insert $data_weapons.size,equip
  41.       $data_weapons[equip.id].paramsplus = paramsplus
  42.       $data_weapons[equip.id].params = newparams
  43.       $data_weapons[equip.id].features = newfeatures
  44.     else
  45.       equip.id = $data_armors.size
  46.       $data_armors.insert $data_armors.size,equip
  47.       $data_armors[equip.id].paramsplus = paramsplus
  48.       $data_armors[equip.id].params = newparams
  49.       $data_armors[equip.id].features = newfeatures
  50.     end
  51.     equip
  52.   end
  53. end





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