Raised This Month: $178 Target: $400
 44% 

Team switch using database


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Ahimel
New Member
Join Date: Apr 2018
Old 06-14-2018 , 14:52   Team switch using database
Reply With Quote #1

Hello guys, I am begginer at scripting so I have problem for few weeks and I just give up
Code just doesn't work. I don't know.
The thing is that if in database User with steamid have player6-player10 he have to go to CT else to T
Code:
void SQL_CheckSPOT(client)
{
	char[] Query = new char[150];
	decl String:steamID64[18]; 
	GetClientAuthId(client, AuthId_SteamID64, steamID64, sizeof(steamID64)); 	
	
	FormatEx(Query, 150, "SELECT `player_spot` FROM `users` WHERE `steamid_64` = '%s'",steamID64);
	DBResultSet sQuery = SQL_Query(DB, Query);
	
	SQL_CheckSPOT_Callback(DB,sQuery,client);
	
}

public void SQL_CheckSPOT_Callback(Database db, DBResultSet results,  client)
{
	char res[12];
	while (results.FetchRow())
	{
		SQL_FetchString(results, 0, res, sizeof(res));
	}
	
    decl String:buffer[32];
    Format(buffer, sizeof(buffer), "%d", GetSteamAccountID(client));

    // Force the player on a team 1-5T
    if (StrContains("player1", res) <= 0 || StrContains("player2", res) <= 0 || StrContains("player3", res) <= 0 || StrContains("player4", res) <= 0 || StrContains("player5", res) <= 0) {
        LogMessage("Putting on TEAMA");
        CS_SwitchTeam(client, 1);
    } else {
        LogMessage("Putting on TEAMB");
        CS_SwitchTeam(client, 2);
    }
    return Plugin_Continue;	
}
Thanks for help

Last edited by Ahimel; 06-14-2018 at 14:53. Reason: Correct
Ahimel is offline
ThatKidWhoGames
Senior Member
Join Date: Jun 2013
Location: IsValidClient()
Old 06-14-2018 , 20:04   Re: Team switch using database
Reply With Quote #2

You need to change each of the <= 0 to != 1. You could also simply use one StrContains and check if the string player exists. You also can't return Plugin_Continue to a void function.
__________________


I take custom plugin requests, add me on Steam for details.

Last edited by ThatKidWhoGames; 06-14-2018 at 20:06.
ThatKidWhoGames is offline
arne1288
SourceMod Moderator
Join Date: Apr 2012
Old 06-15-2018 , 14:22   Re: Team switch using database
Reply With Quote #3

Quote:
Originally Posted by Ahimel View Post
Code:
void SQL_CheckSPOT(client)
{
	char[] Query = new char[150];
	decl String:steamID64[18]; 
	GetClientAuthId(client, AuthId_SteamID64, steamID64, sizeof(steamID64));
This one is seriously bad, -

Do the SteamID checking properly, as explained in this post.

Doing otherwise will produce unexpected results...


Quote:
Originally Posted by ThatKidWhoGames View Post
You need to change each of the <= 0 to != 1. You could also simply use one StrContains and check if the string player exists. You also can't return Plugin_Continue to a void function.
I believe you mean to do "!= -1", with your advice:

Quote:
Originally Posted by https://sm.alliedmods.net/new-api/string/StrContains
Return Value

-1 on failure (no match found). Any other value indicates a position in the string where the match starts.
__________________
Mostly known as "DarkDeviL".

Dropbox FastDL: Public folder will no longer work after March 15, 2017!
For more info, see the [SRCDS Thread], or the [HLDS Thread]

Last edited by arne1288; 06-15-2018 at 14:23.
arne1288 is offline
ThatKidWhoGames
Senior Member
Join Date: Jun 2013
Location: IsValidClient()
Old 06-15-2018 , 21:31   Re: Team switch using database
Reply With Quote #4

That's what I meant, thanks!
__________________


I take custom plugin requests, add me on Steam for details.
ThatKidWhoGames is offline
Reply


Thread Tools
Display Modes

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 04:27.


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