public void SendTransferClientFromWorld(int accountID, string userName, byte admin, string hostIP, string hash) { using (var packet = new InterPacket(InterHeader.Clienttransfer)) { packet.WriteByte(0); packet.WriteInt(accountID); packet.WriteStringLen(userName); packet.WriteStringLen(hash); packet.WriteByte(admin); packet.WriteStringLen(hostIP); this.SendPacket(packet); } }
public void SendData() { using (var packet = new InterPacket(InterHeader.Assigned)) { packet.WriteByte(ID); packet.WriteStringLen(String.Format("{0}-{1}", Settings.Instance.GameServiceUri, ID)); packet.WriteUShort((ushort)(Settings.Instance.ZoneBasePort + ID)); packet.WriteInt(Maps.Count); foreach (var m in Maps) { packet.WriteUShort(m.ID); packet.WriteStringLen(m.ShortName); packet.WriteStringLen(m.FullName); packet.WriteInt(m.RegenX); packet.WriteInt(m.RegenY); packet.WriteByte(m.Kingdom); packet.WriteUShort(m.ViewRange); } this.SendPacket(packet); } }
public void SendTransferClientFromZone(int accountID, string userName, string charName,int CharID, ushort randid, byte admin, string hostIP) { using (var packet = new InterPacket(InterHeader.Clienttransfer)) { packet.WriteByte(1); packet.WriteInt(accountID); packet.WriteStringLen(userName); packet.WriteStringLen(charName); packet.WriteInt(CharID); packet.WriteUShort(randid); packet.WriteByte(admin); packet.WriteStringLen(hostIP); this.SendPacket(packet); } }
public static void SendWorldMessage(WorldMessageTypes type, string message, string to = "") { using (var packet = new InterPacket(InterHeader.Worldmsg)) { packet.WriteStringLen(message); packet.WriteByte((byte)type); packet.WriteBool(to != ""); if (to != "") { packet.WriteStringLen(to); } WorldConnector.Instance.SendPacket(packet); } }
public static void TransferClient(byte zoneID,ushort mapid, int accountID, string userName,int CharID, string charName, ushort randid, byte admin, string hostIP) { using (var packet = new InterPacket(InterHeader.Clienttransferzone)) { packet.WriteByte(zoneID); packet.WriteInt(accountID); packet.WriteUShort(mapid); packet.WriteStringLen(userName); packet.WriteStringLen(charName); packet.WriteInt(CharID); packet.WriteUShort(randid); packet.WriteByte(admin); packet.WriteStringLen(hostIP); WorldConnector.Instance.SendPacket(packet); } }
public void UpdateMemberRank(GuildMember Member, GuildRank NewRank) { Member.Rank = NewRank; Member.Save(); //broadcast to members using (var packet = new Packet(SH29Type.UpdateGuildMemberRank)) { packet.WriteString(Member.Character.Character.Name, 16); packet.WriteByte((byte)NewRank); Broadcast(packet); } //broadcast to zones using (var packet = new InterPacket(InterHeader.ZONE_GuildMemberRankUpdate)) { packet.WriteInt(ID); packet.WriteInt(Member.Character.ID); packet.WriteByte((byte)NewRank); ZoneManager.Instance.Broadcast(packet); } }
public static void SendLevelUpToWorld(byte Level, string charname) { using (var packet = new InterPacket(InterHeader.CharacterLevelUP)) { packet.WriteByte(Level); packet.WriteString(charname, 16); WorldConnector.Instance.SendPacket(packet); } }
public void AddMember(WorldCharacter Character, GuildRank Rank, MySqlConnection con = null, bool BroadcastAdd = true, bool SendGuildInfoToClient = true) { lock (ThreadLocker) { var conCreated = (con == null); if (conCreated) { con = Program.DatabaseManager.GetClient().GetConnection(); } //add to db int result; using (var cmd = con.CreateCommand()) { cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "GuildMember_Create"; cmd.Parameters.Add(new MySqlParameter("@pGuildID", ID)); cmd.Parameters.Add(new MySqlParameter("@pCharacterID", Character.ID)); cmd.Parameters.Add(new MySqlParameter("@pRank", (byte)Rank)); cmd.Parameters.Add(new MySqlParameter("@pCorp", Convert.ToInt16("0"))); result = Convert.ToInt32(cmd.ExecuteScalar()); } if (result == -1) return; //create object var newMember = new GuildMember(this, Character, Rank, 0); //update character Character.Guild = this; Character.GuildMember = newMember; Character.GuildAcademy = Academy; //add to list Members.Add(newMember); if (BroadcastAdd) { newMember.BroadcastGuildName(); //broadcast that guild member joined using (var packet = new Packet(SH29Type.GuildMemberJoined)) { newMember.WriteInfo(packet); Broadcast(packet, newMember); } using (var packet = new Packet(SH29Type.GuildMemberLoggedIn)) { packet.WriteString(newMember.Character.Character.Name, 16); Broadcast(packet, newMember); } //let zone know that a new member has been added to guild using (var packet = new InterPacket(InterHeader.ZONE_GuildMemberAdd)) { packet.WriteInt(ID); packet.WriteInt(Character.ID); packet.WriteByte((byte)newMember.Rank); packet.WriteUShort(newMember.Corp); Managers.ZoneManager.Instance.Broadcast(packet); } } //send guild info to new member if (SendGuildInfoToClient) { SendMemberList(newMember.Character.Client); using (var packet = new Packet(SH4Type.CharacterGuildinfo)) { WriteGuildInfo(packet); newMember.Character.Client.SendPacket(packet); } } if (conCreated) { con.Dispose(); } } }
public static void TryAssiging(LoginConnector lc) { using (var p = new InterPacket(InterHeader.Assign)) { p.WriteByte(Settings.Instance.ID); p.WriteStringLen(Settings.Instance.WorldName); p.WriteStringLen(Settings.Instance.IP); p.WriteUShort(Settings.Instance.Port); lc.SendPacket(p); } }
public static void SendZoneStarted(byte zoneid, string ip, ushort port, List<MapInfo> maps) { using (var packet = new InterPacket(InterHeader.Zoneopened)) { packet.WriteByte(zoneid); packet.WriteStringLen(ip); packet.WriteUShort(port); packet.WriteInt(maps.Count); foreach (var m in maps) { packet.WriteUShort(m.ID); packet.WriteStringLen(m.ShortName); packet.WriteStringLen(m.FullName); packet.WriteInt(m.RegenX); packet.WriteInt(m.RegenY); packet.WriteByte(m.Kingdom); packet.WriteUShort(m.ViewRange); } foreach (var c in Program.Zones.Values) { if (c.ID != zoneid) c.SendPacket(packet); } } }
public static void SendZoneList(ZoneConnection zc) { using (var packet = new InterPacket(InterHeader.Zonelist)) { packet.Write(Program.Zones.Values.Count); foreach (var z in Program.Zones.Values) { packet.Write(z.ID); packet.Write(z.IP); packet.Write(z.Port); packet.WriteInt(z.Maps.Count); foreach (var m in z.Maps) { packet.WriteUShort(m.ID); packet.WriteStringLen(m.ShortName); packet.WriteStringLen(m.FullName); packet.WriteInt(m.RegenX); packet.WriteInt(m.RegenY); packet.WriteByte(m.Kingdom); packet.WriteUShort(m.ViewRange); } } zc.SendPacket(packet); } }
public static void SendAddReward(ZoneConnection ZC, ushort itemID, byte count,string CharName) { using (var packet = new InterPacket(InterHeader.SendAddRewardItem)) { packet.WriteUShort(itemID); packet.WriteByte(count); packet.WriteString(CharName, 16); ZC.SendPacket(packet); } }