Ejemplo n.º 1
0
        public void HandleUs(WorldClient client, GMCreateNpcPacket packet)
        {
            if (!_gameSession.IsAdmin)
            {
                return;
            }

            if (!_definitionsPreloder.NPCs.ContainsKey((packet.Type, packet.TypeId)))
            {
                _packetFactory.SendGmCommandError(client, PacketType.GM_SHAIYA_US_CREATE_NPC);
                return;
            }

            Handle(client, packet);
        }
Ejemplo n.º 2
0
        private void Handle(WorldClient client, GMCreateNpcPacket packet)
        {
            var moveCoordinates = new List <(float, float, float, ushort)>()
            {
                (_movementManager.PosX, _movementManager.PosY - 1, _movementManager.PosZ, _movementManager.Angle)
            };

            var npc = _npcFactory.CreateNpc((packet.Type, packet.TypeId), moveCoordinates, _mapProvider.Map);

            npc.Init(_mapProvider.Map.GenerateId());
            npc.Map = _mapProvider.Map;


            _mapProvider.Map.AddNPC(_gameWorld.Players[_gameSession.CharId].CellId, npc);
            _packetFactory.SendGmCommandSuccess(client);
        }