Вопросы

wdavy
Новичок

Добрый день! Я начинающий скриптер, всегда было интересно заняться серверами в крмп или сампе. Купил мод, передалал почти все под себя, но столкнулся с проблемой - /setleader не работает, и не работал в самом начале. Единственная главная команда, с которой у меня возникли проблемы. Код оставляю тут:
 

Спойлер

CMD:admup(playerid, params[])
{
    if(IsPlayerGrandAdmin(playerid))
    {
        if(admin_ban_time[playerid] > 0return SendClientMessage(playerid, -1"Ваши админ-действия на сервере заблокированы");
        if(AdminLogged[playerid] == falsereturn SendMess(playerid, MSG_YOU_NOT_LOGGED_AS_ADMIN);

       else if(sscanf(params, "i", params[0])) return SendClientMessage(playerid, 0xFFCC00AA"•[Подсказка] {FFFFFF}Введите: /admup [id игрока]");
        else if(PI[params[0]][pAdmin] < 1return SendClientMessage(playerid, COLOR_GREY, "Этот игрок не является администратором");
        else if(PI[params[0]][pAdmin] > 9return SendClientMessage(playerid, COLOR_GREY, "Этот администратор не может быть повышен");
        else if(params[0] == playerid) return SendClientMessage(playerid, COLOR_GREY, "Нельзя изменить свой уровень");
        new string[128];
        PI[params[0]][pAdmin]++;
        MysqlUpdatePlayerInt(params[0], "admin", PI[params[0]][pAdmin]);
        format(string, sizeof(string), "%s повысил Ваш уровень администратора", GetName(playerid));
        SendClientMessage(params[0], COLOR_YELLOW, string);
        format(string, sizeof(string), "[A] %s[%d] повысил администратора %s[%d] до %d уровня", GetName(playerid), playerid, GetName(params[0]), params[0], PI[params[0]][pAdmin]);
        SendAdminMessageEx(COLOR_GREY, string, 5);
        mysql_format(dbHandle, string, sizeof(string), "UPDATE "T_ADMIN" SET `level` = '%d' WHERE `name` = '%s' LIMIT 1", PI[params[0]][pAdmin], GetName(params[0]));
        mysql_tquery(dbHandle, string, """");

    }
    return 1;
}

 

 

Отредактировано пользователем Cawfee

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


Ссылка на сообщение

4 ответа на этот вопрос

  • 0
danya_white
Завсегдатый
Спойлер

CMD:admup(playerid, params[])
{
    if(IsPlayerGrandAdmin(playerid))
    {
        if(admin_ban_time[playerid] > 0
            return SendClientMessage(playerid, -1"Ваши админ-действия на сервере заблокированы");
            
        if(AdminLogged[playerid] == false
            return SendMess(playerid, MSG_YOU_NOT_LOGGED_AS_ADMIN);

        extract params -> new target, action; else
            return SendClientMessage(playerid, COLOR_WHITE, "•[Подсказка] {FFFFFF}Введите: /admup [id игрока] [0 - повысить/1 - понизить]");
            
        if(PI[target][pAdmin] < 1
            return SendClientMessage(playerid, COLOR_GREY, "Этот игрок не является администратором");
    
        if(PI[target][pAdmin] > 9
            return SendClientMessage(playerid, COLOR_GREY, "Этот администратор не может быть повышен");
            
        if(target == playerid) 
            return SendClientMessage(playerid, COLOR_GREY, "Нельзя изменить свой уровень");
            
        new string[256];
        
        switch(action)
        {
            case 0:
            {
                format(string, sizeof(string), "%s повысил Ваш уровень администратора", GetName(playerid));
                SendClientMessage(target, COLOR_YELLOW, string);
                
                format(string, sizeof(string), "[A] %s[%d] повысил администратора %s[%d] до %d уровня", GetName(playerid), playerid, GetName(target), target, PI[target][pAdmin]);
                SendAdminMessageEx(COLOR_GREY, string, 5);
                
                PI[target][pAdmin]++;
                MysqlUpdatePlayerInt(target, "admin", PI[target][pAdmin]);
                
                mysql_format(dbHandle, string, sizeof(string), "UPDATE "T_ADMIN" SET `level` = '%d' WHERE `name` = '%s' LIMIT 1", PI[target][pAdmin], GetName(target));
                mysql_tquery(dbHandle, string, """");
            }
            case 1:
            {
                format(string, sizeof(string), "%s понизил Ваш уровень администратора", GetName(playerid));
                SendClientMessage(target, COLOR_YELLOW, string);
                
                format(string, sizeof(string), "[A] %s[%d] понизил администратора %s[%d] до %d уровня", GetName(playerid), playerid, GetName(target), target, PI[target][pAdmin]);
                SendAdminMessageEx(COLOR_GREY, string, 5);
                
                PI[target][pAdmin]--;
                MysqlUpdatePlayerInt(target, "admin", PI[target][pAdmin]);
                
                mysql_format(dbHandle, string, sizeof(string), "UPDATE "T_ADMIN" SET `level` = '%d' WHERE `name` = '%s' LIMIT 1", PI[target][pAdmin], GetName(target));
                mysql_tquery(dbHandle, string, """");
            }
        }
    }
    return true;
}

 

Отредактировано пользователем Cawfee

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


Ссылка на сообщение
  • 0
wdavy
Новичок

@danya_white извини, я тупой (Слово удалено системой), не то вставил. Помоги, пожалуйста, с этим:
 

Спойлер

CMD:setleader(playerid, params[])
{
    if(IsPlayerGrandLeader(playerid))
    {
        if(admin_ban_time[playerid] > 0return SendClientMessage(playerid, -1"Âàøè àäìèí-äåéñòâèÿ íà ñåðâåðå çàáëîêèðîâàíû");
        else if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, 0xFFCC00AA"•[Ïîäñêàçêà] {FFFFFF}Ââåäèòå: /setleader [id èãðîêà]");
        else if(!IsPlayerConnected(params[0])) return SendMess(playerid, MSG_PLAYER_OFFLINE);
        else if(PlayerLogged[params[0]] == falsereturn SendMess(playerid, MSG_PLAYER_NOT_LOGGED);
        else if(IsPlayerInAnyVehicle(params[0])) return SendClientMessage(playerid, COLOR_GREY, "Èãðîê íå äîëæåí íàõîäèòüñÿ â òðàíñïîðòå!");
        else if((PI[params[0]][pAdmin] >= 1 && PI[params[0]][pAdmin] <= 11) && PI[playerid][pAdmin] != 12return SendClientMessage(playerid, COLOR_GREY, "Àäìèíèñòðàòîðà íåëüçÿ ñòàâèòü íà ïîñò ëèäåðà!");
        else if(PI[params[0]][pTempLeader]) return SendClientMessage(playerid, COLOR_GREY, "Ñíà÷àëà ñíèìèòå ñ ñåáÿ ïðàâà âðåìåííîãî ñîñòîÿíèå â îðãàíèçàöèè!");
        if(PI[params[0]][pLeader])
        {
            LeaveFractionPlayer(params[0]);
            SendMes(playerid, COLOR_BLUE, "Âû ñíÿëè %s ñ äîëæíîñòè ëèäåðà îðãàíèçàöèè",GetName(params[0]));
            SendMes(params[0], COLOR_BLUE, "Àäìèíèñòðàòîð %s ñíÿë Âàñ ñ äîëæíîñòè ëèäåðà îðãàíèçàöèè", GetName(playerid));
        }
        else
        {
            if(PI[params[0]][pLeader] > 0return SendClientMessage(playerid, COLOR_GREY, "Èãðîê ëèäåð äðóãîé îðãàíèçàöèè!");
            if(PI[params[0]][pMember] > 0return SendClientMessage(playerid, COLOR_GREY, "Èãðîê íàõîäèòüñÿ â äðóãîé îðãàíèçàöèè!");
            new str[90], str2[600];
            for(new i = 1; i < MAX_FRACTIONS; i++)
            {
                format(str, sizeof(str), "¹%i - %s\n", i, Fraction_Name[i]);
                strcat(str2, str);
            }
            SetPVarInt(playerid, "actplayerid", params[0]);
            ShowPlayerDialog(playerid, D_FRACMENU, 2"Îðãàíèçàöèè", str2, "Ïðèíÿòü""Îòìåíà");
        }
    }
    return 1;
}

 

 

Отредактировано пользователем Cawfee

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


Ссылка на сообщение
  • 0
danya_white
Завсегдатый
11 часов назад, wdavy сказал:

@danya_white извини, я тупой (Слово удалено системой), не то вставил. Помоги, пожалуйста, с этим:
 

Спойлер


CMD:setleader(playerid, params[])
{
    if(IsPlayerGrandLeader(playerid))
    {
        if(admin_ban_time[playerid] > 0) return SendClientMessage(playerid, -1, "Âàøè àäìèí-äåéñòâèÿ íà ñåðâåðå çàáëîêèðîâàíû");
        else if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, 0xFFCC00AA, "•[Ïîäñêàçêà] {FFFFFF}Ââåäèòå: /setleader [id èãðîêà]");
        else if(!IsPlayerConnected(params[0])) return SendMess(playerid, MSG_PLAYER_OFFLINE);
        else if(PlayerLogged[params[0]] == false) return SendMess(playerid, MSG_PLAYER_NOT_LOGGED);
        else if(IsPlayerInAnyVehicle(params[0])) return SendClientMessage(playerid, COLOR_GREY, "Èãðîê íå äîëæåí íàõîäèòüñÿ â òðàíñïîðòå!");
        else if((PI[params[0]][pAdmin] >= 1 && PI[params[0]][pAdmin] <= 11) && PI[playerid][pAdmin] != 12) return SendClientMessage(playerid, COLOR_GREY, "Àäìèíèñòðàòîðà íåëüçÿ ñòàâèòü íà ïîñò ëèäåðà!");
        else if(PI[params[0]][pTempLeader]) return SendClientMessage(playerid, COLOR_GREY, "Ñíà÷àëà ñíèìèòå ñ ñåáÿ ïðàâà âðåìåííîãî ñîñòîÿíèå â îðãàíèçàöèè!");
        if(PI[params[0]][pLeader])
        {
            LeaveFractionPlayer(params[0]);
            SendMes(playerid, COLOR_BLUE, "Âû ñíÿëè %s ñ äîëæíîñòè ëèäåðà îðãàíèçàöèè",GetName(params[0]));
            SendMes(params[0], COLOR_BLUE, "Àäìèíèñòðàòîð %s ñíÿë Âàñ ñ äîëæíîñòè ëèäåðà îðãàíèçàöèè", GetName(playerid));
        }
        else
        {
            if(PI[params[0]][pLeader] > 0) return SendClientMessage(playerid, COLOR_GREY, "Èãðîê ëèäåð äðóãîé îðãàíèçàöèè!");
            if(PI[params[0]][pMember] > 0) return SendClientMessage(playerid, COLOR_GREY, "Èãðîê íàõîäèòüñÿ â äðóãîé îðãàíèçàöèè!");
            new str[90], str2[600];
            for(new i = 1; i < MAX_FRACTIONS; i++)
            {
                format(str, sizeof(str), "¹%i - %s\n", i, Fraction_Name[i]);
                strcat(str2, str);
            }
            SetPVarInt(playerid, "actplayerid", params[0]);
            ShowPlayerDialog(playerid, D_FRACMENU, 2, "Îðãàíèçàöèè", str2, "Ïðèíÿòü", "Îòìåíà");
        }
    }
    return 1;
}

 

 

 

Что тут не работает у тебя?

Отредактировано пользователем Cawfee

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


Ссылка на сообщение
  • 0
wdavy
Новичок

@danya_white /setleader, просто ничего не происходит при написании команды

4 часа назад, danya_white сказал:

Что тут не работает у тебя?

 

Спойлер

CMD:setleader(playerid, params[])
{
    if(IsPlayerGrandLeader(playerid))
    {
        if(admin_ban_time[playerid] > 0return SendClientMessage(playerid, -1"Âàøè àäìèí-äåéñòâèÿ íà ñåðâåðå çàáëîêèðîâàíû");
        else if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, 0xFFCC00AA"•[Ïîäñêàçêà] {FFFFFF}Ââåäèòå: /setleader [id èãðîêà]");
        else if(!IsPlayerConnected(params[0])) return SendMess(playerid, MSG_PLAYER_OFFLINE);
        else if(PlayerLogged[params[0]] == falsereturn SendMess(playerid, MSG_PLAYER_NOT_LOGGED);
        else if(IsPlayerInAnyVehicle(params[0])) return SendClientMessage(playerid, COLOR_GREY, "Èãðîê íå äîëæåí íàõîäèòüñÿ â òðàíñïîðòå!");
        else if((PI[params[0]][pAdmin] >= 1 && PI[params[0]][pAdmin] <= 11) && PI[playerid][pAdmin] != 12return SendClientMessage(playerid, COLOR_GREY, "Àäìèíèñòðàòîðà íåëüçÿ ñòàâèòü íà ïîñò ëèäåðà!");
        else if(PI[params[0]][pTempLeader]) return SendClientMessage(playerid, COLOR_GREY, "Ñíà÷àëà ñíèìèòå ñ ñåáÿ ïðàâà âðåìåííîãî ñîñòîÿíèå â îðãàíèçàöèè!");
        if(PI[params[0]][pLeader])
        {
            LeaveFractionPlayer(params[0]);
            SendMes(playerid, COLOR_BLUE, "Âû ñíÿëè %s ñ äîëæíîñòè ëèäåðà îðãàíèçàöèè",GetName(params[0]));
            SendMes(params[0], COLOR_BLUE, "Àäìèíèñòðàòîð %s ñíÿë Âàñ ñ äîëæíîñòè ëèäåðà îðãàíèçàöèè", GetName(playerid));
        }
        else
        {
            if(PI[params[0]][pLeader] > 0return SendClientMessage(playerid, COLOR_GREY, "Èãðîê ëèäåð äðóãîé îðãàíèçàöèè!");
            if(PI[params[0]][pMember] > 0return SendClientMessage(playerid, COLOR_GREY, "Èãðîê íàõîäèòüñÿ â äðóãîé îðãàíèçàöèè!");
            new str[90], str2[600];
            for(new i = 1; i < MAX_FRACTIONS; i++)
            {
                format(str, sizeof(str), "¹%i - %s\n", i, Fraction_Name[i]);
                strcat(str2, str);
            }
            SetPVarInt(playerid, "actplayerid", params[0]);
            ShowPlayerDialog(playerid, D_FRACMENU, 2"Îðãàíèçàöèè", str2, "Ïðèíÿòü""Îòìåíà");
        }
    }
    return 1;
}

 

 

Отредактировано пользователем Cawfee

Заметка от Cawfee , создано

Не стоит вставлять код через теги "Код" и "Цитата". Пользуйтесь тегом "Код" для публикации кода и тегом "Спойлер" для оборачивания кода в меньшую сущность (чтобы код был спрятан).

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


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

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

  • Похожий контент

    • Дебилойд
      От Дебилойд
      Здравствуйте!
      Мы ищем талантливого 3D-моделлера в команду нашего CRMP-проекта!
      Что нужно будет делать:
      Моделировать и адаптировать автомобили.
      Создавать и настраивать скины (модели персонажей).
      Большим плюсом будет:
      Умение создавать качественные и оптимизированные интерьеры.
      Если вы хотите стать частью нашей команды и развивать проект вместе с нами, пишите в ЛС. Ждем ваши портфолио!
    • LORDIKUS
      От LORDIKUS
      Уважаемые участники форума - всех приветствую, кто перешел в беседу моей темы обсуждения. В настоящее время у меня зарождается огромное желание и мысль создать собственный CR:MP проект, но столкнулся с единственной проблемой - с отсутствием команды людей, у которых будет искреннее желание ежедневно вкладывать свой труд на разработку проекта. Особого опыта в скриптинге, маппинге, дизайне или в моделировании у меня не имеется, поэтому такой критерий как опыт в определенной сфере для желающих вступить в команду я не рассматриваю. Так как проект не открыт и находится на начальной стадии создания, мое сотрудничество выстраивается на некоммерческой основе (без выплаты за проделанную работу и труд), однако я не собираюсь отрицать высокую ценность вложенного командой труд — труд, особенно на первой стадии разработки я рассматриваю превыше всего. После открытия проекта в зависимости от коммерции и чистой прибыли каждый участник будет получать настоящую выплату, однако это также может убить еще значительное время. Мне нужна команда, которая проявит искренний интерес в создании общего между командой CR:MP проекта, пожертвует свое время, а также вложит собственный труд благодаря заработанным навыкам. Если вас заинтересовала данная тема обсуждения, пожалуйста, свяжитесь со мной по любым возможным и удобным для вас контактам связи ниже. Спасибо всем, кто зашел в мою беседу!

      🔗 Спец. Связь:
      — DISCORD: https://discord.com/users/1452715348196589691 (перейти по ссылке и добавить в друзья) ИЛИ _shin833_ (ввести никнейм и отправить запрос дружбы)
      — VK: https://vk.com/shin833
      — TG: https://t.me/s_hin833
    • Korochansky
      От Korochansky
      Настало время объявить о скором выпуске первого релиза среды разработки под названием Spawn.

      В настоящее время программа находится на заключительных этапах доработки кода и локализации интерфейса.
      Таким образом, в течение следующей недели будет выпущена быстрая и современная среда разработки, обладающая следующими возможностями (о которых я расскажу сейчас, а о других — позже):
       
      Полнофункциональный локальный Git: 
      Индексирование, фиксации, индикаторы состояния и мягкий/жесткий сброс до любой точки сохранения одним щелчком мыши. Разрабатывайте свой игровой сервер, не боясь его сломать.
      Новички могут рассматривать это как историю кодовой базы вашего сервера (что и есть на самом деле).
       
      Чистый UTF-8 (без BOM): 
      Полный отказ от устаревшей кодировки Windows-1251 (CP1251) для абсолютной стабильности и идеальной совместимости с Git.
      Реализация поддержки CP1251 привела бы к нестабильному поведению программы и ухудшила бы пользовательский опыт.
       
      История изменений строк: Редактор выделяет измененные строки в реальном времени в полях рядом с номерами строк. Это позволяет мгновенно видеть границы изменений, внесенных с момента открытия файла.
       
      Сопоставление и выделение фигурных скобок: мгновенное выделение открывающих и закрывающих фигурных скобок для быстрой навигации по структуре кода и защиты от ошибок компиляции.
       
      Интеграция с SAMPCTL: готовая к использованию автоматизация процессов. Сборка, запуск сервера и менеджер зависимостей (управление библиотеками и плагинами) работают напрямую из интерфейса редактора.
       
      И многое другое...
       
      И самое главное: проект будет с открытым исходным кодом под лицензией GPLv3!
      Следите за новостями о выпуске в репозитории: https://github.com/daniilkorochansky/spawn
    • KodBi
      От KodBi
      шапка
      по одиночке работают
      нужны оба