I am trying to make this box so that only one player can use it at a time. Now this works if a client that is NOT the master client tries to open it when the master client has it open, but if the other client has it open the bool isn’t synced to the master client. I have been stumped for like 5 hours and i need this to keep working. Please help.
The thing for changing the chest opened bool is on another script.
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class Inv_Man : MonoBehaviour {
public GameObject ChestOpener;
public bool Chestopen= false;
//armour
public GameObject LHelmObject;
public bool LHelmObjAct = false;
public GameObject LChestObject;
public bool LChestObjAct = false;
public GameObject LLegsObject;
public bool LLegsObjAct = false;
public GameObject LBootsObject;
public bool LBootsObjAct = false;
public GameObject IHelmObject;
public bool IHelmObjAct = false;
public GameObject IChestObject;
public bool IChestObjAct = false;
public GameObject ILegsObject;
public bool ILegsObjAct = false;
public GameObject IBootsObject;
public bool IBootsObjAct = false;
//spells
public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info) {
if (stream.isWriting) {
stream.SendNext (Chestopen);
stream.SendNext (LHelmObjAct);
stream.SendNext (LChestObjAct);
stream.SendNext (LLegsObjAct);
stream.SendNext (LBootsObjAct);
stream.SendNext (IHelmObjAct);
stream.SendNext (IChestObjAct);
stream.SendNext (ILegsObjAct);
stream.SendNext (IBootsObjAct);
} else {
Chestopen = (bool)stream.ReceiveNext();
LHelmObjAct = (bool)stream.ReceiveNext();
LChestObjAct = (bool)stream.ReceiveNext();
LLegsObjAct = (bool)stream.ReceiveNext();
LBootsObjAct = (bool)stream.ReceiveNext();
IHelmObjAct = (bool)stream.ReceiveNext();
IChestObjAct = (bool)stream.ReceiveNext();
ILegsObjAct = (bool)stream.ReceiveNext();
IBootsObjAct = (bool)stream.ReceiveNext();
}
}
void Start () {
LHelmObject = GameObject.Find("UI").transform.FindChild("BoxPanel").FindChild("Whitepanel").FindChild("L_Hat").gameObject;
LChestObject = GameObject.Find("UI").transform.FindChild("BoxPanel").FindChild("Whitepanel").FindChild("L_Chest").gameObject;
LLegsObject = GameObject.Find("UI").transform.FindChild("BoxPanel").FindChild("Whitepanel").FindChild("L_Legs").gameObject;
LBootsObject = GameObject.Find("UI").transform.FindChild("BoxPanel").FindChild("Whitepanel").FindChild("L_Boot").gameObject;
IHelmObject = GameObject.Find("UI").transform.FindChild("BoxPanel").FindChild("Whitepanel").FindChild("I_Hat").gameObject;
IChestObject = GameObject.Find("UI").transform.FindChild("BoxPanel").FindChild("Whitepanel").FindChild("I_Chest").gameObject;
ILegsObject = GameObject.Find("UI").transform.FindChild("BoxPanel").FindChild("Whitepanel").FindChild("I_Legs").gameObject;
IBootsObject = GameObject.Find("UI").transform.FindChild("BoxPanel").FindChild("Whitepanel").FindChild("I_Boots").gameObject;
//buttonlisteneradds
LHelmObject.GetComponent<Button>().onClick.AddListener(LHelmButton);
LChestObject.GetComponent<Button>().onClick.AddListener(LChestButton);
LLegsObject.GetComponent<Button>().onClick.AddListener(LLegsButton);
LBootsObject.GetComponent<Button>().onClick.AddListener(LBootButton);
IHelmObject.GetComponent<Button>().onClick.AddListener(IHelmButton);
IChestObject.GetComponent<Button>().onClick.AddListener(IChestButton);
ILegsObject.GetComponent<Button>().onClick.AddListener(ILegsButton);
IBootsObject.GetComponent<Button>().onClick.AddListener(IBootsButton);
//contentchoosing
if (Random.value < 0.5f) {
LHelmObjAct = true;
}
else {
LHelmObjAct = false;
}
if (Random.value < 0.5f) {
LChestObjAct = true;
}
else {
LChestObjAct = false;
}
if (Random.value < 0.5f) {
LLegsObjAct = true;
}
else {
LLegsObjAct = false;
}
if (Random.value < 0.5f) {
LBootsObjAct = true;
}
else {
LBootsObjAct = false;
}
if (Random.value < 0.5f) {
IHelmObjAct = true;
}
else {
IHelmObjAct = false;
}
if (Random.value < 0.5f) {
IChestObjAct = true;
}
else {
IChestObjAct = false;
}
if (Random.value < 0.5f) {
ILegsObjAct = true;
}
else {
ILegsObjAct = false;
}
if (Random.value < 0.5f) {
IBootsObjAct = true;
}
else {
IBootsObjAct = false;
}
}
public void UPDATECONTENTS(){
if (LHelmObjAct == true) {
LHelmObject.SetActive (true);
} else {
LHelmObject.SetActive (false);
}
if (LChestObjAct == true) {
LChestObject.SetActive (true);
} else {
LChestObject.SetActive (false);
}
if (LLegsObjAct == true) {
LLegsObject.SetActive (true);
} else {
LLegsObject.SetActive (false);
}
if (LBootsObjAct == true) {
LBootsObject.SetActive (true);
} else {
LBootsObject.SetActive (false);
}
if (IHelmObjAct == true) {
IHelmObject.SetActive (true);
} else {
IHelmObject.SetActive (false);
}
if (IChestObjAct == true) {
IChestObject.SetActive (true);
} else {
IChestObject.SetActive (false);
}
if (ILegsObjAct == true) {
ILegsObject.SetActive (true);
} else {
ILegsObject.SetActive (false);
}
if (IBootsObjAct == true) {
IBootsObject.SetActive (true);
}else{
IBootsObject.SetActive (false);
}
}
//spells
//armour
public void LHelmButton(){
ChestOpener.GetComponent<PlayerHealth> ().equipLHelm();
LHelmObjAct = false;
UPDATECONTENTS ();
}
public void LChestButton(){
ChestOpener.GetComponent<PlayerHealth> ().equipLChest();
LChestObjAct = false;
UPDATECONTENTS ();
}
public void LLegsButton(){
ChestOpener.GetComponent<PlayerHealth> ().equipLLegs();
LLegsObjAct = false;
UPDATECONTENTS ();
}
public void LBootButton(){
ChestOpener.GetComponent<PlayerHealth> ().equipLBoots();
LBootsObjAct = false;
UPDATECONTENTS ();
}
public void IHelmButton(){
ChestOpener.GetComponent<PlayerHealth> ().equipIHelm();
IHelmObjAct = false;
UPDATECONTENTS ();
}
public void IChestButton(){
ChestOpener.GetComponent<PlayerHealth> ().equipIChest();
IChestObjAct = false;
UPDATECONTENTS ();
}
public void ILegsButton(){
ChestOpener.GetComponent<PlayerHealth> ().equipILegs();
ILegsObjAct = false;
UPDATECONTENTS ();
}
public void IBootsButton(){
ChestOpener.GetComponent<PlayerHealth> ().equipIBoots();
IBootsObjAct = false;
UPDATECONTENTS ();
}
}
`