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

◆ ProcessTeleportText()

void ScriptConsoleGeneralTab::ProcessTeleportText ( PlayerBase player)
inlineprotected

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

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

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

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