绿奈
因为想要让玩家升级的时候加HP但是加的时候不会连装备的HP算进去,就会导致加的血不是想要的所以想自己写一下,写了几天除了这个代码
进去测试发现不行,服务器也炸了,但是我不知道代码错在那,麻烦各位大佬帮我看一下




Ariy
  1. do {
  2.                     int i= 0;
  3.                     line = lore.get(i);
  4.                     PlayerHPonMH = getNumber(line);
  5.                     i++;
  6.              } while(!line.contains(".+生命上限.+"));
复制代码

话说你这个循环,要怎么才能跑出来

绿奈
tian_wc 发表于 2019-6-25 08:21
话说你这个循环,要怎么才能跑出来

lore.get(里面的lore匹配下面的正在表达式)
下面这个就为true因为我取反了所以等他为false的他就退出了
line.contains(".+生命上限.+")

Ariy
ww2498010071 发表于 2019-6-25 08:27
lore.get(里面的lore匹配下面的正在表达式)
下面这个就为true因为我取反了所以等他为false的他就退出了
l ...

你这个代码真是槽点满满
1.你取物品的时候,直接就获取lore,你是否考虑过玩家身上的装备没有lore的情况这样取会报错?
2.你每次循环,i都被赋值为0,每次判断的lore都是第一条,你确定能跑出来?
3.你取lore里面数字的正则,也没有判断是否是你的插件写的Lore吧?如果是其他插件或管理写的lore呢?

绿奈
tian_wc 发表于 2019-6-25 08:35
你这个代码真是槽点满满
1.你取物品的时候,直接就获取lore,你是否考虑过玩家身上的装备没有lore的情况这 ...

1.这个我之后加(笔记)
2.do语句一开始就判断一次,当结果为false的时候才退出
然而我这个语句是false的,我取反之后就是true,当找到Lore的时候结果会为true取反就变成false
怎么会跑不动?
3.我就是想让我这个插件判断这条Lore,而关闭其他Lore的判断好加血

云闪
本帖最后由 splt 于 2019-6-26 04:39 编辑
ww2498010071 发表于 2019-6-25 08:46
1.这个我之后加(笔记)
2.do语句一开始就判断一次,当结果为false的时候才退出
然而我这个语句是false的,我 ...

他第二点的意思(以及他最开始说的意思)简单来讲就是你应该把 int i= 0;放在循环外面
你需要一个会提示逻辑错误的ide

你这个代码的情况是框起来的那种问题

快投入IDEA的怀抱(雾

绿奈
splt 发表于 2019-6-26 04:31
他第二点的意思(以及他最开始说的意思)简单来讲就是你应该把 int i= 0;放在循环外面
你需要一个会提示逻辑 ...

好吧感谢纠正,我用的eclipse,感觉IDEA会卡我电脑

QiuJay
没太明白你的需求,你的意思是玩家升级的时候给玩家回点血,是这样吗?但这和装备有什么关系?

HYFan_Meng
QiuJay 发表于 2019-7-29 02:07
没太明白你的需求,你的意思是玩家升级的时候给玩家回点血,是这样吗?但这和装备有什么关系? ...

经验是XP
他意思就是增加玩家的生命值

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