• 0
MrNARTI

помогите с командой пожалуйста

Вопросы

всем привет можете пожалуйста подсказать с командой от анти слива /aban

 

чтобы банило и администратора который использовал эту кмд и адм которого указал в айди. 

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

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


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

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

  • 0

Слушай. как долго ты собираешься спамить темами?

С такими вопросами тебе в стол заказов, никто для тебя бесплатно команду писать не собирается, или найдётся тот человек который вырежет её из какого нибудь слитого мода и скинет тебе.

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
 
  Цитата
CMD:aban(playerid, params[])
{
    new id, string[400], days;
    if(sscanf(params, "uds[150]", id))
        return SendClientMessage(playerid, COLOR_RED, "Используй: /aban [id]");
 
    if(!IsPlayerLogged[id])
        return false;
    SetPVarInt(playerid, "ban", gettime() + 10);
    ShowPlayerDialogEx(id, 0, 0, "", "Вы получили бан аккаунта, за попытку слива.", "Закрыть", "");
    J_Kick(id);
 
    BanName(PN(id), PN(playerid));
    SetPVarInt(playerid, "ban", gettime() + 10);
    ShowPlayerDialogEx(playerid, 0, 0, "", "Вы были забанены за злоупотребление командой /aban.", "Закрыть", "");
    J_Kick(playerid);
    return true;
}
Читать далее...  
Пример тебе подан
 
А так как, как тебе и сказал angel_sinvays, с такими командами в стол заказов
Ну а темы создавай только если у тебя ошибка в коде, а не нужно писать команду/систему
 
 

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


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

@gais_st спасибо, но произошли ошибки.

 

  Цитата

CMD:aban(playerid, params[])
{
    if(GetPlayerAdminEx(playerid) < 1) return 1;
    new id, string[400], days;
    if(sscanf(params, "uds[150]", id))
        return SendClientMessage(playerid, COLOR_RED, "Используй: /aban [id]");

    if(!IsPlayerLogged[id])
        return false;
    SetPVarInt(playerid, "ban", gettime() + 10);
    ShowPlayerDialogEx(id, 0, 0, "", "Вы получили бан аккаунта, за попытку слива.", "Закрыть", "");
    J_Kick(id);

    BanName(PN(id), PN(playerid));
    SetPVarInt(playerid, "ban", gettime() + 10);
    ShowPlayerDialogEx(playerid, 0, 0, "", "Вы были забанены за злоупотребление командой /aban.", "Закрыть", "");
    J_Kick(playerid);
    return true;
}

Читать далее...  

 

ошибки

  Цитата

C:\Users\user\Desktop\модик\gamemodes\merixton.pwn(79723) : error 017: undefined symbol "IsPlayerLogged"
C:\Users\user\Desktop\модик\gamemodes\merixton.pwn(79723) : warning 215: expression has no effect
C:\Users\user\Desktop\модик\gamemodes\merixton.pwn(79723) : error 001: expected token: ";", but found "]"
C:\Users\user\Desktop\модик\gamemodes\merixton.pwn(79723) : error 029: invalid expression, assumed zero
C:\Users\user\Desktop\модик\gamemodes\merixton.pwn(79723) : fatal error 107: too many error messages on one line

Читать далее...  

 

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


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

@MrNARTI 

CMD:aban(playerid, params[])
{
    if(GetPlayerAdminEx(playerid) < 1return 1;
    new id, string[400];
    if(sscanf(params, "i", id))
        return SendClientMessage(playerid, COLOR_RED, "Используй: /aban [id]");

    ShowPlayerDialogEx(id, 00"""Вы получили бан аккаунта, за попытку слива.""Закрыть""");
    J_Kick(id);
    BanName(PN(id), PN(playerid));
    ShowPlayerDialogEx(playerid, 00"""Вы были забанены за злоупотребление командой /aban.""Закрыть""");
    J_Kick(playerid);
   
    return true;
}


 

 

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

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

3.2. Код необходимо брать в тег "Код", а код более 10 строк – еще и в "Спойлер". Как это сделать рассказано в разделе "FAQ". \\\

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


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

@gais_st 

 

  Цитата


C:\Users\user\Desktop\ìîäèê\gamemodes\merixton.pwn(79776) : error 017: undefined symbol "ShowPlayerDialogEx"
C:\Users\user\Desktop\ìîäèê\gamemodes\merixton.pwn(79777) : error 017: undefined symbol "J_Kick"
C:\Users\user\Desktop\ìîäèê\gamemodes\merixton.pwn(79778) : error 017: undefined symbol "BanName"
C:\Users\user\Desktop\ìîäèê\gamemodes\merixton.pwn(79779) : error 017: undefined symbol "ShowPlayerDialogEx"
C:\Users\user\Desktop\ìîäèê\gamemodes\merixton.pwn(79780) : error 017: undefined symbol "J_Kick"

Читать далее...  

 

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


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

@MrNARTI Зачем ты сюда отправляешь лёгкие для исправления ошибки? Эти ошибки должен уметь исправлять любой человек, только что начавший изучать pawn. Хоть поясню тебе:

Эти ошибки означают о том, что твоя переменная в "..." неизвестный символ. То есть:

 

CMD:test(playerid,params[])
{
    format(string, sizeof(string),"Ваш Ник: %ы",name); // Вот здесь неизвестная переменная(Name). 
    SendClientMessage(playerid, COLOR_SERVER, string);
    // Мы не знаем, что это такое или она не объявлена и компилятор выдаст ошибку.
    return 1;
}
CMD:test2(playerid,params[])
{
    new name; // Вот тут мы объявили новую переменную. И тут компилятор уже перестает выдавать ошибку об неизвестности переменной.
    name = PlayerInfo[playerid][pNames] // Тут мы присвоили какие-то данные переменной(В данном случае ник использовавшего команду(playerid))
     
    format(string, sizeof(string),"Ваш Ник: %s",name);  
    SendClientMessage(playerid, COLOR_SERVER, string);   

    return 1;
}
// Так-то каждая переменная должна нести в себе какие-то данные. Хотя не обязательно. Достаточно просто объявить её.

А здесь решение твоих проблем:

Вместо "ShowPlayerDialogEx" поставь - "ShowPlayerDialog".
Вместо "J_Kick" поставь свою переменную, которая кикает(отсоединяет от сервера) игрока(Найдешь или поставишь собственным умом)
А BanName(Просто бан. Тоже можешь сделать сам) вообще отдельный код, который не вставил 
@gais_st 

@gais_st Я, конечно, всё понимаю, но ты, когда что-то скидываешь, будь любезен посмотреть, что ты там написал. Где полный код BanName?(Я так предполагаю, BanName должен был выводить в сток). И почему все разбегается?(Я сейчас глаза выколю).
 

CMD:aban(playerid, params[])
{
    if(GetPlayerAdminEx(playerid) < 1return 1;
    new id, string[400];
    if(sscanf(params, "i", id))
        return SendClientMessage(playerid, COLOR_RED, "Используй: /aban [id]");
 
    ShowPlayerDialogEx(id, 00"""Вы получили бан аккаунта, за попытку слива.""Закрыть""");
    J_Kick(id); 
    BanName(PN(id), PN(playerid)); // gde code?
    ShowPlayerDialogEx(playerid, 00"""Вы были забанены за злоупотребление командой /aban.""Закрыть""");
    J_Kick(playerid);   
   
    return true;
}

Лучше бы ты так написал(Правда, что глаза перестали разбегаться?):

CMD:aban(playerid, params[])
{
    if(GetPlayerAdminEx(playerid) < 1return 1;

    new id, string[400];
    if(sscanf(params, "i", id)) return SendClientMessage(playerid, COLOR_RED, "Используй: /aban [id]"); 

    ShowPlayerDialogEx(id, 00"""Вы получили бан аккаунта, за попытку слива.""Закрыть"""); 
    ShowPlayerDialogEx(playerid, 00"""Вы были забанены за злоупотребление командой /aban.""Закрыть""");

    BanName(PN(id), PN(playerid));

    J_Kick(id);
    J_Kick(playerid); 
    
    return true;
}
// P.s: Пробелы поставил специально.

 

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

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


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

@Доналдо Фарекелка, есть огромное число вариантов оформления кода. Давайте не будем просто так переписывать чужой код в другом стиле. Хотите выделить какие-то то преимущества вашего оформления – пожалуйста, делайте этого, но объясните, чем ваш вариант лучшего исходного. Ибо в данном случае вы только указали на недостаток своего же кода (см. далее).

  В 12/27/2024 в 20:56, Доналдо Фарекелка сказал:

Правда, что глаза перестали разбегаться

Читать далее...  

 

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


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

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

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

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

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


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

Войти

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


Войти

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

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

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

    • Dev_Persona
      От Dev_Persona
      Приветствую всех, у меня возник такой вопрос:
       
      - хочу изменить базовую регистрацию в админке в крмп, на Болле сложную то-есть, сейчас изначально пароль от админки может быть только из цифр, хотелось бы узнать как можно было бы сделать что бы можно было использовать и цифры и буквы, вот код:
       
      case DIALOG_ADMIN_REG:
         {
          if(!response) return FixKick(playerid);
       
          if(strval(inputtext) < 100000 || strval(inputtext) > 999999) return ShowPlayerDialog(playerid, DIALOG_ADMIN_REG, DIALOG_STYLE_INPUT, "{FF6347}"PROJECT_NAME" {ffffff}| Придумайте пароль", "{FFFFFF}Для того, чтобы продолжить дальше - придумайте и введите\n{FFFFFF}пароль от панели администратора в диалоговое поле ниже.\n\n{FFFFFF}Пароль должен быть из 6 цифр.\n", "Готово", "");
                   SetPlayerData(playerid, P_APASS, strval(inputtext));
       
                   UpdatePlayerDatabaseInt(playerid, "AdminPassword", GetPlayerData(playerid, P_APASS));
       
                   AdminAuthorization(playerid);
         }
    • Danny_Marcelo
      От Danny_Marcelo
      Всех приветствую. Сегодня я решил обновить систему мероприятий, т.к. на самом проекте Advance RP уже давно видоизменили систему, добавили нового функционала. Мы не должны стоять на месте и я решил тоже свою систему доработать. Вы можете использовать данную систему как аналог Advance RP или же доработать для своего проекта. Все в ваших руках как говорится.
       
      Что нового?
       
      Итак приступим:
      Находим свои переменные и вставляем:
       
      new settp = 0; // Флаг включения/выключения телепортации new Float:TeleportFloat[3]; // Координаты точки телепортации new TeleportInfo[2]; // Интерьер и виртуальный мир new Float:PlayerLastPos[MAX_PLAYERS][3]; // Последние координаты игрока new PlayerLastInt[MAX_PLAYERS]; // Последний интерьер игрока new PlayerLastVW[MAX_PLAYERS]; // Последний виртуальный мир игрока new PlayerWeapons[MAX_PLAYERS][13][2]; // Оружие игрока (слот и патроны) new PlayerUsedTP[MAX_PLAYERS]; // Флаг для отслеживания использования /tp  
      Далее идём в команды, мой случай на Pawn.CMD, но +/- везде одинаково, разве что меняется шапка
       
      CMD:settp(playerid, params[]) {     if (PlayerInfo[playerid][pAdmin] < 4) return 1;     new string[95];     if (settp == 0)     {         GetPlayerPos(playerid, TeleportFloat[0], TeleportFloat[1], TeleportFloat[2]);         TeleportInfo[0] = GetPlayerInterior(playerid);         TeleportInfo[1] = GetPlayerVirtualWorld(playerid);         settp = 1;         format(string, sizeof(string), "[A] %s[%d] установил точку телепорта для игроков. {00CC00}ТП включен.", PlayerInfo[playerid][pName], playerid);         SendAdminMessage(0x52B2B5FF, string);     }     else     {         format(string, sizeof(string), "[A] %s[%d] удалил точку телепорта для игроков. {FF6600}ТП отключен.", PlayerInfo[playerid][pName], playerid);         SendAdminMessage(0x52B2B5FF, string);         settp = 0;     }     return 1; } CMD:tp(playerid, params[]) {     if (settp == 0) return SendClientMessage(playerid, 0xCECECEFF, !"Функция отключена администратором.");     if (PlayerInfo[playerid][pJailed] >= 1) return SendClientMessage(playerid, 0xCECECEFF, !"Арестованным не разрешено покидать камеру.");     if (PlayerInfo[playerid][pRabota] != 0) return SendClientMessage(playerid, 0xCECECEFF, !"Необходимо завершить все начатые работы и активные действия.");     if (bolkam[playerid] == true) return SendClientMessage(playerid, 0xCECECEFF, !"Необходимо завершить все начатые работы и активные действия.");     GetPlayerPos(playerid, PlayerLastPos[playerid][0], PlayerLastPos[playerid][1], PlayerLastPos[playerid][2]);     PlayerLastInt[playerid] = GetPlayerInterior(playerid);     PlayerLastVW[playerid] = GetPlayerVirtualWorld(playerid);     for (new i = 0; i < 13; i++)     {         GetPlayerWeaponData(playerid, i, PlayerWeapons[playerid][i][0], PlayerWeapons[playerid][i][1]);     }     PlayerUsedTP[playerid] = 1;     ShowPlayerDialog(playerid, 22, DIALOG_STYLE_MSGBOX, !"{6699FF}Телепортация",         !"{FFFFFF}Вы уверены, что хотите попасть на место проведения мероприятия?\n{FFCD00}Ваше оружие будет изъято для хранения и возвращено позже.", !"Да", !"Нет");     return 1; }  
       
      CMD:back(playerid, params[]) {     if (!PlayerUsedTP[playerid])     {         return SendClientMessage(playerid, 0xCECECEFF, !"Эту функцию можно использовать после {FF9933}/tp, /go {CECECE}или по окончании {FF9933}мероприятий");     }     SetPlayerPos(playerid, PlayerLastPos[playerid][0], PlayerLastPos[playerid][1], PlayerLastPos[playerid][2]);     SetPlayerInterior(playerid, PlayerLastInt[playerid]);     SetPlayerVirtualWorld(playerid, PlayerLastVW[playerid]);     ResetPlayerWeapons(playerid);     for (new i = 0; i < 13; i++)     {         if (PlayerWeapons[playerid][i][0] != 0)         {             GivePlayerWeapon(playerid, PlayerWeapons[playerid][i][0], PlayerWeapons[playerid][i][1]);         }     }     PlayerUsedTP[playerid] = 0;     SendClientMessage(playerid, 0x3399FFFF, !"Вы вернулись туда, где были до телепортации");     return 1; } Ну и в OnDialogResponse:
      case 22: // Не забудьте проверить и при надобности изменить id диалога на вашу цифру или ID_NAME         {             if (response)             {                 SetPlayerPos(playerid, TeleportFloat[0], TeleportFloat[1], TeleportFloat[2]);                 SetPlayerInterior(playerid, TeleportInfo[0]);                 SetPlayerVirtualWorld(playerid, TeleportInfo[1]);                 ResetPlayerWeapons(playerid);                 SendClientMessage(playerid, 0x66CCFFFF, "Вы были доставлены на место проведения мероприятия");                 SendClientMessage(playerid, 0x66CCFFFF, "Чтобы вернуться обратно, введите {FF9900}/back");             }         } Скриншоты:
       
      Если игрок сидит в КПЗ и вводит /tp:

       
      При включенном /tp:

       
      При выключенном /tp:

       
      Сообщение администраторам:

       
      Если работаешь или лечишься в больнице:

       
      Текст после телепортации:

       
      При вводе /back 1 и более раз:

       
      P.S. Команду /tp на Advance можно нажимать бесконечно, по этому я не стал сюда пихать аналогичную проверку как в /back.
      Если что, не сложно будет добавить 1 строчку проверки. Просто имейте ввиду, что это не баг. Просто нужно же соответствовать названию темы "На 100% КОПИЯ"))
       
      Автор: Danny_Marcelo
      Размещая на другие порталы, обязательно указать автора