// 0 = public // 1 = lime // 2 = pink // 3 = orange // 4 = purple // 5 = green // 6 = magenta // 7 = gray // 8 = yellow // 9 = light yellow // A = cyan // B = white background // C = red // D = ligt blue background public static byte[] ChatMessage(short type, string message) { var packet = new PacketWriter(); packet.WriteOpcode(SendOps.ChatMsg); packet.WriteShort(type); packet.WriteMapleString(message); return packet.ToArray(); }
public void SendInitialPacket(int pVersion, string pPatchLoc, byte[] pRIV, byte[] pSIV, byte pServerType) { PacketWriter writer = new PacketWriter(); writer.WriteShort(pPatchLoc == "" ? 0x0D : 0x0E); writer.WriteShort(pVersion); writer.WriteMapleString(pPatchLoc); writer.WriteBytes(pRIV); writer.WriteBytes(pSIV); writer.WriteByte(pServerType); SendRawPacket(writer); }
public void SendInitialPacket(int version, string patchLoc, byte[] riv, byte[] siv, byte serverType) { var writer = new PacketWriter(); writer.WriteShort(patchLoc == "" ? 0x0D : 0x0E); writer.WriteShort(version); writer.WriteMapleString(patchLoc); writer.WriteBytes(riv); writer.WriteBytes(siv); writer.WriteByte(serverType); SendRawPacket(writer); }
public static byte[] GuildOperation(int cid, Guild guild) { var packet = new PacketWriter(); packet.WriteCenterServerOpcode(CenterSendOps.GuildOperation); packet.WriteInt(cid); packet.WriteInt(guild.GuildID); packet.WriteMapleString(guild.Name ?? string.Empty); packet.WriteInt(guild.Point); packet.WriteInt(guild.MemberCap); packet.WriteShort(guild.EmblemBG); packet.WriteShort(guild.EmblemBGColour); packet.WriteShort(guild.Emblem); packet.WriteShort(guild.EmblemColour); packet.WriteInt(guild.Members.Length); foreach (var member in guild.Members) { packet.WriteInt(member.CharacterID); packet.WriteInt(member.Grade); } return packet.ToArray(); }
public static byte[] WorldInformation(byte serverId, string worldName, byte flag, string eventmessage, short expPercent, short dropPercent, Dictionary<int, int> channels) { PacketWriter packet = new PacketWriter(); packet.WriteOpcode(SendOps.WorldInformation); packet.WriteByte(serverId); packet.WriteMapleString(worldName); packet.WriteByte(flag); // 1 = event, 2 = new, 3 = hot time packet.WriteMapleString(eventmessage); packet.WriteShort(expPercent); packet.WriteShort(dropPercent); packet.WriteByte(0); packet.WriteByte(channels.Count); foreach (KeyValuePair<int, int> channel in channels) { packet.WriteMapleString(worldName + "-" + (channel.Key + 1)); packet.WriteInt(channel.Value * 100); // max is 1000 packet.WriteByte(0); packet.WriteByte(channel.Key); packet.WriteByte(0); } Dictionary<Point, string> chatBubbles = new Dictionary<Point, string>(); chatBubbles.Add(new Point(0, 265), "왛라오! ㅇㅇ"); chatBubbles.Add(new Point(500, 370), "ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ"); packet.WriteShort(chatBubbles.Count); foreach (KeyValuePair<Point, string> pair in chatBubbles) { packet.WriteShort(pair.Key.X); packet.WriteShort(pair.Key.Y); packet.WriteMapleString(pair.Value); } packet.WriteInt(0); return packet.ToArray(); }
public static byte[] RecommendWorldMessage() { PacketWriter packet = new PacketWriter(); packet.WriteOpcode(SendOps.RecommendWorldMessage); Dictionary<int, string> messages = new Dictionary<int, string>(); messages.Add(0, "There is only one world, so I'm not sure why you are clicking this button.\r\n\r\n설치 겐투♥"); packet.WriteByte(messages.Count); foreach (KeyValuePair<int, string> pair in messages) { packet.WriteInt(pair.Key); packet.WriteMapleString(pair.Value); } return packet.ToArray(); }
public static byte[] LoginSuccess(Client c) { PacketWriter packet = new PacketWriter(); packet.WriteOpcode(SendOps.CheckPassword); packet.WriteByte(0); packet.WriteByte(0); packet.WriteInt(0); packet.WriteInt(c.AccountId); packet.WriteByte(0); // Gender packet.WriteByte(c.Admin); packet.WriteShort(0); // GM Mask packet.WriteByte(0); packet.WriteMapleString(c.Username); packet.WriteByte(3); packet.WriteByte(c.TradeBlock); packet.WriteLong(c.TradeBlockExpiration); packet.WriteByte(1); packet.WriteLong(0); // Creation date. That's not important! packet.WriteInt(0x0C); // Tooltip bubble at World/Channel select packet.WriteByte(1); // Use SessionID packet.WriteByte(1); packet.WriteLong(c.SessionID); return packet.ToArray(); }
public static byte[] CheckDuplicatedID(string name, byte valid) { PacketWriter packet = new PacketWriter(); packet.WriteOpcode(SendOps.CheckDuplicatedID); packet.WriteMapleString(name); packet.WriteByte(valid); return packet.ToArray(); }
public static byte[] BroadcastMessage(byte type, string message) { int channel = 0; bool megaEar = true; var packet = new PacketWriter(); packet.WriteOpcode(SendOps.BroadcastMsg); packet.WriteByte(type); if (type == 4) packet.WriteByte(1); if (type != 23 && type != 24) packet.WriteMapleString(message); switch (type) { case 3: // Super Megaphone case 22: // Skull Megaphone case 25: case 26: packet.WriteByte(channel - 1); packet.WriteByte(megaEar ? 1 : 0); break; case 9: // Like Item Megaphone (Without Item) packet.WriteByte(channel - 1); break; case 12: // Weather Effect packet.WriteInt(channel); // item id break; case 6: case 11: case 20: packet.WriteInt(channel >= 1000000 && channel < 6000000 ? channel : 0); // Item Id //E.G. All new EXP coupon {Ruby EXP Coupon} is now available in the Cash Shop! break; case 24: packet.WriteShort(0); // ? break; } return packet.ToArray(); }
public void SendInitialPacket(int pVersion, string pPatchLoc, byte[] pRIV, byte[] pSIV, byte pServerType) { PacketWriter writer = new PacketWriter(); writer.WriteShort(pPatchLoc == "" ? 0x0D : 0x0E); writer.WriteShort(pVersion); writer.WriteMapleString(pPatchLoc); writer.WriteBytes(pRIV); writer.WriteBytes(pSIV); writer.WriteByte(pServerType); SendRawPacket(writer); }
//0005 01 000FDF15 00 00-00-00-00-00-00-00-00 FFFFFFFF 07 00 0000 0000 0000 0000 0000 0000 0000 0000 0003 0000 0000 0000 0000 0000 0000 "Ij#z쨳" 0000 //00 01 00000000 FFFFFFFF 00000000 0000 00 00 0000 0000 0000 0000 0000 0000 FFFF FFFF FFFF 00-00-00-00-00-00-00-00 00-40-E0-FD-3B-37-4F-01 FFFFFFFF public static void AddItemData(PacketWriter packet, AbstractItem aitem) { Equip eitem = null; Item item = null; if (aitem.Position < 0) eitem = (Equip)aitem; else item = (Item)aitem; if (eitem == null) packet.WriteByte(item.Position); else packet.WriteShort(Math.Abs(eitem.Position)); packet.WriteByte(eitem == null ? 2 : 1); packet.WriteInt(aitem.ItemId); packet.WriteByte(aitem.cash); if (aitem.cash > 0) packet.WriteLong(aitem.specialID); packet.WriteLong(aitem.Expiration); packet.WriteInt(-1); if (eitem != null) { packet.WriteByte(eitem.PossibleUpgrades); packet.WriteByte(0); // level packet.WriteShort(eitem.Str); packet.WriteShort(eitem.Dex); packet.WriteShort(eitem.Int); packet.WriteShort(eitem.Luk); packet.WriteShort(eitem.IncHP); packet.WriteShort(eitem.IncMP); packet.WriteShort(eitem.Watk); packet.WriteShort(eitem.Matk); packet.WriteShort(eitem.Wdef); packet.WriteShort(eitem.Mdef); packet.WriteShort(eitem.Accuracy); packet.WriteShort(eitem.Avoid); packet.WriteShort(0); // hands packet.WriteShort(eitem.Speed); packet.WriteShort(eitem.Jump); packet.WriteMapleString(eitem.Owner); packet.WriteShort(eitem.Flag); packet.WriteByte(0); // skill packet.WriteByte(1); // base level packet.WriteInt(0); // item exp packet.WriteInt(-1); // eitem.Durability packet.WriteInt(0); // vicious packet.WriteShort(0); // pvp damage packet.WriteByte(eitem.State); packet.WriteByte(eitem.Enhancements); packet.WriteShort(eitem.Pot1); if (eitem.specialID == 0) { packet.WriteShort(eitem.Pot2); packet.WriteShort(eitem.Pot3); packet.WriteShort(eitem.Pot4); packet.WriteShort(eitem.Pot5); } packet.WriteShort(eitem.SocketMask); packet.WriteShort(-1); // eitem.Socket1 packet.WriteShort(-1); // eitem.Socket2 packet.WriteShort(-1); // eitem.Socket3 packet.WriteLong(0); // inventory id packet.WriteLong(0x217E57D909BC000); packet.WriteInt(-1); } else { packet.WriteShort(item.Quantity); packet.WriteMapleString(item.Owner); packet.WriteShort(item.Flag); //packet.WriteLong(-1); // if is bullet/star } }
public static byte[] GMBoard(string url) { var packet = new PacketWriter(); packet.WriteOpcode(SendOps.GMBoard); packet.WriteInt(Environment.TickCount); // actually object id of some sort packet.WriteMapleString(url); return packet.ToArray(); }
public static byte[] UserEnterField(Character chr) { var packet = new PacketWriter(); packet.WriteOpcode(SendOps.UserEnterField); packet.WriteInt(chr.mID); packet.WriteByte(chr.mPrimaryStats.Level); packet.WriteMapleString(chr.mName); packet.WriteMapleString(""); // ultimate explourer packet.WriteMapleString(chr.mGuild.Name); packet.WriteShort(chr.mGuild.EmblemBG); packet.WriteByte(chr.mGuild.EmblemBGColour); packet.WriteShort(chr.mGuild.Emblem); packet.WriteByte(chr.mGuild.EmblemColour); int[] buffs = new int[8]; foreach (Buff buff in chr.mBuffs) buffs[buff.Position] |= buff.BuffID; //foreach (int i in buffs) // packet.WriteInt(i); // buffer 32 packet.WriteHexString("00 00 00 FE 00 00 A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "); //buff values packet.WriteInt(-1); // end buff values reading ? //packet.WriteByte(0); //packet.WriteByte(0); //packet.WriteByte(0); //packet.WriteByte(0); //packet.WriteBytes(new byte[4]); //packet.WriteBytes(new byte[4]); //packet.WriteByte(1); packet.WriteHexString("00 00 00 00 00 00 00 00 00 00 00 00 01"); packet.WriteInt(Environment.TickCount); packet.WriteShort(0); packet.WriteBytes(new byte[4]); packet.WriteBytes(new byte[4]); packet.WriteByte(1); packet.WriteInt(Environment.TickCount); packet.WriteShort(0); packet.WriteBytes(new byte[4]); packet.WriteBytes(new byte[4]); packet.WriteByte(1); packet.WriteInt(Environment.TickCount); packet.WriteShort(0); packet.WriteBytes(new byte[4]); packet.WriteBytes(new byte[4]); packet.WriteByte(1); packet.WriteInt(Environment.TickCount); packet.WriteBytes(new byte[4]); packet.WriteBytes(new byte[4]); packet.WriteByte(1); packet.WriteInt(Environment.TickCount); packet.WriteByte(1); packet.WriteInt(0); packet.WriteShort(0); packet.WriteBytes(new byte[4]); packet.WriteBytes(new byte[4]); packet.WriteByte(1); packet.WriteInt(Environment.TickCount); packet.WriteInt(0); packet.WriteInt(0); packet.WriteBytes(new byte[4]); packet.WriteBytes(new byte[4]); packet.WriteByte(1); packet.WriteInt(Environment.TickCount); packet.WriteShort(0); packet.WriteShort(chr.mPrimaryStats.Job); packet.WriteShort(0); Global.AddAvatarData(packet, chr); packet.WriteInt(0); packet.WriteBytes(new byte[12]); packet.WriteInt(0); packet.WriteInt(0); packet.WriteInt(0); packet.WriteInt(0); packet.WriteInt(0); packet.WriteInt(0); packet.WriteInt(0); packet.WriteInt(0); packet.WriteInt(0); packet.WriteShort(chr.mPosition.X); packet.WriteShort(chr.mPosition.Y); packet.WriteByte(chr.mStance); // chr.mStance packet.WriteShort(chr.mFoothold); packet.WriteByte(0); packet.WriteByte(0); packet.WriteByte(1); packet.WriteByte(0); packet.WriteInt(1); // mount level packet.WriteInt(0); // mount exp packet.WriteInt(0); // mount fatigue packet.WriteByte(0); // ``Announce Box'' packet.WriteByte(0); // Chalk Board Global.AddRingData(packet, chr); Global.AddRingData(packet, chr); Global.AddRingData(packet, chr); packet.WriteByte(0); // berserk packet.WriteInt(0); packet.WriteByte(0); // new year cards packet.WriteInt(0); return packet.ToArray(); }
public static byte[] PublicChatMessage(int cidfrom, string msg, bool whitebg, bool hide) { var packet = new PacketWriter(); packet.WriteOpcode(SendOps.PublicChatMsg); packet.WriteInt(cidfrom); packet.WriteBool(whitebg); packet.WriteMapleString(msg); packet.WriteBool(hide); return packet.ToArray(); }