AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Join/Leave Message rescript help (https://forums.alliedmods.net/showthread.php?t=22177)

CrazymFer 12-20-2005 16:20

Join/Leave Message rescript help
 
Alright, I have been rescripting big baller's Join/leave Announce plugin to incorporate the server's hostname and user's team...

Everything works so far exept when a user chooses a team, it fails to replace the team: CrazymFer has joined the $team$!

I have included a debug so that it would tell me if it is having a problem.

Code:
/* Join/Leave Message 1.2 by BigBaller Just shows a basic Tsay like message to all players when user is connecting, has established connection and disconnected from your server. Just upload into your amxx/plugins folder Add join_leave.amx in your amxx/plugins.ini Restart server or change map. ENJOY! *New, You are able to turn messages off and on using the cvar amx_join_leave 1 = On 0 = Off Plugin by default is 1 Change Log v 1.0 - Started with basic messages. v 1.1 - Created a cvar to disable messages (cvar is amx_join_leave 1|0) v 1.2 - Moved the messages up, they conflicted with plugins such as StatsX and PTB */ #include <amxmodx> #include <amxmisc> #include <cstrike> #define DEBUG new sName[64], userID public plugin_init() {   register_plugin("Join/Leave Message","1.2","BigBaller")   register_cvar("amx_join_message", "$name$ has connected 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")   get_cvar_string("hostname", sName, 63) } public client_connect(id){     new user[32], len     user[0] = id     len = get_user_name(id,user[1],31)     set_task(2.0, "join_msg", 0, user, len + 2)     return PLUGIN_CONTINUE } public client_putinserver(id){     new user[32], len     user[0] = id     userID = id     len = get_user_name(id,user[1],31)     set_task(2.0, "joined_msg", 0, user, len + 2)     return PLUGIN_CONTINUE } public client_disconnect(id){     new user[32], len     user[0] = id     len = get_user_name(id, user[1], 31)     set_task(2.0, "leave_msg", 0, user, len + 2)     return PLUGIN_CONTINUE } public join_msg(user[]) {         if (get_cvar_num("amx_join_leave")==0) return PLUGIN_HANDLED     new message[192]     get_cvar_string("amx_join_message", message, 191)     replace(message, 191, "$server$", sName[0])     replace(message, 191, "$name$", user[1])     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 message[192]     get_cvar_string("amx_joined_message", message, 191)     new CsTeams:userTeam = cs_get_user_team( userID )     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")     #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!! " )         }     }     #endif     replace(message, 191, "$name$", user[1])     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 leave_msg(user[]) {         if (get_cvar_num("amx_join_leave")==0) return PLUGIN_HANDLED     new message[192]     get_cvar_string("amx_leave_message", message, 191)     replace(message, 191, "$server$", sName[0])     replace(message, 191, "$name$", user[1])     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 }

Any help would be greatly appreciated.


-ZeonSoldier
-BoB-J Server Tech

Geesu 12-20-2005 16:33

Code:
new sName[64] public plugin_init() {   register_plugin("Join/Leave Message","1.2","BigBaller")   register_cvar("amx_join_message", "$name$ has connected 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")   get_cvar_string("hostname", sName, 63) } 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]     get_user_name(user[0], sName, 31)     new message[192]     get_cvar_string("amx_join_message", message, 191)     replace(message, 191, "$server$", sName)     replace(message, 191, "$name$", username)     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], sName, 31)     new message[192]     get_cvar_string("amx_joined_message", message, 191)     new CsTeams:userTeam = cs_get_user_team( userID )     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")     #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!! " )         }     }     #endif     replace(message, 191, "$name$", user[1])     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 leave_msg(user[]) {         if (get_cvar_num("amx_join_leave")==0) return PLUGIN_HANDLED     new username[32]     get_user_name(user[0], sName, 31)     new message[192]     get_cvar_string("amx_leave_message", message, 191)     replace(message, 191, "$server$", sName)     replace(message, 191, "$name$", username)     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 }

CrazymFer 12-20-2005 16:36

Ty Geesu, greatly appreciated.

<3!

Geesu 12-21-2005 09:06

I forgot to change

replace(message, 191, "$name$", user[1])

how the others are

CrazymFer 12-21-2005 10:49

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 :)

Code:
while( contain( message, "#team") != -1 )

CrazymFer 12-22-2005 13:30

1 Attachment(s)
Problem solved. I had to rescript more of it than I thought, but it works this way.

It announces centered at the bottom of the screen.
-It announces when the are connecting. Once they have connected, it announces that they are choosing a team, and says that every 10 seconds until they choose a team, then it announces the team they chose. Finally, when they leave, it announces again that they have left.

I know, it has been done before, but I don't care since I have jumped up my knowledge of pawn quickly, and at least this one displays centered at the bottom of the screen out of the way. :)


All times are GMT -4. The time now is 15:52.

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