Пример #1
0
 public static PidxSubPacket GenerateSubPidx(this IAliveEntity playableEntity, bool isMemberOfGroup)
 {
     return(new PidxSubPacket
     {
         IsGrouped = isMemberOfGroup,
         VisualId = playableEntity.VisualId
     });
 }
Пример #2
0
 public static NpcReqPacket GenerateNpcReq(this IAliveEntity namedEntity, long dialog)
 {
     return(new NpcReqPacket
     {
         VisualType = namedEntity.VisualType,
         VisualId = namedEntity.VisualId,
         Dialog = dialog,
     });
 }
Пример #3
0
 public static EffectPacket GenerateEff(this IAliveEntity aliveEntity, int effectid)
 {
     return(new EffectPacket
     {
         EffectType = aliveEntity.VisualType,
         VisualEntityId = aliveEntity.VisualId,
         Id = effectid
     });
 }
Пример #4
0
 public static PflagPacket GeneratePFlag(this IAliveEntity aliveEntity)
 {
     return(new PflagPacket
     {
         VisualType = aliveEntity.VisualType,
         VisualId = aliveEntity.VisualId,
         Flag = aliveEntity.Shop?.ShopId ?? 0
     });
 }
Пример #5
0
 public static CharScPacket GenerateCharSc(this IAliveEntity aliveEntity)
 {
     return(new CharScPacket
     {
         VisualType = aliveEntity.VisualType,
         VisualId = aliveEntity.VisualId,
         Size = aliveEntity.Size
     });
 }
Пример #6
0
 public static RestPacket GenerateRest(this IAliveEntity aliveEntity)
 {
     return(new RestPacket
     {
         VisualType = aliveEntity.VisualType,
         VisualId = aliveEntity.VisualId,
         IsSitting = aliveEntity.IsSitting
     });
 }
Пример #7
0
 public static DirPacket GenerateChangeDir(this IAliveEntity namedEntity)
 {
     return(new DirPacket
     {
         VisualType = namedEntity.VisualType,
         VisualId = namedEntity.VisualId,
         Direction = namedEntity.Direction
     });
 }
Пример #8
0
 public static RequestNpcPacket GenerateNpcReq(this IAliveEntity namedEntity, long dialog)
 {
     return(new RequestNpcPacket
     {
         Type = namedEntity.VisualType,
         TargetId = namedEntity.VisualId,
         Data = dialog
     });
 }
Пример #9
0
 public static SayPacket GenerateSay(this IAliveEntity aliveEntity, SayPacket packet)
 {
     return(new SayPacket
     {
         VisualType = aliveEntity.VisualType,
         VisualId = aliveEntity.VisualId,
         Type = packet.Type,
         Message = packet.Message
     });
 }
Пример #10
0
 public static SayPacket GenerateSay(this IAliveEntity aliveEntity, string message, byte type)
 {
     return(new SayPacket()
     {
         VisualType = aliveEntity.VisualType,
         VisualId = aliveEntity.VisualId,
         Type = type,
         Message = message,
     });
 }
Пример #11
0
 public static CondPacket GenerateCond(this IAliveEntity aliveEntity)
 {
     return(new CondPacket()
     {
         VisualType = aliveEntity.VisualType,
         VisualId = aliveEntity.VisualId,
         NoAttack = aliveEntity.NoAttack,
         NoMove = aliveEntity.NoMove,
         Speed = aliveEntity.Speed
     });
 }
Пример #12
0
 public static MovePacket GenerateMove(this IAliveEntity aliveEntity, short?mapX, short?mapY)
 {
     return(new MovePacket
     {
         VisualEntityId = aliveEntity.VisualId,
         MapX = mapX ?? aliveEntity.PositionX,
         MapY = mapY ?? aliveEntity.PositionY,
         Speed = aliveEntity.Speed,
         VisualType = aliveEntity.VisualType
     });
 }
Пример #13
0
 public static ShopPacket GenerateShop(this IAliveEntity visualEntity)
 {
     return(new ShopPacket
     {
         VisualType = visualEntity.VisualType,
         VisualId = visualEntity.VisualId,
         ShopId = visualEntity.Shop?.ShopId ?? 0,
         MenuType = visualEntity.Shop?.MenuType ?? 0,
         ShopType = visualEntity.Shop?.ShopType,
         Name = visualEntity.Shop?.Name,
     });
 }
Пример #14
0
 public static CModePacket GenerateCMode(this IAliveEntity aliveEntity)
 {
     return(new CModePacket()
     {
         VisualType = aliveEntity.VisualType,
         VisualId = aliveEntity.VisualId,
         Morph = aliveEntity.Morph,
         MorphUpgrade = aliveEntity.MorphUpgrade,
         MorphDesign = aliveEntity.MorphDesign,
         MorphBonus = aliveEntity.MorphBonus
     });
 }
Пример #15
0
 public static UseItemPacket GenerateUseItem(this IAliveEntity aliveEntity, PocketType type, short slot,
                                             byte mode, byte parameter)
 {
     return(new UseItemPacket
     {
         VisualId = aliveEntity.VisualId,
         VisualType = aliveEntity.VisualType,
         Type = type,
         Slot = slot,
         Mode = mode,
         Parameter = parameter
     });
 }
Пример #16
0
 public static CModePacket GenerateCMode(this IAliveEntity aliveEntity)
 {
     return(new CModePacket
     {
         VisualType = aliveEntity.VisualType,
         VisualId = aliveEntity.VisualId,
         Morph = aliveEntity.Morph,
         MorphUpgrade = aliveEntity.MorphUpgrade,
         MorphDesign = aliveEntity.MorphDesign,
         MorphBonus = aliveEntity.MorphBonus,
         Size = (aliveEntity as ICharacterEntity)?.Size
     });
 }
Пример #17
0
        public static PairyPacket GeneratePairy(this IAliveEntity aliveEntity, WearableInstance fairy)
        {
            bool isBuffed = false; //TODO aliveEntity.Buff.Any(b => b.Card.CardId == 131);

            return(new PairyPacket
            {
                VisualType = aliveEntity.VisualType,
                VisualId = aliveEntity.VisualId,
                Unknown = fairy == null ? 0 : 4,
                Element = fairy?.Item.Element ?? 0,
                ElementRate = fairy?.ElementRate + fairy?.Item.ElementRate ?? 0,
                Morph = fairy?.Item.Morph ?? 0 + (isBuffed ? 5 : 0)
            });
        }
Пример #18
0
        public static SayItemPacket GenerateSayItem(this IAliveEntity aliveEntity, string message, InventoryItemInstance item)
        {
            var isNormalItem = item.Type != NoscorePocketType.Equipment && item.Type != NoscorePocketType.Specialist;

            return(new SayItemPacket
            {
                VisualType = aliveEntity.VisualType,
                VisualId = aliveEntity.VisualId,
                OratorSlot = 17,
                Message = message,
                IconInfo = isNormalItem ? new IconInfoPacket
                {
                    IconId = item.ItemInstance !.ItemVNum
                } : null,
Пример #19
0
 public static StPacket GenerateStatInfo(this IAliveEntity aliveEntity)
 {
     return(new StPacket
     {
         Type = aliveEntity.VisualType,
         VisualId = aliveEntity.VisualId,
         Level = aliveEntity.Level,
         HeroLvl = aliveEntity.HeroLevel,
         HpPercentage = (int)(aliveEntity.Hp / (float)aliveEntity.MaxHp * 100),
         MpPercentage = (int)(aliveEntity.Mp / (float)aliveEntity.MaxMp * 100),
         CurrentHp = aliveEntity.Hp,
         CurrentMp = aliveEntity.Mp,
         BuffIds = null
     });
 }
Пример #20
0
        public static NInvPacket GenerateNInv(this IAliveEntity aliveEntity, double percent, short typeshop,
                                              byte shopKind)
        {
            var shopItemList = new List <NInvItemSubPacket>();
            var list         = aliveEntity.Shop.ShopItems.Values.Where(s => s.Type == typeshop).ToList();

            for (var i = 0; i < aliveEntity.Shop.Size; i++)
            {
                var item = list.Find(s => s.Slot == i);
                if (item == null)
                {
                    shopItemList.Add(null);
                }
                else
                {
                    shopItemList.Add(new NInvItemSubPacket
                    {
                        Type  = 0,
                        Slot  = item.Slot,
                        Price = (int)(item.Price ?? (item.ItemInstance.Item.ReputPrice > 0
                            ? item.ItemInstance.Item.ReputPrice : item.ItemInstance.Item.Price * percent)),
                        RareAmount = item.ItemInstance.Item.Type == (byte)NoscorePocketType.Equipment
                            ? item.ItemInstance.Rare
                            : item.Amount,
                        UpgradeDesign = item.ItemInstance.Item.Type == (byte)NoscorePocketType.Equipment
                            ? item.ItemInstance.Item.IsColored
                                ? item.ItemInstance.Item.Color : item.ItemInstance.Upgrade : (short?)null,
                        VNum = item.ItemInstance.Item.VNum
                    });
                }
            }

            return(new NInvPacket
            {
                VisualType = aliveEntity.VisualType,
                VisualId = aliveEntity.VisualId,
                ShopKind = shopKind,
                Unknown = 0,
                Items = shopItemList
            });
        }
Пример #21
0
 public static PidxSubPacket GenerateSubPidx(this IAliveEntity playableEntity) => playableEntity.GenerateSubPidx(false);
Пример #22
0
 public static Task ChangeDirAsync(this IAliveEntity aliveEntity, byte direction)
 {
     aliveEntity.Direction = direction;
     return(aliveEntity.MapInstance.SendPacketAsync(
                aliveEntity.GenerateChangeDir()));
 }
Пример #23
0
 public static MovePacket GenerateMove(this IAliveEntity aliveEntity) => aliveEntity.GenerateMove(null, null);
Пример #24
0
 public static void Rest(this IAliveEntity aliveEntity)
 {
     aliveEntity.IsSitting = !aliveEntity.IsSitting;
     aliveEntity.MapInstance.Sessions.SendPacket(
         aliveEntity.GenerateRest());
 }
Пример #25
0
 public static PidxSubPacket GenerateSubPidx(this IAliveEntity playableEntity)
 {
     return(playableEntity.GenerateSubPidx(false));
 }
Пример #26
0
 public static Task RestAsync(this IAliveEntity aliveEntity)
 {
     aliveEntity.IsSitting = !aliveEntity.IsSitting;
     return(aliveEntity.MapInstance.SendPacketAsync(
                aliveEntity.GenerateRest()));
 }
Пример #27
0
 public static MovePacket GenerateMove(this IAliveEntity aliveEntity)
 {
     return(aliveEntity.GenerateMove(null, null));
 }
Пример #28
0
 public static void ChangeDir(this IAliveEntity aliveEntity, byte direction)
 {
     aliveEntity.Direction = direction;
     aliveEntity.MapInstance.Sessions.SendPacket(
         aliveEntity.GenerateChangeDir());
 }