From e737a09828bfa22d7b1943335b063843910cdfea Mon Sep 17 00:00:00 2001 From: "DESKTOP-5RP3AKU\\Jisol" <2858626794@qq.com> Date: Mon, 8 Jan 2024 03:01:50 +0800 Subject: [PATCH] =?UTF-8?q?=E9=94=BB=E9=80=A0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DataTables/Datas/__tables__.xlsx | Bin 10712 -> 10759 bytes .../Datas/宠物系统/宠物装备/宠物装备表.xlsx | Bin 74533 -> 74553 bytes .../Datas/宠物系统/宠物装备/装备类型表.xlsx | Bin 0 -> 10261 bytes .../{锻造装备品质.xlsx => 装备锻造台.xlsx} | Bin .../Datas/宠物系统/宠物装备/锻造装备等级.xlsx | Bin 11705 -> 11689 bytes DataTables/Datas/常用/资源表.xlsx | Bin 9751 -> 10016 bytes .../config/json/tbgroleequiplevel.json.meta | 11 + .../config/json/tbgroleequipquality.json.meta | 11 + JisolGameCocos/assets/script/App.ts | 8 +- .../src/main/java/cfg/TB/TbGRoleEquip.java | 6 +- .../main/java/cfg/TB/TbGRoleEquipType.java | 49 + .../Main/src/main/java/cfg/Tables.java | 3 + .../src/main/java/cfg/TbGRoleEquipType.java | 37 + .../PlayerMethodArgumentResolver.java | 5 +- .../controller/game/GNoviceController.java | 4 +- .../controller/game/GPlayerController.java | 4 +- .../game/GPlayerEquipController.java | 121 +- .../controller/game/GPlayerPetController.java | 6 +- .../game/GPlayerTacticalController.java | 8 +- .../controller/game/GResourceController.java | 6 +- .../game/mode/GOnHookController.java | 7 +- .../main/java/cn/jisol/game/data/Cache.java | 2 +- .../java/cn/jisol/game/data/ResourceId.java | 2 + .../cn/jisol/game/entity/data/GAttribute.java | 19 + .../game/entity/table/EquipForgingBench.java | 20 + .../cn/jisol/game/entity/table/PetEquip.java | 32 + .../game/entity/{game => table}/Player.java | 2 +- .../entity/{game => table}/PlayerPet.java | 2 +- .../{game => table}/PlayerTactical.java | 2 +- .../game/entity/{game => table}/Resource.java | 2 +- .../game/mapper/EquipForgingBenchMapper.java | 12 + .../jisol/game/mapper/ModeOnHookMapper.java | 1 - .../cn/jisol/game/mapper/PetEquipMapper.java | 11 + .../cn/jisol/game/mapper/PlayerMapper.java | 2 +- .../cn/jisol/game/mapper/PlayerPetMapper.java | 2 +- .../game/mapper/PlayerTacticalMapper.java | 3 +- .../cn/jisol/game/mapper/ResourceMapper.java | 3 +- .../cn/jisol/game/network/client/GClient.java | 3 +- .../service/EquipForgingBenchService.java | 9 + .../jisol/game/service/PetEquipService.java | 9 + .../jisol/game/service/PlayerPetService.java | 2 +- .../cn/jisol/game/service/PlayerService.java | 3 +- .../game/service/PlayerTacticalService.java | 3 +- .../jisol/game/service/ResourceService.java | 4 +- .../impl/EquipForgingBenchServiceImpl.java | 14 + .../service/impl/PetEquipServiceImpl.java | 12 + .../service/impl/PlayerPetServiceImpl.java | 5 +- .../game/service/impl/PlayerServiceImpl.java | 5 +- .../impl/PlayerTacticalServiceImpl.java | 5 +- .../service/impl/ResourceServiceImpl.java | 5 +- .../java/cn/jisol/game/util/GRandomUtil.java | 30 + .../cn/jisol/game/vo/news/NewsResource.java | 3 +- .../game/vo/news/ov/ResourceUpdateOV.java | 4 +- .../src/main/resources/json/tbgresource.json | 5 + .../src/main/resources/json/tbgroleequip.json | 1844 ++++++++--------- .../main/resources/json/tbgroleequiptype.json | 42 + pet_jisol_cn.sql | 113 + 57 files changed, 1524 insertions(+), 999 deletions(-) create mode 100644 DataTables/Datas/宠物系统/宠物装备/装备类型表.xlsx rename DataTables/Datas/宠物系统/宠物装备/{锻造装备品质.xlsx => 装备锻造台.xlsx} (100%) create mode 100644 JisolGameCocos/assets/resources/config/json/tbgroleequiplevel.json.meta create mode 100644 JisolGameCocos/assets/resources/config/json/tbgroleequipquality.json.meta create mode 100644 JisolGameServer/Main/src/main/java/cfg/TB/TbGRoleEquipType.java create mode 100644 JisolGameServer/Main/src/main/java/cfg/TbGRoleEquipType.java create mode 100644 JisolGameServer/Main/src/main/java/cn/jisol/game/entity/data/GAttribute.java create mode 100644 JisolGameServer/Main/src/main/java/cn/jisol/game/entity/table/EquipForgingBench.java create mode 100644 JisolGameServer/Main/src/main/java/cn/jisol/game/entity/table/PetEquip.java rename JisolGameServer/Main/src/main/java/cn/jisol/game/entity/{game => table}/Player.java (93%) rename JisolGameServer/Main/src/main/java/cn/jisol/game/entity/{game => table}/PlayerPet.java (95%) rename JisolGameServer/Main/src/main/java/cn/jisol/game/entity/{game => table}/PlayerTactical.java (92%) rename JisolGameServer/Main/src/main/java/cn/jisol/game/entity/{game => table}/Resource.java (94%) create mode 100644 JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/EquipForgingBenchMapper.java create mode 100644 JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/PetEquipMapper.java create mode 100644 JisolGameServer/Main/src/main/java/cn/jisol/game/service/EquipForgingBenchService.java create mode 100644 JisolGameServer/Main/src/main/java/cn/jisol/game/service/PetEquipService.java create mode 100644 JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/EquipForgingBenchServiceImpl.java create mode 100644 JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/PetEquipServiceImpl.java create mode 100644 JisolGameServer/Main/src/main/java/cn/jisol/game/util/GRandomUtil.java create mode 100644 JisolGameServer/Main/src/main/resources/json/tbgroleequiptype.json create mode 100644 pet_jisol_cn.sql diff --git a/DataTables/Datas/__tables__.xlsx b/DataTables/Datas/__tables__.xlsx index 064d4d85f20b0f176b12f368ccc13297eabf2200..40e3b5d5f8d775b7b0f3ebf8e8ef726215d72a76 100644 GIT binary patch delta 3595 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 R006|3l_@<2>LmaG008OCzG46X delta 3539 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 z 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 delta 6869 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 delta 5672 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 +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg.TB; + +import luban.*; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; + + +public final class TbGRoleEquipType extends AbstractBean { + public TbGRoleEquipType(JsonObject _buf) { + id = _buf.get("id").getAsInt(); + name = _buf.get("name").getAsString(); + } + + public static TbGRoleEquipType deserialize(JsonObject _buf) { + return new cfg.TB.TbGRoleEquipType(_buf); + } + + /** + * 类型Id + */ + public final int id; + /** + * 名称 + */ + public final String name; + + public static final int __ID__ = 1533767739; + + @Override + public int getTypeId() { return __ID__; } + + @Override + public String toString() { + return "{ " + + "(format_field_name __code_style field.name):" + id + "," + + "(format_field_name __code_style field.name):" + name + "," + + "}"; + } +} + diff --git a/JisolGameServer/Main/src/main/java/cfg/Tables.java b/JisolGameServer/Main/src/main/java/cfg/Tables.java index 6bfcb077..a7d955fc 100644 --- a/JisolGameServer/Main/src/main/java/cfg/Tables.java +++ b/JisolGameServer/Main/src/main/java/cfg/Tables.java @@ -57,6 +57,8 @@ public final class Tables public cfg.TbGRoleEquipLevel getTbGRoleEquipLevel() { return _tbgroleequiplevel; } private final cfg.TbGRoleEquipQuality _tbgroleequipquality; public cfg.TbGRoleEquipQuality getTbGRoleEquipQuality() { return _tbgroleequipquality; } + private final cfg.TbGRoleEquipType _tbgroleequiptype; + public cfg.TbGRoleEquipType getTbGRoleEquipType() { return _tbgroleequiptype; } private final cfg.TbGSysFuben _tbgsysfuben; public cfg.TbGSysFuben getTbGSysFuben() { return _tbgsysfuben; } @@ -80,6 +82,7 @@ public final class Tables _tbgroleequip = new cfg.TbGRoleEquip(loader.load("tbgroleequip")); _tbgroleequiplevel = new cfg.TbGRoleEquipLevel(loader.load("tbgroleequiplevel")); _tbgroleequipquality = new cfg.TbGRoleEquipQuality(loader.load("tbgroleequipquality")); + _tbgroleequiptype = new cfg.TbGRoleEquipType(loader.load("tbgroleequiptype")); _tbgsysfuben = new cfg.TbGSysFuben(loader.load("tbgsysfuben")); } } diff --git a/JisolGameServer/Main/src/main/java/cfg/TbGRoleEquipType.java b/JisolGameServer/Main/src/main/java/cfg/TbGRoleEquipType.java new file mode 100644 index 00000000..fcca99ce --- /dev/null +++ b/JisolGameServer/Main/src/main/java/cfg/TbGRoleEquipType.java @@ -0,0 +1,37 @@ + +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg; + +import luban.*; +import com.google.gson.JsonElement; + + +public final class TbGRoleEquipType { + private final java.util.HashMap _dataMap; + private final java.util.ArrayList _dataList; + + public TbGRoleEquipType(JsonElement _buf) { + _dataMap = new java.util.HashMap(); + _dataList = new java.util.ArrayList(); + + for (com.google.gson.JsonElement _e_ : _buf.getAsJsonArray()) { + cfg.TB.TbGRoleEquipType _v; + _v = cfg.TB.TbGRoleEquipType.deserialize(_e_.getAsJsonObject()); + _dataList.add(_v); + _dataMap.put(_v.id, _v); + } + } + + public java.util.HashMap getDataMap() { return _dataMap; } + public java.util.ArrayList getDataList() { return _dataList; } + + public cfg.TB.TbGRoleEquipType get(int key) { return _dataMap.get(key); } + +} diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/argsresolver/PlayerMethodArgumentResolver.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/argsresolver/PlayerMethodArgumentResolver.java index b54636d3..fb578055 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/argsresolver/PlayerMethodArgumentResolver.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/argsresolver/PlayerMethodArgumentResolver.java @@ -1,13 +1,10 @@ package cn.jisol.game.controller.argsresolver; -import cn.jisol.game.controller.exception.PlayerException; import cn.jisol.game.controller.exception.TokenException; import cn.jisol.game.controller.game.GPlayerController; import cn.jisol.game.data.Cache; import cn.jisol.game.entity.User; -import cn.jisol.game.entity.game.Player; -import cn.jisol.game.service.impl.PlayerServiceImpl; -import org.springframework.beans.factory.annotation.Autowired; +import cn.jisol.game.entity.table.Player; import org.springframework.core.MethodParameter; import org.springframework.stereotype.Component; import org.springframework.web.bind.support.WebDataBinderFactory; diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/GNoviceController.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/GNoviceController.java index 7e40cd27..33e108fd 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/GNoviceController.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/GNoviceController.java @@ -5,8 +5,8 @@ import cn.hutool.json.JSONUtil; import cn.jisol.game.controller.argsresolver.CurrentPlayer; import cn.jisol.game.data.GlobalId; import cn.jisol.game.data.TD; -import cn.jisol.game.entity.game.Player; -import cn.jisol.game.entity.game.PlayerPet; +import cn.jisol.game.entity.table.Player; +import cn.jisol.game.entity.table.PlayerPet; import cn.jisol.game.service.PlayerPetService; import cn.jisol.ngame.util.NewsContext; import com.baomidou.mybatisplus.core.toolkit.Wrappers; diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/GPlayerController.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/GPlayerController.java index 8ca018c1..0ae49f92 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/GPlayerController.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/GPlayerController.java @@ -3,8 +3,7 @@ package cn.jisol.game.controller.game; import cn.jisol.game.controller.HttpCode; import cn.jisol.game.controller.argsresolver.CurrentUser; import cn.jisol.game.entity.User; -import cn.jisol.game.entity.game.Player; -import cn.jisol.game.service.PlayerService; +import cn.jisol.game.entity.table.Player; import cn.jisol.game.service.impl.PlayerServiceImpl; import cn.jisol.ngame.util.NewsContext; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -12,7 +11,6 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.*; import java.util.Objects; diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/GPlayerEquipController.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/GPlayerEquipController.java index 11d172e4..dcc112b2 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/GPlayerEquipController.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/GPlayerEquipController.java @@ -1,19 +1,136 @@ package cn.jisol.game.controller.game; +import cfg.TB.TbGRoleEquip; +import cfg.TB.TbGRoleEquipQuality; +import cfg.TB.TbGRoleEquipType; +import cfg.TbGEntity.TAttributeValue; +import cn.hutool.core.util.RandomUtil; +import cn.jisol.game.controller.argsresolver.CurrentPlayer; +import cn.jisol.game.data.ResourceId; +import cn.jisol.game.data.TD; +import cn.jisol.game.entity.data.GAttribute; +import cn.jisol.game.entity.table.*; +import cn.jisol.game.service.EquipForgingBenchService; +import cn.jisol.game.service.PetEquipService; +import cn.jisol.game.service.ResourceService; +import cn.jisol.game.util.GRandomUtil; +import cn.jisol.ngame.util.NewsContext; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + /** * 玩家宠物装备 */ -@Api(value = "JNGameDemo - API", tags = {"PET - API"}) +@Api(value = "JNGameDemo - API", tags = {"玩家宠物装备 - API"}) @RestController @RequestMapping("/game/equip") @ResponseBody public class GPlayerEquipController { - + @Autowired + PetEquipService petEquipService; + @Autowired + EquipForgingBenchService equipForgingBenchService; + @Autowired + ResourceService resourceService; + + //获取玩家宠物列表 + @ApiImplicitParams({}) + @ApiOperation(value = "锻造装备(扣除玩家锻造石 打造一件装备)") + @GetMapping("/forging") + @Transactional + public NewsContext forging(@CurrentPlayer Player player){ + + //扣除一个锻造石 + resourceService.addResourceValue(player.getPlayerId(), ResourceId.ForgedStones.id, -1L); + + //获取锻造台 + EquipForgingBench forgingInfo = this.forgingInfo(player).data; + + //随机取一个部位 + TbGRoleEquipType position = GRandomUtil.randomArray(TD.DATA.getTbGRoleEquipType().getDataList()); + + //获取品质 + TbGRoleEquipQuality qualityInfo = TD.DATA.getTbGRoleEquipQuality().get(forgingInfo.getForgingQuality()); + //根据品质概率随机品质 + int quality = GRandomUtil.odds(qualityInfo.odds) + 1; + + //筛选装备 + List equips = TD.DATA.getTbGRoleEquip().getDataList().stream().filter(info -> (info.quality == quality && info.position == position.id)).collect(Collectors.toList()); + + //随机取一个装备 + TbGRoleEquip equipInfo = GRandomUtil.randomArray(equips); + + PetEquip equip = new PetEquip(); + equip.setEquipCfgId(equipInfo.id); + equip.setEquipPlayerId(player.getPlayerId()); + equip.setEquipLevel(forgingInfo.getForgingLevel()); + equip.setEquipPosition(equipInfo.position); + equip.setEquipBaseAttributes( + Arrays.stream(equipInfo.baseAttributes).map(ranges -> + GAttribute.builder() + .id(ranges[0].id) + .value(RandomUtil.randomInt(ranges[0].value, ranges[1].value)) + .build()) + .collect(Collectors.toList()) + ); + if (equipInfo.highAttributeSize[0] != equipInfo.highAttributeSize[1]){ + equip.setEquipHighAttributes( + Arrays.stream(new Object[RandomUtil.randomInt(equipInfo.highAttributeSize[0],equipInfo.highAttributeSize[1] + 1)]).map(item -> { + //随机取一个高级属性 + TAttributeValue[] ranges = GRandomUtil.randomArray(Arrays.asList(equipInfo.highAttributes)); + return GAttribute.builder() + .id(ranges[0].id) + .value(RandomUtil.randomInt(ranges[0].value, ranges[1].value + 1)) + .build(); + }).collect(Collectors.toList()) + ); + }else{ + equip.setEquipHighAttributes(new ArrayList<>()); + } + + petEquipService.save(equip); + + return NewsContext.onSuccess("锻造成功",petEquipService.getById(equip.getEquipId())); + + } + + //获取锻造台等级 + @ApiImplicitParams({}) + @ApiOperation(value = "获取锻造台") + @GetMapping("/forging/info") + public NewsContext forgingInfo(@CurrentPlayer Player player){ + + EquipForgingBench info = equipForgingBenchService.getOne(Wrappers.lambdaQuery(EquipForgingBench.class).eq(EquipForgingBench::getPlayerId,player.getPlayerId())); + + //如果没有阵法则创建一个 + if(Objects.isNull(info)){ + try{ + info = EquipForgingBench.builder().playerId(player.getPlayerId()) + .forgingQuality(TD.DATA.getTbGRoleEquipQuality().getDataList().get(0).id) + .forgingLevel(TD.DATA.getTbGRoleEquipLevel().getDataList().get(0).id).build(); + equipForgingBenchService.saveOrUpdate(info); + }catch (Exception ignored){} + assert equipForgingBenchService != null; + info = equipForgingBenchService.getById(player.getPlayerId()); + } + + return NewsContext.onSuccess("获取成功",info); + + } } diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/GPlayerPetController.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/GPlayerPetController.java index 9b48cd3e..0e4c9fa9 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/GPlayerPetController.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/GPlayerPetController.java @@ -4,9 +4,9 @@ import cfg.TB.TbGRoleUpLevel; import cfg.TbGEntity.TResource; import cn.jisol.game.controller.argsresolver.CurrentPlayer; import cn.jisol.game.data.TD; -import cn.jisol.game.entity.game.Player; -import cn.jisol.game.entity.game.PlayerPet; -import cn.jisol.game.entity.game.Resource; +import cn.jisol.game.entity.table.Player; +import cn.jisol.game.entity.table.PlayerPet; +import cn.jisol.game.entity.table.Resource; import cn.jisol.game.service.PlayerPetService; import cn.jisol.game.service.ResourceService; import cn.jisol.game.vo.news.NewsResource; diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/GPlayerTacticalController.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/GPlayerTacticalController.java index e294f875..c8badaab 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/GPlayerTacticalController.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/GPlayerTacticalController.java @@ -1,20 +1,16 @@ package cn.jisol.game.controller.game; import cn.jisol.game.controller.argsresolver.CurrentPlayer; -import cn.jisol.game.entity.game.Player; -import cn.jisol.game.entity.game.PlayerPet; -import cn.jisol.game.entity.game.PlayerTactical; -import cn.jisol.game.service.PlayerPetService; +import cn.jisol.game.entity.table.Player; +import cn.jisol.game.entity.table.PlayerTactical; import cn.jisol.game.service.PlayerTacticalService; import cn.jisol.ngame.util.NewsContext; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import java.util.List; import java.util.Objects; /** diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/GResourceController.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/GResourceController.java index ed120d24..dc6cb10e 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/GResourceController.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/GResourceController.java @@ -1,9 +1,8 @@ package cn.jisol.game.controller.game; import cn.jisol.game.controller.argsresolver.CurrentPlayer; -import cn.jisol.game.entity.game.Player; -import cn.jisol.game.entity.game.PlayerTactical; -import cn.jisol.game.entity.game.Resource; +import cn.jisol.game.entity.table.Player; +import cn.jisol.game.entity.table.Resource; import cn.jisol.game.service.ResourceService; import cn.jisol.ngame.util.NewsContext; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -16,7 +15,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; -import java.sql.Wrapper; import java.util.List; /** diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/mode/GOnHookController.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/mode/GOnHookController.java index 8a50d471..6780fef5 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/mode/GOnHookController.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/mode/GOnHookController.java @@ -7,9 +7,9 @@ import cn.jisol.game.controller.argsresolver.CurrentPlayer; import cn.jisol.game.data.GlobalId; import cn.jisol.game.data.ResourceId; import cn.jisol.game.data.TD; -import cn.jisol.game.entity.game.Player; -import cn.jisol.game.entity.game.PlayerPet; -import cn.jisol.game.entity.game.Resource; +import cn.jisol.game.entity.table.Player; +import cn.jisol.game.entity.table.PlayerPet; +import cn.jisol.game.entity.table.Resource; import cn.jisol.game.entity.mode.ModeOnHook; import cn.jisol.game.entity.mode.ModeOnHookInfo; import cn.jisol.game.mapper.ModeOnHookMapper; @@ -22,7 +22,6 @@ import cn.jisol.game.vo.mode.ModeOnHookRankingOV; import cn.jisol.game.vo.news.NewsResource; import cn.jisol.game.vo.news.ov.ResourceUpdateOV; import cn.jisol.ngame.util.NewsContext; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/data/Cache.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/data/Cache.java index 61becfba..557070d4 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/data/Cache.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/data/Cache.java @@ -1,7 +1,7 @@ package cn.jisol.game.data; import cn.jisol.game.entity.User; -import cn.jisol.game.entity.game.Player; +import cn.jisol.game.entity.table.Player; import java.util.HashMap; import java.util.List; diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/data/ResourceId.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/data/ResourceId.java index 3e049beb..f6a8ee33 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/data/ResourceId.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/data/ResourceId.java @@ -4,6 +4,8 @@ public enum ResourceId { //金币资源 Gold(90001), + //锻造石 + ForgedStones(90002), ; public int id; diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/data/GAttribute.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/data/GAttribute.java new file mode 100644 index 00000000..656c8041 --- /dev/null +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/data/GAttribute.java @@ -0,0 +1,19 @@ +package cn.jisol.game.entity.data; + +import lombok.Builder; +import lombok.Getter; +import lombok.Setter; + +//游戏属性类 +@Getter +@Setter +@Builder +public class GAttribute { + + //属性Id + private Integer id; + + //属性值 + private int value; + +} diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/table/EquipForgingBench.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/table/EquipForgingBench.java new file mode 100644 index 00000000..dce8344f --- /dev/null +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/table/EquipForgingBench.java @@ -0,0 +1,20 @@ +package cn.jisol.game.entity.table; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +@Builder +@Data +@TableName("`equip_forging_bench`") +public class EquipForgingBench { + + @TableId(type = IdType.AUTO) + private Integer forgingId; //锻造台Id + private Long playerId; //锻造台所属的玩家Id + private Integer forgingLevel; //锻造等级 + private Integer forgingQuality; //锻造品质等级 + +} diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/table/PetEquip.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/table/PetEquip.java new file mode 100644 index 00000000..b54eddb3 --- /dev/null +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/table/PetEquip.java @@ -0,0 +1,32 @@ +package cn.jisol.game.entity.table; + + +import cn.jisol.game.entity.data.GAttribute; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler; +import lombok.Builder; +import lombok.Data; + +import java.util.List; + +//宠物装备 +@Data +@TableName(value = "`pet_equip`",autoResultMap = true) +public class PetEquip { + + @TableId(type = IdType.AUTO) + private Integer equipId; //装备唯一Id + private Integer equipCfgId; //装备配置表Id + private Long equipPlayerId; //装备的所属玩家Id + private Integer equipLevel; //装备等级 + private Integer equipWear; //当前装备穿戴的宠物Id + private Integer equipPosition; //装备部位 + + @TableField(typeHandler = FastjsonTypeHandler.class) + private List equipBaseAttributes; //装备基础属性列表 JSON + @TableField(typeHandler = FastjsonTypeHandler.class) + private List equipHighAttributes; //装备高级属性列表 JSON +} diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/game/Player.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/table/Player.java similarity index 93% rename from JisolGameServer/Main/src/main/java/cn/jisol/game/entity/game/Player.java rename to JisolGameServer/Main/src/main/java/cn/jisol/game/entity/table/Player.java index ee512305..3f6634db 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/game/Player.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/table/Player.java @@ -1,4 +1,4 @@ -package cn.jisol.game.entity.game; +package cn.jisol.game.entity.table; import com.baomidou.mybatisplus.annotation.*; import lombok.Builder; diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/game/PlayerPet.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/table/PlayerPet.java similarity index 95% rename from JisolGameServer/Main/src/main/java/cn/jisol/game/entity/game/PlayerPet.java rename to JisolGameServer/Main/src/main/java/cn/jisol/game/entity/table/PlayerPet.java index 26a25b60..d91df6b0 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/game/PlayerPet.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/table/PlayerPet.java @@ -1,4 +1,4 @@ -package cn.jisol.game.entity.game; +package cn.jisol.game.entity.table; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/game/PlayerTactical.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/table/PlayerTactical.java similarity index 92% rename from JisolGameServer/Main/src/main/java/cn/jisol/game/entity/game/PlayerTactical.java rename to JisolGameServer/Main/src/main/java/cn/jisol/game/entity/table/PlayerTactical.java index ca0c55ed..56a069bc 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/game/PlayerTactical.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/table/PlayerTactical.java @@ -1,4 +1,4 @@ -package cn.jisol.game.entity.game; +package cn.jisol.game.entity.table; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/game/Resource.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/table/Resource.java similarity index 94% rename from JisolGameServer/Main/src/main/java/cn/jisol/game/entity/game/Resource.java rename to JisolGameServer/Main/src/main/java/cn/jisol/game/entity/table/Resource.java index b9a32445..99988b8b 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/game/Resource.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/table/Resource.java @@ -1,4 +1,4 @@ -package cn.jisol.game.entity.game; +package cn.jisol.game.entity.table; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/EquipForgingBenchMapper.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/EquipForgingBenchMapper.java new file mode 100644 index 00000000..ae2e1376 --- /dev/null +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/EquipForgingBenchMapper.java @@ -0,0 +1,12 @@ +package cn.jisol.game.mapper; + +import cn.jisol.game.entity.table.EquipForgingBench; +import cn.jisol.game.entity.table.PetEquip; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springframework.stereotype.Component; + +@Component +public interface EquipForgingBenchMapper extends BaseMapper { + + +} \ No newline at end of file diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/ModeOnHookMapper.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/ModeOnHookMapper.java index db144f31..2e91a663 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/ModeOnHookMapper.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/ModeOnHookMapper.java @@ -1,6 +1,5 @@ package cn.jisol.game.mapper; -import cn.jisol.game.entity.game.Player; import cn.jisol.game.entity.mode.ModeOnHook; import cn.jisol.game.vo.mode.ModeOnHookRankingOV; import com.baomidou.mybatisplus.core.mapper.BaseMapper; diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/PetEquipMapper.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/PetEquipMapper.java new file mode 100644 index 00000000..f9428c55 --- /dev/null +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/PetEquipMapper.java @@ -0,0 +1,11 @@ +package cn.jisol.game.mapper; + +import cn.jisol.game.entity.table.PetEquip; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springframework.stereotype.Component; + +@Component +public interface PetEquipMapper extends BaseMapper { + + +} \ No newline at end of file diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/PlayerMapper.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/PlayerMapper.java index fc4cc11d..aff9b838 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/PlayerMapper.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/PlayerMapper.java @@ -1,6 +1,6 @@ package cn.jisol.game.mapper; -import cn.jisol.game.entity.game.Player; +import cn.jisol.game.entity.table.Player; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Component; diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/PlayerPetMapper.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/PlayerPetMapper.java index 63f32250..721776d5 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/PlayerPetMapper.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/PlayerPetMapper.java @@ -1,6 +1,6 @@ package cn.jisol.game.mapper; -import cn.jisol.game.entity.game.PlayerPet; +import cn.jisol.game.entity.table.PlayerPet; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Component; diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/PlayerTacticalMapper.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/PlayerTacticalMapper.java index fd07496c..d3c28255 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/PlayerTacticalMapper.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/PlayerTacticalMapper.java @@ -1,7 +1,6 @@ package cn.jisol.game.mapper; -import cn.jisol.game.entity.game.PlayerPet; -import cn.jisol.game.entity.game.PlayerTactical; +import cn.jisol.game.entity.table.PlayerTactical; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Component; diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/ResourceMapper.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/ResourceMapper.java index 73da46bf..633e3b33 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/ResourceMapper.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/mapper/ResourceMapper.java @@ -1,7 +1,6 @@ package cn.jisol.game.mapper; -import cn.jisol.game.entity.game.Player; -import cn.jisol.game.entity.game.Resource; +import cn.jisol.game.entity.table.Resource; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Component; diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/network/client/GClient.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/network/client/GClient.java index 450e9a3e..99b1a666 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/network/client/GClient.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/network/client/GClient.java @@ -2,10 +2,9 @@ package cn.jisol.game.network.client; import cn.jisol.game.data.Cache; import cn.jisol.game.entity.User; -import cn.jisol.game.entity.game.Player; +import cn.jisol.game.entity.table.Player; import cn.jisol.ngame.client.QueueNClient; -import javax.websocket.EncodeException; import javax.websocket.Session; import java.io.IOException; diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/service/EquipForgingBenchService.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/service/EquipForgingBenchService.java new file mode 100644 index 00000000..888af772 --- /dev/null +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/service/EquipForgingBenchService.java @@ -0,0 +1,9 @@ +package cn.jisol.game.service; + +import cn.jisol.game.entity.table.EquipForgingBench; +import cn.jisol.game.entity.table.PetEquip; +import com.baomidou.mybatisplus.extension.service.IService; + +public interface EquipForgingBenchService extends IService { + +} diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/service/PetEquipService.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/service/PetEquipService.java new file mode 100644 index 00000000..ea56004e --- /dev/null +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/service/PetEquipService.java @@ -0,0 +1,9 @@ +package cn.jisol.game.service; + +import cn.jisol.game.entity.table.PetEquip; +import cn.jisol.game.entity.table.PlayerTactical; +import com.baomidou.mybatisplus.extension.service.IService; + +public interface PetEquipService extends IService { + +} diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/service/PlayerPetService.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/service/PlayerPetService.java index efd70c68..845a7886 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/service/PlayerPetService.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/service/PlayerPetService.java @@ -1,6 +1,6 @@ package cn.jisol.game.service; -import cn.jisol.game.entity.game.PlayerPet; +import cn.jisol.game.entity.table.PlayerPet; import com.baomidou.mybatisplus.extension.service.IService; public interface PlayerPetService extends IService { diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/service/PlayerService.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/service/PlayerService.java index 87ff3c15..d9b77903 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/service/PlayerService.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/service/PlayerService.java @@ -1,7 +1,6 @@ package cn.jisol.game.service; -import cn.jisol.game.entity.User; -import cn.jisol.game.entity.game.Player; +import cn.jisol.game.entity.table.Player; import com.baomidou.mybatisplus.extension.service.IService; public interface PlayerService extends IService { diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/service/PlayerTacticalService.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/service/PlayerTacticalService.java index a1ef47d5..11bf3ed6 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/service/PlayerTacticalService.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/service/PlayerTacticalService.java @@ -1,7 +1,6 @@ package cn.jisol.game.service; -import cn.jisol.game.entity.game.PlayerPet; -import cn.jisol.game.entity.game.PlayerTactical; +import cn.jisol.game.entity.table.PlayerTactical; import com.baomidou.mybatisplus.extension.service.IService; public interface PlayerTacticalService extends IService { diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/service/ResourceService.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/service/ResourceService.java index 1646c2c3..5bc1c4f4 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/service/ResourceService.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/service/ResourceService.java @@ -1,8 +1,6 @@ package cn.jisol.game.service; -import cn.jisol.game.data.ResourceId; -import cn.jisol.game.entity.game.PlayerPet; -import cn.jisol.game.entity.game.Resource; +import cn.jisol.game.entity.table.Resource; import com.baomidou.mybatisplus.extension.service.IService; public interface ResourceService extends IService { diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/EquipForgingBenchServiceImpl.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/EquipForgingBenchServiceImpl.java new file mode 100644 index 00000000..345338c9 --- /dev/null +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/EquipForgingBenchServiceImpl.java @@ -0,0 +1,14 @@ +package cn.jisol.game.service.impl; + +import cn.jisol.game.entity.table.EquipForgingBench; +import cn.jisol.game.entity.table.PetEquip; +import cn.jisol.game.mapper.EquipForgingBenchMapper; +import cn.jisol.game.mapper.PetEquipMapper; +import cn.jisol.game.service.EquipForgingBenchService; +import cn.jisol.game.service.PetEquipService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +@Service +public class EquipForgingBenchServiceImpl extends ServiceImpl implements EquipForgingBenchService { +} diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/PetEquipServiceImpl.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/PetEquipServiceImpl.java new file mode 100644 index 00000000..91ffce2e --- /dev/null +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/PetEquipServiceImpl.java @@ -0,0 +1,12 @@ +package cn.jisol.game.service.impl; + +import cn.jisol.game.entity.table.PetEquip; +import cn.jisol.game.mapper.ModeOnHookMapper; +import cn.jisol.game.mapper.PetEquipMapper; +import cn.jisol.game.service.PetEquipService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +@Service +public class PetEquipServiceImpl extends ServiceImpl implements PetEquipService { +} diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/PlayerPetServiceImpl.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/PlayerPetServiceImpl.java index 04a3b8d9..96786822 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/PlayerPetServiceImpl.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/PlayerPetServiceImpl.java @@ -1,11 +1,8 @@ package cn.jisol.game.service.impl; -import cn.jisol.game.entity.game.Player; -import cn.jisol.game.entity.game.PlayerPet; -import cn.jisol.game.mapper.PlayerMapper; +import cn.jisol.game.entity.table.PlayerPet; import cn.jisol.game.mapper.PlayerPetMapper; import cn.jisol.game.service.PlayerPetService; -import cn.jisol.game.service.PlayerService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/PlayerServiceImpl.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/PlayerServiceImpl.java index a8802863..f8da375e 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/PlayerServiceImpl.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/PlayerServiceImpl.java @@ -1,11 +1,8 @@ package cn.jisol.game.service.impl; -import cn.jisol.game.entity.User; -import cn.jisol.game.entity.game.Player; +import cn.jisol.game.entity.table.Player; import cn.jisol.game.mapper.PlayerMapper; -import cn.jisol.game.mapper.UserMapper; import cn.jisol.game.service.PlayerService; -import cn.jisol.game.service.UserService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/PlayerTacticalServiceImpl.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/PlayerTacticalServiceImpl.java index 8777c3e3..98ae93ea 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/PlayerTacticalServiceImpl.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/PlayerTacticalServiceImpl.java @@ -1,10 +1,7 @@ package cn.jisol.game.service.impl; -import cn.jisol.game.entity.game.PlayerPet; -import cn.jisol.game.entity.game.PlayerTactical; -import cn.jisol.game.mapper.PlayerPetMapper; +import cn.jisol.game.entity.table.PlayerTactical; import cn.jisol.game.mapper.PlayerTacticalMapper; -import cn.jisol.game.service.PlayerPetService; import cn.jisol.game.service.PlayerTacticalService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/ResourceServiceImpl.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/ResourceServiceImpl.java index 809393ea..3b93c0a7 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/ResourceServiceImpl.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/service/impl/ResourceServiceImpl.java @@ -1,9 +1,7 @@ package cn.jisol.game.service.impl; import cn.jisol.game.controller.exception.ResourceNotException; -import cn.jisol.game.data.ResourceId; -import cn.jisol.game.entity.game.Player; -import cn.jisol.game.entity.game.Resource; +import cn.jisol.game.entity.table.Resource; import cn.jisol.game.mapper.ResourceMapper; import cn.jisol.game.service.ResourceService; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -12,7 +10,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.retry.RetryException; import org.springframework.retry.annotation.Retryable; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import java.util.Objects; diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/util/GRandomUtil.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/util/GRandomUtil.java new file mode 100644 index 00000000..0a0ad977 --- /dev/null +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/util/GRandomUtil.java @@ -0,0 +1,30 @@ +package cn.jisol.game.util; + +import cn.hutool.core.util.RandomUtil; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.IntStream; + +public class GRandomUtil { + + //随机数值中任意一个对象 + public static T randomArray(List list){ + return list.get(RandomUtil.randomInt(0, list.size())); + } + + //概率随机 (通过概率 返回 中奖下标) + public static int odds(int[] odds){ + + int sum = IntStream.of(odds).sum(); + int random = RandomUtil.randomInt(0, sum); + + for (int i = 0; i < odds.length; i++) { + if((random-=odds[i]) <= 0) return i; + } + return odds.length - 1; + + } + +} diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/vo/news/NewsResource.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/vo/news/NewsResource.java index ab6ab36c..5441e4fc 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/vo/news/NewsResource.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/vo/news/NewsResource.java @@ -1,11 +1,10 @@ package cn.jisol.game.vo.news; -import cn.jisol.game.entity.game.Resource; +import cn.jisol.game.entity.table.Resource; import cn.jisol.game.vo.news.ov.ResourceUpdateOV; import cn.jisol.ngame.util.NewsContext; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; -import lombok.Builder; import lombok.experimental.SuperBuilder; import java.util.ArrayList; diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/vo/news/ov/ResourceUpdateOV.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/vo/news/ov/ResourceUpdateOV.java index e60f0c0c..f32d079d 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/vo/news/ov/ResourceUpdateOV.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/vo/news/ov/ResourceUpdateOV.java @@ -1,7 +1,7 @@ package cn.jisol.game.vo.news.ov; -import cn.jisol.game.entity.game.PlayerPet; -import cn.jisol.game.entity.game.Resource; +import cn.jisol.game.entity.table.PlayerPet; +import cn.jisol.game.entity.table.Resource; import lombok.Builder; import lombok.Data; diff --git a/JisolGameServer/Main/src/main/resources/json/tbgresource.json b/JisolGameServer/Main/src/main/resources/json/tbgresource.json index bf0af7cd..fb678f6b 100644 --- a/JisolGameServer/Main/src/main/resources/json/tbgresource.json +++ b/JisolGameServer/Main/src/main/resources/json/tbgresource.json @@ -3,5 +3,10 @@ "id": 90001, "name": "金币", "tig": "金币 (目前叫做金币 名称还没有定) 游戏的基础资源 用于升级宠物" + }, + { + "id": 90002, + "name": "锻造石", + "tig": "锻造石 可以锻造装备的石头" } ] \ No newline at end of file diff --git a/JisolGameServer/Main/src/main/resources/json/tbgroleequip.json b/JisolGameServer/Main/src/main/resources/json/tbgroleequip.json index 5d77c954..1f1936e2 100644 --- a/JisolGameServer/Main/src/main/resources/json/tbgroleequip.json +++ b/JisolGameServer/Main/src/main/resources/json/tbgroleequip.json @@ -2,7 +2,7 @@ { "id": 100101001, "name": "扫把", - "type": 1, + "position": 1, "quality": 1, "icon": "100101001", "levelBaseAttributesFactors": [ @@ -81,13 +81,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100101002, "name": "拖把", - "type": 1, + "position": 1, "quality": 1, "icon": "100101002", "levelBaseAttributesFactors": [ @@ -166,13 +166,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100101003, "name": "铁锅", - "type": 1, + "position": 1, "quality": 1, "icon": "100101003", "levelBaseAttributesFactors": [ @@ -251,13 +251,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100101004, "name": "锄头", - "type": 1, + "position": 1, "quality": 1, "icon": "100101004", "levelBaseAttributesFactors": [ @@ -336,13 +336,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100101005, "name": "菜刀", - "type": 1, + "position": 1, "quality": 1, "icon": "100101005", "levelBaseAttributesFactors": [ @@ -421,13 +421,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100102001, "name": "铁剑", - "type": 1, + "position": 1, "quality": 2, "icon": "100102001", "levelBaseAttributesFactors": [ @@ -506,13 +506,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100102002, "name": "铁刀", - "type": 1, + "position": 1, "quality": 2, "icon": "100102002", "levelBaseAttributesFactors": [ @@ -591,13 +591,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100102003, "name": "铁锤", - "type": 1, + "position": 1, "quality": 2, "icon": "100102003", "levelBaseAttributesFactors": [ @@ -676,13 +676,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100102004, "name": "木弓", - "type": 1, + "position": 1, "quality": 2, "icon": "100102004", "levelBaseAttributesFactors": [ @@ -761,13 +761,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100102005, "name": "木杖", - "type": 1, + "position": 1, "quality": 2, "icon": "100102005", "levelBaseAttributesFactors": [ @@ -846,13 +846,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100103001, "name": "弹弓", - "type": 1, + "position": 1, "quality": 3, "icon": "100103001", "levelBaseAttributesFactors": [ @@ -931,13 +931,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100103002, "name": "狼牙棒", - "type": 1, + "position": 1, "quality": 3, "icon": "100103002", "levelBaseAttributesFactors": [ @@ -1016,13 +1016,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100103003, "name": "火炬棒", - "type": 1, + "position": 1, "quality": 3, "icon": "100103003", "levelBaseAttributesFactors": [ @@ -1101,13 +1101,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100103004, "name": "星星杖", - "type": 1, + "position": 1, "quality": 3, "icon": "100103004", "levelBaseAttributesFactors": [ @@ -1186,13 +1186,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100103005, "name": "双菜刀", - "type": 1, + "position": 1, "quality": 3, "icon": "100103005", "levelBaseAttributesFactors": [ @@ -1271,13 +1271,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100104001, "name": "黑洞斧", - "type": 1, + "position": 1, "quality": 4, "icon": "100104001", "levelBaseAttributesFactors": [ @@ -1356,13 +1356,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100104002, "name": "黑洞双节棍", - "type": 1, + "position": 1, "quality": 4, "icon": "100104002", "levelBaseAttributesFactors": [ @@ -1441,13 +1441,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100104003, "name": "血红叉", - "type": 1, + "position": 1, "quality": 4, "icon": "100104003", "levelBaseAttributesFactors": [ @@ -1526,13 +1526,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100104004, "name": "红木弩", - "type": 1, + "position": 1, "quality": 4, "icon": "100104004", "levelBaseAttributesFactors": [ @@ -1611,13 +1611,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100104005, "name": "加特林", - "type": 1, + "position": 1, "quality": 4, "icon": "100104005", "levelBaseAttributesFactors": [ @@ -1696,13 +1696,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100105001, "name": "黑洞法杖", - "type": 1, + "position": 1, "quality": 5, "icon": "100105001", "levelBaseAttributesFactors": [ @@ -1781,13 +1781,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100105002, "name": "日炎法杖", - "type": 1, + "position": 1, "quality": 5, "icon": "100105002", "levelBaseAttributesFactors": [ @@ -1866,13 +1866,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100105003, "name": "喷火筒", - "type": 1, + "position": 1, "quality": 5, "icon": "100105003", "levelBaseAttributesFactors": [ @@ -1951,13 +1951,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100105004, "name": "暗物质剑", - "type": 1, + "position": 1, "quality": 5, "icon": "100105004", "levelBaseAttributesFactors": [ @@ -2036,13 +2036,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100105005, "name": "日炎锤", - "type": 1, + "position": 1, "quality": 5, "icon": "100105005", "levelBaseAttributesFactors": [ @@ -2121,13 +2121,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100106001, "name": "魔法书", - "type": 1, + "position": 1, "quality": 6, "icon": "100106001", "levelBaseAttributesFactors": [ @@ -2206,13 +2206,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100106002, "name": "水晶剑", - "type": 1, + "position": 1, "quality": 6, "icon": "100106002", "levelBaseAttributesFactors": [ @@ -2291,13 +2291,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100106003, "name": "水晶锤", - "type": 1, + "position": 1, "quality": 6, "icon": "100106003", "levelBaseAttributesFactors": [ @@ -2376,13 +2376,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100106004, "name": "水晶法杖", - "type": 1, + "position": 1, "quality": 6, "icon": "100106004", "levelBaseAttributesFactors": [ @@ -2461,13 +2461,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100106005, "name": "水晶弓", - "type": 1, + "position": 1, "quality": 6, "icon": "100106005", "levelBaseAttributesFactors": [ @@ -2546,13 +2546,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100106006, "name": "翼龙之牙", - "type": 1, + "position": 1, "quality": 6, "icon": "900106001", "levelBaseAttributesFactors": [ @@ -2631,13 +2631,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100107001, "name": "恶魔镰刀", - "type": 1, + "position": 1, "quality": 7, "icon": "100107001", "levelBaseAttributesFactors": [ @@ -2716,13 +2716,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100107002, "name": "恶魔细剑", - "type": 1, + "position": 1, "quality": 7, "icon": "100107002", "levelBaseAttributesFactors": [ @@ -2801,13 +2801,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100107003, "name": "恶魔长鞭", - "type": 1, + "position": 1, "quality": 7, "icon": "100107003", "levelBaseAttributesFactors": [ @@ -2886,13 +2886,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100107004, "name": "恶魔法杖", - "type": 1, + "position": 1, "quality": 7, "icon": "100107004", "levelBaseAttributesFactors": [ @@ -2971,13 +2971,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100107005, "name": "恶魔飞镖", - "type": 1, + "position": 1, "quality": 7, "icon": "100107005", "levelBaseAttributesFactors": [ @@ -3056,13 +3056,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100108001, "name": "龙骨剑", - "type": 1, + "position": 1, "quality": 8, "icon": "100108001", "levelBaseAttributesFactors": [ @@ -3141,13 +3141,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100108002, "name": "龙血刀", - "type": 1, + "position": 1, "quality": 8, "icon": "100108002", "levelBaseAttributesFactors": [ @@ -3226,13 +3226,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100108003, "name": "龙爪", - "type": 1, + "position": 1, "quality": 8, "icon": "100108003", "levelBaseAttributesFactors": [ @@ -3311,13 +3311,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100108004, "name": "龙骨杖", - "type": 1, + "position": 1, "quality": 8, "icon": "100108004", "levelBaseAttributesFactors": [ @@ -3396,13 +3396,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100108005, "name": "龙弓", - "type": 1, + "position": 1, "quality": 8, "icon": "100108005", "levelBaseAttributesFactors": [ @@ -3481,13 +3481,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100109001, "name": "次元剑", - "type": 1, + "position": 1, "quality": 9, "icon": "100109001", "levelBaseAttributesFactors": [ @@ -3566,13 +3566,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100109002, "name": "激光炮", - "type": 1, + "position": 1, "quality": 9, "icon": "100109002", "levelBaseAttributesFactors": [ @@ -3651,13 +3651,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100109003, "name": "时间杖", - "type": 1, + "position": 1, "quality": 9, "icon": "100109003", "levelBaseAttributesFactors": [ @@ -3736,13 +3736,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100109004, "name": "魔力手枪", - "type": 1, + "position": 1, "quality": 9, "icon": "100109004", "levelBaseAttributesFactors": [ @@ -3821,13 +3821,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100109005, "name": "摇滚吉他", - "type": 1, + "position": 1, "quality": 9, "icon": "100109005", "levelBaseAttributesFactors": [ @@ -3906,13 +3906,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100110001, "name": "金手指", - "type": 1, + "position": 1, "quality": 10, "icon": "100110001", "levelBaseAttributesFactors": [ @@ -3991,13 +3991,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100110002, "name": "暗皇金剑", - "type": 1, + "position": 1, "quality": 10, "icon": "100110002", "levelBaseAttributesFactors": [ @@ -4076,13 +4076,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100110003, "name": "宝蓝双刀", - "type": 1, + "position": 1, "quality": 10, "icon": "100110003", "levelBaseAttributesFactors": [ @@ -4161,13 +4161,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100110004, "name": "飞翼枪", - "type": 1, + "position": 1, "quality": 10, "icon": "100110004", "levelBaseAttributesFactors": [ @@ -4246,13 +4246,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100110005, "name": "黄金剑", - "type": 1, + "position": 1, "quality": 10, "icon": "100110005", "levelBaseAttributesFactors": [ @@ -4331,13 +4331,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100201001, "name": "布带", - "type": 2, + "position": 2, "quality": 1, "icon": "100201001", "levelBaseAttributesFactors": [ @@ -4416,13 +4416,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100201002, "name": "布帽", - "type": 2, + "position": 2, "quality": 1, "icon": "100201002", "levelBaseAttributesFactors": [ @@ -4501,13 +4501,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100201003, "name": "绿叶帽", - "type": 2, + "position": 2, "quality": 1, "icon": "100201003", "levelBaseAttributesFactors": [ @@ -4586,13 +4586,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100201004, "name": "铁锅帽", - "type": 2, + "position": 2, "quality": 1, "icon": "100201004", "levelBaseAttributesFactors": [ @@ -4671,13 +4671,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100201005, "name": "鸭嘴帽", - "type": 2, + "position": 2, "quality": 1, "icon": "100201005", "levelBaseAttributesFactors": [ @@ -4756,13 +4756,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100202001, "name": "兔耳草帽", - "type": 2, + "position": 2, "quality": 2, "icon": "100202001", "levelBaseAttributesFactors": [ @@ -4841,13 +4841,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100202002, "name": "兔皮帽", - "type": 2, + "position": 2, "quality": 2, "icon": "100202002", "levelBaseAttributesFactors": [ @@ -4926,13 +4926,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100202003, "name": "黑羽头巾", - "type": 2, + "position": 2, "quality": 2, "icon": "100202003", "levelBaseAttributesFactors": [ @@ -5011,13 +5011,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100202004, "name": "绅士帽", - "type": 2, + "position": 2, "quality": 2, "icon": "100202004", "levelBaseAttributesFactors": [ @@ -5096,13 +5096,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100202005, "name": "大绿帽", - "type": 2, + "position": 2, "quality": 2, "icon": "100202005", "levelBaseAttributesFactors": [ @@ -5181,13 +5181,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100203001, "name": "火狐帽", - "type": 2, + "position": 2, "quality": 3, "icon": "100203001", "levelBaseAttributesFactors": [ @@ -5266,13 +5266,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100203002, "name": "绿叶牛仔帽", - "type": 2, + "position": 2, "quality": 3, "icon": "100203002", "levelBaseAttributesFactors": [ @@ -5351,13 +5351,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100203003, "name": "学士帽", - "type": 2, + "position": 2, "quality": 3, "icon": "100203003", "levelBaseAttributesFactors": [ @@ -5436,13 +5436,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100203004, "name": "小鬼帽", - "type": 2, + "position": 2, "quality": 3, "icon": "100203004", "levelBaseAttributesFactors": [ @@ -5521,13 +5521,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100203005, "name": "游侠帽", - "type": 2, + "position": 2, "quality": 3, "icon": "100203005", "levelBaseAttributesFactors": [ @@ -5606,13 +5606,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100204001, "name": "蓝羽盔", - "type": 2, + "position": 2, "quality": 4, "icon": "100204001", "levelBaseAttributesFactors": [ @@ -5691,13 +5691,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100204002, "name": "青铜盔", - "type": 2, + "position": 2, "quality": 4, "icon": "100204002", "levelBaseAttributesFactors": [ @@ -5776,13 +5776,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100204003, "name": "鹰羽盔", - "type": 2, + "position": 2, "quality": 4, "icon": "100204003", "levelBaseAttributesFactors": [ @@ -5861,13 +5861,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100204004, "name": "牛角盔", - "type": 2, + "position": 2, "quality": 4, "icon": "100204004", "levelBaseAttributesFactors": [ @@ -5946,13 +5946,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100204005, "name": "印第安头套", - "type": 2, + "position": 2, "quality": 4, "icon": "100204005", "levelBaseAttributesFactors": [ @@ -6031,13 +6031,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100205001, "name": "黑乌帽", - "type": 2, + "position": 2, "quality": 5, "icon": "100205001", "levelBaseAttributesFactors": [ @@ -6116,13 +6116,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100205002, "name": "绿石帽", - "type": 2, + "position": 2, "quality": 5, "icon": "100205002", "levelBaseAttributesFactors": [ @@ -6201,13 +6201,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100205003, "name": "熊耳帽", - "type": 2, + "position": 2, "quality": 5, "icon": "100205003", "levelBaseAttributesFactors": [ @@ -6286,13 +6286,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100205004, "name": "红头帽", - "type": 2, + "position": 2, "quality": 5, "icon": "100205004", "levelBaseAttributesFactors": [ @@ -6371,13 +6371,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100205005, "name": "瞌睡帽", - "type": 2, + "position": 2, "quality": 5, "icon": "100205005", "levelBaseAttributesFactors": [ @@ -6456,13 +6456,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100206001, "name": "勇士帽", - "type": 2, + "position": 2, "quality": 6, "icon": "100206001", "levelBaseAttributesFactors": [ @@ -6541,13 +6541,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100206002, "name": "骑士盔", - "type": 2, + "position": 2, "quality": 6, "icon": "100206002", "levelBaseAttributesFactors": [ @@ -6626,13 +6626,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100206003, "name": "金龙盔", - "type": 2, + "position": 2, "quality": 6, "icon": "100206003", "levelBaseAttributesFactors": [ @@ -6711,13 +6711,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100206004, "name": "隐者帽", - "type": 2, + "position": 2, "quality": 6, "icon": "100206004", "levelBaseAttributesFactors": [ @@ -6796,13 +6796,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100206005, "name": "战神盔", - "type": 2, + "position": 2, "quality": 6, "icon": "100206005", "levelBaseAttributesFactors": [ @@ -6881,13 +6881,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100207001, "name": "蓝翎盔", - "type": 2, + "position": 2, "quality": 7, "icon": "100207001", "levelBaseAttributesFactors": [ @@ -6966,13 +6966,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100207002, "name": "金羽冠", - "type": 2, + "position": 2, "quality": 7, "icon": "100207002", "levelBaseAttributesFactors": [ @@ -7051,13 +7051,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100207003, "name": "剑鱼盔", - "type": 2, + "position": 2, "quality": 7, "icon": "100207003", "levelBaseAttributesFactors": [ @@ -7136,13 +7136,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100207004, "name": "飞鸟冠", - "type": 2, + "position": 2, "quality": 7, "icon": "100207004", "levelBaseAttributesFactors": [ @@ -7221,13 +7221,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100207005, "name": "尖齿盔", - "type": 2, + "position": 2, "quality": 7, "icon": "100207005", "levelBaseAttributesFactors": [ @@ -7306,13 +7306,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100208001, "name": "鲨皮毡帽", - "type": 2, + "position": 2, "quality": 8, "icon": "100208001", "levelBaseAttributesFactors": [ @@ -7391,13 +7391,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100208002, "name": "森林鼬鼠帽", - "type": 2, + "position": 2, "quality": 8, "icon": "100208002", "levelBaseAttributesFactors": [ @@ -7476,13 +7476,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100208003, "name": "暗夜游侠帽", - "type": 2, + "position": 2, "quality": 8, "icon": "100208003", "levelBaseAttributesFactors": [ @@ -7561,13 +7561,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100208004, "name": "游牧皮帽", - "type": 2, + "position": 2, "quality": 8, "icon": "100208004", "levelBaseAttributesFactors": [ @@ -7646,13 +7646,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100208005, "name": "森白骨盔", - "type": 2, + "position": 2, "quality": 8, "icon": "100208005", "levelBaseAttributesFactors": [ @@ -7731,13 +7731,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100209001, "name": "红隼盔", - "type": 2, + "position": 2, "quality": 9, "icon": "100209001", "levelBaseAttributesFactors": [ @@ -7816,13 +7816,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100209002, "name": "绿地圆帽", - "type": 2, + "position": 2, "quality": 9, "icon": "100209002", "levelBaseAttributesFactors": [ @@ -7901,13 +7901,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100209003, "name": "银隐头饰", - "type": 2, + "position": 2, "quality": 9, "icon": "100209003", "levelBaseAttributesFactors": [ @@ -7986,13 +7986,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100209004, "name": "神羊帽", - "type": 2, + "position": 2, "quality": 9, "icon": "100209004", "levelBaseAttributesFactors": [ @@ -8071,13 +8071,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100209005, "name": "炎火布帽", - "type": 2, + "position": 2, "quality": 9, "icon": "100209005", "levelBaseAttributesFactors": [ @@ -8156,13 +8156,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100210001, "name": "圣战士盔", - "type": 2, + "position": 2, "quality": 10, "icon": "100210001", "levelBaseAttributesFactors": [ @@ -8241,13 +8241,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100210002, "name": "神鹰白帽", - "type": 2, + "position": 2, "quality": 10, "icon": "100210002", "levelBaseAttributesFactors": [ @@ -8326,13 +8326,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100210003, "name": "斗神战盔", - "type": 2, + "position": 2, "quality": 10, "icon": "100210003", "levelBaseAttributesFactors": [ @@ -8411,13 +8411,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100210004, "name": "金鹰战盔", - "type": 2, + "position": 2, "quality": 10, "icon": "100210004", "levelBaseAttributesFactors": [ @@ -8496,13 +8496,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100210005, "name": "糊涂神帽", - "type": 2, + "position": 2, "quality": 10, "icon": "100210005", "levelBaseAttributesFactors": [ @@ -8581,13 +8581,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100301001, "name": "简约齿轮", - "type": 3, + "position": 3, "quality": 1, "icon": "100301001", "levelBaseAttributesFactors": [ @@ -8666,13 +8666,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100301002, "name": "号角项链", - "type": 3, + "position": 3, "quality": 1, "icon": "100301002", "levelBaseAttributesFactors": [ @@ -8751,13 +8751,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100301003, "name": "素朴项链", - "type": 3, + "position": 3, "quality": 1, "icon": "100301003", "levelBaseAttributesFactors": [ @@ -8836,13 +8836,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100301004, "name": "轻盈项链", - "type": 3, + "position": 3, "quality": 1, "icon": "100301004", "levelBaseAttributesFactors": [ @@ -8921,13 +8921,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100301005, "name": "心钥项链", - "type": 3, + "position": 3, "quality": 1, "icon": "100301005", "levelBaseAttributesFactors": [ @@ -9006,13 +9006,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100302001, "name": "自然项链", - "type": 3, + "position": 3, "quality": 2, "icon": "100302001", "levelBaseAttributesFactors": [ @@ -9091,13 +9091,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100302002, "name": "闪耀项链", - "type": 3, + "position": 3, "quality": 2, "icon": "100302002", "levelBaseAttributesFactors": [ @@ -9176,13 +9176,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100302003, "name": "流动护符", - "type": 3, + "position": 3, "quality": 2, "icon": "100302003", "levelBaseAttributesFactors": [ @@ -9261,13 +9261,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100302004, "name": "初星项链", - "type": 3, + "position": 3, "quality": 2, "icon": "100302004", "levelBaseAttributesFactors": [ @@ -9346,13 +9346,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100302005, "name": "星钻项链", - "type": 3, + "position": 3, "quality": 2, "icon": "100302005", "levelBaseAttributesFactors": [ @@ -9431,13 +9431,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100303001, "name": "璀璨项链", - "type": 3, + "position": 3, "quality": 3, "icon": "100303001", "levelBaseAttributesFactors": [ @@ -9516,13 +9516,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100303002, "name": "夜月项链", - "type": 3, + "position": 3, "quality": 3, "icon": "100303002", "levelBaseAttributesFactors": [ @@ -9601,13 +9601,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100303003, "name": "驴面护符", - "type": 3, + "position": 3, "quality": 3, "icon": "100303003", "levelBaseAttributesFactors": [ @@ -9686,13 +9686,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100303004, "name": "灵感项链", - "type": 3, + "position": 3, "quality": 3, "icon": "100303004", "levelBaseAttributesFactors": [ @@ -9771,13 +9771,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100303005, "name": "雕刻护符", - "type": 3, + "position": 3, "quality": 3, "icon": "100303005", "levelBaseAttributesFactors": [ @@ -9856,13 +9856,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100304001, "name": "奇迹护符", - "type": 3, + "position": 3, "quality": 4, "icon": "100304001", "levelBaseAttributesFactors": [ @@ -9941,13 +9941,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100304002, "name": "雅致项链", - "type": 3, + "position": 3, "quality": 4, "icon": "100304002", "levelBaseAttributesFactors": [ @@ -10026,13 +10026,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100304003, "name": "华丽项链", - "type": 3, + "position": 3, "quality": 4, "icon": "100304003", "levelBaseAttributesFactors": [ @@ -10111,13 +10111,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100304004, "name": "唯美项链", - "type": 3, + "position": 3, "quality": 4, "icon": "100304004", "levelBaseAttributesFactors": [ @@ -10196,13 +10196,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100304005, "name": "神秘项链", - "type": 3, + "position": 3, "quality": 4, "icon": "100304005", "levelBaseAttributesFactors": [ @@ -10281,13 +10281,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100305001, "name": "琥珀项链", - "type": 3, + "position": 3, "quality": 5, "icon": "100305001", "levelBaseAttributesFactors": [ @@ -10366,13 +10366,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100305002, "name": "灵魂项链", - "type": 3, + "position": 3, "quality": 5, "icon": "100305002", "levelBaseAttributesFactors": [ @@ -10451,13 +10451,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100305003, "name": "珠光项链", - "type": 3, + "position": 3, "quality": 5, "icon": "100305003", "levelBaseAttributesFactors": [ @@ -10536,13 +10536,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100305004, "name": "飘逸项链", - "type": 3, + "position": 3, "quality": 5, "icon": "100305004", "levelBaseAttributesFactors": [ @@ -10621,13 +10621,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100305005, "name": "妖娆项链", - "type": 3, + "position": 3, "quality": 5, "icon": "100305005", "levelBaseAttributesFactors": [ @@ -10706,13 +10706,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100306001, "name": "魔幻项链", - "type": 3, + "position": 3, "quality": 6, "icon": "100306001", "levelBaseAttributesFactors": [ @@ -10791,13 +10791,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100306002, "name": "金蝉项链", - "type": 3, + "position": 3, "quality": 6, "icon": "100306002", "levelBaseAttributesFactors": [ @@ -10876,13 +10876,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100306003, "name": "奥秘项链", - "type": 3, + "position": 3, "quality": 6, "icon": "100306003", "levelBaseAttributesFactors": [ @@ -10961,13 +10961,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100306004, "name": "灵舞项链", - "type": 3, + "position": 3, "quality": 6, "icon": "100306004", "levelBaseAttributesFactors": [ @@ -11046,13 +11046,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100306005, "name": "典雅项链", - "type": 3, + "position": 3, "quality": 6, "icon": "100306005", "levelBaseAttributesFactors": [ @@ -11131,13 +11131,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100306006, "name": "翼龙之心", - "type": 3, + "position": 3, "quality": 6, "icon": "900306001", "levelBaseAttributesFactors": [ @@ -11216,13 +11216,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100307001, "name": "流行项链", - "type": 3, + "position": 3, "quality": 7, "icon": "100307001", "levelBaseAttributesFactors": [ @@ -11301,13 +11301,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100307002, "name": "幻兽项链", - "type": 3, + "position": 3, "quality": 7, "icon": "100307002", "levelBaseAttributesFactors": [ @@ -11386,13 +11386,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100307003, "name": "黄晶项链", - "type": 3, + "position": 3, "quality": 7, "icon": "100307003", "levelBaseAttributesFactors": [ @@ -11471,13 +11471,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100307004, "name": "轻铃项链", - "type": 3, + "position": 3, "quality": 7, "icon": "100307004", "levelBaseAttributesFactors": [ @@ -11556,13 +11556,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100307005, "name": "奇幻护符", - "type": 3, + "position": 3, "quality": 7, "icon": "100307005", "levelBaseAttributesFactors": [ @@ -11641,13 +11641,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100308001, "name": "碧波项链", - "type": 3, + "position": 3, "quality": 8, "icon": "100308001", "levelBaseAttributesFactors": [ @@ -11726,13 +11726,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100308002, "name": "璨烂项链", - "type": 3, + "position": 3, "quality": 8, "icon": "100308002", "levelBaseAttributesFactors": [ @@ -11811,13 +11811,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100308003, "name": "铁瓜项链", - "type": 3, + "position": 3, "quality": 8, "icon": "100308003", "levelBaseAttributesFactors": [ @@ -11896,13 +11896,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100308004, "name": "雪花项链", - "type": 3, + "position": 3, "quality": 8, "icon": "100308004", "levelBaseAttributesFactors": [ @@ -11981,13 +11981,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100308005, "name": "宝羽项链", - "type": 3, + "position": 3, "quality": 8, "icon": "100308005", "levelBaseAttributesFactors": [ @@ -12066,13 +12066,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100309001, "name": "白羽项链", - "type": 3, + "position": 3, "quality": 9, "icon": "100309001", "levelBaseAttributesFactors": [ @@ -12151,13 +12151,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100309002, "name": "至臻项链", - "type": 3, + "position": 3, "quality": 9, "icon": "100309002", "levelBaseAttributesFactors": [ @@ -12236,13 +12236,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100309003, "name": "细腻项链", - "type": 3, + "position": 3, "quality": 9, "icon": "100309003", "levelBaseAttributesFactors": [ @@ -12321,13 +12321,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100309004, "name": "成就项链", - "type": 3, + "position": 3, "quality": 9, "icon": "100309004", "levelBaseAttributesFactors": [ @@ -12406,13 +12406,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100309005, "name": "舒适项链", - "type": 3, + "position": 3, "quality": 9, "icon": "100309005", "levelBaseAttributesFactors": [ @@ -12491,13 +12491,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100310001, "name": "龙牙项链", - "type": 3, + "position": 3, "quality": 10, "icon": "100310001", "levelBaseAttributesFactors": [ @@ -12576,13 +12576,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100310002, "name": "龙眼项链", - "type": 3, + "position": 3, "quality": 10, "icon": "100310002", "levelBaseAttributesFactors": [ @@ -12661,13 +12661,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100310003, "name": "生命项圈", - "type": 3, + "position": 3, "quality": 10, "icon": "100310003", "levelBaseAttributesFactors": [ @@ -12746,13 +12746,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100310004, "name": "雪山项圈", - "type": 3, + "position": 3, "quality": 10, "icon": "100310004", "levelBaseAttributesFactors": [ @@ -12831,13 +12831,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100310005, "name": "风华项链", - "type": 3, + "position": 3, "quality": 10, "icon": "100310005", "levelBaseAttributesFactors": [ @@ -12916,13 +12916,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100401001, "name": "椰壳护肩", - "type": 4, + "position": 4, "quality": 1, "icon": "100401001", "levelBaseAttributesFactors": [ @@ -13001,13 +13001,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100401002, "name": "陶土护肩", - "type": 4, + "position": 4, "quality": 1, "icon": "100401002", "levelBaseAttributesFactors": [ @@ -13086,13 +13086,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100401003, "name": "粗布护肩", - "type": 4, + "position": 4, "quality": 1, "icon": "100401003", "levelBaseAttributesFactors": [ @@ -13171,13 +13171,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100401004, "name": "兽皮护肩", - "type": 4, + "position": 4, "quality": 1, "icon": "100401004", "levelBaseAttributesFactors": [ @@ -13256,13 +13256,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100401005, "name": "坚石护肩", - "type": 4, + "position": 4, "quality": 1, "icon": "100401005", "levelBaseAttributesFactors": [ @@ -13341,13 +13341,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100402001, "name": "紫金铁肩", - "type": 4, + "position": 4, "quality": 2, "icon": "100402001", "levelBaseAttributesFactors": [ @@ -13426,13 +13426,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100402002, "name": "瓦解护肩", - "type": 4, + "position": 4, "quality": 2, "icon": "100402002", "levelBaseAttributesFactors": [ @@ -13511,13 +13511,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100402003, "name": "花岗岩护肩", - "type": 4, + "position": 4, "quality": 2, "icon": "100402003", "levelBaseAttributesFactors": [ @@ -13596,13 +13596,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100402004, "name": "璀璨护肩", - "type": 4, + "position": 4, "quality": 2, "icon": "100402004", "levelBaseAttributesFactors": [ @@ -13681,13 +13681,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100402005, "name": "神丝护肩", - "type": 4, + "position": 4, "quality": 2, "icon": "100402005", "levelBaseAttributesFactors": [ @@ -13766,13 +13766,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100403001, "name": "翡光护肩", - "type": 4, + "position": 4, "quality": 3, "icon": "100403001", "levelBaseAttributesFactors": [ @@ -13851,13 +13851,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100403002, "name": "奥术护肩", - "type": 4, + "position": 4, "quality": 3, "icon": "100403002", "levelBaseAttributesFactors": [ @@ -13936,13 +13936,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100403003, "name": "铁脊护肩", - "type": 4, + "position": 4, "quality": 3, "icon": "100403003", "levelBaseAttributesFactors": [ @@ -14021,13 +14021,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100403004, "name": "暗翡护肩", - "type": 4, + "position": 4, "quality": 3, "icon": "100403004", "levelBaseAttributesFactors": [ @@ -14106,13 +14106,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100403005, "name": "尖齿护肩", - "type": 4, + "position": 4, "quality": 3, "icon": "100403005", "levelBaseAttributesFactors": [ @@ -14191,13 +14191,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100404001, "name": "雷霆护肩", - "type": 4, + "position": 4, "quality": 4, "icon": "100404001", "levelBaseAttributesFactors": [ @@ -14276,13 +14276,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100404002, "name": "翡翠护肩", - "type": 4, + "position": 4, "quality": 4, "icon": "100404002", "levelBaseAttributesFactors": [ @@ -14361,13 +14361,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100404003, "name": "红玉护肩", - "type": 4, + "position": 4, "quality": 4, "icon": "100404003", "levelBaseAttributesFactors": [ @@ -14446,13 +14446,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100404004, "name": "黑铁护肩", - "type": 4, + "position": 4, "quality": 4, "icon": "100404004", "levelBaseAttributesFactors": [ @@ -14531,13 +14531,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100404005, "name": "暗夜护肩", - "type": 4, + "position": 4, "quality": 4, "icon": "100404005", "levelBaseAttributesFactors": [ @@ -14616,13 +14616,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100405001, "name": "黄金护肩", - "type": 4, + "position": 4, "quality": 5, "icon": "100405001", "levelBaseAttributesFactors": [ @@ -14701,13 +14701,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100405002, "name": "神谕护肩", - "type": 4, + "position": 4, "quality": 5, "icon": "100405002", "levelBaseAttributesFactors": [ @@ -14786,13 +14786,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100405003, "name": "厄运护肩", - "type": 4, + "position": 4, "quality": 5, "icon": "100405003", "levelBaseAttributesFactors": [ @@ -14871,13 +14871,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100405004, "name": "碎骨护肩", - "type": 4, + "position": 4, "quality": 5, "icon": "100405004", "levelBaseAttributesFactors": [ @@ -14956,13 +14956,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100405005, "name": "炼金护肩", - "type": 4, + "position": 4, "quality": 5, "icon": "100405005", "levelBaseAttributesFactors": [ @@ -15041,13 +15041,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100406001, "name": "黄金圆肩", - "type": 4, + "position": 4, "quality": 6, "icon": "100406001", "levelBaseAttributesFactors": [ @@ -15126,13 +15126,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100406002, "name": "神圣护肩", - "type": 4, + "position": 4, "quality": 6, "icon": "100406002", "levelBaseAttributesFactors": [ @@ -15211,13 +15211,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100406003, "name": "圣灵护肩", - "type": 4, + "position": 4, "quality": 6, "icon": "100406003", "levelBaseAttributesFactors": [ @@ -15296,13 +15296,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100406004, "name": "潮汐护肩", - "type": 4, + "position": 4, "quality": 6, "icon": "100406004", "levelBaseAttributesFactors": [ @@ -15381,13 +15381,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100406005, "name": "奥丁之威", - "type": 4, + "position": 4, "quality": 6, "icon": "100406005", "levelBaseAttributesFactors": [ @@ -15466,13 +15466,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100407001, "name": "魔龙护肩", - "type": 4, + "position": 4, "quality": 7, "icon": "100407001", "levelBaseAttributesFactors": [ @@ -15551,13 +15551,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100407002, "name": "碧空护肩", - "type": 4, + "position": 4, "quality": 7, "icon": "100407002", "levelBaseAttributesFactors": [ @@ -15636,13 +15636,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100407003, "name": "神赐护肩", - "type": 4, + "position": 4, "quality": 7, "icon": "100407003", "levelBaseAttributesFactors": [ @@ -15721,13 +15721,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100407004, "name": "暗影之翼", - "type": 4, + "position": 4, "quality": 7, "icon": "100407004", "levelBaseAttributesFactors": [ @@ -15806,13 +15806,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100407005, "name": "天崩护肩", - "type": 4, + "position": 4, "quality": 7, "icon": "100407005", "levelBaseAttributesFactors": [ @@ -15891,13 +15891,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100408001, "name": "青翼护肩", - "type": 4, + "position": 4, "quality": 8, "icon": "100408001", "levelBaseAttributesFactors": [ @@ -15976,13 +15976,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100408002, "name": "金灵护肩", - "type": 4, + "position": 4, "quality": 8, "icon": "100408002", "levelBaseAttributesFactors": [ @@ -16061,13 +16061,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100408003, "name": "圣金护肩", - "type": 4, + "position": 4, "quality": 8, "icon": "100408003", "levelBaseAttributesFactors": [ @@ -16146,13 +16146,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100408004, "name": "圣光护肩", - "type": 4, + "position": 4, "quality": 8, "icon": "100408004", "levelBaseAttributesFactors": [ @@ -16231,13 +16231,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100408005, "name": "碧海护肩", - "type": 4, + "position": 4, "quality": 8, "icon": "100408005", "levelBaseAttributesFactors": [ @@ -16316,13 +16316,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100409001, "name": "噬魂护肩", - "type": 4, + "position": 4, "quality": 9, "icon": "100409001", "levelBaseAttributesFactors": [ @@ -16401,13 +16401,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100409002, "name": "魔咒护肩", - "type": 4, + "position": 4, "quality": 9, "icon": "100409002", "levelBaseAttributesFactors": [ @@ -16486,13 +16486,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100409003, "name": "烈焰护肩", - "type": 4, + "position": 4, "quality": 9, "icon": "100409003", "levelBaseAttributesFactors": [ @@ -16571,13 +16571,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100409004, "name": "神光护肩", - "type": 4, + "position": 4, "quality": 9, "icon": "100409004", "levelBaseAttributesFactors": [ @@ -16656,13 +16656,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100409005, "name": "巨灵护肩", - "type": 4, + "position": 4, "quality": 9, "icon": "100409005", "levelBaseAttributesFactors": [ @@ -16741,13 +16741,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100410001, "name": "圣天护肩", - "type": 4, + "position": 4, "quality": 10, "icon": "100410001", "levelBaseAttributesFactors": [ @@ -16826,13 +16826,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100410002, "name": "永恒风暴", - "type": 4, + "position": 4, "quality": 10, "icon": "100410002", "levelBaseAttributesFactors": [ @@ -16911,13 +16911,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100410003, "name": "神羽护肩", - "type": 4, + "position": 4, "quality": 10, "icon": "100410003", "levelBaseAttributesFactors": [ @@ -16996,13 +16996,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100410004, "name": "黎明护肩", - "type": 4, + "position": 4, "quality": 10, "icon": "100410004", "levelBaseAttributesFactors": [ @@ -17081,13 +17081,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100410005, "name": "冰霜护肩", - "type": 4, + "position": 4, "quality": 10, "icon": "100410005", "levelBaseAttributesFactors": [ @@ -17166,13 +17166,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100501001, "name": "草编短衣", - "type": 5, + "position": 5, "quality": 1, "icon": "100501001", "levelBaseAttributesFactors": [ @@ -17251,13 +17251,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100501002, "name": "木板护衣", - "type": 5, + "position": 5, "quality": 1, "icon": "100501002", "levelBaseAttributesFactors": [ @@ -17336,13 +17336,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100501003, "name": "粗布马甲", - "type": 5, + "position": 5, "quality": 1, "icon": "100501003", "levelBaseAttributesFactors": [ @@ -17421,13 +17421,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100501004, "name": "细布马甲", - "type": 5, + "position": 5, "quality": 1, "icon": "100501004", "levelBaseAttributesFactors": [ @@ -17506,13 +17506,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100501005, "name": "兽皮马甲", - "type": 5, + "position": 5, "quality": 1, "icon": "100501005", "levelBaseAttributesFactors": [ @@ -17591,13 +17591,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100502001, "name": "绿皮背心", - "type": 5, + "position": 5, "quality": 2, "icon": "100502001", "levelBaseAttributesFactors": [ @@ -17676,13 +17676,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100502002, "name": "粗麻背心", - "type": 5, + "position": 5, "quality": 2, "icon": "100502002", "levelBaseAttributesFactors": [ @@ -17761,13 +17761,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100502003, "name": "缎带背心", - "type": 5, + "position": 5, "quality": 2, "icon": "100502003", "levelBaseAttributesFactors": [ @@ -17846,13 +17846,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100502004, "name": "皮质背心", - "type": 5, + "position": 5, "quality": 2, "icon": "100502004", "levelBaseAttributesFactors": [ @@ -17931,13 +17931,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100502005, "name": "帆布背心", - "type": 5, + "position": 5, "quality": 2, "icon": "100502005", "levelBaseAttributesFactors": [ @@ -18016,13 +18016,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100503001, "name": "织锦背心", - "type": 5, + "position": 5, "quality": 3, "icon": "100503001", "levelBaseAttributesFactors": [ @@ -18101,13 +18101,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100503002, "name": "爱心短衣", - "type": 5, + "position": 5, "quality": 3, "icon": "100503002", "levelBaseAttributesFactors": [ @@ -18186,13 +18186,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100503003, "name": "青花短衣", - "type": 5, + "position": 5, "quality": 3, "icon": "100503003", "levelBaseAttributesFactors": [ @@ -18271,13 +18271,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100503004, "name": "翡色短衣", - "type": 5, + "position": 5, "quality": 3, "icon": "100503004", "levelBaseAttributesFactors": [ @@ -18356,13 +18356,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100503005, "name": "绯红短衣", - "type": 5, + "position": 5, "quality": 3, "icon": "100503005", "levelBaseAttributesFactors": [ @@ -18441,13 +18441,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100504001, "name": "绿丝短褂", - "type": 5, + "position": 5, "quality": 4, "icon": "100504001", "levelBaseAttributesFactors": [ @@ -18526,13 +18526,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100504002, "name": "熊皮短褂", - "type": 5, + "position": 5, "quality": 4, "icon": "100504002", "levelBaseAttributesFactors": [ @@ -18611,13 +18611,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100504003, "name": "血红短衣", - "type": 5, + "position": 5, "quality": 4, "icon": "100504003", "levelBaseAttributesFactors": [ @@ -18696,13 +18696,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100504004, "name": "舞狮服", - "type": 5, + "position": 5, "quality": 4, "icon": "100504004", "levelBaseAttributesFactors": [ @@ -18781,13 +18781,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100504005, "name": "白云短衣", - "type": 5, + "position": 5, "quality": 4, "icon": "100504005", "levelBaseAttributesFactors": [ @@ -18866,13 +18866,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100505001, "name": "钢板短衣", - "type": 5, + "position": 5, "quality": 5, "icon": "100505001", "levelBaseAttributesFactors": [ @@ -18951,13 +18951,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100505002, "name": "金星短衣", - "type": 5, + "position": 5, "quality": 5, "icon": "100505002", "levelBaseAttributesFactors": [ @@ -19036,13 +19036,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100505003, "name": "丝绸短褂", - "type": 5, + "position": 5, "quality": 5, "icon": "100505003", "levelBaseAttributesFactors": [ @@ -19121,13 +19121,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100505004, "name": "白灵短衣", - "type": 5, + "position": 5, "quality": 5, "icon": "100505004", "levelBaseAttributesFactors": [ @@ -19206,13 +19206,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100505005, "name": "厚土上衣", - "type": 5, + "position": 5, "quality": 5, "icon": "100505005", "levelBaseAttributesFactors": [ @@ -19291,13 +19291,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100506001, "name": "银白铁铠", - "type": 5, + "position": 5, "quality": 6, "icon": "100506001", "levelBaseAttributesFactors": [ @@ -19376,13 +19376,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100506002, "name": "斑马短衣", - "type": 5, + "position": 5, "quality": 6, "icon": "100506002", "levelBaseAttributesFactors": [ @@ -19461,13 +19461,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100506003, "name": "兽牙短衣", - "type": 5, + "position": 5, "quality": 6, "icon": "100506003", "levelBaseAttributesFactors": [ @@ -19546,13 +19546,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100506004, "name": "铜板短衣", - "type": 5, + "position": 5, "quality": 6, "icon": "100506004", "levelBaseAttributesFactors": [ @@ -19631,13 +19631,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100506005, "name": "湖蓝短衣", - "type": 5, + "position": 5, "quality": 6, "icon": "100506005", "levelBaseAttributesFactors": [ @@ -19716,13 +19716,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100506006, "name": "翼龙铠甲", - "type": 5, + "position": 5, "quality": 6, "icon": "900506001", "levelBaseAttributesFactors": [ @@ -19801,13 +19801,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100507001, "name": "圣者短衣", - "type": 5, + "position": 5, "quality": 7, "icon": "100507001", "levelBaseAttributesFactors": [ @@ -19886,13 +19886,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100507002, "name": "玄武护甲", - "type": 5, + "position": 5, "quality": 7, "icon": "100507002", "levelBaseAttributesFactors": [ @@ -19971,13 +19971,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100507003, "name": "骨雕铁甲", - "type": 5, + "position": 5, "quality": 7, "icon": "100507003", "levelBaseAttributesFactors": [ @@ -20056,13 +20056,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100507004, "name": "胡萝卜布甲", - "type": 5, + "position": 5, "quality": 7, "icon": "100507004", "levelBaseAttributesFactors": [ @@ -20141,13 +20141,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100507005, "name": "丝绸衬衫", - "type": 5, + "position": 5, "quality": 7, "icon": "100507005", "levelBaseAttributesFactors": [ @@ -20226,13 +20226,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100508001, "name": "黄绸短衣", - "type": 5, + "position": 5, "quality": 8, "icon": "100508001", "levelBaseAttributesFactors": [ @@ -20311,13 +20311,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100508002, "name": "白骨铁铠", - "type": 5, + "position": 5, "quality": 8, "icon": "100508002", "levelBaseAttributesFactors": [ @@ -20396,13 +20396,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100508003, "name": "振奋背心", - "type": 5, + "position": 5, "quality": 8, "icon": "100508003", "levelBaseAttributesFactors": [ @@ -20481,13 +20481,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100508004, "name": "神圣护胸", - "type": 5, + "position": 5, "quality": 8, "icon": "100508004", "levelBaseAttributesFactors": [ @@ -20566,13 +20566,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100508005, "name": "白银铠甲", - "type": 5, + "position": 5, "quality": 8, "icon": "100508005", "levelBaseAttributesFactors": [ @@ -20651,13 +20651,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100509001, "name": "星辰铠甲", - "type": 5, + "position": 5, "quality": 9, "icon": "100509001", "levelBaseAttributesFactors": [ @@ -20736,13 +20736,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100509002, "name": "巨岩铠甲", - "type": 5, + "position": 5, "quality": 9, "icon": "100509002", "levelBaseAttributesFactors": [ @@ -20821,13 +20821,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100509003, "name": "狼王铠甲", - "type": 5, + "position": 5, "quality": 9, "icon": "100509003", "levelBaseAttributesFactors": [ @@ -20906,13 +20906,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100509004, "name": "祭祀战甲", - "type": 5, + "position": 5, "quality": 9, "icon": "100509004", "levelBaseAttributesFactors": [ @@ -20991,13 +20991,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100509005, "name": "祝福铠甲", - "type": 5, + "position": 5, "quality": 9, "icon": "100509005", "levelBaseAttributesFactors": [ @@ -21076,13 +21076,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100510001, "name": "真言铠甲", - "type": 5, + "position": 5, "quality": 10, "icon": "100510001", "levelBaseAttributesFactors": [ @@ -21161,13 +21161,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100510002, "name": "钻石宝甲", - "type": 5, + "position": 5, "quality": 10, "icon": "100510002", "levelBaseAttributesFactors": [ @@ -21246,13 +21246,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100510003, "name": "永恒长衣", - "type": 5, + "position": 5, "quality": 10, "icon": "100510003", "levelBaseAttributesFactors": [ @@ -21331,13 +21331,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100510004, "name": "苍穹战甲", - "type": 5, + "position": 5, "quality": 10, "icon": "100510004", "levelBaseAttributesFactors": [ @@ -21416,13 +21416,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100510005, "name": "龙鳞战甲", - "type": 5, + "position": 5, "quality": 10, "icon": "100510005", "levelBaseAttributesFactors": [ @@ -21501,13 +21501,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100601001, "name": "粗草腰带", - "type": 6, + "position": 6, "quality": 1, "icon": "100601001", "levelBaseAttributesFactors": [ @@ -21586,13 +21586,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100601002, "name": "木制腰带", - "type": 6, + "position": 6, "quality": 1, "icon": "100601002", "levelBaseAttributesFactors": [ @@ -21671,13 +21671,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100601003, "name": "粗布腰带", - "type": 6, + "position": 6, "quality": 1, "icon": "100601003", "levelBaseAttributesFactors": [ @@ -21756,13 +21756,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100601004, "name": "皮质腰带", - "type": 6, + "position": 6, "quality": 1, "icon": "100601004", "levelBaseAttributesFactors": [ @@ -21841,13 +21841,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100601005, "name": "兽皮腰带", - "type": 6, + "position": 6, "quality": 1, "icon": "100601005", "levelBaseAttributesFactors": [ @@ -21926,13 +21926,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100602001, "name": "细皮带", - "type": 6, + "position": 6, "quality": 2, "icon": "100602001", "levelBaseAttributesFactors": [ @@ -22011,13 +22011,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100602002, "name": "红木腰带", - "type": 6, + "position": 6, "quality": 2, "icon": "100602002", "levelBaseAttributesFactors": [ @@ -22096,13 +22096,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100602003, "name": "红绸皮带", - "type": 6, + "position": 6, "quality": 2, "icon": "100602003", "levelBaseAttributesFactors": [ @@ -22181,13 +22181,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100602004, "name": "古藤腰带", - "type": 6, + "position": 6, "quality": 2, "icon": "100602004", "levelBaseAttributesFactors": [ @@ -22266,13 +22266,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100602005, "name": "丝绸束带", - "type": 6, + "position": 6, "quality": 2, "icon": "100602005", "levelBaseAttributesFactors": [ @@ -22351,13 +22351,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100603001, "name": "黑铁腰带", - "type": 6, + "position": 6, "quality": 3, "icon": "100603001", "levelBaseAttributesFactors": [ @@ -22436,13 +22436,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100603002, "name": "皮革束带", - "type": 6, + "position": 6, "quality": 3, "icon": "100603002", "levelBaseAttributesFactors": [ @@ -22521,13 +22521,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100603003, "name": "蛇扣腰带", - "type": 6, + "position": 6, "quality": 3, "icon": "100603003", "levelBaseAttributesFactors": [ @@ -22606,13 +22606,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100603004, "name": "金丝扣带", - "type": 6, + "position": 6, "quality": 3, "icon": "100603004", "levelBaseAttributesFactors": [ @@ -22691,13 +22691,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100603005, "name": "黑蛛丝带", - "type": 6, + "position": 6, "quality": 3, "icon": "100603005", "levelBaseAttributesFactors": [ @@ -22776,13 +22776,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100604001, "name": "绿绸束带", - "type": 6, + "position": 6, "quality": 4, "icon": "100604001", "levelBaseAttributesFactors": [ @@ -22861,13 +22861,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100604002, "name": "尖齿腰带", - "type": 6, + "position": 6, "quality": 4, "icon": "100604002", "levelBaseAttributesFactors": [ @@ -22946,13 +22946,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100604003, "name": "白蟒腰带", - "type": 6, + "position": 6, "quality": 4, "icon": "100604003", "levelBaseAttributesFactors": [ @@ -23031,13 +23031,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100604004, "name": "银扣腰带", - "type": 6, + "position": 6, "quality": 4, "icon": "100604004", "levelBaseAttributesFactors": [ @@ -23116,13 +23116,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100604005, "name": "翡翠环带", - "type": 6, + "position": 6, "quality": 4, "icon": "100604005", "levelBaseAttributesFactors": [ @@ -23201,13 +23201,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100605001, "name": "火炎束带", - "type": 6, + "position": 6, "quality": 5, "icon": "100605001", "levelBaseAttributesFactors": [ @@ -23286,13 +23286,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100605002, "name": "琉璃束带", - "type": 6, + "position": 6, "quality": 5, "icon": "100605002", "levelBaseAttributesFactors": [ @@ -23371,13 +23371,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100605003, "name": "红绸束带", - "type": 6, + "position": 6, "quality": 5, "icon": "100605003", "levelBaseAttributesFactors": [ @@ -23456,13 +23456,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100605004, "name": "紫金蟒皮带", - "type": 6, + "position": 6, "quality": 5, "icon": "100605004", "levelBaseAttributesFactors": [ @@ -23541,13 +23541,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100605005, "name": "火焰蟒皮带", - "type": 6, + "position": 6, "quality": 5, "icon": "100605005", "levelBaseAttributesFactors": [ @@ -23626,13 +23626,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100606001, "name": "术者腰带", - "type": 6, + "position": 6, "quality": 6, "icon": "100606001", "levelBaseAttributesFactors": [ @@ -23711,13 +23711,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100606002, "name": "萨满腰带", - "type": 6, + "position": 6, "quality": 6, "icon": "100606002", "levelBaseAttributesFactors": [ @@ -23796,13 +23796,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100606003, "name": "黒翎羽带", - "type": 6, + "position": 6, "quality": 6, "icon": "100606003", "levelBaseAttributesFactors": [ @@ -23881,13 +23881,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100606004, "name": "绿林束带", - "type": 6, + "position": 6, "quality": 6, "icon": "100606004", "levelBaseAttributesFactors": [ @@ -23966,13 +23966,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100606005, "name": "多功能腰带", - "type": 6, + "position": 6, "quality": 6, "icon": "100606005", "levelBaseAttributesFactors": [ @@ -24051,13 +24051,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100607001, "name": "蓝魔腰带", - "type": 6, + "position": 6, "quality": 7, "icon": "100607001", "levelBaseAttributesFactors": [ @@ -24136,13 +24136,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100607002, "name": "土司腰带", - "type": 6, + "position": 6, "quality": 7, "icon": "100607002", "levelBaseAttributesFactors": [ @@ -24221,13 +24221,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100607003, "name": "勇者腰带", - "type": 6, + "position": 6, "quality": 7, "icon": "100607003", "levelBaseAttributesFactors": [ @@ -24306,13 +24306,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100607004, "name": "名将腰带", - "type": 6, + "position": 6, "quality": 7, "icon": "100607004", "levelBaseAttributesFactors": [ @@ -24391,13 +24391,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100607005, "name": "环佩腰带", - "type": 6, + "position": 6, "quality": 7, "icon": "100607005", "levelBaseAttributesFactors": [ @@ -24476,13 +24476,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100608001, "name": "金牌皮带", - "type": 6, + "position": 6, "quality": 8, "icon": "100608001", "levelBaseAttributesFactors": [ @@ -24561,13 +24561,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100608002, "name": "圣金腰带", - "type": 6, + "position": 6, "quality": 8, "icon": "100608002", "levelBaseAttributesFactors": [ @@ -24646,13 +24646,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100608003, "name": "宝石腰带", - "type": 6, + "position": 6, "quality": 8, "icon": "100608003", "levelBaseAttributesFactors": [ @@ -24731,13 +24731,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100608004, "name": "炎星腰带", - "type": 6, + "position": 6, "quality": 8, "icon": "100608004", "levelBaseAttributesFactors": [ @@ -24816,13 +24816,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100608005, "name": "幽冥腰带", - "type": 6, + "position": 6, "quality": 8, "icon": "100608005", "levelBaseAttributesFactors": [ @@ -24901,13 +24901,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100609001, "name": "白银护腰", - "type": 6, + "position": 6, "quality": 9, "icon": "100609001", "levelBaseAttributesFactors": [ @@ -24986,13 +24986,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100609002, "name": "法老腰带", - "type": 6, + "position": 6, "quality": 9, "icon": "100609002", "levelBaseAttributesFactors": [ @@ -25071,13 +25071,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100609003, "name": "白魔腰带", - "type": 6, + "position": 6, "quality": 9, "icon": "100609003", "levelBaseAttributesFactors": [ @@ -25156,13 +25156,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100609004, "name": "骨雕腰带", - "type": 6, + "position": 6, "quality": 9, "icon": "100609004", "levelBaseAttributesFactors": [ @@ -25241,13 +25241,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100609005, "name": "雷霆腰带", - "type": 6, + "position": 6, "quality": 9, "icon": "100609005", "levelBaseAttributesFactors": [ @@ -25326,13 +25326,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100610001, "name": "白云腰带", - "type": 6, + "position": 6, "quality": 10, "icon": "100610001", "levelBaseAttributesFactors": [ @@ -25411,13 +25411,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100610002, "name": "爱神腰带", - "type": 6, + "position": 6, "quality": 10, "icon": "100610002", "levelBaseAttributesFactors": [ @@ -25496,13 +25496,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100610003, "name": "天使腰带", - "type": 6, + "position": 6, "quality": 10, "icon": "100610003", "levelBaseAttributesFactors": [ @@ -25581,13 +25581,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100610004, "name": "魔龙腰带", - "type": 6, + "position": 6, "quality": 10, "icon": "100610004", "levelBaseAttributesFactors": [ @@ -25666,13 +25666,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100610005, "name": "永恒腰带", - "type": 6, + "position": 6, "quality": 10, "icon": "100610005", "levelBaseAttributesFactors": [ @@ -25751,13 +25751,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100701001, "name": "粗布手带", - "type": 7, + "position": 7, "quality": 1, "icon": "100701001", "levelBaseAttributesFactors": [ @@ -25836,13 +25836,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100701002, "name": "真丝手带", - "type": 7, + "position": 7, "quality": 1, "icon": "100701002", "levelBaseAttributesFactors": [ @@ -25921,13 +25921,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100702001, "name": "缎带护手", - "type": 7, + "position": 7, "quality": 2, "icon": "100702001", "levelBaseAttributesFactors": [ @@ -26006,13 +26006,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100702002, "name": "厚丝护手", - "type": 7, + "position": 7, "quality": 2, "icon": "100702002", "levelBaseAttributesFactors": [ @@ -26091,13 +26091,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100703001, "name": "青铜护腕", - "type": 7, + "position": 7, "quality": 3, "icon": "100703001", "levelBaseAttributesFactors": [ @@ -26176,13 +26176,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100703002, "name": "白银护腕", - "type": 7, + "position": 7, "quality": 3, "icon": "100703002", "levelBaseAttributesFactors": [ @@ -26261,13 +26261,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100704001, "name": "兽皮手套", - "type": 7, + "position": 7, "quality": 4, "icon": "100704001", "levelBaseAttributesFactors": [ @@ -26346,13 +26346,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100704002, "name": "巨岩手套", - "type": 7, + "position": 7, "quality": 4, "icon": "100704002", "levelBaseAttributesFactors": [ @@ -26431,13 +26431,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100705001, "name": "红心拳套", - "type": 7, + "position": 7, "quality": 5, "icon": "100705001", "levelBaseAttributesFactors": [ @@ -26516,13 +26516,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100705002, "name": "礼节手套", - "type": 7, + "position": 7, "quality": 5, "icon": "100705002", "levelBaseAttributesFactors": [ @@ -26601,13 +26601,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100706001, "name": "钢铁护手", - "type": 7, + "position": 7, "quality": 6, "icon": "100706001", "levelBaseAttributesFactors": [ @@ -26686,13 +26686,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100706002, "name": "白银护手", - "type": 7, + "position": 7, "quality": 6, "icon": "100706002", "levelBaseAttributesFactors": [ @@ -26771,13 +26771,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100707001, "name": "神龙护腕", - "type": 7, + "position": 7, "quality": 7, "icon": "100707001", "levelBaseAttributesFactors": [ @@ -26856,13 +26856,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100707002, "name": "神圣护腕", - "type": 7, + "position": 7, "quality": 7, "icon": "100707002", "levelBaseAttributesFactors": [ @@ -26941,13 +26941,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100708001, "name": "巨魔拳套", - "type": 7, + "position": 7, "quality": 8, "icon": "100708001", "levelBaseAttributesFactors": [ @@ -27026,13 +27026,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100708002, "name": "雷霆拳套", - "type": 7, + "position": 7, "quality": 8, "icon": "100708002", "levelBaseAttributesFactors": [ @@ -27111,13 +27111,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100709001, "name": "暗夜之爪", - "type": 7, + "position": 7, "quality": 9, "icon": "100709001", "levelBaseAttributesFactors": [ @@ -27196,13 +27196,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100709002, "name": "血红之爪", - "type": 7, + "position": 7, "quality": 9, "icon": "100709002", "levelBaseAttributesFactors": [ @@ -27281,13 +27281,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100710001, "name": "魔灵手套", - "type": 7, + "position": 7, "quality": 10, "icon": "100710001", "levelBaseAttributesFactors": [ @@ -27366,13 +27366,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100710002, "name": "天使手套", - "type": 7, + "position": 7, "quality": 10, "icon": "100710002", "levelBaseAttributesFactors": [ @@ -27451,13 +27451,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100801001, "name": "草环戒指", - "type": 8, + "position": 8, "quality": 1, "icon": "100801001", "levelBaseAttributesFactors": [ @@ -27536,13 +27536,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100801002, "name": "粗布戒指", - "type": 8, + "position": 8, "quality": 1, "icon": "100801002", "levelBaseAttributesFactors": [ @@ -27621,13 +27621,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100801003, "name": "丝绸戒指", - "type": 8, + "position": 8, "quality": 1, "icon": "100801003", "levelBaseAttributesFactors": [ @@ -27706,13 +27706,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100801004, "name": "铁环戒指", - "type": 8, + "position": 8, "quality": 1, "icon": "100801004", "levelBaseAttributesFactors": [ @@ -27791,13 +27791,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100801005, "name": "青铜戒指", - "type": 8, + "position": 8, "quality": 1, "icon": "100801005", "levelBaseAttributesFactors": [ @@ -27876,13 +27876,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100802001, "name": "神藤指环", - "type": 8, + "position": 8, "quality": 2, "icon": "100802001", "levelBaseAttributesFactors": [ @@ -27961,13 +27961,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100802002, "name": "古朴戒指", - "type": 8, + "position": 8, "quality": 2, "icon": "100802002", "levelBaseAttributesFactors": [ @@ -28046,13 +28046,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100802003, "name": "翠绿指环", - "type": 8, + "position": 8, "quality": 2, "icon": "100802003", "levelBaseAttributesFactors": [ @@ -28131,13 +28131,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100802004, "name": "绿魔指环", - "type": 8, + "position": 8, "quality": 2, "icon": "100802004", "levelBaseAttributesFactors": [ @@ -28216,13 +28216,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100802005, "name": "骨雕指环", - "type": 8, + "position": 8, "quality": 2, "icon": "100802005", "levelBaseAttributesFactors": [ @@ -28301,13 +28301,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100803001, "name": "幽暗指环", - "type": 8, + "position": 8, "quality": 3, "icon": "100803001", "levelBaseAttributesFactors": [ @@ -28386,13 +28386,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100803002, "name": "宝石戒指", - "type": 8, + "position": 8, "quality": 3, "icon": "100803002", "levelBaseAttributesFactors": [ @@ -28471,13 +28471,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100803003, "name": "重环戒指", - "type": 8, + "position": 8, "quality": 3, "icon": "100803003", "levelBaseAttributesFactors": [ @@ -28556,13 +28556,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100803004, "name": "白银宝戒", - "type": 8, + "position": 8, "quality": 3, "icon": "100803004", "levelBaseAttributesFactors": [ @@ -28641,13 +28641,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100803005, "name": "龙鳞指环", - "type": 8, + "position": 8, "quality": 3, "icon": "100803005", "levelBaseAttributesFactors": [ @@ -28726,13 +28726,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100804001, "name": "金星银戒", - "type": 8, + "position": 8, "quality": 4, "icon": "100804001", "levelBaseAttributesFactors": [ @@ -28811,13 +28811,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100804002, "name": "符咒指环", - "type": 8, + "position": 8, "quality": 4, "icon": "100804002", "levelBaseAttributesFactors": [ @@ -28896,13 +28896,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100804003, "name": "巨岩戒指", - "type": 8, + "position": 8, "quality": 4, "icon": "100804003", "levelBaseAttributesFactors": [ @@ -28981,13 +28981,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100804004, "name": "红丸骨戒", - "type": 8, + "position": 8, "quality": 4, "icon": "100804004", "levelBaseAttributesFactors": [ @@ -29066,13 +29066,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100804005, "name": "祝福宝戒", - "type": 8, + "position": 8, "quality": 4, "icon": "100804005", "levelBaseAttributesFactors": [ @@ -29151,13 +29151,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100805001, "name": "龙血指环", - "type": 8, + "position": 8, "quality": 5, "icon": "100805001", "levelBaseAttributesFactors": [ @@ -29236,13 +29236,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100805002, "name": "闪晶金戒", - "type": 8, + "position": 8, "quality": 5, "icon": "100805002", "levelBaseAttributesFactors": [ @@ -29321,13 +29321,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100805003, "name": "龙翼指环", - "type": 8, + "position": 8, "quality": 5, "icon": "100805003", "levelBaseAttributesFactors": [ @@ -29406,13 +29406,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100805004, "name": "鲜橙指环", - "type": 8, + "position": 8, "quality": 5, "icon": "100805004", "levelBaseAttributesFactors": [ @@ -29491,13 +29491,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100805005, "name": "爱神指环", - "type": 8, + "position": 8, "quality": 5, "icon": "100805005", "levelBaseAttributesFactors": [ @@ -29576,13 +29576,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100806001, "name": "黄金宝戒", - "type": 8, + "position": 8, "quality": 6, "icon": "100806001", "levelBaseAttributesFactors": [ @@ -29661,13 +29661,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100806002, "name": "骨骰指环", - "type": 8, + "position": 8, "quality": 6, "icon": "100806002", "levelBaseAttributesFactors": [ @@ -29746,13 +29746,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100806003, "name": "水晶心戒", - "type": 8, + "position": 8, "quality": 6, "icon": "100806003", "levelBaseAttributesFactors": [ @@ -29831,13 +29831,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100806004, "name": "厚土重戒", - "type": 8, + "position": 8, "quality": 6, "icon": "100806004", "levelBaseAttributesFactors": [ @@ -29916,13 +29916,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100806005, "name": "神果指环", - "type": 8, + "position": 8, "quality": 6, "icon": "100806005", "levelBaseAttributesFactors": [ @@ -30001,13 +30001,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100807001, "name": "魔血指环", - "type": 8, + "position": 8, "quality": 7, "icon": "100807001", "levelBaseAttributesFactors": [ @@ -30086,13 +30086,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100807002, "name": "神圣戒指", - "type": 8, + "position": 8, "quality": 7, "icon": "100807002", "levelBaseAttributesFactors": [ @@ -30171,13 +30171,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100807003, "name": "兽神指环", - "type": 8, + "position": 8, "quality": 7, "icon": "100807003", "levelBaseAttributesFactors": [ @@ -30256,13 +30256,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100807004, "name": "苍穹指环", - "type": 8, + "position": 8, "quality": 7, "icon": "100807004", "levelBaseAttributesFactors": [ @@ -30341,13 +30341,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100807005, "name": "琉璃指环", - "type": 8, + "position": 8, "quality": 7, "icon": "100807005", "levelBaseAttributesFactors": [ @@ -30426,13 +30426,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100808001, "name": "金龟戒指", - "type": 8, + "position": 8, "quality": 8, "icon": "100808001", "levelBaseAttributesFactors": [ @@ -30511,13 +30511,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100808002, "name": "霜华戒指", - "type": 8, + "position": 8, "quality": 8, "icon": "100808002", "levelBaseAttributesFactors": [ @@ -30596,13 +30596,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100808003, "name": "魔神指环", - "type": 8, + "position": 8, "quality": 8, "icon": "100808003", "levelBaseAttributesFactors": [ @@ -30681,13 +30681,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100808004, "name": "战神指环", - "type": 8, + "position": 8, "quality": 8, "icon": "100808004", "levelBaseAttributesFactors": [ @@ -30766,13 +30766,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100808005, "name": "箭神戒指", - "type": 8, + "position": 8, "quality": 8, "icon": "100808005", "levelBaseAttributesFactors": [ @@ -30851,13 +30851,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100809001, "name": "圣者戒指", - "type": 8, + "position": 8, "quality": 9, "icon": "100809001", "levelBaseAttributesFactors": [ @@ -30936,13 +30936,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100809002, "name": "星辰戒指", - "type": 8, + "position": 8, "quality": 9, "icon": "100809002", "levelBaseAttributesFactors": [ @@ -31021,13 +31021,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100809003, "name": "胡萝卜神戒", - "type": 8, + "position": 8, "quality": 9, "icon": "100809003", "levelBaseAttributesFactors": [ @@ -31106,13 +31106,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100809004, "name": "永恒神戒", - "type": 8, + "position": 8, "quality": 9, "icon": "100809004", "levelBaseAttributesFactors": [ @@ -31191,13 +31191,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100809005, "name": "神云戒指", - "type": 8, + "position": 8, "quality": 9, "icon": "100809005", "levelBaseAttributesFactors": [ @@ -31276,13 +31276,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100810001, "name": "武圣指环", - "type": 8, + "position": 8, "quality": 10, "icon": "100810001", "levelBaseAttributesFactors": [ @@ -31361,13 +31361,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100810002, "name": "云神指环", - "type": 8, + "position": 8, "quality": 10, "icon": "100810002", "levelBaseAttributesFactors": [ @@ -31446,13 +31446,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100810003, "name": "龙眼指环", - "type": 8, + "position": 8, "quality": 10, "icon": "100810003", "levelBaseAttributesFactors": [ @@ -31531,13 +31531,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100810004, "name": "圣天使神戒", - "type": 8, + "position": 8, "quality": 10, "icon": "100810004", "levelBaseAttributesFactors": [ @@ -31616,13 +31616,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100810005, "name": "天神指环", - "type": 8, + "position": 8, "quality": 10, "icon": "100810005", "levelBaseAttributesFactors": [ @@ -31701,13 +31701,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100901001, "name": "粗布短裤", - "type": 9, + "position": 9, "quality": 1, "icon": "100901001", "levelBaseAttributesFactors": [ @@ -31786,13 +31786,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100901002, "name": "皮革短裤", - "type": 9, + "position": 9, "quality": 1, "icon": "100901002", "levelBaseAttributesFactors": [ @@ -31871,13 +31871,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100901003, "name": "丝绸短裤", - "type": 9, + "position": 9, "quality": 1, "icon": "100901003", "levelBaseAttributesFactors": [ @@ -31956,13 +31956,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100902001, "name": "简约裙裤", - "type": 9, + "position": 9, "quality": 2, "icon": "100902001", "levelBaseAttributesFactors": [ @@ -32041,13 +32041,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100902002, "name": "绿丝短裤", - "type": 9, + "position": 9, "quality": 2, "icon": "100902002", "levelBaseAttributesFactors": [ @@ -32126,13 +32126,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100902003, "name": "铁皮短裤", - "type": 9, + "position": 9, "quality": 2, "icon": "100902003", "levelBaseAttributesFactors": [ @@ -32211,13 +32211,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100903001, "name": "翡翠布裤", - "type": 9, + "position": 9, "quality": 3, "icon": "100903001", "levelBaseAttributesFactors": [ @@ -32296,13 +32296,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100903002, "name": "雕纹短裤", - "type": 9, + "position": 9, "quality": 3, "icon": "100903002", "levelBaseAttributesFactors": [ @@ -32381,13 +32381,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100903003, "name": "绿丝皮裤", - "type": 9, + "position": 9, "quality": 3, "icon": "100903003", "levelBaseAttributesFactors": [ @@ -32466,13 +32466,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100904001, "name": "真丝束腿", - "type": 9, + "position": 9, "quality": 4, "icon": "100904001", "levelBaseAttributesFactors": [ @@ -32551,13 +32551,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100904002, "name": "双护腰束腿", - "type": 9, + "position": 9, "quality": 4, "icon": "100904002", "levelBaseAttributesFactors": [ @@ -32636,13 +32636,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100904003, "name": "紫水晶下装", - "type": 9, + "position": 9, "quality": 4, "icon": "100904003", "levelBaseAttributesFactors": [ @@ -32721,13 +32721,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100905001, "name": "绿缎带束腿", - "type": 9, + "position": 9, "quality": 5, "icon": "100905001", "levelBaseAttributesFactors": [ @@ -32806,13 +32806,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100905002, "name": "绅士短裤", - "type": 9, + "position": 9, "quality": 5, "icon": "100905002", "levelBaseAttributesFactors": [ @@ -32891,13 +32891,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100905003, "name": "勇者短裤", - "type": 9, + "position": 9, "quality": 5, "icon": "100905003", "levelBaseAttributesFactors": [ @@ -32976,13 +32976,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100905004, "name": "金丝短裤", - "type": 9, + "position": 9, "quality": 5, "icon": "100905004", "levelBaseAttributesFactors": [ @@ -33061,13 +33061,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100906001, "name": "战士短裤", - "type": 9, + "position": 9, "quality": 6, "icon": "100906001", "levelBaseAttributesFactors": [ @@ -33146,13 +33146,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100906002, "name": "魔法短裤", - "type": 9, + "position": 9, "quality": 6, "icon": "100906002", "levelBaseAttributesFactors": [ @@ -33231,13 +33231,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100906003, "name": "魔灵短裤", - "type": 9, + "position": 9, "quality": 6, "icon": "100906003", "levelBaseAttributesFactors": [ @@ -33316,13 +33316,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100906004, "name": "冒险者短裤", - "type": 9, + "position": 9, "quality": 6, "icon": "100906004", "levelBaseAttributesFactors": [ @@ -33401,13 +33401,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100907001, "name": "旅行者短裤", - "type": 9, + "position": 9, "quality": 7, "icon": "100907001", "levelBaseAttributesFactors": [ @@ -33486,13 +33486,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100907002, "name": "轻巧短裤", - "type": 9, + "position": 9, "quality": 7, "icon": "100907002", "levelBaseAttributesFactors": [ @@ -33571,13 +33571,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100907003, "name": "龙鳞短裤", - "type": 9, + "position": 9, "quality": 7, "icon": "100907003", "levelBaseAttributesFactors": [ @@ -33656,13 +33656,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100907004, "name": "魔术师短裤", - "type": 9, + "position": 9, "quality": 7, "icon": "100907004", "levelBaseAttributesFactors": [ @@ -33741,13 +33741,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100908001, "name": "神秘短裤", - "type": 9, + "position": 9, "quality": 8, "icon": "100908001", "levelBaseAttributesFactors": [ @@ -33826,13 +33826,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100908002, "name": "虚空短裤", - "type": 9, + "position": 9, "quality": 8, "icon": "100908002", "levelBaseAttributesFactors": [ @@ -33911,13 +33911,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100908003, "name": "红魔短裤", - "type": 9, + "position": 9, "quality": 8, "icon": "100908003", "levelBaseAttributesFactors": [ @@ -33996,13 +33996,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100908004, "name": "神圣短裤", - "type": 9, + "position": 9, "quality": 8, "icon": "100908004", "levelBaseAttributesFactors": [ @@ -34081,13 +34081,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100909001, "name": "黑曜短裤", - "type": 9, + "position": 9, "quality": 9, "icon": "100909001", "levelBaseAttributesFactors": [ @@ -34166,13 +34166,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100909002, "name": "魔王短裤", - "type": 9, + "position": 9, "quality": 9, "icon": "100909002", "levelBaseAttributesFactors": [ @@ -34251,13 +34251,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100909003, "name": "永恒短裤", - "type": 9, + "position": 9, "quality": 9, "icon": "100909003", "levelBaseAttributesFactors": [ @@ -34336,13 +34336,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100909004, "name": "霜华短裤", - "type": 9, + "position": 9, "quality": 9, "icon": "100909004", "levelBaseAttributesFactors": [ @@ -34421,13 +34421,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100909005, "name": "龙心短裤", - "type": 9, + "position": 9, "quality": 9, "icon": "100909005", "levelBaseAttributesFactors": [ @@ -34506,13 +34506,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100910001, "name": "王者短裤", - "type": 9, + "position": 9, "quality": 10, "icon": "100910001", "levelBaseAttributesFactors": [ @@ -34591,13 +34591,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100910002, "name": "星辰短裤", - "type": 9, + "position": 9, "quality": 10, "icon": "100910002", "levelBaseAttributesFactors": [ @@ -34676,13 +34676,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100910003, "name": "堕天使短裤", - "type": 9, + "position": 9, "quality": 10, "icon": "100910003", "levelBaseAttributesFactors": [ @@ -34761,13 +34761,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100910004, "name": "圣天使短裤", - "type": 9, + "position": 9, "quality": 10, "icon": "100910004", "levelBaseAttributesFactors": [ @@ -34846,13 +34846,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 100910005, "name": "炎神短裤", - "type": 9, + "position": 9, "quality": 10, "icon": "100910005", "levelBaseAttributesFactors": [ @@ -34931,13 +34931,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101001001, "name": "木制板鞋", - "type": 10, + "position": 10, "quality": 1, "icon": "101001001", "levelBaseAttributesFactors": [ @@ -35016,13 +35016,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101001002, "name": "皮革短鞋", - "type": 10, + "position": 10, "quality": 1, "icon": "101001002", "levelBaseAttributesFactors": [ @@ -35101,13 +35101,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101001003, "name": "雕饰短鞋", - "type": 10, + "position": 10, "quality": 1, "icon": "101001003", "levelBaseAttributesFactors": [ @@ -35186,13 +35186,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101001004, "name": "蓝塑短鞋", - "type": 10, + "position": 10, "quality": 1, "icon": "101001004", "levelBaseAttributesFactors": [ @@ -35271,13 +35271,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101001005, "name": "蛇皮短鞋", - "type": 10, + "position": 10, "quality": 1, "icon": "101001005", "levelBaseAttributesFactors": [ @@ -35356,13 +35356,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101002001, "name": "褐布短靴", - "type": 10, + "position": 10, "quality": 2, "icon": "101002001", "levelBaseAttributesFactors": [ @@ -35441,13 +35441,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101002002, "name": "简约便鞋", - "type": 10, + "position": 10, "quality": 2, "icon": "101002002", "levelBaseAttributesFactors": [ @@ -35526,13 +35526,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101002003, "name": "青玄短靴", - "type": 10, + "position": 10, "quality": 2, "icon": "101002003", "levelBaseAttributesFactors": [ @@ -35611,13 +35611,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101002004, "name": "绿竹短靴", - "type": 10, + "position": 10, "quality": 2, "icon": "101002004", "levelBaseAttributesFactors": [ @@ -35696,13 +35696,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101002005, "name": "白云短靴", - "type": 10, + "position": 10, "quality": 2, "icon": "101002005", "levelBaseAttributesFactors": [ @@ -35781,13 +35781,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101003001, "name": "骆驼短靴", - "type": 10, + "position": 10, "quality": 3, "icon": "101003001", "levelBaseAttributesFactors": [ @@ -35866,13 +35866,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101003002, "name": "踏雪短靴", - "type": 10, + "position": 10, "quality": 3, "icon": "101003002", "levelBaseAttributesFactors": [ @@ -35951,13 +35951,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101003003, "name": "红晶短鞋", - "type": 10, + "position": 10, "quality": 3, "icon": "101003003", "levelBaseAttributesFactors": [ @@ -36036,13 +36036,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101003004, "name": "鸵鸟短靴", - "type": 10, + "position": 10, "quality": 3, "icon": "101003004", "levelBaseAttributesFactors": [ @@ -36121,13 +36121,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101003005, "name": "橡皮短靴", - "type": 10, + "position": 10, "quality": 3, "icon": "101003005", "levelBaseAttributesFactors": [ @@ -36206,13 +36206,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101004001, "name": "犀皮短靴", - "type": 10, + "position": 10, "quality": 4, "icon": "101004001", "levelBaseAttributesFactors": [ @@ -36291,13 +36291,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101004002, "name": "硬丝短靴", - "type": 10, + "position": 10, "quality": 4, "icon": "101004002", "levelBaseAttributesFactors": [ @@ -36376,13 +36376,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101004003, "name": "龙皮短靴", - "type": 10, + "position": 10, "quality": 4, "icon": "101004003", "levelBaseAttributesFactors": [ @@ -36461,13 +36461,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101004004, "name": "缎带短靴", - "type": 10, + "position": 10, "quality": 4, "icon": "101004004", "levelBaseAttributesFactors": [ @@ -36546,13 +36546,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101004005, "name": "金皮短靴", - "type": 10, + "position": 10, "quality": 4, "icon": "101004005", "levelBaseAttributesFactors": [ @@ -36631,13 +36631,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101005001, "name": "血红短靴", - "type": 10, + "position": 10, "quality": 5, "icon": "101005001", "levelBaseAttributesFactors": [ @@ -36716,13 +36716,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101005002, "name": "浮云短靴", - "type": 10, + "position": 10, "quality": 5, "icon": "101005002", "levelBaseAttributesFactors": [ @@ -36801,13 +36801,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101005003, "name": "奔马短靴", - "type": 10, + "position": 10, "quality": 5, "icon": "101005003", "levelBaseAttributesFactors": [ @@ -36886,13 +36886,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101005004, "name": "角马短靴", - "type": 10, + "position": 10, "quality": 5, "icon": "101005004", "levelBaseAttributesFactors": [ @@ -36971,13 +36971,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101005005, "name": "腾牛短靴", - "type": 10, + "position": 10, "quality": 5, "icon": "101005005", "levelBaseAttributesFactors": [ @@ -37056,13 +37056,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101006001, "name": "金丝短靴", - "type": 10, + "position": 10, "quality": 6, "icon": "101006001", "levelBaseAttributesFactors": [ @@ -37141,13 +37141,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101006002, "name": "雍容战靴", - "type": 10, + "position": 10, "quality": 6, "icon": "101006002", "levelBaseAttributesFactors": [ @@ -37226,13 +37226,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101006003, "name": "冰晶短靴", - "type": 10, + "position": 10, "quality": 6, "icon": "101006003", "levelBaseAttributesFactors": [ @@ -37311,13 +37311,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101006004, "name": "钢铁战靴", - "type": 10, + "position": 10, "quality": 6, "icon": "101006004", "levelBaseAttributesFactors": [ @@ -37396,13 +37396,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101006005, "name": "绿蟒短靴", - "type": 10, + "position": 10, "quality": 6, "icon": "101006005", "levelBaseAttributesFactors": [ @@ -37481,13 +37481,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101007001, "name": "雪山短靴", - "type": 10, + "position": 10, "quality": 7, "icon": "101007001", "levelBaseAttributesFactors": [ @@ -37566,13 +37566,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101007002, "name": "巨兽短靴", - "type": 10, + "position": 10, "quality": 7, "icon": "101007002", "levelBaseAttributesFactors": [ @@ -37651,13 +37651,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101007003, "name": "猎人短靴", - "type": 10, + "position": 10, "quality": 7, "icon": "101007003", "levelBaseAttributesFactors": [ @@ -37736,13 +37736,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101007004, "name": "神兵短靴", - "type": 10, + "position": 10, "quality": 7, "icon": "101007004", "levelBaseAttributesFactors": [ @@ -37821,13 +37821,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101007005, "name": "蓝晶短靴", - "type": 10, + "position": 10, "quality": 7, "icon": "101007005", "levelBaseAttributesFactors": [ @@ -37906,13 +37906,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101008001, "name": "翔云短靴", - "type": 10, + "position": 10, "quality": 8, "icon": "101008001", "levelBaseAttributesFactors": [ @@ -37991,13 +37991,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101008002, "name": "银雪短靴", - "type": 10, + "position": 10, "quality": 8, "icon": "101008002", "levelBaseAttributesFactors": [ @@ -38076,13 +38076,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101008003, "name": "神人短靴", - "type": 10, + "position": 10, "quality": 8, "icon": "101008003", "levelBaseAttributesFactors": [ @@ -38161,13 +38161,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101008004, "name": "猛禽短鞋", - "type": 10, + "position": 10, "quality": 8, "icon": "101008004", "levelBaseAttributesFactors": [ @@ -38246,13 +38246,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101008005, "name": "黄金狮子鞋", - "type": 10, + "position": 10, "quality": 8, "icon": "101008005", "levelBaseAttributesFactors": [ @@ -38331,13 +38331,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101009001, "name": "飞马短靴", - "type": 10, + "position": 10, "quality": 9, "icon": "101009001", "levelBaseAttributesFactors": [ @@ -38416,13 +38416,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101009002, "name": "火焰短靴", - "type": 10, + "position": 10, "quality": 9, "icon": "101009002", "levelBaseAttributesFactors": [ @@ -38501,13 +38501,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101009003, "name": "黄金短鞋", - "type": 10, + "position": 10, "quality": 9, "icon": "101009003", "levelBaseAttributesFactors": [ @@ -38586,13 +38586,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101009004, "name": "金翅短靴", - "type": 10, + "position": 10, "quality": 9, "icon": "101009004", "levelBaseAttributesFactors": [ @@ -38671,13 +38671,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101009005, "name": "鹰爪短靴", - "type": 10, + "position": 10, "quality": 9, "icon": "101009005", "levelBaseAttributesFactors": [ @@ -38756,13 +38756,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101010001, "name": "神圣短靴", - "type": 10, + "position": 10, "quality": 10, "icon": "101010001", "levelBaseAttributesFactors": [ @@ -38841,13 +38841,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101010002, "name": "比蒙短靴", - "type": 10, + "position": 10, "quality": 10, "icon": "101010002", "levelBaseAttributesFactors": [ @@ -38926,13 +38926,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101010003, "name": "天使短靴", - "type": 10, + "position": 10, "quality": 10, "icon": "101010003", "levelBaseAttributesFactors": [ @@ -39011,13 +39011,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101010004, "name": "龙鳞战靴", - "type": 10, + "position": 10, "quality": 10, "icon": "101010004", "levelBaseAttributesFactors": [ @@ -39096,13 +39096,13 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] }, { "id": 101010005, "name": "永恒战靴", - "type": 10, + "position": 10, "quality": 10, "icon": "101010005", "levelBaseAttributesFactors": [ @@ -39181,7 +39181,7 @@ ], "highAttributeSize": [ 0, - 0 + 3 ] } ] \ No newline at end of file diff --git a/JisolGameServer/Main/src/main/resources/json/tbgroleequiptype.json b/JisolGameServer/Main/src/main/resources/json/tbgroleequiptype.json new file mode 100644 index 00000000..c6b3ee0b --- /dev/null +++ b/JisolGameServer/Main/src/main/resources/json/tbgroleequiptype.json @@ -0,0 +1,42 @@ +[ + { + "id": 1, + "name": "武器" + }, + { + "id": 2, + "name": "帽子" + }, + { + "id": 3, + "name": "项链" + }, + { + "id": 4, + "name": "护肩" + }, + { + "id": 5, + "name": "衣服" + }, + { + "id": 6, + "name": "腰带" + }, + { + "id": 7, + "name": "手套" + }, + { + "id": 8, + "name": "戒指" + }, + { + "id": 9, + "name": "裤子" + }, + { + "id": 10, + "name": "鞋子" + } +] \ No newline at end of file diff --git a/pet_jisol_cn.sql b/pet_jisol_cn.sql new file mode 100644 index 00000000..00675a24 --- /dev/null +++ b/pet_jisol_cn.sql @@ -0,0 +1,113 @@ +/* + Navicat Premium Data Transfer + + Source Server : pet_jisol_cn + Source Server Type : MySQL + Source Server Version : 50734 (5.7.34-log) + Source Host : kyu.jisol.cn:3306 + Source Schema : pet_jisol_cn + + Target Server Type : MySQL + Target Server Version : 50734 (5.7.34-log) + File Encoding : 65001 + + Date: 07/01/2024 17:51:44 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for mode_on_hook +-- ---------------------------- +DROP TABLE IF EXISTS `mode_on_hook`; +CREATE TABLE `mode_on_hook` ( + `player_id` bigint(32) UNSIGNED NOT NULL COMMENT '玩家Id', + `on_hook_map` bigint(32) UNSIGNED NOT NULL COMMENT '当前玩家所在地图的配置表Id', + `on_hook_info` json NULL COMMENT '玩家地图信息', + PRIMARY KEY (`player_id`) USING BTREE, + UNIQUE INDEX `player_id`(`player_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for player +-- ---------------------------- +DROP TABLE IF EXISTS `player`; +CREATE TABLE `player` ( + `player_id` bigint(32) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '服务器玩家Id', + `user_id` bigint(32) NOT NULL COMMENT '玩家Id', + `player_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '玩家名称', + `player_create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '玩家创建时间', + `is_novice` tinyint(1) NOT NULL DEFAULT 0 COMMENT '玩家是否过了新手引导', + PRIMARY KEY (`player_id`) USING BTREE, + UNIQUE INDEX `user_id`(`user_id`) USING BTREE, + UNIQUE INDEX `player_id`(`player_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 412 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for player_equip +-- ---------------------------- +DROP TABLE IF EXISTS `player_equip`; +CREATE TABLE `player_equip` ( + `equip_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '装备唯一Id', + `equip_cfg_id` bigint(20) NOT NULL COMMENT '装备配置表Id', + `equip_level` bigint(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT '装备等级', + `equip_wear` bigint(20) NULL DEFAULT NULL COMMENT '当前装备穿戴的宠物Id', + `equip_position` bigint(20) NOT NULL COMMENT '装备部位', + `equip_base_attributes` json NULL COMMENT '装备基础属性', + `equip_high_attributes` json NULL COMMENT '装备高级属性', + PRIMARY KEY (`equip_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for player_pet +-- ---------------------------- +DROP TABLE IF EXISTS `player_pet`; +CREATE TABLE `player_pet` ( + `pet_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '宠物唯一Id', + `pet_player_id` bigint(32) NOT NULL COMMENT '宠物所属的玩家Id', + `pet_tb_id` bigint(20) UNSIGNED NOT NULL COMMENT '宠物配置表Id', + `pet_level` bigint(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT '宠物等级', + `pet_star` bigint(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT '宠物星级', + `pet_star_exp` bigint(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT '宠物星级经验', + `version` bigint(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT '更新版本号', + PRIMARY KEY (`pet_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1677 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for player_tactical +-- ---------------------------- +DROP TABLE IF EXISTS `player_tactical`; +CREATE TABLE `player_tactical` ( + `player_id` bigint(32) UNSIGNED NOT NULL COMMENT '服务器玩家Id', + `tactical_data` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '阵法数据', + PRIMARY KEY (`player_id`) USING BTREE, + UNIQUE INDEX `player_id`(`player_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for resource +-- ---------------------------- +DROP TABLE IF EXISTS `resource`; +CREATE TABLE `resource` ( + `resource_id` bigint(32) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '玩家资源Id', + `player_id` bigint(32) NOT NULL COMMENT '玩家Id', + `resource_tb_id` bigint(32) NOT NULL COMMENT '玩家资源配置表Id', + `resource_value` bigint(32) UNSIGNED NOT NULL COMMENT '玩家资源数量', + `version` bigint(32) UNSIGNED NOT NULL DEFAULT 0 COMMENT '版本号', + PRIMARY KEY (`resource_id`) USING BTREE, + UNIQUE INDEX `playerid_resourcetbid`(`player_id`, `resource_tb_id`) USING BTREE COMMENT '玩家的同一个资源是唯一的' +) ENGINE = InnoDB AUTO_INCREMENT = 71 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for user +-- ---------------------------- +DROP TABLE IF EXISTS `user`; +CREATE TABLE `user` ( + `user_id` bigint(32) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '玩家Id', + `user_pass` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '玩家密码', + `user_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '玩家名称', + PRIMARY KEY (`user_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 101220 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; + +SET FOREIGN_KEY_CHECKS = 1;