Перейти к содержанию
Авторизация  
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-файлов, или продолжить без изменения настроек.