青龙秘宝,工坊合成装备任务改为锻器阁合成装备

back_recharge
lilei 2020-08-18 17:10:06 +08:00
parent c18ac44bcf
commit f202f73b73
4 changed files with 41 additions and 32 deletions

View File

@ -13,6 +13,8 @@ import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.hero.HeroLogic;
import com.ljsd.jieling.logic.item.ItemLogic;
import com.ljsd.jieling.logic.mission.GameEvent;
import com.ljsd.jieling.logic.mission.MissionType;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.CommonProto;
import com.ljsd.jieling.protocols.HeroInfoProto;
@ -90,6 +92,9 @@ public class ComplexEquipHandler extends BaseHandler<HeroInfoProto.ComplexEquipR
dropItems[0][1] = proto.getNum();
CommonProto.Drop.Builder drop = ItemUtil.drop(user, dropItems, BIReason.COMPLEX_EQUIP);
user.getUserMissionManager().onGameEvent(user, GameEvent.WORKSHOP_CREATE_EQUIP, proto.getNum());
HeroInfoProto.ComplexEquipResponse.Builder response = HeroInfoProto.ComplexEquipResponse.newBuilder();
response.setDrop(drop);
MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.EQUIP_COMPLEX_RESPONSE_VALUE, response.build(), true);
@ -179,13 +184,16 @@ public class ComplexEquipHandler extends BaseHandler<HeroInfoProto.ComplexEquipR
}
int[][] createArray = new int[countMap.size()][];
int index = 0 ;
int totalCreate = 0;
for(Map.Entry<Integer, Integer> createEntry:countMap.entrySet()){
createArray[index] = new int[]{createEntry.getKey(),createEntry.getValue()};
index++;
totalCreate += createEntry.getValue();
}
ItemUtil.itemCost(user, consumeMap, BIReason.COMPLEX_EQUIP_CONSUME, 0);
CommonProto.Drop.Builder drop = ItemUtil.drop(user,createArray,BIReason.COMPLEX_EQUIP);
user.getUserMissionManager().onGameEvent(user, GameEvent.WORKSHOP_CREATE_EQUIP, totalCreate);
HeroInfoProto.ComplexEquipResponse.Builder response = HeroInfoProto.ComplexEquipResponse.newBuilder();
response.setDrop(drop);
ReportUtil.onReportEvent(user, ReportEventEnum.EQUIP_SYNTHESIS.getType(),new ArrayList<>(countMap.keySet()),"",new ArrayList<>(consumeMap.keySet()),consumeMap.values());

View File

@ -1,6 +1,5 @@
package com.ljsd.jieling.logic.activity;
import com.google.common.collect.Sets;
import com.ljsd.jieling.core.VipPrivilegeType;
import com.ljsd.jieling.exception.ErrorCode;
import com.ljsd.jieling.exception.ErrorCodeException;
@ -93,7 +92,7 @@ public class TreasureActivity extends AbstractActivity {
private void takeTreasureReward(ISession session, User user, int activityId, int missionId) throws Exception {
int rewardResponseValue = MessageTypeProto.MessageType.TAKE_ACTIVITY_REWARD_RESPONSE_VALUE;
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(activityId);
int changeState = getChangerState(user);
int destState = getDestState(user);
List<int[][]> dropList = new ArrayList<>(2);
// Set<Integer> missionIds = new HashSet<>();
if (missionId == -2) {
@ -115,15 +114,15 @@ public class TreasureActivity extends AbstractActivity {
dropList.add(rewards);
notifyClient(session,user);
} else if (missionId == -1) {
getAllTreasureRewards(user, activityMission, changeState, dropList);
getAllTreasureRewards(user, activityMission, destState, dropList);
} else {
int state = activityMission.getActivityMissionMap().get(missionId).getState();
if (state == changeState || state == ActivityType.FINISH_TAKED) {
throw new ErrorCodeException(ErrorCode.newDefineCode("该奖励已领取过"));
if (state == destState || state == ActivityType.FINISH_TAKED) {
throw new ErrorCodeException(ErrorCode.newDefineCode("奖励不可重复领取"));
}
dropByState(dropList, state, changeState, missionId);
dropByState(dropList, state, destState, missionId);
ActivityProgressInfo progressInfo = new ActivityProgressInfo();
progressInfo.setState(changeState);
progressInfo.setState(destState);
progressInfo.setProgrss(0);
activityMission.getActivityMissionMap().put(missionId, progressInfo);
// missionIds.add(missionId);
@ -233,7 +232,7 @@ public class TreasureActivity extends AbstractActivity {
}
private int getChangerState(User user){
private int getDestState(User user){
PlayerManager playerInfoManager = user.getPlayerInfoManager();
int changeState = ActivityType.HAD_TAKED;
int hadBuyTreasure = playerInfoManager.getHadBuyTreasure();
@ -242,24 +241,24 @@ public class TreasureActivity extends AbstractActivity {
}
return changeState;
}
private void getAllTreasureRewards(User user, ActivityMission activityMission, int changeState, List<int[][]> dropList){
private void getAllTreasureRewards(User user, ActivityMission activityMission, int destState, List<int[][]> dropList){
for(int i = 1 ; i<=user.getPlayerInfoManager().getTreasureLevel();i++){
Map<Integer, ActivityProgressInfo> progressInfoMap = activityMission.getActivityMissionMap();
int state =progressInfoMap.get(i).getState();
if(state==changeState||state==ActivityType.FINISH_TAKED) {
if(state==destState||state==ActivityType.FINISH_TAKED) {
continue;
}
dropByState(dropList,state,changeState,i);
dropByState(dropList,state,destState,i);
ActivityProgressInfo progressInfo = new ActivityProgressInfo();
progressInfo.setProgrss(0);
progressInfo.setState(changeState);
progressInfo.setState(destState);
activityMission.getActivityMissionMap().put(i, progressInfo);
}
}
@Override
public void getAllMissRewards(User user, ISession session, List<int[][]> itemAttrs){
getAllTreasureRewards(user, user.getActivityManager().getActivityMissionMap().get(id), getChangerState(user), itemAttrs);
getAllTreasureRewards(user, user.getActivityManager().getActivityMissionMap().get(id), getDestState(user), itemAttrs);
}
/**

View File

@ -34,7 +34,7 @@ public enum MissionType {
BUY_GOLD_TIMES(20), //买金币次数
BUY_STAMINA_TIMES(21), //购买体力次数
WORKSHOP_CREATE_EQUIP_NUMS(22), //工坊合成装备件数
WORKSHOP_CREATE_EQUIP_NUMS(22), //锻器阁合成装备件数
GENERAL_STORY_TIMES(23), //每日挑战普通副本次数
HERO_STORY_TIMES(24), //每日挑战精英副本次数
LEVEL_STORY_TIMES(25), //每日挑战故事关卡次数

View File

@ -421,33 +421,35 @@ public class BuyGoodsLogic {
if(user.getPlayerInfoManager().getMonthCard().containsKey(Global.LMONTHCARDID) ){
PlayerLogic.getInstance().sendDayilyMail(user,goodsType);
int starReward = user.getMapManager().getStarReward();
if(starReward == 0){
return;
}
StringBuilder rewardStr = new StringBuilder();
while (starReward>0){
SChallengeStarBox sChallengeStarBox = STableManager.getConfig(SChallengeStarBox.class).get(starReward);
int[][] extraReward = sChallengeStarBox.getExtraReward();
starReward--;
if(starReward>0){
rewardStr.append(StringUtil.parseArrayToString(extraReward)).append("|");
}else{
rewardStr.append(StringUtil.parseArrayToString(extraReward));
/**
* starReward0return
*
*
*/
if(starReward != 0){
StringBuilder rewardStr = new StringBuilder();
while (starReward>0){
SChallengeStarBox sChallengeStarBox = STableManager.getConfig(SChallengeStarBox.class).get(starReward);
int[][] extraReward = sChallengeStarBox.getExtraReward();
starReward--;
if(starReward>0){
rewardStr.append(StringUtil.parseArrayToString(extraReward)).append("|");
}else{
rewardStr.append(StringUtil.parseArrayToString(extraReward));
}
}
String title = SErrorCodeEerverConfig.getI18NMessage("recharge_6_stars_title");
String content = SErrorCodeEerverConfig.getI18NMessage("recharge_6_stars_txt");
MailLogic.getInstance().sendMail(user.getId(),title,content,rewardStr.toString(),nowTime, Global.MAIL_EFFECTIVE_TIME);
}
String title = SErrorCodeEerverConfig.getI18NMessage("recharge_6_stars_title");
String content = SErrorCodeEerverConfig.getI18NMessage("recharge_6_stars_txt");
MailLogic.getInstance().sendMail(user.getId(),title,content,rewardStr.toString(),nowTime, Global.MAIL_EFFECTIVE_TIME);
}
if(user.getPlayerInfoManager().getMonthCard().containsKey(Global.MONTHCARDID) || goodsType == GiftGoodsType.WEEKCARD || goodsType == GiftGoodsType.FOUND_ONE || goodsType == GiftGoodsType.FOUND_TWO){
PlayerLogic.getInstance().sendDayilyMail(user,goodsType);
}else if(goodsType == GiftGoodsType.SUN_LONG ){
user.getPlayerInfoManager().setHadBuyTreasure(1);
}
}
public static boolean isHadBought( Map<Integer, Integer> buyGoodsTimes,int giftGoodsType){