提交地图

This commit is contained in:
PC-20230316NUNE\Administrator
2023-12-23 19:00:53 +08:00
parent d66f08455e
commit 516d520c5e
38 changed files with 3020 additions and 287 deletions

View File

@@ -14,14 +14,14 @@ import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
public final class TbGOnHookMap1 extends AbstractBean {
public TbGOnHookMap1(JsonObject _buf) {
public final class TbGOnHookMap120001 extends AbstractBean {
public TbGOnHookMap120001(JsonObject _buf) {
id = _buf.get("id").getAsInt();
data = cfg.TbGEntity.TOnHookLevel.deserialize(_buf.get("data").getAsJsonObject());
}
public static TbGOnHookMap1 deserialize(JsonObject _buf) {
return new cfg.TB.TbGOnHookMap1(_buf);
public static TbGOnHookMap120001 deserialize(JsonObject _buf) {
return new cfg.TB.TbGOnHookMap120001(_buf);
}
/**
@@ -33,7 +33,7 @@ public final class TbGOnHookMap1 extends AbstractBean {
*/
public final cfg.TbGEntity.TOnHookLevel data;
public static final int __ID__ = 1197577712;
public static final int __ID__ = 196461379;
@Override
public int getTypeId() { return __ID__; }

View File

@@ -47,8 +47,8 @@ public final class Tables
public cfg.TbGRoleBaseAttribute getTbGRoleBaseAttribute() { return _tbgrolebaseattribute; }
private final cfg.TbGOnHookMaps _tbgonhookmaps;
public cfg.TbGOnHookMaps getTbGOnHookMaps() { return _tbgonhookmaps; }
private final cfg.TbGOnHookMap1 _tbgonhookmap1;
public cfg.TbGOnHookMap1 getTbGOnHookMap1() { return _tbgonhookmap1; }
private final cfg.TbGOnHookMap120001 _tbgonhookmap120001;
public cfg.TbGOnHookMap120001 getTbGOnHookMap120001() { return _tbgonhookmap120001; }
private final cfg.TbBattleResource _tbbattleresource;
public cfg.TbBattleResource getTbBattleResource() { return _tbbattleresource; }
@@ -67,7 +67,7 @@ public final class Tables
_tbgattribute = new cfg.TbGAttribute(loader.load("tbgattribute"));
_tbgrolebaseattribute = new cfg.TbGRoleBaseAttribute(loader.load("tbgrolebaseattribute"));
_tbgonhookmaps = new cfg.TbGOnHookMaps(loader.load("tbgonhookmaps"));
_tbgonhookmap1 = new cfg.TbGOnHookMap1(loader.load("tbgonhookmap1"));
_tbgonhookmap120001 = new cfg.TbGOnHookMap120001(loader.load("tbgonhookmap120001"));
_tbbattleresource = new cfg.TbBattleResource(loader.load("tbbattleresource"));
}
}

View File

@@ -20,7 +20,9 @@ import com.google.gson.JsonObject;
public final class TOnHookLevel extends AbstractBean {
public TOnHookLevel(JsonObject _buf) {
level = _buf.get("level").getAsInt();
childLevel = _buf.get("childLevel").getAsInt();
petLevel = _buf.get("petLevel").getAsInt();
petSize = _buf.get("petSize").getAsInt();
oddsId = _buf.get("oddsId").getAsInt();
}
@@ -32,10 +34,18 @@ public final class TOnHookLevel extends AbstractBean {
* 关卡等级
*/
public final int level;
/**
* 子关卡等级
*/
public final int childLevel;
/**
* 宠物等级
*/
public final int petLevel;
/**
* 宠物数量
*/
public final int petSize;
/**
* 概率Id
*/
@@ -50,7 +60,9 @@ public final class TOnHookLevel extends AbstractBean {
public String toString() {
return "{ "
+ "(format_field_name __code_style field.name):" + level + ","
+ "(format_field_name __code_style field.name):" + childLevel + ","
+ "(format_field_name __code_style field.name):" + petLevel + ","
+ "(format_field_name __code_style field.name):" + petSize + ","
+ "(format_field_name __code_style field.name):" + oddsId + ","
+ "}";
}

View File

@@ -13,25 +13,25 @@ import luban.*;
import com.google.gson.JsonElement;
public final class TbGOnHookMap1 {
private final java.util.HashMap<Integer, cfg.TB.TbGOnHookMap1> _dataMap;
private final java.util.ArrayList<cfg.TB.TbGOnHookMap1> _dataList;
public final class TbGOnHookMap120001 {
private final java.util.HashMap<Integer, cfg.TB.TbGOnHookMap120001> _dataMap;
private final java.util.ArrayList<cfg.TB.TbGOnHookMap120001> _dataList;
public TbGOnHookMap1(JsonElement _buf) {
_dataMap = new java.util.HashMap<Integer, cfg.TB.TbGOnHookMap1>();
_dataList = new java.util.ArrayList<cfg.TB.TbGOnHookMap1>();
public TbGOnHookMap120001(JsonElement _buf) {
_dataMap = new java.util.HashMap<Integer, cfg.TB.TbGOnHookMap120001>();
_dataList = new java.util.ArrayList<cfg.TB.TbGOnHookMap120001>();
for (com.google.gson.JsonElement _e_ : _buf.getAsJsonArray()) {
cfg.TB.TbGOnHookMap1 _v;
_v = cfg.TB.TbGOnHookMap1.deserialize(_e_.getAsJsonObject());
cfg.TB.TbGOnHookMap120001 _v;
_v = cfg.TB.TbGOnHookMap120001.deserialize(_e_.getAsJsonObject());
_dataList.add(_v);
_dataMap.put(_v.id, _v);
}
}
public java.util.HashMap<Integer, cfg.TB.TbGOnHookMap1> getDataMap() { return _dataMap; }
public java.util.ArrayList<cfg.TB.TbGOnHookMap1> getDataList() { return _dataList; }
public java.util.HashMap<Integer, cfg.TB.TbGOnHookMap120001> getDataMap() { return _dataMap; }
public java.util.ArrayList<cfg.TB.TbGOnHookMap120001> getDataList() { return _dataList; }
public cfg.TB.TbGOnHookMap1 get(int key) { return _dataMap.get(key); }
public cfg.TB.TbGOnHookMap120001 get(int key) { return _dataMap.get(key); }
}

View File

@@ -15,6 +15,7 @@ import cn.jisol.game.proto.GOnHookMessage;
import cn.jisol.game.service.ModeOnHookService;
import cn.jisol.game.service.PlayerPetService;
import cn.jisol.game.service.ResourceService;
import cn.jisol.game.table.GTbGOnHookLevels;
import cn.jisol.game.vo.news.NewsResource;
import cn.jisol.game.vo.news.ov.ResourceUpdateOV;
import cn.jisol.ngame.util.NewsContext;
@@ -92,6 +93,24 @@ public class GOnHookController {
return NewsContext.onSuccess("成功",data);
}
//下一关
@ApiImplicitParams({})
@ApiOperation(value = "下一关")
@PostMapping("/nextLevel")
public NewsContext<ModeOnHook> nextLevel(@CurrentPlayer Player player){
ModeOnHook data = this.getInfo(player).data;
//获取当前关卡Id
Integer levelId = data.getLevelId();
//获取玩家所在地图 是否有下一关关卡
GTbGOnHookLevels.GTbGOnHookLevel nextLevel = data.getGTbGOnHookLevels().get(levelId + 1);
data.getHookInfo().getMaps().put(data.getOnHookMap(),nextLevel.getId());
//保存地图
modeOnHookService.saveOrUpdate(data);
return NewsContext.onSuccess("下一关");
}
//生成野怪
@ApiImplicitParams({})
@ApiOperation(value = "生成野怪")
@@ -116,6 +135,8 @@ public class GOnHookController {
ModeOnHook info = this.getInfo(player).data;
TbGOnHookMaps mapInfo = TD.DATA.getTbGOnHookMaps().get(info.getOnHookMap());
List<TbGRole> tdPets = Arrays.stream(mapInfo.petIds).mapToObj(petId -> TD.DATA.getTbGRole().get(petId)).collect(Collectors.toList());
//获取关卡信息
GTbGOnHookLevels.GTbGOnHookLevel levelInfo = info.getGTbGOnHookLevels().get(info.getLevelId());
//如果小于最大数量则生成
while (creeps.size() < max){
@@ -126,6 +147,8 @@ public class GOnHookController {
.setKey(RandomUtil.randomString(8))
//随机取配置表宠物中的宠物
.setPetTbId(tdPets.get(RandomUtil.randomInt(0, tdPets.size())).id)
//设置宠物等级
.setPetLevel(levelInfo.getData().petLevel)
.build();
//添加到宠物列表中

View File

@@ -1,10 +1,22 @@
package cn.jisol.game.entity.mode;
import cfg.TbGEntity.TOnHookLevel;
import cn.hutool.json.JSONUtil;
import cn.jisol.game.data.TD;
import cn.jisol.game.table.GTbGOnHookLevels;
import cn.jisol.game.table.TableUtil;
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 lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
* 玩家 无限模式(OnHook) 信息
@@ -12,10 +24,48 @@ import lombok.Data;
@Builder
@Data
@TableName("`mode_on_hook`")
@NoArgsConstructor
@AllArgsConstructor
public class ModeOnHook {
@TableId(type = IdType.INPUT)
private Long playerId; //玩家Id
private Integer onHookMap; //当前玩家所在的地图(配置表Id)
private String onHookInfo; //地图信息Json
@TableField(exist = false)
private ModeOnHookInfo hookInfo; //地图信息类
@TableField(exist = false)
private Integer levelId; //当前地图Id
public String getOnHookInfo() {
if (Objects.nonNull(hookInfo)) this.onHookInfo = JSONUtil.toJsonStr(this.hookInfo);
if (Objects.isNull(this.onHookInfo)) this.onHookInfo = JSONUtil.toJsonStr(new ModeOnHookInfo());
return this.onHookInfo;
}
public ModeOnHookInfo getHookInfo(){
if(Objects.isNull(hookInfo)) this.hookInfo = JSONUtil.toBean(this.getOnHookInfo(), ModeOnHookInfo.class);
return this.hookInfo;
}
//获取当前地图类
public GTbGOnHookLevels getGTbGOnHookLevels(){
String sign = TD.DATA.getTbGOnHookMaps().get(this.getOnHookMap()).sign;
return new GTbGOnHookLevels(TableUtil.getTDObject(sign));
}
//获取当前关卡Id
public Integer getLevelId(){
//获取玩家当前地图关卡Id
Integer levelId = this.getHookInfo().getMaps().get(this.getOnHookMap());
//如果没有则默认当前地图的第一个Id
if(Objects.isNull(levelId)) {
List<GTbGOnHookLevels.GTbGOnHookLevel> dataList = this.getGTbGOnHookLevels().getDataList();
if(dataList.size() == 0) return -1;
levelId = dataList.get(0).getId();
}
return levelId;
}
}

View File

@@ -0,0 +1,20 @@
package cn.jisol.game.entity.mode;
import lombok.Getter;
import lombok.Setter;
import java.util.HashMap;
import java.util.Map;
@Getter
@Setter
public class ModeOnHookInfo {
//地图关卡信息 {地图Id: 地图关卡Id}
private Map<Integer,Integer> maps;
public ModeOnHookInfo(){
maps = new HashMap<>();
}
}

View File

@@ -26,7 +26,7 @@ public final class GOnHookMessage {
* <code>string key = 1;</code>
* @return The key.
*/
String getKey();
java.lang.String getKey();
/**
* <pre>
*生成宠物的key
@@ -47,6 +47,16 @@ public final class GOnHookMessage {
* @return The petTbId.
*/
int getPetTbId();
/**
* <pre>
*生成宠物的等级
* </pre>
*
* <code>int32 petLevel = 3;</code>
* @return The petLevel.
*/
int getPetLevel();
}
/**
* <pre>
@@ -68,14 +78,14 @@ public final class GOnHookMessage {
key_ = "";
}
@Override
@java.lang.Override
@SuppressWarnings({"unused"})
protected Object newInstance(
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new GOnHookPet();
}
@Override
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
@@ -86,7 +96,7 @@ public final class GOnHookMessage {
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new NullPointerException();
throw new java.lang.NullPointerException();
}
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -99,7 +109,7 @@ public final class GOnHookMessage {
done = true;
break;
case 10: {
String s = input.readStringRequireUtf8();
java.lang.String s = input.readStringRequireUtf8();
key_ = s;
break;
@@ -109,6 +119,11 @@ public final class GOnHookMessage {
petTbId_ = input.readInt32();
break;
}
case 24: {
petLevel_ = input.readInt32();
break;
}
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
@@ -135,8 +150,8 @@ public final class GOnHookMessage {
return GOnHookMessage.internal_static_GOnHookPet_descriptor;
}
@Override
protected FieldAccessorTable
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return GOnHookMessage.internal_static_GOnHookPet_fieldAccessorTable
.ensureFieldAccessorsInitialized(
@@ -144,7 +159,7 @@ public final class GOnHookMessage {
}
public static final int KEY_FIELD_NUMBER = 1;
private volatile Object key_;
private volatile java.lang.Object key_;
/**
* <pre>
*生成宠物的key
@@ -153,15 +168,15 @@ public final class GOnHookMessage {
* <code>string key = 1;</code>
* @return The key.
*/
@Override
public String getKey() {
Object ref = key_;
if (ref instanceof String) {
return (String) ref;
@java.lang.Override
public java.lang.String getKey() {
java.lang.Object ref = key_;
if (ref instanceof java.lang.String) {
return (java.lang.String) ref;
} else {
com.google.protobuf.ByteString bs =
(com.google.protobuf.ByteString) ref;
String s = bs.toStringUtf8();
java.lang.String s = bs.toStringUtf8();
key_ = s;
return s;
}
@@ -174,14 +189,14 @@ public final class GOnHookMessage {
* <code>string key = 1;</code>
* @return The bytes for key.
*/
@Override
@java.lang.Override
public com.google.protobuf.ByteString
getKeyBytes() {
Object ref = key_;
if (ref instanceof String) {
java.lang.Object ref = key_;
if (ref instanceof java.lang.String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8(
(String) ref);
(java.lang.String) ref);
key_ = b;
return b;
} else {
@@ -199,13 +214,28 @@ public final class GOnHookMessage {
* <code>int32 petTbId = 2;</code>
* @return The petTbId.
*/
@Override
@java.lang.Override
public int getPetTbId() {
return petTbId_;
}
public static final int PETLEVEL_FIELD_NUMBER = 3;
private int petLevel_;
/**
* <pre>
*生成宠物的等级
* </pre>
*
* <code>int32 petLevel = 3;</code>
* @return The petLevel.
*/
@java.lang.Override
public int getPetLevel() {
return petLevel_;
}
private byte memoizedIsInitialized = -1;
@Override
@java.lang.Override
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized == 1) return true;
@@ -215,7 +245,7 @@ public final class GOnHookMessage {
return true;
}
@Override
@java.lang.Override
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(key_)) {
@@ -224,10 +254,13 @@ public final class GOnHookMessage {
if (petTbId_ != 0) {
output.writeInt32(2, petTbId_);
}
if (petLevel_ != 0) {
output.writeInt32(3, petLevel_);
}
unknownFields.writeTo(output);
}
@Override
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
@@ -240,13 +273,17 @@ public final class GOnHookMessage {
size += com.google.protobuf.CodedOutputStream
.computeInt32Size(2, petTbId_);
}
if (petLevel_ != 0) {
size += com.google.protobuf.CodedOutputStream
.computeInt32Size(3, petLevel_);
}
size += unknownFields.getSerializedSize();
memoizedSize = size;
return size;
}
@Override
public boolean equals(final Object obj) {
@java.lang.Override
public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
@@ -259,11 +296,13 @@ public final class GOnHookMessage {
.equals(other.getKey())) return false;
if (getPetTbId()
!= other.getPetTbId()) return false;
if (getPetLevel()
!= other.getPetLevel()) return false;
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
}
@Override
@java.lang.Override
public int hashCode() {
if (memoizedHashCode != 0) {
return memoizedHashCode;
@@ -274,6 +313,8 @@ public final class GOnHookMessage {
hash = (53 * hash) + getKey().hashCode();
hash = (37 * hash) + PETTBID_FIELD_NUMBER;
hash = (53 * hash) + getPetTbId();
hash = (37 * hash) + PETLEVEL_FIELD_NUMBER;
hash = (53 * hash) + getPetLevel();
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
@@ -349,7 +390,7 @@ public final class GOnHookMessage {
.parseWithIOException(PARSER, input, extensionRegistry);
}
@Override
@java.lang.Override
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
@@ -357,15 +398,15 @@ public final class GOnHookMessage {
public static Builder newBuilder(GOnHookMessage.GOnHookPet prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@Override
@java.lang.Override
public Builder toBuilder() {
return this == DEFAULT_INSTANCE
? new Builder() : new Builder().mergeFrom(this);
}
@Override
@java.lang.Override
protected Builder newBuilderForType(
BuilderParent parent) {
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
@@ -385,21 +426,21 @@ public final class GOnHookMessage {
return GOnHookMessage.internal_static_GOnHookPet_descriptor;
}
@Override
protected FieldAccessorTable
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return GOnHookMessage.internal_static_GOnHookPet_fieldAccessorTable
.ensureFieldAccessorsInitialized(
GOnHookMessage.GOnHookPet.class, GOnHookMessage.GOnHookPet.Builder.class);
}
// Construct using cn.jisol.ngame.proto.GOnHookMessage.GOnHookPet.newBuilder()
// Construct using cn.jisol.game.proto.GOnHookMessage.GOnHookPet.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(
BuilderParent parent) {
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
@@ -408,28 +449,30 @@ public final class GOnHookMessage {
.alwaysUseFieldBuilders) {
}
}
@Override
@java.lang.Override
public Builder clear() {
super.clear();
key_ = "";
petTbId_ = 0;
petLevel_ = 0;
return this;
}
@Override
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return GOnHookMessage.internal_static_GOnHookPet_descriptor;
}
@Override
@java.lang.Override
public GOnHookMessage.GOnHookPet getDefaultInstanceForType() {
return GOnHookMessage.GOnHookPet.getDefaultInstance();
}
@Override
@java.lang.Override
public GOnHookMessage.GOnHookPet build() {
GOnHookMessage.GOnHookPet result = buildPartial();
if (!result.isInitialized()) {
@@ -438,48 +481,49 @@ public final class GOnHookMessage {
return result;
}
@Override
@java.lang.Override
public GOnHookMessage.GOnHookPet buildPartial() {
GOnHookMessage.GOnHookPet result = new GOnHookMessage.GOnHookPet(this);
result.key_ = key_;
result.petTbId_ = petTbId_;
result.petLevel_ = petLevel_;
onBuilt();
return result;
}
@Override
@java.lang.Override
public Builder clone() {
return super.clone();
}
@Override
@java.lang.Override
public Builder setField(
com.google.protobuf.Descriptors.FieldDescriptor field,
Object value) {
java.lang.Object value) {
return super.setField(field, value);
}
@Override
@java.lang.Override
public Builder clearField(
com.google.protobuf.Descriptors.FieldDescriptor field) {
return super.clearField(field);
}
@Override
@java.lang.Override
public Builder clearOneof(
com.google.protobuf.Descriptors.OneofDescriptor oneof) {
return super.clearOneof(oneof);
}
@Override
@java.lang.Override
public Builder setRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
int index, Object value) {
int index, java.lang.Object value) {
return super.setRepeatedField(field, index, value);
}
@Override
@java.lang.Override
public Builder addRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
Object value) {
java.lang.Object value) {
return super.addRepeatedField(field, value);
}
@Override
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof GOnHookMessage.GOnHookPet) {
return mergeFrom((GOnHookMessage.GOnHookPet)other);
@@ -498,17 +542,20 @@ public final class GOnHookMessage {
if (other.getPetTbId() != 0) {
setPetTbId(other.getPetTbId());
}
if (other.getPetLevel() != 0) {
setPetLevel(other.getPetLevel());
}
this.mergeUnknownFields(other.unknownFields);
onChanged();
return this;
}
@Override
@java.lang.Override
public final boolean isInitialized() {
return true;
}
@Override
@java.lang.Override
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -527,7 +574,7 @@ public final class GOnHookMessage {
return this;
}
private Object key_ = "";
private java.lang.Object key_ = "";
/**
* <pre>
*生成宠物的key
@@ -536,16 +583,16 @@ public final class GOnHookMessage {
* <code>string key = 1;</code>
* @return The key.
*/
public String getKey() {
Object ref = key_;
if (!(ref instanceof String)) {
public java.lang.String getKey() {
java.lang.Object ref = key_;
if (!(ref instanceof java.lang.String)) {
com.google.protobuf.ByteString bs =
(com.google.protobuf.ByteString) ref;
String s = bs.toStringUtf8();
java.lang.String s = bs.toStringUtf8();
key_ = s;
return s;
} else {
return (String) ref;
return (java.lang.String) ref;
}
}
/**
@@ -558,11 +605,11 @@ public final class GOnHookMessage {
*/
public com.google.protobuf.ByteString
getKeyBytes() {
Object ref = key_;
java.lang.Object ref = key_;
if (ref instanceof String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8(
(String) ref);
(java.lang.String) ref);
key_ = b;
return b;
} else {
@@ -579,7 +626,7 @@ public final class GOnHookMessage {
* @return This builder for chaining.
*/
public Builder setKey(
String value) {
java.lang.String value) {
if (value == null) {
throw new NullPointerException();
}
@@ -632,7 +679,7 @@ public final class GOnHookMessage {
* <code>int32 petTbId = 2;</code>
* @return The petTbId.
*/
@Override
@java.lang.Override
public int getPetTbId() {
return petTbId_;
}
@@ -665,13 +712,56 @@ public final class GOnHookMessage {
onChanged();
return this;
}
@Override
private int petLevel_ ;
/**
* <pre>
*生成宠物的等级
* </pre>
*
* <code>int32 petLevel = 3;</code>
* @return The petLevel.
*/
@java.lang.Override
public int getPetLevel() {
return petLevel_;
}
/**
* <pre>
*生成宠物的等级
* </pre>
*
* <code>int32 petLevel = 3;</code>
* @param value The petLevel to set.
* @return This builder for chaining.
*/
public Builder setPetLevel(int value) {
petLevel_ = value;
onChanged();
return this;
}
/**
* <pre>
*生成宠物的等级
* </pre>
*
* <code>int32 petLevel = 3;</code>
* @return This builder for chaining.
*/
public Builder clearPetLevel() {
petLevel_ = 0;
onChanged();
return this;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@Override
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
@@ -693,7 +783,7 @@ public final class GOnHookMessage {
private static final com.google.protobuf.Parser<GOnHookPet>
PARSER = new com.google.protobuf.AbstractParser<GOnHookPet>() {
@Override
@java.lang.Override
public GOnHookPet parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -706,12 +796,12 @@ public final class GOnHookMessage {
return PARSER;
}
@Override
@java.lang.Override
public com.google.protobuf.Parser<GOnHookPet> getParserForType() {
return PARSER;
}
@Override
@java.lang.Override
public GOnHookMessage.GOnHookPet getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
@@ -729,7 +819,7 @@ public final class GOnHookMessage {
*
* <code>repeated .GOnHookPet pets = 1;</code>
*/
java.util.List<GOnHookPet>
java.util.List<GOnHookMessage.GOnHookPet>
getPetsList();
/**
* <pre>
@@ -754,7 +844,7 @@ public final class GOnHookMessage {
*
* <code>repeated .GOnHookPet pets = 1;</code>
*/
java.util.List<? extends GOnHookPetOrBuilder>
java.util.List<? extends GOnHookMessage.GOnHookPetOrBuilder>
getPetsOrBuilderList();
/**
* <pre>
@@ -786,14 +876,14 @@ public final class GOnHookMessage {
pets_ = java.util.Collections.emptyList();
}
@Override
@java.lang.Override
@SuppressWarnings({"unused"})
protected Object newInstance(
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new GOnHookPets();
}
@Override
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
@@ -804,7 +894,7 @@ public final class GOnHookMessage {
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new NullPointerException();
throw new java.lang.NullPointerException();
}
int mutable_bitField0_ = 0;
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
@@ -819,7 +909,7 @@ public final class GOnHookMessage {
break;
case 10: {
if (!((mutable_bitField0_ & 0x00000001) != 0)) {
pets_ = new java.util.ArrayList<GOnHookPet>();
pets_ = new java.util.ArrayList<GOnHookMessage.GOnHookPet>();
mutable_bitField0_ |= 0x00000001;
}
pets_.add(
@@ -855,8 +945,8 @@ public final class GOnHookMessage {
return GOnHookMessage.internal_static_GOnHookPets_descriptor;
}
@Override
protected FieldAccessorTable
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return GOnHookMessage.internal_static_GOnHookPets_fieldAccessorTable
.ensureFieldAccessorsInitialized(
@@ -864,7 +954,7 @@ public final class GOnHookMessage {
}
public static final int PETS_FIELD_NUMBER = 1;
private java.util.List<GOnHookPet> pets_;
private java.util.List<GOnHookMessage.GOnHookPet> pets_;
/**
* <pre>
*宠物列表
@@ -872,8 +962,8 @@ public final class GOnHookMessage {
*
* <code>repeated .GOnHookPet pets = 1;</code>
*/
@Override
public java.util.List<GOnHookPet> getPetsList() {
@java.lang.Override
public java.util.List<GOnHookMessage.GOnHookPet> getPetsList() {
return pets_;
}
/**
@@ -883,8 +973,8 @@ public final class GOnHookMessage {
*
* <code>repeated .GOnHookPet pets = 1;</code>
*/
@Override
public java.util.List<? extends GOnHookPetOrBuilder>
@java.lang.Override
public java.util.List<? extends GOnHookMessage.GOnHookPetOrBuilder>
getPetsOrBuilderList() {
return pets_;
}
@@ -895,7 +985,7 @@ public final class GOnHookMessage {
*
* <code>repeated .GOnHookPet pets = 1;</code>
*/
@Override
@java.lang.Override
public int getPetsCount() {
return pets_.size();
}
@@ -906,7 +996,7 @@ public final class GOnHookMessage {
*
* <code>repeated .GOnHookPet pets = 1;</code>
*/
@Override
@java.lang.Override
public GOnHookMessage.GOnHookPet getPets(int index) {
return pets_.get(index);
}
@@ -917,14 +1007,14 @@ public final class GOnHookMessage {
*
* <code>repeated .GOnHookPet pets = 1;</code>
*/
@Override
@java.lang.Override
public GOnHookMessage.GOnHookPetOrBuilder getPetsOrBuilder(
int index) {
return pets_.get(index);
}
private byte memoizedIsInitialized = -1;
@Override
@java.lang.Override
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized == 1) return true;
@@ -934,7 +1024,7 @@ public final class GOnHookMessage {
return true;
}
@Override
@java.lang.Override
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
for (int i = 0; i < pets_.size(); i++) {
@@ -943,7 +1033,7 @@ public final class GOnHookMessage {
unknownFields.writeTo(output);
}
@Override
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
@@ -958,8 +1048,8 @@ public final class GOnHookMessage {
return size;
}
@Override
public boolean equals(final Object obj) {
@java.lang.Override
public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
@@ -974,7 +1064,7 @@ public final class GOnHookMessage {
return true;
}
@Override
@java.lang.Override
public int hashCode() {
if (memoizedHashCode != 0) {
return memoizedHashCode;
@@ -1060,7 +1150,7 @@ public final class GOnHookMessage {
.parseWithIOException(PARSER, input, extensionRegistry);
}
@Override
@java.lang.Override
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
@@ -1068,15 +1158,15 @@ public final class GOnHookMessage {
public static Builder newBuilder(GOnHookMessage.GOnHookPets prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@Override
@java.lang.Override
public Builder toBuilder() {
return this == DEFAULT_INSTANCE
? new Builder() : new Builder().mergeFrom(this);
}
@Override
@java.lang.Override
protected Builder newBuilderForType(
BuilderParent parent) {
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
@@ -1096,21 +1186,21 @@ public final class GOnHookMessage {
return GOnHookMessage.internal_static_GOnHookPets_descriptor;
}
@Override
protected FieldAccessorTable
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return GOnHookMessage.internal_static_GOnHookPets_fieldAccessorTable
.ensureFieldAccessorsInitialized(
GOnHookMessage.GOnHookPets.class, GOnHookMessage.GOnHookPets.Builder.class);
}
// Construct using cn.jisol.ngame.proto.GOnHookMessage.GOnHookPets.newBuilder()
// Construct using cn.jisol.game.proto.GOnHookMessage.GOnHookPets.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(
BuilderParent parent) {
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
@@ -1120,7 +1210,7 @@ public final class GOnHookMessage {
getPetsFieldBuilder();
}
}
@Override
@java.lang.Override
public Builder clear() {
super.clear();
if (petsBuilder_ == null) {
@@ -1132,18 +1222,18 @@ public final class GOnHookMessage {
return this;
}
@Override
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return GOnHookMessage.internal_static_GOnHookPets_descriptor;
}
@Override
@java.lang.Override
public GOnHookMessage.GOnHookPets getDefaultInstanceForType() {
return GOnHookMessage.GOnHookPets.getDefaultInstance();
}
@Override
@java.lang.Override
public GOnHookMessage.GOnHookPets build() {
GOnHookMessage.GOnHookPets result = buildPartial();
if (!result.isInitialized()) {
@@ -1152,7 +1242,7 @@ public final class GOnHookMessage {
return result;
}
@Override
@java.lang.Override
public GOnHookMessage.GOnHookPets buildPartial() {
GOnHookMessage.GOnHookPets result = new GOnHookMessage.GOnHookPets(this);
int from_bitField0_ = bitField0_;
@@ -1169,39 +1259,39 @@ public final class GOnHookMessage {
return result;
}
@Override
@java.lang.Override
public Builder clone() {
return super.clone();
}
@Override
@java.lang.Override
public Builder setField(
com.google.protobuf.Descriptors.FieldDescriptor field,
Object value) {
java.lang.Object value) {
return super.setField(field, value);
}
@Override
@java.lang.Override
public Builder clearField(
com.google.protobuf.Descriptors.FieldDescriptor field) {
return super.clearField(field);
}
@Override
@java.lang.Override
public Builder clearOneof(
com.google.protobuf.Descriptors.OneofDescriptor oneof) {
return super.clearOneof(oneof);
}
@Override
@java.lang.Override
public Builder setRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
int index, Object value) {
int index, java.lang.Object value) {
return super.setRepeatedField(field, index, value);
}
@Override
@java.lang.Override
public Builder addRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
Object value) {
java.lang.Object value) {
return super.addRepeatedField(field, value);
}
@Override
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof GOnHookMessage.GOnHookPets) {
return mergeFrom((GOnHookMessage.GOnHookPets)other);
@@ -1244,12 +1334,12 @@ public final class GOnHookMessage {
return this;
}
@Override
@java.lang.Override
public final boolean isInitialized() {
return true;
}
@Override
@java.lang.Override
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -1269,17 +1359,17 @@ public final class GOnHookMessage {
}
private int bitField0_;
private java.util.List<GOnHookPet> pets_ =
private java.util.List<GOnHookMessage.GOnHookPet> pets_ =
java.util.Collections.emptyList();
private void ensurePetsIsMutable() {
if (!((bitField0_ & 0x00000001) != 0)) {
pets_ = new java.util.ArrayList<GOnHookPet>(pets_);
pets_ = new java.util.ArrayList<GOnHookMessage.GOnHookPet>(pets_);
bitField0_ |= 0x00000001;
}
}
private com.google.protobuf.RepeatedFieldBuilderV3<
GOnHookPet, GOnHookPet.Builder, GOnHookPetOrBuilder> petsBuilder_;
GOnHookMessage.GOnHookPet, GOnHookMessage.GOnHookPet.Builder, GOnHookMessage.GOnHookPetOrBuilder> petsBuilder_;
/**
* <pre>
@@ -1288,7 +1378,7 @@ public final class GOnHookMessage {
*
* <code>repeated .GOnHookPet pets = 1;</code>
*/
public java.util.List<GOnHookPet> getPetsList() {
public java.util.List<GOnHookMessage.GOnHookPet> getPetsList() {
if (petsBuilder_ == null) {
return java.util.Collections.unmodifiableList(pets_);
} else {
@@ -1447,7 +1537,7 @@ public final class GOnHookMessage {
* <code>repeated .GOnHookPet pets = 1;</code>
*/
public Builder addAllPets(
Iterable<? extends GOnHookPet> values) {
java.lang.Iterable<? extends GOnHookMessage.GOnHookPet> values) {
if (petsBuilder_ == null) {
ensurePetsIsMutable();
com.google.protobuf.AbstractMessageLite.Builder.addAll(
@@ -1524,7 +1614,7 @@ public final class GOnHookMessage {
*
* <code>repeated .GOnHookPet pets = 1;</code>
*/
public java.util.List<? extends GOnHookPetOrBuilder>
public java.util.List<? extends GOnHookMessage.GOnHookPetOrBuilder>
getPetsOrBuilderList() {
if (petsBuilder_ != null) {
return petsBuilder_.getMessageOrBuilderList();
@@ -1562,16 +1652,16 @@ public final class GOnHookMessage {
*
* <code>repeated .GOnHookPet pets = 1;</code>
*/
public java.util.List<GOnHookPet.Builder>
public java.util.List<GOnHookMessage.GOnHookPet.Builder>
getPetsBuilderList() {
return getPetsFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilderV3<
GOnHookPet, GOnHookPet.Builder, GOnHookPetOrBuilder>
GOnHookMessage.GOnHookPet, GOnHookMessage.GOnHookPet.Builder, GOnHookMessage.GOnHookPetOrBuilder>
getPetsFieldBuilder() {
if (petsBuilder_ == null) {
petsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
GOnHookPet, GOnHookPet.Builder, GOnHookPetOrBuilder>(
GOnHookMessage.GOnHookPet, GOnHookMessage.GOnHookPet.Builder, GOnHookMessage.GOnHookPetOrBuilder>(
pets_,
((bitField0_ & 0x00000001) != 0),
getParentForChildren(),
@@ -1580,13 +1670,13 @@ public final class GOnHookMessage {
}
return petsBuilder_;
}
@Override
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@Override
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
@@ -1608,7 +1698,7 @@ public final class GOnHookMessage {
private static final com.google.protobuf.Parser<GOnHookPets>
PARSER = new com.google.protobuf.AbstractParser<GOnHookPets>() {
@Override
@java.lang.Override
public GOnHookPets parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -1621,12 +1711,12 @@ public final class GOnHookMessage {
return PARSER;
}
@Override
@java.lang.Override
public com.google.protobuf.Parser<GOnHookPets> getParserForType() {
return PARSER;
}
@Override
@java.lang.Override
public GOnHookMessage.GOnHookPets getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
@@ -1651,11 +1741,11 @@ public final class GOnHookMessage {
private static com.google.protobuf.Descriptors.FileDescriptor
descriptor;
static {
String[] descriptorData = {
"\n\024GOnHookMessage.proto\"*\n\nGOnHookPet\022\013\n\003" +
"key\030\001 \001(\t\022\017\n\007petTbId\030\002 \001(\005\"(\n\013GOnHookPet" +
"s\022\031\n\004pets\030\001 \003(\0132\013.GOnHookPetB\026\n\024cn.jisol" +
".ngame.protob\006proto3"
java.lang.String[] descriptorData = {
"\n\024GOnHookMessage.proto\"<\n\nGOnHookPet\022\013\n\003" +
"key\030\001 \001(\t\022\017\n\007petTbId\030\002 \001(\005\022\020\n\010petLevel\030\003" +
" \001(\005\"(\n\013GOnHookPets\022\031\n\004pets\030\001 \003(\0132\013.GOnH" +
"ookPetB\026\n\024cn.jisol.ngame.protob\006proto3"
};
descriptor = com.google.protobuf.Descriptors.FileDescriptor
.internalBuildGeneratedFileFrom(descriptorData,
@@ -1666,13 +1756,13 @@ public final class GOnHookMessage {
internal_static_GOnHookPet_fieldAccessorTable = new
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
internal_static_GOnHookPet_descriptor,
new String[] { "Key", "PetTbId", });
new java.lang.String[] { "Key", "PetTbId", "PetLevel", });
internal_static_GOnHookPets_descriptor =
getDescriptor().getMessageTypes().get(1);
internal_static_GOnHookPets_fieldAccessorTable = new
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
internal_static_GOnHookPets_descriptor,
new String[] { "Pets", });
new java.lang.String[] { "Pets", });
}
// @@protoc_insertion_point(outer_class_scope)

View File

@@ -6,6 +6,7 @@ option java_package = "cn.jisol.ngame.proto";
message GOnHookPet {
string key = 1; //生成宠物的key
int32 petTbId = 2; //生成宠物的配置表Id
int32 petLevel = 3; //生成宠物的等级
}
//生成的宠物类列表

View File

@@ -0,0 +1,85 @@
package cn.jisol.game.table;
import cfg.TbGEntity.TOnHookLevel;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
//游戏中使用的 TbGOnHookMaps 类
public class GTbGOnHookLevels {
//TbGOnHookMaps 表数据
Object data;
public GTbGOnHookLevels(Object data){
this.data = data;
}
public static class GTbGOnHookLevel{
//TbGOnHookMap 表数据
Object data;
GTbGOnHookLevel(Object data){
this.data = data;
}
public int getId(){
try {
Field idField = data.getClass().getField("id");
return (int)idField.get(data);
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
return -1;
}
}
public TOnHookLevel getData(){
try {
Field dataField = data.getClass().getField("data");
return (TOnHookLevel)dataField.get(data);
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
return null;
}
}
}
//通过Id获取关卡
public GTbGOnHookLevel get(int key){
try {
Method method = this.data.getClass().getMethod("get",int.class);
Object data = method.invoke(this.data,key);
if(Objects.isNull(data)) return null;
return new GTbGOnHookLevel(data);
} catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
return null;
}
}
//获取全部关卡
public List<GTbGOnHookLevel> getDataList(){
try {
Method method = null;
method = this.data.getClass().getMethod("getDataList");
Object data = method.invoke(this.data);
if(Objects.isNull(data) || !(data instanceof ArrayList)){
return null;
}
return (List<GTbGOnHookLevel>) ((ArrayList)data).stream().map((Object i) -> new GTbGOnHookLevel(i)).collect(Collectors.toList());
} catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
return null;
}
}
}

View File

@@ -0,0 +1,22 @@
package cn.jisol.game.table;
import cn.jisol.game.data.TD;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
//文档工具类
public class TableUtil {
//获取名字的对象
public static Object getTDObject(String sign){
try {
Method method = TD.DATA.getClass().getMethod("get" + sign);
return method.invoke(TD.DATA);
} catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
return null;
}
}
}

View File

@@ -1,10 +0,0 @@
[
{
"id": 1,
"data": {
"level": 1,
"petLevel": 0,
"oddsId": 1
}
}
]

View File

@@ -0,0 +1,972 @@
[
{
"id": 1,
"data": {
"level": 1,
"childLevel": 1,
"petLevel": 0,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 2,
"data": {
"level": 1,
"childLevel": 2,
"petLevel": 0,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 3,
"data": {
"level": 1,
"childLevel": 3,
"petLevel": 0,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 4,
"data": {
"level": 1,
"childLevel": 4,
"petLevel": 0,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 5,
"data": {
"level": 1,
"childLevel": 5,
"petLevel": 0,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 6,
"data": {
"level": 1,
"childLevel": 6,
"petLevel": 0,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 7,
"data": {
"level": 2,
"childLevel": 1,
"petLevel": 1,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 8,
"data": {
"level": 2,
"childLevel": 2,
"petLevel": 1,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 9,
"data": {
"level": 2,
"childLevel": 3,
"petLevel": 1,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 10,
"data": {
"level": 2,
"childLevel": 4,
"petLevel": 1,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 11,
"data": {
"level": 2,
"childLevel": 5,
"petLevel": 1,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 12,
"data": {
"level": 2,
"childLevel": 6,
"petLevel": 1,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 13,
"data": {
"level": 3,
"childLevel": 1,
"petLevel": 2,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 14,
"data": {
"level": 3,
"childLevel": 2,
"petLevel": 2,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 15,
"data": {
"level": 3,
"childLevel": 3,
"petLevel": 2,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 16,
"data": {
"level": 3,
"childLevel": 4,
"petLevel": 2,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 17,
"data": {
"level": 3,
"childLevel": 5,
"petLevel": 2,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 18,
"data": {
"level": 3,
"childLevel": 6,
"petLevel": 2,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 19,
"data": {
"level": 4,
"childLevel": 1,
"petLevel": 3,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 20,
"data": {
"level": 4,
"childLevel": 2,
"petLevel": 3,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 21,
"data": {
"level": 4,
"childLevel": 3,
"petLevel": 3,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 22,
"data": {
"level": 4,
"childLevel": 4,
"petLevel": 3,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 23,
"data": {
"level": 4,
"childLevel": 5,
"petLevel": 3,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 24,
"data": {
"level": 4,
"childLevel": 6,
"petLevel": 3,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 25,
"data": {
"level": 5,
"childLevel": 1,
"petLevel": 4,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 26,
"data": {
"level": 5,
"childLevel": 2,
"petLevel": 4,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 27,
"data": {
"level": 5,
"childLevel": 3,
"petLevel": 4,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 28,
"data": {
"level": 5,
"childLevel": 4,
"petLevel": 4,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 29,
"data": {
"level": 5,
"childLevel": 5,
"petLevel": 4,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 30,
"data": {
"level": 5,
"childLevel": 6,
"petLevel": 4,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 31,
"data": {
"level": 6,
"childLevel": 1,
"petLevel": 5,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 32,
"data": {
"level": 6,
"childLevel": 2,
"petLevel": 5,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 33,
"data": {
"level": 6,
"childLevel": 3,
"petLevel": 5,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 34,
"data": {
"level": 6,
"childLevel": 4,
"petLevel": 5,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 35,
"data": {
"level": 6,
"childLevel": 5,
"petLevel": 5,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 36,
"data": {
"level": 6,
"childLevel": 6,
"petLevel": 5,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 37,
"data": {
"level": 7,
"childLevel": 1,
"petLevel": 6,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 38,
"data": {
"level": 7,
"childLevel": 2,
"petLevel": 6,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 39,
"data": {
"level": 7,
"childLevel": 3,
"petLevel": 6,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 40,
"data": {
"level": 7,
"childLevel": 4,
"petLevel": 6,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 41,
"data": {
"level": 7,
"childLevel": 5,
"petLevel": 6,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 42,
"data": {
"level": 7,
"childLevel": 6,
"petLevel": 6,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 43,
"data": {
"level": 8,
"childLevel": 1,
"petLevel": 7,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 44,
"data": {
"level": 8,
"childLevel": 2,
"petLevel": 7,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 45,
"data": {
"level": 8,
"childLevel": 3,
"petLevel": 7,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 46,
"data": {
"level": 8,
"childLevel": 4,
"petLevel": 7,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 47,
"data": {
"level": 8,
"childLevel": 5,
"petLevel": 7,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 48,
"data": {
"level": 8,
"childLevel": 6,
"petLevel": 7,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 49,
"data": {
"level": 9,
"childLevel": 1,
"petLevel": 8,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 50,
"data": {
"level": 9,
"childLevel": 2,
"petLevel": 8,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 51,
"data": {
"level": 9,
"childLevel": 3,
"petLevel": 8,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 52,
"data": {
"level": 9,
"childLevel": 4,
"petLevel": 8,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 53,
"data": {
"level": 9,
"childLevel": 5,
"petLevel": 8,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 54,
"data": {
"level": 9,
"childLevel": 6,
"petLevel": 8,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 55,
"data": {
"level": 10,
"childLevel": 1,
"petLevel": 9,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 56,
"data": {
"level": 10,
"childLevel": 2,
"petLevel": 9,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 57,
"data": {
"level": 10,
"childLevel": 3,
"petLevel": 9,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 58,
"data": {
"level": 10,
"childLevel": 4,
"petLevel": 9,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 59,
"data": {
"level": 10,
"childLevel": 5,
"petLevel": 9,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 60,
"data": {
"level": 10,
"childLevel": 6,
"petLevel": 9,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 61,
"data": {
"level": 11,
"childLevel": 1,
"petLevel": 10,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 62,
"data": {
"level": 11,
"childLevel": 2,
"petLevel": 10,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 63,
"data": {
"level": 11,
"childLevel": 3,
"petLevel": 10,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 64,
"data": {
"level": 11,
"childLevel": 4,
"petLevel": 10,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 65,
"data": {
"level": 11,
"childLevel": 5,
"petLevel": 10,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 66,
"data": {
"level": 11,
"childLevel": 6,
"petLevel": 10,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 67,
"data": {
"level": 12,
"childLevel": 1,
"petLevel": 11,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 68,
"data": {
"level": 12,
"childLevel": 2,
"petLevel": 11,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 69,
"data": {
"level": 12,
"childLevel": 3,
"petLevel": 11,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 70,
"data": {
"level": 12,
"childLevel": 4,
"petLevel": 11,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 71,
"data": {
"level": 12,
"childLevel": 5,
"petLevel": 11,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 72,
"data": {
"level": 12,
"childLevel": 6,
"petLevel": 11,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 73,
"data": {
"level": 13,
"childLevel": 1,
"petLevel": 12,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 74,
"data": {
"level": 13,
"childLevel": 2,
"petLevel": 12,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 75,
"data": {
"level": 13,
"childLevel": 3,
"petLevel": 12,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 76,
"data": {
"level": 13,
"childLevel": 4,
"petLevel": 12,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 77,
"data": {
"level": 13,
"childLevel": 5,
"petLevel": 12,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 78,
"data": {
"level": 13,
"childLevel": 6,
"petLevel": 12,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 79,
"data": {
"level": 14,
"childLevel": 1,
"petLevel": 13,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 80,
"data": {
"level": 14,
"childLevel": 2,
"petLevel": 13,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 81,
"data": {
"level": 14,
"childLevel": 3,
"petLevel": 13,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 82,
"data": {
"level": 14,
"childLevel": 4,
"petLevel": 13,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 83,
"data": {
"level": 14,
"childLevel": 5,
"petLevel": 13,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 84,
"data": {
"level": 14,
"childLevel": 6,
"petLevel": 13,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 85,
"data": {
"level": 15,
"childLevel": 1,
"petLevel": 14,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 86,
"data": {
"level": 15,
"childLevel": 2,
"petLevel": 14,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 87,
"data": {
"level": 15,
"childLevel": 3,
"petLevel": 14,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 88,
"data": {
"level": 15,
"childLevel": 4,
"petLevel": 14,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 89,
"data": {
"level": 15,
"childLevel": 5,
"petLevel": 14,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 90,
"data": {
"level": 15,
"childLevel": 6,
"petLevel": 14,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 91,
"data": {
"level": 16,
"childLevel": 1,
"petLevel": 15,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 92,
"data": {
"level": 16,
"childLevel": 2,
"petLevel": 15,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 93,
"data": {
"level": 16,
"childLevel": 3,
"petLevel": 15,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 94,
"data": {
"level": 16,
"childLevel": 4,
"petLevel": 15,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 95,
"data": {
"level": 16,
"childLevel": 5,
"petLevel": 15,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 96,
"data": {
"level": 16,
"childLevel": 6,
"petLevel": 15,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 97,
"data": {
"level": 17,
"childLevel": 1,
"petLevel": 16,
"petSize": 1,
"oddsId": 1
}
}
]

View File

@@ -9,7 +9,7 @@
10002,
10003
],
"sign": "",
"sign": "TbGOnHookMap120001",
"introduce": "新手地图在这里可以遇到可爱的宠物哦~"
},
{
@@ -23,7 +23,7 @@
10006,
10007
],
"sign": "",
"sign": "TbGOnHookMap120001",
"introduce": "魔法阵 这里有魔法精灵~"
}
]