zhangshanxue 2020-07-20 14:12:17 +08:00
commit 77c0597283
6 changed files with 42 additions and 26 deletions

View File

@ -230,7 +230,7 @@ end
function Skill:GetDirectTargetsNoMiss() function Skill:GetDirectTargetsNoMiss()
local list = {} local list = {}
for _, role in ipairs(self.effectTargets[1]) do for _, role in ipairs(self.effectTargets[1]) do
if self.CheckTargetIsHit(role) then if self:CheckTargetIsHit(role) then
table.insert(list, role) table.insert(list, role)
end end
end end

View File

@ -153,7 +153,7 @@ public class Cmd_changename extends GmRoleAbstract {
//充值金额 //充值金额
rechargeInfo.setSaveAmt(hotRechargeMoney+saveAmt); rechargeInfo.setSaveAmt(hotRechargeMoney+saveAmt);
//累计充值 //累计充值
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.RechargeTotal,rechargeInfo.getSaveAmt()); // ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.RechargeTotal,rechargeInfo.getSaveAmt());
//限时累计充值 //限时累计充值
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.RECHARGE_NUM,hotRechargeMoney); ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.RECHARGE_NUM,hotRechargeMoney);

View File

@ -19,8 +19,8 @@ public interface ActivityType {
int OnlineReward = 1; //在线奖励 int OnlineReward = 1; //在线奖励
int SevenLogin = 2; //七日登陆 int SevenLogin = 2; //七日登陆
int ChapterReward = 3; //章节奖励 int ChapterReward = 3; //章节奖励
int FirstRecharge = 4; //首充 int FirstRecharge = 5; //首充
int RechargeTotal = 5; //累计充值 // int RechargeTotal = 5; //累计充值
int GrowthFund = 6; //成长基金 int GrowthFund = 6; //成长基金
int BLESSACTIVITY = 7;//云梦祈福 int BLESSACTIVITY = 7;//云梦祈福
int TREASURE = 8; //戒灵秘宝(孙龙的宝藏) int TREASURE = 8; //戒灵秘宝(孙龙的宝藏)

View File

@ -12,7 +12,7 @@ public enum ActivityTypeEnum {
SEVENLOGIN(ActivityType.SevenLogin, SevenLoginActivity::new), SEVENLOGIN(ActivityType.SevenLogin, SevenLoginActivity::new),
CHAPTERREWARD(ActivityType.ChapterReward, ChapterRewardActivity::new), CHAPTERREWARD(ActivityType.ChapterReward, ChapterRewardActivity::new),
FIRSTRECHARGE(ActivityType.FirstRecharge, FirstRechargeActivity::new), FIRSTRECHARGE(ActivityType.FirstRecharge, FirstRechargeActivity::new),
RECHARGETOTAL(ActivityType.RechargeTotal, RechargeTotalActivity::new), // RECHARGETOTAL(ActivityType.RechargeTotal, RechargeTotalActivity::new),
GROWTHFUND(ActivityType.GrowthFund, GrowthFundActivity::new), GROWTHFUND(ActivityType.GrowthFund, GrowthFundActivity::new),
BLESSACTIVITY(ActivityType.BLESSACTIVITY, BlessActivity::new), BLESSACTIVITY(ActivityType.BLESSACTIVITY, BlessActivity::new),
TREASUREACTIVITY(ActivityType.TREASURE, TreasureActivity::new), TREASUREACTIVITY(ActivityType.TREASURE, TreasureActivity::new),

View File

@ -866,7 +866,7 @@ public class HeroLogic{
//删除hero //删除hero
CommonProto.Drop.Builder baseBuilder = ItemLogic.getInstance().decomposeHero(session,new LinkedList<>(removeHeroIds),Collections.singleton(26),MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE); CommonProto.Drop.Builder baseBuilder = ItemLogic.getInstance().decomposeHero(session,new LinkedList<>(removeHeroIds),Collections.singleton(26),MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE);
// recyleHeroBySystem(user,removeHeroIds); // recyleHeroBySystem(user,removeHeroIds);
rankUpHeroExecute(targetHero,1,8); rankUpHeroExecute(targetHero);
Poster.getPoster().dispatchEvent(new HeroUpStarEvent(user.getId(),targetHero.getTemplateId(),targetHero.getStar())); Poster.getPoster().dispatchEvent(new HeroUpStarEvent(user.getId(),targetHero.getTemplateId(),targetHero.getStar()));
if(targetHero.getStar()>=5&&targetHero.getStar()!=15){ if(targetHero.getStar()>=5&&targetHero.getStar()!=15){
if(SItem.getsItemMap().get(scHero.getId()).getQuantity()>=5) if(SItem.getsItemMap().get(scHero.getId()).getQuantity()>=5)
@ -888,11 +888,19 @@ public class HeroLogic{
} }
ReportUtil.onReportEvent(user, ReportEventEnum.HERO_STRENGTHEN.getType(),String.valueOf(targetHero.getTemplateId()),String.valueOf(oldStar),String.valueOf(targetHero.getStar()),""); ReportUtil.onReportEvent(user, ReportEventEnum.HERO_STRENGTHEN.getType(),String.valueOf(targetHero.getTemplateId()),String.valueOf(oldStar),String.valueOf(targetHero.getStar()),"");
} }
private void rankUpHeroExecute(Hero hero,int starCount,int unlockEspecialEquipStar) throws Exception { private void rankUpHeroExecute(Hero hero)throws Exception {
//是否解锁法宝 //是否解锁法宝
if(hero.getStar()<unlockEspecialEquipStar&&hero.getStar()+starCount>=unlockEspecialEquipStar){ SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting();
int[][] equipTalismanaUnlock = gameSetting.getEquipTalismanaUnlock();
for(int [] lockLimit:equipTalismanaUnlock){
//英雄星级解锁
if(lockLimit[0]==2) {
if (hero.getStar() < lockLimit[1] && hero.getStar() + 1 >= lockLimit[1]) {
hero.updateEspecial(1); hero.updateEspecial(1);
} }
}
}
hero.upStar( 1 ); hero.upStar( 1 );
} }
@ -2341,23 +2349,31 @@ public class HeroLogic{
heroManager.removeHero(uid,heroId); heroManager.removeHero(uid,heroId);
int[][] returnMaterials = sHeroReturn.getRankupReturn(); int[][] returnMaterials = sHeroReturn.getRankupReturn();
SHeroLevlConfig sHeroLevlConfig = SHeroLevlConfig.getsHeroLevlConfigMap().get(hero.getLevel());
int[][] levelReturn = ItemLogic.getInstance().itemReturnPercent(sHeroLevlConfig.getSumConsume(), returnPercent);
int returnHero = sHeroReturn.getHeroId(); int returnHero = sHeroReturn.getHeroId();
//进阶材料返还乘万分比 //进阶材料返还乘万分比
int[][] realReturnMaterials = new int[returnMaterials.length][]; Map<Integer,Integer> returnItemMap = new HashMap<>();
for(int i = 0 ; i <realReturnMaterials.length;i++){ for(int i = 0 ; i <returnMaterials.length;i++){
realReturnMaterials[i] = new int[]{returnMaterials[i][0],(int)(returnMaterials[i][1]/10000d*returnPercent)}; returnItemMap.put(returnMaterials[i][0],(int)(returnMaterials[i][1]/10000d*returnPercent));
} }
CommonProto.Drop.Builder drop = ItemUtil.drop(user,realReturnMaterials, BIReason.HERO_BACK_REWARD); for(int i = 0 ; i <levelReturn.length;i++){
ItemUtil.drop(user, new int[][]{{returnHero,1}},drop, BIReason.HERO_BACK_REWARD); returnItemMap.put(levelReturn[i][0],returnItemMap.getOrDefault(levelReturn[i][0],0)+levelReturn[i][1]);
}
returnItemMap.put(returnHero,1);
int[][] resultDrop = new int[returnItemMap.size()][];
int index = 0;
for(Map.Entry<Integer,Integer> entry:returnItemMap.entrySet()){
resultDrop[index] = new int[]{entry.getKey(),entry.getValue()};
index++;
}
CommonProto.Drop.Builder drop = ItemUtil.drop(user, resultDrop, BIReason.HERO_BACK_REWARD);
CommonProto.Hero.Builder heroProto = drop.getHero(0).toBuilder(); CommonProto.Hero.Builder heroProto = drop.getHero(0).toBuilder();
String createHeroId = heroProto.getId(); String createHeroId = heroProto.getId();
heroProto.setStar(star); heroProto.setStar(star);
drop.setHero(0,heroProto.build()); drop.setHero(0,heroProto.build());
Hero newHero = user.getHeroManager().getHeroMap().get(createHeroId); Hero newHero = user.getHeroManager().getHeroMap().get(createHeroId);
newHero.setStar(star); newHero.setStar(star);
SHeroLevlConfig sHeroLevlConfig = SHeroLevlConfig.getsHeroLevlConfigMap().get(hero.getLevel());
int[][] levelUpReturn = sHeroLevlConfig.getSumConsume();
ItemUtil.drop(user, ItemLogic.getInstance().itemReturnPercent(levelUpReturn,returnPercent),drop, BIReason.HERO_BACK_REWARD);
HeroInfoProto.HeroReturnResponse build = HeroInfoProto.HeroReturnResponse.newBuilder().setDrop(drop).build(); HeroInfoProto.HeroReturnResponse build = HeroInfoProto.HeroReturnResponse.newBuilder().setDrop(drop).build();
MessageUtil.sendMessage(session,1,responseMsgId,build,true); MessageUtil.sendMessage(session,1,responseMsgId,build,true);

View File

@ -212,14 +212,14 @@ public class BuyGoodsLogic {
} }
int firstInvest = sRechargeCommodityConfig.getFirstInvest(); int firstInvest = sRechargeCommodityConfig.getFirstInvest();
int[][] reward=null; int[][] reward=null;
if(rechargeInfo.getIsFirst()==0 && firstInvest == 1){ // if(rechargeInfo.getIsFirst()==0 && firstInvest == 1){
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.FirstRecharge,1); // ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.FirstRecharge,1);
SActivityRewardConfig sActivityRewardConfig = SActivityRewardConfig.getsActivityRewardConfigByActivityId(4).get(0); // SActivityRewardConfig sActivityRewardConfig = SActivityRewardConfig.getsActivityRewardConfigByActivityId(4).get(0);
rechargeInfo.setFirst(1); // rechargeInfo.setFirst(1);
String title = SErrorCodeEerverConfig.getI18NMessage("recharge_first_title"); // String title = SErrorCodeEerverConfig.getI18NMessage("recharge_first_title");
String content = SErrorCodeEerverConfig.getI18NMessage("recharge_first_txt"); // String content = SErrorCodeEerverConfig.getI18NMessage("recharge_first_txt");
MailLogic.getInstance().sendMail(user.getId(),title,content,ItemUtil.getMailReward(sActivityRewardConfig.getReward()),nowTime, Global.MAIL_EFFECTIVE_TIME); // MailLogic.getInstance().sendMail(user.getId(),title,content,ItemUtil.getMailReward(sActivityRewardConfig.getReward()),nowTime, Global.MAIL_EFFECTIVE_TIME);
} // }
if(length>baseReward.length){ if(length>baseReward.length){
int[][] result = new int[length][]; int[][] result = new int[length][];
@ -261,7 +261,7 @@ public class BuyGoodsLogic {
rechargeInfo.setSmonthSaveAmt(price+rechargeInfo.getSmonthSaveAmt()); rechargeInfo.setSmonthSaveAmt(price+rechargeInfo.getSmonthSaveAmt());
//TODO 用事件分发 //TODO 用事件分发
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.RechargeTotal,price); // ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.RechargeTotal,price);
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.LUCKYCAT,price); ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.LUCKYCAT,price);
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.DAILY_RECHARGE,price); ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.DAILY_RECHARGE,price);
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.RECHARGE_NUM,price); ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.RECHARGE_NUM,price);