Well... I been modifying the code and I got this so far, but when testing it, I think it creates an infinite loop, because while the server stops responding, it didn't crash :-\... and it runs fine with no players.
Code:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#define DEBUG
public plugin_init() {
register_plugin("Join/Leave Message","1.3","BigBaller | Edited by ZeonSoldier")
register_cvar("amx_join_message", "#name is connecting to #server.")
register_cvar("amx_joined_message", "#name has joined the #team!")
register_cvar("amx_leave_message", "#name has left #server.")
register_cvar("amx_join_leave","1")
}
public client_connect(id){
new parm[1]
parm[0] = id
set_task(2.0, "join_msg", 0, parm, 1)
return PLUGIN_CONTINUE
}
public client_putinserver(id){
new parm[1]
parm[0] = id
set_task(2.0, "joined_msg", 0, parm, 1)
return PLUGIN_CONTINUE
}
public client_disconnect(id){
new parm[1]
parm[0] = id
set_task(2.0, "leave_msg", 0, parm, 1)
return PLUGIN_CONTINUE
}
public join_msg(user[]) {
if (get_cvar_num("amx_join_leave")==0) return PLUGIN_HANDLED
new username[32], message[192], hostname[64]
get_user_name(user[0], username, 31)
get_cvar_string("hostname", hostname, 63)
get_cvar_string("amx_join_message", message, 191)
replace(message, 191, "#name", username)
replace(message, 191, "#server", hostname)
set_hudmessage(0, 225, 0, 0.05, 0.55, 0, 6.0, 6.0, 0.5, 0.15, 3)
show_hudmessage(0, message)
return PLUGIN_CONTINUE
}
public joined_msg(user[]) {
if (get_cvar_num("amx_join_leave")==0) return PLUGIN_HANDLED
new username[32]
get_user_name(user[0], username, 31)
new message[192]
get_cvar_string("amx_joined_message", message, 191)
replace(message, 191, "#name", username)
findTeam( user, message )
set_hudmessage(0, 225, 0, 0.05, 0.55, 0, 6.0, 6.0, 0.5, 0.15, 3)
show_hudmessage(0, message)
return PLUGIN_CONTINUE
}
public findTeam(user[], message[]) {
new CsTeams:userTeam = cs_get_user_team( user[0] )
while( contain( message, "#team") != -1 ){
//Checks for team
if( userTeam == CS_TEAM_T ){
replace(message, 191, "#team", "Terrorist Force")
}
else if( userTeam == CS_TEAM_CT ){
replace(message, 191, "#team", "Counter-Terrorist Force")
}
else if( userTeam == CS_TEAM_SPECTATOR ){
replace(message, 191, "#team", "Spectators")
}
}
}
/*Debugger
#if defined DEBUG
else {
new players[32], inum
get_players(players,inum)
for (new i=0; i<inum; ++i){
if( access(players[i], ADMIN_LEVEL_H) )
client_print(players[i],print_chat, " [AMXX]{amx_join_leave} ERROR: CANNOT DECIFER TEAM!! " )
}
break
}
#endif
*/
public leave_msg(user[]) {
if (get_cvar_num("amx_join_leave")==0) return PLUGIN_HANDLED
new username[32], message[192], hostname[64]
get_user_name(user[0], username, 31)
get_cvar_string("hostname", hostname, 63)
get_cvar_string("amx_join_message", message, 191)
replace(message, 191, "#name", username)
replace(message, 191, "#server", hostname)
set_hudmessage(0, 225, 0, 0.05, 0.55, 0, 6.0, 6.0, 0.5, 0.15, 3)
show_hudmessage(0, message)
return PLUGIN_CONTINUE
}
This is the line that would do it, and if fixed, I believe this would finally work successfully