活动掉落
parent
54c4f06df1
commit
7f5ccf558b
|
@ -0,0 +1,71 @@
|
|||
package com.ljsd.jieling.config;
|
||||
|
||||
import com.ljsd.jieling.logic.STableManager;
|
||||
import com.ljsd.jieling.logic.Table;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
@Table(name ="ActivityDropReward")
|
||||
public class SActivityDropReward implements BaseConfig {
|
||||
|
||||
private int id;
|
||||
|
||||
private int[] activityReward;
|
||||
|
||||
private int[] rewardGroup;
|
||||
|
||||
private int activityId;
|
||||
|
||||
private Set<Integer> dropGroupIds;
|
||||
|
||||
public static Map<Integer,SActivityDropReward> activityDropRewardByActivityMap;
|
||||
public static Map<Integer,SActivityDropReward> activityDropRewardByIdMap;
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
Map<Integer, SActivityDropReward> config = STableManager.getConfig(SActivityDropReward.class);
|
||||
Map<Integer, SActivityDropReward> configByActivityMap = new HashMap<>();
|
||||
for(SActivityDropReward sActivityDropReward : config.values()){
|
||||
int[] rewardGroup = sActivityDropReward.getRewardGroup();
|
||||
Set<Integer> dropGroupIds = new HashSet<>();
|
||||
for(int rewardGroupId : rewardGroup){
|
||||
dropGroupIds.add(rewardGroupId);
|
||||
}
|
||||
sActivityDropReward.setDropGroupIds(dropGroupIds);
|
||||
configByActivityMap.put(sActivityDropReward.getActivityId(),sActivityDropReward);
|
||||
}
|
||||
activityDropRewardByActivityMap = configByActivityMap;
|
||||
activityDropRewardByIdMap = config;
|
||||
|
||||
}
|
||||
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public int[] getActivityReward() {
|
||||
return activityReward;
|
||||
}
|
||||
|
||||
public int[] getRewardGroup() {
|
||||
return rewardGroup;
|
||||
}
|
||||
|
||||
public int getActivityId() {
|
||||
return activityId;
|
||||
}
|
||||
|
||||
public Set<Integer> getDropGroupIds() {
|
||||
return dropGroupIds;
|
||||
}
|
||||
|
||||
public void setDropGroupIds(Set<Integer> dropGroupIds) {
|
||||
this.dropGroupIds = dropGroupIds;
|
||||
}
|
||||
}
|
|
@ -96,6 +96,8 @@ public class SGameSetting implements BaseConfig {
|
|||
|
||||
private int[][] itemAdd;
|
||||
|
||||
private int showRank;
|
||||
|
||||
private Map<Integer,int[]> itemRecoveryMap;
|
||||
|
||||
|
||||
|
|
|
@ -64,6 +64,8 @@ public class SMonsterConfig implements BaseConfig {
|
|||
|
||||
private int[] passiveSkillList;
|
||||
|
||||
private int[] monsterAi;
|
||||
|
||||
public static Map<Integer, SMonsterConfig> getsMonsterConfigMap() {
|
||||
return sMonsterConfigMap;
|
||||
}
|
||||
|
|
|
@ -176,13 +176,6 @@ public class ActivityLogic {
|
|||
|
||||
}
|
||||
|
||||
public void initServenHappy(User user, SGlobalActivity sGlobalActivity) throws Exception {
|
||||
user.getUserMissionManager().onGameEvent(user,GameEvent.SERVENHAPPY_REFRESH,sGlobalActivity.getId());
|
||||
ActivityMission activityMission = new ActivityMission();
|
||||
activityMission.initOtherMission(new ArrayList<>());
|
||||
user.getActivityManager().addActivity(sGlobalActivity.getId(),activityMission);
|
||||
}
|
||||
|
||||
|
||||
public static ActivityLogic getInstance() {
|
||||
return ActivityLogic.Instance.instance;
|
||||
|
|
|
@ -29,4 +29,6 @@ public interface ActivityType {
|
|||
int FORCERANK = 11; //战力排行
|
||||
int FORCESTANDARD = 12;//战力达标
|
||||
|
||||
// int EXCHANGEANDDROP = 15;//限时兑换活动
|
||||
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@ public enum ActivityTypeEnum {
|
|||
BLESSACTIVITY(ActivityType.BLESSACTIVITY, BlessActivity::new),
|
||||
TREASUREACTIVITY(ActivityType.TREASURE, TreasureActivity::new),
|
||||
LUCKYCAT(ActivityType.LUCKYCAT, LuckyCatActivity::new),
|
||||
SERVERHAPPY(ActivityType.SERVERHAPPY, DefaultEmptyActivity::new),
|
||||
FORCERANK(ActivityType.FORCERANK, ForceRankActivity::new),
|
||||
FORCESTANDARD(ActivityType.FORCESTANDARD, ForceStandardActivity::new);
|
||||
private int type;
|
||||
|
@ -62,6 +63,8 @@ public enum ActivityTypeEnum {
|
|||
return FORCERANK.toActivity(id);
|
||||
case ActivityType.FORCESTANDARD:
|
||||
return FORCESTANDARD.toActivity(id);
|
||||
case ActivityType.SERVERHAPPY:
|
||||
return SERVERHAPPY.toActivity(id);
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
package com.ljsd.jieling.logic.activity;
|
||||
|
||||
import com.ljsd.jieling.config.SGlobalActivity;
|
||||
import com.ljsd.jieling.logic.dao.ActivityMission;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class DefaultEmptyActivity extends AbstractActivity{
|
||||
|
||||
public DefaultEmptyActivity(int id) {
|
||||
super(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initActivity(User user) throws Exception {
|
||||
ActivityMission mission = new ActivityMission();
|
||||
mission.initOtherMission(new ArrayList<>(0));
|
||||
user.getActivityManager().addActivity(id, mission);
|
||||
if(SGlobalActivity.getsGlobalActivityMap().get(id).getType() == ActivityType.SERVERHAPPY){
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.SERVENHAPPY_REFRESH,id);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,24 +1,8 @@
|
|||
package com.ljsd.jieling.logic.activity;
|
||||
|
||||
|
||||
import com.ljsd.jieling.config.SGlobalActivity;
|
||||
import com.ljsd.jieling.logic.dao.ActivityMission;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
class SevenLoginActivity extends AbstractActivity {
|
||||
|
||||
@Override
|
||||
public void initActivity(User user) throws Exception {
|
||||
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.SERVENHAPPY_REFRESH, sGlobalActivity.getId());
|
||||
ActivityMission activityMission = new ActivityMission();
|
||||
activityMission.initOtherMission(new ArrayList<>());
|
||||
user.getActivityManager().addActivity(sGlobalActivity.getId(), activityMission);
|
||||
}
|
||||
|
||||
public SevenLoginActivity(int id) {
|
||||
super(id);
|
||||
}
|
||||
|
|
|
@ -53,10 +53,6 @@ public class ActivityMission extends MongoBase {
|
|||
return activityProgressInfoMap;
|
||||
}
|
||||
|
||||
public void updateMissionStatus(int missionId, int missionState) {
|
||||
activityProgressInfoMap.put(missionId, new ActivityProgressInfo(missionId,missionState));
|
||||
updateString("activityProgressInfoMap." + missionId,missionState);
|
||||
}
|
||||
|
||||
|
||||
public void updateActivityState(int state){
|
||||
|
|
|
@ -521,7 +521,7 @@ public class GuildLogic {
|
|||
}
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
int uidType = getMemberType(uid, guildInfo.getMembers());
|
||||
if(uidType>1){
|
||||
if(uidType>2){
|
||||
MessageUtil.sendErrorResponse(session,0,msgId,"无权操作");
|
||||
return;
|
||||
}
|
||||
|
@ -561,7 +561,7 @@ public class GuildLogic {
|
|||
}
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
|
||||
int uidType = getMemberType(uid, guildInfo.getMembers());
|
||||
if(uidType>1){
|
||||
if(uidType>2){
|
||||
MessageUtil.sendErrorResponse(session,0,msgId,"无权操作");
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -412,10 +412,10 @@ public class CombatLogic {
|
|||
SAdventureConfig sAdventureConfig = SAdventureConfig.getConfig().get(positionTmp);
|
||||
int baseRewardGroup[] = sAdventureConfig.getBaseRewardGroup();
|
||||
int[][] randomRewardGroup = sAdventureConfig.getRandomRewardGroup();
|
||||
ItemUtil.combineReward(new int[]{baseRewardGroup[adventureStateInfoTmp.getLevel()-1]}, times,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
|
||||
ItemUtil.combineReward(user,new int[]{baseRewardGroup[adventureStateInfoTmp.getLevel()-1]}, times,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
|
||||
int timesTemp =times;
|
||||
while (timesTemp-->0){
|
||||
ItemUtil.combineReward(randomRewardGroup[adventureStateInfoTmp.getLevel()-1], 1f,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap);
|
||||
ItemUtil.combineReward(user,randomRewardGroup[adventureStateInfoTmp.getLevel()-1], 1f,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap);
|
||||
}
|
||||
takeTimes++;
|
||||
}
|
||||
|
@ -479,10 +479,10 @@ public class CombatLogic {
|
|||
SAdventureConfig sAdventureConfig = SAdventureConfig.getConfig().get(positionTmp);
|
||||
int baseRewardGroup[] = sAdventureConfig.getBaseRewardGroup();
|
||||
int[][] randomRewardGroup = sAdventureConfig.getRandomRewardGroup();
|
||||
ItemUtil.combineReward(new int[]{baseRewardGroup[adventureStateInfoTmp.getLevel()-1]}, times,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
|
||||
ItemUtil.combineReward(user,new int[]{baseRewardGroup[adventureStateInfoTmp.getLevel()-1]}, times,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
|
||||
int timesTemp =times;
|
||||
while (timesTemp-->0){
|
||||
ItemUtil.combineReward(randomRewardGroup[adventureStateInfoTmp.getLevel()-1], 1f,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap);
|
||||
ItemUtil.combineReward(user,randomRewardGroup[adventureStateInfoTmp.getLevel()-1], 1f,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -783,12 +783,14 @@ public class CombatLogic {
|
|||
}
|
||||
}
|
||||
int nowTime = (int)(TimeUtils.now()/1000);
|
||||
String findRewardMail = ItemUtil.getMailReward(findRewardgroup, 1.0f);
|
||||
User findUser = UserManager.getUser(findUserId);
|
||||
String findRewardMail = ItemUtil.getMailReward(findUser,findRewardgroup, 1.0f);
|
||||
String title = SErrorCodeEerverConfig.getI18NMessage("adventuren_boss_find_reward_title");
|
||||
String content = SErrorCodeEerverConfig.getI18NMessage("adventuren_boss_find_reward__txt");
|
||||
MailLogic.getInstance().sendMail(findUserId,title,content,findRewardMail,nowTime, Global.MAIL_EFFECTIVE_TIME);
|
||||
|
||||
String killRewardMail = ItemUtil.getMailReward(killReward, 1.0f);
|
||||
User killUser = UserManager.getUser(killUid);
|
||||
String killRewardMail = ItemUtil.getMailReward(killUser,killReward, 1.0f);
|
||||
title = SErrorCodeEerverConfig.getI18NMessage("adventuren_boss_kill_reward_title");
|
||||
content = SErrorCodeEerverConfig.getI18NMessage("adventuren_boss_kill_reward__txt");
|
||||
MailLogic.getInstance().sendMail(killUid,title,content,killRewardMail,nowTime, Global.MAIL_EFFECTIVE_TIME);
|
||||
|
|
|
@ -248,7 +248,7 @@ public class ItemLogic {
|
|||
reward.append("#").append(sItem.getResolveReward());
|
||||
}
|
||||
}
|
||||
ItemUtil.combineReward(StringUtil.parseFiledInt(reward.toString()),1,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
|
||||
ItemUtil.combineReward(user,StringUtil.parseFiledInt(reward.toString()),1,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
|
||||
CommonProto.Drop.Builder baseBuilder = CommonProto.Drop.newBuilder();
|
||||
ItemUtil.drop(user,baseBuilder,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap, BIReason.DECOMPOS_HERO_REWARD);
|
||||
sendUseAndPriceItemMessage(iSession, msgId, baseBuilder);
|
||||
|
|
|
@ -116,9 +116,12 @@ public class TreasureMissionType extends AbstractMissionType{
|
|||
if(sTreasureTaskConfig.getTaskType() == MissionType.SENVER_HAPPY.getMissionTypeValue()){
|
||||
sendProgress = doingProgress;
|
||||
}
|
||||
if(sendProgress>0){
|
||||
if(sendProgress>=finishParm){
|
||||
MissionStateChangeInfo missionStateChangeInfo = new MissionStateChangeInfo(id, MissionState.FINISH,sendProgress,takeTimes);
|
||||
missionStateChangeInfos.add(missionStateChangeInfo);
|
||||
}else{
|
||||
MissionStateChangeInfo missionStateChangeInfo = new MissionStateChangeInfo(id, MissionState.DOING,sendProgress,takeTimes);
|
||||
missionStateChangeInfos.add(missionStateChangeInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -118,26 +118,28 @@ public class ItemUtil {
|
|||
Map<Integer, Integer> cardMap = new HashMap<>();
|
||||
Map<Integer, Integer> equipMap = new HashMap<>();
|
||||
Map<Integer, Integer> randomMap = new HashMap<>();
|
||||
for (int dropGroupId : dropGroupIds) {
|
||||
SRewardGroup sRewardGroup = SRewardGroup.getsRewardItemMap().get(dropGroupId);
|
||||
if (sRewardGroup == null) {
|
||||
continue;
|
||||
}
|
||||
selectDrop(sRewardGroup, itemMap, cardMap, equipMap, randomMap, dropRatio);
|
||||
}
|
||||
combineRewardDropGroup(user, dropGroupIds, dropRatio, itemMap, cardMap, equipMap, randomMap);
|
||||
useRandomItem(user, randomMap,reason);
|
||||
addItem(user, itemMap, dropBuilder,reason);
|
||||
addCard(user, cardMap, dropBuilder,reason);
|
||||
addEquip(user, equipMap, dropBuilder,reason);
|
||||
}
|
||||
|
||||
public static void getactivityDropInfo(int[] dropGroupIds, float dropRatio, Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap, Map<Integer, Integer> equipMap ,Map<Integer, Integer> randomMap) throws Exception {
|
||||
private static void combineRewardDropGroup(User user, int[] dropGroupIds, float dropRatio, Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap, Map<Integer, Integer> equipMap, Map<Integer, Integer> randomMap) {
|
||||
for (int dropGroupId : dropGroupIds) {
|
||||
SRewardGroup sRewardGroup = SRewardGroup.getsRewardItemMap().get(dropGroupId);
|
||||
if (sRewardGroup == null) {
|
||||
continue;
|
||||
}
|
||||
selectDrop(sRewardGroup, itemMap, cardMap, equipMap, randomMap, dropRatio);
|
||||
int[] extraDropGroupIds = activityExtraDropGroupId(user, dropGroupId);
|
||||
for (int dropExtraGroupId : extraDropGroupIds) {
|
||||
SRewardGroup sRewardGroupExtra = SRewardGroup.getsRewardItemMap().get(dropExtraGroupId);
|
||||
if (sRewardGroupExtra == null) {
|
||||
continue;
|
||||
}
|
||||
selectDrop(sRewardGroup, itemMap, cardMap, equipMap, randomMap, dropRatio);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -167,13 +169,7 @@ public class ItemUtil {
|
|||
Map<Integer, Integer> cardMap = new HashMap<>();
|
||||
Map<Integer, Integer> equipMap = new HashMap<>();
|
||||
Map<Integer,Integer> randomMap = new HashMap<>();
|
||||
for (int dropGroupId :dropGroupIds){
|
||||
SRewardGroup sRewardGroup = SRewardGroup.getsRewardItemMap().get(dropGroupId);
|
||||
if (sRewardGroup == null){
|
||||
continue;
|
||||
}
|
||||
selectDrop(sRewardGroup,itemMap,cardMap,equipMap,randomMap,dropRatio);
|
||||
}
|
||||
combineRewardDropGroup(user, dropGroupIds, dropRatio, itemMap, cardMap, equipMap, randomMap);
|
||||
useRandomItem(user,randomMap,reason);
|
||||
if (isMapping == 1) {
|
||||
addItemToTemporaryBag(user, itemMap, equipMap, dropBuilder);
|
||||
|
@ -186,23 +182,18 @@ public class ItemUtil {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param user
|
||||
* @param dropGroupIds
|
||||
* @param dropRatio
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public static String getMailReward (int[] dropGroupIds,float dropRatio) throws Exception {
|
||||
public static String getMailReward (User user,int[] dropGroupIds,float dropRatio) throws Exception {
|
||||
Map<Integer, Integer> itemMap = new HashMap<>();
|
||||
Map<Integer, Integer> cardMap = new HashMap<>();
|
||||
Map<Integer, Integer> equipMap = new HashMap<>();
|
||||
Map<Integer,Integer> randomMap = new HashMap<>();
|
||||
for (int dropGroupId :dropGroupIds){
|
||||
SRewardGroup sRewardGroup = SRewardGroup.getsRewardItemMap().get(dropGroupId);
|
||||
if (sRewardGroup == null){
|
||||
continue;
|
||||
}
|
||||
selectDrop(sRewardGroup,itemMap,cardMap,equipMap,randomMap,dropRatio);
|
||||
}
|
||||
combineRewardDropGroup(user, dropGroupIds, dropRatio, itemMap, cardMap, equipMap, randomMap);
|
||||
return getReward(itemMap,cardMap,equipMap,randomMap);
|
||||
}
|
||||
|
||||
|
@ -215,14 +206,8 @@ public class ItemUtil {
|
|||
return getReward(itemMap,cardMap,equipMap,randomMap);
|
||||
}
|
||||
|
||||
public static void combineReward(int[] dropGroupIds,float dropRatio, Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap, Map<Integer, Integer> equipMap, Map<Integer, Integer> randomMap){
|
||||
for (int dropGroupId :dropGroupIds){
|
||||
SRewardGroup sRewardGroup = SRewardGroup.getsRewardItemMap().get(dropGroupId);
|
||||
if (sRewardGroup == null){
|
||||
continue;
|
||||
}
|
||||
selectDrop(sRewardGroup,itemMap,cardMap,equipMap,randomMap,dropRatio);
|
||||
}
|
||||
public static void combineReward(User user,int[] dropGroupIds,float dropRatio, Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap, Map<Integer, Integer> equipMap, Map<Integer, Integer> randomMap){
|
||||
combineRewardDropGroup(user, dropGroupIds, dropRatio, itemMap, cardMap, equipMap, randomMap);
|
||||
}
|
||||
|
||||
public static void combineReward(int[][] itemArr, Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap, Map<Integer, Integer> equipMap, Map<Integer, Integer> randomMap){
|
||||
|
@ -1130,4 +1115,15 @@ public class ItemUtil {
|
|||
}
|
||||
return sourceNum;
|
||||
}
|
||||
|
||||
private static int[] activityExtraDropGroupId(User user,int groupId){
|
||||
Map<Integer, ActivityMission> activityMissionMap = user.getActivityManager().getActivityMissionMap();
|
||||
Map<Integer, SActivityDropReward> activityDropRewardByIdMap = SActivityDropReward.activityDropRewardByIdMap;
|
||||
for(SActivityDropReward sActivityDropReward : activityDropRewardByIdMap.values()){
|
||||
if(sActivityDropReward.getDropGroupIds().contains(groupId) && activityMissionMap.containsKey(sActivityDropReward.getActivityId())){
|
||||
return sActivityDropReward.getActivityReward();
|
||||
}
|
||||
}
|
||||
return new int[0];
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue