Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 6 из 6

Тема: /welcome

  1. #1
    Аватар для Kurbanoff
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.08.2015
    Сообщений
    73
    Репутация:
    2 ±

    /welcome

    Всем привет. Сделал простенькую команду , проверяю не работает у администраторов , а у обычных работает
    PHP код:
        if(strcmp(cmd"/welcome"true) == 0)
        {
            if(
    PlayerInfo[playerid][pAdmin] >= 1)
            {
                new 
    arank[64];
                
    arank IsAdminName(PlayerInfo[playerid][pAdmin],PlayerInfo[playerid][pHelper]);
                
    format(stringsizeof(string), "%s %s: желает вам приятной игры!"arankPN(playerid));
                
    SendClientMessageToAll(COLOR_YELLOWstring);
            }
            else 
    SendClientMessage(playeridCOLOR_GREY"[!] Вы не уполномочены использовать эту команду!");
            return 
    1;
        } 
    Фиксируйте ошибку , и учите меня , на каком строчке моя ошибка
    level in scripting: beginner

  2. #2
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Команда должна работать у администраторов. Код верный. Но есть кое-что нелогичное.

    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    • Для функций, выполняющих проверку чего-либо, следует использовать префикс Is.
      Примеры:
      Код:
      // из стандартных функций SA:MP
      native IsPlayerAdmin(playerid);
      native IsPlayerConnected(playerid);
      native IsPlayerInAnyVehicle(playerid);
      
      // примеры пользовательских функций
      stock bool:IsHouseFree(houseid);
      stock IsRPNick(name[]); // Название кликабельно.
    • Префиксы Get/Set должны использоваться в названиях функций, получающих доступ к какому-либо атрибуту.
      Примеры:
      Код:
      // из стандартных функций SA:MP
      native GetPlayerPos(playerid, &Float:x, &Float:y, &Float:z);
      native SetPlayerPos(playerid, Float:x, Float:y, Float:z);
      native GetVehicleHealth(vehicleid, &Float:health);
      native SetVehicleHealth(vehicleid, Float:health);
      
      // примеры пользовательских функций
      stock GetHousePrice(houseid);
      stock SetHousePrice(houseid, price);
      stock GetBusinessFee(businessid);
      stock SetBusinessFee(businessid, fee);
    Выложите функцию "IsAdminName".
    Последний раз редактировалось L0ndl3m; 24.01.2016 в 12:08.

  3. #3
    Аватар для Kurbanoff
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.08.2015
    Сообщений
    73
    Репутация:
    2 ±
    PHP код:
    stock IsAdminNames(HelperAdmin)
    {
        if (
    Helper ) return Helper;
        else if (
    Admin 0)
        {
            if (
    Admin >=7777Admin 10;
             return 
    Admin 3;
         }
        else return 
    0;
    }
    #define IsAdminName(%1,%2) AdminNames[IsAdminNames(%1,%2)] 
    PHP код:
    new AdminNames[14][64] = {"Неизвестно""Мл.Хелпер","Хелпер","Гл.Хелпер",
        
    "Пом.Модера""Модератор""Супермодер""Гл.Модер",
        
    "Пом.Админа""РП Админ""Админ""Ст.Админ",
        
    "Зам.Гл.Админ""Главный Администратор"}; 
    Как я понимаю stock IsAdminNames(Helper, Admin) привязана к переменную new AdminNames[14][64]
    level in scripting: beginner

  4. #4
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    PHP код:
    if(strcmp(cmdtext"/welcome"true) == 0)
    {
        static const
            
    rank_names[14][22] =
            {
                
    "Мл.Хелпер",
                
    "Хелпер",
                
    "Гл.Хелпер",
                
    "Пом.Модера",
                
    "Модератор",
                
    "Супермодер",
                
    "Гл.Модер",
                
    "Пом.Админа",
                
    "РП Админ",
                
    "Админ",
                
    "Ст.Админ",
                
    "Зам.Гл.Админ",
                
    "Главный Администратор"
            
    };

        new
            
    pos =
            (
    <= PlayerInfo[playerid][pAdmin] <= 10)
            ? 
    PlayerInfo[playerid][pAdmin] + 2
            
    : (<= PlayerInfo[playerid][pHelper] <= 4)
            ? 
    PlayerInfo[playerid][pHelper] - 1
            
    : -1;

        if(
    pos != -1)
        {
            
    format(stringsizeof(string), "%s %s: желает вам приятной игры!"rank_names[pos], PN(playerid));
            
    SendClientMessageToAll(COLOR_YELLOWstring);
        }
        else
            
    SendClientMessage(playeridCOLOR_GREY"[!] Вы не уполномочены использовать эту команду!");

        return 
    1;

    Макрос "IsAdminName" и сток "IsAdminNames" можете удалить, если больше нигде их не используете.
    Последний раз редактировалось L0ndl3m; 24.01.2016 в 16:21.

  5. #5
    Аватар для Kurbanoff
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.08.2015
    Сообщений
    73
    Репутация:
    2 ±
    Цитата Сообщение от Londlem Посмотреть сообщение

    Макрос "IsAdminName" и сток "IsAdminNames" можете удалить, если больше нигде их не используете.
    Извините но я до сегодняшнего дня использую этот макрос "IsAdminNames" с ним удобнее , и во всех проверках где нужно название рангов Администратора я использую этот код
    PHP код:
    new arank[64];
    arank IsAdminName(PlayerInfo[playerid][pAdmin],PlayerInfo[playerid][pHelper]); 


    PHP код:
    if(strcmp(cmdtext"/welcome"true) == 0)
    {
        static const
            
    rank_names[14][22] =
            {
                
    "Мл.Хелпер",
                
    "Хелпер",
                
    "Гл.Хелпер",
                
    "Пом.Модера",
                
    "Модератор",
                
    "Супермодер",
                
    "Гл.Модер",
                
    "Пом.Админа",
                
    "РП Админ",
                
    "Админ",
                
    "Ст.Админ",
                
    "Зам.Гл.Админ",
                
    "Главный Администратор"
            
    };

        new
            
    pos =
            (
    <= PlayerInfo[playerid][pAdmin] <= 10)
            ? 
    PlayerInfo[playerid][pAdmin] + 2
            
    : (<= PlayerInfo[playerid][pHelper] <= 4)
            ? 
    PlayerInfo[playerid][pHelper] - 1
            
    : -1;

        if(
    pos != -1)
        {
            
    format(stringsizeof(string), "%s %s: желает вам приятной игры!"rank_names[pos], PN(playerid));
            
    SendClientMessageToAll(COLOR_YELLOWstring);
        }
        else
            
    SendClientMessage(playeridCOLOR_GREY"[!] Вы не уполномочены использовать эту команду!");

        return 
    1;

    Спасибо за этот код (Важно: Работоспособность вашего кода я не проверял , но за труд я истинно благодарю вам)
    PS: Если найду способ решение , я буду поделиться с вами на счет этой проблемы .
    level in scripting: beginner

  6. #6
    Аватар для Blood
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.12.2013
    Сообщений
    69
    Репутация:
    2 ±
    по-пробуй так
    PHP код:
    if(strcmp(cmd"/welcome"true) == 0
        { 
                if(
    PlayerInfo[playerid][pAdmin] == 0)  return SendClientMessage(playeridCOLOR_GREY"[!] Вы не уполномочены использовать эту команду!"); 
                new 
    arank[64]; 
                
    arank IsAdminName(PlayerInfo[playerid][pAdmin],PlayerInfo[playerid][pHelper]); 
                
    format(stringsizeof(string), "%s %s: желает вам приятной игры!"arankPN(playerid)); 
                
    SendClientMessageToAll(COLOR_YELLOWstring); 
                return 
    1
        } 

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •