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

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

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

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

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

Всем доброго времени суток. Пишу рецепт на спаренный магазин. Как сделать так, что бы спарка наследовала количество патронов от обоих ингредиентов?. Как ни кручу, 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");
    }
};
 

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


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

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

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

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

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

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


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

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

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


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

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

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


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

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

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

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

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


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

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

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

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


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

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

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

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


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

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

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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

Поддержка