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

◆ OnExecuteServer()

override void ActionInteractCodeLockItem::OnExecuteServer ( ActionData action_data)
inlineprivate

Re-validate the lock side on the server, the client-provided value is not trusted

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

154 {
155 DigitalCodeLock codeLock = DigitalCodeLock.Cast(action_data.m_Target.GetObject());
156 if (!codeLock)
157 return;
158
159 InteractCodeLockActionData interactActionData = InteractCodeLockActionData.Cast(action_data);
160 if (!interactActionData || interactActionData.m_CodeLockPosition == vector.Zero)
161 return;
162
164 bool isFacingBackside = codeLock.IsPlayerOnBackside(action_data.m_Player);
165
166 if (interactActionData.m_IsFacingBackside && !isFacingBackside)
167 {
168 ErrorEx(string.Format("[ActionInteractCodeLockItem] Client claimed backside but server disagrees, physical release rejected! Player=%1 | Lock=%2", action_data.m_Player, codeLock), ErrorExSeverity.INFO);
169 return;
170 }
171
172 if ((!codeLock.HasPIN() || codeLock.HasPIN() && codeLock.IsLocked()) && !isFacingBackside)
173 {
174 codeLock.StartItemSoundServer(SoundConstants.ITEM_DIGITAL_LOCK_ACCESS);
175 }
176
177 DigitalCodeLockUIBase codeLockUI;
178 if (codeLock.HasPIN())
179 {
180 if (!codeLock.IsLocked() && codeLock.CanBeLocked())
181 {
182 codeLock.SetLockState(true);
183 return;
184 }
185
186 if (codeLock.IsLocked() && codeLock.CanBeUnlocked() && isFacingBackside)
187 {
188 codeLock.SetLockState(false);
189 }
190 }
191
192 interactActionData.m_IsFacingBackside = false;
193 }
void DigitalCodeLock()
Определения CodeLock.c:590
PlayerBase m_Player
Определения ActionBase.c:40
ref ActionTarget m_Target
Определения ActionBase.c:39
bool HasPIN()
Определения CodeLock.c:343
bool IsPlayerOnBackside(PlayerBase player)
Определения CodeLock.c:410
bool CanBeLocked()
Определения CodeLock.c:313
bool CanBeUnlocked()
Определения CodeLock.c:318
void SetLockState(bool state)
Определения CodeLock.c:363
bool IsLocked()
Определения CodeLock.c:373
static const vector Zero
Определения EnConvert.c:123
ErrorExSeverity
Определения EnDebug.c:62
enum ShapeType ErrorEx

Перекрестные ссылки DigitalCodeLock::CanBeLocked(), DigitalCodeLock::CanBeUnlocked(), ErrorEx, DigitalCodeLock::HasPIN(), DigitalCodeLock::IsLocked(), DigitalCodeLock::IsPlayerOnBackside(), InteractCodeLockActionData::m_CodeLockPosition, InteractCodeLockActionData::m_IsFacingBackside, ActionData::m_Player, ActionData::m_Target, DigitalCodeLock::SetLockState() и vector::Zero.