guild walk

back_recharge
wangyuan 2019-08-10 14:47:56 +08:00
parent dd0cab498d
commit 707724627c
3 changed files with 32 additions and 3 deletions

View File

@ -1,16 +1,25 @@
package com.ljsd.jieling.logic.dao;
import com.ljsd.common.mogodb.MongoBase;
import java.util.ArrayList;
import java.util.List;
public class GuildMyInfo extends MongoBase {
private static int speed = 500;
private List<Integer> path; //行走路线
private List<Integer> path = new ArrayList<>(); //行走路线
private int curPos=257;//当前位置
private long preMoveTimestamp; //上次更新时间
public void clearOfLevelGuild(){
path.clear();
curPos = 257;
setCurPos(curPos);
setPath(new ArrayList<>());
}
//用户移动到新位置, 返回下一个点的坐标,用户展示客户端的转向,及模拟移动
public void move(List<Integer> path){
@ -22,8 +31,10 @@ public class GuildMyInfo extends MongoBase {
return;
}
this.path.clear();
this.path.addAll(path);
this.path.remove(0);
if(!path.isEmpty()){
this.path.addAll(path);
this.path.remove(0);
}
preMoveTimestamp = timestamp;
setPreMoveTimestamp(timestamp);
}

View File

@ -430,6 +430,7 @@ public class GuildLogic {
}
User targetUser = UserManager.getUser(targetUid);
targetUser.getPlayerInfoManager().setGuildId(0);
targetUser.getGuildMyInfo().clearOfLevelGuild();
addGuildLog(guildInfo.getId(),GuildDef.Log.KICK,targetUser.getPlayerInfoManager().getNickName());
Family.FamilyKickIndication build = Family.FamilyKickIndication.newBuilder().setType(1).build();
ISession targetSession = OnlineUserManager.getSessionByUid(targetUid);
@ -638,6 +639,7 @@ public class GuildLogic {
}
guildInfo.removeMember(uidType,uid);
user.getPlayerInfoManager().setGuildId(0);
user.getGuildMyInfo().clearOfLevelGuild();
addGuildLog(guildInfo.getId(),GuildDef.Log.LEVEL,user.getPlayerInfoManager().getNickName());
MessageUtil.sendMessage(session,1,msgId,null,true);
}
@ -689,6 +691,17 @@ public class GuildLogic {
sendIndicationToMember(guildInfo, MessageTypeProto.MessageType.FAMILY_WALK_INDICATION,familyWalkIndicaiton);
}
public static void updateMyPos(User user) {
int guildId = user.getPlayerInfoManager().getGuildId();
if(guildId == 0){
return;
}
user.getGuildMyInfo().move(new ArrayList<>());
Family.FamilyWalkIndicaiton familyWalkIndicaiton = CBean2Proto.getFamilyWalkIndicaiton(user);
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId);
sendIndicationToMember(guildInfo, MessageTypeProto.MessageType.FAMILY_WALK_INDICATION,familyWalkIndicaiton);
}
public static void addGuildLog(int guildId, int type,String name) throws Exception {
switch (type) {
case GuildDef.Log.CREATE: {
@ -852,4 +865,6 @@ public class GuildLogic {
}
}
}
}

View File

@ -25,7 +25,9 @@ import com.ljsd.jieling.logic.activity.ActivityType;
import com.ljsd.jieling.logic.dao.LevelDifficulty;
import com.ljsd.jieling.logic.dao.PlayerManager;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.GuildLog;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.family.GuildLogic;
import com.ljsd.jieling.logic.fight.CombatLogic;
import com.ljsd.jieling.logic.room.Room;
import com.ljsd.jieling.logic.room.RoomManager;
@ -344,6 +346,7 @@ public class ProtocolsManager implements ProtocolsAbstract {
long onlineTime = playerInfoManager.getOffLineTime() - playerInfoManager.getLoginTime();
//更新在线时长
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.OnlineReward,(int)(onlineTime/TimeUtils.ONE_SECOND));
GuildLogic.updateMyPos(user);
MongoUtil.getInstence().lastUpdate();
// 下线处理的逻辑需要添加在这里
} catch (Exception e) {