- Home /
Question by
epicVoodoo · Feb 03, 2015 at 09:26 AM ·
scripting problemnetworkingrpcmethod
Attached script method doesn't work in multiplayer
Hi! I have a script which complete a spell actions. Once a player presses button, THIS player gets this sctipt attached to his gameobject. This script contains a method which is called in the end of the spell when all the damage is dealt.
void Update()
{
if (phase1)
{
if (GetComponent<Player>().periodDamageFinished)
{
s26_Event1();
}
}
}
public void s26_Event1()
{
caster.networkView.RPC("SendBool", RPCMode.All, "Cast", false);
Destroy(this.GetComponent<s26>());
Destroy(GameObject.Find("s26(Clone)"), 0.5f);
Destroy(phase1, 0.5f);
}
And the place where the spell activating bool var becomes "true"
public void GivePeriodDamage(GameObject t, int dmg, int count, float interval, int splashRadius)
{
if(networkView.isMine)
StartCoroutine(PeriodDamage(t, dmg, count, interval, splashRadius));
}
IEnumerator PeriodDamage(GameObject t, int dmg, int count, float interval, int splashRadius)
{
while (periodPhase <= count)
{
if (splashRadius == 0)
GiveDamage(t, dmg / count);
else if (splashRadius > 0) GiveSplashDamage(t, dmg / count, splashRadius);
periodPhase++;
yield return new WaitForSeconds(interval);
}
if (periodPhase > count)
{
networkView.RPC("AdjustPeriodDamageFinished", RPCMode.All, true); //periodDamageFinished = true
periodPhase = 0;
}
}
Problem: Method s26_Event1 which script is attached only to caster is being called only at its network and another players still see spell's gameobject! I cant figure out how to call this method only from this caster's network in such way that everybody will see its work.
//Sorry for my English
Comment