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); }
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 }; }
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); }
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); }
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); } }
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); } }
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() }); }