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
Mad-jek

Рецепт крафта

Всем доброго времени суток. Пишу рецепт на спаренный магазин. Как сделать так, что бы спарка наследовала количество патронов от обоих ингредиентов?. Как ни кручу, 30 получается. При двух магазинах по 30


class CraftMJ_Double101 extends RecipeBase
{    
    override void Init()
    {
        m_Name = "Сделать спаренный магазин";
        m_IsInstaRecipe = false;//should this recipe be performed instantly without animation
        m_AnimationLength = 2;//animation length in relative time units
        m_Specialty = -0.01;// value > 0 for roughness, value < 0 for precision
        
        
        //conditions
        m_MinDamageIngredient[0] = -1;//-1 = disable check
        m_MaxDamageIngredient[0] = -1;//-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] = -1;//-1 = disable check
        
        m_MinQuantityIngredient[1] = -1;//-1 = disable check
        m_MaxQuantityIngredient[1] = -1;//-1 = disable check
        //----------------------------------------------------------------------------------------------------------------------
        
        //INGREDIENTS
        //ingredient 1
        InsertIngredient(0,"MJ_Mag_101");
    
        m_IngredientAddHealth[0] = 0;// 0 = do nothing
        m_IngredientSetHealth[0] = -1; // -1 = do nothing
        m_IngredientAddQuantity[0] = 1;// 0 = do nothing
        m_IngredientDestroy[0] = true;//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,"MJ_Mag101_Tape");//you can insert multiple ingredients this way
        
        m_IngredientAddHealth[1] = 0;// 0 = do nothing
        m_IngredientSetHealth[1] = -1; // -1 = do nothing
        m_IngredientAddQuantity[1] = -50;// 0 = do nothing
        m_IngredientDestroy[1] = false;// false = do nothing
        m_IngredientUseSoftSkills[1] = false;// set 'true' to allow modification of the values by softskills on this ingredient
        //----------------------------------------------------------------------------------------------------------------------
        
        //result4
        AddResult("MJ_Double101");//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] = 0;// (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] = true;// set 'true' to allow modification of the values by softskills on this result
        m_ResultReplacesIngredient[0] = 0;// 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");
    }
};
 

Share this post


Link to post
Share on other sites

7 answers to this question

Recommended Posts

  • 0
2 часа назад, Mad-jek сказал:

В конфиге указано 60 патронов. Но при этом, во время крафта, больше 30 не выходит

а админкой ты спавнишь сколько патрон получается ? ты про общую вместимость или сколько получается заряжено патрон в конечном магазине? если про то сколько заряжено будет патрон то у тебя идет  m_ResultReplacesIngredient[0] = 0; типо итоговый забирает с InsertIngredient(0,"MJ_Mag_101"); магазина.

Share this post


Link to post
Share on other sites



  • 0
override void Init()
	{   
		m_Name = ""; //Название-действие
		m_IsInstaRecipe = false;   //Если этот рецепт будет выполнен мгновенно без анимации
		m_AnimationLength = 2;     //Длина анимации в относительных единицах времени 
		m_Specialty = 0.02;        // Значение> 0 для шероховатости, значение <0 для точности
		
		//Условия-затраты

		//условия для первого ингредиента
		m_MinDamageIngredient[0] = -1;//-1 = Минимальное состояние (поношено, повреждено) при котором будет появлятся действие крафта
		m_MaxDamageIngredient[0] = 3;//-1 = Максимальное состояние (поношено, повреждено) при котором будет появлятся действие крафта
		
		m_MinQuantityIngredient[0] = 1;//-1 = Минимальное количество предмета в стаке
		m_MaxQuantityIngredient[0] = -1;//-1 = Максимальное количество предмета в стаке


		//условия для второго ингредиента, аналогично первому
		m_MinDamageIngredient[1] = -1;//-1 = Минимальное состояние (поношено, повреждено) при котором будет появлятся действие крафта
		m_MaxDamageIngredient[1] = 3;//-1 = Максимальное состояние (поношено, повреждено) при котором будет появлятся действие крафта
		
		m_MinQuantityIngredient[1] = 2;//-1 = Минимальное количество предмета в стаке
		m_MaxQuantityIngredient[1] = -1;//-1 = Максимальное количество предмета в стаке
		//----------------------------------------------------------------------------------------------------------------------
		
		//Ингредиенты #1
		//ИСПОЛЬЗУЕМЫЙ ПРЕДМЕТ
		InsertIngredient(0,"");      //Вы можете вставить несколько ингредиентов таким образом
		
		m_IngredientAddHealth[0] = 0;// 0 = ничего не делать 
		m_IngredientSetHealth[0] = 0; // -1 = ничего не делать
		m_IngredientAddQuantity[0] = 0;// 0 = ничего не делать
		m_IngredientDestroy[0] = false;//true = разобрать, false = ничего не делать (удаляется индегриент после крафта.)
		m_IngredientUseSoftSkills[0] = true;// установите значение "true", чтобы разрешить изменение значений softskills для этого ингредиента
		
		//Ингредиенты #2
		//ИСПОЛЬЗУЕМЫЙ ПРЕДМЕТ
		InsertIngredient(1,"");      //Вы можете вставить несколько ингредиентов таким образом
		
		
		//ПОСЛЕДСВИЯ ПРЕДМЕТА
		m_IngredientAddHealth[1] = 0;// Добавляет хп после действия
		m_IngredientSetHealth[1] = -1; // Ставит определенное количество хп после действия
		m_IngredientAddQuantity[1] = 0;// Добавляет количество предметов в стак
		m_IngredientDestroy[1] = true;// Удаляется индегриент после крафта
		m_IngredientUseSoftSkills[1] = false;// Добавляет очки опыта после действия (эта механика либо не работает, либо криво работает, не помню)
		//----------------------------------------------------------------------------------------------------------------------
		
		//РЕЗУЛЬТАТ 
		AddResult(""); //Добавить результаты здесь

		m_ResultSetFullQuantity[0] = false;//true = Установите полное количество, false = ничего не делать
		m_ResultSetQuantity[0] = 1;//-1 = ничего не делать
		m_ResultSetHealth[0] = -1;//-1 = ничего не делать
		m_ResultInheritsHealth[0] = -1;// (value) == -1 значит сделать ничего; a (value) >= 0 означает, что этот результат наследует здоровье от числа ингредиента (value);(value) == -2 означает, что этот результат наследует здоровье со всех в среднем ингредиентами(result_health = combined_health_of_ingredients / number_of_ingredients)
		m_ResultInheritsColor[0] = -1;// (value) == -1 значит сделать ничего; a (value) >= 0 означает, что это имя класса результата станет композитом имени, указанного в добавлении метода результатов и значение конфигурации. "color" ингредиента (value)
		m_ResultToInventory[0] = -2;//(value) == -2 spawn result on the ground;(value) == -1 Место в любом месте инвентаризации игроков, (value) >= 0 означает положение переключения с номером ингредиента(value)
		m_ResultUseSoftSkills[0] = false;// установить 'true' Разрешить модификацию значений Softskills на этом результате
		m_ResultReplacesIngredient[0] = -1;// value == -1 значит сделать ничего; a value >= 0 означает, что этот результат будет передавать элемент PropertiesVarible, вложения и т.д.. из значения ингредиента
	}
	override bool CanDo(ItemBase ingredients[], PlayerBase player)//Окончательная проверка действительности рецепта
	{
		return true;
	}

	override void Do(ItemBase ingredients[], PlayerBase player,array<ItemBase> results, float specialty_weight)//призывает к завершению рецепта
	{
		Debug.Log("Recipe Do method called","recipes");
	}
};

Почитай, может быть тебе будет полезно, мое мнение - нужно поиграться с условиями для ингредиентов, надеюсь, найдется пользователь, который шарит за это, и поможет тебе, я особо не помощник)

Share this post


Link to post
Share on other sites
  • 0

В конфиге своего "MJ_Double101" укажи что в нем будет 60 патрон. Это самое простое и быстрое. В таком ванильном крафте нет свойства наследовать количество патрон внутри. ты делаешь 1 + 2 = 3. где 3 это отдельный предмет со своими свойствами прописанными в конфиге.

Share this post


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

В конфиге своего "MJ_Double101" укажи что в нем будет 60 патрон. Это самое простое и быстрое. В таком ванильном крафте нет свойства наследовать количество патрон внутри. ты делаешь 1 + 2 = 3. где 3 это отдельный предмет со своими свойствами прописанными в конфиге.

В конфиге указано 60 патронов. Но при этом, во время крафта, больше 30 не выходит

Edited by Mad-jek (see edit history)

Share this post


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

а админкой ты спавнишь сколько патрон получается ? ты про общую вместимость или сколько получается заряжено патрон в конечном магазине? если про то сколько заряжено будет патрон то у тебя идет  m_ResultReplacesIngredient[0] = 0; типо итоговый забирает с InsertIngredient(0,"MJ_Mag_101"); магазина.

О, уже интересная информация. Спасибо. А можно сделать так, чтоб он от обоих ингредиентов брал количество?

Share this post


Link to post
Share on other sites
  • 0
12 минут назад, Mad-jek сказал:

О, уже интересная информация. Спасибо. А можно сделать так, чтоб он от обоих ингредиентов брал количество?

если в конфиге твоего "MJ_Double101" написана вместительность 60 патрон то после крафта она такой и должна быть. Поставь вот здесь m_ResultReplacesIngredient[0] = 0; = -1; типо он не наследует ничего. и проверь будет ли 60 вместимость в итоге. А по поводу заполенности я не подскажу. здесь в ванильном крафте нет такого чтобы наследовалась заполненность от обоих ингредиентов. Это нужно дописывать. я в скриптах не шарю.

Share this post


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

если в конфиге твоего "MJ_Double101" написана вместительность 60 патрон то после крафта она такой и должна быть. Поставь вот здесь m_ResultReplacesIngredient[0] = 0; = -1; типо он не наследует ничего. и проверь будет ли 60 вместимость в итоге. А по поводу заполенности я не подскажу. здесь в ванильном крафте нет такого чтобы наследовалась заполненность от обоих ингредиентов. Это нужно дописывать. я в скриптах не шарю.

Спасибо большое, добрый человек 

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.