1. i try but error,Help Please!
     
  2. What do you want to do with it?
     
  3. Code:
    void OnPlayerSpawn(PlayerSession session)
    {
            timer.Once(2f, () =>
            {
               setposition(session);
            });
    }
    ---------
    but i dont want use the OnPlayerSpawn.
    how can use OnEntitySpawned?
     
  4. Wulf

    Wulf Community Admin

    You'd probably want to use OnFindSpawnPoint() though if you want to change the spawn location of a player.

    If you want to use OnEntitySpawned, the argument is a NetworkViewData.
    Code:
    OnEntitySpawned(NetworkViewData entity)
     
  5. in OnFindSpawnPoint() how can get PlayerSession?
     
  6. Wulf

    Wulf Community Admin

    You can't, all you can do is return a valid spawn vector. What exactly are you wanting to do?
     
  7. i want connect players goto my setposition,but the position would be change.
    so have get PlayerSession
    Code:
    Dictionary<PlayerSession,int> PlayerTeam = new Dictionary<PlayerSession,int>();
    Dictionary<int,List<Vector3>> SpawnPosition = new Dictionary<int,List<Vector3>>();
    void OnPlayerRespawn(PlayerSession session)
    {
        int TeamId = PlayerTeam[session];
        timer.Once(0.1f, () =>
        {
            int RamNum = Core.Random.Range(0,SpawnPosition[TeamId].Count);
            GotoPosition(SpawnPosition[TeamId][RamNum]);
        });
    }
    i want the code in OnFindSpawnPoint() or OnEntitySpawned()
    but OnFindSpawnPoint() can't get the PlayerSession
    how can not use timer.
    Please help.
     
    Last edited by a moderator: Apr 13, 2016
  8. Wulf

    Wulf Community Admin

    Something like this should work to get the session:
    Code:
            void OnEntitySpawned(NetworkViewData entity)
            {
                var sessions = GameManager.Instance.GetSessions();
                var go = entity.NetworkView.gameObject;
                var session = sessions.Where(i => go.Equals(i.Value.WorldPlayerEntity)).Select(i => i.Value);
            }
    You could do it without Linq though if you'd like.
     
  9. thx~
    have a question how can not use timer in OnPlayerRespawn?
    i want try not use timer,but print error.
     
  10. Wulf

    Wulf Community Admin

    What error do you get?
     
  11. Code:
    Dictionary<PlayerSession,int> PlayerTeam = new Dictionary<PlayerSession,int>();
    Dictionary<int,List<Vector3>> SpawnPosition = new Dictionary<int,List<Vector3>>();
    void OnPlayerRespawn(PlayerSession session)
    {
        int TeamId = PlayerTeam[session];
         int RamNum = Core.Random.Range(0,SpawnPosition[TeamId].Count);
         GotoPosition(SpawnPosition[TeamId][RamNum]);
    }
    not timer not working!
     
  12. Wulf

    Wulf Community Admin

    Okay, but what part isn't working? Is the session null?
     
  13. Code:
    Dictionary<PlayerSession,int> PlayerTeam = new Dictionary<PlayerSession,int>();
    Dictionary<int,List<Vector3>> SpawnPosition = new Dictionary<int,List<Vector3>>();
    void OnPlayerConnected(PlayerSession session)
    {
        int TeamId = PlayerTeam[session];
         int RamNum = Core.Random.Range(0,SpawnPosition[TeamId].Count);
         GotoPosition(SpawnPosition[TeamId][RamNum]);
    }
    //not working!i think the session is null or player not spawn;
    //=======================================
    Dictionary<PlayerSession,int> PlayerTeam = new Dictionary<PlayerSession,int>();
    Dictionary<int,List<Vector3>> SpawnPosition = new Dictionary<int,List<Vector3>>();
    void OnPlayerConnected(PlayerSession session)
    {
        timer.Once(2f, () =>
        {
            int TeamId = PlayerTeam[session];
            int RamNum = Core.Random.Range(0,SpawnPosition[TeamId].Count);
            GotoPosition(SpawnPosition[TeamId][RamNum]);
        };
    }
    //but the is working! timer have 2f
    //so i need use OnEntitySpawned hook.
     
  14. Wulf

    Wulf Community Admin

    Okay, I already gave you an example on how to use OnEntitySpawned, but the player session is there in OnPlayerConnected, plugins use it.
     
  15. yes i see,thx:)