DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ CreateConditionComponents()

override void CheckIfDoorIsLocked::CreateConditionComponents ( )

См. определение в файле ActionOpenDoors.c строка 103

104{
106
107 void ActionOpenDoors()
108 {
109 m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_OPENDOORFW;
110 m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
111 m_Text = "#open";
112 }
113
114 override void CreateConditionComponents()
115 {
116 m_ConditionItem = new CCINone();
117 m_ConditionTarget = new CCTCursor();
118 }
119
120 protected bool CheckIfDoorIsLocked()
121 {
122 return true;
123 }
124
125 protected bool CreatesNoise()
126 {
127 return true;
128 }
129
130 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
131 {
132 if (!target)
133 return false;
134
135 if (!IsBuilding(target))
136 return false;
137
138 Building building;
139 if (Class.CastTo(building, target.GetObject()))
140 {
141 int doorIndex = building.GetDoorIndex(target.GetComponentIndex());
142 if (doorIndex != -1)
143 {
144 if (!IsInReach(player, target, UAMaxDistances.DEFAULT))
145 return false;
146
147 return building.CanDoorBeOpened(doorIndex, CheckIfDoorIsLocked());
148
149 }
150 }
151
152 return false;
153 }
154
155 override void OnStartServer(ActionData action_data)
156 {
157 super.OnStartServer(action_data);
158
159 Building building;
160 if (Class.CastTo(building, action_data.m_Target.GetObject()))
161 {
162 int doorIndex = building.GetDoorIndex(action_data.m_Target.GetComponentIndex());
163 if (doorIndex != -1)
164 {
165 if (building.CanDoorBeOpened(doorIndex, CheckIfDoorIsLocked()))
166 {
167 building.OpenDoor(doorIndex);
168 }
169 }
170 }
171 }
172
173 override void OnEndServer(ActionData action_data)
174 {
175 super.OnEndServer(action_data);
176
177 m_NoisePar = new NoiseParams();
178 m_NoisePar.LoadFromPath("CfgVehicles SurvivorBase NoiseActionDefault");
180 if (noise && CreatesNoise())
181 {
182 if (action_data.m_Player)
183 noise.AddNoisePos(action_data.m_Player, action_data.m_Target.GetObject().GetPosition(), m_NoisePar, NoiseAIEvaluate.GetNoiseReduction(GetGame().GetWeather()));
184 }
185 }
186
187 override bool IsLockTargetOnUse()
188 {
189 return false;
190 }
191}
192
193class ActionLockedDoors : ActionOpenDoors
194{
195 override bool CheckIfDoorIsLocked()
196 {
197 return false;
198 }
199
200 override protected bool CreatesNoise()
201 {
202 return false;
203 }
204};
int m_CommandUID
Определения ActionBase.c:31
int m_StanceMask
Определения ActionBase.c:33
ActionBase ActionData
Определения ActionBase.c:30
override bool IsLockTargetOnUse()
Определения ActionOpenDoors.c:176
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionOpenDoors.c:119
override void OnStartServer(ActionData action_data)
Определения ActionOpenDoors.c:144
override void OnEndServer(ActionData action_data)
Определения ActionOpenDoors.c:162
ref NoiseParams m_NoisePar
Определения ActionOpenDoors.c:94
override void CreateConditionComponents()
Определения ActionOpenDoors.c:103
bool CreatesNoise()
Определения ActionOpenDoors.c:114
void ActionOpenDoors()
Определения ActionOpenDoors.c:96
ActionOpenDoors ActionInteractBase CheckIfDoorIsLocked()
Определения ActionOpenDoors.c:93
class ActionTargets ActionTarget
class NoiseSystem NoiseParams()
Определения Noise.c:15
bool CreatesNoise()
Определения ActionOpenDoors.c:23
bool CheckIfDoorIsLocked()
Определения ActionOpenDoors.c:18
Определения ActionOpenDoors.c:2
Определения CCINone.c:2
Определения CCTCursor.c:2
proto native NoiseSystem GetNoiseSystem()
Super root of all classes in Enforce script.
Определения EnScript.c:11
Определения InventoryItem.c:731
static float GetNoiseReduction(Weather weather)
Определения SensesAIEvaluate.c:18
proto void AddNoisePos(EntityAI source_entity, vector pos, NoiseParams noise_params, float external_strenght_multiplier=1.0)
Определения Noise.c:2
Определения PlayerBaseClient.c:2
const float DEFAULT
Определения ActionConstants.c:112
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
proto native CGame GetGame()
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.