Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Airbreik + Spawn

Статус
В этой теме нельзя размещать новые ответы.

Max_Hank

Умник
Всем привет! Думаю многие сталкиваются с проблемой, когда происходит рестарт сервере или же игрок сам рестартися собейтом с помощью клавиш Shift + 0 и при этом использует Airbreik, то он появляется в точке, где поставил позицию Airbrek'ом. Выход таков. В РП модах в функции "OnPlayerSpawn" идет проверка на ЛВЛ что-то типо:

PHP:
if(PlayerInfo[playerid][pLevel] >= 1 && PlayerInfo[playerid][pLevel] < 4)
{
     SetPlayerPos(playerid,1760.3505,-1902.9790,13.5649);
     SetPlayerFacingAngle(playerid, 270.0);
     SetPlayerVirtualWorld(playerid,0);
     SetPlayerInterior(playerid, 0);
     return true;
}
Если игрок с 1 по 4 ЛВЛ он спавнится на ЖД ЛС. Вот выход от читеров:

PHP:
if(PlayerInfo[playerid][pLevel] >= 1 && PlayerInfo[playerid][pLevel] < 4)
{
     SetPlayerPos(playerid, 1760.3505,-1902.9790,13.5649);
     SetPlayerFacingAngle(playerid, 270.7);
     SetPlayerInterior(playerid,0);
     SetPlayerVirtualWorld(playerid, playerid);
     SPTimer[playerid] = SetTimerEx("Proverka", 5000, true, "d", playerid);
     return true;
}
Как видим выше добавился таймер с функцией "Proverka"

Вот вам сама функция, ее можно добавть в конец мода:

PHP:
forward Proverka(playerid);
public Proverka(playerid)
{
    KillTimer(SPTimer[playerid]);
    if(PlayerInfo[playerid][pLevel] >= 1 && PlayerInfo[playerid][pLevel] < 4)
    {
       if(IsPlayerInRangeOfPoint(playerid, 20.0, 1760.3505,-1902.9790,13.5649))
       {
       SetPlayerVirtualWorld(playerid, 0);
       }
       else
       {
       SendClientMessage(playerid, COLOR_LIGHTRED, "{ff4f00}Вы кикнуты за использование чит-программ {cd2323}(code - 320)");
       SendClientMessage(playerid, COLOR_LIGHTRED, "{ff4f00}Error Player Spawning: [1760.3505 | -1902.9790 | 13.5649]");
       Kick(playerid);
       }
    }
    if(PlayerInfo[playerid][pLevel] >= 4 && PlayerInfo[playerid][pLevel] < 8)
    {
       if(IsPlayerInRangeOfPoint(playerid, 20.0, -1967.6738,115.7038,27.6875))
       {
       SetPlayerVirtualWorld(playerid, 0);
       }
       else
       {
       SendClientMessage(playerid, COLOR_LIGHTRED, "{ff4f00}Вы кикнуты за использование чит-программ {cd2323}(code - 320)");
       SendClientMessage(playerid, COLOR_LIGHTRED, "{ff4f00}Error Player Spawning: [-1967.6738 | 115.7038 | 27.6875]");
       Kick(playerid);
       }
    }
    if(PlayerInfo[playerid][pLevel] >= 8)
    {
       if(IsPlayerInRangeOfPoint(playerid, 20.0, 2847.5063,1288.6849,11.3906))
       {
       SetPlayerVirtualWorld(playerid, 0);
       }
       else
       {
       SendClientMessage(playerid, COLOR_LIGHTRED, "{ff4f00}Вы кикнуты за использование чит-программ {cd2323}(code - 320)");
       SendClientMessage(playerid, COLOR_LIGHTRED, "{ff4f00}Error Player Spawning: [2847.5063 | 1288.6849 | 11.3906]");
       Kick(playerid);
       }
    }
}
Здесь проверка для всех ЛВЛ'ов, координаты проверки измените на свои.

Автор урока я Максим Коблов. Сильно не бейте, от +сиков не откажусь. Всего доброго друзья.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу