Перейти к содержанию
Авторизация  
Marvellous

[TD]Уведомления Администраций/Игрока

Рекомендуемые сообщения

Marvellous

Всем доброе утро дороги пользователи портала CR-MP

 

Сегодня хочу выложить такую систему,уведомления игроков в ответ Администратора!

 

И так как это будет работать? Все очень просто,когда Игрок напишет в репорт Администраторам и Администратор ответит игроку.то у игрока будет высвечиваться уведомление об ответе Администратора,а именно в /pm /ans

 

И так вот скрин как это будет выглядеть:

[spoiler=Скриншот]rFxmDm0.jpg

 

 

Лично как по мне нормально,но я с данного кода взял себе только звук уведомления, а ТD не стал делать

 

И так начнем уже:

 

Ко всем new

new Text:TDInfo[5];

В public OnGameModeInit() добавим

    TDInfo[0] = TextDrawCreate(201.058868, 311.833404, "usebox");
    TextDrawLetterSize(TDInfo[0], 0.000000, -3.298150);
    TextDrawTextSize(TDInfo[0], -3.882356, 0.000000);
    TextDrawUseBox(TDInfo[0], true);
    TextDrawBoxColor(TDInfo[0], 7243007);

    TDInfo[1] = TextDrawCreate(171.411697, 287.333374, "usebox");
    TextDrawLetterSize(TDInfo[1], 0.000000, 2.223529);
    TextDrawTextSize(TDInfo[1], 166.941101, 0.000000);
    TextDrawUseBox(TDInfo[1], true);
    TextDrawBoxColor(TDInfo[1], 102);

    TDInfo[2] = TextDrawCreate(174.588195, 285.249969, "ld_pool:ball");
    TextDrawLetterSize(TDInfo[2], 0.000000, 0.000000);
    TextDrawTextSize(TDInfo[2], 19.764677, 22.749961);
    TextDrawAlignment(TDInfo[2], 1);
    TextDrawColor(TDInfo[2], -1);
    TextDrawSetShadow(TDInfo[2], -121);
    TextDrawSetOutline(TDInfo[2], 0);
    TextDrawBackgroundColor(TDInfo[2], 16776960);
    TextDrawFont(TDInfo[2], 4);
    TextDrawSetPreviewModel(TDInfo[2], 19131);
    TextDrawSetPreviewRot(TDInfo[2], 0.000000, 90.000000, 90.000000, 1.000000);

    TDInfo[3] = TextDrawCreate(5.647051, 291.083404, TranslateText("~Y~Увидомление ~W~Администратор ответил  на ваш вопрос."));
    TextDrawLetterSize(TDInfo[3], 0.165764, 1.086666);
    TextDrawAlignment(TDInfo[3], 1);
    TextDrawBackgroundColor(TDInfo[3], 51);
    TextDrawFont(TDInfo[3], 2);

    TDInfo[4] = TextDrawCreate(195.764739, 286.416717, "New Textdraw");
    TextDrawLetterSize(TDInfo[4], 0.449999, 1.600000);
    TextDrawTextSize(TDInfo[4], -22.586164, 19.833333);
    TextDrawAlignment(TDInfo[4], 1);
    TextDrawColor(TDInfo[4], 255);
    TextDrawUseBox(TDInfo[4], true);
    TextDrawBoxColor(TDInfo[4], 16776960);
    TextDrawSetShadow(TDInfo[4], 0);
    TextDrawSetOutline(TDInfo[4], 1);
    TextDrawBackgroundColor(TDInfo[4], 16776960);
    TextDrawFont(TDInfo[4], 5);
    TextDrawSetProportional(TDInfo[4], 1);
    TextDrawSetPreviewModel(TDInfo[4], 1239);
    TextDrawSetPreviewRot(TDInfo[4], 0.000000, 0.000000, 0.000000, 1.000000);

Далее в команду добавляем следующее:

PlayerPlaySound(playerid, 5205, 0.0, 0.0, 0.0); // Воспроизводим звук.
for ( new i = 0;  i < 5 ; i++ ) TextDrawShowForPlayer(playerid, TDInfo[i]) ;
SetTimerEx("InfoTime", 2000, false, "d", playerid);  

Разберем немного код

PlayerPlaySound - Это ваш звук,который будет проигрывать когда игроку придет ответ от Администратора

for ( new i....- Это выводит TD на экран игрока

SetTimerEx - Это таймер,т.е сколько будет показываться игроку, в данный момент 2000,т.е 2 секунды

 

Ну и в конец мода вставляем код:

publics: InfoTime(playerid)
{
    for ( new i = 0;  i < 6 ; i++ ) TextDrawHideForPlayer(playerid, TDInfo[i]) ;
    return 1;
}  

В команде если кто то не поймет,то у вас должно получиться так:

CMD:pm(playerid,params[])
{
    if(GetPVarInt(playerid, "Logged") == 0)
        return 1;

     if(P::[playerid][pAdmin] < 1)
         return 1;
         
    else if(strlen(params[1]) >= 90)
        return SCM(playerid, COLOR_WARNING,"[!] Сократите количестов вводимых символов");
        
    else if(sscanf(params,"us[90]",params[0],params[1]))
        return SCM(playerid, COLOR_WARNING,"[!] Введите:  /pm [id] [текст]");
        
    else if(params[0] == INVALID_PLAYER_ID) return 1;

    PlayerPlaySound(playerid, 5205, 0.0, 0.0, 0.0); // Воспроизводим звук.
    for ( new i = 0;  i < 5 ; i++ ) TextDrawShowForPlayer(playerid, TDInfo[i]) ;
    
     SendMes(params[0], 0xFF6A00FF, "{FF6A00}[PM]{FFFF00} Сообщение от %s: %s",GN(playerid), params[1]);
     
    static const
        pm[] = "%s {FF6A00}[PM]{FFFF00} Сообщение для %s[%d]: %s";
    new str_pm[sizeof(pm) + MAX_PLAYER_NAME - 2 + MAX_PLAYER_NAME - 2 + 2 - 2 + 60 - 2];
    
    format(str_pm, sizeof(str_pm), pm, str_pm, GN(playerid), P::[params[0]][pName], params[0], params[1]);
    SendAdmin(COLOR_RED, str_pm);
    
    SetTimerEx("InfoTime", 2000, false, "d", playerid);
    return 1;
} 

Ну вот и все! Думаю может кто то и возьмет себе на сервер данный TD...

 

Всем спасибо за внимание!

Автор Мануала: Неизвестный.

Автор слива: Marvellous (Я)

 

P.S: А да забыл,если будут ошибки по поводу TranslateText то вот вам код,его тоже можете в конец мода закинуть!

stock TranslateText(string[])
{
    new result[30];
    for (new i = 0; i < sizeof(result); i++)
    {
        switch (string[i])
        {
            case 'а': result[i] = 'a';
            case 'А': result[i] = 'A';
            case 'б': result[i] = '—';
            case 'Б': result[i] = 'Ђ';
            case 'в': result[i] = 'ў';
            case 'В': result[i] = '‹';
            case 'г': result[i] = '™';
            case 'Г': result[i] = '‚';
            case 'д': result[i] = 'љ';
            case 'Д': result[i] = 'ѓ';
            case 'е': result[i] = 'e';
            case 'Е': result[i] = 'E';
            case 'ё': result[i] = 'e';
            case 'Ё': result[i] = 'E';
            case 'ж': result[i] = '›';
            case 'Ж': result[i] = '„';
            case 'з': result[i] = 'џ';
            case 'З': result[i] = '€';
            case 'и': result[i] = 'њ';
            case 'И': result[i] = '…';
            case 'й': result[i] = 'ќ';
            case 'Й': result[i] = '…';
            case 'к': result[i] = 'k';
            case 'К': result[i] = 'K';
            case 'л': result[i] = 'ћ';
            case 'Л': result[i] = '‡';
            case 'м': result[i] = 'Ї';
            case 'М': result[i] = 'M';
            case 'н': result[i] = '®';
            case 'Н': result[i] = ' ';
            case 'о': result[i] = 'o';
            case 'О': result[i] = 'O';
            case 'п': result[i] = 'Ј';
            case 'П': result[i] = 'Њ';
            case 'р': result[i] = 'p';
            case 'Р': result[i] = 'P';
            case 'с': result[i] = 'c';
            case 'С': result[i] = 'C';
            case 'т': result[i] = '¦';
            case 'Т': result[i] = 'Џ';
            case 'у': result[i] = 'y';
            case 'У': result[i] = 'Y';
            case 'ф': result[i] = '~';
            case 'Ф': result[i] = 'Ѓ';
            case 'х': result[i] = 'x';
            case 'Х': result[i] = 'X';
            case 'ц': result[i] = '*';
            case 'Ц': result[i] = '‰';
            case 'ч': result[i] = '¤';
            case 'Ч': result[i] = 'Ќ';
            case 'ш': result[i] = 'Ґ';
            case 'Ш': result[i] = 'Ћ';
            case 'щ': result[i] = 'Ў';
            case 'Щ': result[i] = 'Љ';
            case 'ь': result[i] = '©';
            case 'Ь': result[i] = '’';
            case 'ъ': result[i] = 'ђ';
            case 'Ъ': result[i] = '§';
            case 'ы': result[i] = 'Ё';
            case 'Ы': result[i] = '‘';
            case 'э': result[i] = 'Є';
            case 'Э': result[i] = '“';
            case 'ю': result[i] = '«';
            case 'Ю': result[i] = '”';
            case 'я': result[i] = '¬';
            case 'Я': result[i] = '•';
            default: result[i] = string[i];
        }
    }
    return result;
}  

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


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

Хоть бы оформили грамотно =_=

 

Увидомление...

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


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

1. Для 0.3е он не пойдет.

2. Зачем эти буквы, если можно скачать плагин и просто написать "Ответ от администратора".

3. На скриншоте видно, что ТД видимо не дописан.

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


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

@SCRIPTMAN,Ну можно и с плагином,можно и без него! Начинающие не поймут какой именно плагин нужен,у меня так к примеру написано все! И работает нормально! 

 

 

 

1. Для 0.3е он не пойдет.

 

Да,забыл указать, это для 0.3.7

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


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

@Marvellous,на скриншоте видно грамматические ошибки и не до конца дописано "администрато"

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


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

@SCRIPTMAN,Там просто растянуть немного ТD надо! И будет все отлично! 

 

А нет! Так и должно быть! Это сообщение,т.е после Уведомления: Сообщения

Думаю понял теперь как это действует!

Изменено пользователем Marvellous

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


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

Крч я тут переделал эту систему на CRMP 0.3e. И почему-то сам TextDraw не пропадает)

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


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

@Nike123123, таймер сделай

 
failed.gif

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

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

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

×

Важная информация

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