DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
CleanRags.c
См. документацию.
1class CleanRags extends RecipeBase
2{
3 override void Init()
4 {
5 m_Name = "#clean";
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.01;// 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,"Rag");//you can insert multiple ingredients this way
28
29 m_IngredientAddHealth[0] = 0;// 0 = do nothing
30 m_IngredientSetHealth[0] = -1; // -1 = do nothing
31 m_IngredientAddQuantity[0] = 0;// 0 = do nothing
32 m_IngredientDestroy[0] = false;//true = destroy, false = do nothing
33 m_IngredientUseSoftSkills[0] = false;// set 'true' to allow modification of the values by softskills on this ingredient
34
35 //ingredient 2
36 InsertIngredient(1,"Pot");//you can insert multiple ingredients this way
37 InsertIngredient(1,"CanisterGasoline");//you can insert multiple ingredients this way
38 InsertIngredient(1,"Canteen");//you can insert multiple ingredients this way
39 InsertIngredient(1,"WaterBottle");//you can insert multiple ingredients this way
40 InsertIngredient(1,"FilteringBottle");//you can insert multiple ingredients this way
41 InsertIngredient(1,"GlassBottle");//you can insert multiple ingredients this way
42 InsertIngredient(1,"WaterPouch_ColorBase");//you can insert multiple ingredients this way
43 InsertIngredient(1,"Barrel_ColorBase");//you can insert multiple ingredients this way
44 InsertIngredient(1,"AyranBottle");//you can insert multiple ingredients this way
45
46 m_IngredientAddHealth[1] = 0;// 0 = do nothing
47 m_IngredientSetHealth[1] = -1; // -1 = do nothing
48 m_IngredientAddQuantity[1] = 0;// 0 = do nothing
49 m_IngredientDestroy[1] = false;// false = do nothing
50 m_IngredientUseSoftSkills[1] = false;// set 'true' to allow modification of the values by softskills on this ingredient
51 }
52
53 override bool CanDo(ItemBase ingredients[], PlayerBase player)//final check for recipe's validity
54 {
55 ItemBase rags;
56 Class.CastTo(rags, ingredients[0]);
57 ItemBase container;
58 Class.CastTo(container, ingredients[1]);
59
60 if ((container.GetLiquidType() & LIQUID_WATER) && container.GetQuantity() > 0 && !container.GetIsFrozen() && rags.GetHealthLevel() > 1)
61 {
62 return true;
63 }
64 else
65 {
66 return false;
67 }
68 }
69
70 override void Do(ItemBase ingredients[], PlayerBase player,array<ItemBase> results, float specialty_weight)//gets called upon recipe's completion
71 {
72 ItemBase rags = ingredients[0];
73 ItemBase container = ingredients[1];
74
75 float rags_health = rags.GetHealth("","");
76 int rags_quantity = rags.GetQuantity();
77
78 float rags_combined_damage = (100 - rags_health) * rags_quantity;
79
80 int liquid_quantity = container.GetQuantity();
81 int liquid_required = rags_combined_damage * 2;
82
83 float used_ratio = 0;
84 float heal = 0;
85
86 if( liquid_quantity > liquid_required )
87 {
88 container.AddQuantity(-liquid_required);
89 heal = rags_combined_damage / rags_quantity;
90 }
91 else
92 {
93 container.SetQuantity(0);
94 used_ratio = liquid_quantity / liquid_required;
95 heal = (rags_combined_damage / rags_quantity) * used_ratio;
96
97 }
98 heal = Math.Clamp(heal, 0, (70 - rags_health));
99 rags.AddHealth("", "",heal);
100 }
101};
string m_Name
Определения 3_Game/DayZ/InventoryItemType.c:34
bool m_IngredientUseSoftSkills[MAX_NUMBER_OF_INGREDIENTS]
Определения RecipeBase.c:48
float m_IngredientAddHealth[MAX_NUMBER_OF_INGREDIENTS]
Определения RecipeBase.c:49
bool m_IsInstaRecipe
Определения RecipeBase.c:40
float m_IngredientSetHealth[MAX_NUMBER_OF_INGREDIENTS]
Определения RecipeBase.c:51
float m_Specialty
Определения RecipeBase.c:39
float m_MinDamageIngredient[MAX_NUMBER_OF_INGREDIENTS]
Определения RecipeBase.c:45
float m_MaxQuantityIngredient[MAX_NUMBER_OF_INGREDIENTS]
Определения RecipeBase.c:44
void InsertIngredient(int index, string ingredient, DayZPlayerConstants uid=BASE_CRAFT_ANIMATION_ID, bool showItem=false)
Определения RecipeBase.c:159
float m_AnimationLength
Определения RecipeBase.c:38
float m_MaxDamageIngredient[MAX_NUMBER_OF_INGREDIENTS]
Определения RecipeBase.c:46
float m_IngredientAddQuantity[MAX_NUMBER_OF_INGREDIENTS]
Определения RecipeBase.c:50
float m_MinQuantityIngredient[MAX_NUMBER_OF_INGREDIENTS]
Определения RecipeBase.c:43
bool m_IngredientDestroy[MAX_NUMBER_OF_INGREDIENTS]
Определения RecipeBase.c:52
Super root of all classes in Enforce script.
Определения EnScript.c:11
override bool SetQuantity(float value, bool destroy_config=true, bool destroy_forced=false, bool allow_client=false, bool clamp_to_stack_max=true)
Определения PileOfBricks.c:64
Определения EnMath.c:7
Определения PlayerBaseClient.c:2
override bool CanDo(ItemBase ingredients[], PlayerBase player)
Определения CleanRags.c:53
override void Do(ItemBase ingredients[], PlayerBase player, array< ItemBase > results, float specialty_weight)
Определения CleanRags.c:70
override void Init()
Определения CleanRags.c:3
Определения AttachHolster.c:2
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
const int LIQUID_WATER
Определения 3_Game/DayZ/constants.c:578
static proto float Clamp(float value, float min, float max)
Clamps 'value' to 'min' if it is lower than 'min', or to 'max' if it is higher than 'max'.