StUNt71 Posted January 8, 2012 Share Posted January 8, 2012 (edited) Описание: Этот скрипт добавляет определённый функционал, которые позваляет создавать текст в игровом мире. Скрипт не готов и на стадии разработки. Функции: createLabel3D Cоздание надписи в определённых координатах мира. (server-side) element createLabel3D(string text, int posX, int posY, int poZ, int distance) destroyLabel3D Удалить надпись. (server-side) bool destroyLabel3D(element label3D) attachLabel3DToElement Прикрепление надписи к элементу. (server-side) bool attachLabel3DToElement(element label3D, element toElement, int attachX, int attachY, int attachZ) deattachLabel3D Открепляет надпись от элемента. (server-side) bool deattachLabel3D(element label3D) getLabel3DAttach Получает элемент к которому прикреплён, или false, если неприкреплён. (server-side and client-side) element getLabel3DAttach(element label3D) setLabel3DParam Изменить параметр надписи. (server-side) bool setLabel3DParam(element label3D, string parameter, ...) getLabel3DParam Получить значение параметра надписи. (server-side and client-side) bool/int/string getLabel3DParam(element label3D, string parameter) Параметры для функций setLabel3DParam и getLabel3DParam: Text - текст (string text); Font - шрифт надписи (string font); Position - позиция надписи (int X, int Y, int Z); Interior - интерьер надпииси (int interior); Dimension - измерение в котором будет находится надпись (int dimension); S-Distance - максимальное расстояние на котором будет видна надпись (int distance); Scale - размер текста (int scale) Color - цвет текста (int R, int G, int B); S-Color - цвет тени текста (int R, int G, int B); B-Color - цвет обводки текста (int R, int G, int B); Shadow - тень (bool true/false); Border - обводка (bool true/false); Scaling - масштабирование (bool true/false); Invis - прозрачность при отдалении от надписи (bool true/false); LOS - видна надпись через здания и объекты (bool true/false); Скриншоты: Планируется: - Ищем баги. Скачать: Download Edited January 14, 2012 by Guest Link to comment
Vladimir5 Posted January 8, 2012 Share Posted January 8, 2012 Ты это всё в GUI сделай,все будут рады=) Link to comment
StUNt71 Posted January 8, 2012 Author Share Posted January 8, 2012 В gui? Это функции, а настройки в своём ресурсе сделать можно. Если надо могу 2 скрипт написать, где в гуи можно редактировать надписи. Link to comment
Vladimir5 Posted January 8, 2012 Share Posted January 8, 2012 Сделай лучше такой скрипт(просто предложение): в гуи собираются координаты игрока(по нажатию на кнопку) игрок вводит название текста.И выбирает цвет,нажимает на кнопку:Создать и он создаётся Link to comment
StUNt71 Posted January 8, 2012 Author Share Posted January 8, 2012 Я тебе выше написал. Что можно сделать 2 скрипт, в gui, для редактирования. Link to comment
StUNt71 Posted January 8, 2012 Author Share Posted January 8, 2012 надо этот сначало сделать. Link to comment
Other Languages Moderators Disinterpreter Posted January 8, 2012 Other Languages Moderators Share Posted January 8, 2012 Сделай чтоб в настройках можно было добавлять свои шрифты Link to comment
StUNt71 Posted January 8, 2012 Author Share Posted January 8, 2012 Пойдёт любой шрифт созданый и работающий в dxDrawText, просто в setLabel3DFont пропиши элемент своего шрифта. --- Всё, что планировал сделал. Подкидывайте идеи! Link to comment
DakiLLa Posted January 8, 2012 Share Posted January 8, 2012 Неплохо, достойно уважения. Link to comment
Other Languages Moderators Disinterpreter Posted January 8, 2012 Other Languages Moderators Share Posted January 8, 2012 Пойдёт любой шрифт созданый и работающий в dxDrawText, просто в setLabel3DFont пропиши элемент своего шрифта. --- Всё, что планировал сделал. Подкидывайте идеи! Это я знаю, но ты отблегчи старания людям незнающим lua Link to comment
StUNt71 Posted January 9, 2012 Author Share Posted January 9, 2012 Ну что, у кого есть идеи? Link to comment
MX_Master Posted January 9, 2012 Share Posted January 9, 2012 читаю список в первом посте.. а как удалить лэйбл? Из добавочек - get/set цвета тени. Кстати, насчет тени, а можно сделать не тень, а обводку (как в сампе)? Просто обводка максимально отделяет весь текст от окружающего мира, а тень - только снизу и справа. Допустим, текст светло синий и непрозрачный и, если посмотреть на небо (схожий цвет), то текст как бы соединиться с небом. Ну кто играл в самп, поймет, там все тексты с обводкой темной и хоть куда смотри - всегда текст отделен полностью от игрового мира. многие функции можно собрать вместе с разными параметрами: ..create.. ( tram, param, papam ) ..set.. ( label, 'parameter', value ) ..get.. ( label, 'parameter' ) ..destroy.. ( label ) в зависимости от расстояния игрока до лэйбла, сам лэйбл масштабируется? я много чего могу подсказать (: если есть желание это сделать Link to comment
StUNt71 Posted January 10, 2012 Author Share Posted January 10, 2012 Кстати, насчет тени, а можно сделать не тень, а обводку (как в сампе)? Просто обводка максимально отделяет весь текст от окружающего мира, а тень - только снизу и справа. Допустим, текст светло синий и непрозрачный и, если посмотреть на небо (схожий цвет), то текст как бы соединиться с небом. Ну кто играл в самп, поймет, там все тексты с обводкой темной и хоть куда смотри - всегда текст отделен полностью от игрового мира. Тени есть сразу. Я хотел сделать обводку, пока не знаю как. Да, я видел как в сампе. сам лэйбл масштабируется? Нет. Надо будет сделать функцию. читаю список в первом посте.. а как удалить лэйбл? Точно. Это фейл. если есть желание это сделать Желание есть. Link to comment
Kernell Posted January 10, 2012 Share Posted January 10, 2012 Тени есть сразу. Я хотел сделать обводку, пока не знаю как. Да, я видел как в сампе. Две тени, одна сверху влево, друга сниза в право.. Link to comment
StUNt71 Posted January 10, 2012 Author Share Posted January 10, 2012 Хорошая идея. Надо будет попробовать, но мне кажется не получится красиво. Link to comment
Kernell Posted January 10, 2012 Share Posted January 10, 2012 local screenWidth, screenHeight = guiGetScreenSize(); local X = screenWidth - 300; local Y = screenHeight / 2; -- dxDrawText( text, X + 1, Y + 1, screenWidth, screenHeight, -16777216, 1.0, ConsolaBold12 ); dxDrawText( text, X + 1, Y - 1, screenWidth, screenHeight, -16777216, 1.0, ConsolaBold12 ); dxDrawText( text, X - 1, Y - 1, screenWidth, screenHeight, -16777216, 1.0, ConsolaBold12 ); dxDrawText( text, X - 1, Y + 1, screenWidth, screenHeight, -16777216, 1.0, ConsolaBold12 ); dxDrawText( text, X, Y, screenWidth, screenHeight, -1, 1.0, ConsolaBold12 ); Вроде норм... Link to comment
StUNt71 Posted January 10, 2012 Author Share Posted January 10, 2012 Да-да, как раз так и подумывал сделать. Спасибо за идею. Всё гениальное - просто. Link to comment
StUNt71 Posted January 10, 2012 Author Share Posted January 10, 2012 Мне кажется много функций получилось. Link to comment
MX_Master Posted January 10, 2012 Share Posted January 10, 2012 кстати, т.к. тени накладываются друг на друга, то цвет каждой из 4-х теней должен быть в 4 раза светлее. Этим мы добьемся, допустим, точно указанного цвета. Еще 1 плюс от такого наложения 4-х более светлых теней - получатся более мягкие скругленные углы обводки. про сокращение кол-ва функций я уже выше писал вариант решения слегка переименовал тему, не против? Link to comment
StUNt71 Posted January 10, 2012 Author Share Posted January 10, 2012 Нет. про сокращение кол-ва функций я уже выше писал вариант решения Этот вариант и решил использовать. Link to comment
LoveFist Posted January 10, 2012 Share Posted January 10, 2012 Зачем изобретать велосипед с тенями и обводками? dxtextlib вам в помощь Link to comment
StUNt71 Posted January 10, 2012 Author Share Posted January 10, 2012 Обновил первый пост. Добавил новые скриншоты. И так что же можно делать: - Создать надпись в игровом мире. createLabel3D("Ваш текст", -720.0256, 952.820, 12.5621, 50.0) - Прикрепить надпись к элементу со смещением по всем осям. (player, vehicle, object) attachLabel3DToElement(label, element, 0.0, 0.0, 1.5) - Менять шрифт. setLabel3DParam(label, "Font", "pricedown") - Менять текст. setLabel3DParam(label, "Text", "Ваш текст") - Менять цвет. setLabel3DParam(label, "Color", 255, 0, 0) - Менять цвет тени. setLabel3DParam(label, "S-Color", 0, 255, 0) - Менять цвет обводки. setLabel3DParam(label, "B-Color", 0, 0, 255) - Менять координаты. setLabel3DParam(label, "Position", -720.0256, 952.820, 12.5621) - Менять интерьер. setLabel3DParam(label, "Interior", 1) - Менять измерение. setLabel3DParam(label, "Dimension", 71) - Менять дистанцию с которой будет видна надпись. setLabel3DParam(label, "S-Distance", 50.0) - Менять размер шрифта. setLabel3DParam(label, "Scale", 1.5) - Вкл. \ выкл. тень. setLabel3DParam(label, "Shadow", true) - Вкл. \ выкл. обводку setLabel3DParam(label, "Border", true) - Вкл. \ выкл. масштабирование при отдалении от надписи. setLabel3DParam(label, "Scaling", true) - Вкл. \ выкл. прозрачность при отдалении от надписи. setLabel3DParam(label, "Invis", true) - Вкл. \ выкл. видимость надписи через стены. setLabel3DParam(label, "LOS", true) Link to comment
Kenix Posted January 10, 2012 Share Posted January 10, 2012 - Вкл. \ выкл. видимость надписи через стены. setLabel3DParam(label, "LOS", true) Я думаю нужно больше параметров добавить к этой функции. Я про то что можно настроить видимость через здания,машины,игроков и т.д https://wiki.multitheftauto.com/wiki/ProcessLineOfSight Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now