Voilà je code en ce moment un jeu sur Unity à l'aide du plug-in PUN. Quand un joueur tire sur un autre joueur et le tue j'aimerai que le joueur qui a tiré gagne les munition du joueur mort. Seulement je n'y arrive pas.
Pourtant, je fais bien
view.RPC("ammunition", killer.owner, i, weapon.GetAmmunition(i));
avec Weapon.GetAmmunition(i) qui recupere le nombre de munition de l'arme i, et sourtout killer.owner qui est celui qui a tué le joueur...
[PunRPC]
void hurt(int viewID, int damage, int killerID)
{
if (view.viewID == viewID)
{
health -= damage;
gui.SetHeathBar(health);
if (health <= 0)
{
PhotonView killer = PhotonView.Find(killerID);
view.RPC("death", PhotonTargets.All, view.owner.NickName, killer.owner.NickName);
for (int i = 0; i < (int) Weapon.Weapons.NumWeapons; i++)
view.RPC("ammunition", killer.owner, i, weapon.GetAmmunition(i));
Respawn();
}
}
}
[PunRPC]
void death(string nickname, string killerName)
{
gui.UpdateInfo("<color=cyan>" + killerName + "</color> killed <color=cyan>" + nickname + "</color>");
GameObject effect = Instantiate(deathEffect, transform.position, Quaternion.Euler(-90, 0, 0));
Destroy(effect, effect.GetComponent<ParticleSystem>().main.duration);
}
[PunRPC]
void ammunition(int weapon, int ammunition)
{
this.weapon.AddAmmunition(weapon, ammunition);
}
public void AddAmmunition(int weapon, int ammo)
{
ammunition[weapon] += ammo;
gui.SetWeaponAmmunition(weapon, ammunition[weapon]);
}
Mon jeu multi online gratuit : https://gamejolt.com/games/space-war/482884