public OnPlayerDeath( playerid, killerid, reason ){ if( IsPlayerConnected( killerid ) ) { if( IsPlayerConnected( GetPVarInt( playerid, \"LastKilled\" ) ) && GetPVarInt( playerid, \"LastKilled\" ) == killerid ) { if( ( GetPVarInt( playerid, \"LastKilledTickcount\" ) - GetTickCount( ) ) < 500 ) { SetPVarInt( playerid, \"LastKilledTick\", GetPVarInt( playerid, \"LastKilledTick\" ) + 1 ); if( GetPVarInt( playerid, \"LastKilledTick\" ) > 1 ) Kick( playerid ); } SetPVarInt( playerid, \"LastKilledTickcount\", GetTickCount( ) ); } SetPVarInt( playerid, \"LastKilled\", killerid ); } return 1;}
Rendben, de most nem ez a kérdés.. ebbe is az lesz, hogy azt kickeli vagy bannolja aki nevében ölnek.. szóval nem a bünöst bannolja ki hanem a jó játékost.. most az a kérdés, hogyan lehet lekérdezni ezt aki elküldi ezt a \"vírúst\" hogy floodolja teli..
public OnPlayerDeath(playerid, killerid, reason){if(GetPlayerWeapon(killerid) != reason){Ban(playerid);}return 1;}
Nem olvastam végi ezt a sok hsz-t, de valami olyasmi megoldást is lehetne tenni a támadás kivédésére, hogy megnézed, hogy az OnPlayerTakeDamage alatt, hogy meg-e sebezte és ha megszebezte, akkor nem kickeli ki. De ha nem, akkor igen, mivel valószinû, hogy fake kill.
new CID[45], Version[10];GetPlayerVersion(playerid,Version,sizeof(Version));gpci(playerid,CID,sizeof(CID));printf(\"Kliens verzió: %s, CID: %s\", Version, CID);
krisk, az a gond, hogy minden bot csatlakozásnál más azonosítót ír. :confused:Hmm.. viszont a verzió ismeretlen.
new Version[10];GetPlayerVersion(playerid,Version,sizeof(Version));if(Version[0] != \'0\' || Version[1] != \'.\'){ BanEx(playerid,\"Érvénytelen kliens.\");}