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

Project1

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

[已经解决] 【结贴】装备属性错乱

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1346
在线时间
806 小时
注册时间
2013-8-3
帖子
455
跳转到指定楼层
1
发表于 2017-5-24 10:35:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 小小西 于 2017-5-27 23:37 编辑

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

附件
有测试存档可以看到所有装备初始1%变成11%
附加召唤术:@魔法丶小肉包

点评

感谢,范例已经上传,测试存档也附上。  发表于 2017-5-24 12:47
关于这个问题,最好附上一个范例工程来展示你说的问题,等有时间帮你看一下吧...  发表于 2017-5-24 12:24

【同人游戏】勇者斗恶龙TG
欢迎加入游戏测试群333599798
如有需私聊请加QQ:516425000

Lv4.逐梦者

梦石
0
星屑
6260
在线时间
1481 小时
注册时间
2015-7-25
帖子
652

开拓者

2
发表于 2017-5-24 16:47:27 | 只看该作者
本帖最后由 魔法丶小肉包 于 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

点评

进过几番测试,除了保存的存档没恢复,但不会出现无故增加属性问题了,总体问题解决了。  发表于 2017-5-24 18:16

评分

参与人数 1梦石 +1 收起 理由
RaidenInfinity + 1 认可答案

查看全部评分

笨肉包的首款像素OC游戏《花城梦之心》尝试制作中~
目前的坑 【不可思议的迷宫】幽灵契约外传:歌莉娅
持续更新中~ 当前进度 v0.28
大版本更新时才会更新网盘文件,预计下次大版本更新:v0.30
完成度:
主线 15% 支线 0% 数据库 6% 系统 86% 美术 6%
两边同时填坑~
( 这里是笨肉包~专修魔法!目标是大魔法师!
( 坑太大啦,一个人填不完啦hhh 一定会填完的嗯...
( 每天都和bug们比试魔力~吾之魔法将扫平一切!
( 弱点是美术,魔法修行之余再补补课吧~
( 哼哼哼~这便是魔法的力量!
大家都离开啦,笨肉包也不知道还能坚持多久呀...
这是属于笨肉包一个人的旅行(再见了...蚊子湯,七重酱,笨肉包永远想你们!TwT
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-25 08:53

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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