森罗环境表结构修改,英雄信息添加公会技能等级

lvxinran 2020-06-26 04:49:30 +08:00
parent d64cf6d16d
commit 564e0cfc12
4 changed files with 42 additions and 105 deletions

View File

@ -3170,13 +3170,9 @@ public class MapLogic {
if(map instanceof TowerMap){
int curXY = mapManager.getCurXY();
int floor = mapManager.getTrialInfo().getFloor();
if(floor>10000){
STrialwelfareConfig welfareConfig = STrialwelfareConfig.sTrialwelfareConfigMap.get(floor % 10000);
drop = getBoxReward(welfareConfig.getBoxPosition(),welfareConfig.getBoxReward(),user,curXY,type);
}else{
STrialConfig sTrialConfig = STrialConfig.sTrialConfigMap.get(floor);
drop = getBoxReward(sTrialConfig.getBoxPosition(),sTrialConfig.getBoxReward(),user,curXY,type);
}
TreeMap<Integer, STrialConfig> sTrialConfigMap = (TreeMap<Integer,STrialConfig>)STrialConfig.sTrialConfigMap;
STrialConfig sTrialConfig = sTrialConfigMap.ceilingEntry(floor).getValue();
drop = getBoxReward(sTrialConfig.getBoxPosition(),sTrialConfig.getBoxReward(),user,curXY,type);
}
if(drop==null){
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);

View File

@ -176,32 +176,36 @@ public class TowerMap extends AbstractMap {
return;
}
int floor = mapManager.getTrialInfo().getFloor();
STrialConfig sTrialConfig;
if(floor>10000){
int realFloor = floor%10000;
Map<Integer,STrialwelfareConfig> welfareMap = STableManager.getConfig(STrialwelfareConfig.class);
STrialwelfareConfig useConfig = null;
for(STrialwelfareConfig config :welfareMap.values()){
int[] section = config.getSection();
if(realFloor>section[0]&&realFloor<=section[1]){
useConfig = config;
break;
}
}
Map<Integer, Cell> newMap = new HashMap<>();
if(useConfig!=null&&useConfig.getBoxPosition()!=null){
for(int[] position:useConfig.getBoxPosition()){
int cellXY = CellUtil.xy2Pos(position[0], position[1]);
Cell cell = new Cell(cellXY,0,STrialSetting.sTrialSetting.getBoxPointId());
newMap.put(cellXY,cell);
}
}
//生成普通传送门
Cell transport = createTransport(floor);
newMap.put(transport.getCellId(),transport);
mapManager.setMapInfo(newMap);
return;
// int realFloor = floor%10000;
// Map<Integer,STrialwelfareConfig> welfareMap = STableManager.getConfig(STrialwelfareConfig.class);
// STrialwelfareConfig useConfig = null;
// for(STrialwelfareConfig config :welfareMap.values()){
// int[] section = config.getSection();
// if(realFloor>section[0]&&realFloor<=section[1]){
// useConfig = config;
// break;
// }
// }
// Map<Integer, Cell> newMap = new HashMap<>();
// if(useConfig!=null&&useConfig.getBoxPosition()!=null){
// for(int[] position:useConfig.getBoxPosition()){
// int cellXY = CellUtil.xy2Pos(position[0], position[1]);
// Cell cell = new Cell(cellXY,0,STrialSetting.sTrialSetting.getBoxPointId());
// newMap.put(cellXY,cell);
// }
// }
// //生成普通传送门
// mapManager.setMapInfo(newMap);
// return;
TreeMap<Integer,STrialConfig> sTrialConfigMap = (TreeMap<Integer,STrialConfig>) STrialConfig.sTrialConfigMap;
sTrialConfig = sTrialConfigMap.ceilingEntry(floor).getValue();
}else{
sTrialConfig = STrialConfig.sTrialConfigMap.get(floor);
}
STrialConfig sTrialConfig = STrialConfig.sTrialConfigMap.get(floor);
if (sTrialConfig == null) {
LOGGER.info("initTrialMap() uid=>{} sTrialConfig == null =>{} ", user.getId(), floor);
return;
@ -277,14 +281,11 @@ public class TowerMap extends AbstractMap {
}
} else if (scMap1.getEvent() == 3) {
//初始化商店
int storeIndex = MathUtils.randomFromWeight(STrialConfig.sTrialConfigMap.get(mapManager.getTrialInfo().getFloor()).getRandomStore());
int storeIndex = MathUtils.randomFromWeight(sTrialConfig.getRandomStore());
StoreLogic.initOrUpdateOneStore(user,8,storeIndex);
int i = 0;
while (cellMap3.size() < sTrialConfig.getGameCount()[2]) {
i++;
if (i >= 10000) {
break;
}
int randomIndex = random.nextInt(scMap1.getGroups().length);
int x = scMap1.getGroups()[randomIndex][0];
int y = scMap1.getGroups()[randomIndex][1];
@ -331,6 +332,11 @@ public class TowerMap extends AbstractMap {
newMap.putAll(cellMap3);
newMap.putAll(cellMap4);
}
//大于10000要生成传送门
if(floor>10000){
Cell transport = createTransport(floor);
newMap.put(transport.getCellId(),transport);
}
SChallengeMapConfig challengeMapConfig = STableManager.getConfig(SChallengeMapConfig.class).get(sTrialConfig.getMapId());
int xy = CellUtil.xy2Pos(challengeMapConfig.getPosition()[0], challengeMapConfig.getPosition()[1]);
mapManager.setCurXY(xy);
@ -465,7 +471,7 @@ public class TowerMap extends AbstractMap {
private Cell createTransport(int floor){
int transportPoint;
//是否为5层整数倍
if(floor%5==0&&floor<10000){
if(floor%2==0&&floor<10000){
//如果是则进行随机
int[] treasureProbability = STrialSetting.sTrialSetting.getTreasureProbability();
int[] transportPointId= STrialSetting.sTrialSetting.getTransportPoint();

View File

@ -654,6 +654,10 @@ public class PlayerLogic {
}
builder.setForce(HeroLogic.getInstance().calForce(heroNotBufferAttribute));
builder.setHero(CBean2Proto.getHero(hero));
Map<Integer, Integer> guildSkill = userInMem.getGuildMyInfo().getGuildSkill();
int profession = SCHero.getsCHero().get(hero.getTemplateId()).getProfession();
Integer skill = guildSkill.getOrDefault(profession, 0);
builder.setGuildSkill(skill);
MessageUtil.sendMessage(session,1,resMsgId,builder.build(),true);
}

View File

@ -1,69 +0,0 @@
package config;
import manager.STableManager;
import manager.Table;
import java.util.HashMap;
import java.util.Map;
@Table(name ="TrialwelfareConfig")
public class STrialwelfareConfig implements BaseConfig {
private int id;
private int[] section;
private int mapId;
private int[][] randomMonsterType;
private int[] monsterCount;
private int[][][] boxReward;
private int[][] boxPosition;
public static Map<Integer,STrialwelfareConfig> sTrialwelfareConfigMap = new HashMap<>();
@Override
public void init() throws Exception {
Map<Integer, STrialwelfareConfig> config = STableManager.getConfig(STrialwelfareConfig.class);
for(STrialwelfareConfig value:config.values()){
int[] section = value.getSection();
for(int i = section[0];i <= section[1];i++){
sTrialwelfareConfigMap.put(i,value);
}
}
}
public int getId() {
return id;
}
public int[] getSection() {
return section;
}
public int getMapId() {
return mapId;
}
public int[][] getRandomMonsterType() {
return randomMonsterType;
}
public int[] getMonsterCount() {
return monsterCount;
}
public int[][][] getBoxReward() {
return boxReward;
}
public int[][] getBoxPosition() {
return boxPosition;
}
}