Patch bug kick au début de game
This commit is contained in:
parent
5a8db4a010
commit
8ecbfdc285
1 changed files with 15 additions and 14 deletions
29
infolan.sp
29
infolan.sp
|
@ -12,8 +12,10 @@ char teamCT[5][150];
|
||||||
char teamT[5][150];
|
char teamT[5][150];
|
||||||
char clientId[128];
|
char clientId[128];
|
||||||
|
|
||||||
|
int allId[20];
|
||||||
|
int nbAllId = 0;
|
||||||
|
|
||||||
int port = -1;
|
int port = -1;
|
||||||
bool needReset; /* pour éviter le kick lors des connexions post veille */
|
|
||||||
|
|
||||||
public Plugin myinfo =
|
public Plugin myinfo =
|
||||||
{
|
{
|
||||||
|
@ -22,7 +24,7 @@ public Plugin myinfo =
|
||||||
description = "Bot communiquant avec le bot discord \
|
description = "Bot communiquant avec le bot discord \
|
||||||
https://github.com/Lunki51/cs-picker afin d’automatiser \
|
https://github.com/Lunki51/cs-picker afin d’automatiser \
|
||||||
l’InfoLan 2021",
|
l’InfoLan 2021",
|
||||||
version = "1.4",
|
version = "1.5",
|
||||||
url = "https://git.gnous.eu/Rick/infolanBot"
|
url = "https://git.gnous.eu/Rick/infolanBot"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -55,6 +57,8 @@ public void SetTeamPlayer(Event event, const char[] name, bool dontBroadcast)
|
||||||
if (FindAdminByIdentity("steam", clientId) != INVALID_ADMIN_ID)
|
if (FindAdminByIdentity("steam", clientId) != INVALID_ADMIN_ID)
|
||||||
{
|
{
|
||||||
ChangeClientTeam(client, CS_TEAM_SPECTATOR);
|
ChangeClientTeam(client, CS_TEAM_SPECTATOR);
|
||||||
|
allId[nbAllId] = client;
|
||||||
|
nbAllId++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -69,12 +73,15 @@ public void SetTeamPlayer(Event event, const char[] name, bool dontBroadcast)
|
||||||
{
|
{
|
||||||
ChangeClientTeam(client, CS_TEAM_CT);
|
ChangeClientTeam(client, CS_TEAM_CT);
|
||||||
allGood = true;
|
allGood = true;
|
||||||
needReset = true;
|
allId[nbAllId] = client;
|
||||||
|
nbAllId++;
|
||||||
}
|
}
|
||||||
else if (!strcmp(teamT[i], clientId, false))
|
else if (!strcmp(teamT[i], clientId, false))
|
||||||
{
|
{
|
||||||
ChangeClientTeam(client, CS_TEAM_T);
|
ChangeClientTeam(client, CS_TEAM_T);
|
||||||
allGood = true;
|
allGood = true;
|
||||||
|
allId[nbAllId] = client;
|
||||||
|
nbAllId++;
|
||||||
}
|
}
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
@ -115,7 +122,6 @@ public Action SetTeam(int args)
|
||||||
else
|
else
|
||||||
teamT[i - 3] = arg;
|
teamT[i - 3] = arg;
|
||||||
}
|
}
|
||||||
needReset = false;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -131,6 +137,11 @@ public void OnMapEnd()
|
||||||
{
|
{
|
||||||
// TODO kick tout le monde
|
// TODO kick tout le monde
|
||||||
PrintToServer("======= FIN ======");
|
PrintToServer("======= FIN ======");
|
||||||
|
for (int i = 0; i < nbAllId; i++)
|
||||||
|
{
|
||||||
|
if (IsClientInGame(allId[i]))
|
||||||
|
KickClient(allId[i], "Le match est fini.");
|
||||||
|
}
|
||||||
/* kick tout le monde */
|
/* kick tout le monde */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -205,16 +216,6 @@ public void SocketEnvoieVictoire(Handle socket, any arg)
|
||||||
|
|
||||||
public void OnSocketReceive(Handle socket, const char[] datas, const int data, any arg) {}
|
public void OnSocketReceive(Handle socket, const char[] datas, const int data, any arg) {}
|
||||||
|
|
||||||
public void OnClientDisconnect(int client)
|
|
||||||
{
|
|
||||||
int nbClient = GetTeamClientCount(CS_TEAM_SPECTATOR)
|
|
||||||
+ GetTeamClientCount(CS_TEAM_CT) + GetTeamClientCount(CS_TEAM_T);
|
|
||||||
if (nbClient == 1 && needReset)
|
|
||||||
{
|
|
||||||
ServeurLibre();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public OnSocketDisconnected(Handle socket, any arg)
|
public OnSocketDisconnected(Handle socket, any arg)
|
||||||
{
|
{
|
||||||
CloseHandle(socket);
|
CloseHandle(socket);
|
||||||
|
|
Loading…
Reference in a new issue