Перейти к содержанию
Авторизация  
Kyzya_164RUS

Проблема в моде

Рекомендуемые сообщения

Kyzya_164RUS

Всем привет! Решил покопаться в моде 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
33 минуты назад, Kyzya_164RUS сказал:

SetPlayerPos(playerid, x, y, z);

Так тут стоит строка, которая получает координаты

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Kyzya_164RUS

Да я вижу, но все равно не телепортируюсь

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Sasha_CHU
PlayerTeleportInit что это за строчка?
За что отвечает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Kyzya_164RUS
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

Цикл, скорее всего, некорректно работает. Он не выполнит итерацию с idx = 0. И стоит проверить логи на наличие runtime-ошибок

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.