-
Sziasztok, ezzel a scriptel mi a probléma? Mikor belépek az rconba, legalább 50x kifloodolja, sőt néha nem is az én nevemet írja oda hanem valaki más nevét aki a szerveren van. Ötleteket előre is köszönöm.
public OnRconLoginAttempt(ip[], password[], success)
{
new string[128];
if(!success)
{
for(new i=0; i<MAX_PLAYERS; i++)
{
GetPlayerName(i,nev,sizeof(nev));
format(string,sizeof(string),\"* Kirugtuk \'%s\'-t. Indok: Hibás rCon jelszó\",nev);
SendAdminMessage(RED,string);
TimeKick(i);
getdate(ev,honap,nap);
gettime(ora,perc,masodperc);
format(logstring,sizeof(logstring),\"[%d-%d-%d_%d:%d:%d] %s kickelve lett. Indok: Hibás rCon jelszó\",ev,honap,nap,ora,perc,masodperc,nev);
SzerverLog(logstring);
}
}
if(success)
{
for(new i=0; i<MAX_PLAYERS; i++)
{
GetPlayerName(i,nev,sizeof(nev));
format(string,sizeof(string),\"* %s beírta az rCon jelszót\",nev);
SendAdminMessage(LIGHTRED,string);
getdate(ev,honap,nap);
gettime(ora,perc,masodperc);
format(logstring,sizeof(logstring),\"[%d-%d-%d_%d:%d:%d] %s beírta az rCon jelszót\",ev,honap,nap,ora,perc,masodperc,nev);
SzerverLog(logstring);
}
}
return 1;
}
-
Tegyük fel, hogy játszanak a szerveren 6-an
ID - NÉV
1 - Jancsi
0 - Pista
3 - Géza
4 - Sára
7 - Árpád
6 - Juli
Az ID-k aszerint változnak, hogy melyik a legalacsonyabb olyan ID, ami nem foglalt. Na most ha például Pista beírja hibásan az RCON jelszót, akkor 6x lefog futni a loop, azaz a 0,1,2,3,4,5-ös IDkkel próbál játékost találni, de a 2-es és az 5-öst nem találja, mert éppen leléptek azzal az ID-vel, így hibát dobhat. Ha viszont megtalálta, akkor kickeli a 0,1,3,4 idjű játékosokat, és ezt leírja a logba.
Ez egy hiányos kód, méghozzá azért, mert sehol nem ellenőrzöd le azt, hogy az adott játékos (i) IP-je az ip[]-vel egyezik-e meg. Ha megegyezik, csak akkor kellene lefutnia a kódnak. Valamint egy looppal is meg lehetett volna oldani, 1-1 kiírással. :)
-
Valamit nem jól csináltam, 1 errort ad.
insiderpg.pwn(2046) : error 029: invalid expression, assumed zero
if(!success)
{
for(new i=0; i<MAX_PLAYERS; i++)
{
new ipp[16];
GetPlayerIp(i,ipp,sizeof(ipp));
if(ip[] == ipp)
{
GetPlayerName(i,nev,sizeof(nev));
format(string,sizeof(string),\"* Kirugtuk \'%s\'-t. Indok: Hibás rCon jelszó\",nev);
SendAdminMessage(RED,string);
TimeKick(i);
getdate(ev,honap,nap);
gettime(ora,perc,masodperc);
format(logstring,sizeof(logstring),\"[%d-%d-%d_%d:%d:%d] %s kickelve lett. Indok: Hibás rCon jelszó\",ev,honap,nap,ora,perc,masodperc,nev);
SzerverLog(logstring);
}
}
}
-
if(!success)
{
new id, ipp[16];
for(new i; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i)) continue;
GetPlayerIp(i, ipp, sizeof(ipp));
if(!strcmp(ipp, ip, true)) id = i; break;
}
GetPlayerName(i, nev, sizeof(nev));
format(string, sizeof(string),\"* Kirugtuk \'%s\'-t. Indok: Hibás rCon jelszó\",nev);
SendAdminMessage(RED, string);
TimeKick(i);
getdate(ev,honap,nap);
gettime(ora,perc,masodperc);
format(logstring,sizeof(logstring),\"[%d-%d-%d_%d:%d:%d] %s kickelve lett. Indok: Hibás rCon jelszó\",ev,honap,nap,ora,perc,masodperc,nev);
SzerverLog(logstring);
}
-
C:\\Users\\Aron\\Documents\\SAMP Szerver\\gamemodes\\insiderpg.pwn(2057) : warning 225: unreachable code
C:\\Users\\Aron\\Documents\\SAMP Szerver\\gamemodes\\insiderpg.pwn(2056) : warning 204: symbol is assigned a value that is never used: \"id\"
-
if(!success)
{
new id, ipp[16];
for(new i; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i)) continue;
GetPlayerIp(i, ipp, sizeof(ipp));
if(!strcmp(ipp, ip, true)) id = i; break;
}
GetPlayerName(id, nev, sizeof(nev));
format(string, sizeof(string),\"* Kirugtuk \'%s\'-t. Indok: Hibás rCon jelszó\", nev);
SendAdminMessage(RED, string);
TimeKick(id);
getdate(ev,honap,nap);
gettime(ora,perc,masodperc);
format(logstring,sizeof(logstring),\"[%d-%d-%d_%d:%d:%d] %s kickelve lett. Indok: Hibás rCon jelszó\",ev,honap,nap,ora,perc,masodperc,nev);
SzerverLog(logstring);
}
-
Tökély.. Köszi szépen!! :thumbsup: :thumbsup:
-
[gmod]Téma megoldva gomb ne maradjon el legközelebb![/gmod]