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

Система ремня

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

SCRIPTMAN

Привет народ!

 

Делал для своего старого мода систему ремня, если так можно сказать.

Так-как мод мне не нужен уже, решил слить данную систему сюда, хотя, она очень лёгкая, ну лан.

 

Для начала создадим переменные. Для этого, где у вас все переменные, вставляем это:

new remen[MAX_PLAYERS];

Теперь, сделаем так, чтобы когда игрок садился в автомобиль, ему обнуляло эту переменную, потому что некоторые могут пристегнуть ремень и не отстегнув выйти, тогда если сядут в авто, им напишет, что ремень отстегнул он. Для этого вставим в 

"public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)"

Вот это:

remen[playerid] = 0;

Теперь сама команда:

CMD:rem(playerid)
{
	if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)//Если игрок не в авто.
	{
	    SendClientMessage(playerid,COLOR_RED,"Вы не в авто!");
	    return true;//Тут сомневаюсь, что true, опытные знатоки, подскажите пж :)
	}
	if(remen[playerid] == 0)
        {
            Action(playerid, "пристегнул ремень безопасности");
            remen[playerid] = 1;//равняем переменную 1
        }
        else if(remen[playerid] == 1)//В принципе, можно и просто else написать
        {
            Action(playerid, "отстегнул ремень безопасности");
	    remen[playerid] = 0;//Равняем переменную нулю
    }
	return true;
}

А теперь, чтобы добавить какой-то RP-шности, я написал кмд для фракций, чтобы проверить, пристёгнут игрок или нет.

Вот команда:

CMD:sr(playerid, params[])
{
	new magid;
	if(IsACops(playerid))//Проверка на то, что игрок в ДПС, Полиции. У меня это сток
	{
	    if(sscanf(params, "i", magid)) return SCM(playerid, COLOR_GREY, "Подсказка: /sr [ID игрока]");
     	    if(!ProxDetectorS(10.0, playerid, magid)) return SCM(playerid, COLOR_GRAD1, "Вы слишком далеко.");
	    if(remen[magid] == 0)
	    {
		SCM(playerid, COLOR_RED, "Не пристёгнут!");//Если переменная remen игрока, которого мы ввели равна 0 - он не пристёгнут
	    }
	    else if(remen[magid] == 1)//Можно else
	    {
		SCM(playerid, COLOR_GREEN, "Пристёгнут!");
	    }
	}
	return true;
}

Вот и всё, я ещё сделал такую вещь, сейчас скину короче. Это для того, чтобы, если игрок не пристёгнут, он не мог завести авто.

Для этого, туда, где у вас заводка авто нужно вставить в начало: 

if(remen[playerid] == 0) return SCM(playerid, цвет, "Пристегните ремень безопасности! Чтобы завести авто"); 

И когда игрок выходит из авто, я пытался сделать, чтобы его не выпустило из авто, пока он не отстегнёт ремень, но увы, у меня не получилось. Буду рад, кто подскажет, как это сделать.

Ну в принципе и всё!

 

Автор: Shapik

 

Спасибо!

 

Если ошибка, исправьте пожалуйста!

Если будут идеи, пишите, дополню!

 

У кого ошибка на Action, переходите в эту тему и добавляете.

Изменено пользователем SCRIPTMAN
Добавил "Action"
  • Like 3

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


Ссылка на сообщение
Поделиться на другие сайты
kartoxaa
C:\Users\?????\Desktop\Namalsk RP\gamemodes\new.pwn(21942) : error 017: undefined symbol "action"

C:\Users\?????\Desktop\Namalsk RP\gamemodes\new.pwn(21947) : error 017: undefined symbol "action"

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


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

@kartoxaa, ко всем new

new action

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


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

@kartoxaa, добавь сток
 

stock Action(playerid, action[], Float:distance = 13.0)
{
new string[128];
format(string, sizeof(string), "%s %s", GetName(playerid), action);
for(new i; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i) || GetPlayerDistanceToPlayer(playerid,i) > distance || GetPlayerVirtualWorld(i) != GetPlayerVirtualWorld(playerid)) continue;
SendClientMessage(i, COLOR_PURPLE, string);
}
return 1;
}

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


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

,тогда уж дай ссылку на тему. 

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


Ссылка на сообщение
Поделиться на другие сайты
Detik
es\Sotto_RP.pwn(71905) : warning 217: loose indentation

C:\Users\Wolf\Desktop\???????\??? ?????? Sotto RP\gamemodes\Sotto_RP.pwn(71912) : error 017: undefined symbol "IsACops"

C:\Users\Wolf\Desktop\???????\??? ?????? Sotto RP\gamemodes\Sotto_RP.pwn(71915) : warning 217: loose indentation

C:\Users\Wolf\Desktop\???????\??? ?????? Sotto RP\gamemodes\Sotto_RP.pwn(71916) : warning 217: loose indentation

Pawn compiler 3.10.6 Copyright © 1997-2006, ITB CompuPhase

 

как исправить?

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


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

@Detik, warning 217 - кнопкой "TAB" поработай, отрегулируй табуляцию. А error 017 - это проверка на состоит ли игрок во фракции копов(мвд, дпс и т.д.), замени на свою.

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


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

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

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

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

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

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

Войти

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

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

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

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

×

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

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