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