Raised This Month: $ Target: $400
 0% 

[Help] admin sma edits


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
zmd69
Junior Member
Join Date: Feb 2016
Old 10-30-2017 , 12:12   Re: [Help] admin sma edits
Reply With Quote #10

try this one:
Quote:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <cstrike>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

#pragma tabsize 0

new g_iMsgID_SayText;

new g_iAdminChatFlag = ADMIN_CHAT;

new Array:szTags
new g_iPlayerTag[33]
new Array:user_authtype, Array:user_name

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

g_iMsgID_SayText = get_user_msgid( "SayText" );

new szCommand[ 32 ], iFlags;
for( new i = 0; get_concmd( i, szCommand, charsmax( szCommand ), iFlags, "", 0, 0, -1 ); i++ )
{
if( equal( szCommand, "amx_chat" ) )
{
g_iAdminChatFlag = iFlags;
break;
}
}

loadTags();
user_authtype = ArrayCreate(1, 1)
user_name = ArrayCreate(32, 1)
szTags = ArrayCreate(32, 1)
}

public client_putinserver(id)
{
g_iPlayerTag[id] = -1

static user_authstring[64], authstring[64], find
find = -1

for(new i = 0; i < ArraySize(user_authtype); i++)
{
ArrayGetString(user_name, i, authstring, charsmax(authstring))

switch(ArrayGetCell(user_authtype, i)) {
case 0: {
get_user_authid(id, user_authstring, charsmax(user_authstring))
if(equal(authstring, user_authstring)) find = i
}
case 1: {
get_user_name(id, user_authstring, charsmax(user_authstring))
if(equal(authstring, user_authstring)) find = i
}
case 2: {
get_user_ip(id, user_authstring, charsmax(user_authstring), 1)
if(equal(authstring, user_authstring)) find = i
}
}
}

if(find != -1)
g_iPlayerTag[id] = find
}

public CmdSay( iPlayer )
{
if( !g_iPlayerTag[iPlayer] )
{
return PLUGIN_CONTINUE;
}

if( !is_user_connected( iPlayer ) )
{
return PLUGIN_HANDLED_MAIN;
}

new szArgs[ 194 ];

if( !IsValidMessage( iPlayer, true, szArgs, charsmax( szArgs ) ) )
{
return PLUGIN_HANDLED_MAIN;
}

new iAlive = is_user_alive( iPlayer );
new CsTeams:iTeam = CsTeams: ( ( _:cs_get_user_team( iPlayer ) ) % 3 );

new iPlayers[ 32 ], iNum;
get_players( iPlayers, iNum );

new szName[ 32 ];
get_user_name( iPlayer, szName, charsmax( szName ) );

new const szPrefixes[ 2 ][ CsTeams ][ ] =
{
{
"*SPEC* ",
"*DEAD* ",
"*DEAD* ",
"*DEAD* "
},
{
"",
"",
"",
""
}
};

new szMessage[ 191 ];
replace_all( szMessage, 190, "%s", "" );

static name[32], Tag[32], Temp[ 100 ];

if(g_iPlayerTag[iPlayer] != -1) {
ArrayGetString(szTags, g_iPlayerTag[iPlayer], Tag, charsmax(Tag))
}

get_user_name (iPlayer, name, 31)

formatex( Temp, charsmax(Temp), "^1%s^4%s^3 %s^1 : %s", szPrefixes[ iAlive ][ iTeam ], Tag, name, szArgs );

new iTarget;
for( new i = 0; i < iNum; i++ )
{
iTarget = iPlayers[ i ];

if( iTarget == iPlayer || ( iAlive || is_user_connected( iTarget ) ) && is_user_alive( iTarget ) == iAlive )
{
message_begin( MSG_ONE_UNRELIABLE, g_iMsgID_SayText, _, iTarget );
write_byte( iPlayer );
write_string( szMessage );
message_end( );
}
}

return PLUGIN_HANDLED_MAIN;
}

public CmdSayTeam( iPlayer )
{
if( !g_iPlayerTag[iPlayer] )
{
return PLUGIN_CONTINUE;
}

if( !is_user_connected( iPlayer ) )
{
return PLUGIN_HANDLED_MAIN;
}

new szArgs[ 194 ];

if( !IsValidMessage( iPlayer, true, szArgs, charsmax( szArgs ) ) )
{
return PLUGIN_HANDLED_MAIN;
}

new iAlive = is_user_alive( iPlayer );
new CsTeams:iTeam = CsTeams: ( ( _:cs_get_user_team( iPlayer ) ) % 3 );

new iPlayers[ 32 ], iNum;
get_players( iPlayers, iNum );

new szName[ 32 ];
get_user_name( iPlayer, szName, charsmax( szName ) );

new const szPrefixes[ 2 ][ CsTeams ][ ] =
{
{
"(Spectator)",
"*DEAD*(Terrorist)",
"*DEAD*(Counter-Terrorist)",
""
},
{
"(Spectator)",
"(Terrorist)",
"(Counter-Terrorist)",
""
}
};

new szMessage[ 191 ];
replace_all( szMessage, 190, "%s", "" );

new name[32], Tag[20], Temp[ 51 ];


if(g_iPlayerTag[iPlayer] != -1) {
ArrayGetString(szTags, g_iPlayerTag[iPlayer], Tag, charsmax(Tag))
}

get_user_name (iPlayer, name, 31)

formatex( Temp, charsmax(Temp), "^1%s^4 %s^3 %s^1 : %s", szPrefixes[ iAlive ][ iTeam ], Tag, name, szArgs );

for( new i = 0, iTeammate; i < iNum; i++ )
{
iTeammate = iPlayers[ i ];

if( iTeammate == iPlayer || ( iAlive || is_user_connected( iTeammate ) ) && is_user_alive( iTeammate ) == iAlive && CsTeams: ( ( _:cs_get_user_team( iTeammate ) ) % 3 ) == iTeam )
{
message_begin( MSG_ONE_UNRELIABLE, g_iMsgID_SayText, _, iTeammate );
write_byte( iPlayer );
write_string( szMessage );
message_end( );
}
}

return PLUGIN_HANDLED_MAIN;
}

bool:IsValidMessage( iPlayer, bool:bTeamSay, szMessage[ ], iLen )
{
read_args( szMessage, iLen );
remove_quotes( szMessage );

if( !szMessage[ 0 ] )
{
return false;
}

new iPos, cChar, i;
while( ( cChar = szMessage[ iPos ] ) == '@' )
{
i++;
iPos++;
}

if( i > 0 )
{
return ( !( bTeamSay ? ( i == 1 ) : ( 1 <= i <= 3 ) ) || !access( iPlayer, g_iAdminChatFlag ) );
}

while( 0 < ( cChar = szMessage[ iPos++ ] ) <= 255 )
{
if( cChar != ' ' && cChar != '%' )
{
return true;
}
}

return false;
}

loadTags()
{
// load tags from file
new sConfig[128]; get_localinfo("amxx_configsdir", sConfig, charsmax(sConfig))
formatex(sConfig, charsmax(sConfig), "%s/users.ini", sConfig);

new Len, Line[512], Data[5][64], authtype, MaxFileLine;
MaxFileLine = file_size(sConfig, 1);

for(new Num; Num < MaxFileLine; Num++)
{
read_file(sConfig, Num, Line, charsmax(Line), Len);
parse(Line, Data[0], charsmax(Data[]), Data[1], charsmax(Data[]), Data[2], charsmax(Data[]), Data[3], charsmax(Data[]), Data[4], charsmax(Data[]));

if(Line[0] == ';' || 2 > strlen(Line) || !Line[0] || Line[0] == '/' || Line[0] == '\')
continue;

remove_quotes(Data[0]); // Nick/Steam/IP
remove_quotes(Data[1]); // Password
remove_quotes(Data[2]); // Acess Flag
remove_quotes(Data[3]); // Acess Type
remove_quotes(Data[4]); // TAG

if(contain(Data[3], "c") != -1)
authtype = 0 // Steam

else if(contain(Data[3], "d") != -1) // IP
authtype = 2
else // Nick
authtype = 1

ArrayPushString(user_name, Data[0])
ArrayPushCell(user_authtype, authtype)

static szTag[32]
formatex(szTag, charsmax(szTag), "%s", Data[4])
replace_all(szTag, charsmax(szTag), "!g", "^x04")
replace_all(szTag, charsmax(szTag), "!y", "^x01")
replace_all(szTag, charsmax(szTag), "!t", "^x03")
replace_all(szTag, charsmax(szTag), "/g", "^x04")
replace_all(szTag, charsmax(szTag), "/y", "^x01")
replace_all(szTag, charsmax(szTag), "/t", "^x03")
ArrayPushString(szTags, szTag)
}
}

Last edited by zmd69; 10-30-2017 at 12:15.
zmd69 is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 13:00.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode