private void Handle(WorldClient client, GMCreateMobPacket packet) { for (int i = 0; i < packet.NumberOfMobs; i++) { // TODO: calculate move area. var moveArea = new MoveArea(_movementManager.PosX > 10 ? _movementManager.PosX - 10 : 1, _movementManager.PosX + 10, _movementManager.PosY > 10 ? _movementManager.PosY - 10 : _movementManager.PosY, _movementManager.PosY + 10, _movementManager.PosZ > 10 ? _movementManager.PosZ - 10 : 1, _movementManager.PosZ + 10); var mob = _mobFactory.CreateMob(packet.MobId, false, moveArea); _mapProvider.Map.AddMob(mob); } }
public void HandleUsl(WorldClient client, GMCreateMobPacket packet) { if (!_gameSession.IsAdmin) { return; } if (!_databasePreloader.Mobs.ContainsKey(packet.MobId)) { _packetFactory.SendGmCommandError(client, PacketType.GM_SHAIYA_US_CREATE_MOB); return; } Handle(client, packet); _packetFactory.SendGmCommandSuccess(client); }
private void HandleGMCreateMob(GMCreateMobPacket gmCreateMobPacket) { if (!_databasePreloader.Mobs.ContainsKey(gmCreateMobPacket.MobId)) { _packetsHelper.SendGmCommandError(Client, PacketType.GM_CREATE_MOB); return; } for (int i = 0; i < gmCreateMobPacket.NumberOfMobs; i++) { // TODO: calculate move area. var moveArea = new MoveArea(PosX > 10 ? PosX - 10 : 1, PosX + 10, PosY > 10 ? PosY - 10 : PosY, PosY + 10, PosZ > 10 ? PosZ - 10 : 1, PosZ + 10); var mob = _mobFactory.CreateMob(gmCreateMobPacket.MobId, false, moveArea, Map); Map.AddMob(mob); } _packetsHelper.SendGmCommandSuccess(Client); }