- Home /
Networked FPS Error
When I shoot someone in my networked FPS game I Get a error and the player never dies, the error is: Sending RPC failed because 'ApplyDamage' parameter 0 didn't match the RPC declaration. Expected 'System.Int32' but got 'System.Single' so I don't know how to fix this. Please Help!!!!!!!!!!!
Gun Code:
 using UnityEngine;
 using System.Collections;
 
 public class Gun : MonoBehaviour {
   
     public float shoottime;
     public float FireRate = 0.1f;
     
     public float Damage = 25;
     
     public Transform Spawnpoint;
     
     public GameObject ShootParticle;
     
     public AudioClip LoudShot;
     
     public string ShootAnimName;
     
     public Transform Animholder;
     
     public GameObject PrefabHitmarker;
     
     void Start(){
         Animholder.animation[ShootAnimName].layer = 2;
         Animholder.animation[ShootAnimName].wrapMode = WrapMode.Once;
         
         PrefabHitmarker = Resources.Load("Prefabs/Hitmarker") as GameObject;
     }
     
     void Update(){
         if(Input.GetButton("Fire1")){
             Shoot();
         }
     }
 [RPC]
 public void Shoot()
 {
       if (shoottime <= Time.time)
          {
               shoottime = Time.time + FireRate;
               Animholder.animation.Play(ShootAnimName,PlayMode.StopSameLayer);
               audio.PlayOneShot(LoudShot);
               Network.Instantiate(ShootParticle,Spawnpoint.position,Spawnpoint.rotation,1);
               RaycastHit hit;
               if (Physics.Raycast(Spawnpoint.position,Spawnpoint.TransformDirection(Vector3.forward), out hit, 3000))
               {
                 if(hit.collider.tag == "Enemy"){
                 //Local//   hit.transform.SendMessageUpwards("ApplyDamage",Damage , SendMessageOptions.DontRequireReceiver);
                 
                 }
                 if(hit.collider.tag == "Player"){
                 Instantiate(PrefabHitmarker,PrefabHitmarker.transform.position,PrefabHitmarker.transform.rotation);
                 hit.transform.networkView.RPC("ApplyDamage",RPCMode.All,Damage);  
                 }
              }
         }
     }
 }
Player Code:
 using UnityEngine;
 using System.Collections;
 
 public class PlayerOnlineMain : MonoBehaviour {
 
 public float curHp = 100;
 
 public GameObject NetworkObj;
 
 public AudioClip AudioHit1;
 public AudioClip AudioHit2;
 
 
 void Start () {
 //curHp = maxHp;
 NetworkObj = GameObject.FindGameObjectWithTag("MainNetwork");
 }
 
 void Update () {
 if(curHp < 1){
 KillPlayer();
 }
 }
 
 [RPC]
 void ApplyDamage(float Damage){
 curHp-=Damage;
 if(Damage < 99){
 audio.PlayOneShot(AudioHit1);
 }
 if(Damage >= 99){
 audio.PlayOneShot(AudioHit2);
 }
 }
 
 void KillPlayer(){
 NetworkObj.SendMessageUpwards("Killed_Player");
 }
 
 }
Is there any other rpc visible methods called ApplyDamage? 
Yes plus I made it public(that didn't work), and on update in shoot I change shoot to RPC. that didn't work either.
I doesnt need to be public but the logic that drives that is reflection based and this if you have more than 1 names that, it might be trying to invoke the other
Your answer
 
 
             Follow this Question
Related Questions
Network fps swap cameras 1 Answer
Problem with camera and gun in FPS game 0 Answers
How to Network Sound? 1 Answer
Photon Chat Change Order 0 Answers
FPS Network 0 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                