[INC] Colors v.1.0.5

Andrey

пишу код за еду
Команда форума
Сообщения
3,350
Реакции
3,768
Colors
Функции для легкого управления цветом чата

Описание:
Этот файл позволяет разработчикам легко управлять цветами шрифта чата в различных игровых модах, использовать теги цветов, использовать теги в файлах перевода и автоматически заменять цвета в моде, которые не поддерживают их (любой цвет, который не поддерживается, будет заменен на зеленый цвет).

Функции:
  1. CPrintToChat
  2. CPrintToChatAll
  3. CPrintToChatEx
  4. CPrintToChatAllEx
  5. CRemoveTags
  6. CSkipNextClient

Регулярные фунции:
PHP:
/**
 * Prints a message to a specific client in the chat area.
 * Supports color tags.
 *
 * @param client      Client index.
 * @param szMessage   Message (formatting rules).
 * @return              No return
 * 
 * On error/Errors:   If the client is not connected an error will be thrown.
 */
stock CPrintToChat(client, const String:szMessage[], any:...)

/**
 * Prints a message to all clients in the chat area.
 * Supports color tags.
 *
 * @param client      Client index.
 * @param szMessage   Message (formatting rules)
 * @return              No return
 */
stock CPrintToChatAll(const String:szMessage[], any:...)
Tags: {default}, {green}, {yellow}, {lightgreen}, {red}, {blue}, {olive}.

Основные цвета: default, green (желтый в L4D), olive.
Командные цвета: lightgreen, red, blue.

Таблица цветов:

Примечания:
  • You can use only one team color (like lightgreen, red or blue) in the message.
  • In hl2dm colors are different for classic deathmatch and team deathmatch.
  • If some color is not supported by the mod it will be automatically replaced with green
  • You can use these functions instead of default SM function, they are supports formatting (%d, %s, %t, etc.)
  • Green color is yellow in L4D and yellow is green in all other games. You can use tag that you prefer.
  • There must be at least one player in each team for proper red and blue colors working. Otherwise these tags will be replaced with green.


Team color based functions:
PHP:
/** 
 * Prints a message to a specific client in the chat area. 
 * Supports color tags and teamcolor tag. 
 * 
 * @param client      Client index. 
 * @param author      Author index whose color will be used for teamcolor tag. 
 * @param szMessage   Message (formatting rules). 
 * @return              No return 
 *  
 * On error/Errors:   If the client or author are not connected an error will 
 *                    be thrown. 
 */ 
stock CPrintToChatEx(client, author, const String:szMessage[], any:...) 

/** 
 * Prints a message to all clients in the chat area. 
 * Supports color tags and teamcolor tag. 
 * 
 * @param author      Author index whos color will be used for teamcolor tag. 
 * @param szMessage   Message (formatting rules). 
 * @return              No return 
 *  
 * On error/Errors:   If the author is not connected an error will 
 *                    be thrown. 
 */ 
stock CPrintToChatAllEx(author, const String:szMessage[], any:...)
Tags: {default}, {green}, {yellow}, {olive}, {teamcolor}.

Основные цвета: default, green (желтый в L4D), olive.
Командные цвета: based on author's team color.

Примечания:
  • Author index is any client index whose team color you want to be used for {teamcolor} tag
  • Tag {teamcolor} replaces {red}, {blue} and {lightgreen} tags
  • All notes for regular functions are used for these function too.

Другое:
PHP:
/**
 * Removes color tags from the string.
 *
 * @param szMessage   String.
 * @param maxlength   Maximum length of the string buffer.
 * @return              No return
 */
stock CRemoveTags(String:szMessage[], maxlength)

/**
 * This function should only be used right in front of
 * CPrintToChatAll or CPrintToChatAllEx and it tells
 * to those funcions to skip specified client when printing
 * message to all clients. After message is printed client will
 * no more be skipped.
 * 
 * @param client   Client index
 * @return           No return
 */
stock CSkipNextClient(client)
FAQ​

1. Как использовать цвет?
Просто пометьте текст тегом цвета
PHP:
CPrintToChat(client, "This text is {green}green{default} and this is {red}red");
Что получится:


2. Можно ли использовать красный синий и зеленый цвет в одной строке?
Нет. Можно использовать только один цвет команды в строке. (Либо синий либо красный)

3. Какой формат работы функции?
Они работают точно так же, как по умолчанию SM функции (например, PrintToChat)
PHP:
CPrintToChatAll("This number {green}%d{default} is green", 5);
Что получится:


4. Можно ли использовать цвета в файлах перевода?
Да, можно.
Пример:
Код:
"Phrases"
{
    "My phrase"
    {
        "en"            "My {green}phrase"
        "ru"            "Моя {green}фраза"
    }
}
В коде:
PHP:
CPrintToChatAll("%t", "My phrase");
Что получается:


5. Как его установить?
Потожить colors.inc в папку sourcemod/scripting/include
Добавить в код:
PHP:
#include <colors>
6. Можно ли использовать серый цвет?

Можно. Но для этого требуется хотябы один игрок в наблюдателях.

7. Почему иногда красный-синий цвета иногда показывает зеленым?

Должен быть хотя бы один игрок в каждой команде для надлежащего красного и синего цвета. В противном случае эти теги будут заменены на зеленый.

Оригинал
 

Вложения

Последнее редактирование модератором:

maza511

Участник
Сообщения
927
Реакции
455
Re: [INC] Colors v.1.0.2

Есть плагин каторый меняет цвет надписи в чате?
Например хочу в конфинге написать:
say Пример
И чтоб "пример" было зелёного цвета.
 

luxor

Участник
Сообщения
22
Реакции
14
Re: [INC] Colors v.1.0.2

подскажите как поставить его
 

romanovka

Участник
Сообщения
172
Реакции
26
Re: [INC] Colors v.1.0.2

установил я это чудо, но когда пытаюсь покрасить слово в файлах перевода (папка translations)

например "{green}Игрок {1} шлепнут." то у меня так и пишет (тоесть не красится)
 

maza511

Участник
Сообщения
927
Реакции
455
Re: [INC] Colors v.1.0.2

установил я это чудо, но когда пытаюсь покрасить слово в файлах перевода (папка translations) например "{green}Игрок {1} шлепнут." то у меня так и пишет (тоесть не красится)
Потому, что сам плагин компилирован без Colors. То есть в плагине должно быть написано: #include <colors>
 

romanovka

Участник
Сообщения
172
Реакции
26
Re: [INC] Colors v.1.0.2

Компилировал я плагин с #include <colors>, но всё также


HELP ME
 
Последнее редактирование:

random.81

Участник
Сообщения
503
Реакции
823
Re: [INC] Colors v.1.0.3

Обновление:

  • 1.0.4 Добавлена поддержка оливкового цвета для CSS.
 
Последнее редактирование:

LEII4A

Участник
Сообщения
743
Реакции
134
Re: [INC] Colors v.1.0.4

куда именно нужно вставлять #include <colors> в исходнике перед компиляцией?
/**
* vim: set ts=4 :
* =============================================================================
* AFK Manager
* Handles AFK Players
*
* SourceMod (C)2004-2007 AlliedModders LLC. All rights reserved.
* =============================================================================
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License, version 3.0, as published by the
* Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*
* As a special exception, AlliedModders LLC gives you permission to link the
* code of this program (as well as its derivative works) to "Half-Life 2," the
* "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
* by the Valve Corporation. You must obey the GNU General Public License in
* all respects for all other code used. Additionally, AlliedModders LLC grants
* this exception to all derivative works. AlliedModders LLC defines further
* exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
* or <http://www.sourcemod.net/license.php>.
*
*/

#pragma semicolon 1
#include <sourcemod>
#include <sdktools>
#include <colors>
правельно ли я вставил код? ну и дальше в afk_manager.phrases.txt добавил к строчке
"ru" "{green}ВНИМАНИЕ: Начните двигаться, или через {1} сек. будете отключены от сервера."
и нифига не робит(((
 

romanovka

Участник
Сообщения
172
Реакции
26
Re: [INC] Colors v.1.0.4

#include <colors> ты установил правильно, но и красить текст надо в сп файле

P.S. у меня так и не получилось покрасить)
 

LEII4A

Участник
Сообщения
743
Реакции
134
Re: [INC] Colors v.1.0.4

.phrases.txt не прокатит? красить и компилировать sp?
P.S.
я после своего предыдущего сообщения забил на это дело)
 

dilman88

Участник
Сообщения
117
Реакции
23
Re: [INC] Colors v.1.0.4

можно по пробывать красить по другому, мое мнение основывается на том что я смотрел исходники плагинов которые пишут в чат различными цветами, там нет расширения #include <colors>
но вместо него есть
#pragma semicolon 1 а перед текстом который окрашен указывается цвет в формате /x01, /x02 и т.д.
вот так я думаю нужно красить.
P.S. сам еще не пробывал но собираюсь все стандартные желтые надписи переделать в светлозеленный
 

OneStep

Участник
Сообщения
15
Реакции
3
Блин.... обьясните... как его можно применить на скриптах... ну например QuakeSounds, там annonse(оповещение)не цветное... дефолтское....(желтое) а я хочу цветными сделать...и как нибудь можно его приминить в плагины рекламы Advertisments ??? Очень нужно... Хочу красиво украсить сервер цветами... Особенно нравится оливковый... :)))
 

OneStep

Участник
Сообщения
15
Реакции
3
блин... добавил #include <color> в quakesound.sp и в transliations все поправил, но не читает... :(
Или нужно добавлять цвета прямо в sp? там очень трудно найти msg выводящиеся в чат... так то я понимаю скрипты... но этот... :(
 
Сверху