Jump to content
DAYZ-CODE.RU - Создай свой игровой сервер

Создание нового крафта


 Share

Recommended Posts

В общем есть бесплатный мод на C4, хочется переделать его маленько.
-Создать новый рецепт крафта, чтобы взрывчатку в инвентаре можно было объединить с детонатором и получилась взрывчатка с детонатором.

Если есть пример с пояснением буду благодарен.

 

Link to comment
Share on other sites

  • 3 months later...
В 28.03.2023 в 17:43, alex_good_kaban сказал:

@RedBull Возьми за основу этот мод CraftingRecipes и отредактируй под себя.

Доброго дня. Освоил как сделать крафт из 2х ингредиентов. Вроде получается работает. Хочу попробовать освоить крафт из 3+ ингредиентов. Не шаришь как прописать проверку того что нужно в инвентаре? разобрал один мод там чисто крафт. Его закинул в оффлайн не работает. не пойму пока конфиг может какой нужен другой

 

Link to comment
Share on other sites

@dikov_andrei
Чтобы использовать крафт из 3 вещей нкжно писать скрипт. Добавляешь просто еще InsertIngredient(2). И в void Do работаешь со своими 3 предметами:

Please Log in or Register to see this: Code

Там дальше уже сам что придумаешь

Edited by alex_good_kaban
Link to comment
Share on other sites

В 28.03.2023 в 12:56, RedBull сказал:

В общем есть бесплатный мод на C4, хочется переделать его маленько.
-Создать новый рецепт крафта, чтобы взрывчатку в инвентаре можно было объединить с детонатором и получилась взрывчатка с детонатором.

Если есть пример с пояснением буду благодарен.

 

Это украденный мод скорее всего.

Link to comment
Share on other sites

@alex_good_kaban Я в скриптах прям очень совсем ноль 😄 т.е смотри у меня был крафт из 2 ингредиентов. я должен прописать то что ты написал перед тем что имею? и добавить дальше  ингредиент 2 ? Если прям совсем все плохо наверное не стоит да сюда лезть ? )))

class NewCraft_LongHorn extends RecipeBase
 
ItemBase item1 = ItemBase.Cast(ingredient[0]);
ItemBase item2 = ItemBase.Cast(ingredient[1]);
ItemBase item3 = ItemBase.Cast(ingredient[2]);
If (условие)
    float itemQuantity = item1.GetQuantity(); //узнаешь объем предмета
    float itemMaxQuantity = item1.GetQuantityMax(); //узнаешь максимальный объем предмета
    float removedAmount = (itemQuantity) * 0.3; //твои вычисления
    item1.Delete(); //удалил 1 предмет
    item2.Delete(); //удалил 2 предмет
    item3.AddQuantity(-removedAmount); //Добавил объем 3 предмету
    item3.AddHealth("", "Health", movedHealt); //Добавил HP 3 предмету
{      
   override void Init()
   {        
   m_Name ="Смастерить лонгхорн";      
 
   m_IsInstaRecipe = false;        
   m_AnimationLength = 1;          
   m_Specialty = -0.1;              
 
   m_MinDamageIngredient[0] = -1;      
   m_MaxDamageIngredient[0] = 3;                
   m_MinQuantityIngredient[0] = 1;      
   m_MaxQuantityIngredient[0] = -1;    
 
   m_MinDamageIngredient[1] = -1;      
   m_MaxDamageIngredient[1] = 3;                
   m_MinQuantityIngredient[1] = 1;      
   m_MaxQuantityIngredient[1] = -1;
 
   m_MinDamageIngredient[2] = -1;      
   m_MaxDamageIngredient[2] = 3;                
   m_MinQuantityIngredient[2] = 1;      
   m_MaxQuantityIngredient[2] = -1;
 
   InsertIngredient(0,"FireWood");                      
 
   m_IngredientAddHealth[0] = 0;        
   m_IngredientSetHealth[0] = -1;      
   m_IngredientAddQuantity[0] = -1;    
   m_IngredientDestroy[0] = true;      
   m_IngredientUseSoftSkills[0] = false;                
 
   InsertIngredient(1,"CombatKnife");              
 
   m_IngredientAddHealth[1] = -20;      
   m_IngredientSetHealth[1] = -1;      
   m_IngredientAddQuantity[1] = -1;    
   m_IngredientDestroy[1] = false;      
   m_IngredientUseSoftSkills[1] = false;
 
   InsertIngredient(2,"Pipe");              
 
   m_IngredientAddHealth[1] = 0;        
   m_IngredientSetHealth[1] = -1;      
   m_IngredientAddQuantity[1] = -1;    
   m_IngredientDestroy[1] = true;      
   m_IngredientUseSoftSkills[1] = false;
 
   AddResult("LongHorn");      
 
   m_ResultSetFullQuantity[0] = false;      
   m_ResultSetQuantity[0] = -1;    
   m_ResultSetHealth[0] = -1;      
   m_ResultInheritsHealth[0] =-2;      
   m_ResultInheritsColor[0] = -1;      
   m_ResultToInventory[0] = -2;    
   m_ResultUseSoftSkills[0] = false;        
   m_ResultReplacesIngredient[0] = -1;
 
   }    
   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");  
   }
};
 
modded class PluginRecipesManagerBase
{  
   override void RegisterRecipies()
   {        
   super.RegisterRecipies();        
   RegisterRecipe(new NewCraft_LongHorn);  
   }    
}
Link to comment
Share on other sites

12 часов назад, alex_good_kaban сказал:

И в void Do работаешь со своими 3 предметами:

@dikov_andrei Я же написал где все это ты должен прописывать (тут - override void Do(ItemBase ingredients[], PlayerBase player,array<ItemBase> results, float specialty_weight)  ), и то что я тебе написал это просто команды они не являются полноценным скриптом

Я тоже не скриптер но по образцам научиться можно.

  • Like 1
Link to comment
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
 Share

×
×
  • Create New...