我想问问各位是怎么增加比如说
物理攻击属性的数值的
我用AttributeApi获取那个属性数据put到map里面没有用。。。难道是我想错了?
复制代码
物理攻击属性的数值的
我用AttributeApi获取那个属性数据put到map里面没有用。。。难道是我想错了?
- AttributeAPI.getAttrData(p).getAttributeValue().put(key,value);
1. 请上你的具体代码啊, 不然咋知道错在哪
2. 如果是1.9+版本Bukkit已自带了Attribute API,1.8/1.7当我没说
2. 如果是1.9+版本Bukkit已自带了Attribute API,1.8/1.7当我没说
 本帖最后由 MZIMU 于 2020-6-18 11:51 编辑 
是1.12
复制代码
jebme 发表于 2020-6-17 22:40
1. 请上你的具体代码啊, 不然咋知道错在哪
2. 如果是1.9+版本Bukkit已自带了Attribute API,1.8/1.7当我没 ...
是1.12
- public static ZMAttributeData updataAttributeForWeapons(Player p){
 
-             ItemStack handItem = p.getInventory().getItemInMainHand();
 
-             Equipment.WeaponsType weaponsType = Equipment.WeaponsType.valueOf(handItem);
 
-             if(weaponsType!=null){
 
-                 ZMAttributeData zmAttributeData = new ZMAttributeData();
 
-                 Map<String,Double> aMap = zmAttributeData.updataWeaponsValueLv(handItem,weaponsType);
 
-                 for(Map.Entry<String, Double> entry : weaponsType.getZmWeapons().getAttr().entrySet()){
 
-                     String key = entry.getKey();
 
-                     if(aMap.containsKey(key)){
 
-                         zmAttributeData.updataAttribute(key,entry.getValue() + aMap.get(key));
 
-                     }else{
 
-                         zmAttributeData.updataAttribute(key,entry.getValue());
 
-                     }
 
-                     AttributeAPI.getAttrData(p).getAttributeValue().put(key,AttributeAPI.getAttrData(p).getAttributeValue().get(key) + zmAttributeData.getAttributeMap().get(key));
 
-                 }
 
 
-                 for(Map.Entry<String,Double> entry : AttributeAPI.getAttrData(p).getAttributeValue().entrySet()){
 
-                     System.out.println(entry.getKey() + "   " + entry.getValue());
 
-                 }
 
-                 ZMWeaponsLevel.attrPlayData.putZMAttributeData(p,zmAttributeData);
 
-                 return zmAttributeData;
 
-             }
 
-             return null;
 
- }