Exemple #1
0
 public override void BuildCreateMask(UpdateMask mask, bool myself)
 {
     base.BuildCreateMask(mask, myself);
     if (npcflags != 0)
     {
         mask.Touch(UpdateFields.UNIT_NPC_FLAGS);
     }
     mask.Touch(UpdateFields.UNIT_FIELD_MAXPOWER1 + (ushort)powerType);
     mask.Touch(UpdateFields.UNIT_FIELD_POWER1 + (ushort)powerType);
     mask.Touch(
         UpdateFields.UNIT_FIELD_HEALTH,
         UpdateFields.UNIT_FIELD_MAXHEALTH,
         UpdateFields.UNIT_FIELD_LEVEL,
         UpdateFields.UNIT_FIELD_FACTIONTEMPLATE,
         UpdateFields.UNIT_FIELD_BYTES_0,
         UpdateFields.UNIT_FIELD_FLAGS,
         UpdateFields.UNIT_NPC_EMOTESTATE,
         UpdateFields.UNIT_FIELD_BASEATTACKTIME,
         UpdateFields.UNIT_FIELD_BASEATTACKTIME + 1,
         UpdateFields.UNIT_FIELD_BOUNDINGRADIUS,
         UpdateFields.UNIT_FIELD_COMBATREACH,
         UpdateFields.UNIT_FIELD_DISPLAYID,
         UpdateFields.UNIT_FIELD_NATIVEDISPLAYID,
         UpdateFields.UNIT_FIELD_AURASTATE,
         UpdateFields.UNIT_FIELD_MINDAMAGE,
         UpdateFields.UNIT_FIELD_MAXDAMAGE,
         UpdateFields.UNIT_FIELD_BYTES_1,
         UpdateFields.UNIT_FIELD_MOUNTDISPLAYID,
         UpdateFields.UNIT_FIELD_STAT0,
         UpdateFields.UNIT_FIELD_STAT1,
         UpdateFields.UNIT_FIELD_STAT2,
         UpdateFields.UNIT_FIELD_STAT3,
         UpdateFields.UNIT_FIELD_STAT4
         );
 }
Exemple #2
0
        public void SendCreateItems(Character carry, CreateItemType type)
        {
            SlotID start = 0;
            SlotID stop  = SlotID.BANK;

            if (type == CreateItemType.Other)
            {
                stop = SlotID.INBACKPACK;
            }
            if (type == CreateItemType.Bank)
            {
                start = SlotID.BANK;
                stop  = (SlotID)items.Length;
            }

            UpdateMask imask = new UpdateMask();

            while (start < stop)
            {
                Item item = carry.items[(int)start];
                if (item != null)
                {
                    item.SendCreateItem(this);

                    imask.Touch(UpdateFields.PLAYER_FIELD_INV_SLOT_HEAD + (ushort)((int)start * 2));
                    imask.Touch(UpdateFields.PLAYER_FIELD_INV_SLOT_HEAD + (ushort)((int)start * 2 + 1));
                }
                start++;
            }
            SendUpdate(carry.BuildUpdate(imask, UpdateType.Value, false));
        }
Exemple #3
0
 public override void BuildCreateMask(UpdateMask mask, bool myself)
 {
     base.BuildCreateMask(mask, myself);
     mask.Touch(
         UpdateFields.CONTAINER_FIELD_NUM_SLOTS
         );
     for (int i = 0; i < items.Length; i++)
     {
         mask.Touch(
             UpdateFields.CONTAINER_FIELD_SLOT_1 + (ushort)(i * 2),
             UpdateFields.CONTAINER_FIELD_SLOT_1 + (ushort)(i * 2 + 1)
             );
     }
 }
Exemple #4
0
 public virtual void BuildCreateMask(UpdateMask mask, bool myself)
 {
     mask.Touch(
         UpdateFields.OBJECT_FIELD_GUID,
         UpdateFields.OBJECT_FIELD_GUID + 1,
         UpdateFields.OBJECT_FIELD_ENTRY,
         UpdateFields.OBJECT_FIELD_TYPE,
         UpdateFields.OBJECT_FIELD_SCALE_X);
 }
Exemple #5
0
        public override void BuildCreateMask(UpdateMask mask, bool myself)
        {
            base.BuildCreateMask(mask, myself);
            if (myself)
            {
                mask.Touch(
                    UpdateFields.PLAYER_XP,
                    UpdateFields.PLAYER_NEXT_LEVEL_XP,
                    UpdateFields.PLAYER_REST_STATE_EXPERIENCE,
                    UpdateFields.PLAYER_FIELD_COINAGE,
                    UpdateFields.PLAYER_FIELD_MOD_DAMAGE_DONE_NEG,
                    UpdateFields.PLAYER_AMMO_ID);

                uint u = GetUpdateValue(UpdateFields.UNIT_FIELD_FLAGS);
                SetUpdateValue(UpdateFields.UNIT_FIELD_FLAGS, u | 8, mask);                 // control player

                for (ushort i = 0; i < nstat.Length; i++)
                {
                    mask.Touch(UpdateFields.PLAYER_FIELD_POSSTAT0 + i);
                }
            }
            else
            {
                uint u = GetUpdateValue(UpdateFields.UNIT_FIELD_FLAGS);
                SetUpdateValue(UpdateFields.UNIT_FIELD_FLAGS, u & 0xfffffff7, mask);                 // not control player
            }
            mask.Touch(
                UpdateFields.PLAYER_BYTES,
                UpdateFields.PLAYER_BYTES_2,
                UpdateFields.PLAYER_BYTES_3,
                UpdateFields.UNIT_FIELD_ATTACKPOWER,
                UpdateFields.UNIT_FIELD_MINDAMAGE,
                UpdateFields.UNIT_FIELD_MAXDAMAGE,
                UpdateFields.UNIT_FIELD_BASEATTACKTIME,
                UpdateFields.UNIT_FIELD_BASEATTACKTIME + 1
                );
            for (ushort i = 0; i < res.Length; i++)
            {
                mask.Touch(UpdateFields.UNIT_FIELD_RESISTANCES + i);
            }
        }
Exemple #6
0
 public override void BuildCreateMask(UpdateMask mask, bool myself)
 {
     base.BuildCreateMask(mask, myself);
     mask.Touch(
         UpdateFields.ITEM_FIELD_OWNER,
         UpdateFields.ITEM_FIELD_OWNER + 1,
         UpdateFields.ITEM_FIELD_CONTAINED,
         UpdateFields.ITEM_FIELD_CONTAINED + 1,
         UpdateFields.ITEM_FIELD_STACK_COUNT,
         UpdateFields.ITEM_FIELD_DURABILITY,
         UpdateFields.ITEM_FIELD_MAXDURABILITY,
         UpdateFields.ITEM_FIELD_FLAGS);
 }