Kyzya_164RUS 0 Опубликовано 1 февраля, 2020 Всем привет! Решил покопаться в моде Redline RP (Perfomance, Radmir). Столкнулся с такой проблемкой: При телепортировании персонаж стоит на месте. Например: Я захожу в пикап бизнеса, но меняется только виртуальный мир, координаты не меняются. stock SetPlayerPosEx(playerid, Float: x, Float: y, Float: z, Float: angle, interior = -1, virtual_world = -1, freeze = true) { if(interior > 0) PlayerTeleportInit(playerid, x, y, z, angle); SetPlayerPos(playerid, x, y, z); SetPlayerFacingAngle(playerid, angle); SetCameraBehindPlayer(playerid); if(interior != -1 && GetPlayerInterior(playerid) != interior) { SetPlayerInterior(playerid, interior); } if(virtual_world != -1 && GetPlayerVirtualWorld(playerid) != virtual_world) { SetPlayerVirtualWorld(playerid, virtual_world); } if(GetPlayerData(playerid, P_LAST_PICKUP) != -1) { SetPlayerData(playerid, P_LAST_PICKUP, -1); } if(freeze) { TeleportFreeze(playerid, 1200); } return 1; } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mishka42 1 Опубликовано 1 февраля, 2020 33 минуты назад, Kyzya_164RUS сказал: SetPlayerPos(playerid, x, y, z); Так тут стоит строка, которая получает координаты Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kyzya_164RUS 0 Опубликовано 1 февраля, 2020 Да я вижу, но все равно не телепортируюсь Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Sasha_CHU 0 Опубликовано 2 февраля, 2020 PlayerTeleportInit что это за строчка? За что отвечает? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kyzya_164RUS 0 Опубликовано 2 февраля, 2020 2 часа назад, Sasha_CHU сказал: PlayerTeleportInit что это за строчка? За что отвечает? stock PlayerTeleportInit(playerid, Float: x, Float: y, Float: z, Float: angle) { new Float: dist = -0.862; angle += 90.0; //ïðèáàâëåíèå óãëà; ìîæíî è îòíèìàòü for(new idx = 2; idx --; ) { SetPlayerObjectPos(playerid, g_teleport_object[playerid][idx], x + dist * -floatsin(angle, degrees), y + dist * floatcos(angle, degrees), z - 1.02); SetPlayerObjectRot(playerid, g_teleport_object[playerid][idx], 90.0, 90.0, angle - 90.0); dist = floatabs(dist); } } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
16Shadows 101 Опубликовано 2 февраля, 2020 Цикл, скорее всего, некорректно работает. Он не выполнит итерацию с idx = 0. И стоит проверить логи на наличие runtime-ошибок Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты