[HELP] Command '/gunnear [gunid] [ammo] [distance]' -
MichaelWharton101 - 11.04.2013
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;
}
Re: [HELP] Command '/gunnear [gunid] [ammo] [distance]' -
iJumbo - 11.04.2013
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
Re: [HELP] Command '/gunnear [gunid] [ammo] [distance]' -
MichaelWharton101 - 11.04.2013
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;
}
Re: [HELP] Command '/gunnear [gunid] [ammo] [distance]' -
iJumbo - 11.04.2013
How is your GivePlayerWeapon function with your anticheat?
something like GiveSafePlayerWeapon ? jsut replace GivePlayerWeapon(i,gunid,ammo); with this function
Re: [HELP] Command '/gunnear [gunid] [ammo] [distance]' -
MichaelWharton101 - 11.04.2013
Hmmm... What do you mean?
Re: [HELP] Command '/gunnear [gunid] [ammo] [distance]' -
Pottus - 11.04.2013
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.
Re: [HELP] Command '/gunnear [gunid] [ammo] [distance]' -
MichaelWharton101 - 11.04.2013
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;
}
Re: [HELP] Command '/gunnear [gunid] [ammo] [distance]' -
Pottus - 11.04.2013
That looks like it I believe.
Re: [HELP] Command '/gunnear [gunid] [ammo] [distance]' -
MichaelWharton101 - 11.04.2013
Now what would I do? haha
Re: [HELP] Command '/gunnear [gunid] [ammo] [distance]' -
Pottus - 11.04.2013
Use GiveDodWeapon() instead of GivePlayerWeapon()