Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
  • 0
berkut92

Создание рецептов для крафтов

Всем доброго дня. Хочу освоить создание новых рецептов для крафтов в игре DayZ SA. Если есть где гайд или кто может подсказать, научить, направить в нужном направлении, просьба ткнуть носом. По вопросам цены готов обсуждать

Share this post


Link to post
Share on other sites

25 answers to this question

Recommended Posts

  • 0

Всё работает всего лишь нужно было чуть-чуть подправить конфиг  и

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.


Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

 

Edited by AKuznecov (see edit history)

Share this post


Link to post
Share on other sites



  • 0

в родных скриптах игры есть примеры, по аналогии с ними и делать 😉

Иным не подскажу, опыта мало и времени

Share this post


Link to post
Share on other sites
  • 0
21 минуту назад, 123new сказал:

в родных скриптах игры есть примеры, по аналогии с ними и делать 😉

Иным не подскажу, опыта мало и времени

Пробовал посмотреть, но пока не очень разобрался. Как сам рецепт написать впринципе понятно, а вот какие ещё файлы к нему надо создать, вот этого я не знаю 

Share this post


Link to post
Share on other sites
  • 0
1 час назад, berkut92 сказал:

Пробовал посмотреть, но пока не очень разобрался. Как сам рецепт написать впринципе понятно, а вот какие ещё файлы к нему надо создать, вот этого я не знаю 

ну тока те, в которых он добавляется в родные коды и классы игры.

Share this post


Link to post
Share on other sites
  • 0
2 часа назад, berkut92 сказал:

Пробовал посмотреть, но пока не очень разобрался. Как сам рецепт написать впринципе понятно, а вот какие ещё файлы к нему надо создать, вот этого я не знаю 

Главное - сам рецепт и добавить его в общий список в PluginRecipesManager, остальное по ситуации

Share this post


Link to post
Share on other sites
  • 0

А можно чуть подробнее про список PluginRecipesManager ? Tак же интересуюсь этой темой, пытаюсь разобраться с рецептами, хотелось бы побольше крафта в игре. В скриптах я ноль )) мне это очень тяжело дается. Вот что получилось сделать разобрав некоторые

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Share this post


Link to post
Share on other sites
  • 0

@Propovednik37 PluginRecipesManager  это файл, который содержит в себе ВСЕ рецепты дейза. Есть два способа добавления рецептов.. Отредактировать ванильный (тогда не нужно регистрировать в плагине) и создать новые..
Вот пример нового рецепта
 

class CraftHatchet extends RecipeBase
{	
	override void Init()
	{
		m_Name = "Обрезать рукоятку";
		m_IsInstaRecipe = false;//should this recipe be performed instantly without animation
		m_AnimationLength = 120;//animation length in relative time units
		m_Specialty = 0.02;// value > 0 for roughness, value < 0 for precision
		
		
		//conditions
		m_MinDamageIngredient[0] = -1;//-1 = disable check
		m_MaxDamageIngredient[0] = 3;//-1 = disable check
		
		m_MinQuantityIngredient[0] = 1;//-1 = disable check
		m_MaxQuantityIngredient[0] = -1;//-1 = disable check
		
		m_MinDamageIngredient[1] = -1;//-1 = disable check
		m_MaxDamageIngredient[1] = 3;//-1 = disable check
		
		m_MinQuantityIngredient[1] = 1;//-1 = disable check
		m_MaxQuantityIngredient[1] = -1;//-1 = disable check
		//----------------------------------------------------------------------------------------------------------------------
		
		//INGREDIENTS
		//ingredient 1
		InsertIngredient(0,"Hacksaw");//you can insert multiple ingredients this way

		m_IngredientAddHealth[0] = -20;// 0 = do nothing
		m_IngredientSetHealth[0] = -1; // -1 = do nothing
		m_IngredientAddQuantity[0] = -1;// 0 = do nothing
		m_IngredientDestroy[0] = false;//true = destroy, false = do nothing
		m_IngredientUseSoftSkills[0] = false;// set 'true' to allow modification of the values by softskills on this ingredient
		
		//ingredient 2
		InsertIngredient(1,"FirefighterAxe");//you can insert multiple ingredients this way
		InsertIngredient(1,"FirefighterAxe_Black");//you can insert multiple ingredients this way
        InsertIngredient(1,"FirefighterAxe_Green");//you can insert multiple ingredients this way

		m_IngredientAddHealth[1] = 0;// 0 = do nothing
		m_IngredientSetHealth[1] = -1; // -1 = do nothing
		m_IngredientAddQuantity[1] = 0;// 0 = do nothing
		m_IngredientDestroy[1] = true;// false = do nothing
		m_IngredientUseSoftSkills[1] = false;// set 'true' to allow modification of the values by softskills on this ingredient
		//----------------------------------------------------------------------------------------------------------------------
		
		//result1
		AddResult("Hatchet");//add results here

		m_ResultSetFullQuantity[0] = false;//true = set full quantity, false = do nothing
		m_ResultSetQuantity[0] = -1;//-1 = do nothing
		m_ResultSetHealth[0] = -1;//-1 = do nothing
		m_ResultInheritsHealth[0] = -1;// (value) == -1 means do nothing; a (value) >= 0 means this result will inherit health from ingredient number (value);(value) == -2 means this result will inherit health from all ingredients averaged(result_health = combined_health_of_ingredients / number_of_ingredients)
		m_ResultInheritsColor[0] = -1;// (value) == -1 means do nothing; a (value) >= 0 means this result classname will be a composite of the name provided in AddResult method and config value "color" of ingredient (value)
		m_ResultToInventory[0] = -2;//(value) == -2 spawn result on the ground;(value) == -1 place anywhere in the players inventory, (value) >= 0 means switch position with ingredient number(value)
		m_ResultUseSoftSkills[0] = false;// set 'true' to allow modification of the values by softskills on this result
		m_ResultReplacesIngredient[0] = -1;// value == -1 means do nothing; a value >= 0 means this result will transfer item propertiesvariables, attachments etc.. from an ingredient value
	}
		override bool CanDo(ItemBase ingredients[], PlayerBase player)//final check for recipe's validity
	{
		return true;
	}

	override void Do(ItemBase ingredients[], PlayerBase player,array<ItemBase> results, float specialty_weight)//gets called upon recipe's completion
	{
		Debug.Log("Recipe Do method called","recipes");
	}
};

А вот как он регистрируется  в плагине
 

modded class PluginRecipesManager 
{
    override void RegisterRecipies()
    {
        super.RegisterRecipies();
        RegisterRecipe(new CraftHatchet);
    }
};

 

Share this post


Link to post
Share on other sites
  • 0
6 минут назад, Verum сказал:

@Propovednik37 PluginRecipesManager  это файл, который содержит в себе ВСЕ рецепты дейза. Есть два способа добавления рецептов.. Отредактировать ванильный (тогда не нужно регистрировать в плагине) и создать новые..
Вот пример нового рецепта
 

class CraftHatchet extends RecipeBase { override void Init() { m_Name = "Обрезать рукоятку"; m_IsInstaRecipe = false;//should this recipe be performed instantly without animation m_AnimationLength = 120;//animation length in relative time units m_Specialty = 0.02;// value > 0 for roughness, value < 0 for precision //conditions m_MinDamageIngredient[0] = -1;//-1 = disable check m_MaxDamageIngredient[0] = 3;//-1 = disable check m_MinQuantityIngredient[0] = 1;//-1 = disable check m_MaxQuantityIngredient[0] = -1;//-1 = disable check m_MinDamageIngredient[1] = -1;//-1 = disable check m_MaxDamageIngredient[1] = 3;//-1 = disable check m_MinQuantityIngredient[1] = 1;//-1 = disable check m_MaxQuantityIngredient[1] = -1;//-1 = disable check //---------------------------------------------------------------------------------------------------------------------- //INGREDIENTS //ingredient 1 InsertIngredient(0,"Hacksaw");//you can insert multiple ingredients this way m_IngredientAddHealth[0] = -20;// 0 = do nothing m_IngredientSetHealth[0] = -1; // -1 = do nothing m_IngredientAddQuantity[0] = -1;// 0 = do nothing m_IngredientDestroy[0] = false;//true = destroy, false = do nothing m_IngredientUseSoftSkills[0] = false;// set 'true' to allow modification of the values by softskills on this ingredient //ingredient 2 InsertIngredient(1,"FirefighterAxe");//you can insert multiple ingredients this way InsertIngredient(1,"FirefighterAxe_Black");//you can insert multiple ingredients this way InsertIngredient(1,"FirefighterAxe_Green");//you can insert multiple ingredients this way m_IngredientAddHealth[1] = 0;// 0 = do nothing m_IngredientSetHealth[1] = -1; // -1 = do nothing m_IngredientAddQuantity[1] = 0;// 0 = do nothing m_IngredientDestroy[1] = true;// false = do nothing m_IngredientUseSoftSkills[1] = false;// set 'true' to allow modification of the values by softskills on this ingredient //---------------------------------------------------------------------------------------------------------------------- //result1 AddResult("Hatchet");//add results here m_ResultSetFullQuantity[0] = false;//true = set full quantity, false = do nothing m_ResultSetQuantity[0] = -1;//-1 = do nothing m_ResultSetHealth[0] = -1;//-1 = do nothing m_ResultInheritsHealth[0] = -1;// (value) == -1 means do nothing; a (value) >= 0 means this result will inherit health from ingredient number (value);(value) == -2 means this result will inherit health from all ingredients averaged(result_health = combined_health_of_ingredients / number_of_ingredients) m_ResultInheritsColor[0] = -1;// (value) == -1 means do nothing; a (value) >= 0 means this result classname will be a composite of the name provided in AddResult method and config value "color" of ingredient (value) m_ResultToInventory[0] = -2;//(value) == -2 spawn result on the ground;(value) == -1 place anywhere in the players inventory, (value) >= 0 means switch position with ingredient number(value) m_ResultUseSoftSkills[0] = false;// set 'true' to allow modification of the values by softskills on this result m_ResultReplacesIngredient[0] = -1;// value == -1 means do nothing; a value >= 0 means this result will transfer item propertiesvariables, attachments etc.. from an ingredient value } override bool CanDo(ItemBase ingredients[], PlayerBase player)//final check for recipe's validity { return true; } override void Do(ItemBase ingredients[], PlayerBase player,array<ItemBase> results, float specialty_weight)//gets called upon recipe's completion { Debug.Log("Recipe Do method called","recipes"); } };


class CraftHatchet extends RecipeBase
{	
	override void Init()
	{
		m_Name = "Обрезать рукоятку";
		m_IsInstaRecipe = false;//should this recipe be performed instantly without animation
		m_AnimationLength = 120;//animation length in relative time units
		m_Specialty = 0.02;// value > 0 for roughness, value < 0 for precision
		
		
		//conditions
		m_MinDamageIngredient[0] = -1;//-1 = disable check
		m_MaxDamageIngredient[0] = 3;//-1 = disable check
		
		m_MinQuantityIngredient[0] = 1;//-1 = disable check
		m_MaxQuantityIngredient[0] = -1;//-1 = disable check
		
		m_MinDamageIngredient[1] = -1;//-1 = disable check
		m_MaxDamageIngredient[1] = 3;//-1 = disable check
		
		m_MinQuantityIngredient[1] = 1;//-1 = disable check
		m_MaxQuantityIngredient[1] = -1;//-1 = disable check
		//----------------------------------------------------------------------------------------------------------------------
		
		//INGREDIENTS
		//ingredient 1
		InsertIngredient(0,"Hacksaw");//you can insert multiple ingredients this way

		m_IngredientAddHealth[0] = -20;// 0 = do nothing
		m_IngredientSetHealth[0] = -1; // -1 = do nothing
		m_IngredientAddQuantity[0] = -1;// 0 = do nothing
		m_IngredientDestroy[0] = false;//true = destroy, false = do nothing
		m_IngredientUseSoftSkills[0] = false;// set 'true' to allow modification of the values by softskills on this ingredient
		
		//ingredient 2
		InsertIngredient(1,"FirefighterAxe");//you can insert multiple ingredients this way
		InsertIngredient(1,"FirefighterAxe_Black");//you can insert multiple ingredients this way
        InsertIngredient(1,"FirefighterAxe_Green");//you can insert multiple ingredients this way

		m_IngredientAddHealth[1] = 0;// 0 = do nothing
		m_IngredientSetHealth[1] = -1; // -1 = do nothing
		m_IngredientAddQuantity[1] = 0;// 0 = do nothing
		m_IngredientDestroy[1] = true;// false = do nothing
		m_IngredientUseSoftSkills[1] = false;// set 'true' to allow modification of the values by softskills on this ingredient
		//----------------------------------------------------------------------------------------------------------------------
		
		//result1
		AddResult("Hatchet");//add results here

		m_ResultSetFullQuantity[0] = false;//true = set full quantity, false = do nothing
		m_ResultSetQuantity[0] = -1;//-1 = do nothing
		m_ResultSetHealth[0] = -1;//-1 = do nothing
		m_ResultInheritsHealth[0] = -1;// (value) == -1 means do nothing; a (value) >= 0 means this result will inherit health from ingredient number (value);(value) == -2 means this result will inherit health from all ingredients averaged(result_health = combined_health_of_ingredients / number_of_ingredients)
		m_ResultInheritsColor[0] = -1;// (value) == -1 means do nothing; a (value) >= 0 means this result classname will be a composite of the name provided in AddResult method and config value "color" of ingredient (value)
		m_ResultToInventory[0] = -2;//(value) == -2 spawn result on the ground;(value) == -1 place anywhere in the players inventory, (value) >= 0 means switch position with ingredient number(value)
		m_ResultUseSoftSkills[0] = false;// set 'true' to allow modification of the values by softskills on this result
		m_ResultReplacesIngredient[0] = -1;// value == -1 means do nothing; a value >= 0 means this result will transfer item propertiesvariables, attachments etc.. from an ingredient value
	}
		override bool CanDo(ItemBase ingredients[], PlayerBase player)//final check for recipe's validity
	{
		return true;
	}

	override void Do(ItemBase ingredients[], PlayerBase player,array<ItemBase> results, float specialty_weight)//gets called upon recipe's completion
	{
		Debug.Log("Recipe Do method called","recipes");
	}
};

А вот как он регистрируется  в плагине
 

modded class PluginRecipesManager { override void RegisterRecipies() { super.RegisterRecipies(); RegisterRecipe(new CraftHatchet); } };


modded class PluginRecipesManager 
{
    override void RegisterRecipies()
    {
        super.RegisterRecipies();
        RegisterRecipe(new CraftHatchet);
    }
};

 

Спасибо, я видел этот код в одном из модов где были рецепты но не понимал для чего он, и тоже его добавил, наверно что то не так делаю при упаковке в пбо. 

Share this post


Link to post
Share on other sites
  • 0

Тогда остался последний вопрос, где лежит PluginRecipesManager?

Share this post


Link to post
Share on other sites
  • 0

Всем большое спасибо за помощь, вроде как разобрался, буду пробовать

Share this post


Link to post
Share on other sites
  • 0

И снова здравствуйте господа. Пробовал я тут добавить новый рецепт и вроде всё правильно, но нифига не работает. Подскажите что может быть? Файлы прилагаю.

 

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Share this post


Link to post
Share on other sites
  • 0

Спавню 10 металла и плоски, совмещаю одно с другим, а желтая рамка не загорается и действие тоже

Share this post


Link to post
Share on other sites
  • 0

@berkut92 
ну я вижу единственную проблему... тут
 

modded class PluginRecipesManager {
 
    void RegisterRecipies() 
    {
        super.RegisterRecipies();
        
		RegisterRecipe(new CraftBarrel);
	}
}

Пропиши вот так
 

modded class PluginRecipesManager {
 
    override void RegisterRecipies()
    {
        super.RegisterRecipies();
        
		RegisterRecipe(new CraftBarrel);
	}
}

Забыл указать что перезаписываешь RegisterRecipies()

@berkut92 
и вот здесь
 

class CfgPatches {
	class craft {
		units[] = {};
		weapons[] = {};
		requiredVersion = 0.1;
		requiredAddons[] = {"DZ_Data"};
	};
};

Добавь
 

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

Ты не указал, что используешь дефолтный "DZ_Scripts"

Share this post


Link to post
Share on other sites
  • 0

Внёс правки на которые указали, но эффекта это дало. Есть ещё мысли?

Share this post


Link to post
Share on other sites
  • 0

@berkut92  Блин, в целом всё правильно... Но у меня уже почти 12 ночи.. могу просто что то пропустить.. может кто ещё глянет.. самому уже интересно, что не так.

 

Share this post


Link to post
Share on other sites
  • 0

Не знаю, может не правильно запускаю скрипты. Я делаю через клиент-серверный мод

Share this post


Link to post
Share on other sites
  • 0
3 часа назад, berkut92 сказал:

Не знаю, может не правильно запускаю скрипты. Я делаю через клиент-серверный мод

 

modded class PluginRecipesManager {
 
    void RegisterRecipies() 
    {
        super.RegisterRecipies();
        
		RegisterRecipe(new CraftBarrel);
	}
}

Тебе ж вроде уже тут отписывали - перед void добавь слово override как минимум. Больше ошибок беглым взглядом не увидел

Share this post


Link to post
Share on other sites
  • 0

Ну вот вы беглым взглядом и не увидели что даже после внесения правок не работает

Edited by berkut92 (see edit history)

Share this post


Link to post
Share on other sites
  • 0

Вот смотрю в конфиге, кроме как местами CfgMods и CfgPatches больше отличий не нахожу. Что конкретно подправили? И в рецепте разные цвета нельзя разве в result 1,2,3,4 записать?

Share this post


Link to post
Share on other sites
  • 0

В конфиге местами может быть разный порядок будь то класс CfgPatches будет в конце а в начале какой нибудь класс CfgVehicles а CfgMods вообще между ними конфигу пофигу как читать главное чтобы все нужные классы были на местах и главное чтобы не было пропущенных этих знаков {} ; = "" а то будет ошибка 100%
 И еще когда есть класс дефов то путь до них всегда с обратным / а не наоборот  с таким \ конфиг его поймет и игра тоже, но скрипт не сработает так как не понимает такого пути. 
Если будет результат 1 или 2 или 3 или 4 то из 1 плоскогубцев и 10 металла на выходе получится 4 бочки разного цвета, что вообще-то бредово выглядит как из 10 штук металла получилось 4 бочки. А так у игрока есть и будет выбор какую бочку и какого цвета ему хочется сделать. Результат это просто набор предметов на выходе. Так как примеру из ванильного крафта колючей проволоки и плоскогубцев можно сделать не 1 металлическую проволоку а 2, и всего лишь для этого надо будет продублировать результат 1 раз и заменить цифру 0 на выходе в строчках результата[0] на 1

А что касаемо почему не было регистрации рецепта крафта бочки ответ прост:
То что было

modded class PluginRecipesManager {
 
    void RegisterRecipies() 
    {
        super.RegisterRecipies();
        
		RegisterRecipe(new CraftBarrel);
	}
}

И что надо было сделать:

modded class PluginRecipesManager extends PluginBase
{
	void RegisterRecipies()
	{
		super.RegisterRecipies();
		RegisterRecipe(new CraftBarrel);
	}	
};

 

Edited by AKuznecov (see edit history)

Share this post


Link to post
Share on other sites
  • 0

Логику про 1234 понял. Ошибки тоже увидел, разобрал. Большое спасибо за помощь

Share this post


Link to post
Share on other sites
  • 0

Уважаемые знатоки, хочу прописать в крафт сыворотку крови животного для фракции ученых. Для этого в идеале нужно потыкать тушку животного шприцем. однако, есть проблемка - как заставить шприц взаимодействовать с тушкой? 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.