[HELP] Command '/gunnear [gunid] [ammo] [distance]'
#1

I am trying to make it so i can give a player a gun if they are in rage of the distance i put but i am lost/no idea how. Please help me.

Code
Код:
CMD:gunnear(playerid, params[])
{
	new playerb, gunid, ammo, string[128], distance;
   	if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You need to login first before using any command.");
	if(PlayerInfo[playerid][pAdmin] < 4) return SendClientMessage(playerid, COLOR_GREY, "You are not authorized to use this command.");
	if(!aDuty[playerid]) return SendClientMessage(playerid, COLOR_GREY, "You are not on Admin Duty.");
	if(sscanf(params, "iii", gunid, ammo, distance))
	{
		SendClientMessage(playerid, COLOR_WHITE, "[Usage]: /unnear [gunid] [ammo] [distance]");
		SendClientMessage(playerid, COLOR_GREEN, "_______________________________________");
		SendClientMessage(playerid, COLOR_GREY, "1: Brass Knuckles 2: Golf Club 3: Nite Stick 4: Knife 5: Baseball Bat 6: Shovel 7: Pool Cue 8: Katana 9: Chainsaw");
		SendClientMessage(playerid, COLOR_GREY, "10: Purple Dildo 11: Small White Vibrator 12: Large White Vibrator 13: Silver Vibrator 14: Flowers 15: Cane 16: Frag Grenade");
		SendClientMessage(playerid, COLOR_GREY, "17: Tear Gas 18: Molotov Cocktail 19: Vehicle Missile 20: Hydra Flare 21: Jetpack 22: 9mm 23: Silenced 9mm 24: Desert Eagle 25: Shotgun");
		SendClientMessage(playerid, COLOR_GREY, "26: Sawnoff Shotgun 27: SPAS-12 28: Micro SMG (Mac 10) 29: SMG (MP5) 30: AK-47 31: M4 32: Tec9 33: Rifle");
		SendClientMessage(playerid, COLOR_GREY, "25: Shotgun 34: Sniper Rifle 35: Rocket Launcher 36: HS Rocket Launcher 37: Flamethrower 38: Minigun 39: Satchel Charge");
		SendClientMessage(playerid, COLOR_GREY, "40: Detonator 41: Spraycan 42: Fire Extinguisher 43: Camera 44: Nightvision Goggles 45: Infared Goggles 46: Parachute");
		SendClientMessage(playerid, COLOR_GREEN, "_______________________________________");

		return 1;
	}
	if(gunid < 0 || gunid > 46 || gunid == 19 || gunid == 20 || gunid == 21) return SendClientMessage(playerid, COLOR_GREY, "Invalid weapon id.");
	GiveDodWeapon(gunid, ammo, distance);
	format(string, sizeof(string), "%s has givin everyone online gun %s with %d ammo.", RPN(playerb), RWN(gunid), ammo);
	SendClientMessageToAll(playerid, COLOR_WHITE, string);
	return 1;
}
Reply
#2

you have a function GiveDodWeapon that shuld give the weapon in distance.. you can make something like

pawn Код:
CMD:gunnear(playerid, params[])
{
    new playerb, gunid, ammo, string[128], Float:distance;
    if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You need to login first before using any command.");
    if(PlayerInfo[playerid][pAdmin] < 4) return SendClientMessage(playerid, COLOR_GREY, "You are not authorized to use this command.");
    if(!aDuty[playerid]) return SendClientMessage(playerid, COLOR_GREY, "You are not on Admin Duty.");
    if(sscanf(params, "iif", gunid, ammo, distance))
    {
        SendClientMessage(playerid, COLOR_WHITE, "[Usage]: /unnear [gunid] [ammo] [distance]");
        SendClientMessage(playerid, COLOR_GREEN, "_______________________________________");
        SendClientMessage(playerid, COLOR_GREY, "1: Brass Knuckles 2: Golf Club 3: Nite Stick 4: Knife 5: Baseball Bat 6: Shovel 7: Pool Cue 8: Katana 9: Chainsaw");
        SendClientMessage(playerid, COLOR_GREY, "10: Purple Dildo 11: Small White Vibrator 12: Large White Vibrator 13: Silver Vibrator 14: Flowers 15: Cane 16: Frag Grenade");
        SendClientMessage(playerid, COLOR_GREY, "17: Tear Gas 18: Molotov Cocktail 19: Vehicle Missile 20: Hydra Flare 21: Jetpack 22: 9mm 23: Silenced 9mm 24: Desert Eagle 25: Shotgun");
        SendClientMessage(playerid, COLOR_GREY, "26: Sawnoff Shotgun 27: SPAS-12 28: Micro SMG (Mac 10) 29: SMG (MP5) 30: AK-47 31: M4 32: Tec9 33: Rifle");
        SendClientMessage(playerid, COLOR_GREY, "25: Shotgun 34: Sniper Rifle 35: Rocket Launcher 36: HS Rocket Launcher 37: Flamethrower 38: Minigun 39: Satchel Charge");
        SendClientMessage(playerid, COLOR_GREY, "40: Detonator 41: Spraycan 42: Fire Extinguisher 43: Camera 44: Nightvision Goggles 45: Infared Goggles 46: Parachute");
        SendClientMessage(playerid, COLOR_GREEN, "_______________________________________");

        return 1;
    }
    if(gunid < 0 || gunid > 46 || gunid == 19 || gunid == 20 || gunid == 21) return SendClientMessage(playerid, COLOR_GREY, "Invalid weapon id.");
    new Float:pos[3];
    GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
    for(new i=0; i != MAX_PLAYERS; i++) {
        if(IsPlayerConnected(i) && IsPlayerInRangeOfPoint(i,distance, pos[0], pos[1], pos[2])) {
            GivePlayerWeapon(i,gunid,ammo);
        }
    }
    format(string, sizeof(string), "%s has givin everyone online gun %s with %d ammo with %f range from his position.", RPN(playerb), RWN(gunid), ammo, distance);
    SendClientMessageToAll(playerid, COLOR_WHITE, string);
    return 1;
}

EDIT: i just make some changes with float etc jsut take a look
Reply
#3

Now my anti cheat thinks it is a hacked weapon

Anti cheat code
Код:
// Weapon Anticheat
	    if(IsPlayerLoggedIn(playerid) && !GunsBeingRemoved[playerid] && FalseBan[playerid])
	    {
		    if(GetPlayerWeapon(playerid) != PlayerInfo[playerid][pWeapon][0] && GetPlayerWeapon(playerid) != PlayerInfo[playerid][pWeapon][1] && GetPlayerWeapon(playerid) != PlayerInfo[playerid][pWeapon][2] && GetPlayerWeapon(playerid) != PlayerInfo[playerid][pWeapon][3] &&
			GetPlayerWeapon(playerid) != PlayerInfo[playerid][pWeapon][4] && GetPlayerWeapon(playerid) != PlayerInfo[playerid][pWeapon][5] && GetPlayerWeapon(playerid) != PlayerInfo[playerid][pWeapon][6] && GetPlayerWeapon(playerid) != PlayerInfo[playerid][pWeapon][7] &&
			GetPlayerWeapon(playerid) != PlayerInfo[playerid][pWeapon][8] && GetPlayerWeapon(playerid) != PlayerInfo[playerid][pWeapon][9] && GetPlayerWeapon(playerid) != PlayerInfo[playerid][pWeapon][10] && GetPlayerWeapon(playerid) != PlayerInfo[playerid][pWeapon][11] && GetPlayerWeapon(playerid) != PlayerInfo[playerid][pWeapon][12] &&
			GetPlayerWeapon(playerid) != EventWep[0] && GetPlayerWeapon(playerid) != EventWep[1] && GetPlayerWeapon(playerid) != EventWep[2])
		    {
		        if(GetPlayerState(playerid) != PLAYER_STATE_EXIT_VEHICLE || GetPlayerState(playerid) != PLAYER_STATE_ENTER_VEHICLE_DRIVER || GetPlayerState(playerid) != PLAYER_STATE_ENTER_VEHICLE_PASSENGER)
		        {
		            if(GetPlayerWeapon(playerid) != 46)
		            {
				        new string[128];
		                format(string, sizeof(string), "AdmWarn: %s has been AUTO-VIEW-CHANGED by GOD, reason: Possible Weapon Hacks (%s)", RPN(playerid), RWN(GetPlayerWeapon(playerid)));
						SendAdminMessage(COLOR_DARKRED, 1, string);
		                /*Log("logs/ban.log", string);
						new file[32];
						format(file, sizeof(file), "users/%s.ini", RPNU(playerid));
						format(string, sizeof(string), "Weapon Hacks (%s)", RWN(GetPlayerWeapon(playerid)));
						dini_Set(file, "Cash", string);
						dini_Set(file, "BannedBy", "AutoBan");
						PlayerInfo[playerid][pBanned] = 1;
						AddBan(playerid);*/
						SetPlayerVirtualWorld(playerid, 5);
						/*SetTimerEx("kickbug", 5000, false, "i", playerid);*/
					}
				}
		    }
	    }
	    if(GunsBeingRemoved[playerid]) GunsBeingRemoved[playerid] = 0;
	}
	return 1;
}
/gunnear command
Код:
CMD:gunnear(playerid, params[])
{
    new playerb, gunid, ammo, string[128], distance;
    if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You need to login first before using any command.");
    if(PlayerInfo[playerid][pAdmin] < 4) return SendClientMessage(playerid, COLOR_GREY, "You are not authorized to use this command.");
    if(!aDuty[playerid]) return SendClientMessage(playerid, COLOR_GREY, "You are not on Admin Duty.");
    if(sscanf(params, "iii", gunid, ammo, distance))
    {
        SendClientMessage(playerid, COLOR_WHITE, "[Usage]: /unnear [gunid] [ammo] [distance]");
        SendClientMessage(playerid, COLOR_GREEN, "_______________________________________");
        SendClientMessage(playerid, COLOR_GREY, "1: Brass Knuckles 2: Golf Club 3: Nite Stick 4: Knife 5: Baseball Bat 6: Shovel 7: Pool Cue 8: Katana 9: Chainsaw");
        SendClientMessage(playerid, COLOR_GREY, "10: Purple Dildo 11: Small White Vibrator 12: Large White Vibrator 13: Silver Vibrator 14: Flowers 15: Cane 16: Frag Grenade");
        SendClientMessage(playerid, COLOR_GREY, "17: Tear Gas 18: Molotov Cocktail 19: Vehicle Missile 20: Hydra Flare 21: Jetpack 22: 9mm 23: Silenced 9mm 24: Desert Eagle 25: Shotgun");
        SendClientMessage(playerid, COLOR_GREY, "26: Sawnoff Shotgun 27: SPAS-12 28: Micro SMG (Mac 10) 29: SMG (MP5) 30: AK-47 31: M4 32: Tec9 33: Rifle");
        SendClientMessage(playerid, COLOR_GREY, "25: Shotgun 34: Sniper Rifle 35: Rocket Launcher 36: HS Rocket Launcher 37: Flamethrower 38: Minigun 39: Satchel Charge");
        SendClientMessage(playerid, COLOR_GREY, "40: Detonator 41: Spraycan 42: Fire Extinguisher 43: Camera 44: Nightvision Goggles 45: Infared Goggles 46: Parachute");
        SendClientMessage(playerid, COLOR_GREEN, "_______________________________________");

        return 1;
    }
    if(gunid < 0 || gunid > 46 || gunid == 19 || gunid == 20 || gunid == 21) return SendClientMessage(playerid, COLOR_GREY, "Invalid weapon id.");
    new Float:pos[3];
    GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
    for(new i=0; i != MAX_PLAYERS; i++) {
    if(IsPlayerInRangeOfPoint(i,distance, pos[0], pos[1], pos[2])) {
    	GivePlayerWeapon(i,gunid,ammo);
        }
    }
    return 1;
}
Reply
#4

How is your GivePlayerWeapon function with your anticheat?

something like GiveSafePlayerWeapon ? jsut replace GivePlayerWeapon(i,gunid,ammo); with this function
Reply
#5

Hmmm... What do you mean?
Reply
#6

What he means is Anticheat uses it's own GivePlayerWeapon() weapon function to keep track of hacked weapons. So you need to use that function so your anticheat can process/keep track of a players weapons correctly.
Reply
#7

You mean this?

Код:
stock GiveDodWeapon(playerid, weaponid, ammo)
{
	GunsBeingRemoved[playerid] = 1;
	PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
	if(weaponid == 0 || weaponid == 1)
	{ // Slot 0
	    GunsBeingRemoved[playerid] = 1;
	    PlayerInfo[playerid][pWeapon][0] = weaponid;
	    GunsBeingRemoved[playerid] = 1;
	}
	else if(weaponid == 2 || weaponid == 3 || weaponid == 4 || weaponid == 5 || weaponid == 6 || weaponid == 7 || weaponid == 8 || weaponid == 9)
	{ // Slot 1
		GunsBeingRemoved[playerid] = 1;
	    PlayerInfo[playerid][pWeapon][1] = weaponid;
	    GunsBeingRemoved[playerid] = 1;
	}
	else if(weaponid == 22 || weaponid == 23 || weaponid == 24)
	{ // Slot 2
	    GunsBeingRemoved[playerid] = 1;
	    PlayerInfo[playerid][pWeapon][2] = weaponid;
	    GunsBeingRemoved[playerid] = 1;
	}
	else if(weaponid == 25 || weaponid == 26 || weaponid == 27)
	{ // Slot 3
	    GunsBeingRemoved[playerid] = 1;
	    PlayerInfo[playerid][pWeapon][3] = weaponid;
	    GunsBeingRemoved[playerid] = 1;
	}
	else if(weaponid == 28 || weaponid == 29 || weaponid == 32)
	{ // Slot 4
	    GunsBeingRemoved[playerid] = 1;
	    PlayerInfo[playerid][pWeapon][4] = weaponid;
	    GunsBeingRemoved[playerid] = 1;
	}
	else if(weaponid == 30 || weaponid == 31)
	{ // Slot 5
	    GunsBeingRemoved[playerid] = 1;
	    PlayerInfo[playerid][pWeapon][5] = weaponid;
	    GunsBeingRemoved[playerid] = 1;
	}
	else if(weaponid == 33 || weaponid == 34)
	{ // Slot 6
	    GunsBeingRemoved[playerid] = 1;
	    PlayerInfo[playerid][pWeapon][6] = weaponid;
	    GunsBeingRemoved[playerid] = 1;
	}
	else if(weaponid == 35 || weaponid == 36 || weaponid == 37 || weaponid == 38)
	{ // Slot 7
	    GunsBeingRemoved[playerid] = 1;
	    PlayerInfo[playerid][pWeapon][7] = weaponid;
	    GunsBeingRemoved[playerid] = 1;
	}
	else if(weaponid == 16 || weaponid == 17 || weaponid == 18 || weaponid == 39)
	{ // Slot 8
	    GunsBeingRemoved[playerid] = 1;
	    PlayerInfo[playerid][pWeapon][8] = weaponid;
	    GunsBeingRemoved[playerid] = 1;
	}
	else if(weaponid == 41 || weaponid == 42 || weaponid == 43)
	{ // Slot 9
	    GunsBeingRemoved[playerid] = 1;
	    PlayerInfo[playerid][pWeapon][9] = weaponid;
	    GunsBeingRemoved[playerid] = 1;
	}
	else if(weaponid == 10 || weaponid == 11 || weaponid == 12 || weaponid == 13 || weaponid == 14 || weaponid == 15)
	{ // Slot 10
	    GunsBeingRemoved[playerid] = 1;
	    PlayerInfo[playerid][pWeapon][10] = weaponid;
	    GunsBeingRemoved[playerid] = 1;
	}
	else if(weaponid == 44 || weaponid == 45 || weaponid == 46)
	{ // Slot 11
	    GunsBeingRemoved[playerid] = 1;
	    PlayerInfo[playerid][pWeapon][11] = weaponid;
	    GunsBeingRemoved[playerid] = 1;
	}
	else if(weaponid == 40)
	{ // Slot 12
	    GunsBeingRemoved[playerid] = 1;
	    PlayerInfo[playerid][pWeapon][12] = weaponid;
	    GunsBeingRemoved[playerid] = 1;
	}
	GivePlayerWeapon(playerid, weaponid, ammo);
	return 1;
}
Reply
#8

That looks like it I believe.
Reply
#9

Now what would I do? haha
Reply
#10

Use GiveDodWeapon() instead of GivePlayerWeapon()
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)