Existing user? Sign in
Sign up
Games
Servers
Useful
User
Pass
2FA
New Messages Shower
Freakz Forum Index
->
Trash Bin
->
CS 2006-2019 (Archived)
->
Resources
Author
Message
865
FarulNUMOARE
[Banned user]
Status: Offline
(since 06-09-2013 11:05)
Joined: 14 Aug 2013
Posts: 264
,
Topics: 37
Location:
Constanta.
Reputation:
-100.7
Votes
: 10
Posted: 21-08-2013, 15:44:31
| Translate post to:
... (
Click for more languages
)
Descriere
: Acest plugin incarca culoarea, continutul, efectul si chiar durata fiecarui mesaj dintr-un fisier .ini.
Cand mesajul este afisat, acesta iti va fi si printat in consola, putand astfel sa il recititesti, asta daca nu ai apucat sau nu ai retinut ce iti trebuia.
Vor fi create 4 exemple de mesaje si va sunt explicate toate functiile.
Asa arata continutul fisierului Messages.ini (cel default scris de plugin in care gasiti si explicatiile).
Code:
// Intervalul dintre mesaje, adica din cate in cate secunde apare unul din mesajele de mai jos.
#INTERVAL "100.0"
// Aici treceti mesajele unul sub altul dupa cum urmeaza.
// Incepen sa construim un nou mesaj.
{
// Ii setam culoarea in RRR GGG BBB (ex: culoarea alb, 255 255 255 ).Valoarea -1 inseamca ca acea culoare va fi random ( la intamplare ).
#COLOR "255 255 255"
// Punem un mesaj ( maxim 128 caractere ). /n inseamna rand nou ( adica mesajul va fi afisat sub textul aflat inainte
#MESSAGE "Mesaj generat de NewMessagesShower.amxx/nSetati-va mesajele in Messages.ini/nAflat in directorul configs."
// Setam efectul mesajului. -1 este random ( la intamplare ), 0 apare deodata, 1 sclipeste, 2 apare cate o litera.
#EFFECT "-1"
// Durata mesajului. ( cat va ramane afisat ).
#DURATION "5.0"
// Am terminat de contruit mesajul.
}
// Acum am sa va dau cateva exemple:
{
#COLOR "255 255 0"
#MESSAGE "Pentru a reclama un presupus codat/nFolositi comanda say_team(U)/nUrmata de simbolul @ si de mesaj."
#EFFECT "2"
#DURATION "7.0"
}
{
#COLOR "0 255 255"
#MESSAGE "Echipa noastra va ureaza,/nSarbatori fericite alaturi de cei dragi."
#EFFECT "-1"
#DURATION "6.0"
}
{
#COLOR "-1 -1 -1"
#MESSAGE "Va rugam pastrati un limbaj decent pe server!"
#EFFECT "1"
#DURATION "10.0"
}
Descarcare
:
Code:
#include < amxmodx >
#include < dhudmessage >
#pragma semicolon 1
#define PLUGIN "New Messages Shower"
#define VERSION "2.0c"
#define MAX_MESSAGES 64
new const g_szMessagesFile[ ] = "Messages.ini";
new Float:g_fMessagesInterval = -1.0;
new g_szMessages[ MAX_MESSAGES ][ 128 ];
new g_iMessagesRedColor[ MAX_MESSAGES ];
new g_iMessagesGreenColor[ MAX_MESSAGES ];
new g_iMessagesBlueColor[ MAX_MESSAGES ];
new g_iMessagesEffect[ MAX_MESSAGES ];
new Float:g_fMessagesDuration[ MAX_MESSAGES ];
new g_iMessagesCount = 0;
new g_iLastHudMessage = 0;
public plugin_precache( )
{
if( !ReadAndBuildMessages( ) )
{
log_amx( "Fisierul %s nu a fost gasit!", g_szMessagesFile );
WriteAndBuildDefaultMessage( );
}
}
public plugin_init( )
{
register_plugin( PLUGIN, VERSION, "Askhanar" );
if( g_fMessagesInterval > 0.0 )
set_task( g_fMessagesInterval, "DisplayMessage", _, _, _, "b" );
}
public DisplayMessage( )
{
static iRandomHud;
iRandomHud = random( g_iMessagesCount );
while( iRandomHud == g_iLastHudMessage )
iRandomHud = random( g_iMessagesCount );
set_dhudmessage( g_iMessagesRedColor[ iRandomHud ] == -1 ? random( 256 ) : g_iMessagesRedColor[ iRandomHud ],
g_iMessagesGreenColor[ iRandomHud ] == -1 ? random( 256 ) : g_iMessagesGreenColor[ iRandomHud ],
g_iMessagesBlueColor[ iRandomHud ] == -1 ? random( 256 ) : g_iMessagesBlueColor[ iRandomHud ],
-1.0,
0.00,
g_iMessagesEffect[ iRandomHud ] == -1 ? random_num( 0, 2 ) : g_iMessagesEffect[ iRandomHud ],
1.0,
g_fMessagesDuration[ iRandomHud ],
0.1,
0.1 );
static iPlayers[ 32 ];
static iPlayersNum;
get_players( iPlayers, iPlayersNum, "ch" );
if( !iPlayersNum )
return;
for( new i = 0 ; i < iPlayersNum ; i++ )
{
if( !is_user_connected( iPlayers[ i ] ) )
continue;
show_dhudmessage( iPlayers[ i ], g_szMessages[ iRandomHud ] );
client_print( iPlayers[ i ], print_console, g_szMessages[ iRandomHud ] );
}
}
ReadAndBuildMessages( )
{
new szFile[ 128 ];
get_localinfo( "amxx_configsdir", szFile, sizeof ( szFile ) -1 );
format( szFile, sizeof ( szFile ) -1, "%s/%s", szFile, g_szMessagesFile );
new iFile = fopen( szFile, "rt" );
if( !iFile )
return 0;
new szData[ 256 ], szKey[ 16 ], szValue[ 128 ];
new bool:bNewMessage = false;
while( !feof( iFile ) )
{
fgets( iFile, szData, sizeof ( szData ) -1 );
trim( szData );
if( !szData[ 0 ] || szData[ 0 ] == ';' || ( szData[ 0 ] == '/' && szData[ 1 ] == '/') )
{
continue;
}
if( szData[ 0 ] == '{' )
{
bNewMessage = true;
continue;
}
else if( szData[ 0 ] == '}' )
{
if( bNewMessage )
g_iMessagesCount++;
bNewMessage = false;
if( g_iMessagesCount >= MAX_MESSAGES )
{
log_amx( "Numarul maxim de mesaje( %i ) a fost atins!", MAX_MESSAGES );
break;
}
continue;
}
else
{
parse( szData, szKey, sizeof ( szKey ) -1, szValue, sizeof ( szValue ) -1 );
switch( szKey[ 0 ] )
{
case '#':
{
switch( szKey[ 2 ] )
{
case 'O':
{
if( equal( szKey, "#COLOR" ) && bNewMessage )
{
static szRed[ 5 ], szGreen[ 5 ], szBlue[ 5 ];
parse( szValue, szRed, sizeof ( szRed ) -1,\
szGreen, sizeof ( szGreen ) -1,\
szBlue, sizeof ( szBlue ) -1 );
g_iMessagesRedColor[ g_iMessagesCount ] = clamp( str_to_num( szRed ), -1, 255 );
g_iMessagesGreenColor[ g_iMessagesCount ] = clamp( str_to_num( szGreen ), -1, 255 );
g_iMessagesBlueColor[ g_iMessagesCount ] = clamp( str_to_num( szBlue ), -1, 255 );
}
}
case 'E':
{
if( equal( szKey, "#MESSAGE" ) && bNewMessage )
{
replace_all( szValue, sizeof ( szValue ) -1, "/n", "^n" );
copy( g_szMessages[ g_iMessagesCount ], sizeof ( g_szMessages[ ] ) -1, szValue );
}
}
case 'F':
{
if( equal( szKey, "#EFFECT" ) && bNewMessage )
{
g_iMessagesEffect[ g_iMessagesCount ] = clamp( str_to_num( szValue ), -1, 2 );
}
}
case 'U':
{
if( equal( szKey, "#DURATION" ) && bNewMessage )
{
g_fMessagesDuration[ g_iMessagesCount ] = floatclamp( str_to_float( szValue ), 5.0, 20.0 );
}
}
case 'N':
{
if( equal( szKey , "#INTERVAL" ) && !bNewMessage )
{
g_fMessagesInterval = floatclamp( str_to_float( szValue ), 30.0, 600.0 );
}
}
}
}
}
}
}
fclose( iFile );
if( g_iMessagesCount < MAX_MESSAGES )
log_amx( "Am incarcat cu succes %i mesaje din %s", g_iMessagesCount, g_szMessagesFile );
return 1;
}
WriteAndBuildDefaultMessage( )
{
new szFile[ 128 ];
get_localinfo( "amxx_configsdir", szFile, sizeof ( szFile ) -1 );
format( szFile, sizeof ( szFile ) -1, "%s/%s", szFile, g_szMessagesFile );
write_file( szFile, "// Intervalul dintre mesaje, adica din cate in cate secunde apare unul din mesajele de mai jos.", -1 );
write_file( szFile, "", -1 );
write_file( szFile, "#INTERVAL ^"100.0^"", -1 );
write_file( szFile, "", -1 );
write_file( szFile, "", -1 );
write_file( szFile, "", -1 );
write_file( szFile, "// Aici treceti mesajele unul sub altul dupa cum urmeaza.", -1 );
write_file( szFile, "", -1 );
write_file( szFile, "", -1 );
write_file( szFile, "// Incepen sa construim un nou mesaj.", -1 );
write_file( szFile, "", -1 );
write_file( szFile, "{", -1 );
write_file( szFile, "", -1 );
write_file( szFile, "// Ii setam culoarea in RRR GGG BBB (ex: culoarea alb, 255 255 255 ).Valoarea -1 inseamca ca acea culoare va fi random ( la intamplare ).", -1 );
write_file( szFile, "", -1 );
write_file( szFile, "#COLOR ^"255 255 255^"", -1 );
write_file( szFile, "", -1 );
write_file( szFile, "// Punem un mesaj ( maxim 128 caractere ). /n inseamna rand nou ( adica mesajul va fi afisat sub textul aflat inainte ", -1 );
write_file( szFile, "", -1 );
write_file( szFile, "#MESSAGE ^"Mesaj generat de NewMessagesShower.amxx/nSetati-va mesajele in Messages.ini/nAflat in directorul configs.^"", -1 );
write_file( szFile, "", -1 );
write_file( szFile, "// Setam efectul mesajului. -1 este random ( la intamplare ), 0 apare deodata, 1 sclipeste, 2 apare cate o litera.", -1 );
write_file( szFile, "", -1 );
write_file( szFile, "#EFFECT ^"-1^"", -1 );
write_file( szFile, "", -1 );
write_file( szFile, "// Durata mesajului. ( cat va ramane afisat ).", -1 );
write_file( szFile, "", -1 );
write_file( szFile, "#DURATION ^"5.0^"", -1 );
write_file( szFile, "", -1 );
write_file( szFile, "// Am terminat de contruit mesajul.", -1 );
write_file( szFile, "", -1 );
write_file( szFile, "}", -1 );
write_file( szFile, "", -1 );
write_file( szFile, "", -1 );
write_file( szFile, "// Acum am sa va dau un exemplu:", -1 );
write_file( szFile, "", -1 );
write_file( szFile, "", -1 );
write_file( szFile, "{", -1 );
write_file( szFile, "", -1 );
write_file( szFile, "#COLOR ^"255 255 0^"", -1 );
write_file( szFile, "#MESSAGE ^"Pentru a reclama un presupus codat/nFolositi comanda say_team(U)/nUrmata de simbolul @ si de mesaj.^"", -1 );
write_file( szFile, "#EFFECT ^"0^"", -1 );
write_file( szFile, "#DURATION ^"7.0^"", -1 );
write_file( szFile, "", -1 );
write_file( szFile, "}", -1 );
write_file( szFile, "", -1 );
write_file( szFile, "{", -1 );
write_file( szFile, "", -1 );
write_file( szFile, "#COLOR ^"0 255 255^"", -1 );
write_file( szFile, "#MESSAGE ^"Echipa noastra va ureaza,/nSarbatori fericite alaturi de cei dragi.^"", -1 );
write_file( szFile, "#EFFECT ^"1^"", -1 );
write_file( szFile, "#DURATION ^"6.0^"", -1 );
write_file( szFile, "", -1 );
write_file( szFile, "}", -1 );
write_file( szFile, "", -1 );
write_file( szFile, "{", -1 );
write_file( szFile, "", -1 );
write_file( szFile, "#COLOR ^"18 152 236^"", -1 );
write_file( szFile, "#MESSAGE ^"Va rugam pastrati un limbaj decent pe server!^"", -1 );
write_file( szFile, "#EFFECT ^"2^"", -1 );
write_file( szFile, "#DURATION ^"10.0^"", -1 );
write_file( szFile, "", -1 );
write_file( szFile, "}", -1 );
log_amx( "Am creat cu succes fisierul %s", g_szMessagesFile );
ReadAndBuildMessages( );
}
De asemenea veti avea nevoie de urmatorul include.
Code:
#if defined _dhudmessage_included
#endinput
#endif
#define _dhudmessage_included
#include <amxmodx>
stock __dhud_color;
stock __dhud_x;
stock __dhud_y;
stock __dhud_effect;
stock __dhud_fxtime;
stock __dhud_holdtime;
stock __dhud_fadeintime;
stock __dhud_fadeouttime;
stock __dhud_reliable;
stock set_dhudmessage( red = 0, green = 160, blue = 0, Float:x = -1.0, Float:y = 0.65, effects = 2, Float:fxtime = 6.0, Float:holdtime = 3.0, Float:fadeintime = 0.1, Float:fadeouttime = 1.5, bool:reliable = false )
{
#define clamp_byte(%1) ( clamp( %1, 0, 255 ) )
#define pack_color(%1,%2,%3) ( %3 + ( %2 << 8 ) + ( %1 << 16 ) )
__dhud_color = pack_color( clamp_byte( red ), clamp_byte( green ), clamp_byte( blue ) );
__dhud_x = _:x;
__dhud_y = _:y;
__dhud_effect = effects;
__dhud_fxtime = _:fxtime;
__dhud_holdtime = _:holdtime;
__dhud_fadeintime = _:fadeintime;
__dhud_fadeouttime = _:fadeouttime;
__dhud_reliable = _:reliable;
return 1;
}
stock show_dhudmessage( index, const message[], any:... )
{
new buffer[ 128 ];
new numArguments = numargs();
if( numArguments == 2 )
{
send_dhudMessage( index, message );
}
else if( index || numArguments == 3 )
{
vformat( buffer, charsmax( buffer ), message, 3 );
send_dhudMessage( index, buffer );
}
else
{
new playersList[ 32 ], numPlayers;
get_players( playersList, numPlayers, "ch" );
if( !numPlayers )
{
return 0;
}
new Array:handleArrayML = ArrayCreate();
for( new i = 2, j; i < numArguments; i++ )
{
if( getarg( i ) == LANG_PLAYER )
{
while( ( buffer[ j ] = getarg( i + 1, j++ ) ) ) {}
j = 0;
if( GetLangTransKey( buffer ) != TransKey_Bad )
{
ArrayPushCell( handleArrayML, i++ );
}
}
}
new size = ArraySize( handleArrayML );
if( !size )
{
vformat( buffer, charsmax( buffer ), message, 3 );
send_dhudMessage( index, buffer );
}
else
{
for( new i = 0, j; i < numPlayers; i++ )
{
index = playersList[ i ];
for( j = 0; j < size; j++ )
{
setarg( ArrayGetCell( handleArrayML, j ), 0, index );
}
vformat( buffer, charsmax( buffer ), message, 3 );
send_dhudMessage( index, buffer );
}
}
ArrayDestroy( handleArrayML );
}
return 1;
}
stock send_dhudMessage( const index, const message[] )
{
message_begin( __dhud_reliable ? ( index ? MSG_ONE : MSG_ALL ) : ( index ? MSG_ONE_UNRELIABLE : MSG_BROADCAST ), SVC_DIRECTOR, _, index );
{
write_byte( strlen( message ) + 31 );
write_byte( DRC_CMD_MESSAGE );
write_byte( __dhud_effect );
write_long( __dhud_color );
write_long( __dhud_x );
write_long( __dhud_y );
write_long( __dhud_fadeintime );
write_long( __dhud_fadeouttime );
write_long( __dhud_holdtime );
write_long( __dhud_fxtime );
write_string( message );
}
message_end();
}
Nume
: New Messages Shower.
Versiune
: 2.0c.
Autor
: Askhanar.
Instalare
:
1. Fisierul
New_Messages_Shower.sma
il puneti in
addons/amxmodx/scripting
.
2. Fisierul
New_Messages_Shower.amxx
il puneti in
addons/amxmodx/plugins
.
3. Intrati in fisierul
addons/amxmodx/configs/plugins.ini
si adaugati la urma:
Code:
New_Messages_Shower.amxx
Imagini
:
JB.FREAKZ.RO
este numarul 1!
0
0
Back to top
Freakz Forum Index
->
Trash Bin
->
CS 2006-2019 (Archived)
->
Resources
The time now is 06-08-2025, 11:08:50
Copyright info
Based on phpBB
ro
/
com
B
Login
I forgot my password
World of Warcraft
Login for more...
Download WoW 7.3.5
Misc
eSports
Achievements
Buy reputation with votes
Reputation trades
Forum rules
Ban list
Members list
User guide (FAQ)
World of Warcraft
View details