Beispiel #1
0
 public void OnChangeStatus(Actor sActor, MapEventArgs args)
 {
     Map.StatusArgs arg = (Map.StatusArgs)args;
     switch (arg.type)
     {
         case Map.StatusArgs.EventType.Add:
             foreach (Map.StatusArgs.StatusInfo i in arg.StatusList)
             {
                 Packets.Server.ExchangeAddition p1 = new SagaMap.Packets.Server.ExchangeAddition();
                 p1.SetID(sActor.id);
                 Skill info = SkillFactory.GetSkill(i.SkillID);
                 if (info != null)
                     p1.SetStatusID(info.addition);
                 else
                     p1.SetStatusID(i.SkillID);
                 p1.SetTime(i.time);
                 this.C.netIO.SendPacket(p1, C.SessionID);
             }
             break;
         case Map.StatusArgs.EventType.Remove :
             foreach (Map.StatusArgs.StatusInfo i in arg.StatusList)
             {
                 Packets.Server.DeleteExchangeAddition p1 = new SagaMap.Packets.Server.DeleteExchangeAddition();
                 p1.SetID(sActor.id);
                 Skill info = SkillFactory.GetSkill(i.SkillID);
                 if (info != null)
                     p1.SetStatusID(info.addition);
                 else
                     p1.SetStatusID(i.SkillID);
                 this.C.netIO.SendPacket(p1, C.SessionID);
             }
             break;
     }
 }