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 servery tak mu da kick!
Ak má hrac neobmedzene ammo tzn. zamrznute.
Najprv definujeme premenne
V prípade, že by ste našly ako to obísť tak reply. Ďakujem vopred
Ak má hrac neobmedzene ammo tzn. zamrznute.
Najprv definujeme premenne
- kód:
new oldammo, newammo;
#define PRESSED(%0) (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
- kód:
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;
}
- kód:
public CheckAmmo(playerid)
{
newammo = GetPlayerAmmo(playerid);
if (oldammo == newammo){
SendWarningMessage(playerid, "Unlimited Ammo");
}
return true;
}
- kód:
stock SendWarningMessage(playerid, thread[])
{
if (AdminsOnline() > 0)
{
new str[200];
for (new i;i<=MAX_PLAYERS_EX;i++)
{
if (IsPlayerConnected(i) && IsPlayerAdmin(i))
{
format(str, sizeof(str),"[ Anticheat] Potencionalny cheater [Nick: %s [ID: %d]] [%s]", GetName(playerid), playerid, thread);
SendClientMessage(i, 0xFF0000AA, str);
}
}
}
else
{
format(str, sizeof(str),"[ Anticheat] %s bol automaticky vyhodeny pre %s", GetName(playerid), thread);
SendClientMessageToAll(0xFF0000AA, str);
Kick(playerid);
}
return true;
}
- kód:
stock HavePlayerWeapon(playerid) // tnx to ATomas
{
switch(GetPlayerWeapon(playerid))
{
case 16..18,22..39,41,42: return true;
default: return false;
}
}
- kód:
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
Naposledy upravil FLexx dňa Pi apríl 29, 2011 10:49 pm, celkom upravené 2 krát.