DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
CraftFireplace.c
См. документацию.
1class CraftFireplace extends RecipeBase
2{
3 override void Init()
4 {
5 m_Name = "#STR_CraftFireplace0";
6 m_IsInstaRecipe = false;//should this recipe be performed instantly without animation
7 m_AnimationLength = 1;//animation length in relative time units
8 m_Specialty = 0.02;// value > 0 for roughness, value < 0 for precision
9
10
11 //conditions
12 m_MinDamageIngredient[0] = -1;//-1 = disable check
13 m_MaxDamageIngredient[0] = 3;//-1 = disable check
14
15 m_MinQuantityIngredient[0] = 1;//-1 = disable check
16 m_MaxQuantityIngredient[0] = -1;//-1 = disable check
17
18 m_MinDamageIngredient[1] = -1;//-1 = disable check
19 m_MaxDamageIngredient[1] = 3;//-1 = disable check
20
21 m_MinQuantityIngredient[1] = 1;//-1 = disable check
22 m_MaxQuantityIngredient[1] = -1;//-1 = disable check
23 //----------------------------------------------------------------------------------------------------------------------
24
25 //INGREDIENTS
26 //ingredient 1
27 InsertIngredient(0,"WoodenStick");//you can insert multiple ingredients this way
28 InsertIngredientEx(0,"Firewood" , "FireplaceDeploy_firewood");//you can insert multiple ingredients this way
29 InsertIngredient(0,"Rag");//you can insert multiple ingredients this way
30 InsertIngredient(0,"BandageDressing");//you can insert multiple ingredients this way
31 InsertIngredient(0,"Paper");//you can insert multiple ingredients this way
32 InsertIngredient(0,"ItemBook");//you can insert multiple ingredients this way
33 InsertIngredient(0,"Bark_Birch");//you can insert multiple ingredients this way
34 InsertIngredient(0,"Bark_Oak");//you can insert multiple ingredients this way
35
36 m_IngredientAddHealth[0] = 0;// 0 = do nothing
37 m_IngredientSetHealth[0] = -1; // -1 = do nothing
38 m_IngredientAddQuantity[0] = 0;// 0 = do nothing
39 m_IngredientDestroy[0] = false;//true = destroy, false = do nothing
40 m_IngredientUseSoftSkills[0] = false;// set 'true' to allow modification of the values by softskills on this ingredient
41
42 //ingredient 2
43 InsertIngredientEx(1,"WoodenStick", "FireplaceDeploy");//you can insert multiple ingredients this way
44 InsertIngredientEx(1,"Firewood" , "FireplaceDeploy_firewood");//you can insert multiple ingredients this way
45 InsertIngredientEx(1,"Rag", "FireplaceDeploy");//you can insert multiple ingredients this way
46 InsertIngredientEx(1,"BandageDressing", "FireplaceDeploy");//you can insert multiple ingredients this way
47 InsertIngredientEx(1,"Paper", "FireplaceDeploy");//you can insert multiple ingredients this way
48 InsertIngredientEx(1,"GiftWrapPaper", "FireplaceDeploy");//you can insert multiple ingredients this way
49 InsertIngredientEx(1,"ItemBook", "FireplaceDeploy");//you can insert multiple ingredients this way
50 InsertIngredientEx(1,"Bark_Birch", "FireplaceDeploy");//you can insert multiple ingredients this way
51 InsertIngredientEx(1,"Bark_Oak", "FireplaceDeploy");//you can insert multiple ingredients this way
52 InsertIngredientEx(1,"EyeMask_ColorBase", "FireplaceDeploy");//you can insert multiple ingredients this way
53
54 m_IngredientAddHealth[1] = 0;// 0 = do nothing
55 m_IngredientSetHealth[1] = -1; // -1 = do nothing
56 m_IngredientAddQuantity[1] = 0;// 0 = do nothing
57 m_IngredientDestroy[1] = false;// false = do nothing
58 m_IngredientUseSoftSkills[1] = false;// set 'true' to allow modification of the values by softskills on this ingredient
59 //----------------------------------------------------------------------------------------------------------------------
60
61 //result1
62 AddResult("Fireplace");//add results here
63
64 m_ResultSetFullQuantity[0] = false;//true = set full quantity, false = do nothing
65 m_ResultSetQuantity[0] = -1;//-1 = do nothing
66 m_ResultSetHealth[0] = -1;//-1 = do nothing
67 m_ResultInheritsHealth[0] = -2;// (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)
68 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)
69 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)
70 m_ResultUseSoftSkills[0] = false;// set 'true' to allow modification of the values by softskills on this result
71 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
72 }
73
74 override bool CanDo(ItemBase ingredients[], PlayerBase player)//final check for recipe's validity
75 {
76 ItemBase ingredient1 = ingredients[0];
77 ItemBase ingredient2 = ingredients[1];
78
79 if ( ingredient1.Type() == ingredient2.Type() || ingredient1.GetInventory().GetSlotId(0) == ingredient2.GetInventory().GetSlotId(0) )
80 {
81 return false;
82 }
83
84 return true;
85 }
86
87 override void Do( ItemBase ingredients[], PlayerBase player, array<ItemBase> results, float specialty_weight )//gets called upon recipe's completion
88 {
89 ItemBase result = ItemBase.Cast( results.Get( 0 ) );
90 ItemBase ingredient1 = ingredients[0];
91 ItemBase ingredient2 = ingredients[1];
92
93 //clear inventory reservation
94 if ( !GetGame().IsMultiplayer() )
95 {
97 ingredient1.GetInventory().GetCurrentInventoryLocation( loc );
98 player.GetInventory().ClearInventoryReservationEx( ingredient1, loc );
99 ingredient2.GetInventory().GetCurrentInventoryLocation( loc );
100 player.GetInventory().ClearInventoryReservationEx( ingredient2, loc );
101 }
102
103 //Ingredient 1
104 if ( ingredient1.GetQuantity() <= 0 )
105 {
106 if ( GetGame().IsServer() && GetGame().IsMultiplayer() )
107 {
108 player.ServerTakeEntityToTargetAttachment( result, ingredient1 ); // multiplayer server side
109 }
110 else
111 {
112 player.LocalTakeEntityToTargetAttachment( result, ingredient1 ); // single player or multiplayer client side
113 }
114 }
115 else
116 {
117 string ingredient1_classname = ingredient1.GetType();
118 ItemBase attachment1 = ItemBase.Cast( result.GetInventory().CreateAttachment( ingredient1_classname ) );
119 MiscGameplayFunctions.TransferItemProperties( ingredient1, attachment1 );
120 attachment1.SetQuantity( 1 );
121 attachment1.SetCleanness(0);
122
123 //set quantity to ingredient
124 ingredient1.AddQuantity( -1 );
125 }
126
127 //Ingredient 2
128 if ( ingredient2.GetQuantity() <= 0 )
129 {
130 if ( GetGame().IsServer() && GetGame().IsMultiplayer() )
131 {
132 player.ServerTakeEntityToTargetAttachment( result, ingredient2 ); // multiplayer server side
133 }
134 else
135 {
136 player.LocalTakeEntityToTargetAttachment( result, ingredient2 ); // single player or multiplayer client side
137 }
138 }
139 else
140 {
141 string ingredient2_classname = ingredient2.GetType();
142 ItemBase attachment2 = ItemBase.Cast( result.GetInventory().CreateAttachment( ingredient2_classname ) );
143 MiscGameplayFunctions.TransferItemProperties( ingredient2, attachment2 );
144 attachment2.SetQuantity( 1 );
145 attachment2.SetCleanness(0);
146 //set quantity to ingredient
147 ingredient2.AddQuantity( -1 );
148 }
149 }
150}
InventoryLocation.
Определения InventoryLocation.c:29
override bool SetQuantity(float value, bool destroy_config=true, bool destroy_forced=false, bool allow_client=false, bool clamp_to_stack_max=true)
Определения PileOfWoodenPlanks.c:88
Определения InventoryItem.c:731
Определения PlayerBaseClient.c:2
void InsertIngredientEx(int index, string ingredient, string soundCategory, DayZPlayerConstants uid=DayZPlayerConstants.CMD_ACTIONFB_CRAFTING)
Определения RecipeBase.c:148
bool m_IngredientDestroy[MAX_NUMBER_OF_INGREDIENTS]
Определения RecipeBase.c:36
int m_ResultToInventory[MAXIMUM_RESULTS]
Определения RecipeBase.c:43
override bool CanDo(ItemBase ingredients[], PlayerBase player)
Определения CraftFireplace.c:74
bool m_IngredientUseSoftSkills[MAX_NUMBER_OF_INGREDIENTS]
Определения RecipeBase.c:32
string m_Name
Определения RecipeBase.c:17
float m_ResultSetHealth[MAXIMUM_RESULTS]
Определения RecipeBase.c:41
float m_ResultSetQuantity[MAXIMUM_RESULTS]
Определения RecipeBase.c:40
bool m_ResultSetFullQuantity[MAXIMUM_RESULTS]
Определения RecipeBase.c:39
bool m_IsInstaRecipe
Определения RecipeBase.c:24
override void Do(ItemBase ingredients[], PlayerBase player, array< ItemBase > results, float specialty_weight)
Определения CraftFireplace.c:87
void AddResult(string item)
Определения RecipeBase.c:174
bool m_ResultUseSoftSkills[MAXIMUM_RESULTS]
Определения RecipeBase.c:47
int m_ResultReplacesIngredient[MAXIMUM_RESULTS]
Определения RecipeBase.c:46
float m_IngredientAddHealth[MAX_NUMBER_OF_INGREDIENTS]
Определения RecipeBase.c:33
float m_Specialty
Определения RecipeBase.c:23
float m_IngredientSetHealth[MAX_NUMBER_OF_INGREDIENTS]
Определения RecipeBase.c:35
int m_ResultInheritsHealth[MAXIMUM_RESULTS]
Определения RecipeBase.c:44
float m_MinQuantityIngredient[MAX_NUMBER_OF_INGREDIENTS]
Определения RecipeBase.c:27
float m_AnimationLength
Определения RecipeBase.c:22
override void Init()
Определения CraftFireplace.c:3
int m_ResultInheritsColor[MAXIMUM_RESULTS]
Определения RecipeBase.c:45
float m_MaxQuantityIngredient[MAX_NUMBER_OF_INGREDIENTS]
Определения RecipeBase.c:28
float m_IngredientAddQuantity[MAX_NUMBER_OF_INGREDIENTS]
Определения RecipeBase.c:34
float m_MinDamageIngredient[MAX_NUMBER_OF_INGREDIENTS]
Определения RecipeBase.c:29
float m_MaxDamageIngredient[MAX_NUMBER_OF_INGREDIENTS]
Определения RecipeBase.c:30
void InsertIngredient(int index, string ingredient, DayZPlayerConstants uid=DayZPlayerConstants.CMD_ACTIONFB_CRAFTING)
Определения RecipeBase.c:143
Определения RecipeBase.c:6
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto native CGame GetGame()