Вопросы по PAWN скриптингу

Hoveringruss

Новичок
1
0
Здравствуйте, столкнулись с проблемой не можем сделать так, чтобы нельзя было забаниить админа, у которого уровнь больше 100.
Подскажите какие-нибудь решения.

Вот сама команда:

CMD:ban(playerid, params[])
{
if(PI[playerid][Admin] < 1000) return SCM(playerid, COLOR_SYSTEM, "У тебя нет прав использовать эту команду");
new plid, str[75];
if(sscanf(params, "d", plid)) return SCM(playerid, COLOR_SYSTEM, "Введи /бан [номер игрока]");
else if(!IsPlayerConnected(plid)) return SCM(playerid, COLOR_SYSTEM, "Такого игрока не существует");
// else if(playerid == plid) return SCM(playerid, COLOR_SYSTEM, "Ты не можешь забанить себя");
else if(PI[playerid][Admin] < PI[plid][Admin] && !IsPlayerAdmin(playerid))
{
if(!strcmp(Name(playerid), "Aleksander_Severov", true)) return 1;
SendClientMessage(playerid, COLOR_SYSTEM, "Игрок администратор");
return 1;
}
format(str, sizeof(str), "Админ %s [%d] забанил %s", Name(playerid), playerid, Name(plid), plid);
SendClientMessageToAll(0x962929FF, str);
format(str, sizeof(str), "Админ %s [%d] забанил %s [%d]", Name(playerid), PI[playerid][ID], Name(plid), PI[plid][ID]);
alog(str, 0);
format(query1, sizeof(query1), "INSERT INTO `bans` (`IP`) VALUES ('%s')", PI[plid][IP]);
mysql_query(query1);
PlayerPlaySound(plid,1187,0.0,0.0,0.0);
SetTimerEx("ClearMuz", 10000, false, "d", plid);
BanEx(plid, Name(playerid));
return true;
}
 

bet.io

Известный
117
16
Подскажите пожалуйста, как перенести текст на следующую строку
Код:
SendMes(para1, 0x6AB1FFAA, " Рабочий день окончен \n Вы были приглашены в %s лидером %s", ftext, PTEMP[playerid][pName]);
Мне нужно, чтобы было так
Код:
 Рабочий день окончен
 Вы были приглашены в %s лидером %s
Заранее спасибо за помощь :)
 

ImPasha

Software Developer & System Administrator
Друг
1,788
2,141
Подскажите пожалуйста, как перенести текст на следующую строку
Код:
SendMes(para1, 0x6AB1FFAA, " Рабочий день окончен \n Вы были приглашены в %s лидером %s", ftext, PTEMP[playerid][pName]);
Мне нужно, чтобы было так
Код:
 Рабочий день окончен
 Вы были приглашены в %s лидером %s
Заранее спасибо за помощь :)
Если ты про SCM, то никак - только в две команды написать, либо через массив, что очень невыгодно в таком случае.
Если ты про перенос в самом редакторе, то это выглядит примерно так:
PHP:
SCM(playerid, -1,
"Текст 1\n\
Текст 2");
 

bet.io

Известный
117
16
Если ты про SCM, то никак - только в две команды написать, либо через массив, что очень невыгодно в таком случае.
Если ты про перенос в самом редакторе, то это выглядит примерно так:
PHP:
SCM(playerid, -1,
"Текст 1\n\
Текст 2");
А можешь подсказать как сделать в две строки. Когда завершается рабочий день, у меня выводит сообщение в чат, вот только когда прописываю команду /iinvite, оповещение приходит только о приём, при том, что персонажа принимает на гражданка, вот код:
Код:
CMD:invite(playerid, params[])
{
    if(PTEMP[playerid][pLogin] == 0 || !GetPVarInt(playerid,"Fraction_Duty")) return true;
    new para1;
    new sendername[MAX_PLAYER_NAME];
    new giveplayer[MAX_PLAYER_NAME];
    new ftext[32];
    if(IsPlayerConnected(playerid))
    {
        if(!CanInvite(playerid)) return SCM(playerid, COLOR_GREY, " Вам недоступна эта функция!");
        if(sscanf(params, "u",para1)) return    SCM(playerid, COLOR_GRAD2, " Введите: /invite [id игрока]");
        if(GetDistanceBetweenPlayers(playerid, para1) < 5.0)
        {
            new skinid;
            switch(PTEMP[playerid][pMember])
            {
                case 3,19: skinid = 287;
                case 4: skinid = 274;
                case 5: skinid = 124;
                case 6: skinid = 123;
                case 7: skinid = 57;
                case 9,16,20: skinid = 188;
                case 11: skinid = 59;
                case 12: skinid = 103;
                case 13: skinid = 108;
                case 14: skinid = 111;
                case 15: skinid = 105;
                case 17: skinid = 114;
                case 18: skinid = 175;
                case 24,26,29: skinid = 247;
            }
            if(IsPlayerInAnyVehicle(para1)) return SCM(playerid, COLOR_GREY, " Игрок в машине!");
            if(PTEMP[para1][pMember] != 0) return SCM(playerid, COLOR_GREY,  "Игрок состоит в организации");
            if(PTEMP[para1][pWarns] >= 1) return SCM(playerid, COLOR_GRAD1, " У игрока Warn.");
            GetPlayerName(para1, giveplayer, sizeof(giveplayer));
            GetPlayerName(playerid, sendername, sizeof(sendername));
            format(string, 128, " Вы пригласили %s присоеденится к %s", giveplayer,ftext);
            SCM(playerid, COLOR_BLUE, string);
            format(string, 128, " Вы приглашены в %s лидером %s", GetFracName(PTEMP[playerid][pMember]), sendername);
            SCM(para1, COLOR_BLUE, string);
            PTEMP[para1][pMember] = PTEMP[playerid][pMember];
            PTEMP[para1][pRank] = 1;
            DeletePVar(para1,"Fraction_Duty");
            PTEMP[para1][pJob] = 0;
            PTEMP[para1][pModel] = skinid;
            if(IsAGang(para1) || IsAMafia(para1) || IsABiker(para1)) SpawnPlayer(para1);
            printf("Игрок %s принял %s в %s", Name(playerid), Name(para1), ftext);
            new year, month, day, hour, minute, second;
            getdate(year, month, day);
            gettime(hour, minute, second);
            mysql_format(DATABASE,QUERY,128, "UPDATE `"TABLE_ACCOUNTS"` SET pOnlineLid = '%04i/%02i/%02i %02i:%02i:%02i' WHERE name = '%e'", year, month, day, hour, minute, second, PTEMP[para1][pName]);
            mysql_function_query(DATABASE,QUERY,false,"","");
        }
    }
    return true;
}
 

ImPasha

Software Developer & System Administrator
Друг
1,788
2,141
А можешь подсказать как сделать в две строки. Когда завершается рабочий день, у меня выводит сообщение в чат, вот только когда прописываю команду /iinvite, оповещение приходит только о приём, при том, что персонажа принимает на гражданка, вот код:
Код:
CMD:invite(playerid, params[])
{
    if(PTEMP[playerid][pLogin] == 0 || !GetPVarInt(playerid,"Fraction_Duty")) return true;
    new para1;
    new sendername[MAX_PLAYER_NAME];
    new giveplayer[MAX_PLAYER_NAME];
    new ftext[32];
    if(IsPlayerConnected(playerid))
    {
        if(!CanInvite(playerid)) return SCM(playerid, COLOR_GREY, " Вам недоступна эта функция!");
        if(sscanf(params, "u",para1)) return    SCM(playerid, COLOR_GRAD2, " Введите: /invite [id игрока]");
        if(GetDistanceBetweenPlayers(playerid, para1) < 5.0)
        {
            new skinid;
            switch(PTEMP[playerid][pMember])
            {
                case 3,19: skinid = 287;
                case 4: skinid = 274;
                case 5: skinid = 124;
                case 6: skinid = 123;
                case 7: skinid = 57;
                case 9,16,20: skinid = 188;
                case 11: skinid = 59;
                case 12: skinid = 103;
                case 13: skinid = 108;
                case 14: skinid = 111;
                case 15: skinid = 105;
                case 17: skinid = 114;
                case 18: skinid = 175;
                case 24,26,29: skinid = 247;
            }
            if(IsPlayerInAnyVehicle(para1)) return SCM(playerid, COLOR_GREY, " Игрок в машине!");
            if(PTEMP[para1][pMember] != 0) return SCM(playerid, COLOR_GREY,  "Игрок состоит в организации");
            if(PTEMP[para1][pWarns] >= 1) return SCM(playerid, COLOR_GRAD1, " У игрока Warn.");
            GetPlayerName(para1, giveplayer, sizeof(giveplayer));
            GetPlayerName(playerid, sendername, sizeof(sendername));
            format(string, 128, " Вы пригласили %s присоеденится к %s", giveplayer,ftext);
            SCM(playerid, COLOR_BLUE, string);
            format(string, 128, " Вы приглашены в %s лидером %s", GetFracName(PTEMP[playerid][pMember]), sendername);
            SCM(para1, COLOR_BLUE, string);
            PTEMP[para1][pMember] = PTEMP[playerid][pMember];
            PTEMP[para1][pRank] = 1;
            DeletePVar(para1,"Fraction_Duty");
            PTEMP[para1][pJob] = 0;
            PTEMP[para1][pModel] = skinid;
            if(IsAGang(para1) || IsAMafia(para1) || IsABiker(para1)) SpawnPlayer(para1);
            printf("Игрок %s принял %s в %s", Name(playerid), Name(para1), ftext);
            new year, month, day, hour, minute, second;
            getdate(year, month, day);
            gettime(hour, minute, second);
            mysql_format(DATABASE,QUERY,128, "UPDATE `"TABLE_ACCOUNTS"` SET pOnlineLid = '%04i/%02i/%02i %02i:%02i:%02i' WHERE name = '%e'", year, month, day, hour, minute, second, PTEMP[para1][pName]);
            mysql_function_query(DATABASE,QUERY,false,"","");
        }
    }
    return true;
}
Не совсем понял, что ты хочешь сделать. Если тебе просто нужна надпись про то, что рабочий день окончен, то вставь SCM перед строкой с приглашением.
 

bet.io

Известный
117
16
Не совсем понял, что ты хочешь сделать. Если тебе просто нужна надпись про то, что рабочий день окончен, то вставь SCM перед строкой с приглашением.
Когда будут прописывать команду /iinvite, в чат должно выводить сообщение
Код:
 Рабочий день окончен
 Вы были приглашены лидером .. в организацию ..
 

ImPasha

Software Developer & System Administrator
Друг
1,788
2,141
Когда будут прописывать команду /iinvite, в чат должно выводить сообщение
Код:
 Рабочий день окончен
 Вы были приглашены лидером .. в организацию ..
Перед строкой
Код:
format(string, 128, " Вы приглашены в %s лидером %s", GetFracName(PTEMP[playerid][pMember]), sendername);
Добавь строку
Код:
SCM(playerid, -1, "Рабочий день окончен");
 

bet.io

Известный
117
16
Перед строкой
Код:
format(string, 128, " Вы приглашены в %s лидером %s", GetFracName(PTEMP[playerid][pMember]), sendername);
Добавь строку
Код:
SCM(playerid, -1, "Рабочий день окончен");
В одну строку всё пишет, вот screen >>
rUO28xF.png