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

◆ ActionCondition()

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

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

130{
132
133 void ActionOpenDoors()
134 {
135 m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_OPENDOORFW;
136 m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
137 m_Text = "#open";
138 }
139
140 override void CreateConditionComponents()
141 {
142 m_ConditionItem = new CCINone();
144 }
145
146 protected bool CheckIfDoorIsLocked()
147 {
148 return true;
149 }
150
151 protected bool CreatesNoise()
152 {
153 return true;
154 }
155
156 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
157 {
158 if (!target)
159 return false;
160
161 if (!IsBuilding(target))
162 return false;
163
164 BuildingBase building;
165 if (Class.CastTo(building, target.GetObject()))
166 {
168 doorParams.m_DoorIndex = building.GetDoorIndex(target.GetComponentIndex());
169 if (doorParams.m_DoorIndex != -1)
170 {
171 if (!IsInReach(player, target, UAMaxDistances.DEFAULT))
172 return false;
173
174 if (!building.DoorsDirectionalCheck(player,target.GetComponentIndex()))
175 return false;
176
178 doorParams.m_Caller = player;
179
180 return building.CanDoorBeOpened(doorParams);
181 }
182 }
183
184 return false;
185 }
186
187 override void OnStartServer(ActionData action_data)
188 {
189 super.OnStartServer(action_data);
190
191 BuildingBase building;
192 if (Class.CastTo(building, action_data.m_Target.GetObject()))
193 {
195 doorParams.m_DoorIndex = building.GetDoorIndex(action_data.m_Target.GetComponentIndex());
196 if (doorParams.m_DoorIndex != -1)
197 {
199 doorParams.m_Caller = action_data.m_Player;
200 if (building.CanDoorBeOpened(doorParams))
201 building.OpenDoor(doorParams.m_DoorIndex);
202 }
203 }
204 }
205
206 override void OnEndServer(ActionData action_data)
207 {
208 super.OnEndServer(action_data);
209
210 m_NoisePar = new NoiseParams();
211 m_NoisePar.LoadFromPath("CfgVehicles SurvivorBase NoiseActionDefault");
212 NoiseSystem noise = g_Game.GetNoiseSystem();
213 if (noise && CreatesNoise())
214 {
215 if (action_data.m_Player)
216 {
217 Object targetObj = action_data.m_Target.GetObject();
218 noise.AddNoisePos(action_data.m_Player, action_data.m_Player.GetPosition(), m_NoisePar);
219 }
220 }
221 }
222
223 override bool IsLockTargetOnUse()
224 {
225 return false;
226 }
227}
228
229class ActionLockedDoors : ActionOpenDoors
230{
231 override bool CheckIfDoorIsLocked()
232 {
233 return false;
234 }
235
236 override protected bool CreatesNoise()
237 {
238 return false;
239 }
240}
void BuildingBase()
string m_Text
Определения ActionBase.c:57
bool IsInReach(PlayerBase player, ActionTarget target, float maxDistance=1.0)
Определения ActionBase.c:1290
bool IsBuilding(ActionTarget target)
Определения ActionBase.c:1280
ref CCIBase m_ConditionItem
Определения ActionBase.c:63
ref CCTBase m_ConditionTarget
Определения ActionBase.c:64
int m_StanceMask
Определения ActionBase.c:61
override bool IsLockTargetOnUse()
Определения ActionOpenDoors.c:196
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionOpenDoors.c:129
override void OnStartServer(ActionData action_data)
Определения ActionOpenDoors.c:160
override void OnEndServer(ActionData action_data)
Определения ActionOpenDoors.c:179
ref NoiseParams m_NoisePar
Определения ActionOpenDoors.c:104
override void CreateConditionComponents()
Определения ActionOpenDoors.c:113
bool CreatesNoise()
Определения ActionOpenDoors.c:124
void ActionOpenDoors()
Определения ActionOpenDoors.c:106
ActionOpenDoors ActionInteractBase CheckIfDoorIsLocked()
Определения ActionOpenDoors.c:103
void ActionTarget(Object object, Object parent, int componentIndex, vector cursorHitPos, float utility, string surfaceName="")
Определения ActionTargets.c:125
DayZGame g_Game
Определения DayZGame.c:4074
class NoiseSystem NoiseParams()
Определения Noise.c:18
PlayerBase m_Player
Определения ActionBase.c:40
ref ActionTarget m_Target
Определения ActionBase.c:39
Определения ActionBase.c:22
bool CreatesNoise()
Определения ActionOpenDoors.c:23
bool CheckIfDoorIsLocked()
Определения ActionOpenDoors.c:18
Определения ActionOpenDoors.c:2
Определения CCINone.c:2
Определения CCTCursor.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
proto void AddNoisePos(EntityAI source_entity, vector pos, NoiseParams noise_params, float external_strenght_multiplier=1.0)
Определения Noise.c:2
Определения ObjectTyped.c:2
Определения PlayerBaseClient.c:2
const float DEFAULT
Определения ActionConstants.c:114
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.