Merge branch 'master_test_gn_mcz2' into master_test_gn

back_recharge
mengchengzhen 2021-04-16 17:36:19 +08:00
commit 8af7414ec3
15 changed files with 362 additions and 7 deletions

View File

@ -326,4 +326,6 @@ public interface BIReason {
int ACTIVE_USERSKIN = 1089;// 激活玩家皮肤
int ACTIVE_TITLE = 1090;// 激活玩家称号
int ACTIVE_MOUNT = 1091;// 激活玩家坐骑
int EQUIP_UPLEVEL_COST = 1092;//装备升星消耗
int EQUIP_UPLEVEL_REWARD = 1093;//装备升星获得
}

View File

@ -0,0 +1,26 @@
package com.ljsd.jieling.handler.activity;
import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.logic.activity.ActivityLogic;
import com.ljsd.jieling.logic.item.ItemLogic;
import com.ljsd.jieling.network.session.ISession;
import rpc.protocols.MessageTypeProto;
import rpc.protocols.PlayerInfoProto;
public class EquipUpLevelHandler extends BaseHandler<PlayerInfoProto.EquipUpLevelRequest> {
@Override
public MessageTypeProto.MessageType getMessageCode() {
return MessageTypeProto.MessageType.EQUIP_UPLEVEL_REQUEST;
}
@Override
public void processWithProto(ISession iSession, PlayerInfoProto.EquipUpLevelRequest proto) throws Exception {
int activityId = proto.getActivityId();
int equipId = proto.getEquipId();
int itemId = proto.getItemId();
int itemNum = proto.getItemNum();
ItemLogic.getInstance().equipUpLevel(iSession,activityId,equipId,itemId,itemNum,
MessageTypeProto.MessageType.EQUIP_UPLEVEL_RESPONSE);
}
}

View File

@ -35,7 +35,7 @@ public class ActiveUserMountHandler extends BaseHandler<PlayerInfoProto.ActiveUs
}
// 验证道具是否足够
boolean result = ItemUtil.itemCost(user, new int[][]{{mountId, 1}}, 1, BIReason.ACTIVE_USERSKIN,1);
boolean result = ItemUtil.itemCost(user, new int[][]{{mountId, 1}}, 1, BIReason.ACTIVE_MOUNT,1);
if (!result){
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
}

View File

@ -35,7 +35,7 @@ public class ActiveUserTitleHandler extends BaseHandler<PlayerInfoProto.ActiveUs
}
// 验证道具是否足够
boolean result = ItemUtil.itemCost(user, new int[][]{{titleId, 1}}, 1, BIReason.ACTIVE_USERSKIN,1);
boolean result = ItemUtil.itemCost(user, new int[][]{{titleId, 1}}, 1, BIReason.ACTIVE_TITLE,1);
if (!result){
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
}

View File

@ -82,6 +82,7 @@ public interface ActivityType {
int COW_FLY_SKY = 62;//牛气冲天
int LUCKY_GET = 63;//福星高照
int FIFTEEN_LOGIN = 64;//十五日签到
int EQUIP_UPLEVEL = 65;//云游商人
int SUB_ACTIVITY = 8000;//易经宝库
int SKIN_RECHARGE_ACTIVITY = 71;

View File

@ -69,6 +69,7 @@ public enum ActivityTypeEnum {
COW_FLY_SKY(ActivityType.COW_FLY_SKY,CowFlySkyActivity::new),
FIFTEEN_LOGIN(ActivityType.FIFTEEN_LOGIN,FifteenActivity::new),
LUCKY_GET(ActivityType.LUCKY_GET,LuckyGetActivity::new),
EQUIP_UPLEVEL(ActivityType.EQUIP_UPLEVEL,EquipUpLevelActivity::new),
;
private int type;

View File

@ -0,0 +1,38 @@
package com.ljsd.jieling.logic.activity;
import com.ljsd.jieling.jbean.ActivityMission;
import com.ljsd.jieling.jbean.ActivityProgressInfo;
import com.ljsd.jieling.logic.dao.root.User;
import config.SComposeActivity;
import java.util.HashMap;
import java.util.Map;
public class EquipUpLevelActivity extends AbstractActivity {
public EquipUpLevelActivity(int id) {
super(id);
}
@Override
public void initActivity(User user) throws Exception {
ActivityMission mission = new ActivityMission();
Map<Integer, Map<Integer,SComposeActivity>> configMap = SComposeActivity.getConfigMap();
Map<Integer,Integer> useTypeMap = new HashMap<>();
for(Map.Entry<Integer,SComposeActivity> entry : configMap.get(id).entrySet()){
useTypeMap.put(entry.getKey(),entry.getValue().getCount());
}
for(Map.Entry<Integer,Integer> entry : useTypeMap.entrySet()){
ActivityProgressInfo activityProgressInfo = new ActivityProgressInfo();
activityProgressInfo.setProgrss(entry.getValue());
activityProgressInfo.setState(0);
mission.getActivityMissionMap().put(entry.getKey(), activityProgressInfo);
}
mission.setOpenType(1);
mission.setV(0);
mission.setActivityState(ActivityType.OPEN_STATE);
user.getActivityManager().getActivityMissionMap().put(id, mission);
}
}

View File

@ -9,6 +9,8 @@ import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.globals.GlobalItemType;
import com.ljsd.jieling.handler.map.MapManager;
import com.ljsd.jieling.jbean.ActivityMission;
import com.ljsd.jieling.jbean.ActivityProgressInfo;
import com.ljsd.jieling.ktbeans.ReportEventEnum;
import com.ljsd.jieling.ktbeans.ReportUtil;
import com.ljsd.jieling.logic.activity.event.EspecialEquipUpEvent;
@ -888,4 +890,59 @@ public class ItemLogic {
MessageUtil.sendMessage(iSession,1, MessageTypeProto.MessageType.JEWEL_BUILD_RESPONSE_VALUE,null,true);
}
/**
*
*/
public void equipUpLevel(ISession session, int activityId,int equipId,int itemId,int itemNum,
MessageTypeProto.MessageType messageType) throws Exception{
PlayerInfoProto.EquipUpLevelResponse.Builder response = PlayerInfoProto.EquipUpLevelResponse.newBuilder();
response.setResult(false);
User user = UserManager.getUser(session.getUid());
int type = SComposeActivity.getTypeById(activityId,equipId);
if(type == -1){
LOGGER.error("type找不到配置活动id:{}装备id:{}",activityId,equipId);
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);
throw new ErrorCodeException(ErrorCode.CFG_NULL);
}
SComposeBook config = SComposeBook.getBookById(type,equipId);
if(config == null){
LOGGER.error("config找不到配置type:{}装备id:{}",type,equipId);
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);
throw new ErrorCodeException(ErrorCode.CFG_NULL);
}
int[] itemC = config.getNeedCost();
if(itemC[0] != itemId || itemC[1] != itemNum){
LOGGER.error("itemCost不匹配item:{}num:{},conItem:{},conNum:{}",itemId,itemNum,itemC[0],itemC[1]);
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);
throw new ErrorCodeException(ErrorCode.CFG_NULL);
}
ActivityMission misson = user.getActivityManager().getActivityMissionMap().get(activityId);
if(misson == null){
LOGGER.error("misson为空activityId:{}",activityId);
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
}
ActivityProgressInfo progress = misson.getActivityMissionMap().get(type);
if(progress == null){
LOGGER.error("progress为空type:{}",type);
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
}
if(progress.getProgrss() <= 0){
LOGGER.error("progress次数不足num:{}",progress.getProgrss());
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);
throw new ErrorCodeException(ErrorCode.REFRESH_WHEL_TIME_NOT);
}
boolean itemCost = ItemUtil.itemCost(user, new int[][]{{equipId, 1},{itemId, itemNum}}, BIReason.EQUIP_UPLEVEL_COST, equipId);
if(!itemCost){
LOGGER.error("item不足equipId:{},itemId:{},itemNum:{}",equipId,itemId,itemNum);
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
}
CommonProto.Drop.Builder drop = ItemUtil.drop(user,new int[][]{{config.getGoalItems()[0],config.getGoalItems()[1]}},BIReason.EQUIP_UPLEVEL_REWARD);
response.setResult(true);
response.setDrop(drop);
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);
}
}

View File

@ -2,6 +2,7 @@ package com.ljsd.jieling.logic.rank.rankImpl;
import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.logic.dao.GuilidManager;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.GuildInfo;
import com.ljsd.jieling.logic.dao.root.User;
import rpc.protocols.CommonProto;
@ -26,7 +27,10 @@ public class CarDealyGuildRank extends AbstractRank{
@Override
protected void getOptional(int index, ZSetOperations.TypedTuple<String> data, PlayerInfoProto.RankResponse.Builder builder) throws Exception {
User everyUser = UserManager.getUser(Integer.parseInt(data.getValue()), true);
if (everyUser == null){
return;
}
String value = data.getValue();
int guildId = Integer.parseInt(value);
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
@ -42,6 +46,10 @@ public class CarDealyGuildRank extends AbstractRank{
CommonProto.UserRank everyRank = CommonProto.UserRank.newBuilder()
.setGuildName(familyName)
.setRankInfo(everyRankInfo)
.setSex(everyUser.getPlayerInfoManager().getSex())
.setUserSkin(everyUser.getPlayerInfoManager().getUserSkin())
.setUserTitle(everyUser.getPlayerInfoManager().getUserTitle())
.setUserMount(everyUser.getPlayerInfoManager().getUserMount())
.build();
builder.addRanks(everyRank);
}

View File

@ -34,6 +34,10 @@ public class CarDealyRank extends AbstractRank{
CommonProto.UserRank everyRank = CommonProto.UserRank.newBuilder()
.setUserName(everyUser.getPlayerInfoManager().getNickName())
.setRankInfo(everyRankInfo)
.setSex(everyUser.getPlayerInfoManager().getSex())
.setUserSkin(everyUser.getPlayerInfoManager().getUserSkin())
.setUserTitle(everyUser.getPlayerInfoManager().getUserTitle())
.setUserMount(everyUser.getPlayerInfoManager().getUserMount())
.build();
builder.addRanks(everyRank);
}

View File

@ -2,6 +2,7 @@ package com.ljsd.jieling.logic.rank.rankImpl;
import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.logic.dao.GuilidManager;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.GuildInfo;
import com.ljsd.jieling.logic.dao.root.User;
import rpc.protocols.CommonProto;
@ -21,6 +22,15 @@ public class DeathPathEveryGuildRank extends AbstractRank {
protected void getOptional(int index, ZSetOperations.TypedTuple<String> data, PlayerInfoProto.RankResponse.Builder builder) {
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(Integer.parseInt(data.getValue()));
User everyUser = null;
try{
everyUser = UserManager.getUser(Integer.parseInt(data.getValue()), true);
if (everyUser == null){
return;
}
}catch(Exception e){
e.printStackTrace();
}
CommonProto.RankInfo.Builder everyRankInfo = CommonProto.RankInfo.newBuilder()
.setRank(index)
.setParam1(getParam1(data.getScore()))
@ -29,7 +39,11 @@ public class DeathPathEveryGuildRank extends AbstractRank {
CommonProto.UserRank.Builder everyRank = CommonProto.UserRank.newBuilder()
.setUid(guildInfo.getId())
.setGuildName(guildInfo.getName())
.setRankInfo(everyRankInfo);
.setRankInfo(everyRankInfo)
.setSex(everyUser.getPlayerInfoManager().getSex())
.setUserSkin(everyUser.getPlayerInfoManager().getUserSkin())
.setUserTitle(everyUser.getPlayerInfoManager().getUserTitle())
.setUserMount(everyUser.getPlayerInfoManager().getUserMount());
builder.addRanks(everyRank);
}

View File

@ -3,6 +3,7 @@ package com.ljsd.jieling.logic.rank.rankImpl;
import com.ljsd.jieling.db.redis.RedisKey;
import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.logic.dao.GuilidManager;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.GuildInfo;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.family.DeathChallengeCount;
@ -39,7 +40,11 @@ public class DeathPathTotalGuildRank extends AbstractRank{
}
protected void getOptional(int index, ZSetOperations.TypedTuple<String> data, PlayerInfoProto.RankResponse.Builder builder) throws Exception {
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(Integer.parseInt(data.getValue()));
User everyUser = UserManager.getUser(Integer.parseInt(data.getValue()), true);
if (everyUser == null){
return;
}
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(Integer.parseInt(data.getValue()));
DeathChallengeCount countInfo = RedisUtil.getInstence().get(RedisKey.DEATH_PATH_TOTAL_CHALLENGE_COUNT, String.valueOf(guildInfo.getId()), DeathChallengeCount.class);
CommonProto.RankInfo.Builder everyRankInfo = CommonProto.RankInfo.newBuilder()
.setRank(index)
@ -49,7 +54,11 @@ public class DeathPathTotalGuildRank extends AbstractRank{
CommonProto.UserRank.Builder everyRank = CommonProto.UserRank.newBuilder()
.setUid(guildInfo.getId())
.setGuildName(guildInfo.getName())
.setRankInfo(everyRankInfo);
.setRankInfo(everyRankInfo)
.setSex(everyUser.getPlayerInfoManager().getSex())
.setUserSkin(everyUser.getPlayerInfoManager().getUserSkin())
.setUserTitle(everyUser.getPlayerInfoManager().getUserTitle())
.setUserMount(everyUser.getPlayerInfoManager().getUserMount());
builder.addRanks(everyRank);
}

View File

@ -46,7 +46,11 @@ public class GuildSheJiScoreRank extends AbstractRank {
.setUid(user.getId())
.setLevel(user.getPlayerInfoManager().getLevel())
.setGuildName(guildInfo.getName())
.setRankInfo(everyRankInfo);
.setRankInfo(everyRankInfo)
.setSex(user.getPlayerInfoManager().getSex())
.setUserSkin(user.getPlayerInfoManager().getUserSkin())
.setUserTitle(user.getPlayerInfoManager().getUserTitle())
.setUserMount(user.getPlayerInfoManager().getUserMount());
builder.addRanks(everyRank);
}

View File

@ -0,0 +1,102 @@
package config;
import manager.STableManager;
import manager.Table;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Table(name ="SComposeActivity")
public class SComposeActivity implements BaseConfig {
private int id;
private int activityId;
private int[] needItems;
private int count;
private int composeType;
private static Map<Integer, Map<Integer,SComposeActivity>> configMap;
private static Map<Integer, Map<Integer, List<Integer>>> itemMap;
@Override
public void init() throws Exception {
Map<Integer, Map<Integer,SComposeActivity>> tempConfigMap = new HashMap<>();
Map<Integer, Map<Integer, List<Integer>>> tempItemMap = new HashMap<>();
Map<Integer, SComposeActivity> config = STableManager.getConfig(SComposeActivity.class);
for(SComposeActivity activity : config.values()){
if(tempConfigMap.containsKey(activity.getActivityId())){
tempConfigMap.get(activity.getActivityId()).put(activity.getComposeType(),activity);
List<Integer> list = Arrays.stream( activity.getNeedItems() ).boxed().collect(Collectors.toList());
tempItemMap.get(activity.getActivityId()).put(activity.getComposeType(),list);
}else{
Map<Integer,SComposeActivity> map1 = new HashMap<>();
map1.put(activity.getComposeType(),activity);
tempConfigMap.put(activity.getActivityId(),map1);
Map<Integer,List<Integer>> map2 = new HashMap<>();
List<Integer> list = Arrays.stream( activity.getNeedItems() ).boxed().collect(Collectors.toList());
map2.put(activity.getComposeType(),list);
tempItemMap.put(activity.getActivityId(),map2);
}
}
if(configMap == null){
configMap = tempConfigMap;
itemMap = tempItemMap;
}
}
public static Map<Integer, Map<Integer,SComposeActivity>> getConfigMap(){
return configMap;
}
public static int getTypeById(int actId,int equipId){
for(Map.Entry<Integer,List<Integer>> entry : itemMap.get(actId).entrySet()){
if(entry.getValue().contains(equipId)){
return entry.getKey();
}
}
return -1;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getActivityId() {
return activityId;
}
public void setActivityId(int activityId) {
this.activityId = activityId;
}
public int[] getNeedItems() {
return needItems;
}
public void setNeedItems(int[] needItems) {
this.needItems = needItems;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public int getComposeType() {
return composeType;
}
public void setComposeType(int composeType) {
this.composeType = composeType;
}
}

View File

@ -0,0 +1,89 @@
package config;
import manager.STableManager;
import manager.Table;
import java.util.HashMap;
import java.util.Map;
@Table(name ="SComposeBook")
public class SComposeBook implements BaseConfig {
private int id;
private int[] needItems;
private int[] needCost;
private int[] goalItems;
private int type;
private String desc;
private static Map<Integer,Map<Integer,SComposeBook>> typeMap;
@Override
public void init() throws Exception {
Map<Integer,Map<Integer,SComposeBook>> tempTypeMap = new HashMap<>();
Map<Integer, SComposeBook> config = STableManager.getConfig(SComposeBook.class);
for(SComposeBook book : config.values()){
if(tempTypeMap.containsKey(book.getType())){
tempTypeMap.get(book.getType()).put(book.getGoalItems()[0],book);
}else{
Map<Integer,SComposeBook> map = new HashMap<>();
map.put(book.getGoalItems()[0],book);
tempTypeMap.put(book.getType(),map);
}
}
if(typeMap == null){
typeMap = tempTypeMap;
}
}
public static SComposeBook getBookById(int type,int equipId){
return typeMap.get(type).get(equipId);
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int[] getNeedItems() {
return needItems;
}
public void setNeedItems(int[] needItems) {
this.needItems = needItems;
}
public int[] getNeedCost() {
return needCost;
}
public void setNeedCost(int[] needCost) {
this.needCost = needCost;
}
public int[] getGoalItems() {
return goalItems;
}
public void setGoalItems(int[] goalItems) {
this.goalItems = goalItems;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}