#include #include #include #include #include "socket.inc" #define MY_SOCKET_IP "localhost" #define MY_SOCKET_PORT 3500 #define STEAMID_LENGTH 128 char teamCT[6][150]; char teamT[6][150]; char authorised[20][128]; char clientId[128]; public Plugin myinfo = { name = "InfoLan 2021 Bot", author = "rick@gnous.eu", description = "Bot communiquant avec le bot discord \ https://github.com/Lunki51/cs-picker afin d’automatiser \ l’InfoLan 2021", version = "1.3", url = "https://git.gnous.eu/Rick/infolanBot" }; //public void OnClientAuthorized(int client, const char[] auth) public void SuperTest(Event event, const char[] name, bool dontBroadcast) { int client = GetClientOfUserId(event.GetInt("userid")); PrintToServer("============================="); bool allGood = GetClientAuthId(client, AuthId_SteamID64, clientId, sizeof(clientId)); PrintToServer("Mon ID : %s", clientId); if (!strcmp(clientId, "BOT", false)) { return ; } if (!allGood) { PrintToServer("Erreur Fatale !"); } else { PrintToServer("== ID OK =="); allGood = false; int i = 1; while (!allGood && i < sizeof(teamCT)) { if (!strcmp(teamCT[i], clientId, false)) { ChangeClientTeam(client, CS_TEAM_CT); CS_SetClientClanTag(client, teamCT[0]); allGood = true; PrintToServer("Team CT"); CS_RespawnPlayer(client); } else if (!strcmp(teamT[i], clientId, false)) { ChangeClientTeam(client, CS_TEAM_T); CS_SetClientClanTag(client, teamT[0]); PrintToServer("Team T"); allGood = true; CS_RespawnPlayer(client); } i++; } if (!allGood) { i = 0; while (!allGood && i < sizeof(authorised)) { PrintToServer(authorised[i]); if (!strcmp(authorised[i], clientId, false)) { allGood = true; ChangeClientTeam(client, CS_TEAM_SPECTATOR); } i++; } if (!allGood) { KickClient(client, "Vous n’êtes pas autorisé à suivre / jouer \ sur ce serveur"); } // check si casteur ou admin // sinon ban } } } /* * !team * * */ public Action SetTeam(int args) { char arg[128]; char full[256]; GetCmdArgString(full, sizeof(full)); PrintToServer("Je reçois %d arguments qui sont : %s", args, full); GetCmdArg(1, arg, sizeof(arg)); int team = (!strcmp(arg, "ct", false) ? 1 : 2); GetCmdArg(2, arg, sizeof(arg)); if (team == 1) { ServerCommand("mp_teamname_1 %s", arg) } else { ServerCommand("mp_teamname_2 %s", arg) } PrintToServer("L,équipe choisi est %d", team); if (args == 7) { for(int i = 3; i <= args; i++) { GetCmdArg(i, arg, sizeof(arg)); if (team == 1) { teamCT[i - 3] = arg; } else { teamT[i - 3] = arg; } PrintToServer("%d c’est la demande %s", i - 2, arg); } } else { PrintToServer("Erreur, pas assez d’args"); } return Plugin_Handled; } public void OnSocketReceive(Handle socket, const char[] datas, const int data, any arg) {} /* envoie information plugin */ public void OnMapEnd() { PrintToServer("======= FIN ======"); /* kick tout le monde */ } public void OnSocketConnected(Handle socket, any arg) { char requestStr[150]; Format(requestStr, sizeof(requestStr), "%s", "Source Engine Query"); /* FormatEx( requestStr, sizeof(requestStr), "GET /%s HTTP/1.0\r\nHost: %s\r\nConnection: close\r\n\r\n", "prout", "mario" ); */ SocketSend(socket, requestStr, 150); } public void SocketEnvoieVictoire(Handle socket, int t, int ct) { char requestStr[512]; FormatEx( requestStr, sizeof(requestStr), "POST /api/csgo/matchend HTTP/1.0\r\n\ Host: Serveur\r\n\ Content-type: text/json\r\n\ {\"serverport\": XXXXXX, \"available\": \"true\"}" ) } public OnSocketDisconnected(Handle socket, any arg) { CloseHandle(socket); } public void OnSocketError(Handle socket, const int errorType, const int errorNum, any arg) { PrintToServer("[ERROR] Le socket a rencontré une erreur !"); CloseHandle(socket); } public void EnvoiInfo(Event event, const char[] name, bool dontBroadcast) { //kick tout le monde // requete post pour match fini et serveur libre Handle socket = SocketCreate(SOCKET_TCP, OnSocketError); //SocketConnect(socket, OnSocketConnected, OnSocketReceive, OnSocketDisconnected, MY_SOCKET_IP, MY_SOCKET_PORT); } public void OnPluginStart() { HookEvent("cs_win_panel_match", EnvoiInfo); HookEvent("player_activate", SuperTest); RegServerCmd("!team", SetTeam); PrintToServer("Hello world!"); PrintToServer("%d", sizeof(authorised)); }