DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
Clothing_Base.c
См. документацию.
1// I know the filename is stupid, but it's what the other files in this structure use..
2// And I can't really make it "class Clothing_Base extends Clothing"
3// since that will conflict with config and other parts of script and break mods :c
5{
6 override bool IsClothing()
7 {
8 return true;
9 }
10
11 override bool CanHaveWetness()
12 {
13 return true;
14 }
15
18 {
19 return -1;
20 }
21
22 //----------------------------------------------------------------
23 // GameplayWidgetEffects
25 {
26 return null;
27 }
28
29 // Conditions
30 override bool CanPutInCargo( EntityAI parent )
31 {
32 if ( !super.CanPutInCargo( parent ) )
33 return false;
34
35 return !parent || CanPutInCargoClothingConditions( parent );
36 }
37
39 {
40 bool is_hidden_stash_exception = false;
41
42 if ( parent.IsInherited( UndergroundStash ) )
43 is_hidden_stash_exception = true;
44
45 if ( GetNumberOfItems() == 0 || !parent || parent.IsMan() || is_hidden_stash_exception )
46 {
47 EntityAI cargoParent = parent.GetHierarchyParent();
48 ClothingBase parentClothing = ClothingBase.Cast(parent);
49 if (cargoParent)
50 return !(parent.IsClothing() && cargoParent.IsClothing()) || ( parentClothing && parentClothing.SmershException(cargoParent) );
51
52 return true;
53 }
54
55 return false;
56 }
57
58 override bool CanReceiveItemIntoCargo( EntityAI item )
59 {
60 if (!super.CanReceiveItemIntoCargo(item))
61 return false;
62
64 }
65
67 {
68 EntityAI hierarchyParent = GetHierarchyParent();
69 return !hierarchyParent || hierarchyParent.IsMan() || SmershException(hierarchyParent);
70 }
71
72 //Kind of a hack but I don't have enough time left to do larger scale reworks, sorry
73 bool SmershException(EntityAI hierarchyParent)
74 {
75 EntityAI hp = hierarchyParent.GetHierarchyParent();
76 if (hp)
77 {
78 if (!hp.IsMan())
79 return false;
80 }
81
82 return IsInherited(SmershBag) && hierarchyParent.IsInherited(SmershVest);
83 }
84
85 override bool CanLoadItemIntoCargo(EntityAI item)
86 {
87 if (!super.CanLoadItemIntoCargo(item))
88 return false;
89
91 }
92
94 {
95 EntityAI parent = GetHierarchyParent();
96
97 if ( parent && parent.IsInherited( UndergroundStash ) )
98 return true;
99
100 return !parent || parent.IsMan() || SmershException(parent);
101 }
102
103 //Method used to specify if a piece of eyeware can be worn under a gas mask
106 {
107 return true;
108 }
109
110 // -------------------------------------------------------------------------
111 override void EEHealthLevelChanged(int oldLevel, int newLevel, string zone)
112 {
113 super.EEHealthLevelChanged(oldLevel, newLevel, zone);
114 if ( !GetGame().IsDedicatedServer() )
115 {
116 PlayerBase player_owner = PlayerBase.Cast(GetHierarchyParent());
117
118 if( player_owner )
119 {
120 if( player_owner.m_CorpseState != 0 )
121 {
122 GetGame().GetCallQueue( CALL_CATEGORY_GUI ).CallLater( player_owner.UpdateCorpseState, 0, false);
123 }
124 }
125 }
126 }
127
128 override void SwitchItemSelectionTextureEx(EItemManipulationContext context, Param par = null)
129 {
130 super.SwitchItemSelectionTextureEx(context, par);
131
132 Param1<PlayerBase> data = Param1<PlayerBase>.Cast(par);
133 if (!data)
134 {
135 return;
136 }
137
138 PlayerBase player = data.param1;
139
140 int personality = GetHiddenSelectionIndex("personality");
141 if (personality >= 0)
142 {
143 string tone_mat = player.m_EmptyGloves.GetHiddenSelectionsMaterials().Get(0);
144 string tone_texture;
145
146 if (player.m_CorpseState > PlayerConstants.CORPSE_STATE_FRESH)
147 {
148 tone_texture = player.m_DecayedTexture;
149 }
150 else
151 {
152 tone_texture = player.m_EmptyGloves.GetHiddenSelectionsTextures().Get(0);
153 }
154
155 SetObjectMaterial( personality, tone_mat );
156 SetObjectTexture( personality, tone_texture );
157 }
158 }
159};
160
162 //intermediate types//
164class Belt_Base : Clothing {};
165class Backpack_Base : Clothing {};
167{
168 override protected void InitGlobalExclusionValues()
169 {
170 super.InitGlobalExclusionValues();
171
172 AddSingleExclusionValueGlobal(EAttExclusions.EXCLUSION_GLASSES_REGULAR_0);
173 }
174};
175class Gloves_Base : Clothing {};
176class HeadGear_Base : Clothing {};
177class Mask_Base : Clothing
178{
179 override protected set<int> GetAttachmentExclusionInitSlotValue(int slotId)
180 {
181 set<int> ret = super.GetAttachmentExclusionInitSlotValue(slotId);
182 if (slotId == InventorySlots.MASK)
183 {
184 ret.Insert(EAttExclusions.SHAVING_MASK_ATT_0);
185 }
186 return ret;
187 }
188};
189class Pants_Base : Clothing {};
190class Shoes_Base : Clothing {};
191class Top_Base : Clothing {};
192class Vest_Base : Clothing {};
193
Clothing ClothingBase
Определения Clothing_Base.c:194
int GetNumberOfItems()
Returns the number of items in cargo, otherwise returns 0(non-cargo objects). Recursive.
Определения ItemBase.c:8218
Определения LeatherBelt_ColorBase.c:2
override ScriptCallQueue GetCallQueue(int call_category)
Определения DayZGame.c:1187
array< int > GetEffectWidgetTypes()
Определения Clothing_Base.c:24
bool CanPutInCargoClothingConditions(EntityAI parent)
Определения Clothing_Base.c:38
bool CanWearUnderMask(EntityAI parent)
deprecated
Определения Clothing_Base.c:105
bool CanReceiveItemIntoCargoClothingConditions(EntityAI item)
Определения Clothing_Base.c:66
override bool CanHaveWetness()
Определения Clothing_Base.c:11
bool CanLoadItemIntoCargoClothingConditions(EntityAI item)
Определения Clothing_Base.c:93
override void SwitchItemSelectionTextureEx(EItemManipulationContext context, Param par=null)
Определения Clothing_Base.c:128
override bool CanPutInCargo(EntityAI parent)
Определения Clothing_Base.c:30
override bool CanReceiveItemIntoCargo(EntityAI item)
Определения Clothing_Base.c:58
override bool CanLoadItemIntoCargo(EntityAI item)
Определения Clothing_Base.c:85
override void EEHealthLevelChanged(int oldLevel, int newLevel, string zone)
Определения Clothing_Base.c:111
bool SmershException(EntityAI hierarchyParent)
Определения Clothing_Base.c:73
int GetGlassesEffectID()
Used for 'glasses' (and other colored layers triggered by attach/detach in the InventorySlots....
Определения Clothing_Base.c:17
override bool IsClothing()
Определения Clothing_Base.c:6
Определения Clothing_Base.c:5
Определения DallasMask.c:2
Определения Armband_ColorBase.c:2
override bool IsMan()
Определения Man.c:44
Определения Building.c:6
void InitGlobalExclusionValues()
Определения Clothing_Base.c:168
Определения AviatorGlasses.c:2
hard helmet base
Определения BaseballCap_ColorBase.c:2
provides access to slot configuration
Определения InventorySlots.c:6
set< int > GetAttachmentExclusionInitSlotValue(int slotId)
Определения Clothing_Base.c:179
gas mask base
Определения Balaclava3Holes_ColorBase.c:2
Определения BDUPants.c:2
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
Определения param.c:12
Определения PlayerBaseClient.c:2
static const int CORPSE_STATE_FRESH
Определения PlayerConstants.c:213
Определения PlayerConstants.c:2
proto void CallLater(func fn, int delay=0, bool repeat=false, void param1=NULL, void param2=NULL, void param3=NULL, void param4=NULL, void param5=NULL, void param6=NULL, void param7=NULL, void param8=NULL, void param9=NULL)
adds call into the queue with given parameters and arguments (arguments are held in memory until the ...
Определения BDUJacket.c:2
Определения ChestHolster.c:1
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto native CGame GetGame()
const int CALL_CATEGORY_GUI
Определения tools.c:9