back_recharge
parent
3c5f29e2e5
commit
705e81c629
|
@ -380,5 +380,6 @@ public interface BIReason {
|
||||||
|
|
||||||
int GM_COST = 1228;//gm删除道具
|
int GM_COST = 1228;//gm删除道具
|
||||||
int EXPLORE_MAP_COST = 1229;//探索地图消耗
|
int EXPLORE_MAP_COST = 1229;//探索地图消耗
|
||||||
int EXPLORE_MAP_GET = 1230;//探索地图消耗
|
int EXPLORE_MAP_GET = 1230;//探索地图奖励
|
||||||
|
int EXPLORE_MAP_COST_RETURN = 1231;//探索地图消耗返还
|
||||||
}
|
}
|
|
@ -36,8 +36,8 @@ public class ExplorerMapInfoHandler extends BaseHandler<PlayerInfoProto.Explore
|
||||||
if(!explorer.containsKey(i)){
|
if(!explorer.containsKey(i)){
|
||||||
record = CommonProto.ExplorerMapInfo.newBuilder().setTeamId(i).build();
|
record = CommonProto.ExplorerMapInfo.newBuilder().setTeamId(i).build();
|
||||||
}else{
|
}else{
|
||||||
for(int[]drop:explorer.get(i).getDropItem() ){
|
for(Map.Entry<Integer,Integer> keyVal:explorer.get(i).getDropMap().entrySet() ){
|
||||||
dropKeyValList.add( CommonProto.CommKeyVal.newBuilder().setKey(drop[0]).setVal(drop[1]).build());
|
dropKeyValList.add( CommonProto.CommKeyVal.newBuilder().setKey(keyVal.getKey()).setVal(keyVal.getValue()).build());
|
||||||
}
|
}
|
||||||
record = CommonProto.ExplorerMapInfo.newBuilder().setTeamId(i).setMapId(explorer.get(i).getMapId()).setHp(explorer.get(i).getPlayerHp()).
|
record = CommonProto.ExplorerMapInfo.newBuilder().setTeamId(i).setMapId(explorer.get(i).getMapId()).setHp(explorer.get(i).getPlayerHp()).
|
||||||
setExploreTime(explorer.get(i).getSendEndTime()).addAllDropReward(dropKeyValList).build();
|
setExploreTime(explorer.get(i).getSendEndTime()).addAllDropReward(dropKeyValList).build();
|
||||||
|
|
|
@ -19,6 +19,7 @@ import util.StringUtil;
|
||||||
import util.TimeUtils;
|
import util.TimeUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
@ -47,20 +48,20 @@ public class ExplorerMapRewardHandler extends BaseHandler<PlayerInfoProto.Explor
|
||||||
if(exInfo.getSendEndTime()> TimeUtils.nowInt()){
|
if(exInfo.getSendEndTime()> TimeUtils.nowInt()){
|
||||||
int min = (exInfo.getSendEndTime() - TimeUtils.nowInt())/60;
|
int min = (exInfo.getSendEndTime() - TimeUtils.nowInt())/60;
|
||||||
SExplore exploreConfig = STableManager.getConfig(SExplore.class).get(exInfo.getMapId());
|
SExplore exploreConfig = STableManager.getConfig(SExplore.class).get(exInfo.getMapId());
|
||||||
int [] drop = new int[2];
|
int itemId = exploreConfig.getCost()[0];
|
||||||
drop[0]=exploreConfig.getCost()[0];
|
int itemNum = exploreConfig.getCost()[1]*min;
|
||||||
drop[1]=exploreConfig.getCost()[1]*min;
|
Map<Integer,Integer> comDropMap = new HashMap<>();
|
||||||
/*MailLogic.getInstance().sendMail(uid, "探索返还晶石", "您提前结束了队伍X在【地图名称】中的探索,以下为尚未消耗的晶石,请查收。",
|
Map<Integer,Integer> dropmap=explorer.get(teamId).getDropMap();
|
||||||
StringUtil.parseArrayToString(drop), TimeUtils.nowInt(), Global.MAIL_EFFECTIVE_TIME);*/
|
comDropMap.putAll(dropmap);
|
||||||
List<int[]> comDrop =new ArrayList<int[]>();
|
if(comDropMap.containsKey(itemId)){
|
||||||
comDrop.add(drop);
|
comDropMap.put(itemId,comDropMap.get(itemId)+itemNum);
|
||||||
comDrop.addAll(explorer.get(teamId).getDropItem());
|
}else{
|
||||||
//CommonProto.Drop.Builder returnReward = ItemUtil.drop(user, drop, BIReason.EXPEDITION_BOX_REWARD);
|
comDropMap.put(itemId,itemNum);
|
||||||
//MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.ExplorerMapInfoResponse.getNumber(), builder.build(), true);
|
}
|
||||||
|
CommonProto.Drop.Builder dropPro = ItemUtil.drop(user, comDropMap.entrySet().stream().map(n->new int[]{n.getKey(),n.getValue()}).toArray(int[][]::new), BIReason.EXPLORE_MAP_COST_RETURN);
|
||||||
|
explorer.get(teamId).getDropMap().clear();
|
||||||
|
explorer.get(teamId).setDropMap(explorer.get(teamId).getDropMap());
|
||||||
CommonProto.ExplorerMapInfo explorerMapInfo = CommonProto.ExplorerMapInfo.newBuilder().setTeamId(teamId).build();
|
CommonProto.ExplorerMapInfo explorerMapInfo = CommonProto.ExplorerMapInfo.newBuilder().setTeamId(teamId).build();
|
||||||
CommonProto.Drop.Builder dropPro = ItemUtil.drop(user, explorer.get(teamId).getDropItem().stream().toArray(int[][]::new), BIReason.EXPEDITION_BOX_REWARD);
|
|
||||||
explorer.get(teamId).getDropItem().clear();
|
|
||||||
explorer.get(teamId).setDropItem(explorer.get(teamId).getDropItem());
|
|
||||||
MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.ExplorerMapRewardResponse.getNumber(), builder.setDrop(dropPro).
|
MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.ExplorerMapRewardResponse.getNumber(), builder.setDrop(dropPro).
|
||||||
setExploreInfo(explorerMapInfo).build(), true);
|
setExploreInfo(explorerMapInfo).build(), true);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,9 @@ package com.ljsd.jieling.logic.dao;
|
||||||
import com.ljsd.common.mogodb.MongoBase;
|
import com.ljsd.common.mogodb.MongoBase;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public class ExplorerInfo extends MongoBase {
|
public class ExplorerInfo extends MongoBase {
|
||||||
|
|
||||||
|
@ -15,13 +17,13 @@ public class ExplorerInfo extends MongoBase {
|
||||||
private int enemyHp;//敌人血量
|
private int enemyHp;//敌人血量
|
||||||
private int enemyReliveTime;//敌人复活时间
|
private int enemyReliveTime;//敌人复活时间
|
||||||
private int batteTime;//战斗时间
|
private int batteTime;//战斗时间
|
||||||
private List<int[]> dropItem = new ArrayList<>();
|
private Map<Integer,Integer> dropMap = new HashMap<>();//掉落
|
||||||
|
|
||||||
public ExplorerInfo() {
|
public ExplorerInfo() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExplorerInfo(int mapId, int sendEndTime, int sendTime, int playerHp, int playerReliveTime, int enemyHp, int enemyReliveTime, int batteTime, List<int[]> dropItem) {
|
public ExplorerInfo(int mapId, int sendEndTime, int sendTime, int playerHp, int playerReliveTime, int enemyHp, int enemyReliveTime, int batteTime, Map<Integer, Integer> dropMap) {
|
||||||
this.mapId = mapId;
|
this.mapId = mapId;
|
||||||
this.sendEndTime = sendEndTime;
|
this.sendEndTime = sendEndTime;
|
||||||
this.sendTime = sendTime;
|
this.sendTime = sendTime;
|
||||||
|
@ -30,7 +32,7 @@ public class ExplorerInfo extends MongoBase {
|
||||||
this.enemyHp = enemyHp;
|
this.enemyHp = enemyHp;
|
||||||
this.enemyReliveTime = enemyReliveTime;
|
this.enemyReliveTime = enemyReliveTime;
|
||||||
this.batteTime = batteTime;
|
this.batteTime = batteTime;
|
||||||
this.dropItem = dropItem;
|
this.dropMap = dropMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getMapId() {
|
public int getMapId() {
|
||||||
|
@ -101,16 +103,6 @@ public class ExplorerInfo extends MongoBase {
|
||||||
this.sendTime = sendTime;
|
this.sendTime = sendTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<int[]> getDropItem() {
|
|
||||||
return dropItem;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDropItem(List<int[]> dropItem) {
|
|
||||||
updateString("dropItem", dropItem);
|
|
||||||
this.dropItem = dropItem;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public int getBatteTime() {
|
public int getBatteTime() {
|
||||||
return batteTime;
|
return batteTime;
|
||||||
}
|
}
|
||||||
|
@ -119,4 +111,13 @@ public class ExplorerInfo extends MongoBase {
|
||||||
updateString("batteTime", batteTime);
|
updateString("batteTime", batteTime);
|
||||||
this.batteTime = batteTime;
|
this.batteTime = batteTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Map<Integer, Integer> getDropMap() {
|
||||||
|
return dropMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDropMap(Map<Integer, Integer> dropMap) {
|
||||||
|
updateString("dropMap", dropMap);
|
||||||
|
this.dropMap = dropMap;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,10 +30,7 @@ import rpc.protocols.MessageTypeProto;
|
||||||
import util.StringUtil;
|
import util.StringUtil;
|
||||||
import util.TimeUtils;
|
import util.TimeUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
public class ExplorerMapLogic {
|
public class ExplorerMapLogic {
|
||||||
|
@ -105,23 +102,37 @@ public class ExplorerMapLogic {
|
||||||
LOGGER.error("玩家死亡=》重生时间{}", explorerInfo.getPlayerReliveTime());
|
LOGGER.error("玩家死亡=》重生时间{}", explorerInfo.getPlayerReliveTime());
|
||||||
}
|
}
|
||||||
//怪物死亡 设置重生时间
|
//怪物死亡 设置重生时间
|
||||||
if (explorerInfo.getEnemyHp() == 0) {
|
if (explorerInfo.getEnemyHp()== 0) {
|
||||||
//玩家赢了
|
//玩家赢了
|
||||||
List<int[]> dropitem = explorerInfo.getDropItem();
|
Map<Integer,Integer> dropMap = explorerInfo.getDropMap();
|
||||||
if (dropitem == null) {
|
if(dropMap == null){
|
||||||
dropitem = new ArrayList<>();
|
dropMap = new HashMap<>();
|
||||||
}
|
}
|
||||||
Map<Integer, Integer> itemMap = ItemUtil.getItemMapByGroupId(user, exploreConfig.getReward(), 1, 0, BIReason.EXPLORE_MAP_GET);
|
Map<Integer, Integer> itemMap = ItemUtil.getItemMapByGroupId(user, exploreConfig.getReward(), 1, 0, BIReason.EXPLORE_MAP_GET);
|
||||||
List<int[]> addDropitem = itemMap.entrySet().stream().map(n -> new int[]{n.getKey(), n.getValue()}).collect(Collectors.toList());
|
for(Map.Entry<Integer,Integer> keyVal:itemMap.entrySet()){
|
||||||
dropitem.addAll(addDropitem);
|
if(dropMap.containsKey(keyVal.getKey())){
|
||||||
explorerInfo.setDropItem(dropitem);
|
dropMap.put(keyVal.getKey(),dropMap.get(keyVal.getKey())+keyVal.getValue());
|
||||||
|
}else{
|
||||||
if (time == 0) {
|
dropMap.put(keyVal.getKey(),keyVal.getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
explorerInfo.setDropMap(dropMap);
|
||||||
|
ISession sess = OnlineUserManager.sessionMap.get(user.getId());
|
||||||
|
if (sess != null){
|
||||||
|
List<CommonProto.CommKeyVal> dropKeyValList = new ArrayList<>();
|
||||||
|
for(Map.Entry<Integer,Integer> keyVal:explorerInfo.getDropMap().entrySet() ){
|
||||||
|
dropKeyValList.add( CommonProto.CommKeyVal.newBuilder().setKey(keyVal.getKey()).setVal(keyVal.getValue()).build());
|
||||||
|
}
|
||||||
|
CommonProto.ExplorerMapInfo mapInfo = CommonProto.ExplorerMapInfo.newBuilder().setTeamId(teamId).setMapId(explorerInfo.getMapId()).setHp(explorerInfo.getPlayerHp()).
|
||||||
|
setExploreTime(explorerInfo.getSendEndTime()).addAllDropReward(dropKeyValList).build();
|
||||||
|
MessageUtil.sendIndicationMessage(sess, 1, MessageTypeProto.MessageType.ExplorerMapIndicationResponse_VALUE, mapInfo, true);
|
||||||
|
}
|
||||||
|
if (time == 0) {
|
||||||
explorerInfo.setEnemyReliveTime(TimeUtils.nowInt() + 300);
|
explorerInfo.setEnemyReliveTime(TimeUtils.nowInt() + 300);
|
||||||
} else {
|
} else {
|
||||||
explorerInfo.setEnemyReliveTime(time + 300);
|
explorerInfo.setEnemyReliveTime(time + 300);
|
||||||
}
|
}
|
||||||
LOGGER.error("玩家死亡=》重生时间{} 掉落=>{}", explorerInfo.getEnemyReliveTime(),exploreConfig.getReward());
|
LOGGER.error("怪物死亡=》重生时间{} 掉落=>{}", explorerInfo.getEnemyReliveTime(),exploreConfig.getReward());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (time == 0) {
|
if (time == 0) {
|
||||||
|
@ -261,7 +272,7 @@ public class ExplorerMapLogic {
|
||||||
String teamName = TeamEnum.getEnumByteamId(id).getRemarks();
|
String teamName = TeamEnum.getEnumByteamId(id).getRemarks();
|
||||||
String mapName = exploreConfig.getName();
|
String mapName = exploreConfig.getName();
|
||||||
int hour =explorer.get(id).getSendTime()/3600;
|
int hour =explorer.get(id).getSendTime()/3600;
|
||||||
if (explorer.get(id).getDropItem().size() == 0 || explorer.get(id).getDropItem() == null) {
|
if (explorer.get(id).getDropMap().size() == 0 || explorer.get(id).getDropMap() == null) {
|
||||||
LOGGER.error("到期啥都没得到发邮件");
|
LOGGER.error("到期啥都没得到发邮件");
|
||||||
String title = SErrorCodeEerverConfig.getI18NMessage("explorefail_mail_title");
|
String title = SErrorCodeEerverConfig.getI18NMessage("explorefail_mail_title");
|
||||||
String content = SErrorCodeEerverConfig.getFormatMessage("explorefail_mail_txt", new Object[]{teamName,mapName,hour});
|
String content = SErrorCodeEerverConfig.getFormatMessage("explorefail_mail_txt", new Object[]{teamName,mapName,hour});
|
||||||
|
@ -272,7 +283,7 @@ public class ExplorerMapLogic {
|
||||||
String title = SErrorCodeEerverConfig.getI18NMessage("exploresuccess_mail_title");
|
String title = SErrorCodeEerverConfig.getI18NMessage("exploresuccess_mail_title");
|
||||||
String content = SErrorCodeEerverConfig.getFormatMessage("exploresuccess_mail_txt", new Object[]{teamName,mapName,hour});
|
String content = SErrorCodeEerverConfig.getFormatMessage("exploresuccess_mail_txt", new Object[]{teamName,mapName,hour});
|
||||||
//CommonProto.Drop.Builder drop = ItemUtil.drop(user, explorer.get(id).getDropItem().stream().toArray(int[][]::new), BIReason.EXPEDITION_BOX_REWARD);
|
//CommonProto.Drop.Builder drop = ItemUtil.drop(user, explorer.get(id).getDropItem().stream().toArray(int[][]::new), BIReason.EXPEDITION_BOX_REWARD);
|
||||||
int[][] dropArray = explorer.get(id).getDropItem().stream().toArray(int[][]::new);
|
int[][] dropArray = explorer.get(id).getDropMap().entrySet().stream().map(n->new int[]{n.getKey(),n.getValue()}).toArray(int[][]::new);
|
||||||
MailLogic.getInstance().sendMail(uid, title, content,
|
MailLogic.getInstance().sendMail(uid, title, content,
|
||||||
StringUtil.parseArrayToString(dropArray), TimeUtils.nowInt(), Global.MAIL_EFFECTIVE_TIME);
|
StringUtil.parseArrayToString(dropArray), TimeUtils.nowInt(), Global.MAIL_EFFECTIVE_TIME);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue