private bool giveGold = false; //this is needed to allow the time it takes to set authority void OnTriggerEnter(Collider collider) { GameObject gObject; if (HandlerPlayer.ActiveGameObject(collider, out gObject)) { gObject.GetComponent <PlayerConnectionObjectScript>().CmdSetClientAuthority(this.gameObject.GetComponent <NetworkIdentity>()); //set authority of the gold to the client, in order to destroy the object giveGold = true; } }
void OnTriggerStay(Collider collider) { if (giveGold) { GameObject playerGameObject; if (HandlerPlayer.ActiveGameObject(collider, out playerGameObject)) { if (hasAuthority) { CmdGivePlayerGoldAndDestroyThis(playerGameObject, this.gameObject); giveGold = false; } } } }
void OnTriggerEnter(Collider collider) { GameObject gObject; if (HandlerPlayer.ActiveGameObject(collider, out gObject)) { gObject.GetComponent <PlayerConnectionObjectScript>().CmdSetClientAuthority(this.gameObject.GetComponent <NetworkIdentity>()); if (gameObject.GetComponent <GoldMineScript>().getOwnerNetworkId() == collider.GetComponentInParent <PlayerUnit>().parentNetworkId) { return; } else if (gameObject.GetComponent <GoldMineScript>().getOwnerNetworkId().Value != 0) //defaults to 0 for no owner { removeOldOwner = true; } setOwner = true; } }
void OnTriggerStay(Collider collider) { if (setOwner) { GameObject playerGameObject; if (HandlerPlayer.ActiveGameObject(collider, out playerGameObject)) { if (hasAuthority) { if (removeOldOwner) { CmdRemoveOldOwnerGoldMine(gameObject.GetComponent <GoldMineScript>().getOwnerNetworkId()); removeOldOwner = false; } gameObject.GetComponent <GoldMineScript>().setOwner(playerGameObject.GetComponent <PlayerConnectionObjectScript>().netId); setOwner = false; CmdGivePlayerGoldMine(playerGameObject); } } } }