public void AddNewGuild(List <Player> players, string guildName) { Guild g = new Guild { GuildLogo = "", GuildName = guildName, CreationDate = RandomUtilities.GetRoundedUtc(), GuildHistory = new List <HistoryEvent>(), GuildRanks = new List <GuildMemberRank>() }; AddNewRank(g, new GuildMemberRank { RankId = 1, RankName = "Guildmaster" }); AddNewRank(g, new GuildMemberRank { RankId = 2, RankName = "Recruit" }); foreach (Player player in players) { AddMemberToGuild(player, g); SystemMessages.GuildHasBeenCreated(guildName).Send(player.Connection); } lock (GuildsLock) Cache.Guilds.Add(g.GuildId, g); Cache.UsedGuildNames.Add(g.GuildName.ToLower()); }
public override void Process() { if (GuildName == "") { return; } if (Connection.Player.LastPraise != -1 && RandomUtilities.GetRoundedUtc() - Connection.Player.LastPraise > 86400) { Connection.Player.LastPraise = -1; Connection.Player.PraiseGiven = 0; } if (Connection.Player.PraiseGiven >= 3) { new SpSystemNotice("Sorry, but you've exceeded the limit of 3 praises per day.").Send(Connection); return; } Connection.Player.PraiseGiven++; Connection.Player.LastPraise = RandomUtilities.GetRoundedUtc(); Communication.Global.GuildService.PraiseGuild(GuildName); Communication.Global.GuildService.SendServerGuilds(Connection.Player, 1); SystemMessages.YouPraiseGuildNowYouHavePraisesLeft(GuildName, 3 - Connection.Player.PraiseGiven).Send(Connection.Player); }
public void OnPlayerEnterWorld(IConnection connection, Player player) { string uidHex = BitConverter.GetBytes(player.UID).ToHex() + BitConverter.GetBytes(ObjectFamily.Player.GetHashCode()).ToHex(); new SendPacket("8FCD00000000").Send(connection); //1725 EU new SendPacket("0D9600000000").Send(connection); //1725 EU //new SpFriendList(pState.Player.Friends).Send(connection); //new SpFriendUpdate(pState.Player.Friends).Send(connection); new SendPacket("A7F20000000000000000").Send(connection); //1725 EU new SendPacket("03E70000000000000000").Send(connection); //1725 EU new SpCharacterPosition(player).Send(connection); FlyController flyController = player.Controller as FlyController; if (flyController != null) { flyController.EndFly(player.Position.MapId); } new SendPacket("E1EB" + uidHex + "7CC4000001FFFFFF7F").Send(connection); //1725 EU new SpCharacterStats(player).Send(connection); new SpCharacterGatherstats(player.PlayerCraftStats).Send(connection); CraftService.UpdateCraftRecipes(player); player.LastOnlineUtc = RandomUtilities.GetRoundedUtc(); }
public void AddHistoryEvent(Guild guild, HistoryEvent hEvent, Player initiator = null) { if (guild == null) { return; } hEvent.Date = RandomUtilities.GetRoundedUtc(); guild.GuildHistory.Add(hEvent); //TODO update }
public void PlayerEndGame(Player player) { player.LastOnlineUtc = RandomUtilities.GetRoundedUtc(); if (player.Ai != null) { player.Ai.Release(); player.Ai = null; } PlayersOnline.Remove(player); DAOManager.inventoryDAO.SaveStorage(player, player.Inventory); DAOManager.playerDAO.UpdatePlayer(player); DAOManager.questDAO.AddQuests(player); DAOManager.skillDAO.SaveSkills(player); }
public bool SaveGuild(List <Player> players, string guildName) { string SQL = "INSERT INTO `guilds` " + "(guildname, guildlogo, level, creationdate) " + "VALUES(?name, ?logo, ?level, ?credate);"; MySqlCommand cmd = new MySqlCommand(SQL, GuildDAOConnection); cmd.Parameters.AddWithValue("?name", guildName); cmd.Parameters.AddWithValue("?guildlogo", ""); cmd.Parameters.AddWithValue("?level", "1"); cmd.Parameters.AddWithValue("?credate", RandomUtilities.GetRoundedUtc()); try { cmd.ExecuteNonQuery(); } catch (Exception ex) { Logger.WriteLine(LogState.Exception, "DAO: Guild Save Failed!" + ex.Message); return(false); } return(true); }
public override void Write(BinaryWriter writer) { if (IsForCraftReset) { WriteDword(writer, 0); WriteByte(writer, 1); WriteByte(writer, 1); return; } WriteWord(writer, (short)Recipes.Count); WriteDword(writer, 0); // first recipe shift writer.Seek(6, SeekOrigin.Begin); WriteDword(writer, (int)writer.BaseStream.Length); writer.Seek(0, SeekOrigin.End); for (int i = 0; i < Recipes.Count; i++) { WriteWord(writer, (short)writer.BaseStream.Length); short recShift = (short)writer.BaseStream.Length; WriteWord(writer, 0); WriteWord(writer, (short)Recipes[i].NeededItems.Count); WriteWord(writer, 0); //items start shift WriteDword(writer, Recipes[i].RecipeId); WriteDword(writer, Recipes[i].CraftStat.GetHashCode()); WriteDword(writer, 0); // O_o WriteDword(writer, Recipes[i].ResultItem.Key); //itemid WriteDword(writer, Recipes[i].ResultItem.Value); //counter WriteDword(writer, Recipes[i].Level); WriteLong(writer, RandomUtilities.GetRoundedUtc()); WriteByte(writer, 0); WriteDword(writer, Recipes[i].NeededItems.Count); writer.Seek(recShift + 4, SeekOrigin.Begin); WriteWord(writer, (short)writer.BaseStream.Length); writer.Seek(0, SeekOrigin.End); int counter = 1; foreach (KeyValuePair <int, int> itm in Recipes[i].NeededItems) { WriteWord(writer, (short)writer.BaseStream.Length); short sh1 = (short)writer.BaseStream.Length; WriteWord(writer, 0); WriteDword(writer, itm.Key); //itemid WriteDword(writer, itm.Value); //counter if (counter < Recipes[i].NeededItems.Count) { writer.Seek(sh1, SeekOrigin.Begin); WriteWord(writer, (short)writer.BaseStream.Length); writer.Seek(0, SeekOrigin.End); } counter++; } if (i + 1 < Recipes.Count) { writer.Seek(recShift, SeekOrigin.Begin); WriteWord(writer, (short)writer.BaseStream.Length); writer.Seek(0, SeekOrigin.End); } } }