World Conquest的游戏规则采用了FOMO模式,如果你是最后一位购买者,那么你可以获得奖池里面大部分的钱。
假如你是普通玩家,你肯定是一只盯着网页,到了最后10s左右,如果没有人购买的话,你就只好买入...
然后希望在后续10分钟内,所有的玩家都不要买入,这样你就能获得了大奖...
那如果你是一位技术流玩家的话,你会怎么做呢?
World Conquest 有一个缴税规则,所有购买地图的玩家,都需要向世界领主缴税(也就是每当有人购买某个地图后,合约都会给世界领主 这个玩家打一笔钱。
因为EOS内,所有的账号都可以部署合约,那么假如 我先用我的小号成为最后一位购买者,然后我用世界领主这个账号 部署合约
拒绝合约账号给我打钱,那么我只要默默等待时间结束,我就成为了最后一位玩家。(因为别人购买的时候 会触发给你打钱的动作,但是因为这个动作被拒绝了,所以导致整个交易失败,然后也就购买不成功...
在前面说了,世界账号是部署了合约,拒绝了 World Conquest 这个合约给他打钱.
但是其实这样是有一些问题的,假如说 游戏结束后,系统是自动发奖的...那么因为你拒绝了该合约给你打钱..。
那么你也就拿不到奖...(当然现实是 手动打钱,因为合约时间到了后,只能手动打,你需要在开发者给你打钱之前 把合约重新部署下,就可以了)
当然这个方法不怎么好,如何把细节完善好呢...
一个简单的方法 就是判断打进来的钱的金额(因为缴税的金额肯定是比较低的,而大奖金额是比较多的...
或者通过memo来判断,也是一样的...
昨天上线一款新的资金盘类游戏...
游戏有个规则是 最后奖池的20%分给最低价值英雄的玩家...
那么 如何成为拥有最低价值英雄的玩家呢...
World Conquest在新开第二盘的时候,使用了记账的方式 来避免被攻击...
正常来说,有人购买你的地后,你就能拿到赚的钱,这笔钱会直接转到你的账号上(上面说的攻击就是拒绝这笔转账汇入)
World Conquest是在有人购买你的地后,不给你转钱,而是帮你记一笔账...
当然你可以随时来提取你的奖金...
当然这种方式肯定是被玩家喷了...不能立马复投的资金盘还叫资金盘么...
防止这种攻击的方法其实很简单...就是把购买动作和转钱分开...
那么只要在购买成功后,发起一笔延时交易,给用户打钱.这样购买与转钱的动作就分开了...
而且还有个好处是,假如用户恶意拒绝合约给他转钱的话,那么这笔钱会留在你的合约...(算是惩罚了 恶意用户)
当然不是所有的方法都是完美的...
这个方法有一个问题是...因为延时交易是需要 合约出CPU的...
目前我还没有测试 到底是在发出延时的时候 扣CPU,还是延时发生的时候才扣
假如是第一种情况...还好,毕竟用户无法买入了...(可能会去你群里与你沟通
假如是第二种情况...正常用户买入了,而合约却没有把钱给上一个玩家...那么你肯定要被用户喷死...
当然解决方法也不是很难
目前EOS上,各种斗智斗勇的故事在发生...
欢迎来EOS上玩...