Вопросы

viktor666
Освоившийся

У меня есть команда prefix и мне нужно сделать что бы когда кто то выдавал префиксы писало в адм чат

        case D_MAKELEADER: {
            if(!response) return 1;
            new ID = GetPVarInt(playerid, "use_leader");
            new frac = GetPVarInt(playerid, "use_frac");
            format(FI[frac][fLeader], 24"%s", player_name[ID]);
            format(FI[frac][fAdmin],  24"%s", player_name[playerid]);

            new year, month, day;
            getdate(year, month, day);
            format(FI[frac][fTime],  53"%02i/%02i/%02i", day, month, year);

            PI[ID][pLeader] = FI[frac][fID];
            PI[ID][pMember] = FI[frac][fID];
            PI[ID][pRank]   = FI[frac][fMaxRang];
            PI[ID][pSpawn] = 2;
            static const f_str[] = ""W"%s"G" назначил Вас лидером организации "P"%s";
            new string[sizeof(f_str) +1 + (-2 + MAX_PLAYER_NAME) + (-2 + 24)];
            if(IsAGang(ID))
            {
                PI[ID][pHospital] = 0;
                SetPlayerHealth(ID, 100);
            }
            format(string,sizeof(string),f_str,player_name[playerid],FI[frac][fName]);
            SendOk(ID,string);

            format(string, sizeof(string), "[A] %s[%d] назначил %s[%d] на пост лидера %s",player_name[playerid],playerid,player_name[ID],ID,FI[frac][fName]);
            AdmMSG(0xAFAFAFAA, string,1);
            
            PI[ID][pFracSkin] = FI[frac][fSkin];
            PI[ID][pJob]        = 0;
            A_SetPlayerSkin(ID,PI[ID][pFracSkin]);
            SetPlayerColor(ID,gFractionSpawn[PI[ID][pMember]][fracColor]);
            start_work[ID] = 1;
            PI[ID][pSpawn] = 2;
            SaveAccount(ID);
            SaveFraction(frac);
            add_datefrac(ID);
        }

С этого стока можно взять проверку но как её изменить на нужную

значение префикса в бд записывается в pPrefix

CMD:setprefix(playerid, params[])
{
    if(PI[playerid][pAdmin] < 5 || dostup[playerid] == 0return true;
    if(sscanf(params, "ds[120]",params[0], params[1], params[2])) return SendEsp(playerid, "/setprefix [ID] [èìÿ ïðåôèêñà]");//[èä öâåòà]

    // PI[params[0]][pPrefix] = params[1];
    strmid(PI[params[0]][pPrefix],params[1], 0, strlen(params[1]), 32);
    PI[params[0]][pPrefixColor] = params[2];
    // UpdatePlayerData(params[0],"pPrefix", PI[params[0]][pPrefix]);

    new query[300];
    format(query,sizeof(query),"UPDATE `accounts` SET `pPrefix` = '%s' WHERE `pID` = '%d' LIMIT 1",PI[params[0]][pPrefix],PI[params[0]][pID]);
    mysql_tquery(connects, query,"","");

    format(query,sizeof(query),"UPDATE `accounts` SET `pPrefixColor` = '%s' WHERE `pID` = '%d' LIMIT 1",PI[params[0]][pPrefixColor],PI[params[0]][pID]);
    mysql_tquery(connects, query,"","");
    return true;
}

 

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


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

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

  • 1
Roy Weezy
Старожил
CMD:setprefix(playerid, params[])
{
    if(PI[playerid][pAdmin] < 5 || dostup[playerid] == 0return true;
    if(sscanf(params, "ds[120]",params[0], params[1])) return SendEsp(playerid, "/setprefix [ID] [имя префикса]");//[ид цвета]


    new query[144];
    format(query,sizeof(query),"UPDATE `accounts` SET `pPrefix` = '%s' WHERE `pID` = '%d' LIMIT 1",params[1],PI[params[0]][pID]);
    mysql_tquery(connects, query,"","");

    new string[128];      
    format(string, sizeof(string), "%s выдал префикс %s администратору %s", player_name[playerid], params[1], player_name[params[0]]);  
    AdmMSG(0xAFAFAFAA, string,1);
    return true;
}

Замените полностью команду

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

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


Ссылка на сообщение
  • 0
keyl
Великий Гуру

@viktor666 перед return true команды setprefix можно добавить это:

new string[128];
format(string, sizeof(string), "%s выдал префикс %s администратору %s", PI[playerid][pName], PI[params[0]][pPrefix], PI[params[0]][pName]);
AdmMSG(0xAFAFAFAA, string,1);

 

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


Ссылка на сообщение
  • 0
viktor666
Освоившийся

@keyl Так?

CMD:setprefix(playerid, params[])
{
    if(PI[playerid][pAdmin] < 5 || dostup[playerid] == 0return true;
    new string[128];
    format(string, sizeof(string), "%s выдал префикс %s администратору %s", PI[playerid][pName], PI[params[0]][pPrefix], PI[params[0]][pName]);
    AdmMSG(0xAFAFAFAA, string,1);
    if(sscanf(params, "ds[120]",params[0], params[1], params[2])) return SendEsp(playerid, "/setprefix [ID] [имя префикса]");//[ид цвета]

    // PI[params[0]][pPrefix] = params[1];
    strmid(PI[params[0]][pPrefix],params[1], 0, strlen(params[1]), 32);
    PI[params[0]][pPrefixColor] = params[2];
    // UpdatePlayerData(params[0],"pPrefix", PI[params[0]][pPrefix]);

    new query[300];
    format(query,sizeof(query),"UPDATE `accounts` SET `pPrefix` = '%s' WHERE `pID` = '%d' LIMIT 1",PI[params[0]][pPrefix],PI[params[0]][pID]);
    mysql_tquery(connects, query,"","");

    format(query,sizeof(query),"UPDATE `accounts` SET `pPrefixColor` = '%s' WHERE `pID` = '%d' LIMIT 1",PI[params[0]][pPrefixColor],PI[params[0]][pID]);
    mysql_tquery(connects, query,"","");
    

 

и проблема 

 : error 017: undefined symbol "pName"; did you mean "fName"?



1 Error.

 

скорее всего место pName нужно 

player_name т.к в pinfo нет pname

но как это сделать

 

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


Ссылка на сообщение
  • 0
viktor666
Освоившийся

сделал так format(string, sizeof(string), "%s выдал префикс %s администратору %s", player_name[playerid], PI[params[0]][pPrefix], player_name[playerid]); щас проверю работу

 

Сделал так 

    format(string, sizeof(string), "%s выдал префикс %s администратору %s", player_name[playerid], playerid,player_name[params[0]][pPrefix], player_name[playerid]);

Но пишет только Carlo_JJ выдал префикс администратору а мне нужно Carlo_JJ выдал префикс ГА администратору Carlo_JJ

Как сделать? помогите

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


Ссылка на сообщение
  • 0
viktor666
Освоившийся

@Holmo 

Но пишет только Carlo_JJ выдал префикс администратору а мне нужно Carlo_JJ выдал префикс ГА администратору Carlo_JJ

Как сделать? помогите

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


Ссылка на сообщение
  • 0
viktor666
Освоившийся
CMD:setprefix(playerid, params[])
{
    if(PI[playerid][pAdmin] < 5 || dostup[playerid] == 0return true;
    new string[128];
    format(string, sizeof(string), "%s выдал префикс %s администратору %s", player_name[playerid], playerid,player_name[params[0]][pPrefix], player_name[playerid]);
    AdmMSG(0xAFAFAFAA, string,1);
    if(sscanf(params, "ds[120]",params[0], params[1], params[2])) return SendEsp(playerid, "/setprefix [ID] [имя префикса]");//[ид цвета]

    // PI[params[0]][pPrefix] = params[1];
    strmid(PI[params[0]][pPrefix],params[1], 0, strlen(params[1]), 32);
    PI[params[0]][pPrefixColor] = params[2];
    // UpdatePlayerData(params[0],"pPrefix", PI[params[0]][pPrefix]);

    new query[300];
    format(query,sizeof(query),"UPDATE `accounts` SET `pPrefix` = '%s' WHERE `pID` = '%d' LIMIT 1",PI[params[0]][pPrefix],PI[params[0]][pID]);
    mysql_tquery(connects, query,"","");

    format(query,sizeof(query),"UPDATE `accounts` SET `pPrefixColor` = '%s' WHERE `pID` = '%d' LIMIT 1",PI[params[0]][pPrefixColor],PI[params[0]][pID]);
    mysql_tquery(connects, query,"","");
    return true;
}

 

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


Ссылка на сообщение
  • 0
Roy Weezy
Старожил

а каким образом должно показывать выданный префикс, если вы сделали отправку сообщения до ВСЕХ проверок? o.O
 

new string[128];  

format(string, sizeof(string), "%s выдал префикс %s администратору %s", player_name[playerid], playerid,player_name[params[0]][pPrefix], player_name[playerid]);     
AdmMSG(0xAFAFAFAA, string,1);

в конец это просто добавьте, а в начале удалите...

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

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


Ссылка на сообщение
  • 0
viktor666
Освоившийся

 

@Holmo так?

CMD:setprefix(playerid, params[])
{
    if(PI[playerid][pAdmin] < 5 || dostup[playerid] == 0return true;
    if(sscanf(params, "ds[120]",params[0], params[1], params[2])) return SendEsp(playerid, "/setprefix [ID] [имя префикса]");//[ид цвета]

    // PI[params[0]][pPrefix] = params[1];
    strmid(PI[params[0]][pPrefix],params[1], 0, strlen(params[1]), 32);
    PI[params[0]][pPrefixColor] = params[2];
    // UpdatePlayerData(params[0],"pPrefix", PI[params[0]][pPrefix]);

    new query[300];
    format(query,sizeof(query),"UPDATE `accounts` SET `pPrefix` = '%s' WHERE `pID` = '%d' LIMIT 1",PI[params[0]][pPrefix],PI[params[0]][pID]);
    mysql_tquery(connects, query,"","");

    format(query,sizeof(query),"UPDATE `accounts` SET `pPrefixColor` = '%s' WHERE `pID` = '%d' LIMIT 1",PI[params[0]][pPrefixColor],PI[params[0]][pID]);
    mysql_tquery(connects, query,"","");
    new string[128];
    format(string, sizeof(string), "%s выдал префикс %s администратору %s", player_name[playerid], playerid,player_name[params[0]][pPrefix], player_name[playerid]);
    AdmMSG(0xAFAFAFAA, string,1);
    return true;
}

 

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

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


Ссылка на сообщение
  • 0
viktor666
Освоившийся

@Holmo такая проблема теперь пишет Carlo_JJ выдал префикс администратору arlo_JJ (1 буквы ника не хватает) и не пишет какой префикс выдали ("%s выдал префикс %s администратору %s")

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


Ссылка на сообщение
  • 0
Roy Weezy
Старожил
new string[128];     

format(string, sizeof(string), "%s выдал префикс %s администратору %s", player_name[playerid], player_name[params[0]][pPrefix], player_name[params[0]]); 
AdmMSG(0xAFAFAFAA, string,1);

замените.

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


Ссылка на сообщение
  • 0
viktor666
Освоившийся

@Holmo Carlo_JJ выдал префикс arlo_JJ администратору Carlo_JJ теперь(нужно что бы место arlo_JJ было название префикса)

 

@Holmo Понял что мой гавнокод нужно менять и решил переписать )

Помогло.

Закрыто

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


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

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

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

    • Elvis
      От Elvis
      Настоящим информируем о начале набора сотрудников в нашу студию "AlinSA Studios". В рамках текущего проекта "VanguardRP", основанного на мотивах CRMP, мы ищем профессионалов и энтузиастов для выполнения следующих должностей:
       
      1. Технические специалисты
       
      Требования:
       
      | Базовые знания в области информационных технологий
      | Понимание структур кода и принципов работы компиляторов
      | Готовность к обучению и развитию профессиональных навыков
      | Иметь базовое представлении ЯП "Pawn" или "Kotlin" и "Java".
       
      Обязанности:
       
      | Поддержка технической инфраструктуры проекта
      | Участие в разработке и оптимизации программных решений
      | Взаимодействие с командой разработки для внедрения новых функций
       
      2. Пиар-ассистенты
       
      Требования:
       
      | Опыт работы в сфере SMM, маркетинга или PR
      | Навыки взаимодействия с аудиторией и ведения социальных сетей
       
      Обязанности:
       
      | Продвижение проекта в социальных сетях
       
      3. Дизайнеры
       
      Требования:
       
      | Наличие портфолио с примерами выполненных работ (не обязательно, желательно)
      | Владение графическими редакторами ! (Photoshop и Figma)
      | Креативность, внимательность к деталям и способность работать в сжатые сроки
       
      Обязанности:
       
      | создание графического контента для соцсетей, сайта и внутриигровых материалов
      | Разработка дизайна интерфейсов, баннеров, логотипов и иллюстраций
      | Участие в визуальном оформлении проекта
       
      4. Геймдизайнеры
       
      Обязанности:
       
      | Разработка игровых механик, правил взаимодействия и систем баланса
      | Проработка сюжета, персонажей и сценариев для создания эмоциональной связи с игроками
      | Проектирование уровней, задач и сценариев для обеспечения разнообразия игрового процесса
      | Взаимодействие с командой разработчиков, художников и звукорежиссёров для достижения согласованности элементов игры
      | Участие в тестировании прототипов, выявление проблем и балансировка игрового процесса
       
      5. Рупоры
       
      Цель роли: Обеспечить эффективное взаимодействие с целевой аудиторией, формировать положительный имидж проекта, своевременно информировать участников о новостях, обновлениях и
      мероприятиях, а также модерировать сообщества для поддержания комфортной и безопасной среды.
       
      -————————-
      Условия работы:
       
      Обучение и постоянная поддержка со стороны команды
      Гибкий график работы / удалённый формат (обсуждается индивидуально)
       
       
      Если вы заинтересованы в присоединении к нашей команде или хотите получить дополнительную информацию, обращайтесь по следующему контакту:
      Telegram: @AntonLegost
       
       
      Благодарим за внимание! Надеемся на плодотворное сотрудничество.
       
      p.s Новички приветствуются. Для пополнение портфолио и наработки опыта.
       
      С уважением,
      Команда "AlinSA Studios"
    • Alesher
      От Alesher
      НОВЕЙШИЙ МОД HEAVILY MOD 2025
      Скачать файл Имеется 14 уровень админки а также 3 уровня хелпера авторизация /alogin, имееться база данный а также минимальное количество багов.
      Добавил Alesher Добавлено 30.05.2025 Категория Моды Автор ByNikolas  
    • BESPERSPEKTIBN9AK
      От BESPERSPEKTIBN9AK
      Как убрать обьект в мэрии? 
      Искал уже по координатам из save убираю, не убирается.