public static GroupMember ReadGroupMemberFromDatabase(long pCharId) { //-------------------------------------------------- // Quries used in this function //-------------------------------------------------- const string get_groupmem_query = "SELECT `Name`, `IsGroupMaster` " + "FROM `fiesta_world`.`characters` " + "WHERE `CharID` = '{0}'"; //-------------------------------------------------- // Read member from database. //-------------------------------------------------- string name = ""; bool isOnline = false; bool isMaster = false; using (var client = Program.DatabaseManager.GetClient()) using (var cmd = new MySqlCommand(string.Format(get_groupmem_query, pCharId), client.GetConnection())) using (var reader = cmd.ExecuteReader()) { while (reader.Read()) { name = reader.GetString("Name"); if (reader.IsDBNull(reader.GetOrdinal("IsGroupMaster"))) { isMaster = false; } else { isMaster = reader.GetBoolean("IsGroupMaster"); } } } GroupMember member = new GroupMember(name, isMaster, isOnline); if (ClientManager.Instance.HasClient(name)) { var client = ClientManager.Instance.GetClientByCharName(name); member.IsOnline = true; member.Character = client.Character; } else { member.IsOnline = (bool)InterFunctionCallbackProvider.Instance.QueuePacket(id => { var packet = new InterPacket(InterHeader.FunctionCharIsOnline); packet.WriteLong(id); packet.WriteString(name, 16); return(packet); }, packet => { bool value = false; packet.TryReadBool(out value); return(value); }); } return(member); }
public static void UpdateMoneyWorld(long Money, string charname) { using (var packet = new InterPacket(InterHeader.UpdateMoney)) { packet.WriteString(charname, 16); packet.WriteLong(Money); WorldConnector.Instance.SendPacket(packet); } }
public void ChangeMoney(long NewMoney) { Character.Money = NewMoney; using (var packet = new InterPacket(InterHeader.UpdateMoneyFromWorld)) { packet.WriteInt(Character.ID); packet.WriteLong(NewMoney); } }
public static void SendReciveCoper(string name, long Coper, bool CoperType) { using (var packet = new InterPacket(InterHeader.ReciveCoper)) { packet.WriteString(name, 16); packet.WriteLong(Coper); packet.WriteBool(CoperType); WorldConnector.Instance.SendPacket(packet); } }
private void SendAddMemberInterPacket(GroupMember pMember) { ZoneConnection con = Program.GetZoneByMap(pMember.Character.Character.PositionInfo.Map); using (var pack = new InterPacket(InterHeader.AddPartyMember)) { pack.WriteLong(this.Id); pack.WriteString(pMember.Name, 16); con.SendPacket(pack); } }
private void SendNewPartyInterPacket(long pId) { using (var packet = new InterPacket(InterHeader.NewPartyCreated)) { packet.WriteLong(pId); foreach (var connection in Program.Zones.Select(pair => pair.Value)) { connection.SendPacket(packet); } } }
private void SendGroupBrokeUpInterPacket(long pId) { using (var packet = new InterPacket(InterHeader.PartyBrokeUp)) { packet.WriteLong(pId); foreach (var zone in Program.Zones.Select(m => m.Value)) { zone.SendPacket(packet); } } }
public static void FunctionGetCharacterOnline(ZoneConnection pConnection, InterPacket pPacket) { long id; string charName; if (!pPacket.TryReadLong(out id) || !pPacket.TryReadString(out charName, 16)) { throw new InvalidPacketException(); } var isOnline = ClientManager.Instance.IsOnline(charName); using (var packet = new InterPacket(InterHeader.FunctionAnswer)) { packet.WriteLong(id); packet.WriteBool(isOnline); pConnection.SendPacket(packet); } }