public virtual void Start()
        {
            if (!isServer)
            {
                ObjectDatabase.AddEntity(this);
            }

            m_Animator = GetComponentInChildren <Animator>();
        }
Ejemplo n.º 2
0
    private void OnCreateCharacter(NetworkConnection conn, CreateCharacterMessage createCharacterMessage)
    {
        Player player = Instantiate(playerPrefab).GetComponent <Player>();

        player.Name = createCharacterMessage.Name;                      // assing player name

        CharacterData data = Database.LoadCharacter(player.Name);       // load data from database

        if (data != null)
        {
            Dictionary <Vector2Byte, ItemData> inventoryData = Database.StringToItemData(data.inventory);
            foreach (var key in inventoryData.Keys)                     // add items to inventory
            {
                player.inventoryData.Add(key, inventoryData[key]);
            }

            Dictionary <EquipmentSlot, ItemData> equipmentData = Database.StringToEquipmentData(data.equipment);
            foreach (var key in equipmentData.Keys)                     // add equipment ant its bonuses to player
            {
                EquipmentSlot ID       = key;
                ItemData      itemData = equipmentData[key];

                if (ID < 0 || (int)ID > 4)
                {
                    continue;
                }

                Item item = ObjectDatabase.GetItem(itemData.ID);
                if (item && item is Equipment)
                {
                    Equipment equipment = (Equipment)item;
                    player.equipmentData.Add(key, equipmentData[key]);

                    player.Armor        += equipment.ArmorBonus;
                    player.maxHealth    += equipment.HealthBonus;
                    player.Strength     += equipment.StrengthBonus;
                    player.Intelligence += equipment.IntelligenceBonus;
                    player.Stamina      += equipment.StaminaBonus;

                    if (item.GetType() == typeof(Weapon))
                    {
                        player.usedWeapon   = (Weapon)item;
                        player.usedWeaponID = item.ID;
                    }
                }
            }

            player.transform.position = data.position;                             // move player to his last position
            player.Health             = data.Health;                               // set player's health
            player.Experience         = data.experience;                           // set player's experience
            player.usedWeapon         = ObjectDatabase.GetWeapon(data.usedWeapon); // set player's weapon
        }

        ObjectDatabase.AddEntity(player);                                   // add player to entity database

        NetworkServer.AddPlayerForConnection(conn, player.gameObject);
    }   // Load character data from database
        public override void OnStartServer()
        {
            base.OnStartServer();

            //InvokeRepeating("FindEntityDestination", 2, 2);

            for (int i = 0; i < 100; i++)
            {
                Vector3    spawnPosition = ObjectDatabase.GetRandomSpawnpoint().GetPosition();
                GameObject entity        = Instantiate(ObjectDatabase.GetEntityPrefabByID(0).gameObject, spawnPosition, Quaternion.identity);
                ObjectDatabase.AddEntity(entity.GetComponent <Entity>());

                NetworkServer.Spawn(entity);
            }
        }