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

исправление команд /givebil и /givemedcard

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

Sanya_Scalletos

CMD:givebil(playerid, params[])
{
    if(PlayerInfo[playerid][pLeader] != 3 && PlayerInfo[playerid][pLeader] != 19 && PlayerInfo[playerid][pAlcoInvenxua] < 10) return SendClientMessage(playerid, COLOR_WHITE, "Ó âàñ íåò ïðàâ íà âûäà÷ó âîåííîãî áèëåòà.");
 if(sscanf(params, "d",params[0])) return SendClientMessage(playerid, -1, "Ââåäèòå: /givebil [ID]");
 if(!FIX_IsPlayerConnected(params[0]) || params[0] == playerid) return SendClientMessage(playerid, COLOR_WHITE, "Îøèáêà: Èãðîêà íå ñóùåñòâóåò èëè ýòî Âû");
 if(PlayerInfo[params[0]][pVoenBill] != 0) return SendClientMessage(playerid, COLOR_WHITE, "Ó èãðîêà óæå èìååòñÿ âîåííûé áèëåò.");
 if(GetDistanceBetweenPlayers(playerid, params[0]) > 2) return SendClientMessage(playerid, COLOR_WHITE, "Èãðîê äîëæåí íàõîäèòñÿ ðÿäîì ñ âàìè.");
    PlayerInfo[params[0]][pVoenBill] = 1;
    if(PlayerInfo[playerid][pAlcoInvenxua] > 0) SendMes(params[0], -1, "Àäìèíèñòðàòîð %s[%d] âûäàë âàì âîåííûé áèëåò.",PlayerInfo[playerid][pNames], playerid);
    else SendMes(params[0], -1, "%s %s[%d] âûäàë âàì âîåííûé áèëåò.",fRankName[PlayerInfo[playerid][pMember]-1][PlayerInfo[playerid][pRank]-1], PlayerInfo[playerid][pNames], playerid);
 SendMes(playerid, -1, "Âû âûäàëè âîåííûé áèëåò %s[%d]", PlayerInfo[params[0]][pNames],params[0]);
 format(mysql_query_, sizeof(mysql_query_), "UPDATE `"TABLE_ACCOUNT"` SET `voenbill` = '1' WHERE `pID` = '%d'",PlayerInfo[params[0]][pID]);
 mysql_function_query(connects, mysql_query_, false, "", "");
    return 1;
}
CMD:givemedcard(playerid, params[])
{
    if(PlayerInfo[playerid][pMember] == 4 && PlayerInfo[playerid][pRank] >= 6 || PlayerInfo[playerid][pAlcoInvenxua] > 10)
    {
     if(sscanf(params, "d",params[0])) return SendClientMessage(playerid, -1, "Ââåäèòå: /givemedcard [ID]");
     if(!FIX_IsPlayerConnected(params[0]) || params[0] == playerid) return SendClientMessage(playerid, COLOR_WHITE, "Îøèáêà: Èãðîêà íå ñóùåñòâóåò èëè ýòî Âû");
     if(PlayerInfo[params[0]][pMedCard] != 0) return SendClientMessage(playerid, COLOR_WHITE, "Ó èãðîêà óæå èìååòñÿ ìåäèöèíñêàÿ êàðòà.");
     if(GetDistanceBetweenPlayers(playerid, params[0]) > 2) return SendClientMessage(playerid, COLOR_WHITE, "Èãðîê äîëæåí íàõîäèòñÿ ðÿäîì ñ âàìè.");
        PlayerInfo[params[0]][pMedCard] = 1;
        if(PlayerInfo[playerid][pAlcoInvenxua] > 0) SendMes(params[0], -1, "Àäìèíèñòðàòîð %s[%d] âûäàë âàì ìåäèöèíñêóþ êàðòó.",PlayerInfo[playerid][pNames], playerid);
        else SendMes(params[0], -1, "%s %s[%d] âûäàë âàì ìåäèöèíñêóþ êàðòó.",fRankName[PlayerInfo[playerid][pMember]-1][PlayerInfo[playerid][pRank]-1], PlayerInfo[playerid][pNames], playerid);
     SendMes(playerid, -1, "Âû âûäàëè ìåäèöèíñêóþ êàðòó %s[%d]", PlayerInfo[params[0]][pNames],params[0]);
     format(mysql_query_, sizeof(mysql_query_), "UPDATE `"TABLE_ACCOUNT"` SET `medcard` = '1' WHERE `pID` = '%d'",PlayerInfo[params[0]][pID]);
     mysql_function_query(connects, mysql_query_, false, "", "");
 }
 else return SendClientMessage(playerid, COLOR_WHITE, "Ó âàñ íåò ïðàâ íà âûäà÷ó ìåäèöèíñêîé êàðòû.");
    return 1;
}

 

 

 

 

 

Как сделать так, чтобы можно было себе выдавать, а то себе выдать нельзя.

 

 

 

 

И тут тоже

 

 

 

CMD:showmedcard(playerid, params[])
{
 if(sscanf(params, "d",params[0])) return SendClientMessage(playerid, -1, "Ââåäèòå: /showmedcard [ID]");
 if(!FIX_IsPlayerConnected(params[0]) || params[0] == playerid) return SendClientMessage(playerid, COLOR_WHITE, "Îøèáêà: Èãðîêà íå ñóùåñòâóåò èëè ýòî Âû");
 if(GetDistanceBetweenPlayers(playerid, params[0]) > 2) return SendClientMessage(playerid, COLOR_WHITE, "Èãðîê äîëæåí íàõîäèòñÿ ðÿäîì ñ âàìè.");
    format(stringer1, sizeof(stringer1), "{FFFFFF}Ìåäèöèíñêèé îñìîòð %s: %s",PlayerInfo[playerid][pNames], PlayerInfo[playerid][pMedCard] ? ("{33AA33}Ïðîéäåí") : ("{AA3333}Íå ïðîéäåí"));
    ShowPlayerDialog(params[0],7587,DIALOG_STYLE_MSGBOX,"{D8F600}Ìåäèöèíñêàÿ êàðòà",stringer1,"Çàêðûòü","");
    format(stringer1, sizeof(stringer1), "%s ïîêàçûâàåò ñâîþ ìåäèöèíñêóþ êàðòó %s", PlayerInfo[playerid][pNames],PlayerInfo[params[0]][pNames]);
    ProxDetector(playerid, 30.0, COLOR_PURPLE, stringer1);
    return 1;
}

Изменено пользователем Sanya_Scalletos

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


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

Можно нескромный вопрос? Зачем Вы лезете в чей-то организованный код и в создание игровых режимов, если Вы не можете даже разобраться с логикой в простой команде? Или Вы хотите открыть сервер, ничего не делая?

А если по теме, то playerid - переменная с ID игрока, который вызывает команду, params[] - строка аргументов команды. sscanf делит строку на лексемы по токену (если токен не указан, то токеном считается пробел).

new string[] = "10 20";
new int1, int2;
sscanf(string, "dd", int1, int2);

Разделит строку в две переменные. int1 будет хранить 10, int2 - 20.
Ну вот и подумайте что и почему.

Изменено пользователем 16Shadows

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


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

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

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

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

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

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

Войти

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

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

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

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

×

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

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