等枫亭丶烟雨阁
本帖最后由 等枫亭丶烟雨阁 于 2022-4-29 23:12 编辑

我目前用的插件是mobcash,但这个插件的百分比计算单纯是将玩家的金钱进行计算后操作,不会进行四舍五入,导致玩家被击杀多次或击杀其他玩家多次后会导致金钱小数点后多出几十位,十分麻烦,求一款可以自动将金币四舍五入为整数的击杀玩家获得金钱的插件,另外希望该款插件可以在玩家被击杀或击杀其他玩家后在聊天栏发出可配置的自定义文本

或者各位大佬有什么办法可以让mobcash插件的玩家击杀奖励四舍五入到整数,也可以解决这个问题
服务端为1.16.5LoliServer

mobcash插件链接
https://www.mcbbs.net/thread-1244814-1-1.html



名副其实
https://www.spigotmc.org/members/flrping.238558/
在该作者的个人界面找到 EconoMobs 并使用即可
其他选择: Money Hunter

FireworkPolymer
https://www.mcbbs.net/forum.php?mod=viewthread&tid=807753

等枫亭丶烟雨阁
名副其实 发表于 2022-4-29 23:24
https://www.spigotmc.org/members/flrping.238558/
在该作者的个人界面找到 EconoMobs 并使用即可
其他选 ...

请问该插件的击杀金钱可否按照百分比扣取,计算时可否四舍五入为整数

等枫亭丶烟雨阁
FireworkPolymer 发表于 2022-4-29 23:27
https://www.mcbbs.net/forum.php?mod=viewthread&tid=807753

请问该插件的击杀金钱可否按照百分比扣取,计算时可否四舍五入为整数

FireworkPolymer
等枫亭丶烟雨阁 发表于 2022-4-29 23:32
请问该插件的击杀金钱可否按照百分比扣取,计算时可否四舍五入为整数

还要扣除吗?那这个插件貌似做不到

名副其实
等枫亭丶烟雨阁 发表于 2022-4-29 23:32
请问该插件的击杀金钱可否按照百分比扣取,计算时可否四舍五入为整数

默认就是整数。
你也可以向作者提问题而不是在这里为难我们

等枫亭丶烟雨阁
名副其实 发表于 2022-4-29 23:35
默认就是整数。
你也可以向作者提问题而不是在这里为难我们。

下载查看后发现貌似无法在击杀玩家时获得金钱?核心目的就是让玩家被击杀时扣除一定百分比的金钱,击杀其他玩家时获得被击杀玩家一定百分比的金钱,由于我原本使用的插件不会自动四舍五入为整数比较麻烦才考虑更换插件,如果不能通过击杀玩家获得金钱那就本末倒置了

名副其实
等枫亭丶烟雨阁 发表于 2022-4-30 00:05
下载查看后发现貌似无法在击杀玩家时获得金钱?核心目的就是让玩家被击杀时扣除一定百分比的金钱,击杀其 ...

个人建议直接向作者提出建议。
站内也有死亡惩罚插件可供使用,请自行寻找

kaiyu
[杀人得钱]LootPlayer .jar (6.47 KB, 下载次数: 18)
试一下?

等枫亭丶烟雨阁

需要四舍五入为整数的原因就是击杀扣除和获得的金钱是按百分比计算的才会出现浮点数,但这个插件无法做到按照百分比扣除,只能划定一个区间取随机值扣除,虽然都是整数,但这无疑是本末倒置了

无敌三脚猫
等枫亭丶烟雨阁 发表于 2022-4-30 00:05
下载查看后发现貌似无法在击杀玩家时获得金钱?核心目的就是让玩家被击杀时扣除一定百分比的金钱,击杀其 ...

我一直没搞懂是怎么出现小数的,一直到这楼你才把你的需求说清楚
既然是loliserver,那么
  1. var BigDecimal=Java.type("java.math.BigDecimal")
  2. var bukkit=Java.type("org.bukkit.Bukkit")
  3. var HALF_UP=Java.type("java.math.RoundingMode").HALF_UP
  4. var MathContext=Java.type("java.math.MathContext")

  5. function died(e){
  6. if(e.source!=null)if(e.source.getType()==1){
  7. var ess=bukkit.getPluginManager().getPlugin("Essentials")
  8. var k=ess.getUser(e.source.getName())
  9. var d=ess.getUser(e.player.getName())
  10. var award=d.getMoney().multiply(new BigDecimal(0.1)).setScale(0,HALF_UP)
  11. k.setMoney(k.getMoney().add(award).setScale(0,HALF_UP))
  12. d.setMoney(d.getMoney().subtract(award).setScale(0,HALF_UP))
  13. e.source.message("§e§l+"+award+"§r§e金币¥")
  14. e.player.message("-"+award+"金币¥")
  15. }
  16. }
复制代码
这次是cnpc的players脚本(不是forge脚本了)
这样写的话,不只是把扣的钱和给的钱设成整数,玩家原本的钱也会设成整数
BigDecimal要取整还真麻烦

等枫亭丶烟雨阁
无敌三脚猫 发表于 2022-4-30 13:17
我一直没搞懂是怎么出现小数的,一直到这楼你才把你的需求说清楚
既然是loliserver,那么这次是cnpc的pla ...

很完美!就是能不能增加一个击杀者和被击杀者的变量,让输出的提示语变成

你被XXX击杀并损失了$XXX

你击杀了XXX并获得了$XXX

无敌三脚猫
等枫亭丶烟雨阁 发表于 2022-4-30 13:44
很完美!就是能不能增加一个击杀者和被击杀者的变量,让输出的提示语变成

你被XXX击杀并损失了$XXX

毕竟我想的是,击杀提示在原版就有,而我还不知道怎么屏蔽原版的击杀提示
要这么写的话,玩家就会看到两遍“你被XXX击杀”
提示语就是最下面两行,要写也很简单,就是把那些不会变动的句子跟会变动的名字、金币数量加起来
e.source.message("你击杀了"+e.player.getName()+"并获得了"+award+"金币¥")
e.player.message("你被"+e.source.getName()+"击杀了并损失了"+award+"金币¥")
格式化代码什么的就随你便了

等枫亭丶烟雨阁
无敌三脚猫 发表于 2022-4-30 13:56
毕竟我想的是,击杀提示在原版就有,而我还不知道怎么屏蔽原版的击杀提示
要这么写的话,玩家就会看到两 ...

感谢大佬,不需要屏蔽原版的击杀提示,问题已解决

第一页 上一页 下一页 最后一页