public void SetVisual(String aVisual, String aBodyMesh, String aHeadMesh, int aBodyTex, int aSkinColor, int aHeadTex, int aTeethTex)
        {
            String _visual    = aVisual.ToUpper().Trim();
            bool   sameVisual = _visual == this.Visual;

            this.Visual    = _visual;
            this.BodyMesh  = aBodyMesh;
            this.BodyTex   = aBodyTex;
            this.SkinColor = aSkinColor;
            this.HeadMesh  = aHeadMesh;
            this.HeadTex   = aHeadTex;
            this.TeethTex  = aTeethTex;

            if (this.Address == 0)
            {
                return;
            }

            Process process = Process.ThisProcess();
            oCNpc   npc     = new oCNpc(process, this.Address);

            if (sameVisual)
            {
                npc.SetAdditionalVisuals(BodyMesh, bodyTex, skinColor, HeadMesh, headTex, teethTex, -1);
            }
            else
            {
                npc.ClearOverlays();
                this.Overlays.Clear();


                npc.CloseSpellBook(true);
                npc.SetWeaponMode2(0);
                npc.AniCtrl.SearchStandAni();


                npc.Shrink();

                npc.MDSName.Set(_visual);
                npc.SetAdditionalVisuals(BodyMesh, bodyTex, skinColor, HeadMesh, headTex, teethTex, -1);


                if (this == Player.Hero)
                {
                    npc.UnShrink();
                }
                else
                {
                    npc.AvoidShrink(1000);
                }



                this.setWeaponMode(this.WeaponMode);

                //00AB1F28
            }
        }