PDA

Просмотр полной версии : [Include] GoodNotification



Seviel
23.11.2018, 20:35
GoodNotification

Описание
Данная библиотека добавляет Вам на сервер уведомления в стиле уведомлений из одиночной игры.
Достоинства:

Позволяет показывать одновременно(по умолчанию 5) сразу несколько уведомлений.
Способен автоматически удалять уведомление по времени.
При удалении выше стоящего уведомления, все ниже стоящие уведомления поднимаются выше.
Количество строк подсчитывается автоматически, подгоняет фон и куда поставится ниже следующее уведомление.
Возможно изменить направление уведомлений.


http://i12.pixs.ru/storage/5/8/2/samp294png_4985518_30985582.png
http://i12.pixs.ru/storage/6/1/1/samp295png_4722476_30985611.png

Функции
Создание уведомления:
Аргументы:

playerid - кому показать уведомление.
text - текст.
time - не обязательный аргумент, устанавливает время(в секундах) на которое будет показано уведомление, если поставить 0(по умолчанию так и стоит), то уведомление будет показываться не ограниченное время.
color - не обязательный аргумент, цвет текста(по умолчанию белый).
bg_color - не обязательный аргумент, цвет фона(по умолчанию черный).
sound - не обязательный аргумент, 1(по умолчанию) - включить звуковой сигнал, 0 - выключить.

Возвращает: id уведомления, 0 - если не смогло создать уведомление.

CreateGoodNote(playerid, const text[], time = 0, color = -1, bg_color = 255, const size = sizeof(text))

Удаление уведомления:
Аргументы:

playerid - у кого удалим уведомление.
goodnoteid - id уведомления.

Возвращает: 1 - удачна, 0 - не удача.

DestroyGoodNote(playerid, goodnoteid)

Изменение положения где будут появляться уведомления:

SetGoodNotePos(Float:pos_x, Float:pos_y)

Изменение ширины уведомления:

SetGoodNoteWidth(Float:width)

Изменение направления появления новых уведомлений:

GN_DIRECTION_DOWN - вниз
GN_DIRECTION_UP - вверх


SetGoodNoteDirection(type)

Изменение звукового сигнала:

SetGoodNoteSound(sound)


Константы
Максимальное количество уведомлений(по умолчанию 5):

#define MAX_GOOD_NOTES 5

Максимально возможное количество символов в тексте уведомления(по умолчанию 65):

#define MAX_GOOD_TEXT_LENGTH 65

Примечание

Так как здесь используются textdraw-s, то чтобы перейти на следующую строку надо поставить "~n~".



Пример



#define MAX_GOOD_NOTES 6
#include <GoodNote>

public OnGameModeInit()
{
SetGoodNotePos(100.0, 100.0);
return 1;
}

public OnPlayerSpawn(playerid)
{
CreateGoodNote(playerid, "Spawn", 10);
return 1;
}


>>> Скачать <<< (https://github.com/Barty-Knox/GoodNotification/releases)

Автор: knox (https://www.youtube.com/channel/UCcWcOCdPmBFK4_pLCE6GMaQ)


v1.1

Фикс бага с цветами.
Фикс бага подсчета строк.
Фикс бага размера фона.


v1.2

Добавлены направления, куда уведомления будут ставиться.
Была изменена константа MAX_GOOD_TEXT_LENGTH.
Добавлены звуки и возможность менять звук.
Добавлена возможность менять размер фона.

DeimoS
24.11.2018, 06:24
Скриншоты этих уведомлений бы :)

Kovshevoy
24.11.2018, 13:02
Скриншоты этих уведомлений бы :)

Поддерживаю

Seviel
24.11.2018, 14:20
Скриншоты этих уведомлений бы :)

Упс, забыл про скриншоты, спасибо что напомнил.

Добавил.

- - - Добавлено - - -

Я тут ещё парочку багов исправил.


После удаления выше стоящего уведомления, в ниже стоящих уведомлениях цвет фона и текста менялись местами.
Не правильно считало количество строк, после нескольких уведомлений. Во всем виноват static!
Исправил фон при перемещение уведомления.



Спасибо за спойлер, найти его не мог(

Daniel_Cortez
24.11.2018, 17:27
Я тут ещё парочку багов исправил.
Исправить исправили, но в инклуде номер версии всё ещё "1.1". Непорядок.

Касаемо возможностей инклуда, не лишним было бы следующее:
Возможность переобъявить константу MAX_GOOD_TEXT_LENGTH, как это уже сделано с MAX_GOOD_NOTES.
Звук уведомления, как в синглплеере.

Seviel
24.11.2018, 19:57
Обновление 1.2

В данном обновлении были добавлены:

Направления для новых уведомлений(вверх и вниз).
Константу MAX_GOOD_TEXT_LENGTH теперь возможно переобъявить(Спасибо Daniel_Cortez-у).
Звуки при показе уведомления(Спасибо Daniel_Cortez-у), опционально и возможность менять звук при помощи функции SetGoodNoteSound.
Изменение размера уведомления.


Приятного пользования. :)

m1n1vv
25.11.2018, 01:18
Рекомендую использовать mediafire.com. А вообще лучше всего залить на Github.

1. "box" можно создавать глобальные. Сделал бы при включении сервера создание всех боксов.
2. Зачем в DestroyGoodNote идет сначала скрытие, а потом удаление?

Seviel
25.11.2018, 02:32
Рекомендую использовать mediafire.com. А вообще лучше всего залить на Github.

1. "box" можно создавать глобальные. Сделал бы при включении сервера создание всех боксов.
2. Зачем в DestroyGoodNote идет сначала скрытие, а потом удаление?

На счет хостинга файлов абсолютно согласен.

1. Потому что размер и положение каждого box-а считается от количества строк в выше/ниже стоящих уведомлений.
2. У меня бывало такое, что textdraw-ы при удалении не скрывались.

m1n1vv
25.11.2018, 02:43
На счет хостинга файлов абсолютно согласен.

1. Потому что размер и положение каждого box-а считается от количества строк в выше/ниже стоящих уведомлений.
2. У меня бывало такое, что textdraw-ы при удалении не скрывались.

Так ты можешь игроку присвоить глобальный ТД и показать его через TextDrawShowForPlayer. Это касается и текста. Просто у CreatePlayerTextDraw не обширный лимит.
CreatePlayerTextDraw используют, когда в момент отображения, нужно его изменить для одного игрока.

Seviel
25.11.2018, 13:32
Так ты можешь игроку присвоить глобальный ТД и показать его через TextDrawShowForPlayer. Это касается и текста. Просто у CreatePlayerTextDraw не обширный лимит.
CreatePlayerTextDraw используют, когда в момент отображения, нужно его изменить для одного игрока.

Я дико извиняюсь, но Вы читали первый пункт?
Я там написал, что положение и размер всегда меняется, а я не знаю способа менять положение текст драва. Только создавать.

Я бы мог первый текст драв сделать глобальным, ибо его положение не меняется, но я не считаю что это придаст какое-то значительное ускорение работы.

На счет лимита, для каждого игрока доступно 256.

SteveStage
22.10.2019, 20:33
При работе с Pawn.CMD (засунуть создание уведомления в комманду) этот инклуд и нативы в нём не срабатывают!

- - - Добавлено - - -

Фон уведомления загораживает текст, очень баганная система!