Blogs

关于物品链接在人物等级提升时需要做的处理

鉴于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就是人物等级

然后我们就可以做替换,但是别忘了,先做检查,避免用于非物品时出错。

有关lua中“(a and b) or c”与C中“a ? b : c”等同的条件

这两天继续在看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语句。

 

傻瓜化 = 人性化 插件开发走向

怎么说呢
一般的玩家都系统傻瓜级的插件
不用去动脑经 拿来 就能用 节省学习成本
插件或者软件开发 就如同厨师一般 都是将各种要素 调和在一起来 提供给用户享受受用品尝等等
来换取 报酬 报酬有中 声望 荣誉 赞誉 或者 交换物

厨师、插件开发、软件开发人员 都想满足用户的胃口
但遗失了学习过程的用户只会越来越白痴
这绝不是 开发者造成的

作为开发者 提供用户体验是好的 也是目标

未完待续...

同步内容