竞技场奖励
parent
eba32c1b52
commit
47595e498f
|
@ -0,0 +1,58 @@
|
|||
package com.ljsd.jieling.handler.arena;
|
||||
|
||||
import com.google.protobuf.GeneratedMessage;
|
||||
import com.ljsd.jieling.exception.ErrorCode;
|
||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.handler.BaseHandler;
|
||||
import com.ljsd.jieling.logic.dao.ArenaManager;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.protocols.ArenaInfoProto;
|
||||
import com.ljsd.jieling.protocols.CommonProto;
|
||||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import config.SArenaBattleReward;
|
||||
import manager.STableManager;
|
||||
|
||||
/**
|
||||
* Description: des
|
||||
* Author: zsx
|
||||
* CreateDate: 2020/7/6 21:19
|
||||
*/
|
||||
public class TakeArenaBattleRewardRequestHandler extends BaseHandler<ArenaInfoProto.TakeArenaBattleRewardRequest> {
|
||||
@Override
|
||||
public MessageTypeProto.MessageType getMessageCode() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GeneratedMessage processWithProto(int uid, ArenaInfoProto.TakeArenaBattleRewardRequest proto) throws Exception {
|
||||
|
||||
int missionId = proto.getMissionId();
|
||||
//check cfg
|
||||
SArenaBattleReward sArenaBattleReward = STableManager.getConfig(SArenaBattleReward.class).get(missionId);
|
||||
if(sArenaBattleReward==null){
|
||||
throw new ErrorCodeException(ErrorCode.CFG_NULL);
|
||||
}
|
||||
|
||||
User user = UserManager.getUser(uid);
|
||||
ArenaManager arenaManager = user.getArenaManager();
|
||||
//幂等
|
||||
boolean contains = arenaManager.getHadTakeReward().contains(missionId);
|
||||
if(contains){
|
||||
throw new ErrorCodeException(ErrorCode.HAD_TAKE_REWARD);
|
||||
}
|
||||
|
||||
//check condition
|
||||
boolean b = sArenaBattleReward.getBattleTimes() > arenaManager.getFailNums() + arenaManager.getSuccessNums();
|
||||
if(b){
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_DEFINE);
|
||||
}
|
||||
arenaManager.getHadTakeReward().add(missionId);
|
||||
//drop
|
||||
int[][] reward = sArenaBattleReward.getReward();
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, BIReason.EXPEDITION_BOX_REWARD);
|
||||
return ArenaInfoProto.TakeArenaBattleRewardResponse.newBuilder().setDrop(drop).build();
|
||||
}
|
||||
}
|
|
@ -2,10 +2,7 @@ package com.ljsd.jieling.logic.dao;
|
|||
|
||||
import com.ljsd.common.mogodb.MongoBase;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
|
||||
|
||||
public class ArenaManager extends MongoBase {
|
||||
|
@ -26,7 +23,7 @@ public class ArenaManager extends MongoBase {
|
|||
|
||||
|
||||
private List<ArenaEnemy> arenaEnemies;
|
||||
|
||||
private List<Integer> hadTakeReward;
|
||||
|
||||
public void updateChallenge(int fightResult){
|
||||
if(fightResult == 1){
|
||||
|
@ -89,12 +86,14 @@ public class ArenaManager extends MongoBase {
|
|||
this.count=0;
|
||||
this.flushTime=0;
|
||||
this.flushNums=0;
|
||||
hadTakeReward=new LinkedList<>();
|
||||
updateString("season",season);
|
||||
updateString("failNums",failNums);
|
||||
updateString("successNums",successNums);
|
||||
updateString("count",count);
|
||||
updateString("flushTime",flushTime);
|
||||
updateString("flushNums",flushNums);
|
||||
updateString("hadTakeReward",hadTakeReward);
|
||||
}
|
||||
|
||||
public int getTopMaxRank() {
|
||||
|
@ -105,4 +104,13 @@ public class ArenaManager extends MongoBase {
|
|||
this.topMaxRank = topMaxRank;
|
||||
updateString("topMaxRank",topMaxRank);
|
||||
}
|
||||
|
||||
public List<Integer> getHadTakeReward() {
|
||||
if(null ==hadTakeReward){
|
||||
hadTakeReward= new LinkedList<>();
|
||||
}
|
||||
updateString("hadTakeReward",hadTakeReward);
|
||||
return hadTakeReward;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -593,6 +593,18 @@ public class GuildLogic {
|
|||
RedisUtil.getInstence().removeMapEntrys(RedisKey.USER_LEVEL_GUILD_INFO,"",String.valueOf(applyId));
|
||||
Poster.getPoster().dispatchEvent(new GuildForceChangeEvent(targetUser.getId(),targetUser.getPlayerInfoManager().getGuildId(),1,targetUser.getPlayerInfoManager().getMaxForce()));
|
||||
|
||||
|
||||
Family.GuildHelpInfoIndication.Builder builder = Family.GuildHelpInfoIndication.newBuilder();
|
||||
for (Map.Entry<Integer, Integer> entry : targetUser.getGuildMyInfo().getGuidHelpInfo().entrySet()) {
|
||||
builder.addGuildHelpInfo(CommonProto.GuildHelpInfo.newBuilder()
|
||||
.setHadtakenum(targetUser.getGuildMyInfo().getGuidHelpHadTakeInfo().getOrDefault(entry.getKey(),0))
|
||||
.setType(entry.getKey())
|
||||
.setNum(entry.getValue()));
|
||||
}
|
||||
|
||||
//notify all change
|
||||
Family.GuildHelpInfoIndication build = builder.setUid(targetUser.getId()).setName(targetUser.getPlayerInfoManager().getNickName()).build();
|
||||
GuildLogic.sendIndicationToMember(GuilidManager.guildInfoMap.get(guildInfo.getId()), MessageTypeProto.MessageType.GuildHelpInfoIndication,build);
|
||||
// targetUser.getUserMissionManager().onGameEvent(targetUser, GameEvent.JOIN_FAMILY);
|
||||
}finally {
|
||||
RedisUtil.getInstence().releaseDistributedLock(RedisKey.OPERATE_FAMILY_APPLY_JOIN,Integer.toString(applyId), Integer.toString(applyId));
|
||||
|
@ -1380,10 +1392,11 @@ public class GuildLogic {
|
|||
RedisUtil.getInstence().putMapEntry(RedisKey.USER_LEVEL_GUILD_INFO,"",String.valueOf(user.getId()),guildId);
|
||||
//删除战力
|
||||
Poster.getPoster().dispatchEvent(new GuildForceChangeEvent(user.getId(),user.getPlayerInfoManager().getGuildId(),3,0-user.getPlayerInfoManager().getMaxForce()));
|
||||
//notify all
|
||||
//notify ALL
|
||||
Family.GuildHelpInfoIndication.Builder build = Family.GuildHelpInfoIndication.newBuilder();
|
||||
for (Map.Entry<Integer, Integer> entry : user.getGuildMyInfo().getGuidHelpInfo().entrySet()) {
|
||||
//通知前端清除公会成员援助信息
|
||||
build.setUid(user.getId());
|
||||
build.addGuildHelpInfo(CommonProto.GuildHelpInfo.newBuilder().setType(entry.getKey()).setNum(-1));
|
||||
}
|
||||
GuildLogic.sendIndicationToMember(GuilidManager.guildInfoMap.get(user.getPlayerInfoManager().getGuildId()), MessageTypeProto.MessageType.GuildHelpInfoIndication,build.build());
|
||||
|
@ -1435,4 +1448,5 @@ public class GuildLogic {
|
|||
MailLogic.getInstance().sendMail(user.getId(),title,content,mailReward,(int) (TimeUtils.now()/1000), Global.MAIL_EFFECTIVE_TIME);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -1707,9 +1707,9 @@ public class HeroLogic{
|
|||
float score = sPropertyConfig.getScore();
|
||||
|
||||
result += propertyValue*score;
|
||||
LOGGER.info("the propertyId={} the value is ={},propertyValue={},score={},result ={},the value={}",propertyId,propertyValue*score,propertyValue,score,result,propertyValue*score);
|
||||
// LOGGER.info("the propertyId={} the value is ={},propertyValue={},score={},result ={},the value={}",propertyId,propertyValue*score,propertyValue,score,result,propertyValue*score);
|
||||
}
|
||||
System.out.println(result);
|
||||
// System.out.println(result);
|
||||
return (int)result;
|
||||
}
|
||||
|
||||
|
|
|
@ -121,7 +121,7 @@ public class ThreadManager implements IManager {
|
|||
scheduledFutureSets.add(scheduledExecutor.scheduleAtFixedRate(platConfigureTask, 10, SLEEP_INTEVAL_TIME, TimeUnit.SECONDS));
|
||||
scheduledFutureSets.add( scheduledExecutor.scheduleAtFixedRate(new MinuteTask(), delayForMinute, 60, TimeUnit.SECONDS));
|
||||
scheduledFutureSets.add( scheduledExecutor.scheduleAtFixedRate(new SecondsTask(), 0, 1, TimeUnit.SECONDS));
|
||||
scheduledFutureSets.add( scheduledExecutor.scheduleAtFixedRate(new FetchBloodyEndDataThread(), 0, 1, TimeUnit.SECONDS));
|
||||
// scheduledFutureSets.add( scheduledExecutor.scheduleAtFixedRate(new FetchBloodyEndDataThread(), 0, 1, TimeUnit.SECONDS));
|
||||
scheduledFutureSets.add( scheduledExecutor.scheduleAtFixedRate(new Thread(){
|
||||
public void run () {
|
||||
long lastMilis = System.currentTimeMillis();
|
||||
|
|
|
@ -38,8 +38,8 @@ public class MessageUtil {
|
|||
backMessage = new byte[0];
|
||||
} else {
|
||||
backMessage = generatedMessage.toByteArray();
|
||||
if (backMessage.length != 0)
|
||||
LOGGER.info("\r\n" + "uid:" + uid + ":\r\n" + JsonFormat.printToString(generatedMessage));
|
||||
//if (backMessage.length != 0)
|
||||
//LOGGER.info("\r\n" + "uid:" + uid + ":\r\n" + JsonFormat.printToString(generatedMessage));
|
||||
}
|
||||
|
||||
int length = PackageConstant.UID_FIELD_LEN + PackageConstant.TOKEN_LEN
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
package config;
|
||||
|
||||
import manager.Table;
|
||||
|
||||
@Table(name ="ArenaBattleReward")
|
||||
public class SArenaBattleReward implements BaseConfig {
|
||||
|
||||
private int id;
|
||||
|
||||
private int battleTimes;
|
||||
|
||||
private int[][] reward;
|
||||
|
||||
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public int getBattleTimes() {
|
||||
return battleTimes;
|
||||
}
|
||||
|
||||
public int[][] getReward() {
|
||||
return reward;
|
||||
}
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue