void OnJoinedRoom() { // GameObject player = PhotonNetwork.Instantiate(prefabName, SpawnPoints[i].position, SpawnPoints[i].rotation, group); player = PhotonNetwork.Instantiate(prefabName, SpawnPoint1.position, SpawnPoint1.rotation, group); // player.tag = Globals.Tags.Player.ToString(); player.transform.position = SpawnPoints[player.GetPhotonView().viewID/1000%2].position; player.SetActive(true); Debug.Log("prefab Name:" + prefabName + " number: " + player.GetPhotonView().viewID +"\nIsActive: " + player.GetActive()); //create to spawn points }
private void InstanciarObjeto() { GameObject instancia = Instantiate(objetoAInstanciar, new Vector3(pv.gameObject.transform.position.x, pv.gameObject.transform.position.y + 2, pv.gameObject.transform.position.z), Quaternion.identity); PhotonNetwork.AllocateViewID(instancia.GetPhotonView()); print(string.Concat("Se ha instanciado de forma automática el objeto ", instancia.name, "con ViewID", instancia.GetPhotonView().ViewID)); }
void OnParticleCollision(GameObject other) { wizard = GetComponentInParent <Wizard>(); PhotonView pv = other.GetPhotonView(); pv.RPC("OnDamage", RpcTarget.MasterClient, wizard.skillDamage); }
private BehaviourState ShootSummonProjectile() { //turn to look at enemy Vector3 target = new Vector3(m_AIReference.Target.transform.position.x, m_AIReference.transform.position.y, m_AIReference.Target.transform.position.z); m_AIReference.transform.LookAt(target); //rotate towards the target SoundManager.GetInstance().photonView.RPC("PlaySFXNetworked", PhotonTargets.All, "WorshipperShoot", m_AIReference.transform.position); //grab projectile from pool to fire GameObject projectile = ObjectPoolManager.Instance.GetObjectFromNetworkPool(m_PoolName); if (projectile != null) { Vector3 direction = (m_AIReference.Target.transform.position - m_FireLocation.transform.position).normalized; //get the enemy number from its name by parsing the string int ownerNumber = -1; Int32.TryParse(m_AIReference.gameObject.name, out ownerNumber); //add wall/stairs/door to layer mask //using a bitwise operation to add these to the layer mask as the default enemy layer mask only contains Player int layerMask = m_AIReference.TargetLayerMask; layerMask |= (1 << LayerMask.NameToLayer("Default")); layerMask |= (1 << LayerMask.NameToLayer("Stairs")); layerMask |= (1 << LayerMask.NameToLayer("Door")); layerMask |= (1 << LayerMask.NameToLayer("MapGeometry")); //get any elemental status effects from the list and shoot projectile with RPC Status[] statuses = m_AIReference.ElementalDamage.ToArray(); projectile.GetPhotonView().RPC("FireProjectile", PhotonTargets.All, m_FireLocation.transform.position, direction, ownerNumber, layerMask, m_Damage, m_AIReference.name, statuses); } return(BehaviourState.Succeed); }
public void InstantiateNarrator() { GameObject narr = (GameObject)PhotonNetwork.InstantiateSceneObject("Narrator", new Vector3(19.5f, -12.5f, 15), Quaternion.identity); PhotonView view = narr.GetPhotonView(); view.RPC("SetPosOfNarrator", RpcTarget.AllBuffered, 0); SceneManager.MoveGameObjectToScene(narr, SceneManager.GetSceneByName("GameScene")); view.RPC("DontDestroy", RpcTarget.AllBuffered); //instantiate Narrator Stars GameObject c = (GameObject)PhotonNetwork.InstantiateSceneObject("Star", new Vector3(19.5f, -8.7f, 15), Quaternion.identity); GameObject g = (GameObject)PhotonNetwork.InstantiateSceneObject("Star", new Vector3(19.5f, -0.9f, 15), Quaternion.identity); GameObject n = (GameObject)PhotonNetwork.InstantiateSceneObject("Star", new Vector3(19.5f, 12.6f, 15), Quaternion.identity); PhotonView cView = c.GetPhotonView(); PhotonView gView = g.GetPhotonView(); PhotonView nView = n.GetPhotonView(); cView.RPC("SetPosOfStar", RpcTarget.AllBuffered, 2); SceneManager.MoveGameObjectToScene(c, SceneManager.GetSceneByName("GameScene")); cView.RPC("DontDestroy", RpcTarget.AllBuffered); gView.RPC("SetPosOfStar", RpcTarget.AllBuffered, 6); SceneManager.MoveGameObjectToScene(g, SceneManager.GetSceneByName("GameScene")); gView.RPC("DontDestroy", RpcTarget.AllBuffered); nView.RPC("SetPosOfStar", RpcTarget.AllBuffered, 13); SceneManager.MoveGameObjectToScene(n, SceneManager.GetSceneByName("GameScene")); nView.RPC("DontDestroy", RpcTarget.AllBuffered); }
public void InstantiateRpc(int viewID) { GameObject gameObject = Object.Instantiate <GameObject>(this.Prefab, InputToEvent.inputHitPos + new Vector3(0f, 5f, 0f), Quaternion.identity); gameObject.GetPhotonView().viewID = viewID; gameObject.GetComponent <OnClickDestroy>().DestroyByRpc = true; }
private BehaviourState ShootDrainProjectile() { //make the AI face the target Vector3 target = new Vector3(m_AIReference.Target.transform.position.x, m_AIReference.transform.position.y, m_AIReference.transform.position.z); m_AIReference.transform.LookAt(target); //grab the drainning shot projectile from the object pool GameObject drainProjectile = ObjectPoolManager.Instance.GetObjectFromNetworkPool(m_PoolName); if (drainProjectile != null) { ObjectProjectileDrainningShot drainningShot = drainProjectile.GetComponent <ObjectProjectileDrainningShot>(); drainningShot.AcolyteRef = (AcolyteAI)m_AIReference; Vector3 direction = (m_AIReference.Target.transform.position - m_FireLocation.transform.position).normalized; //get the enemy number from its name by parsing the string int ownerNumber = -1; int.TryParse(m_AIReference.name, out ownerNumber); //add mapgeometry to the layer mask int layerMask = m_AIReference.TargetLayerMask; layerMask |= (1 << LayerMask.NameToLayer("MapGeometry")); //get any element status effects from the list and shoot projectile with RPC Status[] statuses = m_AIReference.ElementalDamage.ToArray(); drainProjectile.GetPhotonView().RPC("FireProjectile", PhotonTargets.All, m_FireLocation.transform.position, direction, ownerNumber, layerMask, m_Damage, m_AIReference.name, statuses); } return(BehaviourState.Succeed); }
public GameObject SpawnMyPlayer() { Transform[] points = GameObject.FindGameObjectWithTag("Spawn Point").GetComponent <SpawnPoints> ().spawnPoints; int i = Random.Range(0, points.Length); Transform spawnPoint = points [i]; GameObject myPlayer = (GameObject)PhotonNetwork.Instantiate("CharacterController", spawnPoint.position, Quaternion.identity, 0); ((MonoBehaviour)myPlayer.GetComponent("FPSInputController")).enabled = true; ((MonoBehaviour)myPlayer.GetComponent("MouseLook")).enabled = true; ((MonoBehaviour)myPlayer.GetComponent("CharacterMotor")).enabled = true; ((MonoBehaviour)myPlayer.GetComponent("Fp_Shooting")).enabled = true; myPlayer.GetComponentInChildren <AudioListener> ().enabled = true; myPlayer.GetComponentInChildren <Camera> ().enabled = true; myPlayer.GetComponentInChildren <MouseLook> ().enabled = true; myPlayer.GetComponentInChildren <PlayerStats> ().enabled = true; myPlayer.GetComponentInChildren <ChatManager> ().enabled = true; myPlayer.AddComponent <PlayerAdder> (); myPlayer.GetComponentInChildren <PlayerStats> ().isPlayer = true; myPlayer.GetComponentInChildren <MeshRenderer> ().enabled = false; Globals.instance.AddPlayer(PhotonNetwork.player.ID, myPlayer.GetComponentInChildren <PlayerStats> ()); myPlayer.GetPhotonView().RPC("OtherPlayerSpawn", PhotonTargets.Others, PhotonNetwork.player.ID); Globals.instance.me = myPlayer; return(myPlayer); }
public override void OnLeftRoom() { player.GetPhotonView().RPC("RespawnUser", RpcTarget.All); RankingManager.Instance.gameObject.GetPhotonView().RPC("RemoveUser", RpcTarget.All, PhotonNetwork.NickName ?? "Unknown Player"); base.OnLeftRoom(); SceneManager.LoadScene("TitleScene"); }
public void InstantiateCanvas() { GameObject n = (GameObject)PhotonNetwork.InstantiateSceneObject("CollectiveDecisionCanvas", new Vector3(0, 0, 15), Quaternion.identity); if (PhotonNetwork.LocalPlayer.IsMasterClient) { Button ok = GameObject.Find("OKGoldButton").GetComponent <Button>(); ok.onClick.AddListener(() => CollectiveDecisionController.OKButtonClicked()); Button dwarfYes = GameObject.Find("AddGoldDwarfButton").GetComponent <Button>(); dwarfYes.onClick.AddListener(() => CollectiveDecisionController.UpdateDwarfCount(1)); Button dwarfNo = GameObject.Find("SubtractGoldDwarfButton").GetComponent <Button>(); dwarfNo.onClick.AddListener(() => CollectiveDecisionController.UpdateDwarfCount(-1)); Button wizardYes = GameObject.Find("AddGoldWizardButton").GetComponent <Button>(); wizardYes.onClick.AddListener(() => CollectiveDecisionController.UpdateWizardCount(1)); Button wizardNo = GameObject.Find("SubtractGoldWizardButton").GetComponent <Button>(); wizardNo.onClick.AddListener(() => CollectiveDecisionController.UpdateWizardCount(-1)); Button warriorYes = GameObject.Find("AddGoldWarriorButton").GetComponent <Button>(); warriorYes.onClick.AddListener(() => CollectiveDecisionController.UpdateWarriorCount(1)); Button warriorNo = GameObject.Find("SubtractGoldWarriorButton").GetComponent <Button>(); warriorNo.onClick.AddListener(() => CollectiveDecisionController.UpdateWarriorCount(-1)); Button archerYes = GameObject.Find("AddGoldArcherButton").GetComponent <Button>(); archerYes.onClick.AddListener(() => CollectiveDecisionController.UpdateArcherCount(1)); Button archerNo = GameObject.Find("SubtractGoldArcherButton").GetComponent <Button>(); archerNo.onClick.AddListener(() => CollectiveDecisionController.UpdateArcherCount(-1)); } PhotonView view = n.GetPhotonView(); SceneManager.MoveGameObjectToScene(n, SceneManager.GetSceneByName("GameScene")); view.RPC("DontDestroy", RpcTarget.AllBuffered); }
public void InstantiateRpc(int viewID) { GameObject go = Object.Instantiate((Object)this.Prefab, Vector3.op_Addition(InputToEvent.inputHitPos, new Vector3(0.0f, 5f, 0.0f)), Quaternion.get_identity()) as GameObject; go.GetPhotonView().viewID = viewID; ((OnClickDestroy)go.GetComponent <OnClickDestroy>()).DestroyByRpc = true; }
private void OnTriggerEnter(Collider other) { if (isCollide) { return; } GameObject gameObject = other.transform.root.gameObject; if (gameObject.layer != 8) { return; } if (IN_GAME_MAIN_CAMERA.Gametype == GameType.Multiplayer) { if (gameObject.GetPhotonView().isMine) { isCollide = true; } } else if (IN_GAME_MAIN_CAMERA.Gametype == GameType.Singleplayer) { GameObject main_object = Camera.main.GetComponent <IN_GAME_MAIN_CAMERA>().main_object; if (main_object != null && main_object == gameObject) { isCollide = true; } } }
private void OnTriggerEnter(Collider other) { if (!this.isCollide) { GameObject gameObject = other.transform.root.gameObject; if (gameObject.layer == 8) { if (IN_GAME_MAIN_CAMERA.gametype == GAMETYPE.MULTIPLAYER) { if (gameObject.GetPhotonView().isMine) { this.isCollide = true; } } else if (IN_GAME_MAIN_CAMERA.gametype == GAMETYPE.SINGLE) { GameObject obj3 = IN_GAME_MAIN_CAMERA.main_object; if ((obj3 != null) && (obj3 == gameObject)) { this.isCollide = true; } } } } }
public GameObject CreateGameObject(string name) { GameObject go = PhotonNetwork.Instantiate("_Prefabs/EmptyObject", Vector3.zero, Quaternion.identity); go.GetPhotonView().RPC("SetName", RpcTarget.All, name); return(go); }
public void Explode(float radius) { disabled = true; base.rigidbody.velocity = Vector3.zero; Vector3 position = base.transform.position; myExplosion = PhotonNetwork.Instantiate("RCAsset/BombExplodeMain", position, Quaternion.Euler(0f, 0f, 0f), 0); foreach (HERO player in FengGameManagerMKII.Instance.heroes) { GameObject gameObject = player.gameObject; if (Vector3.Distance(gameObject.transform.position, position) < radius && !gameObject.GetPhotonView().isMine&& !player.bombImmune) { PhotonPlayer owner = gameObject.GetPhotonView().owner; if (RCSettings.TeamMode > 0 && PhotonNetwork.player.customProperties[PhotonPlayerProperty.RCTeam] != null && owner.customProperties[PhotonPlayerProperty.RCTeam] != null) { int num = GExtensions.AsInt(PhotonNetwork.player.customProperties[PhotonPlayerProperty.RCTeam]); int num2 = GExtensions.AsInt(owner.customProperties[PhotonPlayerProperty.RCTeam]); if (num == 0 || num != num2) { gameObject.GetComponent <HERO>().MarkDead(); gameObject.GetComponent <HERO>().photonView.RPC("netDie2", PhotonTargets.All, -1, GExtensions.AsString(PhotonNetwork.player.customProperties[PhotonPlayerProperty.Name]) + " "); FengGameManagerMKII.Instance.UpdatePlayerKillInfo(0, PhotonNetwork.player); } } else { gameObject.GetComponent <HERO>().MarkDead(); gameObject.GetComponent <HERO>().photonView.RPC("netDie2", PhotonTargets.All, -1, GExtensions.AsString(PhotonNetwork.player.customProperties[PhotonPlayerProperty.Name]) + " "); FengGameManagerMKII.Instance.UpdatePlayerKillInfo(0, PhotonNetwork.player); } } } StartCoroutine(WaitAndFade(1.5f)); }
public override void OnPlayerPropertiesUpdate(Player target, Hashtable changedProps) { base.OnPlayerPropertiesUpdate(target, changedProps); if (!PhotonNetwork.IsMasterClient) { return; } if (!changedProps.ContainsKey("connected")) { return; } foreach (Player player in PhotonNetwork.PlayerList) { if (!player.CustomProperties.ContainsKey("connected")) { continue; } if (!player.CustomProperties["connected"].Equals("game")) { return; } } PhotonNetwork.CurrentRoom.SetCustomProperties(new Hashtable { { "turn_index", 0 } }); GameObject go = PhotonNetwork.InstantiateSceneObject("GameController", new Vector2(), Quaternion.identity); go.GetPhotonView().TransferOwnership(GetActivePlayer()); }
public void OnDestroy() { bool flag = PhotonNetwork.IsMasterClient;// && !FengGameManagerMKII.instance.isRestarting; if (flag) { string[] array = this.settings.Split(new char[] { ',' }); bool flag2 = array[0] == "photon"; if (flag2) { bool flag3 = array.Length > 15; if (flag3) { GameObject gameObject = Pool.NetworkEnable("RCAsset/" + array[1] + "Prop", new Vector3(Convert.ToSingle(array[12]), Convert.ToSingle(array[13]), Convert.ToSingle(array[14])), new Quaternion(Convert.ToSingle(array[15]), Convert.ToSingle(array[16]), Convert.ToSingle(array[17]), Convert.ToSingle(array[18])), 0); gameObject.GetComponent <CannonPropRegion>().settings = this.settings; gameObject.GetPhotonView().RPC("SetSize", PhotonTargets.AllBuffered, new object[] { this.settings }); } else { Pool.NetworkEnable("RCAsset/" + array[1] + "Prop", new Vector3(Convert.ToSingle(array[2]), Convert.ToSingle(array[3]), Convert.ToSingle(array[4])), new Quaternion(Convert.ToSingle(array[5]), Convert.ToSingle(array[6]), Convert.ToSingle(array[7]), Convert.ToSingle(array[8])), 0).GetComponent <CannonPropRegion>().settings = this.settings; } } } }
void OnTriggerEnter(Collider col) { GameObject obj = col.transform.root.gameObject; if (obj.tag == "NetworkObject") { if (obj.GetPhotonView().isMine) // Если наш персонаж на него наехал { if (obj.GetComponent <TankControl>()) { if (obj.GetComponent <SpeedBonusEffect>()) { // Не делаем ничего return; } else { obj.AddComponent <SpeedBonusEffect>(); photonView.RPC("Die", PhotonNetwork.masterClient); photonView.RPC("AddBonus", PhotonTargets.OthersBuffered, obj.GetComponent <PhotonView>().viewID); Destroy(this.gameObject); } } } else { return; } } }
/// <summary> /// プレイヤーのHPを徐々に回復させる「リジェネ」 /// </summary> /// <param name="player"></param> private void Regene(GameObject player) { // リジェネのスキルを取得する SkillBase regeneSkill = SkillControl.GetSkill("リジェネ"); if (player) { // プレイヤーのスクリプトを取得する PlayerChar playerChar = player.GetComponent <PlayerChar>(); // playerがプレイヤーならば if (player) { // 回復量を計算する int healHP = (int)((float)playerChar.GetPlayerData().MaxHP *(regeneSkill.GetBonus() + regeneSkill.attack)); // 効果時間を計算する float skillTime = 20 + regeneSkill.GetLv() * 5; // 回復する時間を計算する float healTime = 5f - regeneSkill.GetLv() * 0.2f; // リジェネを発動させる photonView.RPC("GenerationRegeneration", player.GetPhotonView().owner, healHP, skillTime, healTime); return; } } // 回復量を計算する int healHp = (int)((float)playerData.MaxHP * (regeneSkill.GetBonus() + regeneSkill.attack)); // 効果時間を計算する float skillTimer = 20 + regeneSkill.level * 5; // 回復する時間を計算する float healTimer = 5f - regeneSkill.level * 0.5f; // リジェネを発動する GenerationRegeneration(healHp, skillTimer, healTimer); }
public void PickupObject(GameObject objectToPickUp) { //checker s'il y a la place pour rammasser l'objet //modifier le owner de l'objet if (photonView.IsMine) { objectToPickUp.GetComponent <PickableItem>().ChangeOwner(); } //Executer la routine d'un object ramassé objectToPickUp.GetComponent <PickableItem>().OnPickup(); //puis l'ajouter dans l'inventaire sur tout les clients photonView.RPC("StoreItemInInventory", RpcTarget.All, objectToPickUp.GetPhotonView().ViewID); //le déplacer dans la main gauche objectToPickUp.transform.position = rightHandTransform.position; objectToPickUp.transform.parent = rightHandTransform; objectToPickUp.GetComponent <PickableItem>().OnStoredInInventory(); //Séléctionner l'objet ramasser automatiquement selectedObject = inventory_remade.Count - 1; photonView.RPC("SelectItem", RpcTarget.All, selectedObject); }
public override void hearChime(int chimerPhotonID) { GameObject chimer = PhotonNetwork.GetPhotonView(chimerPhotonID).gameObject; if (chimer != shepherd) { int newFactionNumber = chimer.GetPhotonView().Owner.ActorNumber; if (shepherd == null) { photonView.RPC("changeFaction", RpcTarget.All, newFactionNumber); } else { PhotonView shepView = shepherd.GetPhotonView(); shepView.RPC("SheepDeparts", shepView.Owner, photonView.ViewID); if (newFactionNumber != shepherd.GetPhotonView().Owner.ActorNumber) { photonView.RPC("changeFaction", RpcTarget.All, newFactionNumber); } } shepherdMultiplier = 1; shepherd = chimer; } shepherdMultiplier = Mathf.Clamp(shepherdMultiplier *= 2, 1, 256); updateFlockCenter(); StopCoroutine("DecayShepherdPower"); StartCoroutine("DecayShepherdPower"); // Debug.Log("Chime heard. Shepherd influence is now " + shepherdMultiplier); }
public void Explode(float radius) { this.disabled = true; base.GetComponent <Rigidbody>().velocity = Vector3.zero; Vector3 position = base.transform.position; this.myExplosion = PhotonNetwork.Instantiate("RCAsset/BombExplodeMain", position, Quaternion.Euler(0f, 0f, 0f), 0); foreach (Hero hero in FengGameManagerMKII.instance.getPlayers()) { GameObject gameObject = hero.gameObject; if (((Vector3.Distance(gameObject.transform.position, position) < radius) && !gameObject.GetPhotonView().isMine) && !hero.bombImmune) { PhotonPlayer owner = gameObject.GetPhotonView().owner; if (((FengGameManagerMKII.Gamemode.TeamMode != TeamMode.Disabled) && (PhotonNetwork.player.CustomProperties[PhotonPlayerProperty.RCteam] != null)) && (owner.CustomProperties[PhotonPlayerProperty.RCteam] != null)) { int num = RCextensions.returnIntFromObject(PhotonNetwork.player.CustomProperties[PhotonPlayerProperty.RCteam]); int num2 = RCextensions.returnIntFromObject(owner.CustomProperties[PhotonPlayerProperty.RCteam]); if ((num == 0) || (num != num2)) { gameObject.GetComponent <Hero>().markDie(); gameObject.GetComponent <Hero>().photonView.RPC("netDie2", PhotonTargets.All, new object[] { -1, RCextensions.returnStringFromObject(PhotonNetwork.player.CustomProperties[PhotonPlayerProperty.name]) + " " }); FengGameManagerMKII.instance.playerKillInfoUpdate(PhotonNetwork.player, 0); } } else { gameObject.GetComponent <Hero>().markDie(); gameObject.GetComponent <Hero>().photonView.RPC("netDie2", PhotonTargets.All, new object[] { -1, RCextensions.returnStringFromObject(PhotonNetwork.player.CustomProperties[PhotonPlayerProperty.name]) + " " }); FengGameManagerMKII.instance.playerKillInfoUpdate(PhotonNetwork.player, 0); } } } base.StartCoroutine(this.WaitAndFade(1.5f)); }
/// <summary> /// Check if the gameobject has health component, if yes, deal damage, return if health component has been found /// </summary> /// <param name="other"></param> public bool ApplyDamage(GameObject other) { if (other == caster || !enemiesTag.Any(other.CompareTag)) { return(false); // Suicide isn't allowed :/ or killing not an ennemy ? } // The hitbox is on the mesh which is sometimes on a child var parent = other.transform.parent; // Not all object have a parent var health = other.gameObject.GetComponent <Health>() ? other.gameObject.GetComponent <Health>() : parent?parent.gameObject.GetComponent <Health>() : null; // print($"Hit {other.name} has health {health} caster {caster.name}"); if (health && caster) { // print($"I dealt {abilityData.stat.damage} damage to {other.name}"); var killerAgent = caster.gameObject.GetComponent <KillerAgent>(); if (killerAgent != null) { killerAgent.hitEnemy.Invoke(abilityData.stat.damage); } // The caster.GetPhotonView() should only occur if the caster is non networked (agent training case) health.TakeDamage((int)abilityData.stat.damage, caster && caster.GetPhotonView() ? caster.GetPhotonView().Owner : null); return(true); } return(false); }
private void SetupEquipment() { for (int i = 0; i < equipment.Length; i++) { var equip = equipment[i]; if (equip != null && !(equip is Item)) { Transform parent; if (i == 0 || i == 1) { parent = gunParent; } else if (i == 2) { parent = meleeParent; } else if (i == 3) { parent = grenadeParent; } else { parent = medShotParent; } if (equip.id == (int)WeaponType.Frag) { if (!photonView.IsMine) { continue; } GameObject obj = PhotonNetwork.Instantiate("PhotonPrefabs/Grenade", grenadeParent.position, Quaternion.identity); photonView.RPC("InstantiateGrenade", RpcTarget.All, obj.GetPhotonView().ViewID); } else if (equip.id == (int)WeaponType.Sticky) { if (!photonView.IsMine) { continue; } GameObject obj = PhotonNetwork.Instantiate("PhotonPrefabs/Sticky", grenadeParent.position, Quaternion.identity); photonView.RPC("InstantiateGrenade", RpcTarget.All, obj.GetPhotonView().ViewID); } else { GameObject newObject = Instantiate(equip.prefab, parent.position, parent.rotation, parent); newObject.transform.localPosition = Vector3.zero; newObject.transform.localEulerAngles = Vector3.zero; newObject.SetActive(false); } } } if (photonView.IsMine) { photonView.RPC("EquipWeapon", RpcTarget.All, 0); } }
public void spawnPlayer(GameObject playerObject, List <Vector2> spawnPoints) { //nowMasterID = PhotonNetwork.masterClient.ID; Debug.Log(playerObj.name); Debug.Log(PhotonNetwork.inRoom); Debug.Log(PhotonNetwork.masterClient.ID); if (playerList == null) { playerList = new List <PlayerController>(); } if (PhotonNetwork.isMasterClient) { int i = 0; for (; i < PhotonNetwork.playerList.Length; i++) { Vector3 spawnPoint = spawnPoints[i]; if (SceneManager.GetActiveScene().name == "Tutorial") { spawnPoint = Vector3.zero; } spawnPoint.z = -1; GameObject playerObj = PhotonNetwork.InstantiateSceneObject(playerObject.name, spawnPoint, playerObject.transform.rotation, 0, null); PlayerController playerController = playerObj.GetComponent <PlayerController>(); //playerList.Add(playerController); int id = PhotonNetwork.playerList[i].ID; string nickName = PhotonNetwork.playerList[i].NickName; Debug.Log(nickName); playerController.canMove = false; playerObj.GetPhotonView().RPC("Initial", PhotonTargets.All, i, id, false, nickName); //playerController.Initial(); } i = PhotonNetwork.playerList.Length; if (AIList == null) { return; } for (int a = 0; a < AIList.Length; a++) { Vector3 spawnPoint = spawnPoints[i]; spawnPoint.z = -1; Character ch = AIList[a]; if (ch.isEmpty) { continue; } Debug.Log(ch.name); GameObject playerObj = PhotonNetwork.InstantiateSceneObject(playerObject.name, spawnPoint, playerObject.transform.rotation, 0, null); PlayerController playerController = playerObj.GetComponent <PlayerController>(); //playerList.Add(playerController); int id = -a; playerController.canMove = false; playerObj.GetPhotonView().RPC("Initial", PhotonTargets.All, i, id, true, ch.name); playerObj.GetPhotonView().RPC("SetCharacterSprite", PhotonTargets.All, ch.animal, ch.cup, ch.liquid); playerObj.GetPhotonView().RPC("SetSkill", PhotonTargets.All, ch.animal); i++; } ScoreManager.getInstance().InitialCount(i); } }
public void RemoveBuff(GamePlayerController player) { player.BuffCo?.Sub(Coefficient); if (Owner.GetPhotonView().IsMine) { PhotonNetwork.Destroy(Effect); } }
public void KillPlayer() { string s = "GM killed you"; playerPrefab.GetPhotonView().RPC("KillYourself", RpcTarget.All, new byte[0], s, WaysToKillAPlayer.GMChoice); gameObject.SetActive(false); Debug.Log("Pum, " + username.text + " matao!"); }
protected override void Fire() { GameObject newProjectile = PhotonNetwork.Instantiate(_projectilePrefab.name, _weapon.muzzleTransform.position, Quaternion.identity, 0); newProjectile.GetPhotonView().RPC("SetVelocity", PhotonTargets.All, GetProjectileDirection() * _specificStats.projectileSpeed); TryInvokeOnFire(); }
// プレイヤーをゲームの世界に出現させる IEnumerator SetPlayer(float time) { yield return(new WaitForSeconds(time)); // ネットワークごしにEthanをインスタンス化する player = PhotonNetwork.Instantiate("unitychan", Vector3.up, Quaternion.identity, 0); player.GetPhotonView().RPC("SetName", PhotonTargets.AllBuffered, PhotonNetwork.player.NickName); }
[PunRPC] // called to MasterClient public void InstantiateBlockInScene(string PrefabName, Vector3 Position, Quaternion Rotation, byte Group, object[] Data) { Debug.Log("<Color=Magenta>InstantiateBlockInScene()</Color> -- Calling InstantiateBlockInScene"); GameObject block = PhotonNetwork.InstantiateSceneObject(PrefabName, Position, Rotation, Group, Data); photonView.RPC("SetBlockData", PhotonTargets.All, block.GetPhotonView().viewID); }
public void ExecutePickupFarmer(GameObject found) { string s = (string)PhotonNetwork.LocalPlayer.CustomProperties["Type"]; GameObject.Find(s).GetComponent <Hero>().PickupFarmer(); found.GetPhotonView().RPC("Destroy", RpcTarget.AllBuffered); Debug.Log("Farmer picked up"); }
public void OnJoinedRoom() { if (this.PrefabsToInstantiate != null) { GameObject controller = GameObject.Find("Control"); foreach (GameObject o in this.PrefabsToInstantiate) { Debug.Log("Instantiating: " + o.name); Vector3 spawnPos = Vector3.up; if (this.SpawnPosition != null) { spawnPos = this.SpawnPosition.position; } Vector3 random = Random.insideUnitSphere; random.y = 0; random = random.normalized; Vector3 itempos = spawnPos + this.PositionOffset * random; player = PhotonNetwork.Instantiate(o.name, itempos, Quaternion.identity, 0); PhotonView photonView = player.GetPhotonView(); CameraController camera = PlayerCamera.GetComponent<CameraController>(); camera.enabled = true; camera.player = player; redPlayers = PunTeams.PlayersPerTeam[PunTeams.Team.red].Count; bluePlayers = PunTeams.PlayersPerTeam[PunTeams.Team.blue].Count; ExitGames.Client.Photon.Hashtable ht = new ExitGames.Client.Photon.Hashtable(); ht.Add("ready", false); ht.Add("all ready", false); PhotonNetwork.player.SetCustomProperties(ht); if (redPlayers > bluePlayers) { PhotonNetwork.player.SetTeam(PunTeams.Team.blue); photonView.RPC("ChangeColorToBlue", PhotonTargets.AllBuffered); } else { PhotonNetwork.player.SetTeam(PunTeams.Team.red); photonView.RPC("ChangeColorToRed", PhotonTargets.AllBuffered); } } } }
// Update is called once per frame void Update () { //Debug.Log(completion); if (photonView.isMine){ lifetimeAccum += Time.deltaTime; if (completion >= required){ tempObject = PhotonNetwork.Instantiate(completedBuilding.name,transform.position,transform.rotation,0) as GameObject; SetTeam (tempObject.GetPhotonView().viewID,(int)currentTeam, lifetimeAccum); DestroyBox(GetComponent<PhotonView>().viewID); } if (lifetimeAccum >= totalLifetime){ DestroyBox(GetComponent<PhotonView>().viewID); } } }
public override ActionResult Execute(AI ai) { //enemyObject = enemy.Evaluate(ai.DeltaTime, ai.WorkingMemory).GetValue<GameObject>(); enemyObject = ai.WorkingMemory.GetItem("Wizard").GetValue<RAIN.Entities.Aspects.VisualAspect>().Entity.Form; if( enemyObject != null ) { if( enemyObject.GetPhotonView().isMine ) enemyObject.GetComponent<PlayerController>().TakeDamage((int)ai.WorkingMemory.GetItem("damageToApply").GetValue<int>(),ai.Body.transform); } if( enemyObject == null ) { Debug.Log("no player to hit"); } return ActionResult.SUCCESS; }
void ApplyWind() { if(isControlable){ print ("wind sent"); data[0] = windForce; data[1] = windDirection; Transform[] projectiles = projectileHolder.GetComponentsInChildren<Transform>(); foreach(Transform proj in projectiles){ if(proj.gameObject.GetPhotonView()!=null){ projectile=proj.gameObject; projectile.GetPhotonView().RPC("WindData",PhotonTargets.All,data); } } } }
// Update is called once per frame void Start () { Vector3 random = Random.insideUnitSphere; random.y = 0; random = random.normalized; Vector3 itempos = new Vector3(0,11,0) + 10.0f * random; player = PhotonNetwork.Instantiate("PlayerSphere", itempos, Quaternion.identity, 0); PhotonView photonView = player.GetPhotonView(); CameraController camera = PlayerCamera.GetComponent<CameraController>(); camera.enabled = true; camera.player = player; if (PhotonNetwork.player.GetTeam() == PunTeams.Team.red) { photonView.RPC("ChangeColorToRed", PhotonTargets.AllBuffered); } else { photonView.RPC("ChangeColorToBlue", PhotonTargets.AllBuffered); } }
void Grab() { if (grabbed) { grabbed.GetPhotonView().RPC("released",PhotonTargets.All); grabbed = null; } else { RaycastHit hit; Ray ray = new Ray(transform.position, new Vector3(0,-1,0)); //Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit)) { grabbed = hit.collider.gameObject; int newID = PhotonNetwork.AllocateViewID(); grabbed.GetPhotonView().RPC("grabbed",PhotonTargets.All,newID); grabbedPosition = hit.transform.position; //grabbedBottom = hit.collider.bounds.min.y; } } }
/// <summary> /// プレイヤーを全回復させる関数 /// </summary> /// <param name="player">回復させる対象</param> private void Venediction(GameObject player) { if (player) { // プレイヤーの情報をゲットする PlayerChar playerChar = player.GetComponent<PlayerChar>(); // プレイヤーが取得できれば if (playerChar) { // 他の誰かのHPを回復させる gameObject.GetPhotonView().RPC("Recover", player.GetPhotonView().owner, playerChar.GetPlayerData().MaxHP); // 処理が完了したので抜ける return; } } // 自分のHPを回復させる Recover(playerData.MaxHP); }
/// <summary> /// ヒール /// </summary> /// <param name="player">回復させるプレイヤーオブジェクト</param> private void Heal(GameObject player) { // ヒールのスキルを取得する SkillBase healSkill = SkillControl.GetSkill("ヒール"); // プレイヤーが存在すれば if (player) { // プレイヤーの情報を取得する PlayerChar playerChar = player.GetComponent<PlayerChar>(); // プレイヤーが取得できれば if (playerChar) { // そのプレイヤーの場所に回復エフェクトを表示させる PhotonNetwork.Instantiate("Magics/HealEffect", player.transform.position + Vector3.up * 1f, Quaternion.identity, 0); // 回復させるHPの量を計算する int recoverHP = (int)((float)playerChar.GetPlayerData().MaxHP * (healSkill.GetBonus() + healSkill.attack)); // そのプレイヤーのHPを回復させる gameObject.GetPhotonView().RPC("Recover", player.GetPhotonView().owner, recoverHP); // 処理が完了したので抜ける return; } } // 自分の位置に回復エフェクトを表示させる PhotonNetwork.Instantiate("Magics/HealEffect", gameObject.transform.position + Vector3.up * 1f, Quaternion.identity, 0); // 自分のHPを回復する Recover((int)((float)playerData.MaxHP * (healSkill.GetBonus() + healSkill.attack))); }
private int FindView(GameObject go) { return go.GetPhotonView ().viewID; }
/// <summary> /// Despawns the object. Must be called only from master server /// </summary> /// <param name="obj">Object.</param> public virtual void DespawnObject(GameObject obj) { if (!isMaster) return; int objectID = obj.GetPhotonView ().viewID; photonView.RPC ("RPC_DespawnObject", PhotonTargets.AllBufferedViaServer, objectID); //[[Updating the list]] if(SpawnedObjects.Contains (objectID)) SpawnedObjects.Remove (objectID); }
/// <summary> /// プレイヤーのHPを徐々に回復させる「リジェネ」 /// </summary> /// <param name="player"></param> private void Regene(GameObject player) { // リジェネのスキルを取得する SkillBase regeneSkill = SkillControl.GetSkill("リジェネ"); if (player) { // プレイヤーのスクリプトを取得する PlayerChar playerChar = player.GetComponent<PlayerChar>(); // playerがプレイヤーならば if (player) { // 回復量を計算する int healHP = (int)((float)playerChar.GetPlayerData().MaxHP * (regeneSkill.GetBonus() + regeneSkill.attack)); // 効果時間を計算する float skillTime = 20 + regeneSkill.GetLv() * 5; // 回復する時間を計算する float healTime = 5f - regeneSkill.GetLv() * 0.2f; // リジェネを発動させる photonView.RPC("GenerationRegeneration", player.GetPhotonView().owner, healHP, skillTime, healTime); return; } } // 回復量を計算する int healHp = (int)((float)playerData.MaxHP * (regeneSkill.GetBonus() + regeneSkill.attack)); // 効果時間を計算する float skillTimer = 20 + regeneSkill.level * 5; // 回復する時間を計算する float healTimer = 5f - regeneSkill.level * 0.5f; // リジェネを発動する GenerationRegeneration(healHp, skillTimer, healTimer); }