Project1

标题: VX的数据库出BUG了。。。。。。。。。。。。。。。。。。 [打印本页]

作者: zjx2005    时间: 2011-6-19 17:56
标题: VX的数据库出BUG了。。。。。。。。。。。。。。。。。。
我原本是写了个脚本准备偷懒用的,如下
  1. a = $data_weapons[9]
  2. for i in 10...13
  3. $data_weapons[i] = a
  4. c = $data_weapons[i - 1]
  5. $data_weapons[i].atk = c.atk * 1.4
  6. b = i - 1
  7. $data_weapons[i].name += "+" + b.to_s
  8. end
  9. save_data($data_weapons,
  10. "Data/Weapons.rvdata")
  11. exit
复制代码
写这个的初衷是用来偷懒,制作一个武器后有3个分别是+1 +2 +3的装备
通过函数来修改$data_weapons后保存到Weapons.rvdata里,这样就可以通过脚本以几十个武器数据为模本一口气派生出几百个武器数据来,这样就能节省大量时间
举例:
001:长剑
002:
003:
004:
数据库里原本是这样的
通过上面那小串脚本后,变成
001:长剑
002:长剑+1
003:长剑+2
004:长剑+3
原本应该是这样的
可是却变成了
001:长剑+1+2+3
002:长剑+1+2+3
003:长剑+1+2+3
004:长剑+1+2+3
如果只是我脚本写错了那倒还好,可是我修改了其中一个后。。。
001:长剑+1+2+3
002:短剑
003:长剑+1+2+3
004:长剑+1+2+3
这样改了后,切换数据库页面或关闭数据库,总之就是离开武器那页,之后我再打开。。。
001:短剑
002:短剑
003:短剑
004:短剑
哪尼!?
1-4号武器只要我修改其中一个后其余三个都会变成一样的,并且上面那串脚本我早就删了
之后我又尝试修改语法并用ID 5-8和ID 9-12的武器来尝试
001:短剑
002:短剑
003:短剑
004:短剑
005:nugyvyd
006:nugyvyd
007:nugyvyd
008:nugyvyd
009:嘎嘎嘎嘎嘎嘎+2
010:嘎嘎嘎嘎嘎嘎+2
011:嘎嘎嘎嘎嘎嘎+2
012:嘎嘎嘎嘎嘎嘎+2
被害扩大到了第12号武器!
分3阶,1-4号修改其中1个4个一起变化,5-8同理,9-12同理,并且3个毫不相关!
修改1-4其中一个只有1-4号武器变化,5-12不受影响
修改5-8其中一个只有5-8变化,1-4和9-12不受影响
9-12同理

我是没法了理解不能,求原因求解决方法
顺便上面那串脚本我是放在事件的“脚本”里通过按键执行,脚本现在已经删了,但是BUG依旧dsu_plus_rewardpost_czw
作者: irothala    时间: 2011-6-19 18:57
本帖最后由 irothala 于 2011-6-19 19:27 编辑

你这么改会把weapons.id也改掉,可能是这里出问题了吧。。正在试验

刚写错了一些东西。还在试

原因如下:
每个$data_weapons都有一个固定的存储地址。
当你复制时,存储地址也被复制过去了。
结果就是一个地址对应了两个(或多个)$data_weapons
之后你改动时,这个地址对应的所有项都会被同时改变。
最终结果如你所见。

作者: zjx2005    时间: 2011-6-19 22:24
感谢,都是偷懒惹的祸




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