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

◆ ProcessTeleportText()

void ScriptConsoleGeneralTab::ProcessTeleportText ( PlayerBase player)
inlineprotected

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

246 {
247 bool doTeleport, doSetDir;
248 vector pos, dir;
249 string text = m_TeleportXYZ.GetText();
250 string textDir = m_TeleportHeading.GetText();
251
252 array<float> numbersPos = TextToNumbersArray(text);
253 if (numbersPos.Count() != 0)
254 {
255 if (numbersPos.Count() == 1)
256 {
257 pos = vector.Zero;
258 }
259 else if (numbersPos.Count() == 2)
260 {
261 pos = Vector(numbersPos[0], GetGame().SurfaceY(numbersPos[0], numbersPos[1]), numbersPos[1]);
262 }
263 else if (numbersPos.Count() <= 5)
264 {
265 pos = Vector(numbersPos[0], numbersPos[1], numbersPos[2]);
266 }
267 else if (numbersPos.Count() > 5)
268 {
269 pos = Vector(numbersPos[0], numbersPos[1], numbersPos[2]);
270 dir = Vector(numbersPos[3], numbersPos[4], numbersPos[5]);
271
272 Teleport(player, pos);
273 m_LastEditPos = pos;
274 m_TeleportXYZ.SetText(m_LastEditPos.ToString());
275
276 m_Developer.SetDirection(player, dir);
277 m_LastEditDir = dir;
278 m_TeleportHeading.SetText(m_LastEditDir.ToString());
279
280 return;
281 }
282
283 doTeleport = true;
284 }
285 else
286 m_LastEditPos = vector.Zero;
287
288 array<float> numbersDir = TextToNumbersArray(textDir);
289 if (numbersDir.Count() != 0)
290 {
291 if (numbersDir.Count() == 1)
292 {
293 dir = vector.Zero;
294 }
295 else if (numbersDir.Count() == 2)
296 {
297 dir = Vector(numbersDir[0], 0, numbersDir[1]);
298 }
299 else if (numbersDir.Count() <= 5)
300 {
301 dir = Vector(numbersDir[0], numbersDir[1], numbersDir[2]);
302 }
303 else if (numbersDir.Count() > 5)
304 {
305 pos = Vector(numbersDir[0], numbersDir[1], numbersDir[2]);
306 dir = Vector(numbersDir[3], numbersDir[4], numbersDir[5]);
307
308 Teleport(player, pos);
309 m_LastEditPos = pos;
310 m_TeleportXYZ.SetText(m_LastEditPos.ToString());
311
312 m_Developer.SetDirection(player, dir);
313 m_LastEditDir = dir;
314 m_TeleportHeading.SetText(m_LastEditDir.ToString());
315
316 return;
317 }
318
319 doSetDir = true;
320 }
321 else
322 m_LastEditDir = vector.Zero;
323
324 if (doTeleport)
325 {
326 Teleport(player, pos);
327 m_LastEditPos = pos;
328 }
329
330 if (doSetDir)
331 {
332 m_Developer.SetDirection(player, dir);
333 m_LastEditDir = dir;
334 }
335 }
EditBoxWidget m_TeleportXYZ
Определения ScriptConsoleGeneralTab.c:27
EditBoxWidget m_TeleportHeading
Определения ScriptConsoleGeneralTab.c:26
PluginDeveloper m_Developer
Определения ScriptConsoleGeneralTab.c:17
void Teleport(PlayerBase player, vector position)
Определения ScriptConsoleGeneralTab.c:238
array< float > TextToNumbersArray(string text)
Определения ScriptConsoleGeneralTab.c:337
static const vector Zero
Определения EnConvert.c:110
proto native CGame GetGame()
proto native vector Vector(float x, float y, float z)
Vector constructor from components.

Перекрестные ссылки GetGame(), m_Developer, m_LastEditDir, m_LastEditPos, m_TeleportHeading, m_TeleportXYZ, Teleport(), TextToNumbersArray(), Vector() и vector::Zero.

Используется в OnClick().