Example #1
0
 private static void BindHead(MySqlCommand cmd, string type, HeadOverlay headOverlay)
 {
     cmd.Parameters.AddWithValue("@o_i_" + type, headOverlay.Index);
     cmd.Parameters.AddWithValue("@o_c_" + type, headOverlay.Color);
     cmd.Parameters.AddWithValue("@o_c2_" + type, headOverlay.SecondaryColor);
     cmd.Parameters.AddWithValue("@o_o_" + type, headOverlay.Opacity);
 }
Example #2
0
 public void SetPedHeadOverlay(int type, HeadOverlay data)
 {
     SetHeadOverlay(type, new HeadOverlay {
         Color = data.Color, SecondaryColor = data.SecondaryColor, Index = data.Index, Opacity = 1.0f
     });
     HeadOverlays[type] = new HeadOverlay {
         Color = data.Color, SecondaryColor = data.SecondaryColor, Index = data.Index, Opacity = 1.0f
     };
 }
Example #3
0
        public static void ApplyPlayerCustomization(Client player, SkinModel skinModel, int sex)
        {
            // Populate the head
            var headBlend = new HeadBlend();
            {
                headBlend.ShapeFirst  = Convert.ToByte(skinModel.firstHeadShape);
                headBlend.ShapeSecond = Convert.ToByte(skinModel.secondHeadShape);
                headBlend.SkinFirst   = Convert.ToByte(skinModel.firstSkinTone);
                headBlend.SkinSecond  = Convert.ToByte(skinModel.secondSkinTone);
                headBlend.ShapeMix    = skinModel.headMix;
                headBlend.SkinMix     = skinModel.skinMix;
            }

            // Get the hair and eyes colors
            var eyeColor        = Convert.ToByte(skinModel.eyesColor);
            var hairColor       = Convert.ToByte(skinModel.firstHairColor);
            var hightlightColor = Convert.ToByte(skinModel.secondHairColor);

            // Add the face features
            float[] faceFeatures =
            {
                skinModel.noseWidth, skinModel.noseHeight,      skinModel.noseLength,     skinModel.noseBridge,
                skinModel.noseTip,   skinModel.noseShift,       skinModel.browHeight,
                skinModel.browWidth, skinModel.cheekboneHeight, skinModel.cheekboneWidth, skinModel.cheeksWidth,
                skinModel.eyes,      skinModel.lips,            skinModel.jawWidth,
                skinModel.jawHeight, skinModel.chinLength,      skinModel.chinPosition,   skinModel.chinWidth,
                skinModel.chinShape, skinModel.neckWidth
            };

            // Populate the head overlays
            var headOverlays = new Dictionary <int, HeadOverlay>();

            for (var i = 0; i < Constants.MAX_HEAD_OVERLAYS; i++)
            {
                // Get the overlay model and color
                var overlayData = GetOverlayData(skinModel, i);

                // Create the overlay
                var headOverlay = new HeadOverlay();
                {
                    headOverlay.Index          = Convert.ToByte(overlayData[0]);
                    headOverlay.Color          = Convert.ToByte(overlayData[1]);
                    headOverlay.SecondaryColor = 0;
                    headOverlay.Opacity        = 1.0f;
                }

                // Add the overlay
                headOverlays[i] = headOverlay;
            }

            // Update the character's skin
            player.SetCustomization(sex == Constants.SEX_MALE, headBlend, eyeColor, hairColor, hightlightColor,
                                    faceFeatures, headOverlays, new Decoration[] { });
            player.SetClothes(2, skinModel.hairModel, 0);
        }
Example #4
0
        public static void ApplyPlayerCustomization(Client player, SkinModel skinModel, int sex)
        {
            // Устанавливаем настройки головы
            HeadBlend headBlend = new HeadBlend();

            headBlend.ShapeFirst  = Convert.ToByte(skinModel.firstHeadShape);
            headBlend.ShapeSecond = Convert.ToByte(skinModel.secondHeadShape);
            headBlend.SkinFirst   = Convert.ToByte(skinModel.firstSkinTone);
            headBlend.SkinSecond  = Convert.ToByte(skinModel.secondSkinTone);
            headBlend.ShapeMix    = skinModel.headMix;
            headBlend.SkinMix     = skinModel.skinMix;

            // Получаем волосы и цвет глаз
            byte eyeColor        = Convert.ToByte(skinModel.eyesColor);
            byte hairColor       = Convert.ToByte(skinModel.firstHairColor);
            byte hightlightColor = Convert.ToByte(skinModel.secondHairColor);

            // Устанавливаем черны лица
            float[] faceFeatures = new float[]
            {
                skinModel.noseWidth, skinModel.noseHeight, skinModel.noseLength, skinModel.noseBridge, skinModel.noseTip, skinModel.noseShift, skinModel.browHeight,
                skinModel.browWidth, skinModel.cheekboneHeight, skinModel.cheekboneWidth, skinModel.cheeksWidth, skinModel.eyes, skinModel.lips, skinModel.jawWidth,
                skinModel.jawHeight, skinModel.chinLength, skinModel.chinPosition, skinModel.chinWidth, skinModel.chinShape, skinModel.neckWidth
            };


            Dictionary <int, HeadOverlay> headOverlays = new Dictionary <int, HeadOverlay>();

            for (int i = 0; i < Constants.MAX_HEAD_OVERLAYS; i++)
            {
                int[] overlayData = GetOverlayData(skinModel, i);

                HeadOverlay headOverlay = new HeadOverlay();
                headOverlay.Index          = Convert.ToByte(overlayData[0]);
                headOverlay.Color          = Convert.ToByte(overlayData[1]);
                headOverlay.SecondaryColor = 0;
                headOverlay.Opacity        = 1.0f;

                headOverlays[i] = headOverlay;
            }

            // Обновляем скин персонажа
            player.SetCustomization(sex == Constants.SEX_MALE, headBlend, eyeColor, hairColor, hightlightColor, faceFeatures, headOverlays, new Decoration[] { });
            player.SetClothes(2, skinModel.hairModel, 0);
        }
Example #5
0
        public MultiplayerSkin(int ped)
        {
            _hairColor          = API.GetPedHairColor(ped);
            _hairHighlightColor = API.GetPedHairHighlightColor(ped);

            var data = new Ped(ped).GetHeadBlendData();

            _shapeFirstID  = data.FirstFaceShape;
            _shapeSecondID = data.SecondFaceShape;
            _shapeThirdID  = data.ThirdFaceShape;
            _skinFirstID   = data.FirstSkinTone;
            _skinSecondID  = data.SecondSkinTone;
            _skinThirdID   = data.ThirdSkinTone;
            _shapeMix      = data.ParentFaceShapePercent;
            _skinMix       = data.ParentSkinTonePercent;
            _thirdMix      = data.ParentThirdUnkPercent;
            _isParent      = data.IsParentInheritance;

            _headOverlays = new HeadOverlay[HeadOverlaysCount];
            _faceFeatures = new float[FaceFeaturesCount];

            for (int i = 0; i < HeadOverlaysCount; ++i)
            {
                int   style       = 0;
                int   colorType   = 0;
                int   firstColor  = 0;
                int   secondColor = 0;
                float opacity     = 0f;
                API.GetPedHeadOverlayData(ped, i, ref style, ref colorType, ref firstColor, ref secondColor, ref opacity);
                _headOverlays[i] = new HeadOverlay(style, colorType, firstColor, secondColor, opacity);
            }

            for (int i = 0; i < FaceFeaturesCount; ++i)
            {
                _faceFeatures[i] = API.GetPedFaceFeature(ped, i);
            }
        }
Example #6
0
        public void loadCharacter(Client player, string json)
        {
            dynamic Jony = JObject.Parse(json);

            //Gender
            int gender = Jony.gender;

            NAPI.Entity.SetEntityModel(player, gender);

            //Hair
            int hair = Jony.hair;

            NAPI.Player.SetPlayerClothes(player, 2, hair, 0);

            //Skin and Parents
            byte mother    = Jony.mother;
            byte father    = Jony.father;
            byte skinColor = Jony.skinColor;

            //MOTHER FATHER AND SKIN COLOR
            HeadBlend zaza = new HeadBlend();

            zaza.ShapeFirst  = mother;    //mother
            zaza.ShapeMix    = 0;         //works
            zaza.ShapeSecond = father;    // father
            zaza.ShapeThird  = 0;
            zaza.SkinFirst   = skinColor; //color 1
            zaza.SkinMix     = 0;         //works
            zaza.SkinSecond  = skinColor; // color 2
            zaza.SkinThird   = 0;
            zaza.ThirdMix    = 0;
            NAPI.Player.SetPlayerHeadBlend(player, zaza);

            byte eyeBrows      = Jony.eyeBrows;
            byte faceHair      = Jony.faceHair;
            byte hairColor     = Jony.hairColor;
            byte lipstickColor = Jony.lipstickColor;
            byte eyeColor      = Jony.eyeColor;

            //eyeBrows
            HeadOverlay xxx = new HeadOverlay();

            xxx.Index          = eyeBrows;
            xxx.Color          = hairColor;
            xxx.Opacity        = 1;
            xxx.SecondaryColor = hairColor;
            NAPI.Player.SetPlayerHeadOverlay(player, 2, xxx); // 8 какая фича (губы) а индекс  (какие губы)
                                                              //faceHair
            xxx.Index = faceHair;
            NAPI.Player.SetPlayerHeadOverlay(player, 1, xxx);
            //lipstickColor
            xxx.Index = lipstickColor;
            xxx.Color = 0;
            NAPI.Player.SetPlayerHeadOverlay(player, 8, xxx); // 8 какая фича (губы) а индекс  (какие губы)
                                                              //hair color
            NAPI.Player.SetPlayerHairColor(player, hairColor, hairColor);
            //Eye color
            NAPI.Player.SetPlayerEyeColor(player, eyeColor);

            //SET FACE APP FaceFeature 20 штук
            for (int i = 0; i < 20; i++)
            {
                float raz = Jony.FaceAppearance[i];
                NAPI.Player.SetPlayerFaceFeature(player, 1, raz);
            }
        }
Example #7
0
 public static MultiplayerSkin Deserialize(dynamic data)
 {
     return(new MultiplayerSkin
     {
         _hairColor = data.hairColor,
         _hairHighlightColor = data.hairHighlightColor,
         _shapeFirstID = data.shapeFirstID,
         _shapeSecondID = data.shapeSecondID,
         _shapeThirdID = data.shapeThirdID,
         _skinFirstID = data.skinFirstID,
         _skinSecondID = data.skinSecondID,
         _skinThirdID = data.skinThirdID,
         _shapeMix = data.shapeMix,
         _skinMix = data.skinMix,
         _thirdMix = data.thirdMix,
         _isParent = data.isParent,
         _headOverlays = ((IEnumerable <dynamic>)data.headOverlays).Select <dynamic, HeadOverlay>(headOverlay => HeadOverlay.Deserialize(headOverlay)).ToArray(),
         _faceFeatures = ((IEnumerable <object>)data.faceFeatures).Cast <float>().ToArray()
     });
 }