Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
  • 0
Alex1422

Помогите разобраться с SimpleHidenSelection

Вообщем суть такая, в каком-то моде как-то видел мол что при установке например отдельной пистолетной рукояти, рукоять что на модели базовая исчезает и ставится модовая.
В принципе я понял что на модели нужно выделить нужный элемент (например та же рукоять) и назвать селекшен условно "Pistol_grip" затем вписать его в model.cfg и соответственно в конфиге прописать строчку
 

simpleHiddenSelections[] = {"pistol_grip"};

это сделал, затем переделал немного скрипт самого оружия...

 

Теперь он выглядит так

class M200_Base : BoltActionRifle_ExternalMagazine_Base
{

	private void HideUnhideSelection(string selectionName, bool hide = false)
    {
        TStringArray selectionNames = new TStringArray;
        ConfigGetTextArray("simpleHiddenSelections",selectionNames);
        int selectionId = selectionNames.Find(selectionName);
        SetSimpleHiddenSelectionState(selectionId, hide);
    }

	override RecoilBase SpawnRecoilObject()
	{
		return new CZ527Recoil(this);
	}

	override void EEItemAttached(EntityAI item, string slot_name)
	{	
		super.EEItemAttached(item,slot_name);
		if (item.IsKindOf("PG_Grip_Base"))
		{
			HideUnhideSelection("Pistol_grip", 0);
		}
	}
	override void EEItemDetached(EntityAI item, string slot_name)
	{	
		super.EEItemDetached(item,slot_name);
		if (item.IsKindOf("PG_Grip_Base"))
		{
			HideUnhideSelection("Pistol_grip", 1);
		}
	}
};
class M200 : M200_Base{};

Сам конфиг рукояти модовой (не знаю нужен он или нет)

class cfgVehicles {
    class Inventory_Base;   
    class PG_Grip_Base : Inventory_Base{};

    class ZenitkoGrip_Base : PG_Grip_Base {

        scope = 2;
        displayName = "****";
        descriptionShort = "****";
        model = "Model\att\PG\grip.p3d";
        rotationFlags = 17;
        reversed = 0;
        weight = 130;
        itemSize[] = {1, 1};
        inventorySlot[] = {"PistolGrip"};
        dispersionModifier = -0.000125;
        dispersionCondition = "true";
        recoilModifier[] = {0.95, 0.95, 0.95};
        swayModifier[] = {0.9, 0.9, 0.9};
        isMeleeWeapon = 1;

Всё устанавливается и т.д...но проблема в том что выделенный селекшен в модели не исчезает при установки модового.
В чем проблема может быть?!

 

 

model.cfg От оружки

class cfgSkeletons
{
    class m200
    {
        skeletonInherit = "";
        isDiscrete = 1;
        SkeletonBones[]=
        {
            "magazine"  ,"",
            "trigger"   ,"",
            "bullet"    ,"",
            "boltbody"  ,"",
            "bolthandle"    ,"boltbody"
        };
    };
};

class CfgModels
{
    class Default
    {
        sections[] = {};
        sectionsInherit="";
        skeletonName = "";
    };

    class m200:Default
    {
        skeletonName="m200";
        sections[]=
        {
            "magazine",
            "bullet",
            "camo",
            "zbytek",
            "pistol_grip"
        };
    };//</Modelclass>
};//</CfgModels>

 

Изменено пользователем Alex1422 (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендованные сообщения

  • 0
6 часов назад, Wool сказал:

Я тоже пытаюсь разобрать как создавать скрытые селекции в модели, но тоже не особо получается. Могу предположить, что в твоем случае дело в model.cfg. Вот как пример конфиг барабана для ванильного револьвера, как видишь тут прописаны невидимые селекшены для патронов и их параметры. По сути скрипт должен менять значение hide.

class cfgSkeletons
{
    class magnum_rotation
    {
        skeletonInherit = "";
        isDiscrete = 1;
        SkeletonBones[]=
        {
            "cylinder"    ,"",
            "bullet"    ,"cylinder",
            "bullet_2"    ,"cylinder",
            "bullet_3"    ,"cylinder",
            "bullet_4"    ,"cylinder",
            "bullet_5"    ,"cylinder",
            "bullet_6"    ,"cylinder",
            "bullet_nose"    ,"cylinder",
            "bullet_nose_2"    ,"cylinder",
            "bullet_nose_3"    ,"cylinder",
            "bullet_nose_4"    ,"cylinder",
            "bullet_nose_5"    ,"cylinder",
            "bullet_nose_6"    ,"cylinder"
        };
    };
};
class CfgModels
{
    class Default
    {
        sections[] = {};
        sectionsInherit="";
        skeletonName = "";
    };
    class magnum_cylinder:Default
    {
        skeletonName="magnum_rotation";
        sections[]=
        {
            "cylinder"
        };
/*<potential axis>
bullet
bullet_2
bullet_3
bullet_4
bullet_5
bullet_6
bullet_nose
bullet_nose_2
bullet_nose_3
bullet_nose_4
bullet_nose_5
bullet_nose_6
camo
cylinder
cylinder_axis
nabojniceend
nabojniceend_2
nabojniceend_3
nabojniceend_4
nabojniceend_5
nabojniceend_6
nabojnicestart
nabojnicestart_2
nabojnicestart_3
nabojnicestart_4
nabojnicestart_5
nabojnicestart_6
round
zbytek
</potential axis>*/
        class Animations
        {
            class Rotate_Cylinder_Anim
            {
                type="rotation";
                source="rotate_cylinder";
                selection="cylinder";
                axis="cylinder_axis";//*probably*
                sourceAddress = loop;
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                angle0 = 0.0;//rad 0.0;
                angle1 = -6.2831855;//rad -360.0;
//                memory = true;//(default assumed)
            };
            class Rotate_Cylinder_Back_Anim
            {
                type="rotation";
                source="rotate_cylinder_back";
                selection="cylinder";
                axis="cylinder_axis";//*probably*
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                angle0 = -6.2831855;//rad -360.0;
                angle1 = 0.0;//rad 0.0;
//                memory = true;//(default assumed)
            };
            class bullet
            {
                type="hide";
                source="bullet";
                selection="bullet";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.01;
            };
            class bullet_2
            {
                type="hide";
                source="bullet_2";
                selection="bullet_2";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.01;
            };
            class bullet_3
            {
                type="hide";
                source="bullet_3";
                selection="bullet_3";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.01;
            };
            class bullet_4
            {
                type="hide";
                source="bullet_4";
                selection="bullet_4";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.01;
            };
            class bullet_5
            {
                type="hide";
                source="bullet_5";
                selection="bullet_5";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.01;
            };
            class bullet_6
            {
                type="hide";
                source="bullet_6";
                selection="bullet_6";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.01;
            };
            class bullet_nose
            {
                type="hide";
                source="bullet_nose";
                selection="bullet_nose";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.01;
            };
            class bullet_nose_2
            {
                type="hide";
                source="bullet_nose_2";
                selection="bullet_nose_2";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.01;
            };
            class bullet_nose_3
            {
                type="hide";
                source="bullet_nose_3";
                selection="bullet_nose_3";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.01;
            };
            class bullet_nose_4
            {
                type="hide";
                source="bullet_nose_4";
                selection="bullet_nose_4";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.01;
            };
            class bullet_nose_5
            {
                type="hide";
                source="bullet_nose_5";
                selection="bullet_nose_5";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.01;
            };
            class bullet_nose_6
            {
                type="hide";
                source="bullet_nose_6";
                selection="bullet_nose_6";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.01;
            };
        };//</Animations>
    };//</Modelclass>
};//</CfgModels>

спасибо но я разобрался))

Вообщем...не знаю как это работает но на модели пушки к которой я пытался это сделать ЭТО НЕ РАБОТАЛО! Думаю ну такое часто бывало, что не работало что-то, попробовал другую модель...взял модовый АК-74 и сделал примерно тоже самое....


В конфиг АК добавил строчку

 simpleHiddenSelections[] = {"Pistol_grip"};

А его model.cfg выглядит так

class CfgSkeletons
{
    class AKM
    {
        skeletonInherit = "";
        isDiscrete = 1;
        SkeletonBones[]=
        {
            "magazine"  ,"",
            "trigger"   ,"",
            "bolt"  ,"",
            "bullet", "",
            "firemode","",
            "mag_release","",
        };
    };
};
class CfgModels
{
    class Default
    {
        sections[] = {};
        sectionsInherit="";
        skeletonName = "";
    };
    class AK74:Default
    {
        skeletonName="AK107";
        sections[]=
        {
            "magazine",
            "bullet",
            "Pistol_grip",   ......РАНЬШЕ ЗДЕСЬ БЫЛ "hide_barrel"
            "zbytek",
            "camo"
        };
    }//</Modelclass>
};//</CfgModels>

Затем пошел в скрипт этого АК и скрипт теперь такой 

class AK74_1976_Base : RifleBoltLock_Base
{
    override RecoilBase SpawnRecoilObject()
    {
        return new Aks74uRecoil(this);
    }
    private void HideUnhideSelection(string selectionName, bool hide = false)
    {
        TStringArray selectionNames = new TStringArray;
        ConfigGetTextArray("simpleHiddenSelections",selectionNames);
        int selectionId = selectionNames.Find(selectionName);
        SetSimpleHiddenSelectionState(selectionId, hide);
    }
    override void EEItemAttached(EntityAI item, string slot_name)
    {  
        super.EEItemAttached(item,slot_name);
        if (item.IsKindOf("ZenitkoGrip_Base"))
        {
            HideUnhideSelection("Pistol_grip", 0);
        }
    }

    override void EEItemDetached(EntityAI item, string slot_name)
    {  
        super.EEItemDetached(item,slot_name);
        if (item.IsKindOf("ZenitkoGrip_Base"))
        {
            HideUnhideSelection("Pistol_grip", 1);
        }
    }
};

а это конфиг самой пистолетной рукоятки которая заменяла (Может пригодится кому)

class CfgPatches {
    class Pack4_att_PG {
        units[] = {"ZenitkoGrip_Base"};
        weapons[] = {};
        requiredVersion = 0.1;
        requiredAddons[] = {"DZ_Data", "DZ_Scripts"};
    };
};


class cfgVehicles {
    class Inventory_Base;   // External class reference
  
    class ZenitkoGrip_Base : Inventory_Base {
        scope = 0;
        displayName = "AKGRIP";
        descriptionShort = "AKGRIP";
        model = "Pack4\att\PG\grip.p3d";
        rotationFlags = 17;
        reversed = 0;
        weight = 130;
        itemSize[] = {1, 1};
        inventorySlot[] = {"PistolGripAK"};
        dispersionModifier = -0.000125;
        dispersionCondition = "true";
        recoilModifier[] = {0.95, 0.95, 0.95};
        swayModifier[] = {0.9, 0.9, 0.9};
        isMeleeWeapon = 1;
        hiddenSelections[] = {"camo"};      
      
        class DamageSystem {
            class GlobalHealth {
                class Health {
                    hitpoints = 250;
                    healthLevels[] = {{1.0, {"*****"}}, {0.7, {"****"}}, {0.5, {"****"}}, {0.3, {"****"}}, {0.0, {"****"}}};

                };
            };
        };     

        class MeleeModes {
            class Default {
                ammo = "MeleeLightBlunt";
                range = 1;
            };          

            class Heavy {
                ammo = "MeleeLightBlunt_Heavy";
                range = 1;
            };        

            class Sprint {
                ammo = "MeleeLightBlunt_Heavy";
                range = 2.8;
           };
        };
    };

    class zenitko3 : ZenitkoGrip_Base {
        scope = 2;
        hiddenSelectionsTextures[] = {"wHB_Pack4\att\PG\textures\base_co.paa"};    
    };
};



class CfgNonAIVehicles {
    class ProxyAttachment;  // External class reference  

    class ProxyGrip : ProxyAttachment {
        scope = 2;
        inventorySlot = "PistolGripAK";
        model = "Pack4\att\PG\grip.p3d";

    };

};

и всё работает как надо!

Изменено пользователем Alex1422 (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах





  • 0

Я тоже пытаюсь разобрать как создавать скрытые селекции в модели, но тоже не особо получается. Могу предположить, что в твоем случае дело в model.cfg. Вот как пример конфиг барабана для ванильного револьвера, как видишь тут прописаны невидимые селекшены для патронов и их параметры. По сути скрипт должен менять значение hide.

class cfgSkeletons
{
    class magnum_rotation
    {
        skeletonInherit = "";
        isDiscrete = 1;
        SkeletonBones[]=
        {
            "cylinder"    ,"",
            "bullet"    ,"cylinder",
            "bullet_2"    ,"cylinder",
            "bullet_3"    ,"cylinder",
            "bullet_4"    ,"cylinder",
            "bullet_5"    ,"cylinder",
            "bullet_6"    ,"cylinder",
            "bullet_nose"    ,"cylinder",
            "bullet_nose_2"    ,"cylinder",
            "bullet_nose_3"    ,"cylinder",
            "bullet_nose_4"    ,"cylinder",
            "bullet_nose_5"    ,"cylinder",
            "bullet_nose_6"    ,"cylinder"
        };
    };
};
class CfgModels
{
    class Default
    {
        sections[] = {};
        sectionsInherit="";
        skeletonName = "";
    };
    class magnum_cylinder:Default
    {
        skeletonName="magnum_rotation";
        sections[]=
        {
            "cylinder"
        };
/*<potential axis>
bullet
bullet_2
bullet_3
bullet_4
bullet_5
bullet_6
bullet_nose
bullet_nose_2
bullet_nose_3
bullet_nose_4
bullet_nose_5
bullet_nose_6
camo
cylinder
cylinder_axis
nabojniceend
nabojniceend_2
nabojniceend_3
nabojniceend_4
nabojniceend_5
nabojniceend_6
nabojnicestart
nabojnicestart_2
nabojnicestart_3
nabojnicestart_4
nabojnicestart_5
nabojnicestart_6
round
zbytek
</potential axis>*/
        class Animations
        {
            class Rotate_Cylinder_Anim
            {
                type="rotation";
                source="rotate_cylinder";
                selection="cylinder";
                axis="cylinder_axis";//*probably*
                sourceAddress = loop;
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                angle0 = 0.0;//rad 0.0;
                angle1 = -6.2831855;//rad -360.0;
//                memory = true;//(default assumed)
            };
            class Rotate_Cylinder_Back_Anim
            {
                type="rotation";
                source="rotate_cylinder_back";
                selection="cylinder";
                axis="cylinder_axis";//*probably*
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                angle0 = -6.2831855;//rad -360.0;
                angle1 = 0.0;//rad 0.0;
//                memory = true;//(default assumed)
            };
            class bullet
            {
                type="hide";
                source="bullet";
                selection="bullet";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.01;
            };
            class bullet_2
            {
                type="hide";
                source="bullet_2";
                selection="bullet_2";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.01;
            };
            class bullet_3
            {
                type="hide";
                source="bullet_3";
                selection="bullet_3";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.01;
            };
            class bullet_4
            {
                type="hide";
                source="bullet_4";
                selection="bullet_4";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.01;
            };
            class bullet_5
            {
                type="hide";
                source="bullet_5";
                selection="bullet_5";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.01;
            };
            class bullet_6
            {
                type="hide";
                source="bullet_6";
                selection="bullet_6";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.01;
            };
            class bullet_nose
            {
                type="hide";
                source="bullet_nose";
                selection="bullet_nose";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.01;
            };
            class bullet_nose_2
            {
                type="hide";
                source="bullet_nose_2";
                selection="bullet_nose_2";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.01;
            };
            class bullet_nose_3
            {
                type="hide";
                source="bullet_nose_3";
                selection="bullet_nose_3";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.01;
            };
            class bullet_nose_4
            {
                type="hide";
                source="bullet_nose_4";
                selection="bullet_nose_4";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.01;
            };
            class bullet_nose_5
            {
                type="hide";
                source="bullet_nose_5";
                selection="bullet_nose_5";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.01;
            };
            class bullet_nose_6
            {
                type="hide";
                source="bullet_nose_6";
                selection="bullet_nose_6";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.01;
            };
        };//</Animations>
    };//</Modelclass>
};//</CfgModels>

 

Изменено пользователем 123new
вставка кода в спец тег для его вставки (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.