Exemple #1
0
    //addChunk到服务器上必须比UpdateAfterPopulation早,因此,只要数据产生,无论是读取网络数据、本地数据、产生数据都需要发送
    private void OnChunkDataGenerateFinish(object[] param)
    {
        Chunk chunk = param[0] as Chunk;
        PlayerAddChunkPackage package = PackageFactory.GetPackage(PackageType.PlayerAddChunk) as PlayerAddChunkPackage;

        package.pos  = chunk.worldPos;
        package.sign = chunk.GetSign();
        SendPackage(package);
    }
Exemple #2
0
    private void InitServerMainPlayerInfo()
    {
        //初始化主玩家的一些信息
        MainClientInitPackage package    = PackageFactory.GetPackage(PackageType.MainClientInit) as MainClientInitPackage;
        GameObject            mainPlayer = HasActionObjectManager.Instance.playerManager.getMyPlayer();

        package.roleId          = roleId;
        package.position        = mainPlayer.transform.position;
        package.aoId            = mainPlayer.GetComponent <PlayerAttributes>().aoId;
        package.playerId        = mainPlayer.GetComponent <PlayerAttributes>().playerId;
        package.worldConfigName = WorldConfig.Instance.name;
        package.seed            = WorldConfig.Instance.seed;
        package.time            = DayNightTime.Instance.TotalTime;
        SendPackage(package);

        //初始化当前玩家内存中的chunk信息到服务器
        foreach (var key in World.world.chunks)
        {
            WorldPos chunkPos = key.Key;
            int      sign     = key.Value.GetSign();
            PlayerAddChunkPackage addChunkPackage = PackageFactory.GetPackage(PackageType.PlayerAddChunk) as PlayerAddChunkPackage;
            addChunkPackage.pos  = chunkPos;
            addChunkPackage.sign = sign;
            SendPackage(addChunkPackage);
        }

        //初始化主玩家的entity信息到服务器上(暂时只同步怪物)
        MainClientEntityInitPackage entityInitPackage = PackageFactory.GetPackage(PackageType.MainClientEntityInit) as MainClientEntityInitPackage;
        List <ClientEntityInfo>     list        = new List <ClientEntityInfo>();
        List <GameObject>           listMonster = HasActionObjectManager.Instance.monsterManager.listObj();

        for (int i = 0; i < listMonster.Count; i++)
        {
            GOMonsterController controller = listMonster[i].GetComponent <GOMonsterController>();
            ClientEntityInfo    info       = new ClientEntityInfo();
            EntityData          entityData = controller.GetEntityData();
            info.roleId   = roleId;
            info.aoId     = controller.monsterAttribute.aoId;
            info.entityId = entityData.id;
            info.type     = EntityType.MONSTER;
            info.position = entityData.pos;
            info.extData  = entityData.exData;
            list.Add(info);
        }
        entityInitPackage.entityInfos = list;
        SendPackage(entityInitPackage);
    }