parent
091cf93f40
commit
cf58cda027
|
@ -153,10 +153,19 @@ public class CrossYuxulundaoChallengeHandler extends BaseHandler<ArenaInfoProto.
|
||||||
//我赢了
|
//我赢了
|
||||||
winerGetScore = setting.getBattleWinReward()[0]+(defScores-ackScores);
|
winerGetScore = setting.getBattleWinReward()[0]+(defScores-ackScores);
|
||||||
loserGetScore = setting.getBattleLoseReward()[0]+(ackScores-defScores);
|
loserGetScore = setting.getBattleLoseReward()[0]+(ackScores-defScores);
|
||||||
|
//降分公式的基础上×70%
|
||||||
|
if(loserGetScore<0){
|
||||||
|
loserGetScore = (int)Math.floor(-loserGetScore*0.7);
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
//我输了
|
//我输了
|
||||||
winerGetScore = setting.getBattleWinReward()[0]+(ackScores-defScores);
|
winerGetScore = setting.getBattleWinReward()[0]+(ackScores-defScores);
|
||||||
loserGetScore = setting.getBattleLoseReward()[0]+(defScores-ackScores);
|
loserGetScore = setting.getBattleLoseReward()[0]+(defScores-ackScores);
|
||||||
|
//降分公式的基础上×70%
|
||||||
|
if(loserGetScore<0){
|
||||||
|
loserGetScore = (int)Math.floor(-loserGetScore*0.7);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if(winerGetScore>setting.getScoreRange()[1]){ //35
|
if(winerGetScore>setting.getScoreRange()[1]){ //35
|
||||||
winerGetScore = setting.getScoreRange()[1];
|
winerGetScore = setting.getScoreRange()[1];
|
||||||
|
|
|
@ -26,10 +26,9 @@ public class TakeMissionRewardHandler extends BaseHandler<PlayerInfoProto.TakeMi
|
||||||
public void processWithProto(ISession iSession, PlayerInfoProto.TakeMissionRewardRequest proto) throws Exception {
|
public void processWithProto(ISession iSession, PlayerInfoProto.TakeMissionRewardRequest proto) throws Exception {
|
||||||
|
|
||||||
if(proto.getMissionId() == 0){
|
if(proto.getMissionId() == 0){
|
||||||
|
MissionLoigc.takeMissionRewardOnekey(iSession,proto.getType());
|
||||||
}else{
|
}else{
|
||||||
MissionLoigc.takeMissionReward(iSession,proto.getType(),proto.getMissionId());
|
MissionLoigc.takeMissionReward(iSession,proto.getType(),proto.getMissionId());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -711,29 +711,50 @@ public class MissionLoigc {
|
||||||
* 一键领取任务奖励
|
* 一键领取任务奖励
|
||||||
* @param session
|
* @param session
|
||||||
* @param type
|
* @param type
|
||||||
* @param missionId
|
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public static void takeMissionRewardOnekey(ISession session,int type,int missionId) throws Exception{
|
public static void takeMissionRewardOnekey(ISession session,int type) throws Exception{
|
||||||
int uid = session.getUid();
|
int uid = session.getUid();
|
||||||
User user = UserManager.getUser(uid);
|
User user = UserManager.getUser(uid);
|
||||||
UserMissionManager userMissionManager = user.getUserMissionManager();
|
UserMissionManager userMissionManager = user.getUserMissionManager();
|
||||||
List<MissionStateChangeInfo> missionStateChangeInfos = null;
|
List<MissionStateChangeInfo> missionStateChangeInfos = new ArrayList<MissionStateChangeInfo>();
|
||||||
//日常 任务
|
//日常 任务
|
||||||
|
//List<int[][]>rewardList = new ArrayList<int[][]>();
|
||||||
|
Map <Integer,Integer> rewardMap =new HashMap<Integer,Integer>();
|
||||||
if(type == GameMisionType.DAILYMISSION.getType()){
|
if(type == GameMisionType.DAILYMISSION.getType()){
|
||||||
|
for(int missionId:SDailyTasksConfig.config.keySet()){
|
||||||
Map<GameMisionType, List<MissionStateChangeInfo>> gameMisionTypeListMap =
|
Map<GameMisionType, List<MissionStateChangeInfo>> gameMisionTypeListMap =
|
||||||
userMissionManager.onGameEvent(user, GameEvent.DAILY_MISSION_REWARD, missionId);
|
userMissionManager.onGameEvent(user, GameEvent.DAILY_MISSION_REWARD, missionId);
|
||||||
missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.DAILYMISSION);
|
missionStateChangeInfos.addAll(gameMisionTypeListMap.get(GameMisionType.DAILYMISSION));
|
||||||
|
//missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.DAILYMISSION);
|
||||||
SDailyTasksConfig sDailyTasksConfig = SDailyTasksConfig.getSDailyTasksConfigById(missionId);
|
SDailyTasksConfig sDailyTasksConfig = SDailyTasksConfig.getSDailyTasksConfigById(missionId);
|
||||||
if(sDailyTasksConfig.getType() == MissionType.FINSIH_DAYILY_TIMES.getMissionTypeValue() && missionStateChangeInfos !=null && !missionStateChangeInfos.isEmpty()){
|
if(sDailyTasksConfig.getType() == MissionType.FINSIH_DAYILY_TIMES.getMissionTypeValue() && missionStateChangeInfos !=null && !missionStateChangeInfos.isEmpty()){
|
||||||
user.getUserMissionManager().onGameEvent(user,GameEvent.TAKE_DAILY_BOX_REWARD);
|
user.getUserMissionManager().onGameEvent(user,GameEvent.TAKE_DAILY_BOX_REWARD);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(missionStateChangeInfos!=null && !missionStateChangeInfos.isEmpty()){
|
if(missionStateChangeInfos!=null && !missionStateChangeInfos.isEmpty()){
|
||||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, missionStateChangeInfos.get(0).getRewwardGroups(), BIReason.TAKE_MISSION_REWARD);
|
//奖励汇总
|
||||||
ReportUtil.onReportEvent(user, ReportEventEnum.MISSION_COMPLETE.getType(),String.valueOf(missionId),type);
|
PlayerInfoProto.TakeMissionRewardResponse.Builder res= PlayerInfoProto.TakeMissionRewardResponse.newBuilder();
|
||||||
PlayerInfoProto.TakeMissionRewardResponse build = PlayerInfoProto.TakeMissionRewardResponse.newBuilder().setDrop(drop).build();
|
for(MissionStateChangeInfo info:missionStateChangeInfos){
|
||||||
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.TAKE_MISSION_REWARD_RESPONSE_VALUE,build,true);
|
if(info.getRewwardGroups()!=null){
|
||||||
|
for(int[] reward:info.getRewwardGroups()){
|
||||||
|
if(rewardMap.containsKey(reward[0])){
|
||||||
|
rewardMap.put(reward[0],rewardMap.get(reward[0])+reward[1]);
|
||||||
|
}else{
|
||||||
|
rewardMap.put(reward[0],reward[1]);
|
||||||
|
}
|
||||||
|
res.addRewardId(info.getMissionId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ReportUtil.onReportEvent(user, ReportEventEnum.MISSION_COMPLETE.getType(),String.valueOf(info.getMissionId()),type);
|
||||||
|
}
|
||||||
|
int[][] itemArr = rewardMap.entrySet().stream().map(n->new int[] {n.getKey(),n.getValue()}).toArray(int[][]::new);
|
||||||
|
CommonProto.Drop.Builder drop = ItemUtil.drop(user, itemArr, BIReason.TAKE_MISSION_REWARD);
|
||||||
|
//ReportUtil.onReportEvent(user, ReportEventEnum.MISSION_COMPLETE.getType(),String.valueOf(missionId),type);
|
||||||
|
//PlayerInfoProto.TakeMissionRewardResponse build = PlayerInfoProto.TakeMissionRewardResponse.newBuilder().setDrop(drop).build();
|
||||||
|
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.TAKE_MISSION_REWARD_RESPONSE_VALUE,res.build(),true);
|
||||||
}else{
|
}else{
|
||||||
throw new ErrorCodeException(ErrorCode.newDefineCode("mission can not get reward"));
|
throw new ErrorCodeException(ErrorCode.newDefineCode("mission can not get reward"));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue