Пример #1
0
    public override void OnStartServer()
    {
        if (isServer)
        {
            if (playerScript == null)
            {
                playerScript = GetComponent <PlayerScript>();
            }
            List <InventorySlot> initSync = new List <InventorySlot>();
            foreach (string slotName in slotNames)
            {
                var invSlot = new InventorySlot(Guid.NewGuid(), slotName, true, playerScript);
                Inventory.Add(slotName, invSlot);
                InventoryManager.AllServerInventorySlots.Add(invSlot);
                initSync.Add(invSlot);
            }

            SyncPlayerInventoryGuidMessage.Send(gameObject, initSync);

            //if this is the ghost, respawn after 10 seconds
            if (playerScript.IsGhost)
            {
                RespawnPlayer(RESPAWN_TIME_SECONDS);
            }
        }

        base.OnStartServer();
    }
    public static SyncPlayerInventoryGuidMessage Send(
        GameObject recipient, List <InventorySlot> slots)
    {
        var slotsCollection = new SyncPlayerInventoryList(slots);
        SyncPlayerInventoryGuidMessage msg = new SyncPlayerInventoryGuidMessage
        {
            Recipient = recipient.GetComponent <NetworkIdentity>().netId,            //?
            Data      = JsonUtility.ToJson(slotsCollection),
        };

        msg.SendTo(recipient);
        return(msg);
    }
Пример #3
0
    public override void OnStartServer()
    {
        if (isServer)
        {
            if (playerScript == null)
            {
                playerScript = GetComponent <PlayerScript>();
            }
            List <InventorySlot> initSync = new List <InventorySlot>();
            foreach (string slotName in slotNames)
            {
                var invSlot = new InventorySlot(Guid.NewGuid(), slotName, true, playerScript);
                Inventory.Add(slotName, invSlot);
                InventoryManager.AllServerInventorySlots.Add(invSlot);
                initSync.Add(invSlot);
            }

            SyncPlayerInventoryGuidMessage.Send(gameObject, initSync);
        }

        base.OnStartServer();
    }
Пример #4
0
 public void SendSyncMessage(GameObject recipient)
 {
     SyncPlayerInventoryGuidMessage.Send(recipient, initSync);
 }