Вопросы

У меня есть команда 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
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

@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

@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

сделал так 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 

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


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

@Holmo 

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

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

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


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

полную команду скиньте и скриншот из игры после того, как выдали префикс

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


Ссылка на сообщение
  • 0
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

а каким образом должно показывать выданный префикс, если вы сделали отправку сообщения до ВСЕХ проверок? 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

 

@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

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

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


Ссылка на сообщение
  • 0
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

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

 

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

Помогло.

Закрыто

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


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

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

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

    • Talex
      От Talex
      Всем привет, сливаю первый мод!
      Информация о моде:

      — Основа Gamenix.
      — Мод переведен на Mysql R39, теперь ни каких слётов нет, мод работает стабильно с онлайном 160+.
      — Новый автосалон на TextDraw.
      — Система 3-х автомобилей (1 можно купить по дефолту, 2 и 3 за донат).
      — Автомобили у игроков теперь не пропадают (Id'ы авто сбивались, с номерами теперь тоже всё в порядке).
      — Оформление сервера полностью переработано, теперь оно более красивое.
      — Защита от копирования карты.
      — в меню сервера добавлен пункт визуальных настроек.
      — Номера на транспорт теперь можно приобрести в /donate.
      — Сделан новый красивый спидометр.
      — При получении номера, добавлен выбор региона.
      — Сделана система радаров и промокодов, создание прямо из игры.
      — Новый интерьер казино.
      — Магазин скинов теперь на TextDraw.
      — Автошкола полностью функционирует.
      — Добавлена информация после коннекта о последнем входе в собственный аккаунт.
      — Приватная защита от всех видов DDoS атак и DoS атак.                                                                                                                                    
      — пароль от АП (/alog) теперь у каждого администратора индивидуальный.
      — Изменено оформление самого мода
      Это не все изменения мода, их ещё очень много. все не упомнишь. 
      Автор мода: Неизвестен
      CUNBERS RP 8.4.3.rar