protected override void Shoot() { ammo--; for (int i = 0; i < shotVect.Length; i++) { shotVect[i].Set(transform.up.x + Random.Range(-tempF, tempF), transform.up.y, transform.up.z); } tempF += tempF; tempF = Mathf.Clamp(tempF, minBulletRage, maxBulletRage); //Send shoot all other player Message_Sr.Shot_Sr shot = new Message_Sr.Shot_Sr(); shot.index = shooterIndex; shot.type = type; shot.vect = new Vector3[shotVect.Length]; for (int i = 0; i < shotVect.Length; i++) { shot.vect[i] = shotVect[i]; } shot.thisPlayer = false; RoomsManager.SendToAllOtherPlayer(Networking_msgType_Sr.Fire, shot, shooterIndex); //Send shoot me shot.thisPlayer = true; shot.ammo = ammo; RoomsManager.SendToThisPlayer(Networking_msgType_Sr.Fire, shot, shooterIndex); foreach (Vector3 v in shotVect) { if (Physics.Raycast(transform.position, v.normalized, out hit, shotDistace, layerZombie, QueryTriggerInteraction.Ignore)) { Player_MovePlayer zombie = hit.transform.GetComponent <Player_MovePlayer>(); if (zombie != null) { zombie.ZombieDamage(damage, shooterIndex); } } } if (ammo > 0) { if (shotTime > 0) { Invoke("Shoot", shotTime); } } else { StartReload(); } }
protected override void Shoot() { if (!delay) { delay = true; ammo--; temp.Set(transform.up.x + Random.Range(-tempF, tempF), transform.up.y, transform.up.z); tempF += tempF; tempF = Mathf.Clamp(tempF, minBulletRage, maxBulletRage); //Send shoot all other player Message_Sr.Shot_Sr shot = new Message_Sr.Shot_Sr(); shot.index = shooterIndex; shot.type = type; shot.vect = new Vector3[1]; shot.vect[0] = temp; shot.thisPlayer = false; RoomsManager.SendToAllOtherPlayer(Networking_msgType_Sr.Fire, shot, shooterIndex); //Send shoot me shot.thisPlayer = true; shot.ammo = ammo; RoomsManager.SendToThisPlayer(Networking_msgType_Sr.Fire, shot, shooterIndex); hits = Physics.RaycastAll(transform.position, temp.normalized, shotDistace, layerZombie, QueryTriggerInteraction.Ignore); if (hits.Length > 0) { foreach (RaycastHit hit in hits) { Player_MovePlayer zombie = hit.transform.GetComponent <Player_MovePlayer>(); if (zombie != null) { zombie.ZombieDamage(damage, shooterIndex); } } } if (ammo <= 0) { StartReload(); delay = false; } else { Invoke("Delay", shotTime); } } }