07.07.2013, 13:30
Salut! Am vazut ca mai multi s-au plans ca unii fac flood cu kill-uri false si le strica si server-ul.
Aici va voi arata cum sa previi acest lucru: folosind variabile.
Tutorialul este simplu, facut pentru incepatori.
Un Fake-Kill arata asa, in server_log:
Sa incepem
Pasul 1: Resetarea variabilei jucatorului cand acesta este spawnat
Adaugam SetPVarInt(playerid,"KilledFlood",0); sub callback-ul OnPlayerSpawn:
Am facut asta deoarece flooderii nu se spawneaza dupa ce sunt omorati. Daca nu facem primul pas, toti jucatorii care omoara de doua ori (nu conteaza cand si cum) vor fi banati.
Poti pune si alta denumire a variabilei, nu esti obligat sa pui cum am pus eu, si anume "Killed Flood".
Pasul 2: Setarea variabilei jucatorului cand acesta este ucis
Adaugam SetPVarInt(playerid,"KilledFlood", GetPVarInt(playerid,"KilledFlood") + 1); sub callback-ul OnPlayerDeath:
Iar variabila se va reseta cand jucatorul se va spawna. Flooderii nu se spawneaza si vor avea o variabila mai mare. Mai multe vedem la pasul al treilea.
Pasul 3: Banarea jucatorului (flooder), daca acesta are variabila 2 sau mai mare
Adaugam if(GetPVarInt(playerid,"KilledFlood") > 1) return BanEx(playerid, "(Fake Kill Flood)"); sub callback-ul OnPlayerDeath:
Se poate folosi si functia "Kick", dar flooderii se pot reconecta si e mai bine sa ii banam, ca sa scapam de ei
Pasul 4: Resetarea variabilei jucatorului cand acesta se deconecteaza
Adaugam SetPVarInt(playerid,"KilledFlood",0); sub callback-ul OnPlayerDisconnect:
GATA TOT!
Acum hai sa revedem scriptul pe care l-am facut:
Daca ai nelamuriri, posteaza aici sau trimite-mi un PM.
Aici va voi arata cum sa previi acest lucru: folosind variabile.
Tutorialul este simplu, facut pentru incepatori.
Un Fake-Kill arata asa, in server_log:
Code:
[04/07/2013 21:24:26] [kill] Nevinovat1 killed [RNG]DuReX Dildo [04/07/2013 21:24:26] [kill] Nevinovat2 killed [RNG]DuReX Dildo [04/07/2013 21:24:26] [kill] Nevinovat3 killed [RNG]DuReX Dildo [04/07/2013 21:24:26] [kill] Nevinovat4 killed [RNG]DuReX Dildo [04/07/2013 21:24:26] [kill] Nevinovat5 killed [RNG]DuReX Dildo [04/07/2013 21:24:26] [kill] Nevinovat6 killed [RNG]DuReX Dildo [04/07/2013 21:24:27] [kill] Nevinovat7 killed [RNG]DuReX Dildo [04/07/2013 21:24:27] [kill] Nevinovat8 killed [RNG]DuReX Dildo etc.
Pasul 1: Resetarea variabilei jucatorului cand acesta este spawnat
Adaugam SetPVarInt(playerid,"KilledFlood",0); sub callback-ul OnPlayerSpawn:
pawn Code:
public OnPlayerSpawn(playerid)
{
SetPVarInt(playerid,"KilledFlood",0);
return 1;
}
Poti pune si alta denumire a variabilei, nu esti obligat sa pui cum am pus eu, si anume "Killed Flood".
Pasul 2: Setarea variabilei jucatorului cand acesta este ucis
Adaugam SetPVarInt(playerid,"KilledFlood", GetPVarInt(playerid,"KilledFlood") + 1); sub callback-ul OnPlayerDeath:
pawn Code:
public OnPlayerDeath(playerid, killerid, reason)
{
SetPVarInt(playerid,"KilledFlood", GetPVarInt(playerid,"KilledFlood") + 1);
return 1;
}
Pasul 3: Banarea jucatorului (flooder), daca acesta are variabila 2 sau mai mare
Adaugam if(GetPVarInt(playerid,"KilledFlood") > 1) return BanEx(playerid, "(Fake Kill Flood)"); sub callback-ul OnPlayerDeath:
pawn Code:
public OnPlayerDeath(playerid, killerid, reason)
{
SetPVarInt(playerid,"KilledFlood", GetPVarInt(playerid,"KilledFlood") + 1);
if(GetPVarInt(playerid,"KilledFlood") > 1) return BanEx(playerid, "(Fake-Kill Flood)");
return 1;
}
Pasul 4: Resetarea variabilei jucatorului cand acesta se deconecteaza
Adaugam SetPVarInt(playerid,"KilledFlood",0); sub callback-ul OnPlayerDisconnect:
pawn Code:
public OnPlayerDisconnect(playerid, reason)
{
SetPVarInt(playerid,"KilledFlood",0);
return 1;
}
Acum hai sa revedem scriptul pe care l-am facut:
pawn Code:
public OnPlayerSpawn(playerid)
{
SetPVarInt(playerid,"KilledFlood",0);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
SetPVarInt(playerid,"KilledFlood", GetPVarInt(playerid,"KilledFlood") + 1);
if(GetPVarInt(playerid,"KilledFlood") > 1) return BanEx(playerid, "(Fake-Kill Flood)");
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
SetPVarInt(playerid,"KilledFlood",0);
return 1;
}