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; }
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); } } }
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); } }
public void ChangeMoney(long NewMoney) { this.Character.Money = NewMoney; using (InterPacket packet = new InterPacket(InterHeader.UpdateMoneyFromWorld)) { packet.WriteInt(this.Character.ID); packet.WriteLong(NewMoney); } }
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 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); } }
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(); bool isOnline = ClientManager.Instance.IsOnline(charName); using (InterPacket packet = new InterPacket(InterHeader.FunctionAnswer)) { packet.WriteLong(id); packet.WriteBool(isOnline); pConnection.SendPacket(packet); } }