//发起创建敌人的请求 public void SendCreateEnemy(CreateEnemyModel model) { Dictionary <byte, object> parameters = new Dictionary <byte, object>(); ParameterTool.AddParmeter(parameters, ParameterCode.CreateEnemyModel, model); PhotonEngine.Instance.SendRequest(OpCode, SubCode.CreateEnemy, parameters); }
public override void OnEvent(EventData eventData) { SubCode subcode = ParameterTool.GetSubcode(eventData.Parameters); switch (subcode) { case SubCode.CreateEnemy: CreateEnemyModel model = ParameterTool.GetParameter <CreateEnemyModel>(eventData.Parameters, ParameterCode.CreateEnemyModel); if (OnCreateEnemy != null) { OnCreateEnemy(model); } break; case SubCode.SyncPositionAndRotation: EnemyPositionModel model1 = ParameterTool.GetParameter <EnemyPositionModel>(eventData.Parameters, ParameterCode.EnemyPositionModel); if (OnSyncEnemyPositionAndRotation != null) { OnSyncEnemyPositionAndRotation(model1); } break; case SubCode.SyncAnimation: EnemyAnimationModel model2 = ParameterTool.GetParameter <EnemyAnimationModel>(eventData.Parameters, ParameterCode.EnemyAnimationModel); if (OnSyncEnemyAnimation != null) { OnSyncEnemyAnimation(model2); } break; } }
public override void OnEvent(EventData eventData) { SubCode subCode = ParameterTool.GetParameters <SubCode>(eventData.Parameters, ParameterCode.SubCode, false); switch (subCode) { case SubCode.CreateEnemy: //Debug.Log("Get the response from server.."); CreateEnemyModel model = ParameterTool.GetParameters <CreateEnemyModel>(eventData.Parameters, ParameterCode.CreateEnemyModel); if (OnCreateEnemy != null) { OnCreateEnemy(model); } break; case SubCode.AsyncPostionAndEularAngler: EnemyPostionModel enemyPosmodel = ParameterTool.GetParameters <EnemyPostionModel>(eventData.Parameters, ParameterCode.EnemyPostionModel); if (OnAsyncEnemyPostionRotation != null) { OnAsyncEnemyPostionRotation(enemyPosmodel); } break; case SubCode.SyncEnemyAnimation: EnemyAnimationModel enemyAnimmodel = ParameterTool.GetParameters <EnemyAnimationModel>(eventData.Parameters, ParameterCode.EnemyAnimationModel); if (OnSyncEnemyAnimation != null) { OnSyncEnemyAnimation(enemyAnimmodel); } break; } }
public LogModel Walk(CreateCharacterModel character, ICollection <CharacterItem> charInventory) { Random random = new Random(); int roll = random.Next(100); if (character.HP <= character.HPMax / 2) { if (charInventory.FirstOrDefault(x => x.Id == 17) != default) { return(Heal(character, charInventory)); } } if (roll < 20 && enemy != null) { return(Pick(character)); } else { int enemyId = random.Next(_EnemyRepository.Get().Last().Id + 1); if (enemyId == 2) { enemyId--; } if (enemyId == 0) { enemyId++; } var EnemyTemp = _EnemyRepository.Get().FirstOrDefault(u => u.Id == enemyId); enemyInventory = _enemyInventoryRepository.Get().FirstOrDefault(u => u.Id == enemyId).EnemyItems; enemy = new CreateEnemyModel() { ArmorClass = EnemyTemp.ArmorClass, ExpGained = EnemyTemp.ExpGained, HP = EnemyTemp.HP, HPMax = EnemyTemp.HPMax, Intitiative = EnemyTemp.Intitiative, Name = EnemyTemp.Name, IsBoss = EnemyTemp.IsBoss, Speed = EnemyTemp.Speed }; enemyLooted = false; character.isFighting = true; logModel.enemyName = enemy.Name; logModel.enemyMaxHP = enemy.HPMax; logModel.enemyHP = enemy.HP; logModel.Looted = false; logModel.enemyCreated = true; logModel.returnModel = character.Name + " meet " + enemy.Name + " and he look realy agressive"; } return(logModel); }
IEnumerator SpawnEnemy() { yield return(new WaitForSeconds(time)); //发送消息 让其他客户端产生敌人 ,包括数量和类型 foreach (GameObject go in enemyPrefabs) { List <CreateEnemyProperty> propertylist = new List <CreateEnemyProperty>(); foreach (Transform t in spawnPosArray) { GameObject temp = GameObject.Instantiate(go, t.position, Quaternion.identity) as GameObject; string guidStr = Guid.NewGuid().ToString(); //guidStr=GUID int targetRoleId = GameController.Instance.GetRandomRoleID(); if (temp.GetComponent <Enemy>() != null) { Enemy enemy = temp.GetComponent <Enemy>(); enemy.guid = guidStr; //为每一个新生产的敌人创建一个GUID //temp.GetComponent<Enemy>().enabled = true; enemy.targetRoleId = targetRoleId; } else { BossOrc bossOrc = temp.GetComponent <BossOrc>(); bossOrc.guid = guidStr; //为新生产的Boss敌人创建一个GUID bossOrc.targetRoleId = targetRoleId; } CreateEnemyProperty property = new CreateEnemyProperty() { guid = guidStr, position = new Vector3Obj(t.position), prefabName = go.name, targetRoleID = targetRoleId }; propertylist.Add(property); } if (GameController.Instance.battleType == BattleType.Team && GameController.Instance.isMaster) { CreateEnemyModel model = new CreateEnemyModel() { List = propertylist }; enemyController.SendCreateEnemy(model); } yield return(new WaitForSeconds(repeateRate)); } }
private void OnCreateEnemy(CreateEnemyModel model) { foreach(CreateEnemyProperty propety in model.list) { GameObject enemyPrefab = Resources.Load<GameObject>("enemy/" + propety.PrefabName); GameObject go=GameObject.Instantiate(enemyPrefab, propety.Postion.ToVector3(), Quaternion.identity) as GameObject; if (go.GetComponent<Enemy>() != null) { go.GetComponent<Enemy>().guid = propety.GUID; } else if (go.GetComponent<Boss>() != null) { go.GetComponent<Boss>().guid = propety.GUID; } //TranscriptManager._instance.enemyList.Add(go);//使得角色可以对敌人进行攻击 AddEnemy(go); } }
private void OnCreateEnemy(CreateEnemyModel model) { foreach (CreateEnemyProperty propety in model.list) { GameObject enemyPrefab = Resources.Load <GameObject>("enemy/" + propety.PrefabName); GameObject go = GameObject.Instantiate(enemyPrefab, propety.Postion.ToVector3(), Quaternion.identity) as GameObject; if (go.GetComponent <Enemy>() != null) { go.GetComponent <Enemy>().guid = propety.GUID; } else if (go.GetComponent <Boss>() != null) { go.GetComponent <Boss>().guid = propety.GUID; } //TranscriptManager._instance.enemyList.Add(go);//使得角色可以对敌人进行攻击 AddEnemy(go); } }
IEnumerator SpawnEnemy() { yield return new WaitForSeconds(time); //发送消息,让其他客户端产生相应的敌人(位置,敌人类型) foreach(GameObject go in enemyPrefabs) { List<CreateEnemyProperty> propertylist = new List<CreateEnemyProperty>( ); foreach(Transform t in spawnPosArray) { GameObject temp = GameObject.Instantiate(go,t.position,Quaternion.identity) as GameObject; string GUID = Guid.NewGuid().ToString(); int targetRoleId = GameController.Instance.GetRandomRoleID(); if (temp.GetComponent<Enemy>() != null) { Enemy enemy = temp.GetComponent<Enemy>(); enemy.guid = GUID; //为每一个新生成的敌人创建一个GUID enemy.targetRoleId =targetRoleId ; } else { Boss boss = temp.GetComponent<Boss>(); boss.guid = GUID; boss.targetRoleId = targetRoleId; } CreateEnemyProperty property = new CreateEnemyProperty() { guid = GUID, position = new Vector3Obj(t.position), prefabName = go.name, targetRoleID = targetRoleId }; propertylist.Add(property); } if (GameController.Instance.battleType == BattleType.Team && GameController.Instance.isMaster) { CreateEnemyModel model = new CreateEnemyModel(){list = propertylist}; enemyController.SendCreateEnemy(model); } yield return new WaitForSeconds(repeateRate); } }
public void OnCreateEnemy(CreateEnemyModel model) { foreach (CreateEnemyProperty property in model.list) { GameObject enemyPrefab = Resources.Load("enemy/" + property.prefabName) as GameObject; GameObject go = GameObject.Instantiate(enemyPrefab, property.position.ToVector3(), Quaternion.identity) as GameObject; Enemy enemy = go.GetComponent <Enemy>(); if (enemy != null) { enemy.guid = property.guid; enemy.targetRoleId = property.targetRoleID; } else { Boss boss = go.GetComponent <Boss>(); boss.guid = property.guid; boss.targetRoleId = property.targetRoleID; } } }
public void OnCreateEnemy(CreateEnemyModel model) { foreach (CreateEnemyProperty property in model.list) { GameObject enemyPrefab = Resources.Load("enemy/" + property.prefabName) as GameObject; GameObject go = GameObject.Instantiate(enemyPrefab, property.position.ToVector3(), Quaternion.identity) as GameObject; Enemy enemy = go.GetComponent<Enemy>(); if (enemy != null) { enemy.guid = property.guid; enemy.targetRoleId = property.targetRoleID; } else { Boss boss = go.GetComponent<Boss>(); boss.guid = property.guid; boss.targetRoleId = property.targetRoleID; } } }
IEnumerator SpawnEnemy() { yield return(new WaitForSeconds(time)); foreach (GameObject go in enemyPrefabs) { List <CreateEnemyProperty> list = new List <CreateEnemyProperty>(); foreach (Transform t in spawnPoint) { GameObject enemy = GameObject.Instantiate(go, t.position, Quaternion.identity) as GameObject; string guid = Guid.NewGuid().ToString(); if (enemy.GetComponent <Enemy>() != null) { enemy.GetComponent <Enemy>().guid = guid; } else if (enemy.GetComponent <Boss>() != null) { enemy.GetComponent <Boss>().guid = guid; } CreateEnemyProperty enemyProperty = new CreateEnemyProperty() { GUID = guid, PrefabName = go.name, Postion = new Vector3Obj(t.position) }; list.Add(enemyProperty); TranscriptManager._instance.AddEnemy(enemy); yield return(new WaitForSeconds(repeateTime)); } if (GameManger._instance.battleType == BattleType.Team && GameManger._instance.isMaster) { Debug.Log("this is master"); CreateEnemyModel model = new CreateEnemyModel(); model.list = list; enemyController.SendCreateEnemy(model); } } yield return(new WaitForSeconds(repeateTime)); }
IEnumerator SpawnEnemy() { yield return new WaitForSeconds(time); foreach(GameObject go in enemyPrefabs) { List<CreateEnemyProperty> list = new List<CreateEnemyProperty>(); foreach(Transform t in spawnPoint) { GameObject enemy=GameObject.Instantiate(go, t.position, Quaternion.identity) as GameObject; string guid = Guid.NewGuid().ToString(); if (enemy.GetComponent<Enemy>() != null) { enemy.GetComponent<Enemy>().guid = guid; } else if (enemy.GetComponent<Boss>() != null) { enemy.GetComponent<Boss>().guid = guid; } CreateEnemyProperty enemyProperty = new CreateEnemyProperty() { GUID = guid, PrefabName = go.name, Postion = new Vector3Obj(t.position) }; list.Add(enemyProperty); TranscriptManager._instance.AddEnemy(enemy); yield return new WaitForSeconds(repeateTime); } if(GameManger._instance.battleType==BattleType.Team && GameManger._instance.isMaster) { Debug.Log("this is master"); CreateEnemyModel model = new CreateEnemyModel(); model.list = list; enemyController.SendCreateEnemy(model); } } yield return new WaitForSeconds(repeateTime); }
//发起创建敌人的请求 public void SendCreateEnemy(CreateEnemyModel model) { Dictionary<byte,object> parameters = new Dictionary<byte, object>(); ParameterTool.AddParameter(parameters,ParameterCode.CreateEnemyModel, model); PhotonEngine.Instance.SendRequest(OpCode,SubCode.CreateEnemy,parameters); }