private static void ParseCreatureSpeak(InputMessage input) { //input.getU32(); input.getString(); byte type = input.getByte(); switch (type) { case 1: case 2: case 3: case 0x10: case 0x11: input.getLocation(); break; case 5: case 0xA: case 0xE: case 0xC: input.getU16(); break; case 6: input.getU16(); break; default: break; } input.getString(); }
private static void ParseTextWindow(InputMessage input) { input.getU32(); input.getU16(); input.getU16(); input.getString(); }
private static void ParseTradeItemRequest(InputMessage input) { input.getString(); byte tradeItemsSize = input.getByte(); for (int index = 0; index < tradeItemsSize; index++) { GetThing(input); } }
private static void ParseChannelsDialog(InputMessage input) { byte channelsSize = input.getByte(); for (int index = 0; index < channelsSize; index++) { input.getU16(); input.getString(); } }
private static void ParseContainer(InputMessage input) { input.getByte(); input.getU16(); input.getString(); input.getByte(); input.getByte(); byte containerSize = input.getByte(); for (int index = 0; index < containerSize; index++) { GetThing(input); } }
private static Thing GetThing(InputMessage message) { //get thing type var thingId = message.getU16(); if (thingId == 0x0061 || thingId == 0x0062) { //Console.WriteLine("Creature baby."); //creatures Creature creature = null; if (thingId == 0x0062) { uint creatureId = message.getU32(); creature = new Creature(creatureId); if (creature == null) { throw new Exception("[GetThing] (0x0062) Can't find the creature."); } byte creatureHealth = message.getByte(); //Console.WriteLine("Creature with id: " + creatureId + " Life: " + creatureHealth); } else if (thingId == 0x0061) //creature is not known { uint creatureId = message.getU32(); //Console.WriteLine("Removing creature: " + creatureId); uint creatureIdNew = message.getU32(); creature = new Creature(creatureIdNew); creature.Name = message.getString(); creature.Health = message.getByte(); } var direction = (Direction)message.getByte(); creature.LookDirection = direction; creature.TurnDirection = direction; creature.Outfit = message.getOutfit(); creature.LightLevel = message.getByte(); creature.LightColor = message.getByte(); creature.Speed = message.getU16(); creature.Skull = message.getByte(); creature.Shield = message.getByte(); return(creature); } else if (thingId == 0x0063) { uint creatureId = message.getU32(); Creature creature = new Creature(creatureId); if (creature == null) { throw new Exception("[GetThing] (0x0063) Can't find the creature in the battle list."); } creature.TurnDirection = (Direction)message.getByte(); return(creature); } else { return(GetItem(message, thingId)); } }
private static void ParseVIP(InputMessage input) { input.getU32(); input.getString(); input.getByte(); }
private static void ParseTextMessage(InputMessage input) { input.getByte(); input.getString(); }
private static void ParseAnimatedText(InputMessage input) { input.getLocation(); input.getByte(); input.getString(); }
private static void ParseOpenPrivateChannel(InputMessage input) { input.getString(); }
private static void ParseChannel(InputMessage input) { input.getU16(); input.getString(); }
private static void ParseHouseWindow(InputMessage input) { input.getByte(); input.getU32(); input.getString(); }
private static void ParsesRuleViolationCancel(InputMessage input) { input.getString(); }
private static void ParseRemoveReport(InputMessage input) { input.getString(); }
private static void ParseWaitList(InputMessage input) { input.getString(); input.getByte(); }
private static void ParseDisconnectClient(InputMessage input) { input.getString(); }