Switching weapons in PhotonNetwork

Can someone please help me? I have simple script which is disabled and when I spawn player, it will be enabled. But still, when I switch weapon, other players still see the old one. Can someone please help me?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TPKnifePistol : MonoBehaviour {
	public GameObject gun;
	public GameObject knife;
	public GameObject pistol;
	// Use this for initialization
	void Start () {
		gun.SetActive (true);
		knife.SetActive (false);
		pistol.SetActive (false);
	}
	
	// Update is called once per frame
	void Update () {
		if (Input.GetKey ("2")) {
			gun.SetActive (false);
			knife.SetActive (false);
			pistol.SetActive (true);
		}
		if (Input.GetKey ("3")) {
			gun.SetActive (false);
			knife.SetActive (true);
			pistol.SetActive (false);
		}
	}
	public void LoadByIndex()
	{
		gun.SetActive (true);
		knife.SetActive (false);
		pistol.SetActive (false);
	
	}
}

Hi,

you have to synchronize the selected weapon. you can do this for example by using a RPC call. Firstly you will need a reference to the attached PhotonView component of the game object. Therefore add private PhotonView pView; to the class. Then in your Start (or Awake) function get the reference to the component by using pView = GetComponent<PhotonView>();. Having this reference is important for the Update function as well. Here you have to add the if (!pView.isMine) { return; } condition at the beginning. This helps avoiding handling the Input on objects that are not owned by the local client (otherwise a client will switch the weapon for each other client as well). Whenever a client has selected a new weapon, he can send the ‘index’ by using a RPC, for example pView.RPC("SwitchWeapon", PhotonTargets.All, 2);. This tells every client to call the function “SwitchWeapon” with index 2 on the certain game object. To handle this RPC call you will need a [PunRPC] marked function named “SwitchWeapon” which accepts one int (or byte) value as parameter, for example:

[PunRPC]
private void SwitchWeapon(int weaponIndex) { }

Based on the weapon index the client received you can enable or disable certain weapons.

If you want to read more about RPCs you can do this here.