解决21亿变负数的问题
经过测试,钱达到2147483648 就会变负数(不过好像不是很稳定,有一次变成-600多)
不能使钱超过这个数字存放,但是可以解决玩家金钱变负造成的损失
方法:
1.打开你的 SQL "企业管理器"
4 右键点击Character表
5 选择[所有任务]--[管理触发器]
6 把下面的SQL语句copy进去。按保存即可
CREATE TRIGGER [Restrict_Money] ON [dbo].[Character]
after update
as
Update [Character] set [Character].money=2140000000
From Inserted
Where Inserted.money<0 and [Character].accountid=inserted.accountid
and [Character].name=inserted.name
注意:以上方法测试成功,这段语句修改自以前某位朋友的帖子,请注意红色修改部分,其实换个角度思考就好了
原帖子只是修改上限,反过来,修改负的,不是就解决了问题了?
蓝色部分之所以用21.4亿不用具体数字一方面好看点,一方面减少别人找漏洞的可能,和2147483648也就相差七百多万
换种思维方法,算不算原创?:)
还有务必检查一下你里面有没有可能导致除了超过2147483648,钱还能变负数的方法,
记得以前用过某种系统,没有检查,转生钱不够可以透支变负数,有此问题的请谨慎使用,防止刷钱
不能使钱超过这个数字存放,但是可以解决玩家金钱变负造成的损失
方法:
1.打开你的 SQL "企业管理器"
4 右键点击Character表
5 选择[所有任务]--[管理触发器]
6 把下面的SQL语句copy进去。按保存即可
CREATE TRIGGER [Restrict_Money] ON [dbo].[Character]
after update
as
Update [Character] set [Character].money=2140000000
From Inserted
Where Inserted.money<0 and [Character].accountid=inserted.accountid
and [Character].name=inserted.name
注意:以上方法测试成功,这段语句修改自以前某位朋友的帖子,请注意红色修改部分,其实换个角度思考就好了
原帖子只是修改上限,反过来,修改负的,不是就解决了问题了?
蓝色部分之所以用21.4亿不用具体数字一方面好看点,一方面减少别人找漏洞的可能,和2147483648也就相差七百多万
换种思维方法,算不算原创?:)
还有务必检查一下你里面有没有可能导致除了超过2147483648,钱还能变负数的方法,
记得以前用过某种系统,没有检查,转生钱不够可以透支变负数,有此问题的请谨慎使用,防止刷钱
Tags:
作者:佚名评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论