PDA

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



Seregamil
16.07.2014, 06:49
Функция, позволяющая подсвечивать тег игрока при отправке текстового сообщения.

http://breedpmnr.ru/i/F7D940
http://breedpmnr.ru/i/5DC5AAD

Максимальная длина тега, по стандарту, равна 10.
Цвет подсветки, установленный по стандарту - красный.

Использование функции:


if( BacklightTagPlayer( playerid, text ) )
return false ;


Функция:



#define MAX_TAG_LEN 10 //Максимальная длина тега
#define TAG_COLOR "{ff0000}" //Цвет подсветки тега

BacklightTagPlayer( playerid, text[] ){
new u_name[ MAX_PLAYER_NAME + 1 ];
GetPlayerName( playerid, u_name, MAX_PLAYER_NAME + 1 );
if( u_name[ 0 ] != '[' )
return false;

new bracket = strfind( u_name, "]", true );

if( bracket == -1 )
return false;
if( ++bracket > MAX_TAG_LEN )
return false;

new tag[ MAX_TAG_LEN + 1 ], name[ MAX_PLAYER_NAME + 1 - MAX_TAG_LEN ];
strmid( tag, u_name, 0, bracket );
strmid( name, u_name, bracket, strlen( u_name ) );

new str[ 256 ];
format( str, sizeof str, ""TAG_COLOR"%s{%06x}%s [ID: %i]{FFFFFF} %s", tag, GetPlayerColor(playerid) >>> 8, name, playerid, text );
SendClientMessageToAll( -1, str );
return true ;
}



Внимание: для корректной работы функции, у игрока должен быть установлен цвет при помощи функции SetPlayerColor (http://wiki.sa-mp.com/wiki/SetPlayerColor), т.к. функция GetPlayerColor (http://wiki.sa-mp.com/wiki/GetPlayerColor) любит косячить.
http://breedpmnr.ru/i/B0613C0

Автор: Seregamil

P.S. Клану Fired_Up: никакого отношения я к вам не имею, просто у вас самый длинный тег, из тех, которые я видел на тренинг серверах 2012-2013 годов )

OKStyle
16.07.2014, 08:51
Клану Fired_Up: никакого отношения я к вам не имею
Ну слава Богу.

Seregamil
16.07.2014, 10:49
Ну слава Богу.

Проблемы?