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

◆ ActionCondition()

override bool CheckIfDoorIsLocked::ActionCondition ( PlayerBase player,
ActionTarget target,
ItemBase item )
protected

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

120{
122
123 void ActionOpenDoors()
124 {
125 m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_OPENDOORFW;
126 m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
127 m_Text = "#open";
128 }
129
130 override void CreateConditionComponents()
131 {
132 m_ConditionItem = new CCINone();
133 m_ConditionTarget = new CCTCursor();
134 }
135
136 protected bool CheckIfDoorIsLocked()
137 {
138 return true;
139 }
140
141 protected bool CreatesNoise()
142 {
143 return true;
144 }
145
146 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
147 {
148 if (!target)
149 return false;
150
151 if (!IsBuilding(target))
152 return false;
153
154 Building building;
155 if (Class.CastTo(building, target.GetObject()))
156 {
157 int doorIndex = building.GetDoorIndex(target.GetComponentIndex());
158 if (doorIndex != -1)
159 {
160 if (!IsInReach(player, target, UAMaxDistances.DEFAULT))
161 return false;
162
163 return building.CanDoorBeOpened(doorIndex, CheckIfDoorIsLocked());
164
165 }
166 }
167
168 return false;
169 }
170
171 override void OnStartServer(ActionData action_data)
172 {
173 super.OnStartServer(action_data);
174
175 Building building;
176 if (Class.CastTo(building, action_data.m_Target.GetObject()))
177 {
178 int doorIndex = building.GetDoorIndex(action_data.m_Target.GetComponentIndex());
179 if (doorIndex != -1)
180 {
181 if (building.CanDoorBeOpened(doorIndex, CheckIfDoorIsLocked()))
182 {
183 building.OpenDoor(doorIndex);
184 }
185 }
186 }
187 }
188
189 override void OnEndServer(ActionData action_data)
190 {
191 super.OnEndServer(action_data);
192
193 m_NoisePar = new NoiseParams();
194 m_NoisePar.LoadFromPath("CfgVehicles SurvivorBase NoiseActionDefault");
196 if (noise && CreatesNoise())
197 {
198 if (action_data.m_Player)
199 noise.AddNoisePos(action_data.m_Player, action_data.m_Target.GetObject().GetPosition(), m_NoisePar, NoiseAIEvaluate.GetNoiseReduction(GetGame().GetWeather()));
200 }
201 }
202
203 override bool IsLockTargetOnUse()
204 {
205 return false;
206 }
207}
208
209class ActionLockedDoors : ActionOpenDoors
210{
211 override bool CheckIfDoorIsLocked()
212 {
213 return false;
214 }
215
216 override protected bool CreatesNoise()
217 {
218 return false;
219 }
220};
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.