AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   [Help] get Tag by Name (https://forums.alliedmods.net/showthread.php?t=250509)

ghost95v 10-25-2014 20:11

[Help] get Tag by Name
 
anyone can make this to set players Tag by their name in this code? current format is by SteamID "STEAM_0:1:123456" "MyTag" , can we make is like this? "Name" "MyTag" ,,, or else Name = MyTag
thank you ;)

PHP Code:


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

new g_iMsgID_SayText;

new 
g_iAdminChatFlag ADMIN_ALL;

new 
g_szTags[50][10];
new 
Trie:g_tSteamTagIndex;
new 
g_iPlayerTag[33]

public 
plugin_init( )
{
    
register_plugin("Chat Tags""0.2xx""Fysiks")
    
register_clcmd"say""CmdSay" );
    
register_clcmd"say_team""CmdSayTeam" );
    
    
g_iMsgID_SayText get_user_msgid"SayText" );
    
    new 
szCommand32 ], iFlags;
         for( new 
0get_concmdiszCommandcharsmaxszCommand ), iFlags""00, -); i++ )
    {
        if( 
equalszCommand"amx_chat" ) )
        {
            
g_iAdminChatFlag iFlags;
            break;
        }
    }
    
    
g_tSteamTagIndex TrieCreate();
    
loadTags();
}

public 
client_connect(id)
{
         
g_iPlayerTag[id] = 0;
}

public 
client_authorized(id)
{
         new 
szSteamID[32];
    
get_user_authid(idszSteamIDcharsmax(szSteamID));
    
TrieGetCell(g_tSteamTagIndexszSteamIDg_iPlayerTag[id] )
}

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

    if( !
is_user_connectediPlayer ) )
    {
        return 
PLUGIN_HANDLED_MAIN;
    }
    
    new 
szArgs194 ];
    
    if( !
IsValidMessageiPlayerfalseszArgscharsmaxszArgs ) ) )
    {
        return 
PLUGIN_HANDLED_MAIN;
    }
    
    new 
iAlive is_user_aliveiPlayer );
    new 
CsTeams:iTeam cs_get_user_teamiPlayer );
    
    new 
iPlayers32 ], iNum;
    
get_playersiPlayersiNum );
    
    new 
szName32 ];
    
get_user_nameiPlayerszNamecharsmaxszName ) );
    
    new const 
szPrefixes][ CsTeams ][ ] =
    {
        {
            
"^1*DEAD* ",
            
"^1*DEAD* ",
            
"^1*DEAD* ",
            
"^1*SPEC* "
        
},
        {
            
"",
            
"",
            
"",
            
""
        
}
    };
    
    new 
szMessage192 ];
    
formatexszMessagecharsmaxszMessage ), "^4%s ^1%s^3%s^1 :  %s",  g_szTags[g_iPlayerTag[iPlayer]], szPrefixesiAlive ][ iTeam ], szName,  szArgs );
    
    new 
iTarget;
    for( new 
0iNumi++ )
    {
        
iTarget iPlayers];
        
        if( 
iTarget == iPlayer || ( iAlive || is_user_connectediTarget ) ) && is_user_aliveiTarget ) == iAlive )
        {
            
message_beginMSG_ONE_UNRELIABLEg_iMsgID_SayText_iTarget );
            
write_byteiPlayer );
            
write_stringszMessage );
            
message_end( );
        }
    }
    
    return 
PLUGIN_HANDLED_MAIN;
}

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

    if( !
is_user_connectediPlayer ) )
    {
        return 
PLUGIN_HANDLED_MAIN;
    }
    
    new 
szArgs194 ];
    
    if( !
IsValidMessageiPlayertrueszArgscharsmaxszArgs ) ) )
    {
        return 
PLUGIN_HANDLED_MAIN;
    }
    
    new 
iAlive is_user_aliveiPlayer );
    new 
CsTeams:iTeam CsTeams:( ( _:cs_get_user_teamiPlayer ) ) % );
    
    new 
iPlayers32 ], iNum;
    
get_playersiPlayersiNum );
    
    new 
szName32 ];
    
get_user_nameiPlayerszNamecharsmaxszName ) );
    
    new const 
szPrefixes][ CsTeams ][ ] =
    {
        {
            
"(Spectator)",
            
"*DEAD*(Terrorist)",
            
"*DEAD*(Counter-Terrorist)",
            
""
        
},
        {
            
"(Spectator)",
            
"(Terrorist)",
            
"(Counter-Terrorist)",
            
""
        
}
    };
    
    new 
szMessage192 ];
    
formatexszMessagecharsmaxszMessage ), "^4%s ^1%s^3 %s^1 :  %s",  g_szTags[g_iPlayerTag[iPlayer]], szPrefixesiAlive ][ iTeam ], szName,  szArgs );
    
    for( new 
0iTeammateiNumi++ )
    {
        
iTeammate iPlayers];
    
        if( 
iTeammate == iPlayer || ( iAlive || is_user_connectediTeammate )  ) && is_user_aliveiTeammate ) == iAlive && CsTeams:( (  _:cs_get_user_teamiTeammate ) ) % ) == iTeam )
        {
            
message_beginMSG_ONE_UNRELIABLEg_iMsgID_SayText_iTeammate );
            
write_byteiPlayer );
            
write_stringszMessage );
            
message_end( );
        }
    }
    
    return 
PLUGIN_HANDLED_MAIN;
}

bool:IsValidMessageiPlayerbool:bTeamSayszMessage[ ], iLen )
{
    
read_argsszMessageiLen );
    
remove_quotesszMessage );

    if( !
szMessage] )
    {
        return 
false;
    }
    
    new 
iPoscChari;
    while( ( 
cChar szMessageiPos ] ) == '@' )
    {
        
i++;
        
iPos++;
    }

    if( 
)
    {
        return ( !( 
bTeamSay ? ( == ) : ( <= <= ) ) || !accessiPlayerg_iAdminChatFlag ) );
    }

    while( 
< ( cChar szMessageiPos++ ] ) <= 255 )
    {
        if( 
cChar != ' ' && cChar != '%' )
        {
            return 
true;
        }
    }

    return 
false;
}

loadTags()
{
    
// load tags from file
    
new szFilePath[128];
    
get_configsdir(szFilePathcharsmax(szFilePath));
    
add(szFilePathcharsmax(szFilePath), "/Admintags.ini");
    
    new 
fopen(szFilePath"rt");
    
    if( !
)
    {
        new 
szMessage[128];
        
formatex(szMessagecharsmax(szMessage), "Unable to open %s"szFilePath);
        
set_fail_state(szMessage);
    }
    
    new 
data[64], iTagCount 0szSteamID[32], szTag[sizeof(g_szTags[])];
    while( !
feof(f) )
    {
        
fgets(fdatacharsmax(data))
        
        
trim(data)
        if( !
data[0] || data[0] == ';' || data[0] == '/' && data[1] == '/' || data[1] != 0x53 ) continue;
        
        
parse(dataszSteamIDcharsmax(szSteamID), szTagcharsmax(szTag))
        if( 
szSteamID[0] && szTag[0] )
        {
            
iTagCount++
            
copy(g_szTags[iTagCount], charsmax(g_szTags[]), szTag)
            
TrieSetCell(g_tSteamTagIndexszSteamIDiTagCount)
        }
    }
    
fclose(f)




EDIT: This is the solved code ;)

PHP Code:

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
 
new g_iMsgID_SayText;
 
new 
g_iAdminChatFlag ADMIN_ALL;
 
new 
g_szTags[50][20];
new 
Trie:g_tNameTagIndex;
new 
g_iPlayerTag[33]
 
public 
plugin_init( )
{
register_plugin("Chat Tags""1.0""fysiks")
register_clcmd"say""CmdSay" );
register_clcmd"say_team""CmdSayTeam" );
 
g_iMsgID_SayText get_user_msgid"SayText" );
 
new 
szCommand32 ], iFlags;
for( new 
0get_concmdiszCommandcharsmaxszCommand ), iFlags""00, -); i++ )
{
if( 
equalszCommand"amx_chat" ) )
{
g_iAdminChatFlag iFlags;
break;
}
}
 
g_tNameTagIndex TrieCreate();
loadTags();
}
 
public 
client_putinserverid )
{
if( 
is_user_botid ) || is_user_hltvid ) ) return PLUGIN_CONTINUE;
 
g_iPlayerTag[id] = 0;
 
new 
szNameID[32];
get_user_name(idszNameIDcharsmax(szNameID));
TrieGetCell(g_tNameTagIndexszNameIDg_iPlayerTag[id] )
 
return 
PLUGIN_HANDLED_MAIN;
}
 
public 
CmdSayiPlayer )
{
 
if( !
is_user_connectediPlayer ) )
{
return 
PLUGIN_HANDLED_MAIN;
}
 
new 
szArgs194 ];
 
if( !
IsValidMessageiPlayerfalseszArgscharsmaxszArgs ) ) )
{
return 
PLUGIN_HANDLED_MAIN;
}
 
new 
iAlive is_user_aliveiPlayer );
new 
CsTeams:iTeam cs_get_user_teamiPlayer );
 
new 
iPlayers32 ], iNum;
get_playersiPlayersiNum );
 
new 
szName32 ];
get_user_nameiPlayerszNamecharsmaxszName ) );
 
new const 
szPrefixes][ CsTeams ][ ] =
{
{
"^1*DEAD* ",
"^1*DEAD* ",
"^1*DEAD* ",
"^1*SPEC* "
},
{
"",
"",
"",
""
}
};
 
new 
szMessage192 ];
 
formatexszMessagecharsmaxszMessage ), "^1%s^4%s ^3%s^1 :  %s"szPrefixesiAlive ][ iTeam ], g_szTags[g_iPlayerTag[iPlayer]], szNameszArgs );
 
new 
iTarget;
for( new 
0iNumi++ )
{
iTarget iPlayers];
 
if( 
iTarget == iPlayer || ( iAlive || is_user_connectediTarget ) ) && is_user_aliveiTarget ) == iAlive )
{
message_beginMSG_ONE_UNRELIABLEg_iMsgID_SayText_iTarget );
write_byteiPlayer );
write_stringszMessage );
message_end( );
}
}
 
return 
PLUGIN_HANDLED_MAIN;
}
 
public 
CmdSayTeamiPlayer )
{
if( !
g_iPlayerTag[iPlayer] )
{
return 
PLUGIN_CONTINUE;
}
 
if( !
is_user_connectediPlayer ) )
{
return 
PLUGIN_HANDLED_MAIN;
}
 
new 
szArgs194 ];
 
if( !
IsValidMessageiPlayertrueszArgscharsmaxszArgs ) ) )
{
return 
PLUGIN_HANDLED_MAIN;
}
 
new 
iAlive is_user_aliveiPlayer );
new 
CsTeams:iTeam CsTeams:( ( _:cs_get_user_teamiPlayer ) ) % );
 
new 
iPlayers32 ], iNum;
get_playersiPlayersiNum );
 
new 
szName32 ];
get_user_nameiPlayerszNamecharsmaxszName ) );
 
new const 
szPrefixes][ CsTeams ][ ] =
{
{
"(Spectator)",
"*DEAD*(Terrorist)",
"*DEAD*(Counter-Terrorist)",
""
},
{
"(Spectator)",
"(Terrorist)",
"(Counter-Terrorist)",
""
}
};
 
new 
szMessage192 ];
 
formatexszMessagecharsmaxszMessage ), "^1%s ^4%s^3 %s^1 :  %s"szPrefixesiAlive ][ iTeam ], g_szTags[g_iPlayerTag[iPlayer]], szNameszArgs );
 
 
for( new 
0iTeammateiNumi++ )
{
iTeammate iPlayers];
 
if( 
iTeammate == iPlayer || ( iAlive || is_user_connectediTeammate ) ) && is_user_aliveiTeammate ) == iAlive && CsTeams:( ( _:cs_get_user_teamiTeammate ) ) % ) == iTeam )
{
message_beginMSG_ONE_UNRELIABLEg_iMsgID_SayText_iTeammate );
write_byteiPlayer );
write_stringszMessage );
message_end( );
}
 
}
 
return 
PLUGIN_HANDLED_MAIN;
}
 
bool:IsValidMessageiPlayerbool:bTeamSayszMessage[ ], iLen )
{
read_argsszMessageiLen );
remove_quotesszMessage );
 
if( !
szMessage] )
{
return 
false;
}
 
new 
iPoscChari;
while( ( 
cChar szMessageiPos ] ) == '@' )
{
i++;
iPos++;
}
 
if( 
)
{
return ( !( 
bTeamSay ? ( == ) : ( <= <= ) ) || !accessiPlayerg_iAdminChatFlag ) );
}
 
while( 
< ( cChar szMessageiPos++ ] ) <= 255 )
{
if( 
cChar != ' ' && cChar != '%' )
{
return 
true;
}
}
 
return 
false;
}
 
loadTags()
{
// load tags from file
new szFilePath[128];
get_configsdir(szFilePathcharsmax(szFilePath));
add(szFilePathcharsmax(szFilePath), "/Admintagsini");
 
new 
fopen(szFilePath"rt");
 
if( !
)
{
new 
szMessage[128];
formatex(szMessagecharsmax(szMessage), "Unable to open %s"szFilePath);
set_fail_state(szMessage);
}
 
new 
data[64], iTagCount 0szNameID[32], szTag[sizeof(g_szTags[])];
while( !
feof(f) )
{
fgets(fdatacharsmax(data))
 
trim(data)
if( !
data[0] || data[0] == ';' || data[0] == '/' && data[1] == '/' ) continue;
 
parse(dataszNameIDcharsmax(szNameID), szTagcharsmax(szTag))
if( 
szNameID[0] && szTag[0] )
{
iTagCount++
copy(g_szTags[iTagCount], charsmax(g_szTags[]), szTag)
TrieSetCell(g_tNameTagIndexszNameIDiTagCount)
}
}
fclose(f)



.Dare Devil. 10-26-2014 07:49

Re: Solved :)
 
what is solved?

psychonic 10-26-2014 08:49

RE: [Help] get Tag by Name
 
Quote:

Originally Posted by ghost95v (Post 2215696)
anyone can make this to set players Tag by their name in this code? current format is by SteamID "STEAM_0:1:123456" "MyTag" , can we make is like this? "Name" "MyTag" ,,, or else Name = MyTag
thank you ;)

PHP Code:


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

new g_iMsgID_SayText;

new 
g_iAdminChatFlag ADMIN_ALL;

new 
g_szTags[50][10];
new 
Trie:g_tSteamTagIndex;
new 
g_iPlayerTag[33]

public 
plugin_init( )
{
    
register_plugin("Chat Tags""0.2xx""Fysiks")
    
register_clcmd"say""CmdSay" );
    
register_clcmd"say_team""CmdSayTeam" );
    
    
g_iMsgID_SayText get_user_msgid"SayText" );
    
    new 
szCommand32 ], iFlags;
         for( new 
0get_concmdiszCommandcharsmaxszCommand ), iFlags""00, -); i++ )
    {
        if( 
equalszCommand"amx_chat" ) )
        {
            
g_iAdminChatFlag iFlags;
            break;
        }
    }
    
    
g_tSteamTagIndex TrieCreate();
    
loadTags();
}

public 
client_connect(id)
{
         
g_iPlayerTag[id] = 0;
}

public 
client_authorized(id)
{
         new 
szSteamID[32];
    
get_user_authid(idszSteamIDcharsmax(szSteamID));
    
TrieGetCell(g_tSteamTagIndexszSteamIDg_iPlayerTag[id] )
}

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

    if( !
is_user_connectediPlayer ) )
    {
        return 
PLUGIN_HANDLED_MAIN;
    }
    
    new 
szArgs194 ];
    
    if( !
IsValidMessageiPlayerfalseszArgscharsmaxszArgs ) ) )
    {
        return 
PLUGIN_HANDLED_MAIN;
    }
    
    new 
iAlive is_user_aliveiPlayer );
    new 
CsTeams:iTeam cs_get_user_teamiPlayer );
    
    new 
iPlayers32 ], iNum;
    
get_playersiPlayersiNum );
    
    new 
szName32 ];
    
get_user_nameiPlayerszNamecharsmaxszName ) );
    
    new const 
szPrefixes][ CsTeams ][ ] =
    {
        {
            
"^1*DEAD* ",
            
"^1*DEAD* ",
            
"^1*DEAD* ",
            
"^1*SPEC* "
        
},
        {
            
"",
            
"",
            
"",
            
""
        
}
    };
    
    new 
szMessage192 ];
    
formatexszMessagecharsmaxszMessage ), "^4%s ^1%s^3%s^1 :  %s",  g_szTags[g_iPlayerTag[iPlayer]], szPrefixesiAlive ][ iTeam ], szName,  szArgs );
    
    new 
iTarget;
    for( new 
0iNumi++ )
    {
        
iTarget iPlayers];
        
        if( 
iTarget == iPlayer || ( iAlive || is_user_connectediTarget ) ) && is_user_aliveiTarget ) == iAlive )
        {
            
message_beginMSG_ONE_UNRELIABLEg_iMsgID_SayText_iTarget );
            
write_byteiPlayer );
            
write_stringszMessage );
            
message_end( );
        }
    }
    
    return 
PLUGIN_HANDLED_MAIN;
}

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

    if( !
is_user_connectediPlayer ) )
    {
        return 
PLUGIN_HANDLED_MAIN;
    }
    
    new 
szArgs194 ];
    
    if( !
IsValidMessageiPlayertrueszArgscharsmaxszArgs ) ) )
    {
        return 
PLUGIN_HANDLED_MAIN;
    }
    
    new 
iAlive is_user_aliveiPlayer );
    new 
CsTeams:iTeam CsTeams:( ( _:cs_get_user_teamiPlayer ) ) % );
    
    new 
iPlayers32 ], iNum;
    
get_playersiPlayersiNum );
    
    new 
szName32 ];
    
get_user_nameiPlayerszNamecharsmaxszName ) );
    
    new const 
szPrefixes][ CsTeams ][ ] =
    {
        {
            
"(Spectator)",
            
"*DEAD*(Terrorist)",
            
"*DEAD*(Counter-Terrorist)",
            
""
        
},
        {
            
"(Spectator)",
            
"(Terrorist)",
            
"(Counter-Terrorist)",
            
""
        
}
    };
    
    new 
szMessage192 ];
    
formatexszMessagecharsmaxszMessage ), "^4%s ^1%s^3 %s^1 :  %s",  g_szTags[g_iPlayerTag[iPlayer]], szPrefixesiAlive ][ iTeam ], szName,  szArgs );
    
    for( new 
0iTeammateiNumi++ )
    {
        
iTeammate iPlayers];
    
        if( 
iTeammate == iPlayer || ( iAlive || is_user_connectediTeammate )  ) && is_user_aliveiTeammate ) == iAlive && CsTeams:( (  _:cs_get_user_teamiTeammate ) ) % ) == iTeam )
        {
            
message_beginMSG_ONE_UNRELIABLEg_iMsgID_SayText_iTeammate );
            
write_byteiPlayer );
            
write_stringszMessage );
            
message_end( );
        }
    }
    
    return 
PLUGIN_HANDLED_MAIN;
}

bool:IsValidMessageiPlayerbool:bTeamSayszMessage[ ], iLen )
{
    
read_argsszMessageiLen );
    
remove_quotesszMessage );

    if( !
szMessage] )
    {
        return 
false;
    }
    
    new 
iPoscChari;
    while( ( 
cChar szMessageiPos ] ) == '@' )
    {
        
i++;
        
iPos++;
    }

    if( 
)
    {
        return ( !( 
bTeamSay ? ( == ) : ( <= <= ) ) || !accessiPlayerg_iAdminChatFlag ) );
    }

    while( 
< ( cChar szMessageiPos++ ] ) <= 255 )
    {
        if( 
cChar != ' ' && cChar != '%' )
        {
            return 
true;
        }
    }

    return 
false;
}

loadTags()
{
    
// load tags from file
    
new szFilePath[128];
    
get_configsdir(szFilePathcharsmax(szFilePath));
    
add(szFilePathcharsmax(szFilePath), "/Admintags.ini");
    
    new 
fopen(szFilePath"rt");
    
    if( !
)
    {
        new 
szMessage[128];
        
formatex(szMessagecharsmax(szMessage), "Unable to open %s"szFilePath);
        
set_fail_state(szMessage);
    }
    
    new 
data[64], iTagCount 0szSteamID[32], szTag[sizeof(g_szTags[])];
    while( !
feof(f) )
    {
        
fgets(fdatacharsmax(data))
        
        
trim(data)
        if( !
data[0] || data[0] == ';' || data[0] == '/' && data[1] == '/' || data[1] != 0x53 ) continue;
        
        
parse(dataszSteamIDcharsmax(szSteamID), szTagcharsmax(szTag))
        if( 
szSteamID[0] && szTag[0] )
        {
            
iTagCount++
            
copy(g_szTags[iTagCount], charsmax(g_szTags[]), szTag)
            
TrieSetCell(g_tSteamTagIndexszSteamIDiTagCount)
        }
    }
    
fclose(f)



Read the rules. Do not clear thread content.

plazma 10-26-2014 11:49

Re: Solved :)
 
Can anyone change the the flags for tags I need ex: ADMIN_CHAT only this and, i need to remove some codes and replace ADMIN_CHAT for tags admin access...

Removed:

PHP Code:

new g_iAdminChatFlag ADMIN_ALL

PHP Code:

    new szCommand32 ], iFlags;
         for( new 
0get_concmdiszCommandcharsmaxszCommand ), iFlags""00, -); i++ )
    {
        if( 
equalszCommand"amx_chat" ) )
        {
            
g_iAdminChatFlag iFlags;
            break;
        }
    } 

and

PHP Code:

bool:IsValidMessageiPlayerbool:bTeamSayszMessage[ ], iLen )
{
    
read_argsszMessageiLen );
    
remove_quotesszMessage );

    if( !
szMessage] )
    {
        return 
false;
    }
    
    new 
iPoscChari;
    while( ( 
cChar szMessageiPos ] ) == '@' )
    {
        
i++;
        
iPos++;
    }

    if( 
)
    {
        return ( !( 
bTeamSay ? ( == ) : ( <= <= ) ) || !accessiPlayerg_iAdminChatFlag ) );
    }

    while( 
< ( cChar szMessageiPos++ ] ) <= 255 )
    {
        if( 
cChar != ' ' && cChar != '%' )
        {
            return 
true;
        }
    }

    return 
false;


Full code

PHP Code:

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
 
new g_iMsgID_SayText;
 
new 
g_iAdminChatFlag ADMIN_ALL;
 
new 
g_szTags[50][20];
new 
Trie:g_tNameTagIndex;
new 
g_iPlayerTag[33]
 
public 
plugin_init( )
{
register_plugin("Chat Tags""1.0""fysiks")
register_clcmd"say""CmdSay" );
register_clcmd"say_team""CmdSayTeam" );
 
g_iMsgID_SayText get_user_msgid"SayText" );
 
new 
szCommand32 ], iFlags;
for( new 
0get_concmdiszCommandcharsmaxszCommand ), iFlags""00, -); i++ )
{
if( 
equalszCommand"amx_chat" ) )
{
g_iAdminChatFlag iFlags;
break;
}
}
 
g_tNameTagIndex TrieCreate();
loadTags();
}
 
public 
client_putinserverid )
{
if( 
is_user_botid ) || is_user_hltvid ) ) return PLUGIN_CONTINUE;
 
g_iPlayerTag[id] = 0;
 
new 
szNameID[32];
get_user_name(idszNameIDcharsmax(szNameID));
TrieGetCell(g_tNameTagIndexszNameIDg_iPlayerTag[id] )
 
return 
PLUGIN_HANDLED_MAIN;
}
 
public 
CmdSayiPlayer )
{
 
if( !
is_user_connectediPlayer ) )
{
return 
PLUGIN_HANDLED_MAIN;
}
 
new 
szArgs194 ];
 
if( !
IsValidMessageiPlayerfalseszArgscharsmaxszArgs ) ) )
{
return 
PLUGIN_HANDLED_MAIN;
}
 
new 
iAlive is_user_aliveiPlayer );
new 
CsTeams:iTeam cs_get_user_teamiPlayer );
 
new 
iPlayers32 ], iNum;
get_playersiPlayersiNum );
 
new 
szName32 ];
get_user_nameiPlayerszNamecharsmaxszName ) );
 
new const 
szPrefixes][ CsTeams ][ ] =
{
{
"^1*DEAD* ",
"^1*DEAD* ",
"^1*DEAD* ",
"^1*SPEC* "
},
{
"",
"",
"",
""
}
};
 
new 
szMessage192 ];
 
formatexszMessagecharsmaxszMessage ), "^1%s^4%s ^3%s^1 :  %s"szPrefixesiAlive ][ iTeam ], g_szTags[g_iPlayerTag[iPlayer]], szNameszArgs );
 
new 
iTarget;
for( new 
0iNumi++ )
{
iTarget iPlayers];
 
if( 
iTarget == iPlayer || ( iAlive || is_user_connectediTarget ) ) && is_user_aliveiTarget ) == iAlive )
{
message_beginMSG_ONE_UNRELIABLEg_iMsgID_SayText_iTarget );
write_byteiPlayer );
write_stringszMessage );
message_end( );
}
}
 
return 
PLUGIN_HANDLED_MAIN;
}
 
public 
CmdSayTeamiPlayer )
{
if( !
g_iPlayerTag[iPlayer] )
{
return 
PLUGIN_CONTINUE;
}
 
if( !
is_user_connectediPlayer ) )
{
return 
PLUGIN_HANDLED_MAIN;
}
 
new 
szArgs194 ];
 
if( !
IsValidMessageiPlayertrueszArgscharsmaxszArgs ) ) )
{
return 
PLUGIN_HANDLED_MAIN;
}
 
new 
iAlive is_user_aliveiPlayer );
new 
CsTeams:iTeam CsTeams:( ( _:cs_get_user_teamiPlayer ) ) % );
 
new 
iPlayers32 ], iNum;
get_playersiPlayersiNum );
 
new 
szName32 ];
get_user_nameiPlayerszNamecharsmaxszName ) );
 
new const 
szPrefixes][ CsTeams ][ ] =
{
{
"(Spectator)",
"*DEAD*(Terrorist)",
"*DEAD*(Counter-Terrorist)",
""
},
{
"(Spectator)",
"(Terrorist)",
"(Counter-Terrorist)",
""
}
};
 
new 
szMessage192 ];
 
formatexszMessagecharsmaxszMessage ), "^1%s ^4%s^3 %s^1 :  %s"szPrefixesiAlive ][ iTeam ], g_szTags[g_iPlayerTag[iPlayer]], szNameszArgs );
 
 
for( new 
0iTeammateiNumi++ )
{
iTeammate iPlayers];
 
if( 
iTeammate == iPlayer || ( iAlive || is_user_connectediTeammate ) ) && is_user_aliveiTeammate ) == iAlive && CsTeams:( ( _:cs_get_user_teamiTeammate ) ) % ) == iTeam )
{
message_beginMSG_ONE_UNRELIABLEg_iMsgID_SayText_iTeammate );
write_byteiPlayer );
write_stringszMessage );
message_end( );
}
 
}
 
return 
PLUGIN_HANDLED_MAIN;
}
 
bool:IsValidMessageiPlayerbool:bTeamSayszMessage[ ], iLen )
{
read_argsszMessageiLen );
remove_quotesszMessage );
 
if( !
szMessage] )
{
return 
false;
}
 
new 
iPoscChari;
while( ( 
cChar szMessageiPos ] ) == '@' )
{
i++;
iPos++;
}
 
if( 
)
{
return ( !( 
bTeamSay ? ( == ) : ( <= <= ) ) || !accessiPlayerg_iAdminChatFlag ) );
}
 
while( 
< ( cChar szMessageiPos++ ] ) <= 255 )
{
if( 
cChar != ' ' && cChar != '%' )
{
return 
true;
}
}
 
return 
false;
}
 
loadTags()
{
// load tags from file
new szFilePath[128];
get_configsdir(szFilePathcharsmax(szFilePath));
add(szFilePathcharsmax(szFilePath), "/Admintagsini");
 
new 
fopen(szFilePath"rt");
 
if( !
)
{
new 
szMessage[128];
formatex(szMessagecharsmax(szMessage), "Unable to open %s"szFilePath);
set_fail_state(szMessage);
}
 
new 
data[64], iTagCount 0szNameID[32], szTag[sizeof(g_szTags[])];
while( !
feof(f) )
{
fgets(fdatacharsmax(data))
 
trim(data)
if( !
data[0] || data[0] == ';' || data[0] == '/' && data[1] == '/' ) continue;
 
parse(dataszNameIDcharsmax(szNameID), szTagcharsmax(szTag))
if( 
szNameID[0] && szTag[0] )
{
iTagCount++
copy(g_szTags[iTagCount], charsmax(g_szTags[]), szTag)
TrieSetCell(g_tNameTagIndexszNameIDiTagCount)
}
}
fclose(f)



ghost95v 10-26-2014 12:13

Re: [Help] get Tag by Name
 
Quote:

Originally Posted by psychonic (Post 2215906)
Read the rules. Do not clear thread content.

There it is. anyway, Alliedmodders not helped me to solve that, and i have my right to remove ;)

fysiks 10-26-2014 12:18

Re: [Help] get Tag by Name
 
Quote:

Originally Posted by ghost95v (Post 2216007)
There it is. anyway, Alliedmodders not helped me to solve that, and i have my right to remove ;)

No. If you want to get help here (by posting a question) you need to leave that question and post the answer if you find it so that it can help others. If you don't want to post the answers to your questions, don't post a question. Quid pro quo.

plazma 10-26-2014 12:26

Re: Solved :)
 
Not work !

PHP Code:

(get_user_flags(id) & ADMIN_CHAT), g_szTags[g_iPlayerTag[id]] 

:(


All times are GMT -4. The time now is 17:36.

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