public MsgSynAttrInfo(Int32 aMemberId, Syndicate aSyn) : base(40) { Syndicate.Member member = null; if (aSyn != null) { if (aSyn.Leader.Id == aMemberId) { member = aSyn.Leader; } else { member = aSyn.Members[aMemberId]; } } if (aSyn != null) { SynId = (UInt32)aSyn.Id; Proffer = member.Proffer; SyndicateFund = aSyn.Money; SyndicatePopulation = (UInt32)(aSyn.Members.Count + 1); SynRank = (Byte)member.Rank; Leader = aSyn.Leader.Name; } }
/// <summary> /// Create a new message for the specified player. /// </summary> /// <param name="aPlayer">The player.</param> public MsgPlayer(Player aPlayer) : base((UInt16)(55 + aPlayer.Name.Length)) { Syndicate.Member synMember = null; if (aPlayer.Syndicate != null) { synMember = aPlayer.Syndicate.GetMemberInfo(aPlayer.UniqId); } Id = aPlayer.UniqId; Lookface = aPlayer.Look; Status = aPlayer.Statuses; if (synMember != null) { SynId = aPlayer.Syndicate.Id; SynRank = (Byte)synMember.Rank; } HeadType = aPlayer.GetHeadTypeID(); ArmorType = aPlayer.GetArmorTypeID(); WeaponRType = aPlayer.GetRightHandTypeID(); WeaponLType = aPlayer.GetLeftHandTypeID(); Life = (UInt16)aPlayer.CurHP; Level = aPlayer.Level; PosX = aPlayer.X; PosY = aPlayer.Y; Hair = aPlayer.Hair; Direction = aPlayer.Direction; Pose = (Byte)aPlayer.Action; Metempsychosis = aPlayer.Metempsychosis; __StrPacker = new StringPacker(this, 53); __StrPacker.AddString(aPlayer.Name); }
public MsgSynMemberInfo(Syndicate.Member aMember) : base(28) { Donation = aMember.Proffer; Rank = (Byte)aMember.Rank; Name = aMember.Name; }
/// <summary> /// Process the message for the specified client. /// </summary> /// <param name="aClient">The client who sent the message.</param> public override void Process(Client aClient) { Player player = aClient.Player; if (player.Syndicate == null) { return; } Syndicate.Member member = player.Syndicate.GetMemberInfo(Name); if (member == null) { return; } player.Send(new MsgSynMemberInfo(member)); }
/// <summary> /// Create a new MsgFriendInfo packet for the friend / enemy. /// </summary> /// <param name="aPlayer">The friend / enemy</param> public MsgFriendInfo(Player aPlayer) : base(36) { UniqId = aPlayer.UniqId; Look = aPlayer.Look; Level = (Byte)aPlayer.Level; Profession = aPlayer.Profession; PkPoints = aPlayer.PkPoints; if (aPlayer.Syndicate != null) { Syndicate.Member member = aPlayer.Syndicate.GetMemberInfo(aPlayer.UniqId); SynId = aPlayer.Syndicate.Id; SynRank = (Byte)member.Rank; } Mate = aPlayer.Mate; }
/// <summary> /// Process the message for the specified client. /// </summary> /// <param name="aClient">The client who sent the message.</param> public override void Process(Client aClient) { Player player = aClient.Player; switch (_Action) { case Action.ApplyJoin: { if (player.Syndicate != null) { return; } Player target = null; if (!World.AllPlayers.TryGetValue((Int32)TargetId, out target)) { return; } if (target.Syndicate == null) { return; } Syndicate.Member member = target.Syndicate.GetMemberInfo((Int32)TargetId); if (member.Rank != Syndicate.Rank.Leader && member.Rank != Syndicate.Rank.SubLeader && member.Rank != Syndicate.Rank.BranchMgr && member.Rank != Syndicate.Rank.InternMgr && member.Rank != Syndicate.Rank.DeputyMgr) { return; } TargetId = (UInt32)player.UniqId; target.Send(this); break; } case Action.InviteJoin: { if (player.Syndicate == null) { return; } Player target = null; if (!World.AllPlayers.TryGetValue((Int32)TargetId, out target)) { return; } if (target.Syndicate != null) { return; } Syndicate.Member member = player.Syndicate.GetMemberInfo(player.UniqId); if (member.Rank != Syndicate.Rank.Leader && member.Rank != Syndicate.Rank.SubLeader && member.Rank != Syndicate.Rank.BranchMgr && member.Rank != Syndicate.Rank.InternMgr && member.Rank != Syndicate.Rank.DeputyMgr) { return; } player.Syndicate.AddMember(target); break; } case Action.LeaveSyn: { if (player.Syndicate == null) { return; } Syndicate syn = player.Syndicate; Syndicate.Member member = syn.GetMemberInfo(player.UniqId); if (member.Id == syn.Leader.Id) { player.SendSysMsg(StrRes.STR_NO_DISBAND); return; } if (member.Proffer < 20000) { player.SendSysMsg(StrRes.STR_SYN_NOTENOUGH_DONATION_LEAVE); return; } syn.LeaveSyn(player, false, true); World.BroadcastSynMsg(syn, new MsgTalk("SYSTEM", "ALLUSERS", String.Format(StrRes.STR_SYN_LEAVE, player.Name), Channel.Syndicate, Color.White)); break; } case Action.QuerySynName: { Syndicate syn = null; if (!World.AllSyndicates.TryGetValue((UInt16)Data, out syn)) { return; } if (syn.FealtySynUID == 0) { player.Send(new MsgName(Data, syn.Name, MsgName.NameAct.Syndicate)); } else { String[] names = new String[2]; names[0] = syn.GetMasterSyn().Name; names[1] = syn.Name; player.Send(new MsgName((UInt32)Data, names, MsgName.NameAct.Syndicate)); } break; } case Action.DonateMoney: { Syndicate syn = player.Syndicate; if (syn == null) { return; } if (syn.Donate(player, Data)) { player.Send(new MsgSynAttrInfo(player.UniqId, syn)); } break; } case Action.QuerySynAttr: { Player target = null; if (!World.AllPlayers.TryGetValue((Int32)TargetId, out target)) { return; } Syndicate.SynchroInfo(target, true); break; } default: { sLogger.Error("Action {0} is not implemented for MsgSyndicate.", (UInt32)_Action); break; } } }
/// <summary> /// Process the message for the specified client. /// </summary> /// <param name="aClient">The client who sent the message.</param> public override void Process(Client aClient) { try { if (aClient == null) { return; } Player Player = aClient.Player; aClient.TaskData = Text; switch (_Action) { case Action.Answer: { if (!Player.IsAlive()) { Player.SendSysMsg(StrRes.STR_DIE); return; } if (aClient.CurTask != null) { if (IdxTask != 255) { aClient.CurTask.Execute(aClient, IdxTask); } else { aClient.CurTask = null; } return; } //case 380: //GérantDeGuilde // { // if (IdxTask == 1) // { // if (Player.Syndicate == null) // { // Position += ScriptHandler.SendText("Vous devez etre dans une guilde pour déclarer la guerre!", aClient, ref Data, Position); // Position += ScriptHandler.SendOption(255, "Ok, je vois.", aClient, ref Data, Position); // Position += ScriptHandler.SendFace(123, aClient, ref Data, Position); // Position += ScriptHandler.SendEnd(aClient, ref Data, Position); // ScriptHandler.SendData(aClient, Data, Position); // return; // } // Syndicate.Member Member = Player.Syndicate.GetMemberInfo(Player.UniqId); // if (Member == null || Member.Rank != 100) // { // Position += ScriptHandler.SendText("Vous devez etre chef d'une guilde pour déclarer la guerre!", aClient, ref Data, Position); // Position += ScriptHandler.SendOption(255, "Ok, je vois.", aClient, ref Data, Position); // Position += ScriptHandler.SendFace(123, aClient, ref Data, Position); // Position += ScriptHandler.SendEnd(aClient, ref Data, Position); // ScriptHandler.SendData(aClient, Data, Position); // return; // } // GameMap Map = null; // if (!MapManager.TryGetMap(1011, out Map)) // return; // if (Map == null || Map.InWar) // { // Position += ScriptHandler.SendText("Il y a déjà une guerre dans cette région!", aClient, ref Data, Position); // Position += ScriptHandler.SendOption(255, "Ok, je vois.", aClient, ref Data, Position); // Position += ScriptHandler.SendFace(123, aClient, ref Data, Position); // Position += ScriptHandler.SendEnd(aClient, ref Data, Position); // ScriptHandler.SendData(aClient, Data, Position); // return; // } // new Games.CityWar(Map); // World.BroadcastMsg(new MsgTalk("SYSTEM", "ALLUSERS", Player.Name + " des " + Player.Syndicate.Name + " a déclaré la guerre pour prendre la Foret!", Channel.GM, Color.White)); // } // else if (IdxTask == 2) // { // if (Player.Syndicate == null) // { // Position += ScriptHandler.SendText("Vous devez etre dans une guilde pour déclarer la guerre!", aClient, ref Data, Position); // Position += ScriptHandler.SendOption(255, "Ok, je vois.", aClient, ref Data, Position); // Position += ScriptHandler.SendFace(123, aClient, ref Data, Position); // Position += ScriptHandler.SendEnd(aClient, ref Data, Position); // ScriptHandler.SendData(aClient, Data, Position); // return; // } // Syndicate.Member Member = Player.Syndicate.GetMemberInfo(Player.UniqId); // if (Member == null || Member.Rank != 100) // { // Position += ScriptHandler.SendText("Vous devez etre chef d'une guilde pour déclarer la guerre!", aClient, ref Data, Position); // Position += ScriptHandler.SendOption(255, "Ok, je vois.", aClient, ref Data, Position); // Position += ScriptHandler.SendFace(123, aClient, ref Data, Position); // Position += ScriptHandler.SendEnd(aClient, ref Data, Position); // ScriptHandler.SendData(aClient, Data, Position); // return; // } // GameMap Map = null; // if (!MapManager.TryGetMap(1020, out Map)) // return; // if (Map == null || Map.InWar) // { // Position += ScriptHandler.SendText("Il y a déjà une guerre dans cette région!", aClient, ref Data, Position); // Position += ScriptHandler.SendOption(255, "Ok, je vois.", aClient, ref Data, Position); // Position += ScriptHandler.SendFace(123, aClient, ref Data, Position); // Position += ScriptHandler.SendEnd(aClient, ref Data, Position); // ScriptHandler.SendData(aClient, Data, Position); // return; // } // new Games.CityWar(Map); // World.BroadcastMsg(new MsgTalk("SYSTEM", "ALLUSERS", Player.Name + " des " + Player.Syndicate.Name + " a déclaré la guerre pour prendre le Canyon", Channel.GM, Color.White)); // } // else if (IdxTask == 3) // { // if (Player.Syndicate == null) // { // Position += ScriptHandler.SendText("Vous devez etre dans une guilde pour déclarer la guerre!", aClient, ref Data, Position); // Position += ScriptHandler.SendOption(255, "Ok, je vois.", aClient, ref Data, Position); // Position += ScriptHandler.SendFace(123, aClient, ref Data, Position); // Position += ScriptHandler.SendEnd(aClient, ref Data, Position); // ScriptHandler.SendData(aClient, Data, Position); // return; // } // Syndicate.Member Member = Player.Syndicate.GetMemberInfo(Player.UniqId); // if (Member == null || Member.Rank != 100) // { // Position += ScriptHandler.SendText("Vous devez etre chef d'une guilde pour déclarer la guerre!", aClient, ref Data, Position); // Position += ScriptHandler.SendOption(255, "Ok, je vois.", aClient, ref Data, Position); // Position += ScriptHandler.SendFace(123, aClient, ref Data, Position); // Position += ScriptHandler.SendEnd(aClient, ref Data, Position); // ScriptHandler.SendData(aClient, Data, Position); // return; // } // GameMap Map = null; // if (!MapManager.TryGetMap(1000, out Map)) // return; // if (Map == null || Map.InWar) // { // Position += ScriptHandler.SendText("Il y a déjà une guerre dans cette région!", aClient, ref Data, Position); // Position += ScriptHandler.SendOption(255, "Ok, je vois.", aClient, ref Data, Position); // Position += ScriptHandler.SendFace(123, aClient, ref Data, Position); // Position += ScriptHandler.SendEnd(aClient, ref Data, Position); // ScriptHandler.SendData(aClient, Data, Position); // return; // } // new Games.CityWar(Map); // World.BroadcastMsg(new MsgTalk("SYSTEM", "ALLUSERS", Player.Name + " des " + Player.Syndicate.Name + " a déclaré la guerre pour prendre le Désert!", Channel.GM, Color.White)); // } // else if (IdxTask == 4) // { // if (Player.Syndicate == null) // { // Position += ScriptHandler.SendText("Vous devez etre dans une guilde pour déclarer la guerre!", aClient, ref Data, Position); // Position += ScriptHandler.SendOption(255, "Ok, je vois.", aClient, ref Data, Position); // Position += ScriptHandler.SendFace(123, aClient, ref Data, Position); // Position += ScriptHandler.SendEnd(aClient, ref Data, Position); // ScriptHandler.SendData(aClient, Data, Position); // return; // } // Syndicate.Member Member = Player.Syndicate.GetMemberInfo(Player.UniqId); // if (Member == null || Member.Rank != 100) // { // Position += ScriptHandler.SendText("Vous devez etre chef d'une guilde pour déclarer la guerre!", aClient, ref Data, Position); // Position += ScriptHandler.SendOption(255, "Ok, je vois.", aClient, ref Data, Position); // Position += ScriptHandler.SendFace(123, aClient, ref Data, Position); // Position += ScriptHandler.SendEnd(aClient, ref Data, Position); // ScriptHandler.SendData(aClient, Data, Position); // return; // } // GameMap Map = null; // if (!MapManager.TryGetMap(1015, out Map)) // return; // if (Map == null || Map.InWar) // { // Position += ScriptHandler.SendText("Il y a déjà une guerre dans cette région!", aClient, ref Data, Position); // Position += ScriptHandler.SendOption(255, "Ok, je vois.", aClient, ref Data, Position); // Position += ScriptHandler.SendFace(123, aClient, ref Data, Position); // Position += ScriptHandler.SendEnd(aClient, ref Data, Position); // ScriptHandler.SendData(aClient, Data, Position); // return; // } // new Games.CityWar(Map); // World.BroadcastMsg(new MsgTalk("SYSTEM", "ALLUSERS", Player.Name + " des " + Player.Syndicate.Name + " a déclaré la guerre pour prendre les Iles!", Channel.GM, Color.White)); // } // break; // } //case 10003: //Mandarin // { // else if (IdxTask == 203) // { // if (Player.Syndicate != null) // { // if (Player.UniqId != Player.Syndicate.Leader.UniqId) // { // Position += ScriptHandler.SendText("Seul le chef de guilde peut commettre un chef.", aClient, ref Data, Position); // Position += ScriptHandler.SendOption(255, "Ok.", aClient, ref Data, Position); // Position += ScriptHandler.SendFace(7, aClient, ref Data, Position); // Position += ScriptHandler.SendEnd(aClient, ref Data, Position); // ScriptHandler.SendData(aClient, Data, Position); // return; // } // Syndicate Syn = Player.Syndicate; // Syndicate.Member Leader = Syn.Leader; // Syndicate.Member Member = Syn.GetMemberInfo(Text); // Player Target = null; // if (Member != null && World.AllPlayers.TryGetValue(Member.UniqId, out Target)) // { // lock (Syn.Members) // { // Syn.Members.Remove(Member.UniqId); // Leader.Rank = 50; // Member.Rank = 100; // Syn.Members.Add(Leader.UniqId, Leader); // Syn.Leader = Member; // } // Player.Send(new MsgSynAttrInfo(Player.UniqId, Syn)); // Target.Send(new MsgSynAttrInfo(Target.UniqId, Syn)); // World.BroadcastRoomMsg(Player, new MsgPlayer(Player), true); // World.BroadcastRoomMsg(Target, new MsgPlayer(Target), true); // Database.Save(Player, true); // Database.Save(Target, true); // } // else // { // Position += ScriptHandler.SendText("Le joueur doit être en-ligne et dans votre guilde.", aClient, ref Data, Position); // Position += ScriptHandler.SendOption(255, "Ok.", aClient, ref Data, Position); // Position += ScriptHandler.SendFace(7, aClient, ref Data, Position); // Position += ScriptHandler.SendEnd(aClient, ref Data, Position); // ScriptHandler.SendData(aClient, Data, Position); // return; // } // } // } // else if (IdxTask == 204) // { // if (Player.Syndicate != null) // { // if (Player.UniqId != Player.Syndicate.Leader.UniqId) // { // Position += ScriptHandler.SendText("Seul le chef de guilde peut commettre un chef.", aClient, ref Data, Position); // Position += ScriptHandler.SendOption(255, "Ok.", aClient, ref Data, Position); // Position += ScriptHandler.SendFace(7, aClient, ref Data, Position); // Position += ScriptHandler.SendEnd(aClient, ref Data, Position); // ScriptHandler.SendData(aClient, Data, Position); // return; // } // Syndicate Syn = Player.Syndicate; // Syndicate.Member Member = Syn.GetMemberInfo(Text); // Player Target = null; // if (Member != null && World.AllPlayers.TryGetValue(Member.UniqId, out Target)) // { // if (Member.Rank == 100) // return; // Member.Rank = 90; // Target.Send(new MsgSynAttrInfo(Target.UniqId, Syn)); // World.BroadcastRoomMsg(Target, new MsgPlayer(Target), true); // Database.Save(Target, true); // } // else // { // Position += ScriptHandler.SendText("Le joueur doit être en-ligne et dans votre guilde.", aClient, ref Data, Position); // Position += ScriptHandler.SendOption(255, "Ok.", aClient, ref Data, Position); // Position += ScriptHandler.SendFace(7, aClient, ref Data, Position); // Position += ScriptHandler.SendEnd(aClient, ref Data, Position); // ScriptHandler.SendData(aClient, Data, Position); // return; // } // } // } // else if (IdxTask == 205) // { // if (Player.Syndicate != null) // { // if (Player.UniqId != Player.Syndicate.Leader.UniqId) // { // Position += ScriptHandler.SendText("Seul le chef de guilde peut commettre un chef.", aClient, ref Data, Position); // Position += ScriptHandler.SendOption(255, "Ok.", aClient, ref Data, Position); // Position += ScriptHandler.SendFace(7, aClient, ref Data, Position); // Position += ScriptHandler.SendEnd(aClient, ref Data, Position); // ScriptHandler.SendData(aClient, Data, Position); // return; // } // Syndicate Syn = Player.Syndicate; // Syndicate.Member Member = Syn.GetMemberInfo(Text); // Player Target = null; // if (Member != null && World.AllPlayers.TryGetValue(Member.UniqId, out Target)) // { // if (Member.Rank == 50 || Member.Rank == 100) // return; // Member.Rank = 50; // Target.Send(new MsgSynAttrInfo(Target.UniqId, Syn)); // World.BroadcastRoomMsg(Target, new MsgPlayer(Target), true); // Database.Save(Target, true); // } // else // { // Position += ScriptHandler.SendText("Le joueur doit être en-ligne et dans votre guilde.", aClient, ref Data, Position); // Position += ScriptHandler.SendOption(255, "Ok.", aClient, ref Data, Position); // Position += ScriptHandler.SendFace(7, aClient, ref Data, Position); // Position += ScriptHandler.SendEnd(aClient, ref Data, Position); // ScriptHandler.SendData(aClient, Data, Position); // return; // } // } // } // else if (IdxTask == 206) // { // lock (World.AllSyndicates) // { // foreach (Syndicate Syn in World.AllSyndicates.Values) // { // if (Syn.Name != Text) // continue; // Position += ScriptHandler.SendText("Le nom de guilde: " + Syn.Name, aClient, ref Data, Position); // Position += ScriptHandler.SendText("\nLe chef de guilde: " + Syn.Leader.Name, aClient, ref Data, Position); // Position += ScriptHandler.SendText("\nNombre de membres: " + Syn.Members.Count, aClient, ref Data, Position); // Position += ScriptHandler.SendText("\nLe fond de guilde: " + Syn.Money, aClient, ref Data, Position); // Position += ScriptHandler.SendOption(255, "Ok.", aClient, ref Data, Position); // Position += ScriptHandler.SendFace(7, aClient, ref Data, Position); // Position += ScriptHandler.SendEnd(aClient, ref Data, Position); // ScriptHandler.SendData(aClient, Data, Position); // return; // } // } // Position += ScriptHandler.SendText("Cette guilde n'existe pas!", aClient, ref Data, Position); // Position += ScriptHandler.SendOption(255, "Ok.", aClient, ref Data, Position); // Position += ScriptHandler.SendFace(7, aClient, ref Data, Position); // Position += ScriptHandler.SendEnd(aClient, ref Data, Position); // ScriptHandler.SendData(aClient, Data, Position); // } // else if (IdxTask == 211) // { // if (Player.Syndicate == null) // return; // if (Player.Syndicate.Leader.UniqId != Player.UniqId) // { // Position += ScriptHandler.SendText("Seul le chef de guilde peut exclure un membre.", aClient, ref Data, Position); // Position += ScriptHandler.SendOption(255, "Ok.", aClient, ref Data, Position); // Position += ScriptHandler.SendFace(7, aClient, ref Data, Position); // Position += ScriptHandler.SendEnd(aClient, ref Data, Position); // ScriptHandler.SendData(aClient, Data, Position); // return; // } // if (Player.Name == Text) // return; // Syndicate.Member Member = Player.Syndicate.GetMemberInfo(Text); // if (Member == null) // { // Position += ScriptHandler.SendText("Ce membre n'existe pas!", aClient, ref Data, Position); // Position += ScriptHandler.SendOption(255, "Ok.", aClient, ref Data, Position); // Position += ScriptHandler.SendFace(7, aClient, ref Data, Position); // Position += ScriptHandler.SendEnd(aClient, ref Data, Position); // ScriptHandler.SendData(aClient, Data, Position); // return; // } // Player.Syndicate.DelMember(Member, true); // } // break; // break; } case Action.TaskId: { if (TaskId == 31100) //Kick Out { if (Player.Syndicate == null) { return; } if (Player.Syndicate.Leader.Id != Player.UniqId) { return; } if (Player.Name == Text) { return; } Syndicate.Member Member = Player.Syndicate.GetMemberInfo(Text); if (Member == null) { return; } Player.Syndicate.DelMember(Member, true); } break; } default: { sLogger.Error("Action {0} is not implemented for MsgDialog.", (UInt16)_Action); break; } } } catch (Exception exc) { sLogger.Error(exc); } }