public static byte[] SpawnPortal(WorldMgr.Monsters o, WorldMgr.character c, int itemid) { PacketWriter Writer = new PacketWriter(); Writer.Create(OperationCode.SERVER_SOLO_SPAWN); Writer.DWord(o.ID); Writer.DWord(o.UniqueID); Writer.Byte(o.xSec); Writer.Byte(o.ySec); Writer.Float(Formule.packetx((float)o.x, o.xSec)); Writer.Float(o.z); Writer.Float(Formule.packety((float)o.y, o.ySec)); Writer.Word(0); Writer.Byte(1); Writer.Byte(0); Writer.Byte(1); Writer.Byte(6); Writer.Text(c.Information.Name); Writer.DWord(itemid); Writer.Byte(1); return(Writer.GetBytes()); }
public static object GetObjects(int id) { try { WorldMgr.Monsters o = GetObject(id); if (o != null) { return(o); } PlayerMgr sys = GetPlayers(id); if (sys != null) { return(sys); } } catch (Exception ex) { Log.Exception(ex); } return(null); }
public static byte[] ObjectSpawn(WorldMgr.Monsters o) //Monster spawns { PacketWriter Writer = new PacketWriter(); Writer.Create(OperationCode.SERVER_SOLO_SPAWN); Writer.DWord(o.ID); Writer.DWord(o.UniqueID); Writer.Byte(o.xSec); Writer.Byte(o.ySec); Writer.Float(Formule.packetx((float)o.x, o.xSec)); Writer.Float(o.z); Writer.Float(Formule.packety((float)o.y, o.ySec)); switch (o.LocalType) { case 0: Writer.Word(0); Writer.Word(1); Writer.Byte(o.xSec); Writer.Byte(o.ySec); if (!FileDB.CheckCave(o.xSec, o.ySec)) { if (o.xSec == 0) { Writer.Word(0); } else { Writer.Word(Formule.packetx((float)(o.x + o.wx), o.xSec)); } Writer.Word(o.z); if (o.ySec == 0) { Writer.Word(0); } else { Writer.Word(Formule.packety((float)(o.y + o.wy), o.ySec)); } } else { if (o.x < 0) { Writer.Word(Formule.cavepacketx((float)(o.x + o.wx))); Writer.Word(0xFFFF); } else { Writer.DWord(Formule.cavepacketx((float)(o.x + o.wx))); } Writer.DWord(o.z); if (o.y < 0) { Writer.Word(Formule.cavepackety((float)(o.y + o.wy))); Writer.Word(0xFFFF); } else { Writer.DWord(Formule.cavepackety((float)(o.y + o.wy))); } } Writer.Byte(1); Writer.Byte(o.Runing == true ? 2 : 0); Writer.Byte(0); Writer.Float(o.WalkingSpeed); // Walk speed Writer.Float(o.RunningSpeed); // Run speed Writer.Float(o.BerserkerSpeed); // Berserk speed Writer.Byte(0); //new ? Writer.Byte(0); Writer.Byte(2); Writer.Byte(1); Writer.Byte(5); Writer.Byte(o.Type); break; case 1: Writer.Word(o.Angle); Writer.Word(1); Writer.Byte(o.xSec); Writer.Byte(o.ySec); if (!FileDB.CheckCave(o.xSec, o.ySec)) { Writer.Word(Formule.packetx((float)(o.x + o.wx), o.xSec)); Writer.Word(o.z); Writer.Word(Formule.packety((float)(o.y + o.wy), o.ySec)); } else { if (o.x < 0) { Writer.Word(Formule.cavepacketx((float)(o.x + o.wx))); Writer.Word(0xFFFF); } else { Writer.DWord(Formule.cavepacketx((float)(o.x + o.wx))); } Writer.DWord(o.z); if (o.y < 0) { Writer.Word(Formule.cavepackety((float)(o.y + o.wy))); Writer.Word(0xFFFF); } else { Writer.DWord(Formule.cavepackety((float)(o.y + o.wy))); } } Writer.Byte(1); Writer.Byte(o.Runing == true ? 2 : 0); Writer.Byte(0); Writer.Byte(0); Writer.Byte(0); Writer.Float(o.WalkingSpeed); // Walk speed Writer.Float(o.RunningSpeed); // Run speed Writer.Float(o.BerserkerSpeed); // Berserk speed Writer.Byte(0); Writer.Byte(2); Writer.Byte(1); Writer.Byte(5); Writer.Byte(o.Type); Writer.Byte(4); break; case 2: Writer.Word(o.Angle); // Should be angle? yet not changing ingame.. Writer.Byte(0); Writer.Byte(1); Writer.Byte(0); Writer.Word(o.Angle); // Should be angle? yet not changing ingame.. Writer.Byte(1); Writer.Byte(0); Writer.Byte(0); Writer.Byte(0); Writer.Byte(0); Writer.DWord(0); Writer.DWord(0); Writer.Float(100); Writer.Byte(0); Writer.Byte(2); Writer.Byte(0); Writer.Byte(2); break; case 3: Writer.Word(0); Writer.Byte(1); Writer.Byte(0); Writer.Byte(0); Writer.Byte(1); Writer.DWord(0); Writer.DWord(0); Writer.Byte(0); break; case 4: /*Writer.Word(0); // Angle * Writer.Byte(0); * Writer.Byte(1); * Writer.Byte(0); * Writer.Word(0); // Angle * Writer.Byte(1); * Writer.Byte(0); * Writer.Byte(0); * Writer.Byte(0); * Writer.Float(o.WalkingSpeed);// Walk speed * Writer.Float(o.RunningSpeed);// Run speed * Writer.Float(o.BerserkerSpeed);// Berserk speed * Writer.Byte(0); * Writer.Byte(2); * Writer.Byte(1); * Writer.Byte(5); * Writer.Byte(0); * Writer.Byte(34); * Writer.Byte(1); * */ // Thiefs and trader spawns Writer.Word(0); // Angle Writer.Word(1); Writer.Byte(o.xSec); Writer.Byte(o.ySec); if (!FileDB.CheckCave(o.xSec, o.ySec)) { Writer.Word(Formule.packetx((float)(o.x + o.wx), o.xSec)); Writer.Word(o.z); Writer.Word(Formule.packety((float)(o.y + o.wy), o.ySec)); } else { if (o.x < 0) { Writer.Word(Formule.packetx((float)(o.x + o.wx), o.xSec)); Writer.Word(0xFFFF); } else { Writer.DWord(Formule.packetx((float)(o.x + o.wx), o.xSec)); } Writer.DWord(o.z); if (o.y < 0) { Writer.Word(Formule.packety((float)(o.y + o.wy), o.ySec)); Writer.Word(0xFFFF); } else { Writer.DWord(Formule.packety((float)(o.y + o.wy), o.ySec)); } } Writer.Byte(1); Writer.Byte(o.Runing == true ? 2 : 0); Writer.Byte(0); Writer.Byte(0); Writer.Byte(0); Writer.Float(o.WalkingSpeed); // Walk speed Writer.Float(o.RunningSpeed); // Run speed Writer.Float(o.BerserkerSpeed); // Berserk speed Writer.Byte(0); Writer.Byte(2); Writer.Byte(1); Writer.Byte(5); Writer.Byte(0); Writer.Byte(34); // 227 Need to check what this is... Writer.Byte(1); break; case 5: // Static monster spawns Writer.Word(0); Writer.Word(1); Writer.Byte(o.xSec); Writer.Byte(o.ySec); if (!FileDB.CheckCave(o.xSec, o.ySec)) { Writer.Word(Formule.packetx((float)o.x, o.xSec)); Writer.Word(o.z); Writer.Word(Formule.packety((float)o.y, o.ySec)); } else { if (o.x < 0) { Writer.Word(Formule.packetx((float)o.x, o.xSec)); Writer.Word(0xFFFF); } else { Writer.DWord(Formule.packetx((float)o.x, o.xSec)); } Writer.DWord(o.z); if (o.y < 0) { Writer.Word(Formule.packety((float)o.y, o.ySec)); Writer.Word(0xFFFF); } else { Writer.DWord(Formule.packety((float)o.y, o.ySec)); } } Writer.Byte(1); Writer.Byte(0); Writer.Byte(0); Writer.Byte(0); Writer.Byte(0); Writer.Float(0); // Walk speed Writer.Float(0); // Run speed Writer.Float(100); // Berserk speed Writer.Byte(0); Writer.Byte(2); Writer.Byte(1); Writer.Byte(5); Writer.Byte(o.Type); Writer.Byte(0); o.LocalType = 1; break; default: break; } return(Writer.GetBytes()); }