Raised This Month: $51 Target: $400
 12% 

Invalid Player id


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Id0x.
Junior Member
Join Date: Dec 2020
Old 08-02-2021 , 21:08   Invalid Player id
Reply With Quote #1

Code:
L 08/02/2021 - 22:41:48: Invalid Player id (13)
L 08/02/2021 - 22:41:48: [AMXX] Displaying debug trace (plugin "prefix.amxx", version "1.1")
L 08/02/2021 - 22:41:48: [AMXX] Run time error 10: native error (native "get_user_level")
L 08/02/2021 - 22:41:48: [AMXX]    [0] prefix.sma::hook_say (line 77)
line 77 :
PHP Code:
format(strName191"%s^4[LEVEL %d] ^3%s"aliveget_user_level(id), g_name
full sma :
PHP Code:
#include <amxmodx>

native get_user_level(id)

new 
message[192],g_name[32],alive[11],strName[191],strText[191],temp_cvar[2]
new 
g_AdminListenFlag,g_AdminListen,maxPlayers

new teamInfo,sayText

public plugin_init()
{
    
register_plugin("Prefix""1.1""Nothing")
    
    
register_clcmd("say""hook_say")
    
register_clcmd("say_team""hook_teamsay")
        
    
maxPlayers get_maxplayers()
    
g_AdminListenFlag register_cvar("amx_listen_flag""c")
    
g_AdminListen register_cvar("amx_listen""1")
    
    
sayText get_user_msgid("SayText")
    
teamInfo get_user_msgid("TeamInfo")
    
register_message(sayText"avoid_duplicated")
}

new const 
szTag[][] = {
       
"",
       
"OWNER",
       
"HEAD-ADMIN",
       
"ADMIN"


public 
avoid_duplicated(msgIdmsgDestreceiver)
{
    return 
PLUGIN_HANDLED
}

public 
hook_say(id)
{
   
read_args(message191)
   
remove_quotes(message)

   if(
message[0] == '@' || message[0] == '/' || message[0] == '!' || message[0] == '#' || message[0] == '$' || equal(message""))
      return 
PLUGIN_CONTINUE
      

   get_user_name
(idg_namecharsmax(g_name))

   new 
isAlive   
   
new admin 0iFlags get_user_flags(id)
   if(
iFlags ADMIN_IMMUNITYadmin 1
   
else if(iFlags ADMIN_BANadmin 2
   
else if(iFlags ADMIN_KICKadmin 3
      
   
if(is_user_alive(id))
   {
      
isAlive 1
      alive 
"^x01"
   
}
   else
   {
      
isAlive 0
      alive 
"^x01*DEAD* "
   
}

   static  
color[10]
   if(
admin)
   {
      
get_user_team(idcolor9)
      
format(strName191"%s^3[%s]^4[LEVEL %d] ^3%s"aliveszTag[admin],get_user_level(id), g_name)
      
format(strText191"^4%s"message)
   }
   else    
   {
      
get_user_name(idg_name32)
      
get_user_team(idcolor9)
      
format(strName191"%s^4[LEVEL %d] ^3%s"aliveget_user_level(id), g_name)
      
format(strText191"%s"message)

   }

   
format(message191"%s ^x01: %s"strNamestrText)

   
sendMessage(colorisAlive)// Sends the colored message
   
return PLUGIN_CONTINUE;
}

public 
hook_teamsay(id)
{
   
read_args(message191)
   
remove_quotes(message)

   if(
message[0] == '@' || message[0] == '/' || message[0] == '!' || message[0] == '#' || message[0] == '$' || equal(message"")) // Ignores Admin Hud Messages, Admin Slash commands
      
return PLUGIN_CONTINUE

   
new playerTeam get_user_team(id)
   new 
playerTeamName[19]

   switch(
playerTeam// Team names which appear on team-only messages
   
{
      case 
1copy(playerTeamName11"Furien")
      case 
2copy(playerTeamName18"AntiFurien")
      default: 
copy(playerTeamName9"Spec")
   }

   
get_user_name(idg_namecharsmax(g_name))
   new 
isAlive   
   
new admin 0iFlags get_user_flags(id)
   if(
iFlags ADMIN_IMMUNITYadmin 1
   
else if(iFlags ADMIN_BANadmin 2
   
else if(iFlags ADMIN_KICKadmin 3

   
if(is_user_alive(id))
   {
      
isAlive 1
      alive 
"^x01"
   
}
   else
   {
      
isAlive 0
      alive 
"^x01*DEAD* "
   
}

   static  
color[10]
   if(
admin)
   {
      
get_user_team(idcolor9)
      
format(strName191"%s^4(%s) ^3[%s]^4[LEVEL %d] ^3%s"aliveplayerTeamName,szTag[admin],get_user_level(id), g_name)
      
format(strText191"^4%s"message)
   }
   else
   {
      
get_user_name(idg_name32)
      
get_user_team(idcolor9);
      
format(strName191"%s^3(%s) ^4[LEVEL %d] ^3%s"aliveplayerTeamName,get_user_level(id), g_name)
      
format(strText191"%s"message)
   }

   
format(message191"%s ^x01: %s"strNamestrText)
   
sendTeamMessage(colorisAliveplayerTeam)
   return 
PLUGIN_CONTINUE
}

public 
sendMessage(color[], alive)
{
   new 
teamName[10]
   
   for(new 
player 1player maxPlayersplayer++)
   {
      if(!
is_user_connected(player))
         continue

      
get_pcvar_string(g_AdminListenFlagtemp_cvarcharsmax(temp_cvar))
      if(
alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_pcvar_num(g_AdminListen) && get_user_flags(player) & read_flags(temp_cvar))
      {
         
get_user_team(playerteamName9)// Stores user's team name to change back after sending the message
         
changeTeamInfo(playercolor)// Changes user's team according to color choosen
         
writeMessage(playermessage)// Writes the message on player's chat
         
changeTeamInfo(playerteamName)// Changes user's team back to original
      
}
   }
}

public 
sendTeamMessage(color[], aliveplayerTeam)
{
   new 
teamName[10]

   for(new 
player 1player maxPlayersplayer++)
   {
      if(!
is_user_connected(player))
         continue

      
get_pcvar_string(g_AdminListenFlagtemp_cvarcharsmax(temp_cvar))
      if(
get_user_team(player) == playerTeam || get_pcvar_num(g_AdminListen) && get_user_flags(player) & read_flags(temp_cvar))
      {
         if(
alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_pcvar_num(g_AdminListen) && get_user_flags(player) & read_flags(temp_cvar))
         {
            
get_user_team(playerteamName9)// Stores user's team name to change back after sending the message
            
changeTeamInfo(playercolor)// Changes user's team according to color choosen
            
writeMessage(playermessage)// Writes the message on player's chat
            
changeTeamInfo(playerteamName)// Changes user's team back to original
         
}
      }
   }
}

public 
changeTeamInfo(playerteam[])
{
    
message_begin(MSG_ONEteamInfo_player)    // Tells to to modify teamInfo(Which is responsable for which time player is)
    
write_byte(player)                // Write byte needed
    
write_string(team)                // Changes player's team
    
message_end()                    // Also Needed
}

public 
writeMessage(playerszArgs[])
{
    
message_begin(MSG_ONEsayText, {000}, player)    // Tells to modify sayText(Which is responsable for writing colored messages)
    
write_byte(player)                    // Write byte needed
    
write_string(szArgs)                    // Effectively write the message, finally, afterall
    
message_end()                        // Needed as always

Id0x. is offline
Supremache
Veteran Member
Join Date: Sep 2019
Location: Egypt
Old 08-02-2021 , 22:09   Re: Invalid Player id
Reply With Quote #2

Try this, untested!.

Code:
#include <amxmodx> #include <amxmisc> #include <cstrike> new const PLUGIN_NAME[ ]    = "UserPrefix" new const VERSION[ ]    = "1.0" new const AUTHOR[ ] = "Supremache" native get_user_level(id) new g_iSayText; public plugin_init() {     register_plugin     (         .plugin_name    = PLUGIN_NAME,         .version    = VERSION,         .author     = AUTHOR     )         register_cvar( PLUGIN_NAME, VERSION, FCVAR_SERVER|FCVAR_SPONLY);     set_cvar_string( PLUGIN_NAME, VERSION);         g_iSayText = get_user_msgid( "SayText" );     register_clcmd("say ", "GlobalChat");     register_clcmd("say_team ", "TeamChat"); } public GlobalChat(iPlayer) {     SetPrefix( iPlayer , true ); } public TeamChat(iPlayer) {     SetPrefix( iPlayer , false ); } SetPrefix( iPlayer , bool:bTeam ) {     if(!is_user_connected(iPlayer))     {         return PLUGIN_HANDLED_MAIN;     }         static iAlive,         szMessage[ 192 ],         iPlayers[ 32 ],         iNum,         szName[ 32 ],         szData[ 256 ],         iTarget     iAlive = is_user_alive( iPlayer );     new CsTeams:iTeam = CsTeams:( ( _:cs_get_user_team( iPlayer ) ) % 3 );         new const Say[2][ CsTeams ][] =     {         { "*SPEC* ", "*DEAD* ", "*DEAD* ", "*DEAD* " },         { "", "", "", ""}     }     new const SayTeam[2][ CsTeams ][] =     {         {"(Spectator) ", "*DEAD*(Terrorist) ", "*DEAD*(Counter-Terrorist) ", ""},         {"(Spectator) ", "(Terrorist) ", "(Counter-Terrorist) ", ""}     };         enum eTags     {         Prefix[ 32 ],         iFlag     }         new const szTag[ ][ eTags ] =     {         { "OWNER", ADMIN_IMMUNITY },         { "HEAD-ADMIN", ADMIN_BAN },         { "ADMIN", ADMIN_KICK }     }     if( !IsValidMessage( true, szMessage, charsmax( szMessage ) ) )     {         return PLUGIN_HANDLED_MAIN;     }         get_user_name( iPlayer, szName, charsmax(szName));     get_players( iPlayers, iNum );         for( new i ; i < sizeof ( szTag ) ; i++ )     {         if( get_user_flags( iPlayer ) & szTag[ i ][ iFlag ] )         {             formatex( szData , charsmax( szData), "^1%s^4[%s^1-^4 Lv.%d] %s^3: %s", bTeam ? Say[ iAlive ][ iTeam ] : SayTeam[ iAlive ][ iTeam ], szTag[ i ][ Prefix ], get_user_level(iPlayer), szName, szMessage );         }         else         {             formatex( szData , charsmax( szData), "^1%s^4 [Lv.%d]^3 %s^3: %s", bTeam ? Say[ iAlive ][ iTeam ] : SayTeam[ iAlive ][ iTeam ], get_user_level(iPlayer), szName, szMessage );         }     }         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, g_iSayText, {0, 0, 0}, iTarget );             write_byte( iPlayer );             write_string( szData );             message_end( );         }     }       return PLUGIN_HANDLED_MAIN; } bool:IsValidMessage( 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 ) ) );     }         while( 0 < ( cChar = szMessage[ iPos++ ] ) <= 255 )     {         if( cChar != ' ' && cChar != '%' )         {             return true;         }     }         return false; }
__________________
Youtube.com/Supremache

Bank System [Nvault - SQL Support]
VIP System
  • If you think it's that simple, then do it yourself.

Last edited by Supremache; 08-04-2021 at 06:12.
Supremache is offline
fysiks
Veteran Member
Join Date: Sep 2007
Location: Flatland, USA
Old 08-02-2021 , 23:10   Re: Invalid Player id
Reply With Quote #3

@Id0x., it looks like the value of id should be valid (assuming that the get_user_name and get_user_team worked successfully). The only thing that I can think of is something in the code for get_user_level() so you should provide that code.

Quote:
Originally Posted by Supremache View Post
Try this, untested!.
What did you change? This is Scripting Help, explain what you changed and why.
__________________

Last edited by fysiks; 08-02-2021 at 23:17.
fysiks is offline
Supremache
Veteran Member
Join Date: Sep 2019
Location: Egypt
Old 08-02-2021 , 23:28   Re: Invalid Player id
Reply With Quote #4

Quote:
Originally Posted by fysiks View Post
What did you change? This is Scripting Help, explain what you changed and why.
Code optimized

@Id0x, if you still have the same issue then check get_user_level code.
__________________
Youtube.com/Supremache

Bank System [Nvault - SQL Support]
VIP System
  • If you think it's that simple, then do it yourself.

Last edited by Supremache; 08-02-2021 at 23:41.
Supremache is offline
Natsheh
Veteran Member
Join Date: Sep 2012
Old 08-03-2021 , 03:19   Re: Invalid Player id
Reply With Quote #5

PHP Code:
public sendTeamMessage(color[], aliveplayerTeam
Don't you already have a global string variable called alive?

My advice is to change the alive string to something more unique and deal with the string variables how you properly should do with using copy/formatex functions
__________________
@Jailbreak Main Mod v2.7.0 100%
@User Tag Prefix 100% done !
@Mystery Box 100% done !
@VIP System 100% done !


Last edited by Natsheh; 08-03-2021 at 03:21.
Natsheh is offline
Send a message via MSN to Natsheh Send a message via Skype™ to Natsheh
Old 08-03-2021, 03:20
Natsheh
This message has been deleted by Natsheh.
diegodarknes
Junior Member
Join Date: Aug 2021
Old 08-03-2021 , 22:26   Re: Invalid Player id
Reply With Quote #6

hola una pregunta alguiem puede decopilarme estos tres archivos de .sma a .amxx por favor soy nuevo me gustaria que me den unos tipos de tips por favor me alegraria mucho si me lo copilan asi como estan se los agradeceria un monon pero yo lo trate de copilar pero me marcan errores de seguro algunos de ustedes no les salfdran ningun error por favor el me me pueda pasar estos archivos sma a amxx se lo agradeceria un monton
Attached Files
File Type: sma Get Plugin or Get Source (zp_zclass_revenant.sma - 71 views - 18.3 KB)
File Type: sma Get Plugin or Get Source (zp_cl_deimosnew.sma - 68 views - 14.1 KB)
File Type: sma Get Plugin or Get Source (zp_zclass_voodoo.sma - 100 views - 11.0 KB)
diegodarknes is offline
Reply



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 21:58.


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