Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Advertise

Статус
В этой теме нельзя размещать новые ответы.

Moovis

Новичок
Доброго времени суток, пользователи Pawno-info.
​
Возникла такая проблема с функцией "Advertise". Вообщем такая ситуация: "Человек А подал объявление, человек Б прописывает /edit, ему выдает окно для редактирования\отправки объявления ( что-то типо Advance - не реклама), и в строке "Отправитель" вместо ника Человек А, пишется ник Человек Б. Так же и при публикации объявления. Думаю что понятно объяснил.

Коды:
/advertise

PHP:
if(strcmp(cmd, "/advertise", true) == 0 || strcmp(cmd, "/ad", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            if(ADVERTISE == 1) return SendClientMessage(playerid,-1, "Кто-то уже подал объявление");
            new sendername[  MAX_PLAYER_NAME  ];
            if(PlayerInfo[playerid][pLevel] < 3) return SendClientMessage(playerid, COLOR_GRAD, "{FF0000}[Недоступно]{ffffff} Команда доступна с 3-го уровня.");
            GetPlayerName(playerid, sendername, sizeof(sendername));
            new length = strlen(cmdtext);
            while ((idx < length) && (cmdtext[idx] <= ' '))
            {
                           idx++;
                         }
            new offset = idx;
            new result[64];
            while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
            {
                result[idx - offset] = cmdtext[idx];
                idx++;
            }
            result[idx - offset] = EOS;
            if(!strlen(result)) return SendClientMessage(playerid, COLOR_WHITE, "{00C0FF}Используйте{FFFFFF} : (/ad)vertise [сообщение]");
                        new string[145];
            if(PlayerInfo[playerid][pCash] < 10) return SendClientMessage(playerid, COLOR_WHITE,  "{FF0000}[Недоступно]{ffffff} У вас недостаточно денег для подачи рекламы.");
            GetPlayerName(playerid, sendername, sizeof(sendername));
            SendClientMessage(playerid, COLOR_WHITE, "Ваше объявление было отправлено в СМИ для утверждения");
            format(string, sizeof(string), "{f4c430}[Для утверждения] Автор: %s[%d]. Текст: %s",sendername, playerid,(result));
            SendFamilyMessage(15, -1, string);
            PlayerInfo[playerid][pCash] -= 10,ADVERTISE = 1;
            strmid(ADV[playerid], result, 0, strlen(result), 255);
        }
        return true;
    }
/edit
PHP:
if(strcmp(cmd, "/edit", true) == 0)
    {
        if(PlayerInfo[playerid][pMember] == 15 || PlayerInfo[playerid][pMember] == 16 || PlayerInfo[playerid][pMember] == 17)
        {
            new giveplayer[  MAX_PLAYER_NAME  ],giveplayerid,sendername[  MAX_PLAYER_NAME  ],string[   256   ];
            if(IsPlayerConnected(giveplayerid))
            {
                    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                    GetPlayerName(playerid, sendername, sizeof(sendername));
                    if(ADVERTISE == 0) return SendClientMessage(playerid,-1,"Никто не подавал объявление");
                    OBV[playerid] = giveplayerid;
                    format(string, sizeof(string), "{ffffff}Отправитель: %s\nТекст:{fde910} %s\n\n{ffffff}Введите новый текст для этого объявления или оставьте поле пустым если редактирование не нужно\n\
                    Вы также можете отклонить объявление с причиной нажав кнопку \"Отклонить\"",giveplayer,ADV[giveplayerid]);
                    ShowPlayerDialog(playerid,advert,DIALOG_STYLE_INPUT,"{00ff00}Публикация объявления",string,"Готово","Отклонить");
            }
        }
        else
        {
            return true;
        }
    }
Case advertise
PHP:
case advert:
        {
            new sendername[  MAX_PLAYER_NAME  ];
            GetPlayerName(OBV[playerid], sendername, sizeof(sendername));
            if(response)
            {
                new texts[160];
                   new name[  MAX_PLAYER_NAME  ];
                if(strlen(inputtext) == 0)
                {
                    format(texts, sizeof(texts), "{66ff00}Обьявление: %s. Прислал(а): %s[%d]. Номер: %d",ADV[playerid], GN(OBV[playerid]),OBV[playerid],PlayerInfo[OBV[playerid]][pNumber]),SendClientMessageToAll(-1,texts);
                    format(texts, sizeof(texts), "{34c924} Объявление проверил работник Радоцентра: %s.", GN(playerid)),SendClientMessageToAll(-1,texts);
                    ADV[ OBV[playerid] ] = 0,OBV[playerid] = 501,ADVERTISE = 0;
                }
                else
                {
                 GetPlayerName(playerid, name, sizeof(name));
                 format(texts, sizeof(texts), "{66ff00}Обьявление: %s. Прислал(а): %s[%d]. Номер: %d",  (inputtext), sendername,OBV[playerid],PlayerInfo[OBV[playerid]][pNumber]),SendClientMessageToAll(-1,texts);
                 format(texts, sizeof(texts), "{34c924} Объявление отредактировал работник Радоцентра: %s.", GN(playerid)),SendClientMessageToAll(-1,texts);
                 ADV[ OBV[playerid] ] = 0,OBV[playerid] = 501,ADVERTISE = 0;
                }
                return true;
            }
            else
            {
                    format(string, sizeof(string), "{FF6600}Вы отклонили объявление",sendername, playerid, (inputtext)),SendClientMessage(playerid, COLOR_YELLOW, string);
                    format(string, sizeof(string), "{FF6600}%s[%d] отклонил объявление. Причина: %s",sendername, playerid, (inputtext)),SendClientMessage(OBV[playerid], COLOR_YELLOW, string);
                    ADV[ OBV[playerid] ] = 0,OBV[playerid] = 501,ADVERTISE = 0;
            }
        }

Ну а с меня конечно же + :)
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу