Nevoie de Filescript anti-money hack sa nu isi de.a bani
#4

Am bagat acesta in samp si mi-am dat bani cu s.o.b.e.i.t mii reseteaza , e perfect asta dar,,
cand dau bani cu /givemoney mii reseteaza si nu imi trebuie asta. Cum fac c asa nu mii mai reseteaza cu comanda /givemoney si sa ii reseteze doar la cei cu s.o.b

Code:
#include <a_samp>

#define Maximal_Players 500
#define Cheat_Type_Money 0
#define Cheat_Type_Weapons 1
#define Cheat_Type_Player_Speed 2
#define Cheat_Type_Vehicle_Speed 3

new AntiCheatDetectTimer;
enum PlayerInfo
{
	PlayerMoney,
	PlayerWeapon[13],
	PlayerAmmunition[13]
};
new Player[Maximal_Players][PlayerInfo];

public OnFilterScriptInit()
{
	AntiCheatDetectTimer = SetTimer("AntiCheatDetect",1000,1);
	return 1;
}

public OnFilterScriptExit()
{
	KillTimer(AntiCheatDetectTimer);
	return 1;
}

public OnPlayerConnect(playerid)
{
	Player[playerid][PlayerMoney] = 0;
	for(new W = 0; W < 12; W++)
	{
		Player[playerid][PlayerWeapon][W] = 0;
		Player[playerid][PlayerAmmunition][W] = 0;
	}
	return 1;
}

forward AntiCheat(PlayerId,Cheat_Type,WeaponId);
public AntiCheat(PlayerId,Cheat_Type,WeaponId)
{
	if(Cheat_Type == Cheat_Type_Money) SetMoney(PlayerId,Player[PlayerId][PlayerMoney]);
	if(Cheat_Type == Cheat_Type_Weapons) ResetWeapon(PlayerId,WeaponId);
	if(Cheat_Type == Cheat_Type_Player_Speed) SetPlayerHealth(PlayerId,0);
	if(Cheat_Type == Cheat_Type_Vehicle_Speed) DestroyVehicle(GetPlayerVehicleID(PlayerId));
	return 1;
}

stock GetMoney(PlayerId)
{
	if(!IsPlayerConnected(PlayerId)) return 0;
	return Player[PlayerId][PlayerMoney];
}

stock GiveMoney(PlayerId,Amount)
{
	if(!IsPlayerConnected(PlayerId)) return 0;
	if(Amount == 0) return 0;
	Player[PlayerId][PlayerMoney] += Amount;
    GivePlayerMoney(PlayerId,Amount);
	return 1;
}

stock SetMoney(PlayerId,Amount)
{
    if(!IsPlayerConnected(PlayerId)) return 0;
    Player[PlayerId][PlayerMoney] = Amount;
    ResetPlayerMoney(PlayerId);
    GivePlayerMoney(PlayerId,Player[PlayerId][PlayerMoney]);
	return 1;
}

stock ResetMoney(PlayerId)
{
	if(!IsPlayerConnected(PlayerId)) return 0;
	Player[PlayerId][PlayerMoney] = 0;
	ResetPlayerMoney(PlayerId);
	return 1;
}

stock GiveWeapon(PlayerId,WeaponId,Ammunition)
{
    if(!IsPlayerConnected(PlayerId)) return 0;
    if(WeaponId < 0 || WeaponId == 19 || WeaponId == 20 || WeaponId == 21 || WeaponId > 46) return 0;
    if(Ammunition == 0) return 0;
    for(new W = 0; W < 12; W++)
    {
        GetPlayerWeaponData(PlayerId,W,Player[PlayerId][PlayerWeapon][W],Player[PlayerId][PlayerAmmunition][W]);
    }
    Player[PlayerId][PlayerWeapon][GetWeaponSlot(WeaponId)] = WeaponId;
    Player[PlayerId][PlayerAmmunition][GetWeaponSlot(WeaponId)] = Ammunition;
    SetPlayerAmmo(PlayerId,Player[PlayerId][PlayerWeapon][GetWeaponSlot(WeaponId)],0);
    GivePlayerWeapon(PlayerId,WeaponId,Ammunition);
    SetPlayerArmedWeapon(PlayerId,WeaponId);
	return 1;
}

stock ResetWeapon(PlayerId,WeaponId)
{
	if(!IsPlayerConnected(PlayerId)) return 0;
	if(WeaponId < 0 || WeaponId == 19 || WeaponId == 20 || WeaponId == 21 || WeaponId > 46) return 0;
	for(new W = 0; W < 12; W++)
	{
	    GetPlayerWeaponData(PlayerId,W,Player[PlayerId][PlayerWeapon][W],Player[PlayerId][PlayerAmmunition][W]);
	}
    Player[PlayerId][PlayerWeapon][GetWeaponSlot(WeaponId)] = 0;
    Player[PlayerId][PlayerAmmunition][GetWeaponSlot(WeaponId)] = 0;
    ResetPlayerWeapons(PlayerId);
	for(new W = 0; W < 12; W++)
	{
	    GivePlayerWeapon(PlayerId,Player[PlayerId][PlayerWeapon][W],Player[PlayerId][PlayerAmmunition][W]);
	}
	SetPlayerArmedWeapon(PlayerId,0);
	return 1;
}

stock ResetWeapons(PlayerId)
{
    if(!IsPlayerConnected(PlayerId)) return 0;
    for(new W = 0; W < 12; W++)
    {
        Player[PlayerId][PlayerWeapon][W] = 0;
        Player[PlayerId][PlayerAmmunition][W] = 0;
    }
    ResetPlayerWeapons(PlayerId);
	return 1;
}

stock GetWeaponSlot(WeaponId)
{
	switch(WeaponId)
	{
	    case 0,1: return 0;
		case 2..9: return 1;
		case 10..15: return 10;
		case 16..18,39: return 8;
		case 22..24: return 2;
		case 25..27: return 3;
		case 28,29,32: return 4;
		case 30,31: return 5;
		case 33,34: return 6;
		case 35..38: return 7;
		case 40: return 12;
		case 41..43: return 9;
		case 44..46: return 11;
	}
	return 0;
}

forward AntiCheatDetect();
public AntiCheatDetect()
{
	for(new P = 0; P < Maximal_Players; P++)
	{
	    if(IsPlayerConnected(P))
	    {
	        if(GetPlayerMoney(P) != GetMoney(P)) CallLocalFunction("AntiCheat","dd",P,Cheat_Type_Money);
	        if(Player[P][PlayerWeapon][GetWeaponSlot(GetPlayerWeapon(P))] != GetPlayerWeapon(P)) CallLocalFunction("AntiCheat","ddd",P,Cheat_Type_Weapons,GetPlayerWeapon(P));
	        if(GetPlayerState(P) == PLAYER_STATE_ONFOOT)
	        {
	            new Float:X;
	            new Float:Y;
				new Float:Z;
				GetPlayerVelocity(P,X,Y,Z);
				if(floatround(X) > 1 || floatround(Y) > 1 || floatround(Z) > 1) CallLocalFunction("AntiCheat","dd",P,Cheat_Type_Player_Speed);
			}
			if(GetPlayerState(P) == PLAYER_STATE_DRIVER)
			{
			    new Float:X;
			    new Float:Y;
			    new Float:Z;
			    GetVehicleVelocity(GetPlayerVehicleID(P),X,Y,Z);
			    if(floatround(X) > 1 || floatround(Y) > 1 || floatround(Z) > 3 || floatround(X) < -1 || floatround(Y) < -1 || floatround(Z) < -3) CallLocalFunction("AntiCheat","dd",P,Cheat_Type_Vehicle_Speed);
			}
	    }
	}
	return 1;
}
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)