server sided weapon system + anti cheat
#1

the problem is after im getting weapons im still getting kicked and the varible doesn't changed to 1 like if im getting a camera

okay so this is my method:


new variables:
Code:
new
        Brass[MAX_PLAYERS],
        Golf[MAX_PLAYERS],
        NiteStick[MAX_PLAYERS],
        Knife[MAX_PLAYERS],
        BaseBall[MAX_PLAYERS],
        Shovel[MAX_PLAYERS],
        Pool[MAX_PLAYERS],
        Katana[MAX_PLAYERS],
        ChainSaw[MAX_PLAYERS],
        PurpleDil[MAX_PLAYERS],
        SmallWhiteDil[MAX_PLAYERS],
        LargeWhiteDil[MAX_PLAYERS],
        SilverDil[MAX_PLAYERS],
        Flowers[MAX_PLAYERS],
        Cane[MAX_PLAYERS],
        Grenade[MAX_PLAYERS],
        TearGas[MAX_PLAYERS],
        Molitov[MAX_PLAYERS],
        Ninemm[MAX_PLAYERS],
        Silenced9mm[MAX_PLAYERS],
        DesertEagle[MAX_PLAYERS],
        Shotgun[MAX_PLAYERS],
        SawnOffShotgun[MAX_PLAYERS],
        CombatShotgun[MAX_PLAYERS],
        MicroSMG[MAX_PLAYERS],
        SMG[MAX_PLAYERS],
        AK47[MAX_PLAYERS],
        M4[MAX_PLAYERS],
        Tec9[MAX_PLAYERS],
        CountryRifle[MAX_PLAYERS],
        SniperRifle[MAX_PLAYERS],
        Rocket[MAX_PLAYERS],
        HeatSeakingRocket[MAX_PLAYERS],
        FlameThrower[MAX_PLAYERS],
        MiniGun[MAX_PLAYERS],
        Satchel[MAX_PLAYERS],
        Detonator[MAX_PLAYERS],
        SprayCan[MAX_PLAYERS],
        Fire[MAX_PLAYERS],
        Camera[MAX_PLAYERS],
        NightVision[MAX_PLAYERS],
        ThermalVision[MAX_PLAYERS],
        Parachute[MAX_PLAYERS];
on player connect they are 0.
i've set a timer to check the player weapons made a new method of giving weapons
forward GiveWeapon(playerid,wep,ammo);

Code:
public GiveWeapon(playerid,wep,ammo)
{
	    if(wep == 1) { Brass[playerid] = 1; }
        if(wep == 2) { Golf[playerid] = 1; }
        if(wep == 3) { NiteStick[playerid] = 1; }
        if(wep == 4) { Knife[playerid] = 1; }
        if(wep == 5) { BaseBall[playerid] = 1; }
        if(wep == 6) { Shovel[playerid] = 1; }
        if(wep == 7) { Pool[playerid] = 1; }
        if(wep == 8) { Katana[playerid] = 1; }
        if(wep == 9) { ChainSaw[playerid] = 1; }
        if(wep == 10) { PurpleDil[playerid] = 1; }
        if(wep == 11) { SmallWhiteDil[playerid] = 1; }
        if(wep == 12) { LargeWhiteDil[playerid] = 1; }
        if(wep == 13) { SilverDil[playerid] = 1; }
        if(wep == 14) { Flowers[playerid] = 1; }
        if(wep == 15) { Cane[playerid] = 1; }
        if(wep == 16) { Grenade[playerid] = 1; }
        if(wep == 17) { TearGas[playerid] = 1; }
        if(wep == 18) { Molitov[playerid] = 1; }
        if(wep == 22) { Ninemm[playerid] = 1; }
        if(wep == 23) { Silenced9mm[playerid] = 1; }
        if(wep == 25) { Shotgun[playerid] = 1; }
        if(wep == 26) { SawnOffShotgun[playerid] = 1; }
        if(wep == 27) { CombatShotgun[playerid] = 1; }
        if(wep == 28) { MicroSMG[playerid] = 1; }
        if(wep == 29) { SMG[playerid] = 1; }
        if(wep == 30) { AK47[playerid] = 1; }
        if(wep == 31) { M4[playerid] = 1; }
        if(wep == 32) { Tec9[playerid] = 1; }
        if(wep == 33) { CountryRifle[playerid] = 1; }
        if(wep == 34) { SniperRifle[playerid] = 1; }
        if(wep == 35) { Rocket[playerid] = 1; }
        if(wep == 36) { HeatSeakingRocket[playerid] = 1; }
        if(wep == 37) { FlameThrower[playerid] = 1; }
        if(wep == 38) { MiniGun[playerid] = 1; }
        if(wep == 39) { Satchel[playerid] = 1; }
        if(wep == 40) { Detonator[playerid] = 1; }
        if(wep == 41) { SprayCan[playerid] = 1; }
        if(wep == 42) { Fire[playerid] = 1; }
        if(wep == 43) { Camera[playerid] = 1; }
        if(wep == 44) { NightVision[playerid] = 1; }
        if(wep == 45) { ThermalVision[playerid] = 1; }
        if(wep == 46) { Parachute[playerid] = 1; }
    GivePlayerWeapon(playerid,wep,ammo);
}
Code:
forward CheckPlayerWeapons();
public CheckPlayerWeapons()
{
	

for(new i=0; i<MAX_PLAYERS; i++)
        {
                if(IsPlayerConnected(i))
                {
                    if(Brass[i] == 0 && GetPlayerWeapon(i) == 1)
                    {
                        WeaponHackKick(i);
                    }
                    else if(Golf[i] == 0 && GetPlayerWeapon(i) == 2)
                    {
                        WeaponHackKick(i);
                    }
                    else if(NiteStick[i] == 0 && GetPlayerWeapon(i) == 3)
                    {
                        WeaponHackKick(i);
                    }
                    else if(Knife[i] == 0 && GetPlayerWeapon(i) == 4)
                    {
                        WeaponHackKick(i);
                    }
                    else if(BaseBall[i] == 0 && GetPlayerWeapon(i) == 5)
                    {
                        WeaponHackKick(i);
                    }
                    else if(Shovel[i] == 0 && GetPlayerWeapon(i) == 6)
                    {
                        WeaponHackKick(i);
                    }
                    else if(Pool[i] == 0 && GetPlayerWeapon(i) == 7)
                    {
                        WeaponHackKick(i);
                    }
                    else if(Katana[i] == 0 && GetPlayerWeapon(i) == 8)
                    {
                        WeaponHackKick(i);
                    }
                    else if(ChainSaw[i] == 0 && GetPlayerWeapon(i) == 9)
                    {
                        WeaponHackKick(i);
                    }
                    else if(PurpleDil[i] == 0 && GetPlayerWeapon(i) == 10)
                    {
                        WeaponHackKick(i);
                    }
                    else if(SmallWhiteDil[i] == 0 && GetPlayerWeapon(i) == 11)
                    {
                WeaponHackKick(i);
                    }
                    else if(LargeWhiteDil[i] == 0 && GetPlayerWeapon(i) == 12)
                    {
                        WeaponHackKick(i);
                    }
                    else if(SilverDil[i] == 0 && GetPlayerWeapon(i) == 13)
                    {
                        WeaponHackKick(i);
                    }
                    else if(Flowers[i] == 0 && GetPlayerWeapon(i) == 14)
                    {
                        WeaponHackKick(i);
                    }
                    else if(Cane[i] == 0 && GetPlayerWeapon(i) == 15)
                    {
                        WeaponHackKick(i);
                    }
                    else if(Grenade[i] == 0 && GetPlayerWeapon(i) == 16)
                    {
                        WeaponHackKick(i);
                    }
                    else if(TearGas[i] == 0 && GetPlayerWeapon(i) == 17)
                    {
                        WeaponHackKick(i);
                    }
                    else if(Molitov[i] == 0 && GetPlayerWeapon(i) == 18)
                    {
                        WeaponHackKick(i);
                    }
                    else if(Ninemm[i] == 0 && GetPlayerWeapon(i) == 22)
                    {
                        WeaponHackKick(i);
                    }
                    else if(Silenced9mm[i] == 0 && GetPlayerWeapon(i) == 23)
                    {
                        WeaponHackKick(i);
                    }
                    else if(DesertEagle[i] == 0 && GetPlayerWeapon(i) == 24)
                    {
                        WeaponHackKick(i);
                    }
                    else if(Shotgun[i] == 0 && GetPlayerWeapon(i) == 25)
                    {
                        WeaponHackKick(i);
                    }
                    else if(SawnOffShotgun[i] == 0 && GetPlayerWeapon(i) == 26)
                    {
                        WeaponHackKick(i);
                    }
                    else if(CombatShotgun[i] == 0 && GetPlayerWeapon(i) == 27)
                    {
                        WeaponHackKick(i);
                    }
                    else if(MicroSMG[i] == 0 && GetPlayerWeapon(i) == 28)
                    {
                        WeaponHackKick(i);
                    }
                    else if(SMG[i] == 0 && GetPlayerWeapon(i) == 29)
                    {
                        WeaponHackKick(i);
                    }
                    else if(AK47[i] == 0 && GetPlayerWeapon(i) == 30)
                    {
                        WeaponHackKick(i);
                    }
                    else if(M4[i] == 0 && GetPlayerWeapon(i) == 31)
                    {
                        WeaponHackKick(i);
                    }
                    else if(Tec9[i] == 0 && GetPlayerWeapon(i) == 32)
                    {
                        WeaponHackKick(i);
                    }
                    else if(CountryRifle[i] == 0 && GetPlayerWeapon(i) == 33)
                    {
                        WeaponHackKick(i);
                    }
                    else if(SniperRifle[i] == 0 && GetPlayerWeapon(i) == 34)
                    {
                        WeaponHackKick(i);
                    }
                    else if(Rocket[i] == 0 && GetPlayerWeapon(i) == 35)
                    {
                        WeaponHackKick(i);
                    }
                    else if(HeatSeakingRocket[i] == 0 && GetPlayerWeapon(i) == 36)
                    {
                        WeaponHackKick(i);
                    }
                    else if(FlameThrower[i] == 0 && GetPlayerWeapon(i) == 37)
                    {
                        WeaponHackKick(i);
                    }
                    else if(MiniGun[i] == 0 && GetPlayerWeapon(i) == 38)
                    {
                        WeaponHackKick(i);
                    }
                    else if(Satchel[i] == 0 && GetPlayerWeapon(i) == 39)
                    {
                        WeaponHackKick(i);
                    }
                    else if(Detonator[i] == 0 && GetPlayerWeapon(i) == 40)
                    {
                        WeaponHackKick(i);
                    }
                    else if(SprayCan[i] == 0 && GetPlayerWeapon(i) == 41)
                    {
                        WeaponHackKick(i);
                    }
                    else if(Fire[i] == 0 && GetPlayerWeapon(i) == 42)
                    {
                        WeaponHackKick(i);
                    }
                    else if(Camera[i] == 0 && GetPlayerWeapon(i) == 43)
                    {
                        WeaponHackKick(i);
                    }
                    else if(NightVision[i] == 0 && GetPlayerWeapon(i) == 44)
                    {
                        WeaponHackKick(i);
                    }
                    else if(ThermalVision[i] == 0 && GetPlayerWeapon(i) == 45)
                    {
                        WeaponHackKick(i);
                    }
                    else if(Parachute[i] == 0 && GetPlayerWeapon(i) == 46)
                    {
                                WeaponHackKick(i);
                    }
                }
        }
	
	return 1;
}


on playerconnect
Reply
#2

You could try simplifying the code!

pawn Code:
new Weapons[MAX_PLAYERS][47];

stock GiveWeapon(playerid, wep, ammo)
{
    Weapons[playerid][wep] = 1;
    GivePlayerWeapon(playerid, wep, ammo);
    return 1;
}

public OnPlayerConnect(playerid)
{
    for (new i = 0; i < 47; i ++)
        Weapons[playerid][i] = 0;
    return 1;
}

forward CheckPlayerWeapons();
public CheckPlayerWeapons()
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if (GetPlayerWeapon(i) != 0 && !Weapons[i][GetPlayerWeapon(playerid))
        {
            WeaponHackKick(i);
        }
    }
    return 1;
}
Are you sure you replaced all instances of GivePlayerWeapon in your script, with GiveWeapon?

Try the code above, let me know if it works.
Reply
#3

works! i love you man you just had a little error on checkplayerweapons but thank you!!
Reply
#4

but why im getting stuck after getting any weapon FREEZE

and i have a weird unknown weapon when im switching to it im getting kick

Reply
#5

Unknown weapon? Corrupt files perhaps?
Reply
#6

k i fixed and i just added toggleplayercontrolable thank you man
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)