shape1
shape2
shape3
shape4
shape7
shape8

Доступ к получению В/У


Статус
Закрыто для дальнейших ответов.

Sten

Unknown
Пользователь
08.05.2014
830
77
0
Здравствуйте уважаемые пользователи портала.

Буквально сегодня нашел очень интересную систему.
Данная система позволяет выдавать инструкторам доступ к получению прав.
В принципе почти как на УРМ.

Приступим!
В enum pInfo добавим:

pLicDostup,
Далее в OnPlayerRegister добавим:

format(var, 32, "LicDostup=%d\n",PlayerInfo[playerid][pLicDostup]);fwrite(hFile,var);//Доступ к получению прав
Далее добавим сами команды на выдачу/отнятие справки.

if(strcmp(cmd, "/spravka", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Используйте: /spravka [playerid/PartOfName]");
return true;
}
new para1;
para1 = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
if(PlayerInfo[playerid][pMember] == 11 || PlayerInfo[playerid][pLeader] == 11)//Проверка на фракцию инструкторов, заменяйте на свое
{
if(IsPlayerConnected(para1))
{
if(para1 != INVALID_PLAYER_ID)
{
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
PlayerInfo[para1][pLicDostup] = 1;
format(string, sizeof(string), "%s дал Вам доступ на получение прав", sendername);
SendClientMessage(para1, COLOR_WHITE, string);
format(string, sizeof(string), "Вы дали доступ на получение прав %s", giveplayer);
SendClientMessage(playerid, COLOR_WHITE, string);
}
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "Вы не инструктор!);
}
}
return true;
}
//===========================================================================
if(strcmp(cmd, "/unspravka", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Используйте: /unspravka [playerid/PartOfName]");
return true;
}
new para1;
para1 = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
if(PlayerInfo[playerid][pMember] == 11 || PlayerInfo[playerid][pLeader] == 11)//Проверка на фракцию инструкторов, заменяйте на свое
{
if(IsPlayerConnected(para1))
{
if(para1 != INVALID_PLAYER_ID)
{
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
PlayerInfo[para1][pLicDostup] = 0;
format(string, sizeof(string), "%s забрал у Вас справку об обучении в Автошколе", sendername);
SendClientMessage(para1, COLOR_WHITE, string);
format(string, sizeof(string), "Вы забрали справку об обучении у %s", giveplayer);
SendClientMessage(playerid, COLOR_WHITE, string);
}
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "Вы не инструктор!);
}
}
return true;
}
В команду выдачи прав, добавим проверку на наличие справки.

if(PlayerInfo[para1][pLicDostup] != 1) return SendClientMessage(playerid -1, "У него отсутствует справка"); 
Автор: _TKILLAH_
P.S.Эта система схожа с системой на УРМ. Можно доделать ее.

 
Последнее редактирование модератором:

Eitzen

Новичок
Пользователь
22.02.2015
260
14
0
Взято с другого форума, но т.к. это не запрещено, не суть. К сведению, автор - Я. Просто на других форумах ник другой.

Исправьте проверку.

if(PlayerInfo[para1][pLicDostup] != 1) return SendClientMessage(playerid -1, "У него отсутствует справка");

И еще, в команде выдачи лицензии проверку нужно заменить на фракцию полиции.

 

pallatov

Освоившийся
Пользователь
05.08.2014
325
16
0
А можеш сделать для дпс чтобы выдовал прова +проверка на справку ?

 

Eitzen

Новичок
Пользователь
22.02.2015
260
14
0
Ник правильно напишите!

_TKILLAH_

 

MADDD

Освоившийся
Пользователь
02.03.2015
181
25
0
25
if(strcmp(cmd, "/spravka", true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "Используйте: /spravka [playerid/PartOfName]");
new para1;
para1 = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
if(PlayerInfo[playerid][pMember] != 11 || PlayerInfo[playerid][pLeader] != 11) return SendClientMessage(playerid, COLOR_GRAD1, "Вы не инструктор!);
if(!IsPlayerConnected(para1)) return NoPlayerConnect;
if(para1 == INVALID_PLAYER_ID) return NetotID;
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
PlayerInfo[para1][pLicDostup] = 1;
format(string, sizeof(string), "%s дал Вам доступ на получение прав", sendername);
SendClientMessage(para1, COLOR_WHITE, string);
format(string, sizeof(string), "Вы дали доступ на получение прав %s", giveplayer);
SendClientMessage(playerid, COLOR_WHITE, string);
return true;
}
//===========================================================================
if(strcmp(cmd, "/unspravka", true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "Используйте: /unspravka [playerid/PartOfName]");
new para1;
para1 = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
if(PlayerInfo[playerid][pMember] != 11 || PlayerInfo[playerid][pLeader] != 11) return SendClientMessage(playerid, COLOR_GRAD1, "Вы не инструктор!);
if(!IsPlayerConnected(para1)) return NoPlayerConnect;
if(para1 == INVALID_PLAYER_ID) return NetotID;
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
PlayerInfo[para1][pLicDostup] = 0;
format(string, sizeof(string), "%s забрал у Вас справку об обучении в Автошколе", sendername);
SendClientMessage(para1, COLOR_WHITE, string);
format(string, sizeof(string), "Вы забрали справку об обучении у %s", giveplayer);
SendClientMessage(playerid, COLOR_WHITE, string);
return true;
}

Когда выкладываешь хоть оптимизируй...

В начало мода добавьте:

#define NetotID    SendClientMessage(playerid,COLOR_GRAD2, "Неверый ID игрока.")
#define NoPlayerConnect SendClientMessage(playerid,COLOR_GRAD2, "Этот игрок не подключен к серверу.")
 

MADDD

Освоившийся
Пользователь
02.03.2015
181
25
0
25
Так же в команду /sprawka можно добавить следующую проверку:
if(PlayerInfo[para1][pLicDostup] == 1) return SendClientMessage(playerid, 
COLOR_GRAD1, "У этого игрока уже есть справка.");


 

pallatov

Освоившийся
Пользователь
05.08.2014
325
16
0
А как в команду дабавить ? 

 

artemka270

Новичок
Пользователь
06.03.2015
3
0
0
Хватит все темы воровать с удалено

 
Последнее редактирование модератором:
Статус
Закрыто для дальнейших ответов.