/// <summary> /// Sends DyePickColorR to creature's client. /// </summary> /// <param name="creature"></param> /// <param name="success"></param> public static void DyePickColorR(MabiCreature creature, bool success) { var packet = new MabiPacket(Op.DyePickColorR, creature.Id); packet.PutByte(success); if (success) packet.PutBin(creature.Temp.DyeCursors); creature.Client.Send(packet); }
protected void SendScript(WorldClient client, string xml) { var p = new MabiPacket(Op.NPCTalk, client.Character.Id); p.PutString(xml); p.PutBin(new byte[] { 0 }); client.Send(p); }
public static void CutsceneStart(WorldClient client, MabiCutscene cutscene) { var p = new MabiPacket(Op.CutsceneStart, Id.World); p.PutLongs(client.Character.Id, cutscene.Leader.Id); p.PutString(cutscene.Name); p.PutSInt(cutscene.Actors.Count); foreach (var a in cutscene.Actors) { p.PutString(a.Item1); p.PutShort((ushort)a.Item2.Length); p.PutBin(a.Item2); } p.PutInt(1); p.PutLong(client.Character.Id); client.Send(p); }
public static void EntitiesAppear(Client client, IEnumerable<MabiEntity> entities) { var packet = new MabiPacket(Op.EntitiesAppear, Id.Broadcast); packet.PutShort((ushort)entities.Count()); foreach (var entity in entities) { var data = new MabiPacket(0, 0); data.AddPublicEntityInfo(entity); var dataBytes = data.Build(false); packet.PutShort(entity.DataType); packet.PutInt((uint)dataBytes.Length); packet.PutBin(dataBytes); } client.Send(packet); }
public static void EquipmentChanged(MabiCreature creature, MabiItem item) { var packet = new MabiPacket(Op.EquipmentChanged, creature.Id); packet.PutBin(item.Info); packet.PutByte(1); WorldManager.Instance.Broadcast(packet, SendTargets.Range, creature); WorldManager.Instance.CreatureStatsUpdate(creature); }
public static void SkillRankUp(Client client, MabiCreature creature, MabiSkill skill) { var packet = new MabiPacket(Op.SkillRankUp, creature.Id); packet.PutByte(1); packet.PutBin(skill.Info); packet.PutFloat(0); client.Send(packet); }
public static void SkillInfo(Client client, MabiCreature creature, MabiSkill skill) { var packet = new MabiPacket(Op.SkillInfo, creature.Id); packet.PutBin(skill.Info); client.Send(packet); }
/// <summary> /// Sends character info. /// </summary> /// <param name="client"></param> /// <param name="character"></param> public static void CharacterInfo(LoginClient client, uint op, Character character, IEnumerable<Item> items) { var packet = new MabiPacket(op, Id.Login); if (character != null) { packet.PutByte(true); packet.PutString(character.Server); packet.PutLong(character.Id); packet.PutByte(1); packet.PutString(character.Name); packet.PutString(""); packet.PutString(""); packet.PutInt(character.Race); packet.PutByte(character.SkinColor); packet.PutByte(character.Eye); packet.PutByte(character.EyeColor); packet.PutByte(character.Mouth); packet.PutInt(0); packet.PutFloat(character.Height); packet.PutFloat(character.Weight); packet.PutFloat(character.Upper); packet.PutFloat(character.Lower); packet.PutInt(0); packet.PutInt(0); packet.PutInt(0); packet.PutByte(0); packet.PutInt(0); packet.PutByte(0); packet.PutInt(character.Color1); packet.PutInt(character.Color2); packet.PutInt(character.Color3); packet.PutFloat(0.0f); packet.PutString(""); packet.PutFloat(49.0f); packet.PutFloat(49.0f); packet.PutFloat(0.0f); packet.PutFloat(49.0f); packet.PutInt(0); packet.PutInt(0); packet.PutShort(0); packet.PutLong(0); packet.PutString(""); packet.PutByte(0); packet.PutSInt(items.Count()); foreach (var item in items) { packet.PutLong(item.Id); packet.PutBin(item.Info); } packet.PutInt(0); // PetRemainingTime packet.PutLong(0); // PetLastTime packet.PutLong(0); // PetExpireTime } else { packet.PutByte(false); } client.Send(packet); }