刪除魂印
parent
790273b96f
commit
071a6c8aa2
File diff suppressed because it is too large
Load Diff
|
|
@ -15126,7 +15126,7 @@ public final class HeroInfoProto {
|
|||
* <code>optional int32 type = 2;</code>
|
||||
*
|
||||
* <pre>
|
||||
*1、装备 ;2、法宝、3魂印
|
||||
*1、装备 、3魂印(不要在此请求法宝)
|
||||
* </pre>
|
||||
*/
|
||||
boolean hasType();
|
||||
|
|
@ -15134,7 +15134,7 @@ public final class HeroInfoProto {
|
|||
* <code>optional int32 type = 2;</code>
|
||||
*
|
||||
* <pre>
|
||||
*1、装备 ;2、法宝、3魂印
|
||||
*1、装备 、3魂印(不要在此请求法宝)
|
||||
* </pre>
|
||||
*/
|
||||
int getType();
|
||||
|
|
@ -15271,7 +15271,7 @@ public final class HeroInfoProto {
|
|||
* <code>optional int32 type = 2;</code>
|
||||
*
|
||||
* <pre>
|
||||
*1、装备 ;2、法宝、3魂印
|
||||
*1、装备 、3魂印(不要在此请求法宝)
|
||||
* </pre>
|
||||
*/
|
||||
public boolean hasType() {
|
||||
|
|
@ -15281,7 +15281,7 @@ public final class HeroInfoProto {
|
|||
* <code>optional int32 type = 2;</code>
|
||||
*
|
||||
* <pre>
|
||||
*1、装备 ;2、法宝、3魂印
|
||||
*1、装备 、3魂印(不要在此请求法宝)
|
||||
* </pre>
|
||||
*/
|
||||
public int getType() {
|
||||
|
|
@ -15587,7 +15587,7 @@ public final class HeroInfoProto {
|
|||
* <code>optional int32 type = 2;</code>
|
||||
*
|
||||
* <pre>
|
||||
*1、装备 ;2、法宝、3魂印
|
||||
*1、装备 、3魂印(不要在此请求法宝)
|
||||
* </pre>
|
||||
*/
|
||||
public boolean hasType() {
|
||||
|
|
@ -15597,7 +15597,7 @@ public final class HeroInfoProto {
|
|||
* <code>optional int32 type = 2;</code>
|
||||
*
|
||||
* <pre>
|
||||
*1、装备 ;2、法宝、3魂印
|
||||
*1、装备 、3魂印(不要在此请求法宝)
|
||||
* </pre>
|
||||
*/
|
||||
public int getType() {
|
||||
|
|
@ -15607,7 +15607,7 @@ public final class HeroInfoProto {
|
|||
* <code>optional int32 type = 2;</code>
|
||||
*
|
||||
* <pre>
|
||||
*1、装备 ;2、法宝、3魂印
|
||||
*1、装备 、3魂印(不要在此请求法宝)
|
||||
* </pre>
|
||||
*/
|
||||
public Builder setType(int value) {
|
||||
|
|
@ -15620,7 +15620,7 @@ public final class HeroInfoProto {
|
|||
* <code>optional int32 type = 2;</code>
|
||||
*
|
||||
* <pre>
|
||||
*1、装备 ;2、法宝、3魂印
|
||||
*1、装备 、3魂印(不要在此请求法宝)
|
||||
* </pre>
|
||||
*/
|
||||
public Builder clearType() {
|
||||
|
|
|
|||
|
|
@ -3164,6 +3164,22 @@ public final class MessageTypeProto {
|
|||
* </pre>
|
||||
*/
|
||||
EXPEDITION_NOINFO_INDICATION(504, 20017),
|
||||
/**
|
||||
* <code>MONTHCARD_TAKE_DAILY_REQUEST = 20101;</code>
|
||||
*
|
||||
* <pre>
|
||||
* 20101 - 20110 月卡
|
||||
* </pre>
|
||||
*/
|
||||
MONTHCARD_TAKE_DAILY_REQUEST(505, 20101),
|
||||
/**
|
||||
* <code>MONTHCARD_TAKE_DAILY_RESPONSE = 20102;</code>
|
||||
*/
|
||||
MONTHCARD_TAKE_DAILY_RESPONSE(506, 20102),
|
||||
/**
|
||||
* <code>MONTHCARD_INDICATION = 20103;</code>
|
||||
*/
|
||||
MONTHCARD_INDICATION(507, 20103),
|
||||
;
|
||||
|
||||
/**
|
||||
|
|
@ -6317,6 +6333,22 @@ public final class MessageTypeProto {
|
|||
* </pre>
|
||||
*/
|
||||
public static final int EXPEDITION_NOINFO_INDICATION_VALUE = 20017;
|
||||
/**
|
||||
* <code>MONTHCARD_TAKE_DAILY_REQUEST = 20101;</code>
|
||||
*
|
||||
* <pre>
|
||||
* 20101 - 20110 月卡
|
||||
* </pre>
|
||||
*/
|
||||
public static final int MONTHCARD_TAKE_DAILY_REQUEST_VALUE = 20101;
|
||||
/**
|
||||
* <code>MONTHCARD_TAKE_DAILY_RESPONSE = 20102;</code>
|
||||
*/
|
||||
public static final int MONTHCARD_TAKE_DAILY_RESPONSE_VALUE = 20102;
|
||||
/**
|
||||
* <code>MONTHCARD_INDICATION = 20103;</code>
|
||||
*/
|
||||
public static final int MONTHCARD_INDICATION_VALUE = 20103;
|
||||
|
||||
|
||||
public final int getNumber() { return value; }
|
||||
|
|
@ -6828,6 +6860,9 @@ public final class MessageTypeProto {
|
|||
case 20015: return EXPEDITION_RECOVER_HERO_RESONSE;
|
||||
case 20016: return EXPEDITION_HOLY_BAG_INDICATION;
|
||||
case 20017: return EXPEDITION_NOINFO_INDICATION;
|
||||
case 20101: return MONTHCARD_TAKE_DAILY_REQUEST;
|
||||
case 20102: return MONTHCARD_TAKE_DAILY_RESPONSE;
|
||||
case 20103: return MONTHCARD_INDICATION;
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -6889,7 +6924,7 @@ public final class MessageTypeProto {
|
|||
static {
|
||||
java.lang.String[] descriptorData = {
|
||||
"\n\026MessageTypeProto.proto\022\032com.ljsd.jieli" +
|
||||
"ng.protocols*\251\200\001\n\013MessageType\022\027\n\022HEART_B" +
|
||||
"ng.protocols*\216\201\001\n\013MessageType\022\027\n\022HEART_B" +
|
||||
"EAT_REQUEST\020\350\007\022\030\n\023HEART_BEAT_RESPONSE\020\351\007" +
|
||||
"\022\036\n\031ACTIVITE_WORKSHOP_REQUEST\020\224N\022\037\n\032ACTI" +
|
||||
"VITE_WORKSHOP_RESPONSE\020\225N\022\027\n\022ARENA_INFO_" +
|
||||
|
|
@ -7300,7 +7335,9 @@ public final class MessageTypeProto {
|
|||
"UEST\020\256\234\001\022%\n\037EXPEDITION_RECOVER_HERO_RESO",
|
||||
"NSE\020\257\234\001\022$\n\036EXPEDITION_HOLY_BAG_INDICATIO" +
|
||||
"N\020\260\234\001\022\"\n\034EXPEDITION_NOINFO_INDICATION\020\261\234" +
|
||||
"\001B\002H\001"
|
||||
"\001\022\"\n\034MONTHCARD_TAKE_DAILY_REQUEST\020\205\235\001\022#\n" +
|
||||
"\035MONTHCARD_TAKE_DAILY_RESPONSE\020\206\235\001\022\032\n\024MO" +
|
||||
"NTHCARD_INDICATION\020\207\235\001B\002H\001"
|
||||
};
|
||||
com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
|
||||
new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -38,8 +38,6 @@ public class UseAndPriceItemHandler extends BaseHandler<PlayerInfoProto.UseAndPr
|
|||
} else if(type==3){
|
||||
CommonProto.Drop.Builder baseBuilder =ItemLogic.getInstance().decomposeHero(iSession,heroIdsList,null, MessageTypeProto.MessageType.USER_AND_PRICE_ITEM_RESPONSE_VALUE);
|
||||
ItemLogic.sendUseAndPriceItemMessage(iSession, MessageTypeProto.MessageType.USER_AND_PRICE_ITEM_RESPONSE_VALUE, baseBuilder);
|
||||
}else if(type==5){//分解魂印
|
||||
ItemLogic.getInstance().decomposeSoulEquip(iSession, equipIdsList);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,11 +16,12 @@ public class SoulEquipUnLoadOptHandler extends BaseHandler<HeroInfoProto.SoulEqu
|
|||
return MessageTypeProto.MessageType.SOUL_EQUIP_UNLOAD_OPT_REQUEST;
|
||||
}
|
||||
|
||||
// TODO: 2020/4/2 魂印分解
|
||||
@Override
|
||||
public void processWithProto(ISession iSession, HeroInfoProto.SoulEquipUnLoadWearRequest equipUnLoadOptRequest) throws Exception {
|
||||
|
||||
List<HeroInfoProto.SoulEquipPos> equipIdsList = equipUnLoadOptRequest.getSoulEquipIdsList();
|
||||
String heroId = equipUnLoadOptRequest.getHeroId();
|
||||
HeroLogic.getInstance().unloadSoulEquipOpt(iSession,heroId,equipIdsList);
|
||||
// HeroLogic.getInstance().unloadSoulEquipOpt(iSession,heroId,equipIdsList);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@ public class SoulEquipWearHandler extends BaseHandler<HeroInfoProto.SoulEquipWea
|
|||
|
||||
@Override
|
||||
public void processWithProto(ISession iSession, HeroInfoProto.SoulEquipWearRequest equipWearRequest) throws Exception {
|
||||
List<HeroInfoProto.SoulEquipPos> equipIdsList = equipWearRequest.getSoulEquipIdsList();
|
||||
HeroLogic.getInstance().wearSoulEquipOpt(iSession,equipWearRequest.getHeroId(),equipIdsList,equipWearRequest.getType());
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,108 +0,0 @@
|
|||
package com.ljsd.jieling.handler.equip;
|
||||
|
||||
import com.ljsd.jieling.chat.logic.ChatLogic;
|
||||
import com.ljsd.jieling.exception.ErrorCode;
|
||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||
import config.SEquipSign;
|
||||
import config.SErrorCodeEerverConfig;
|
||||
import config.SItem;
|
||||
import config.SSpecialConfig;
|
||||
import com.ljsd.jieling.globals.Global;
|
||||
import com.ljsd.jieling.handler.BaseHandler;
|
||||
import com.ljsd.jieling.logic.activity.event.Poster;
|
||||
import com.ljsd.jieling.logic.activity.event.SoulEquipUpEvent;
|
||||
import com.ljsd.jieling.logic.dao.SoulEquip;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.protocols.HeroInfoProto;
|
||||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
@Component
|
||||
public class UpSoulEquipQuiickHandler extends BaseHandler<HeroInfoProto.UpQuickSoulEquipRequest> {
|
||||
@Override
|
||||
public MessageTypeProto.MessageType getMessageCode() {
|
||||
return MessageTypeProto.MessageType.UP_SOUL_EQUIP_QUICK_REQUEST;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void processWithProto(ISession iSession, HeroInfoProto.UpQuickSoulEquipRequest upQuickSoulEquipRequest) throws Exception {
|
||||
|
||||
User user = UserManager.getUser(iSession.getUid());
|
||||
SoulEquip soulEquip = user.getEquipManager().getSoulEquipMap().get(upQuickSoulEquipRequest.getEquipId());
|
||||
if (null == soulEquip) {
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("升级的装备不存在"));
|
||||
}
|
||||
int addleve = 1;
|
||||
SEquipSign sEcfg = SEquipSign.getsEquipSignMap().get(soulEquip.getCfgId());
|
||||
if (null == sEcfg) {
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("升级的装备配置不存在" + soulEquip.getCfgId()));
|
||||
}
|
||||
SEquipSign nextEcfg = SEquipSign.getsEquipSignMap().get(soulEquip.getCfgId() + addleve);
|
||||
if (null == nextEcfg) {
|
||||
throw new ErrorCodeException(ErrorCode.SOUL_EQUIP_LEVE_MAX);
|
||||
}
|
||||
List<String> consumIds = new LinkedList<>();
|
||||
int nextNeedExp = SEquipSign.getEquipExpMap().get(sEcfg.getId());
|
||||
int sumExp = soulEquip.getExp();
|
||||
int leve = soulEquip.getLevel();
|
||||
int oldLevel = leve;
|
||||
boolean full = false;
|
||||
for (String equipId : upQuickSoulEquipRequest.getSoulEquipIdsList()) {
|
||||
if (full) {
|
||||
break;
|
||||
}
|
||||
SoulEquip equip = user.getEquipManager().getSoulEquipMap().get(equipId);
|
||||
if (null == equip) {
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("消耗的装备不存在"));
|
||||
}
|
||||
SEquipSign sEquipSign1 = SEquipSign.getsEquipSignMap().get(equip.getCfgId());
|
||||
if (null == sEquipSign1) {
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("消耗的装备配置不存在" + equip.getCfgId()));
|
||||
}
|
||||
if (upQuickSoulEquipRequest.getEquipId() == equipId) {
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("消耗正在升级的装备" + equip.getCfgId()));
|
||||
}
|
||||
sumExp += sEquipSign1.getResolve();
|
||||
consumIds.add(equipId);
|
||||
while (sumExp >= nextNeedExp) {
|
||||
SEquipSign nextEcfg1 = SEquipSign.getsEquipSignMap().get(soulEquip.getCfgId()+addleve);
|
||||
if (null == nextEcfg1) {
|
||||
full = true;
|
||||
break;
|
||||
}
|
||||
addleve += 1;
|
||||
leve += 1;
|
||||
Poster.getPoster().dispatchEvent(new SoulEquipUpEvent(user.getId(),equip.getEquipId(),leve));
|
||||
nextNeedExp = SEquipSign.getEquipExpMap().get(nextEcfg1.getId());
|
||||
}
|
||||
if (full) {
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
consumIds.forEach(id -> user.getEquipManager().removeSoulEquip(id));
|
||||
soulEquip.setExp(sumExp);
|
||||
soulEquip.setLevel(leve);
|
||||
HeroInfoProto.UpSoulEquipResponse.Builder builder = HeroInfoProto.UpSoulEquipResponse.newBuilder();
|
||||
builder.setExp(sumExp);
|
||||
builder.setLeve(leve);
|
||||
builder.addAllSoulEquipIds(consumIds);
|
||||
builder.setEquipId(upQuickSoulEquipRequest.getEquipId());
|
||||
MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.UP_SOUL_EQUIP_RESPONSE_VALUE, builder.build(), true);
|
||||
if(oldLevel!=leve && soulEquip.getLevel()>= SSpecialConfig.getIntegerValue(SSpecialConfig.lamp_rankup_equipsign_content_parm)){
|
||||
SItem sItem = SItem.getsItemMap().get(soulEquip.getEquipId());
|
||||
if(sItem.getQuantity()<5){
|
||||
return;
|
||||
}
|
||||
String message = SErrorCodeEerverConfig.getI18NMessage("lamp_rankup_equipsign_content", new Object[]{user.getPlayerInfoManager().getNickName(), sItem.getName(),soulEquip.getLevel()});
|
||||
ChatLogic.getInstance().sendSysChatMessage(message, Global.DILIGENT,sItem.getId(),0,0,0,0,0);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -13,7 +13,6 @@ public class TemporaryItems {
|
|||
|
||||
public Set<Equip> equips = new HashSet<>();
|
||||
|
||||
public Set<SoulEquip> soulEquips = new HashSet<>();
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ public class EquipManager extends MongoBase {
|
|||
|
||||
private Map<String,Equip> equipMap;
|
||||
|
||||
private Map<String,SoulEquip> soulEquipMap;
|
||||
|
||||
private Equip unDetermined;
|
||||
|
||||
|
|
@ -25,8 +24,7 @@ public class EquipManager extends MongoBase {
|
|||
|
||||
this.equipHandBook = new HashMap<>();
|
||||
this.equipMap = new HashMap<>();
|
||||
this.soulEquipMap = new HashMap<>();
|
||||
this.soulEquipPool = 1;
|
||||
|
||||
this.setRootCollection(User._COLLECTION_NAME);
|
||||
}
|
||||
|
||||
|
|
@ -46,26 +44,13 @@ public class EquipManager extends MongoBase {
|
|||
}
|
||||
}
|
||||
|
||||
public void addSoulEquip(SoulEquip soulEquip){
|
||||
updateString("soulEquipMap." + soulEquip.getId(), soulEquip);
|
||||
soulEquip.init(getRootId(),getMongoKey()+".soulEquipMap." + soulEquip.getId());
|
||||
soulEquipMap.put(soulEquip.getId(), soulEquip);
|
||||
}
|
||||
|
||||
public void removeSoulEquip(String id){
|
||||
if(soulEquipMap.containsKey(id)){
|
||||
removeString(getMongoKey()+".soulEquipMap." + id);
|
||||
soulEquipMap.remove(id);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public Map<String, Equip> getEquipMap() {
|
||||
return equipMap;
|
||||
}
|
||||
|
||||
public Map<String, SoulEquip> getSoulEquipMap() {
|
||||
return soulEquipMap;
|
||||
}
|
||||
|
||||
public Equip getUnDetermined() {
|
||||
return unDetermined;
|
||||
|
|
|
|||
|
|
@ -1,36 +0,0 @@
|
|||
package com.ljsd.jieling.logic.dao;
|
||||
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.util.KeyGenUtils;
|
||||
import com.ljsd.jieling.util.UUIDEnum;
|
||||
|
||||
/**
|
||||
* 魂印
|
||||
*/
|
||||
public class SoulEquip extends PropertyItem {
|
||||
|
||||
private int exp;
|
||||
|
||||
public SoulEquip(int uid, int equipTid) {
|
||||
super();
|
||||
super.setId(KeyGenUtils.produceIdByModule(UUIDEnum.SOUL_EQUIP, uid));
|
||||
super.setEquipId(equipTid);
|
||||
setLevel(1);
|
||||
}
|
||||
public SoulEquip() {
|
||||
this.setRootCollection(User._COLLECTION_NAME);
|
||||
}
|
||||
|
||||
public int getExp() {
|
||||
return exp;
|
||||
}
|
||||
|
||||
public int getCfgId() {
|
||||
return getEquipId()*100+getLevel();
|
||||
}
|
||||
|
||||
public void setExp(int exp) {
|
||||
updateString("exp",exp);
|
||||
this.exp = exp;
|
||||
}
|
||||
}
|
||||
|
|
@ -127,12 +127,6 @@ public class HeroLogic{
|
|||
for(Equip equipInfo: equipMap.values()){
|
||||
equipList.add(CBean2Proto.getEquipProto(equipInfo));
|
||||
}
|
||||
}else if(type==3){
|
||||
//魂印
|
||||
Map<String, SoulEquip> stringSoulEquipMap = user.getEquipManager().getSoulEquipMap();
|
||||
for(SoulEquip soulEquip: stringSoulEquipMap.values()){
|
||||
equipList.add(CBean2Proto.getEquipProto(soulEquip));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1266,22 +1260,7 @@ public class HeroLogic{
|
|||
}
|
||||
|
||||
//魂印加成
|
||||
Iterator<Map.Entry<Integer, String>> soulIterator = hero.getSoulEquipByPositionMap().entrySet().iterator();
|
||||
while (soulIterator.hasNext()){
|
||||
Map.Entry<Integer, String> next = soulIterator.next();
|
||||
String equipId = next.getValue();
|
||||
SoulEquip equip = equipManager.getSoulEquipMap().get(equipId);
|
||||
if(equip == null){
|
||||
LOGGER.error("魂印null"+equipId);
|
||||
continue;
|
||||
}
|
||||
SEquipSign sEquipSign = SEquipSign.getsEquipSignMap().get(equip.getCfgId());
|
||||
if(null==sEquipSign){
|
||||
LOGGER.error("魂印cfg_null"+equip.getCfgId());
|
||||
continue;
|
||||
}
|
||||
combinedAttribute(sEquipSign.getProperty(),heroAllAttribute);
|
||||
}
|
||||
|
||||
//皮肤、称号加成
|
||||
int decoration = user.getPlayerInfoManager().getDecoration();
|
||||
int designation = user.getPlayerInfoManager().getDesignation();
|
||||
|
|
@ -1533,128 +1512,6 @@ public class HeroLogic{
|
|||
}
|
||||
|
||||
|
||||
// 安装魂印
|
||||
public void wearSoulEquipOpt(ISession session,String heroId, List<HeroInfoProto.SoulEquipPos> equipIds,int type) throws Exception {
|
||||
int uid = session.getUid();
|
||||
User user = UserManager.getUser(uid);
|
||||
Hero hero = user.getHeroManager().getHeroMap().get(heroId);
|
||||
|
||||
if (hero == null || equipIds.isEmpty()) {
|
||||
throw new Exception("英雄不存在或无装备"+heroId+"size"+equipIds.size());
|
||||
}
|
||||
|
||||
//类型检查
|
||||
Map<Integer,Integer> currentType = new HashMap<>(); //pos2type
|
||||
for (Map.Entry<Integer, String> entry: hero.getSoulEquipByPositionMap().entrySet()) {
|
||||
|
||||
SoulEquip equip = user.getEquipManager().getSoulEquipMap().get(entry.getValue());
|
||||
if(null == equip){
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("装备不存在"));
|
||||
}
|
||||
SEquipSign cfg = SEquipSign.getsEquipSignMap().get(equip.getCfgId());
|
||||
if (null == cfg ) {
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("装备配置不存在"));
|
||||
}
|
||||
if(type!=1){
|
||||
currentType.put(entry.getKey(),cfg.getType());
|
||||
}
|
||||
}
|
||||
//checkAndUpdate same type
|
||||
//checkAndUpdate pos 开启
|
||||
//条件不足 放过
|
||||
for (HeroInfoProto.SoulEquipPos soulEquipPos : equipIds) {
|
||||
if (!checkPosAccess(soulEquipPos.getPosition(), user, hero)) {
|
||||
continue;
|
||||
}
|
||||
SoulEquip soulEquip = user.getEquipManager().getSoulEquipMap().get(soulEquipPos.getEquipId());
|
||||
if (null == soulEquip) {
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("装备不存在"));
|
||||
}
|
||||
SEquipSign cfg = SEquipSign.getsEquipSignMap().get(soulEquip.getCfgId());
|
||||
if (null == cfg) {
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("装备配置不存在"));
|
||||
}
|
||||
|
||||
if (currentType.keySet().contains(soulEquipPos.getPosition())) {
|
||||
currentType.remove(soulEquipPos.getPosition());
|
||||
}
|
||||
if (currentType.values().contains(cfg.getType())) {
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("魂印类型重复"));
|
||||
}
|
||||
currentType.put(soulEquipPos.getPosition(), cfg.getType());
|
||||
}
|
||||
|
||||
|
||||
Set<String> ids = new HashSet<>();
|
||||
for (HeroInfoProto.SoulEquipPos soulEquipPos : equipIds) {
|
||||
if (hero.getSoulEquipByPositionMap().containsKey(soulEquipPos.getPosition())) {
|
||||
String id = hero.getSoulEquipByPositionMap().get(soulEquipPos.getPosition());
|
||||
SoulEquip oldEquip = user.getEquipManager().getSoulEquipMap().get(id);
|
||||
if (null != oldEquip && !oldEquip.getId().equals(soulEquipPos.getEquipId())) {
|
||||
if(!ids.contains(id)){
|
||||
oldEquip.setHeroId("");
|
||||
}
|
||||
}
|
||||
}
|
||||
SoulEquip soulEquip = user.getEquipManager().getSoulEquipMap().get(soulEquipPos.getEquipId());
|
||||
soulEquip.setHeroId(heroId);
|
||||
ids.add(soulEquipPos.getEquipId());
|
||||
hero.updateSoulEquipPositionMap(soulEquipPos.getPosition(), soulEquipPos.getEquipId());
|
||||
}
|
||||
|
||||
//发送成功消息
|
||||
MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.SOUL_EQUIP_WEAR_RESPONSE_VALUE,null,true);
|
||||
|
||||
}
|
||||
|
||||
private boolean checkPosAccess(int pos, User user, Hero hero) throws Exception {
|
||||
|
||||
SEquipSignSetting cfg = STableManager.getConfig(SEquipSignSetting.class).get(pos);
|
||||
if (null == cfg) {
|
||||
return false;
|
||||
}
|
||||
if(cfg.getOpenRules()[0]==1){
|
||||
if(user.getPlayerInfoManager().getLevel()<cfg.getOpenRules()[1]){
|
||||
return false;
|
||||
}
|
||||
}else if(cfg.getOpenRules()[0]==2){
|
||||
if(hero.getStar()<cfg.getOpenRules()[1]){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public void unloadSoulEquipOpt(ISession session, String heroId, List<HeroInfoProto.SoulEquipPos> equips) throws Exception {
|
||||
int uid = session.getUid();
|
||||
User user = UserManager.getUser(uid);
|
||||
Hero hero = user.getHeroManager().getHero(heroId);
|
||||
|
||||
if( hero == null || equips.isEmpty()){
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
List<Integer> positions = new ArrayList<>();
|
||||
for(HeroInfoProto.SoulEquipPos soulEquipPos : equips){
|
||||
|
||||
SoulEquip soulEquip = user.getEquipManager().getSoulEquipMap().get(soulEquipPos.getEquipId());
|
||||
if(null == soulEquip || StringUtil.isEmpty(soulEquip.getHeroId())){
|
||||
//未装备
|
||||
LOGGER.error("未装备");
|
||||
// MessageUtil.sendErrorResponse(session,0,MessageTypeProto.MessageType.SOUL_EQUIP_UNLOAD_OPT_RESPONSE_VALUE,"");
|
||||
continue;
|
||||
}
|
||||
soulEquip.setHeroId("");
|
||||
positions.add(soulEquipPos.getPosition());
|
||||
}
|
||||
|
||||
for(Integer position : positions){
|
||||
hero.removeSoulEquip(position);
|
||||
}
|
||||
//发送成功消息
|
||||
MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.SOUL_EQUIP_UNLOAD_OPT_RESPONSE_VALUE,null,true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -196,35 +196,6 @@ public class ItemLogic {
|
|||
sendUseAndPriceItemMessage(iSession, msgId, drop);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分解魂印
|
||||
* @param iSession
|
||||
* @param equipIdsList
|
||||
*/
|
||||
public void decomposeSoulEquip(ISession iSession, List<String> equipIdsList) throws Exception {
|
||||
int msgId = MessageTypeProto.MessageType.USER_AND_PRICE_ITEM_RESPONSE_VALUE;
|
||||
int uid = iSession.getUid();
|
||||
User user = UserManager.getUser(uid);
|
||||
EquipManager equipManager = user.getEquipManager();
|
||||
StringBuilder reward = new StringBuilder();
|
||||
ErrorCode erroMags = checkSoulEquipResolve(equipIdsList,equipManager);
|
||||
if (null!=erroMags){
|
||||
throw new ErrorCodeException(erroMags);
|
||||
}
|
||||
for (String equipId : equipIdsList) {
|
||||
SoulEquip soulEquip = equipManager.getSoulEquipMap().get(equipId);
|
||||
SItem sItem = SItem.getsItemMap().get(soulEquip.getEquipId());
|
||||
equipManager.removeSoulEquip(equipId);
|
||||
if (reward.length() == 0) {
|
||||
reward = new StringBuilder(sItem.getResolveReward());
|
||||
} else {
|
||||
reward.append("#").append(sItem.getResolveReward());
|
||||
}
|
||||
}
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user,StringUtil.parseFiledInt(reward.toString()),1,0,BIReason.DECOMPOS_EQUIP_REWARD);
|
||||
sendUseAndPriceItemMessage(iSession, msgId, drop);
|
||||
}
|
||||
|
||||
private ErrorCode checkEquipResolve(List<String> equipIdsList,EquipManager equipManager) {
|
||||
if (equipIdsList.size() == 0) {
|
||||
return ErrorCode.ITEM_DECOMPOSE_EQUIP_NO;
|
||||
|
|
@ -250,19 +221,6 @@ public class ItemLogic {
|
|||
if (equipIdsList.size() == 0) {
|
||||
return ErrorCode.ITEM_DECOMPOSE_SOULE_EQUIP_NO;
|
||||
}
|
||||
for (String equipId :equipIdsList){
|
||||
SoulEquip equip = equipManager.getSoulEquipMap().get(equipId);
|
||||
if (equip == null){
|
||||
return ErrorCode.ITEM_DECOMPOSE_SOULE_NO_EQUIP;
|
||||
}
|
||||
if (!StringUtil.isEmpty(equip.getHeroId())){
|
||||
return ErrorCode.ITEM_DECOMPOSE_SOULE_IN;
|
||||
}
|
||||
SItem sItem = SItem.getsItemMap().get(equip.getEquipId());
|
||||
if (sItem.getIfResolve() ==0){
|
||||
return ErrorCode.ITEM_DECOMPOSE_SOULE_CANT;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -628,10 +628,6 @@ public class PlayerLogic {
|
|||
for(String equipId : hero.getEquipByPositionMap().values()){
|
||||
builder.addEquip(CBean2Proto.getEquipProto(equipMap.get(equipId)));
|
||||
}
|
||||
Map<String, SoulEquip> soulEquipMap = equipManager.getSoulEquipMap();
|
||||
for(String equipId : hero.getSoulEquipByPositionMap().values()){
|
||||
builder.addEquip(CBean2Proto.getEquipProto(soulEquipMap.get(equipId)));
|
||||
}
|
||||
builder.setForce(HeroLogic.getInstance().calForce(heroNotBufferAttribute));
|
||||
builder.setHero(CBean2Proto.getHero(hero));
|
||||
MessageUtil.sendMessage(session,1,resMsgId,builder.build(),true);
|
||||
|
|
|
|||
|
|
@ -268,6 +268,9 @@ public class SessionManager implements INetSession<ISession>, INetReceived<ISess
|
|||
return 0;
|
||||
}*/
|
||||
int index = packetNetData.getIndex();
|
||||
LOGGER.info("the uid={},the msg={} is processing,the index={},the sessionIndex={}", iSession.getUid(), MessageTypeProto.MessageType.valueOf(packetNetData.getMsgId()), index, iSession.getIndex());
|
||||
|
||||
|
||||
if (iSession.getIndex() >= index) {
|
||||
byte[] message = iSession.getCacheMessage(index);
|
||||
if (message == null) {
|
||||
|
|
|
|||
|
|
@ -117,6 +117,7 @@ public class ThreadManager implements IManager {
|
|||
// testTask 已秒为单位 延迟10s, 间隔30s为周期执行
|
||||
int delayForMinute = 60 - (now%60);
|
||||
LOGGER.info("delayForMinute---->>>>{}" ,delayForMinute);
|
||||
|
||||
scheduledFutureSets.add(scheduledExecutor.scheduleAtFixedRate(platConfigureTask, 10, SLEEP_INTEVAL_TIME, TimeUnit.SECONDS));
|
||||
scheduledFutureSets.add( scheduledExecutor.scheduleAtFixedRate(new MinuteTask(), delayForMinute, 60, TimeUnit.SECONDS));
|
||||
scheduledFutureSets.add( scheduledExecutor.scheduleAtFixedRate(new SecondsTask(), 0, 1, TimeUnit.SECONDS));
|
||||
|
|
|
|||
|
|
@ -77,7 +77,6 @@ public class ItemUtil {
|
|||
addItem(user,itemMap,dropBuilder,reason);
|
||||
addCard(user,cardMap,dropBuilder,reason);
|
||||
addEquip(user,equipMap,dropBuilder,reason);
|
||||
addSoulEquip(user,equipMap,dropBuilder,reason);
|
||||
return dropBuilder;
|
||||
}
|
||||
|
||||
|
|
@ -91,7 +90,6 @@ public class ItemUtil {
|
|||
addItem(user,itemMap,dropBuilder,reason);
|
||||
addCard(user,cardMap,dropBuilder,reason);
|
||||
addEquip(user,equipMap,dropBuilder,reason);
|
||||
addSoulEquip(user,equipMap,dropBuilder,reason);
|
||||
return dropBuilder;
|
||||
}
|
||||
|
||||
|
|
@ -109,7 +107,6 @@ public class ItemUtil {
|
|||
addItem(user,itemMap,dropBuilder,reason);
|
||||
addCard(user,cardMap,dropBuilder,reason);
|
||||
addEquip(user,equipMap,dropBuilder,reason);
|
||||
addSoulEquip(user,equipMap,dropBuilder,reason);
|
||||
return dropBuilder;
|
||||
}
|
||||
|
||||
|
|
@ -128,7 +125,6 @@ public class ItemUtil {
|
|||
addItem(user,itemMap,dropBuilder,reason);
|
||||
addCard(user,cardMap,dropBuilder,reason);
|
||||
addEquip(user,equipMap,dropBuilder,reason);
|
||||
addSoulEquip(user,equipMap,dropBuilder,reason);
|
||||
return dropBuilder;
|
||||
}
|
||||
|
||||
|
|
@ -144,7 +140,6 @@ public class ItemUtil {
|
|||
addItem(user,itemMap,dropBuilder,reason);
|
||||
addCard(user,cardMap,dropBuilder,reason);
|
||||
addEquip(user,equipMap,dropBuilder,reason);
|
||||
addSoulEquip(user,equipMap,dropBuilder,reason);
|
||||
}
|
||||
return dropBuilder;
|
||||
}
|
||||
|
|
@ -159,7 +154,6 @@ public class ItemUtil {
|
|||
addItem(user, itemMap, dropBuilder,reason);
|
||||
addCard(user, cardMap, dropBuilder,reason);
|
||||
addEquip(user, equipMap, dropBuilder,reason);
|
||||
addSoulEquip(user,equipMap,dropBuilder,reason);
|
||||
}
|
||||
|
||||
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) {
|
||||
|
|
@ -216,7 +210,6 @@ public class ItemUtil {
|
|||
} else {
|
||||
addItem(user,itemMap,dropBuilder,reason);
|
||||
addEquip(user,equipMap,dropBuilder,reason);
|
||||
addSoulEquip(user,equipMap,dropBuilder,reason);
|
||||
}
|
||||
addCard(user,cardMap,dropBuilder,reason);
|
||||
return dropBuilder;
|
||||
|
|
@ -301,7 +294,6 @@ public class ItemUtil {
|
|||
addItem(user, itemMap, dropBuilder,reason);
|
||||
addCard(user, cardMap, dropBuilder,reason);
|
||||
addEquip(user, equipMap, dropBuilder,reason);
|
||||
addSoulEquip(user,equipMap,dropBuilder,reason);
|
||||
}
|
||||
|
||||
public static String getReward(Map<Integer, Integer> itemMap,Map<Integer, Integer> cardMap,Map<Integer, Integer> equipMap, Map<Integer,Integer> randomMap) {
|
||||
|
|
@ -735,7 +727,7 @@ public class ItemUtil {
|
|||
LOGGER.info("the uid={},the curMapId={},add item={},addItemNum={},totalItemNum={}",user.getId(),user.getMapManager().getCurMapId(),entry.getKey(),entry.getValue(),item.getItemNum());
|
||||
}
|
||||
Set<Equip> equips = temporaryItems.equips;
|
||||
Set<SoulEquip> soulEquips = temporaryItems.soulEquips;
|
||||
|
||||
for (Map.Entry<Integer, Integer> entry : equipMap.entrySet()) {
|
||||
SEquipConfig sEquipConfig = STableManager.getConfig(SEquipConfig.class).get(entry.getKey());
|
||||
if (sEquipConfig == null) {
|
||||
|
|
@ -750,20 +742,6 @@ public class ItemUtil {
|
|||
LOGGER.info("the uid={},the curMapId={},add equip={},equipNum={},totalEquipNum={}",user.getId(),user.getMapManager().getCurMapId(),entry.getKey(),nums,equips.size());
|
||||
}
|
||||
|
||||
for (Map.Entry<Integer, Integer> entry : equipMap.entrySet()) {
|
||||
SEquipSign sEquipSign = SEquipSign.getsEquipSignMap().get(entry.getKey()*100+1);
|
||||
if (sEquipSign == null) {
|
||||
continue;
|
||||
}
|
||||
Integer nums = entry.getValue();
|
||||
for(int i=0;i<nums;i++){
|
||||
SoulEquip soulEquip1 = new SoulEquip(user.getId(), entry.getKey());
|
||||
soulEquips.add(soulEquip1);
|
||||
soulEquiplist.add(CBean2Proto.getEquipProto(soulEquip1));
|
||||
}
|
||||
LOGGER.info("the uid={},the curMapId={},add equip={},equipNum={},totalEquipNum={}",user.getId(),user.getMapManager().getCurMapId(),entry.getKey(),nums,soulEquiplist.size());
|
||||
}
|
||||
|
||||
mapManager.setTemporaryItems(temporaryItems);
|
||||
if (dropBuilder != null) {
|
||||
dropBuilder.addAllItemlist(itemProtoList);
|
||||
|
|
@ -785,8 +763,7 @@ public class ItemUtil {
|
|||
public static void addTemporaryItemToBag(User user, TemporaryItems temporaryItems, boolean isVictory) throws Exception {
|
||||
Map<Integer, Item> items = temporaryItems.items;
|
||||
Set<Equip> equips = temporaryItems.equips;
|
||||
Set<SoulEquip> soulEquips= temporaryItems.soulEquips;
|
||||
if (items.isEmpty() && equips.isEmpty()&&soulEquips.isEmpty()) {
|
||||
if (items.isEmpty() && equips.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
Map<Integer, Item> itemMap = user.getItemManager().getItemMap();
|
||||
|
|
@ -834,9 +811,7 @@ public class ItemUtil {
|
|||
for(Equip equip:equips){
|
||||
equipsToBag(user,isVictory,equip,rewardStr);
|
||||
}
|
||||
for(SoulEquip soulEquip:soulEquips){
|
||||
equipsToBag(user,isVictory,soulEquip,rewardStr);
|
||||
}
|
||||
|
||||
|
||||
user.getMapManager().setTemporaryItems(null);
|
||||
if(!isVictory){
|
||||
|
|
@ -867,8 +842,6 @@ public class ItemUtil {
|
|||
}
|
||||
if(equip instanceof Equip){
|
||||
equipManager.addEquip(user,(Equip)equip);
|
||||
}else if(equip instanceof SoulEquip){
|
||||
equipManager.addSoulEquip((SoulEquip)equip);
|
||||
}
|
||||
KtEventUtils.onKtEvent(user, ParamEventBean.UserItemEvent,BIReason.TEMPORARY_REWARD,GlobalsDef.addReason,sItem.getId(),1,-1);
|
||||
|
||||
|
|
@ -1028,55 +1001,6 @@ public class ItemUtil {
|
|||
dropBuilder.addAllEquipId(equipList);
|
||||
}
|
||||
|
||||
public static void addSoulEquip(User user, Map<Integer, Integer> equipMap, CommonProto.Drop.Builder dropBuilder,int reason) throws Exception {
|
||||
if (equipMap.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
List<CommonProto.Equip> equipList = new CopyOnWriteArrayList<>();
|
||||
List<Integer> filter = new ArrayList<>();
|
||||
filter.add(GlobalItemType.SOUL_MARK);
|
||||
// int limit = SSpecialConfig.getIntegerValue(SSpecialConfig.EQUIPSIGN_LIMIT);
|
||||
// if (user.getEquipManager().getSoulEquipMap().size() >=limit){
|
||||
// String title = SErrorCodeEerverConfig.getI18NMessage("EquipSign_bag_limit_title");
|
||||
// String content = SErrorCodeEerverConfig.getI18NMessage("EquipSign_bag_limit_txt");
|
||||
// String reward = getLimitReward(equipMap,filter);
|
||||
// int nowTime =(int) (TimeUtils.now()/1000);
|
||||
// MailLogic.getInstance().sendMail(user.getId(),title,content,reward,nowTime,Global.MAIL_EFFECTIVE_TIME);
|
||||
// MessageUtil.nofityBagIsFull(user);
|
||||
// return;
|
||||
// }
|
||||
|
||||
int tempNum = equipMap.entrySet().stream().filter(k ->{
|
||||
int itemType = SItem.getsItemMap().get(k.getKey()).getItemType();
|
||||
if(itemType==GlobalItemType.SOUL_MARK){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}).collect(Collectors.toSet()).size();
|
||||
if(tempNum>0){
|
||||
int limit = SSpecialConfig.getIntegerValue(SSpecialConfig.EQUIPSIGN_LIMIT);
|
||||
if (user.getEquipManager().getSoulEquipMap().size()+tempNum >=limit){
|
||||
String title = SErrorCodeEerverConfig.getI18NMessage("EquipSign_bag_limit_title");
|
||||
String content = SErrorCodeEerverConfig.getI18NMessage("EquipSign_bag_limit_txt");
|
||||
String reward = getLimitReward(equipMap,filter);
|
||||
int nowTime =(int) (TimeUtils.now()/1000);
|
||||
MailLogic.getInstance().sendMail(user.getId(),title,content,reward,nowTime,Global.MAIL_EFFECTIVE_TIME);
|
||||
MessageUtil.nofityBagIsFull(user);
|
||||
return;
|
||||
}
|
||||
}
|
||||
for (Map.Entry<Integer, Integer> entry : equipMap.entrySet()) {
|
||||
int itemType = SItem.getsItemMap().get(entry.getKey()).getItemType();
|
||||
if(itemType!=GlobalItemType.SOUL_MARK){
|
||||
continue;
|
||||
}
|
||||
int count = entry.getValue();
|
||||
for (int i = 0; i < count; i++) {
|
||||
addEquip(user, entry.getKey(), equipList);
|
||||
}
|
||||
}
|
||||
dropBuilder.addAllSoulEquip(equipList);
|
||||
}
|
||||
|
||||
private static String getLimitReward(Map<Integer, Integer> equipMap,List<Integer> filter) {
|
||||
|
||||
|
|
@ -1107,11 +1031,6 @@ public class ItemUtil {
|
|||
equipManager.addEquip(user,equip);
|
||||
equipList.add(CBean2Proto.getEquipProto(equip));
|
||||
msgTem="lamp_lottery_equip_content";
|
||||
}else if(itemType==GlobalItemType.SOUL_MARK){
|
||||
SoulEquip soulEquip = new SoulEquip(user.getId(),equipId);
|
||||
equipManager.addSoulEquip(soulEquip);
|
||||
equipList.add(CBean2Proto.getEquipProto(soulEquip));
|
||||
msgTem="lamp_lottery_equipsign_content";
|
||||
}
|
||||
if (item.getQuantity() >= SSpecialConfig.getIntegerValue(msgTem+"_parm")) {
|
||||
String nickName = user.getPlayerInfoManager().getNickName();
|
||||
|
|
@ -1438,12 +1357,6 @@ public class ItemUtil {
|
|||
return true;
|
||||
}
|
||||
break;
|
||||
case GlobalItemType.SOUL_MARK:
|
||||
int soulLimit = SSpecialConfig.getIntegerValue(SSpecialConfig.EQUIPSIGN_LIMIT);
|
||||
if (user.getEquipManager().getSoulEquipMap().size()+entry.getValue()>=soulLimit){
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue