竞技场奖励
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 com.ljsd.common.mogodb.MongoBase;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
|
|
||||||
public class ArenaManager extends MongoBase {
|
public class ArenaManager extends MongoBase {
|
||||||
|
@ -26,7 +23,7 @@ public class ArenaManager extends MongoBase {
|
||||||
|
|
||||||
|
|
||||||
private List<ArenaEnemy> arenaEnemies;
|
private List<ArenaEnemy> arenaEnemies;
|
||||||
|
private List<Integer> hadTakeReward;
|
||||||
|
|
||||||
public void updateChallenge(int fightResult){
|
public void updateChallenge(int fightResult){
|
||||||
if(fightResult == 1){
|
if(fightResult == 1){
|
||||||
|
@ -89,12 +86,14 @@ public class ArenaManager extends MongoBase {
|
||||||
this.count=0;
|
this.count=0;
|
||||||
this.flushTime=0;
|
this.flushTime=0;
|
||||||
this.flushNums=0;
|
this.flushNums=0;
|
||||||
|
hadTakeReward=new LinkedList<>();
|
||||||
updateString("season",season);
|
updateString("season",season);
|
||||||
updateString("failNums",failNums);
|
updateString("failNums",failNums);
|
||||||
updateString("successNums",successNums);
|
updateString("successNums",successNums);
|
||||||
updateString("count",count);
|
updateString("count",count);
|
||||||
updateString("flushTime",flushTime);
|
updateString("flushTime",flushTime);
|
||||||
updateString("flushNums",flushNums);
|
updateString("flushNums",flushNums);
|
||||||
|
updateString("hadTakeReward",hadTakeReward);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getTopMaxRank() {
|
public int getTopMaxRank() {
|
||||||
|
@ -105,4 +104,13 @@ public class ArenaManager extends MongoBase {
|
||||||
this.topMaxRank = topMaxRank;
|
this.topMaxRank = topMaxRank;
|
||||||
updateString("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));
|
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()));
|
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);
|
// targetUser.getUserMissionManager().onGameEvent(targetUser, GameEvent.JOIN_FAMILY);
|
||||||
}finally {
|
}finally {
|
||||||
RedisUtil.getInstence().releaseDistributedLock(RedisKey.OPERATE_FAMILY_APPLY_JOIN,Integer.toString(applyId), Integer.toString(applyId));
|
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);
|
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()));
|
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();
|
Family.GuildHelpInfoIndication.Builder build = Family.GuildHelpInfoIndication.newBuilder();
|
||||||
for (Map.Entry<Integer, Integer> entry : user.getGuildMyInfo().getGuidHelpInfo().entrySet()) {
|
for (Map.Entry<Integer, Integer> entry : user.getGuildMyInfo().getGuidHelpInfo().entrySet()) {
|
||||||
//通知前端清除公会成员援助信息
|
//通知前端清除公会成员援助信息
|
||||||
|
build.setUid(user.getId());
|
||||||
build.addGuildHelpInfo(CommonProto.GuildHelpInfo.newBuilder().setType(entry.getKey()).setNum(-1));
|
build.addGuildHelpInfo(CommonProto.GuildHelpInfo.newBuilder().setType(entry.getKey()).setNum(-1));
|
||||||
}
|
}
|
||||||
GuildLogic.sendIndicationToMember(GuilidManager.guildInfoMap.get(user.getPlayerInfoManager().getGuildId()), MessageTypeProto.MessageType.GuildHelpInfoIndication,build.build());
|
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);
|
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();
|
float score = sPropertyConfig.getScore();
|
||||||
|
|
||||||
result += 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);
|
// 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;
|
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(platConfigureTask, 10, SLEEP_INTEVAL_TIME, TimeUnit.SECONDS));
|
||||||
scheduledFutureSets.add( scheduledExecutor.scheduleAtFixedRate(new MinuteTask(), delayForMinute, 60, 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 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(){
|
scheduledFutureSets.add( scheduledExecutor.scheduleAtFixedRate(new Thread(){
|
||||||
public void run () {
|
public void run () {
|
||||||
long lastMilis = System.currentTimeMillis();
|
long lastMilis = System.currentTimeMillis();
|
||||||
|
|
|
@ -38,8 +38,8 @@ public class MessageUtil {
|
||||||
backMessage = new byte[0];
|
backMessage = new byte[0];
|
||||||
} else {
|
} else {
|
||||||
backMessage = generatedMessage.toByteArray();
|
backMessage = generatedMessage.toByteArray();
|
||||||
if (backMessage.length != 0)
|
//if (backMessage.length != 0)
|
||||||
LOGGER.info("\r\n" + "uid:" + uid + ":\r\n" + JsonFormat.printToString(generatedMessage));
|
//LOGGER.info("\r\n" + "uid:" + uid + ":\r\n" + JsonFormat.printToString(generatedMessage));
|
||||||
}
|
}
|
||||||
|
|
||||||
int length = PackageConstant.UID_FIELD_LEN + PackageConstant.TOKEN_LEN
|
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