private static void ProcessGuildJoinRequestAccept(WorldClient Client) { if (!Client.IsGameAction(GameActionTypeEnum.BASIC_REQUEST)) { Client.Send(new BasicNoOperationMessage()); return; } if (!(Client.GetBaseRequest() is GuildJoinRequest)) { Client.Send(new BasicNoOperationMessage()); return; } if (Client == Client.GetBaseRequest().Requester) { Client.Send(new BasicNoOperationMessage()); return; } if (Client.GetBaseRequest().Accept()) { Client.GetBaseRequest().Requester.Send(new GuildJoinMessage('K', GuildJoinReason.REASON_IN_GUILD, Client.GetCharacter().Name)); var Guild = Client.GetBaseRequest().Requester.GetCharacter().GetGuild(); var member = new CharacterGuild() { ID = Client.Character.ID, Name = Client.Character.Name, Level = Client.Character.Level, Gfx = Client.Character.Look, ExperiencePercent = 0, Experience = 0, Alignement = Client.Character.Alignement, lastConnection = Client.Account.LastConnectionDate, }; Client.Character.setCharacterGuild(member); Guild.Register(Client); Guild.AddPlayer(Client.GetCharacter().getCharacterGuild(), GuildGradeEnum.GRADE_ESSAI); CharactersGuildTable.Add(member); Client.GetCharacter().getCharacterGuild().SendGuildSettingsInfos(); Client.Send(new GuildJoinMessage('K', GuildJoinReason.REASON_JOIN_ACCEPT)); Client.EndGameAction(GameActionTypeEnum.BASIC_REQUEST); Client.GetCharacter().RefreshOnMap(); } }
public static void Initialize() { nextPlayerGuid = CharacterTable.getNextGuid(); nextPlayerGuid++; nextItemGuid = InventoryItemTable.getNextGuid(); nextItemGuid++; nextGuildId = GuildTable.getNextGuid(); nextGuildId++; nextMountId = MountTable.getNextGuid(); nextMountId++; nextSpeakingId = SpeakingTable.getNextGuid(); nextSpeakingId++; SpellTable.Load(); ExpFloorTable.Load(); MonsterTable.Load(); ItemTemplateTable.Load(); ItemTemplateTable.LoadItemActions(); ItemSetTable.Load(); DropTable.Load(); TitleTable.Load(); IObjectTemplateTable.Load(); AreaTable.Load(); AreaSubTable.Load(); MapTable.Load(); MapTable.LoadActions(); CellActionTable.Load(); MobGroupFixTable.Load(); BreedTable.Load(); NpcTemplateTable.Load(); NpcTemplateTable.LoadPlaces(); NpcQuestionTable.Load(); NpcReplyTable.Load(); ShopNpcTable.Initialize(); GuildTable.Load(); CharactersGuildTable.Load(); TaxCollectorTable.Load(); PrismeTable.Load(); BidHouseTable.Load(); BidHouseTable.LoadItems(); MountParkTable.Load(); StaticMountTable.Load(); MountTable.Load();//TODO Dynamic load of Character mount ZaapTable.Load(); ZaapiTable.Load(); var Timer = new System.Timers.Timer(1000 * 60 * 25); Timer.Elapsed += delegate(object sender, ElapsedEventArgs e) { Save(); }; Timer.Start(); }
public void RemovePlayer(CharacterGuild Player) { this.CharactersGuildCache.Remove(Player); if (Player.GradeType == GuildGradeEnum.GRADE_BOSS) { if (this.CharactersGuildCache.Count == 0) { GuildTable.TryDeleteGuild(this); // TODO : Delete TaxCollector. } else { CharacterGuild BestBoss = null; // On recherche le second membre avec le meilleur grade ou alors le meilleur xp s'il y a des ex echo foreach (var Member in this.CharactersGuildCache) { if (BestBoss == null || Member.Grade < BestBoss.Grade || BestBoss.GradeType == GuildGradeEnum.GRADE_ESSAI && Member.GradeType != GuildGradeEnum.GRADE_ESSAI || (Member.Grade == BestBoss.Grade && Member.Experience > BestBoss.Experience)) { BestBoss = Member; } } if (BestBoss != null) { // On lui change le grade BestBoss.SetGrade(GuildGradeEnum.GRADE_BOSS); // On actualise les droits. BestBoss.SendGuildSettingsInfos(); } } } CharactersGuildTable.Delete(Player.ID); }
public void LevelUP() { if (this.Level == ExpFloorTable.Cache.Count) { return; } this.Level++; this.CaractPoint += 5; this.SpellPoint++; this.Life = this.MaxLife; if (this.Level == 100) { this.AP++; this.myStats.AddBase(EffectEnum.AddPA, 1); } this.mySpells.GenerateLevelUpSpell((ClassEnum)this.Classe, this.Level); this.Experience = ExpFloorTable.GetFloorByLevel(this.Level).Character; if (this.HasGuild()) { this.getCharacterGuild().Level = this.Level; CharactersGuildTable.Add(this.getCharacterGuild()); } }
private static void ProcessGuildCreateRequest(WorldClient Client, string Packet) { if (!Client.IsGameAction(GameActionTypeEnum.GUILD_CREATE)) { Client.Send(new BasicNoOperationMessage()); return; } if (!Packet.Contains('|')) { Client.Send(new GuildCreateMessage(false, "a")); return; } var GuildInfos = Packet.Substring(2).Split('|'); if (GuildInfos.Length != 5) { Client.Send(new GuildCreateMessage(false, "a")); return; } var BackGroundId = StringHelper.EncodeBase36(int.Parse(GuildInfos[0])); var BackGroundColor = StringHelper.EncodeBase36(int.Parse(GuildInfos[1])); var EmblemId = StringHelper.EncodeBase36(int.Parse(GuildInfos[2])); var EmblemColor = StringHelper.EncodeBase36(int.Parse(GuildInfos[3])); var FullEmblem = BackGroundId + "," + BackGroundColor + "," + EmblemId + "," + EmblemColor; var GuildName = GuildInfos[4]; if (GuildTable.Contains(GuildName) || GuildName.Length > 20) { Client.Send(new GuildCreateMessage(false, "an")); return; } var Guild = GuildTable.TryCreateGuild(Client, GuildName, FullEmblem); if (Guild == null) { Client.Send(new GuildCreateMessage(false, "an")); return; } Guild.CharactersGuildCache = new List <CharacterGuild>(); var member = new CharacterGuild() { ID = Client.Character.ID, Name = Client.Character.Name, Level = Client.Character.Level, Gfx = Client.Character.Look, ExperiencePercent = 0, Experience = 0, Alignement = Client.Character.Alignement, lastConnection = Client.Account.LastConnectionDate, }; Guild.AddPlayer(member, GuildGradeEnum.GRADE_BOSS); Guild.Register(Client); Client.Character.setCharacterGuild(member); CharactersGuildTable.Add(member); Client.GetCharacter().getCharacterGuild().SendGuildSettingsInfos(); Client.EndGameAction(GameActionTypeEnum.GUILD_CREATE); Client.GetCharacter().RefreshOnMap(); }