From 783120f7ebc82b399857732914f2700b5847e7fa Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Sat, 16 May 2020 15:35:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=AC=E4=BC=9A=E5=A5=96=E5=8A=B1=E8=A1=A5?= =?UTF-8?q?=E5=8F=91=20=E5=8F=8A=20=E6=9C=BA=E5=99=A8=E4=BA=BA=E7=BC=96?= =?UTF-8?q?=E9=98=9F=E4=BD=8D=E7=BD=AE=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../family/GuildHelpGetAllRequestHandler.java | 2 +- .../GuildHelpHelpOtherRequestHandler.java | 24 +++--- .../family/GuildSendHelpRequestHandler.java | 2 +- .../handler/map/behavior/BehaviorUtil.java | 2 + .../ljsd/jieling/logic/family/GuildLogic.java | 77 ++++++++++++++----- 5 files changed, 76 insertions(+), 31 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GuildHelpGetAllRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GuildHelpGetAllRequestHandler.java index 0d23ef9b4..39300cdbd 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GuildHelpGetAllRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GuildHelpGetAllRequestHandler.java @@ -60,7 +60,7 @@ public class GuildHelpGetAllRequestHandler extends BaseHandler entry : entries) { builder.addGuildHelpInfo(CommonProto.GuildHelpInfo.newBuilder().setType(entry.getKey()).setHadtakenum(user.getGuildMyInfo().getGuidHelpHadTakeInfo().getOrDefault(entry.getKey(),0)).setHadtakenum(guidHelpHadTakeInfo.getOrDefault(entry.getKey(),0)).setNum(entry.getValue())); } - Family.GuildHelpInfoIndication build = builder.setUid(target.getId()).build(); + Family.GuildHelpInfoIndication build = builder.setUid(target.getId()).setName(target.getPlayerInfoManager().getNickName()).build(); builder1.addGuildHelpInfoIndication(build); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GuildHelpHelpOtherRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GuildHelpHelpOtherRequestHandler.java index b57f99267..ffaffb699 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GuildHelpHelpOtherRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GuildHelpHelpOtherRequestHandler.java @@ -52,6 +52,19 @@ public class GuildHelpHelpOtherRequestHandler extends BaseHandlersGuildHelpConfig.getHelpTime()[0]+(sGuildHelpConfig.getHelpTime()[1])){ + //check cost + throw new ErrorCodeException("次数用尽"); + } + + if(uid==proto.getUid()){ + throw new ErrorCodeException("不可援助自己"); + } + //lock all 会修改公会记录 GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId); @@ -62,15 +75,6 @@ public class GuildHelpHelpOtherRequestHandler extends BaseHandlersGuildHelpConfig.getHelpTime()[0]+(sGuildHelpConfig.getHelpTime()[1])){ - //check cost - throw new ErrorCodeException("次数用尽"); - } - if(guildHelpTime+1>sGuildHelpConfig.getHelpTime()[0]){ //check cost int[][] cost = new int[1][]; @@ -102,7 +106,7 @@ public class GuildHelpHelpOtherRequestHandler extends BaseHandler entry : target.getGuildMyInfo().getGuidHelpInfo().entrySet()) { build.addGuildHelpInfo(CommonProto.GuildHelpInfo.newBuilder().setType(entry.getKey()).setHadtakenum(user.getGuildMyInfo().getGuidHelpHadTakeInfo().getOrDefault(entry.getKey(),0)).setNum(entry.getValue())); } - build.setUid(target.getId()); + build.setName(target.getPlayerInfoManager().getNickName()).setUid(target.getId()); GuildLogic.sendIndicationToMember(GuilidManager.guildInfoMap.get(guildId), MessageTypeProto.MessageType.GuildHelpInfoIndication,build.build()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GuildSendHelpRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GuildSendHelpRequestHandler.java index 35a289404..0fba1802d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GuildSendHelpRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GuildSendHelpRequestHandler.java @@ -79,7 +79,7 @@ public class GuildSendHelpRequestHandler extends BaseHandler remainHp) { List heroFightInfos = new ArrayList<>(); Map heroStarsMap = sArenaRobotConfig.getStarOfHeroMap(); + int i=0; for(Map.Entry item : heroStarsMap.entrySet()){ StringBuilder skillSb = new StringBuilder(); StringBuilder propertySb = new StringBuilder(); @@ -357,6 +358,7 @@ public class BehaviorUtil { .setUnitId(Integer.toString(heroTid)) .setUnitSkillIds(heroSkill.substring(0,heroSkill.length()-1)) .setProperty(property.substring(0, property.length()-1)) + .setPosition(++i) .build(); heroFightInfos.add(heroFightInfo); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java index eb529ed4e..0d827743b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java @@ -52,6 +52,8 @@ public class GuildLogic { public void flushEveryDay(User user, PlayerInfoProto.FivePlayerUpdateIndication.Builder fBuilder)throws Exception { takeAllReward(user); + // 发送公会援助奖励 + sendGuildHelpRewardEmail(user); user.getGuildMyInfo().setFetetype(0); user.getGuildMyInfo().clearHadTakeReward(); @@ -60,6 +62,8 @@ public class GuildLogic { fBuilder.setLastFeteType(user.getGuildMyInfo().getFetetype()); fBuilder.addAllTakeFeteReward(new HashSet<>()); } + + // } @@ -67,7 +71,7 @@ public class GuildLogic { List itemArrs = new LinkedList<>(); - //补发前日未领取的奖 + //补发前日未领取的祭祀奖 Map config = STableManager.getConfig(SGuildSacrificeRewardConfig.class); if (null == config) { throw new ErrorCodeException(ErrorCode.CFG_NULL); @@ -619,6 +623,10 @@ public class GuildLogic { if(GuildFightLogic.getStatus()!=0){ throw new ErrorCodeException(ErrorCode.FAMILY_NOT_KICK_IN_WAR); } + + //TODO lock check + OnUserLeveFamily(user); + Family.KickOutIndication kickIndication = Family.KickOutIndication.newBuilder().setUid(targetUid).build(); sendIndicationToMember(guildInfo,MessageTypeProto.MessageType.FAMILY_KICK_INDICATION,kickIndication); boolean remove = guildInfo.removeMember(targetType, targetUid); @@ -824,7 +832,10 @@ public class GuildLogic { if(session!=null){ MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.FAMILY_KICK_INDICATION_VALUE,build,true); } + User user = UserManager.getUser(sendUid); + //TODO lock check + OnUserLeveFamily(user); user.getPlayerInfoManager().setGuildId(0); MailLogic.getInstance().sendMail(user.getId(),title,content,"",(int)(System.currentTimeMillis()/1000), Global.MAIL_EFFECTIVE_TIME); } @@ -1341,22 +1352,7 @@ public class GuildLogic { //TODO lock all 公会id清零之前调用 //退公会清除数据 补发奖励 - GuildMyInfo guildMyInfo = user.getGuildMyInfo(); - guildMyInfo.setGuidHelpHadTakeInfo(new HashMap<>(guildMyInfo.getGuidHelpInfo())); - String title = SErrorCodeEerverConfig.getI18NMessage("guildhelp_reward_title"); - String content = SErrorCodeEerverConfig.getI18NMessage("guildhelp_reward_txt"); - - - List list = new LinkedList<>(); - for (Map.Entry entry : user.getGuildMyInfo().getGuidHelpInfo().entrySet()) { - int[][] drop = new int[1][]; - drop[0] = new int[2]; - drop[0][0] = entry.getKey(); - drop[0][1] = entry.getValue()-user.getGuildMyInfo().getGuidHelpHadTakeInfo().getOrDefault(entry.getKey(),0); - list.add(drop); - } - String mailReward = ItemUtil.getMailReward(list); - MailLogic.getInstance().sendMail(user.getId(),title,content,mailReward,(int) (TimeUtils.now()/1000), Global.MAIL_EFFECTIVE_TIME); + sendGuildHelpRewardEmail(user); //notify all Family.GuildHelpInfoIndication.Builder build = Family.GuildHelpInfoIndication.newBuilder(); @@ -1366,7 +1362,50 @@ public class GuildLogic { } GuildLogic.sendIndicationToMember(GuilidManager.guildInfoMap.get(user.getPlayerInfoManager().getGuildId()), MessageTypeProto.MessageType.GuildHelpInfoIndication,build.build()); - - } + + //sendGuildHelpRewardEmail + public static void sendGuildHelpRewardEmail(User user)throws Exception{ + // 补发奖励 + GuildMyInfo guildMyInfo = user.getGuildMyInfo(); + String title = SErrorCodeEerverConfig.getI18NMessage("guildhelp_reward_title"); + String content = SErrorCodeEerverConfig.getI18NMessage("guildhelp_reward_txt"); + + List list = new LinkedList<>(); + for (Map.Entry entry : user.getGuildMyInfo().getGuidHelpInfo().entrySet()) { + int i = entry.getValue() - user.getGuildMyInfo().getGuidHelpHadTakeInfo().getOrDefault(entry.getKey(), 0); + if(i<=0){ + continue; + } + int[][] drop = new int[1][]; + drop[0] = new int[2]; + drop[0][0] = entry.getKey(); + drop[0][1] = i; + list.add(drop); + guildMyInfo.putGuidHelpHadTakeInfo(entry.getKey(),entry.getValue()); + } + if(list.size()==0){ + return; + } + + boolean isfinish =true; + SGuildHelpConfig sGuildHelpConfig = STableManager.getConfig(SGuildHelpConfig.class).get(1); + if(guildMyInfo.getGuidHelpInfo().size()==sGuildHelpConfig.getRecourseTime()[0]){ + for (Map.Entry entry:guildMyInfo.getGuidHelpHadTakeInfo().entrySet()) { + if(entry.getValue()