Опять фигня с SetTimer
#1

Вот решил сделать защиту для клана, а то фейки задолбали, ставят перед ником тег клана и пользуются всеми полномочиями, а бывает и под моим ником прут, решил сделать так, чтоб когда игрок заходит под тегом, ему давало 10 сек., чтоб ввести пароль, иначе кикнет, но проблема в том, что запрос пароля даёт нет только клану, а ещё и обычным игрокам, можно сказать из 30 игроков, 1-му даёт запрос, немоного переделал, теперь вообще никого не спрашивает. Вот код:

pawn Code:
new FaikH;
new FaikH2;

public OnPlayerConnect(playerid)
{
FaikH = SetTimer("FaikHAD",10000,0);
return 1;
}

forward FaikHAD(playerid);    //ANTI FAIKs
public FaikHAD(playerid){
new Nick[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nick, sizeof(Nick));
if(strfind(Nick, "[HAD]", true) != -1 || strfind(Nick, "[HAD_tp]", true) != -1){
SendClientMessage(playerid, NRED, "Вы не ввели пароль клана, вам даётся ещё 5 секунд!");
FaikH2 = SetTimer("FaikHAD2",5000,0);}
}

forward FaikHAD2(playerid);    //ANTI FAIKs
public FaikHAD2(playerid){
new Nick[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nick, sizeof(Nick));
if(strfind(Nick, "[HAD]", true) != -1 || strfind(Nick, "[HAD_tp]", true) != -1){
SendClientMessage(playerid, RED, "Вы не ввели пароль клана.");
Kick(playerid);}
}

public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/12345", true)==0)
{
SendClientMessage(playerid, NGREEN, "Пароль принят!");
KillTimer(FaikH);
KillTimer(FaikH2);
return 1;
}
return SendClientMessage(playerid,GREY,"[Ошибка] Такой команды не существует!");
}
Если что, это вырванные куски с мода
Reply
#2

pawn Code:
public OnPlayerConnect(playerid)
{
    SetPVarInt(playerid,"FagFound",1);//ключ на наличие тега в нике
    new Nick[MAX_PLAYER_NAME];//переменная под ник
    GetPlayerName(playerid, Nick, sizeof(Nick));//записываем ник в переменную
    if(strfind(Nick, "[HAD]", true) == -1 || strfind(Nick, "[HAD_tp]", true) == -1)DeletePVar(playerid,"FagFound");//если в нике нет тегов клана, удаляем ключ
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext, "/password blahblahblah", false))//проверка на пароль. замечу что игнорирование заглавных букв выключено, это важно в никах и паролях!
    {
        SendClientMessage(playerid, NGREEN, "Пароль принят!");
        DeletePVar(playerid,"FagFound");//удаляем ключ
        return 1;
    }
    return 0;
}

public OnPlayerRequestSpawn(playerid)//действие срабатывающее при нажатии ШИФТ после выбора скина
{
    if(GetPVarInt(playerid,"FagFound"))//если ключ существует
    {
        SendClientMessage(playerid, NRED, "Вы не ввели пароль клана!");//выводим сообщение о необходимости ввода пароля
        return 0;//возвращаем 0, не позволяет заспавница и возвращает на выбор скина
    }
    return 1;//если ключа не существет спавнит
}
Reply
#3

Спсибо, пропробую...
Reply
#4

Эм... вот:
error 017: undefined symbol "SetPVarInt"
error 017: undefined symbol "DeletePVar"
error 017: undefined symbol "GetPVarInt"

там инклудов ненужно некаких?
Reply
#5

Quote:
Originally Posted by K-911
View Post
Эм... вот:
error 017: undefined symbol "SetPVarInt"
error 017: undefined symbol "DeletePVar"
error 017: undefined symbol "GetPVarInt"

там инклудов ненужно некаких?
Перекомпиль с инклудами из 0.3b
Reply
#6

Омг, это же вообще павно от 0.2х оО
Reply
#7

Walk_M4n, если перекомпилю с инклудами но 0.3b, на 0.3а будет работать?
Что-то немогу найти нужный инклуд, кто-нибудь скажите название
Reply
#8

Инклуды идут вместе с сервером, скачай сервер со страницы загрузки.
Reply
#9

Я то скачал и поставил новые инклуды, но всёравно одно и то же

А, всё, спасибо, я не туда инклуды кидал, просто забыл где гл. папка pawno
Reply
#10

Ну это просто ( | ) какая-то! Версия Степашки не работает, я переделал вот так
pawn Code:
public OnPlayerConnect(playerid)
{
new Nick[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nick, sizeof(Nick));
if(strfind(Nick, "[HAD]", true) == -1 || strfind(Nick, "[HAD_tp]", true) == -1)
{
SetPVarInt(playerid,"FagFound",1);
}
return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext, "/password", false))
    {
        SendClientMessage(playerid, NGREEN, "Ïàðîëü ïðèíÿò!");
        DeletePVar(playerid,"FagFound");
        return 1;
    }
    return 0;
}

public OnPlayerRequestSpawn(playerid)
{
    if(GetPVarInt(playerid,"FagFound"))
    {
        SendClientMessage(playerid, NRED, "Âû íå ââåëè ïàðîëü êëàíà!");
        return 0;
    }
    return 1;
}
Я не понимаю как это возможно, но без пароля не может заспавнится неодин игрок, даже без тега, только пароль вводить, как это вообще возможно? Там же всё точно указано! >_<
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)