Ejemplo n.º 1
0
        public async Task ModifyStats(Action <IModifyStatContext> action = null, bool exclRequest = false)
        {
            var context = new ModifyStatContext(Character);

            action?.Invoke(context);
            await UpdateStats();

            if (!IsInstantiated)
            {
                return;
            }

            var statPacket = new UnstructuredOutgoingPacket(PacketSendOperations.StatChanged);

            statPacket.WriteBool(exclRequest);
            statPacket.Write(context);
            statPacket.WriteBool(false);
            statPacket.WriteBool(false);

            await Dispatch(statPacket);

            if (Party != null && (context.Flag.HasFlag(ModifyStatType.Job) || context.Flag.HasFlag(ModifyStatType.Level)))
            {
                _ = GameStage.PartyService.UpdateChangeLevelOrJob(new PartyUpdateChangeLevelOrJobRequest
                {
                    Character = ID,
                    Level     = context.Level,
                    Job       = context.Job
                });
            }
        }
Ejemplo n.º 2
0
        public async Task ModifyStats(Action <ModifyStatContext> action = null, bool exclRequest = false)
        {
            var context = new ModifyStatContext(Character);

            action?.Invoke(context);
            ValidateStat();

            if (!Socket.IsInstantiated)
            {
                return;
            }

            if (context.Flag.HasFlag(ModifyStatType.Skin) ||
                context.Flag.HasFlag(ModifyStatType.Face) ||
                context.Flag.HasFlag(ModifyStatType.Hair))
            {
                AvatarModified();
            }
            using (var p = new Packet(SendPacketOperations.StatChanged))
            {
                p.Encode <bool>(exclRequest);
                context.Encode(p);
                p.Encode <bool>(false);
                p.Encode <bool>(false);
                await SendPacket(p);
            }
        }
Ejemplo n.º 3
0
        public Task ModifyStats(Action <ModifyStatContext> action = null, bool exclRequest = false)
        {
            var context = new ModifyStatContext(Character);

            action?.Invoke(context);
            ValidateStat();

            if (!Socket.IsInstantiated)
            {
                return(Task.CompletedTask);
            }
            using (var p = new OutPacket(GameSendOperations.StatChanged))
            {
                p.Encode <bool>(exclRequest);
                context.Encode(p);
                p.Encode <bool>(false);
                p.Encode <bool>(false);
                return(SendPacket(p));
            }
        }