diff --git a/Assets/Scripts/Networking/Player.cs b/Assets/Scripts/Networking/Player.cs
index d5c3e91f..b76879bc 100644
--- a/Assets/Scripts/Networking/Player.cs
+++ b/Assets/Scripts/Networking/Player.cs
@@ -15,9 +15,10 @@ namespace SanAndreasUnity.Net
/// Local player.
public static Player Local { get; private set; }
- [SyncVar] Ped m_ownedPed;
+ [SyncVar(hook=nameof(OnOwnedGameObjectChanged))] GameObject m_ownedGameObject;
+ Ped m_ownedPed;
//public GameObject OwnedGameObject { get { return m_ownedGameObject; } internal set { m_ownedGameObject = value; } }
- public Ped OwnedPed { get { return m_ownedPed; } internal set { m_ownedPed = value; } }
+ public Ped OwnedPed { get { return m_ownedPed; } internal set { m_ownedPed = value; m_ownedGameObject = value != null ? value.gameObject : null; } }
void OnEnable()
@@ -30,6 +31,16 @@ namespace SanAndreasUnity.Net
s_allPlayers.Remove(this);
}
+ public override void OnStartClient()
+ {
+ base.OnStartClient();
+
+ if (this.isServer)
+ return;
+
+ m_ownedPed = m_ownedGameObject != null ? m_ownedGameObject.GetComponent() : null;
+ }
+
public override void OnStartLocalPlayer()
{
base.OnStartLocalPlayer();
@@ -41,6 +52,16 @@ namespace SanAndreasUnity.Net
}
+ void OnOwnedGameObjectChanged(GameObject newGo)
+ {
+ if (this.isServer)
+ return;
+
+ m_ownedGameObject = newGo;
+
+ m_ownedPed = m_ownedGameObject != null ? m_ownedGameObject.GetComponent() : null;
+ }
+
}
}
diff --git a/Docs/Multiplayer.md b/Docs/Multiplayer.md
index 30786436..5b03f847 100644
--- a/Docs/Multiplayer.md
+++ b/Docs/Multiplayer.md
@@ -18,6 +18,10 @@
- don't show StartGame/JoinGame window in pause menu
+- spawn ped right after player connects
+
+- add weapons to player's ped
+
# Potential problems