鉴于3.0中,BLZ为ItemString增加了第九个字段,用以标志人物等级,所以当人物升级时,如果你使用物品链接作为保存数据的话,那么将会失效。以下是升级物品链接的方法。
物品链接: link = "|cff9d9d9d|Hitem:7073:0:0:0:0:0:0:0:68|h[Broken Fang]|h|r"
上面红字部分就是人物等级。因为它的位置特殊(前:后|),可以使用下面的语句获取到
local _,_,level = string.find(link, "%:(%d+)\124")
PS. \124就是"|",这里获取的level就是人物等级
然后我们就可以做替换,但是别忘了,先做检查,避免用于非物品时出错。
这两天继续在看PiL,在看到译者对(a and b) or c的一段注解时,发现原先自己的理解错误。那段注解如下:
在lua中,常常使用“(a and b) or c”表达C中“a ? b : c”的情况,但是这种等同是有条件的。
弄明白这个前提条件是很有必要的。要明白它,必须了解lua中and和or的运算规则,还要明白C语言中三元表达式a ? b : c的意思,即“a为真,结果为b;a为假,结果为c”。
lua中的and-or写法若要完全等价于C语言中的?:表达式的语义,则必须要满足此前提:b不为假。
试想,在(a and b) or c中,若b为假,会出现怎样的结果呢?此时,若a为真,a and b的结果为b;接下去计算b and c,若b为假,那么根据lua中的or的运算规则,将返回c。这显然与C语言中的“a为真,结果为b;a为假,结果为c”的语义不同。
因此,在无法确信b为真的情况下,最安全的做法是使用正常的if-else语句。
怎么说呢
一般的玩家都系统傻瓜级的插件
不用去动脑经 拿来 就能用 节省学习成本
插件或者软件开发 就如同厨师一般 都是将各种要素 调和在一起来 提供给用户享受受用品尝等等
来换取 报酬 报酬有中 声望 荣誉 赞誉 或者 交换物
厨师、插件开发、软件开发人员 都想满足用户的胃口
但遗失了学习过程的用户只会越来越白痴
这绝不是 开发者造成的
作为开发者 提供用户体验是好的 也是目标
未完待续...