Вопросы

lanza
Новичок

Я сделал команду на выдачу префикса для админа, что бы когда админ писал в /a чат(админский), то у него был префикс, который ему выдали, обзначающий его должность, всё скомпилировалось и на деле должно работать, но нет, захожу на сервер, прописываю команду, вроде прописывается и пишет "Вы выдали администратору префикс ...", но когда пишу в /а чат  допустим привет, то префикс не меняется, а остаётся префикс, прописанный для определённого уровня администратора. Помогите решить эту проблему.

 

от сам код команды

 

CMD:aprefix(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] < 7) return true;
    if(sscanf(params,"ds[100]",params[0],params[1])) return SendClientMessage(playerid, -1, "/aprefix [id] [префикс]");
    new fstring[400];
    format(fstring, sizeof(fstring), "Вы выдали администратору %s префикс %s", PlayerInfo[params[0]][pName], params[1]);
    SendClientMessage(playerid, 0xFFCC00FF, fstring);
    printf("%s - admpref", adminprefix[params[0]]);
    return true;
}

 

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

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

Код из вашего pawn мода, требуется брать код под тэг "Код", так же если код большой, то еще и под спойлер

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


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

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

  • 0

@Shakoladka вот

 

Спойлер

CMD:a(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] < 1) return false;
    if(ADuty[playerid]!=228) return SendClientMessage(playerid,COLOR_GREY,NO_DUTY_TEXT);
    new result[150], string[200];
    if(sscanf(params,"s[150]",result)) return SendClientMessage(playerid,COLOR_PURPLE,"Используйте: /a [текст]");
    new Admin[32];
    switch(PlayerInfo[playerid][pAdmin])
    {
    case ADM_MODER: Admin = "Хелпер";
    case ADM_SUPER_MODER: Admin = "Ст.Хелпер";
    case ADM_ADMIN: Admin = "Модератор";
    case ADM_SUPER_ADMIN: Admin = "Администратор";
    case ADM_GRAND_ADMIN: Admin = "Следящий Администратор";
    case ADM_GRAND: Admin = "Главный Администратор";
    case ADM_OSNOV: Admin = "Основатель";
    }
    format(string,sizeof(string),"[A] %s %s[%d]: %s",Admin,Name(playerid),playerid,result);
    SendAdminsMessage(COLOR_PURPLE,string,1);
    return true;
}

 

 

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


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

@lanza Замени:

Спойлер

CMD:aprefix(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] < 7) return true;
    if(sscanf(params,"ud[100]",params[0],params[1])) return SendClientMessage(playerid, -1, "/aprefix [id] [префикс]");
    if(params[0] == INVALID_PLAYER_ID) return SendClientMessage(playerid, -1, !"Игрок не в сети");
    new fstring[144];
    format(fstring, sizeof(fstring), "Вы выдали администратору %s префикс %s", PlayerInfo[params[0]][pName], params[1]);
    SendClientMessage(playerid, 0xFFCC00FF, fstring);
	adminprefix[params[0]] = '\0';
	strcat(adminprefix[params[0]], params[1]);
    printf("%s - admpref", adminprefix[params[0]]);
    return true;
}

 

Спойлер

CMD:a(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] < 1) return false;
    if(ADuty[playerid]!=228) return SendClientMessage(playerid,COLOR_GREY,NO_DUTY_TEXT);
    new result[150], string[200];
    if(sscanf(params,"s[150]",result)) return SendClientMessage(playerid,COLOR_PURPLE,"Используйте: /a [текст]");
    new Admin[32];
    switch(PlayerInfo[playerid][pAdmin])
    {
    case ADM_MODER: Admin = "Хелпер";
    case ADM_SUPER_MODER: Admin = "Ст.Хелпер";
    case ADM_ADMIN: Admin = "Модератор";
    case ADM_SUPER_ADMIN: Admin = "Администратор";
    case ADM_GRAND_ADMIN: Admin = "Следящий Администратор";
    case ADM_GRAND: Admin = "Главный Администратор";
    case ADM_OSNOV: Admin = "Основатель";
    }
    format(string,sizeof(string),"[A] %s %s %s[%d]: %s",adminprefix[playerid],Admin,Name(playerid),playerid,result);
    SendAdminsMessage(COLOR_PURPLE,string,1);
    return true;
}

 

 

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
m1n1vv
Свой человек
9 часов назад, Shakoladka сказал:

@lanza Замени:

  закрыть спойлер


CMD:aprefix(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] < 7) return true;
    if(sscanf(params,"ud[100]",params[0],params[1])) return SendClientMessage(playerid, -1, "/aprefix [id] [префикс]");
    if(params[0] == INVALID_PLAYER_ID) return SendClientMessage(playerid, -1, !"Игрок не в сети");
    new fstring[144];
    format(fstring, sizeof(fstring), "Вы выдали администратору %s префикс %s", PlayerInfo[params[0]][pName], params[1]);
    SendClientMessage(playerid, 0xFFCC00FF, fstring);
	adminprefix[params[0]] = '\0';
	strcat(adminprefix[params[0]], params[1]);
    printf("%s - admpref", adminprefix[params[0]]);
    return true;
}

 

  закрыть спойлер


CMD:a(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] < 1) return false;
    if(ADuty[playerid]!=228) return SendClientMessage(playerid,COLOR_GREY,NO_DUTY_TEXT);
    new result[150], string[200];
    if(sscanf(params,"s[150]",result)) return SendClientMessage(playerid,COLOR_PURPLE,"Используйте: /a [текст]");
    new Admin[32];
    switch(PlayerInfo[playerid][pAdmin])
    {
    case ADM_MODER: Admin = "Хелпер";
    case ADM_SUPER_MODER: Admin = "Ст.Хелпер";
    case ADM_ADMIN: Admin = "Модератор";
    case ADM_SUPER_ADMIN: Admin = "Администратор";
    case ADM_GRAND_ADMIN: Admin = "Следящий Администратор";
    case ADM_GRAND: Admin = "Главный Администратор";
    case ADM_OSNOV: Admin = "Основатель";
    }
    format(string,sizeof(string),"[A] %s %s %s[%d]: %s",adminprefix[playerid],Admin,Name(playerid),playerid,result);
    SendAdminsMessage(COLOR_PURPLE,string,1);
    return true;
}

 

 

#define DIALOG_APREFIX   444

new
    giveAdmin;

static const
    str_admin[][] =
    {
        "Хелпер",
        "Ст.Хелпер",
        "Модератор",
        "Администратор",
        "Следящий Администратор",
        "Главный Администратор",
        "Основатель"
    };

CMD:aprefix(playerid, params[])
{
    if (PlayerInfo[playerid][pAdmin] < 7)
        return 0;
    if (isnull(params))
        return SendClientMessage(playerid, -1, !"/aprefix [id]");
    giveAdmin = strval(params);
    if (!IsPlayerConnected(giveAdmin))
        return SendClientMessage(playerid, -1, !"Игрок не в сети");

    return ShowPlayerDialog(playerid, DIALOG_APREFIX, DIALOG_STYLE_LIST, !"Должность", !"Хелпер\nСт.Хелпер\nМодератор\nАдминистратор\nСледящий Администратор\nГлавный Администратор\nОснователь", !"Назначить", !"Закрыть");
}

CMD:a(playerid, params[])
{
    if (PlayerInfo[playerid][pAdmin] == 0)
        return ;
    if (ADuty[playerid] != 228)
        return SendClientMessage(playerid, COLOR_GREY, NO_DUTY_TEXT);
    if (isnull(params))
        return SendClientMessage(playerid, COLOR_PURPLE, !"Используйте: /a [текст]");

    static
        string[145];

    format(string, sizeof string,"[A] %s %s[%d]: %s", str_admin[PlayerInfo[playerid][pAdmin]-1], PlayerInfo[playerid][pName], playerid, params);
    SendAdminsMessage(COLOR_PURPLE, string, 1);
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if (dialogid == DIALOG_APREFIX)
    {
        if (response == 0)
            return 0;

        static const
            str[] = "Вы выдали администратору %s префикс %s";

        static
            string[sizeof str + MAX_PLAYER_NAME + 22 - 2*2];

        PlayerInfo[giveAdmin][pAdmin] = listitem+1;

        format(string, sizeof string, str, PlayerInfo[giveAdmin][pName], str_admin[PlayerInfo[giveAdmin][pAdmin]-1]);
        SendClientMessage(playerid, 0xFFCC00FF, string);
    }

    return 1;
}

 

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

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

Код больше 10 строк брать еще и под спойлер

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


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

@Shakoladka проблема

 

C:\Users\ДЛЯ ВАЛФЕЙФА\Desktop\Бонусник Мод 2018\gamemodes\brpmode.pwn(72106) : error 033: array must be indexed (variable "adminprefix")

проблема в это строке:

adminprefix[params[0]] = '\0';

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


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

@m1n1vv префикс теперь просто не выдаётся, всё скомпилировалось, но когда я прописываю кмд /aprefix 0 Батя(Допустим),то мне в чат пишет Введите /aprefix id [префикс], то есть ничего не выдаётся вообще

 

 

 

 

И да, у меня есть команда для админа /god на бессмертие, но нужен таймер, который будет каждые 0.000000001 секунды восстанавливать сам хп, подскажите, как его сделать

 

 

 

Отредактировано пользователем lanza
Причина: Дописал вопрос

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
m1n1vv
Свой человек
1 час назад, lanza сказал:

@m1n1vv префикс теперь просто не выдаётся, всё скомпилировалось, но когда я прописываю кмд /aprefix 0 Батя(Допустим),то мне в чат пишет Введите /aprefix id [префикс], то есть ничего не выдаётся вообще

 

 

 

 

И да, у меня есть команда для админа /god на бессмертие, но нужен таймер, который будет каждые 0.000000001 секунды восстанавливать сам хп, подскажите, как его сделать

 

 

 

Используй мой вариант.

Может проще выдавать бесконечное здоровье? 0x7F800000

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
m1n1vv
Свой человек
4 часа назад, lanza сказал:

@m1n1vv твой вариант кмд с префиксом выдаёт около 100 ошибок

Умничать не надо. Компилятор максимум выдает 26. Какие?

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


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

#include <a_samp>
#include <DC_CMD>
#include <foreach>

#define DIALOG_APREFIX   444

enum pInfo
{
	pName,
	pAdmin
};

new
    giveAdmin,
    PlayerInfo[MAX_PLAYERS][pInfo];
    

static const
    str_admin[][] =
    {
        "Хелпер",
        "Ст.Хелпер",
        "Модератор",
        "Администратор",
        "Следящий Администратор",
        "Главный Администратор",
        "Основатель"
    };

CMD:aprefix(playerid, params[])
{
    if (PlayerInfo[playerid][pAdmin] < 7)
        return 0;
    if (isnull(params))
        return SendClientMessage(playerid, -1, !"/aprefix [id]");
    giveAdmin = strval(params);
    if (!IsPlayerConnected(giveAdmin))
        return SendClientMessage(playerid, -1, !"Игрок не в сети");

    return ShowPlayerDialog(playerid, DIALOG_APREFIX, DIALOG_STYLE_LIST, !"Должность", !"Хелпер\nСт.Хелпер\nМодератор\nАдминистратор\nСледящий Администратор\nГлавный Администратор\nОснователь", !"Назначить", !"Закрыть");
}

CMD:a(playerid, params[])
{
    if (PlayerInfo[playerid][pAdmin] == 0)
        return 0;
    if (isnull(params))
        return SendClientMessage(playerid, 0x800080AA, !"Используйте: /a [текст]");

    static
        string[145];

    format(string, sizeof string,"[A] %s %s[%d]: %s", str_admin[PlayerInfo[playerid][pAdmin]-1], PlayerInfo[playerid][pName], playerid, params);
    foreach (Player, i)
    {
        if (PlayerInfo[i][pAdmin] != 0)
            SendClientMessage(i, -1, string);
    }
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if (dialogid == DIALOG_APREFIX)
    {
        if (response == 0)
            return 0;

        static const
            str[] = "Вы выдали администратору %s префикс %s";

        static
            string[sizeof str + MAX_PLAYER_NAME + 22 - 2*2];

        PlayerInfo[giveAdmin][pAdmin] = listitem+1;

        format(string, sizeof string, str, PlayerInfo[giveAdmin][pName], str_admin[listitem]);
        SendClientMessage(playerid, 0xFFCC00FF, string);
    }

    return 1;
}

 

 

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

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


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

@m1n1vv уже лучше, но вот ошибки:

C:\Users\ÄËß ÂÀËÔÅÉÔÀ\Desktop\Áîíóñíèê Ìîä 2018\gamemodes\brpmode.pwn(17812) : symbol is never used: "str_admin"
C:\Users\ÄËß ÂÀËÔÅÉÔÀ\Desktop\Áîíóñíèê Ìîä 2018\gamemodes\brpmode.pwn(60936) : error 017: undefined symbol "str_admin"
C:\Users\ÄËß ÂÀËÔÅÉÔÀ\Desktop\Áîíóñíèê Ìîä 2018\gamemodes\brpmode.pwn(60936) : warning 215: expression has no effect
C:\Users\ÄËß ÂÀËÔÅÉÔÀ\Desktop\Áîíóñíèê Ìîä 2018\gamemodes\brpmode.pwn(60936) : error 001: expected token: ";", but found "]"
C:\Users\ÄËß ÂÀËÔÅÉÔÀ\Desktop\Áîíóñíèê Ìîä 2018\gamemodes\brpmode.pwn(60936) : error 029: invalid expression, assumed zero
C:\Users\ÄËß ÂÀËÔÅÉÔÀ\Desktop\Áîíóñíèê Ìîä 2018\gamemodes\brpmode.pwn(60936) : fatal error 107: too many error messages on one line

 

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

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

Выкладывайте код правильно. Как это правильно сделать смотрите здесь.

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

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

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


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

Значит что-то не так подключено

Pawn compiler 3.10.4	 	 	Copyright (c) 1997-2006, ITB CompuPhase

Header size:            676 bytes
Code size:             8300 bytes
Data size:            26224 bytes
Stack/heap size:      16384 bytes; estimated max. usage=25 cells (100 bytes)
Total requirements:   51584 bytes

 

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

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


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

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

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

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

    • Helados
      От Helados
      Короче, мы протестировали наш GTA на другом хостинге — голосовой чат там работает, всё включается нормально. Также проверили на другом хостинге с нашим игровым модом — voice chat тоже работает.
      Но на нашем личном хостинге, который мы купили на OVH и установили панель, не получается запустить голосовой чат. Похоже, проблема связана с портами. После перезапуска сервер почему-то случайным образом выбирает порты сам и мы не можем это исправить.
      Если кто-то знает человека, который может помочь разобраться с этой проблемой, буду благодарен.
    • тимормо
      От тимормо
      Копия Diamond RP (основа State 99)
      Скачать файл Мод DIAMOND RP (ver. 1.0)
      Основа: State 99
      Автор мода: #TomSnow
      Вопросы/Баги: https://vk.com/etalon_dev
       
      Приветствую всех! На связи #TomSnow
       
      Я принял решение начать поэтапную разработку и восстановление легендарного мода Diamond RolePlay образца 2015–2017 годов, взяв за основу мод State 99 (оригинальная основа DRP).
       
      Каждая новая версия разрабатываемого мода будет публиковаться в открытом доступе для всех участников и подписчиков сообщества (https://vk.com/etalon_dev). Это позволит вам не только следить за процессом разработки, но и принимать непосредственное участие в развитии проекта: тестировать обновления, находить баги, сообщать о недоработках и помогать делать мод максимально качественным и стабильным.
       
      Если вам интересна данная тематика и вы хотите наблюдать за ходом разработки, подписывайтесь на нашу группу ВКонтакте (https://vk.com/etalon_dev) и ожидайте публикацию версий проекта.
       
      Спасибо всем за поддержку! Впереди нас ждёт много интересной работы и возвращение атмосферы классического Diamond RolePlay. 
       
      Информация о моде:
       
      Версия MySQL R 39-6
      Античит Nex-AC (Доработанный)
      Стример Streamer Plugin v2.9.4
      Командный процессор Pawn CMD
       
      Список обновлений мода
       
       
      Добавил тимормо Добавлено 07/15/26 Категория Моды Автор #TomSnow  
    • тимормо
      От тимормо
      Мод DIAMOND RP (ver. 1.0)
      Основа: State 99
      Автор мода: #TomSnow
      Вопросы/Баги: https://vk.com/etalon_dev
       
      Приветствую всех! На связи #TomSnow
       
      Я принял решение начать поэтапную разработку и восстановление легендарного мода Diamond RolePlay образца 2015–2017 годов, взяв за основу мод State 99 (оригинальная основа DRP).
       
      Каждая новая версия разрабатываемого мода будет публиковаться в открытом доступе для всех участников и подписчиков сообщества (https://vk.com/etalon_dev). Это позволит вам не только следить за процессом разработки, но и принимать непосредственное участие в развитии проекта: тестировать обновления, находить баги, сообщать о недоработках и помогать делать мод максимально качественным и стабильным.
       
      Если вам интересна данная тематика и вы хотите наблюдать за ходом разработки, подписывайтесь на нашу группу ВКонтакте (https://vk.com/etalon_dev) и ожидайте публикацию версий проекта.
       
      Спасибо всем за поддержку! Впереди нас ждёт много интересной работы и возвращение атмосферы классического Diamond RolePlay. 
       
      Информация о моде:
       
      Версия MySQL R 39-6
      Античит Nex-AC (Доработанный)
      Стример Streamer Plugin v2.9.4
      Командный процессор Pawn CMD
       
      Список обновлений мода