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

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

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

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

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

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

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

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


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

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

  • 0

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

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


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

 

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

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


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

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0
21 минуту назад, 123new сказал:

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

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0
1 час назад, berkut92 сказал:

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0
2 часа назад, berkut92 сказал:

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

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

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


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

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
  • 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);
    }
};

 

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


Ссылка на сообщение
Поделиться на других сайтах
  • 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);
    }
};

 

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

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


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

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

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


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

Там же в папке с рецептами. 

Recipes\recipes\PluginRecipesManager.c

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

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


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

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

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


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

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

 

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

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

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


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

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

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


Ссылка на сообщение
Поделиться на других сайтах
  • 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"

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


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

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

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


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

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

 

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


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

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

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0
3 часа назад, berkut92 сказал:

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

 

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

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

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


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

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

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

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


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

@berkut92 Скинь файлы... после внесённых правок

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


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

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

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


Ссылка на сообщение
Поделиться на других сайтах
  • 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);
	}	
};

 

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

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


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

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

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


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

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

 

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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

Поддержка