Jump to content

[ Anticheat ] Ochrana proti Unlimited Ammo


Sariiz

Recommended Posts

Zdravim. Vytvaram svoj Adminscript s Anticheatom a práve som vytvoril funkciu, ktoru mám odskusanu a funguje. Funguje na principe ze hraca nevyhodi ale upozorni administratora na cheatera. A ak sa ziadny admin nenachadza na nservery tak mu da kick!

 

Ak má hrac neobmedzene ammo tzn. zamrznute.

 

Najprv definujeme premenne

new oldammo, newammo;

#define PRESSED(%0) (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))

 

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{

if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) //ak je hrac na nohach nie v aute
{
	if(PRESSED(KEY_FIRE))
	{
		if (HavePlayerWeapon(playerid)) //stock na zistenie ci ma zbran
		{
			oldammo = GetPlayerAmmo(playerid); // ulozenie amma
			SetTimerEx("CheckAmmo", 1000, false, "i", playerid);
		}
		return false;
	}
}
return true;
}

 

public CheckAmmo(playerid)
{
newammo = GetPlayerAmmo(playerid);
if (oldammo == newammo){
    SendWarningMessage(playerid, "Unlimited Ammo");
}
return true;
}

 

stock SendWarningMessage(playerid, thread[])
{
if (AdminsOnline() > 0)
{
	for (new i;i<=MAX_PLAYERS_EX;i++)
	{
	    if (IsPlayerConnected(i) && IsPlayerAdmin(i))
	    {
	  		new str[250];
			format(str, sizeof(str),"[ Anticheat] Potencionalny cheater [Nick]] [%s]", GetName(playerid), playerid, thread);
			SendClientMessage(i, 0xFF0000AA, str);
		}
	}
}
else
{
    new str[200];
	format(str, sizeof(str),"[ Anticheat] %s bol automaticky vyhodeny pre %s", GetName(playerid), thread);
	SendClientMessageToAll(0xFF0000AA, str);
	Kick(playerid);
}
return true;
}

 

stock HavePlayerWeapon(playerid) // tnx to ATomas
{
  switch(GetPlayerWeapon(playerid))
  {
     case 16..18,22..39,41,42: return true;
     default: return false;
  }
}

 

AdminsOnline()
{
new p;
for(new i=0;i<=MAX_PLAYERS_EX;i++) if(IsPlayerConnected(i)) if(IsPlayerAdmin(i)) p++;
return p;
}

 

V prípade, že by ste našly ako to obísť tak reply. Ďakujem vopred :)

Link to comment
Share on other sites

Podobne som to mal vymyslené aj ja lenže to bolo trošku inač :d

 

pekne ale tie stringy...

 

 

new str[250];

SCM(TA) môže mať iba 128 znakov čiže si vytvoril 122 premien na nič...

Link to comment
Share on other sites

nedami to mam takovou "estetickou" pripominku :)

stock HavePlayerWeapon(playerid)
{
  new Weapon = GetPlayerWeapon(playerid);
  if (Weapon == 16 || Weapon == 17 || Weapon == 18 || Weapon == 22) return true;
  else if (Weapon == 23 || Weapon == 24 || Weapon == 25 || Weapon == 26) return true;
  else if (Weapon == 27 || Weapon == 28 || Weapon == 29 || Weapon == 30) return true;
  else if (Weapon == 31 || Weapon == 32 || Weapon == 33 || Weapon == 34) return true;
  else if (Weapon == 35 || Weapon == 36 || Weapon == 37 || Weapon == 38) return true;
  else if (Weapon == 39 || Weapon == 41 || Weapon == 42 ) return true;
  else return false;
}

stock HavePlayerWeapon(playerid)
{
switch(GetPlayerWeapon(playerid))
{
	case 16..18,22..39,41,42: return true;
	default: return false;
}
}

co je hezci ? :d

Link to comment
Share on other sites

nedami to mam takovou "estetickou" pripominku :)

stock HavePlayerWeapon(playerid)
{
  new Weapon = GetPlayerWeapon(playerid);
  if (Weapon == 16 || Weapon == 17 || Weapon == 18 || Weapon == 22) return true;
  else if (Weapon == 23 || Weapon == 24 || Weapon == 25 || Weapon == 26) return true;
  else if (Weapon == 27 || Weapon == 28 || Weapon == 29 || Weapon == 30) return true;
  else if (Weapon == 31 || Weapon == 32 || Weapon == 33 || Weapon == 34) return true;
  else if (Weapon == 35 || Weapon == 36 || Weapon == 37 || Weapon == 38) return true;
  else if (Weapon == 39 || Weapon == 41 || Weapon == 42 ) return true;
  else return false;
}

stock HavePlayerWeapon(playerid)
{
switch(GetPlayerWeapon(playerid))
{
	case 16..18,22..39,41,42: return true;
	default: return false;
}
}

co je hezci ? :d

 

 

ja viem ATomas to som chcel lenze sa mi nechcelo premislat nad tym ale presne som toto chcel spravit. Dik ulahcil si mi pracu :d

Link to comment
Share on other sites

pěkný

 

ja si udělal podle atomosovo anti money cheatu

 

i anti healht

 

a i anti weapon takže jakoby cheateři nemají šanci

 

...

 

Pěkný 10/0

 

dik ;)

Link to comment
Share on other sites

podla atomasovho ? to nevieš robiť s premenou ? :d

aha

 

new bool:weapon[45][MAX_PLAYERS_EX];

(dalo by sa to aj na sloty, ale ja radšej na všetky zbrane jednotlivo

:d

Link to comment
Share on other sites

podla atomasovho ? to nevieš robiť s premenou ? :d

aha

 

new bool:weapon[45][MAX_PLAYERS_EX];

(dalo by sa to aj na sloty, ale ja radšej na všetky zbrane jednotlivo

:d

 

Viem omfg uz to nerieste je to? funguje to? tak co :d

Link to comment
Share on other sites

  • 2 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...