SA-MP Forums

Go Back   SA-MP Forums > SA-MP Scripting and Plugins > Filterscripts

Reply
 
Thread Tools Display Modes
Old 27/01/2011, 02:56 AM   #1
PeteShag
Huge Clucker
 
PeteShag's Avatar
 
Join Date: Jan 2011
Location: Melbourne, Australia
Posts: 217
Reputation: 3
Default Drop Gun

Drop Gun

Description

You can drop a gun on the floor using the command /dropgun and pick it up using /pickupgun. Oh, it also drops your weapon on death.

Pic: http://i53.tinypic.com/2556heg.png

AMX: http://www.2shared.com/file/fRWgZyGm/dropgun.html
It's too small to put it on pastebin
Code:
// This is a comment.
// ^^lol a comment.
//=================//
#include <a_samp>// by SA-MP
#include <streamer>// by Incognito
#include <zcmd>// by Zeex
#include <foreach>// by y_Less
//=================//
#define MAX_DROP_ITEMS 1000//Change it to set the max weapons that can be dropped.
#define COLOR_ACTION 0xFFC0CBFF//Gay Pink Color
//=================//
new string[128], sendername[MAX_PLAYER_NAME], DropObject[MAX_DROP_ITEMS];
//=================//
enum dData
{
	DropGunAmmount[2],//ModelID & Bullets
	Float:DropGunPosX,
	Float:DropGunPosY,
	Float:DropGunPosZ,
	DropGunVWorld,
	DropGunInterior,
};
new DropInfo[MAX_DROP_ITEMS][dData];
//=================//
new GunObjectIDs[200] ={

   1575,  331, 333, 334, 335, 336, 337, 338, 339, 341, 321,	322, 323, 324, 325, 326, 342, 343, 344, -1,  -1 , -1 ,
   346, 347, 348, 349, 350, 351, 352, 353, 355, 356, 372, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
   368, 369, 1575
};
//=================//
public OnFilterScriptInit()
{
	print("\n--------------------------------------");
	print("Drop Gun FS by a fat guy.....Loaded!!!");
	print("--------------------------------------\n");
	return 1;
}
//=================//
stock GetGunObjectID(WeaponID)
{
	if (WeaponID < 0 || WeaponID > 64)
	{
	    return 1575;
	}
	return GunObjectIDs[WeaponID];
}
//=================//
stock DropGun(playerid, GunID, GunAmmo, Float:X, Float:Y, Float:Z, world, interior)
{
	new name[MAX_PLAYER_NAME];
	GetPlayerName(playerid,name,sizeof(name));
    if(GunID != 0 && GunAmmo != 0)
    {
	    for(new i = 0; i < sizeof(DropInfo); i++)
  	    {
  	        if(DropInfo[i][DropGunPosX] == 0.0 && DropInfo[i][DropGunPosY] == 0.0 && DropInfo[i][DropGunPosZ] == 0.0)
  	        {
  	            DropInfo[i][DropGunAmmount][0] = GunID;
  	            DropInfo[i][DropGunAmmount][1] = GunAmmo;
  	            DropInfo[i][DropGunPosX] = X;
  	            DropInfo[i][DropGunPosY] = Y;
  	            DropInfo[i][DropGunPosZ] = Z;
  	            DropInfo[i][DropGunVWorld] = world;
  	            DropInfo[i][DropGunInterior] = interior;
  	            DropObject[i] = CreateDynamicObject(GetGunObjectID(GunID), X, Y, Z-1, 80.0, 0.0, 0.0, world);
	            return 1;
  	        }
	    }
        return 1;
    }
    return 1;
}
//=================//
stock RemovePlayerWeapon(playerid, weaponid)//Credits to Xalphox
{
	if(!IsPlayerConnected(playerid) || weaponid < 0 || weaponid > 50)
	    return;
	new saveweapon[13], saveammo[13];
	for(new slot = 0; slot < 13; slot++)
	    GetPlayerWeaponData(playerid, slot, saveweapon[slot], saveammo[slot]);
	ResetPlayerWeapons(playerid);
	for(new slot; slot < 13; slot++)
	{
		if(saveweapon[slot] == weaponid || saveammo[slot] == 0)
			continue;
		GivePlayerWeapon(playerid, saveweapon[slot], saveammo[slot]);
	}

	GivePlayerWeapon(playerid, 0, 1);

}
//=================//
public OnFilterScriptExit()
{
	print("Drop Gun FS by a fat guy.....Unloaded :( ");
	return 1;
}
//=================//
public OnPlayerDeath(playerid, killerid, reason)
{
	new Float:X,Float:Y,Float:Z;
	GetPlayerPos(playerid, X, Y, Z);
	DropGun(playerid, GetPlayerWeapon(playerid),GetPlayerAmmo(playerid),X,Y,Z,GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid));
	return 1;
}
//=================//
command(dropgun, playerid, params[])
{
	new Float:X,Float:Y,Float:Z;
 	new GunID = GetPlayerWeapon(playerid);
    new GunAmmo = GetPlayerAmmo(playerid);
 	GetPlayerName(playerid, sendername, sizeof(sendername));
    GetPlayerPos(playerid, X, Y, Z);
    RemovePlayerWeapon(playerid, GunID);
 	DropGun(playerid, GunID,GunAmmo,X,Y,Z,GetPlayerVirtualWorld(playerid),GetPlayerInterior(playerid));
 	format(string, sizeof(string), "* %s drops his weapon to the pavement.", sendername);
   	SendLocalMessage(playerid, string, 10.0, COLOR_ACTION, COLOR_ACTION);
  	return 1;
}
//=================//
command(pickupgun, playerid, params[])
{
	for(new i = 0; i < sizeof(DropInfo); i++)
	{
		if (IsPlayerInRangeOfPoint(playerid, 2.0,DropInfo[i][DropGunPosX],DropInfo[i][DropGunPosY],DropInfo[i][DropGunPosZ]))
		{
			if(GetPlayerVirtualWorld(playerid) == DropInfo[i][DropGunVWorld] && GetPlayerInterior(playerid) == DropInfo[i][DropGunVWorld])
			{
   				GetPlayerName(playerid, sendername, sizeof(sendername));
         		DestroyDynamicObject(DropObject[i]);
          		DropInfo[i][DropGunPosX] = 0.0;
		    	DropInfo[i][DropGunPosY] = 0.0;
		    	DropInfo[i][DropGunPosZ] = 0.0;
				DropInfo[i][DropGunAmmount][0] = 0;
				DropInfo[i][DropGunAmmount][1] = 0;
				GivePlayerWeapon(playerid,DropInfo[i][DropGunAmmount][0],DropInfo[i][DropGunAmmount][1]);
				format(string, sizeof(string), "* %s picks up a weapon from the pavement.", sendername);
				SendLocalMessage(playerid, string, 10.0, COLOR_ACTION, COLOR_ACTION);
		    	return 1;
			}
		}
	}
	return 1;
}
//=================//
stock SendLocalMessage(playerid, msg[], Float:MessageRange, Range1color, Range2color)
{
	new Float: PlayerX, Float: PlayerY, Float: PlayerZ;
	GetPlayerPos(playerid, PlayerX, PlayerY, PlayerZ);
	foreach (Player, i)
	{
		if(IsPlayerInRangeOfPoint(i, MessageRange, PlayerX, PlayerY,PlayerZ))
		{
		    SendClientMessage(i, Range1color, msg);
		}
		else if(IsPlayerInRangeOfPoint(i, MessageRange/2.0, PlayerX, PlayerY,PlayerZ))
		{
		    SendClientMessage(i, Range2color, msg);
		}
	}
}


Credits

SA-MP Developers(Past, Current and future ones) - For making everything possible/
Incognito - Streamer Plugin http://forum.sa-mp.com/showthread.php?t=102865
Zeex - zcmd http://forum.sa-mp.com/showthread.php?t=91354
y_less - foreach http://forum.sa-mp.com/showthread.php?t=92679
Xalphox - RemovePlayerWeapon
Freshkilla(PR-RP) - Idea and no I did not use any part of you code.

Last edited by PeteShag; 27/01/2011 at 07:41 AM. Reason: Creditd
PeteShag is offline   Reply With Quote
Old 27/01/2011, 03:13 AM   #2
Lorenc_
High-roller
 
Lorenc_'s Avatar
 
Join Date: Jan 2010
Location: Australia
Posts: 4,272
Reputation: 1129
Default Re: Drop Gun

Nice work, easy and fun

Edit:


RemovePlayerWeapon(playerid, weaponid)

I think ryder made a function like that, you shud credit him
__________________
Join the best Cops And Robbers in SA-MP, today. svr.irresistiblegaming.com:7777

Lorenc_ is offline   Reply With Quote
Old 27/01/2011, 03:28 AM   #3
PeteShag
Huge Clucker
 
PeteShag's Avatar
 
Join Date: Jan 2011
Location: Melbourne, Australia
Posts: 217
Reputation: 3
Default Re: Drop Gun

Quote:
Originally Posted by Lorenc_ View Post
Nice work, easy and fun

Edit:


RemovePlayerWeapon(playerid, weaponid)

I think ryder made a function like that, you shud credit him
Xalphox actually, I forgot to add him, added him now.
PeteShag is offline   Reply With Quote
Old 27/01/2011, 03:56 AM   #4
Legit_V20
Little Clucker
 
Join Date: Jan 2011
Posts: 37
Reputation: 0
Default Re: Drop Gun

dude i dont have the includes except streamer where can i get them? besides a_samp of course
Legit_V20 is offline   Reply With Quote
Old 27/01/2011, 04:06 AM   #5
PeteShag
Huge Clucker
 
PeteShag's Avatar
 
Join Date: Jan 2011
Location: Melbourne, Australia
Posts: 217
Reputation: 3
Default Re: Drop Gun

http://forum.sa-mp.com/showthread.php?t=92679

http://forum.sa-mp.com/showthread.php?t=91354
PeteShag is offline   Reply With Quote
Old 27/01/2011, 04:11 AM   #6
Legit_V20
Little Clucker
 
Join Date: Jan 2011
Posts: 37
Reputation: 0
Default Re: Drop Gun

when i use foreach i get this when i compile it

C:\Users\Legit_V20\Desktop\GTASanAndreas\pawno\inc lude\foreach.inc(140) : fatal error 111: user error: "Please include a_samp or a_npc before foreach"


Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


1 Error.
Legit_V20 is offline   Reply With Quote
Old 27/01/2011, 04:12 AM   #7
Legit_V20
Little Clucker
 
Join Date: Jan 2011
Posts: 37
Reputation: 0
Default Re: Drop Gun

i dont see why an include is in pastebin?
Legit_V20 is offline   Reply With Quote
Old 27/01/2011, 04:18 AM   #8
PeteShag
Huge Clucker
 
PeteShag's Avatar
 
Join Date: Jan 2011
Location: Melbourne, Australia
Posts: 217
Reputation: 3
Default Re: Drop Gun

Quote:
Originally Posted by Legit_V20 View Post
when i use foreach i get this when i compile it

C:\Users\Legit_V20\Desktop\GTASanAndreas\pawno\inc lude\foreach.inc(140) : fatal error 111: user error: "Please include a_samp or a_npc before foreach"


Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


1 Error.
WTF Never seen that before.

Anyways here is the .amx, dunno why you can't compile it AMX: http://www.2shared.com/file/fRWgZyGm/dropgun.html

or just comment out foreach and change the last function to this


Code:
stock SendLocalMessage(playerid, msg[], Float:MessageRange, Range1color, Range2color)
{
    new Float: PlayerX, Float: PlayerY, Float: PlayerZ;
    GetPlayerPos(playerid, PlayerX, PlayerY, PlayerZ);
	for(new i = 0; i < MAX_PLAYERS; i ++ )
	{
		if(IsPlayerConnected(i))
		{
        	if(IsPlayerInRangeOfPoint(i, MessageRange, PlayerX, PlayerY,PlayerZ))
        	{
            	SendClientMessage(i, Range1color, msg);
        	}
        	else if(IsPlayerInRangeOfPoint(i, MessageRange/2.0, PlayerX, PlayerY,PlayerZ))
        	{
            	SendClientMessage(i, Range2color, msg);
        	}
        }
    }
}
PeteShag is offline   Reply With Quote
Old 27/01/2011, 04:31 AM   #9
Legit_V20
Little Clucker
 
Join Date: Jan 2011
Posts: 37
Reputation: 0
Default Re: Drop Gun

nevermind i fixed it lol thanks a lot for the script bro, its great
Legit_V20 is offline   Reply With Quote
Old 27/01/2011, 04:34 AM   #10
Legit_V20
Little Clucker
 
Join Date: Jan 2011
Posts: 37
Reputation: 0
Default Re: Drop Gun

thanks

Last edited by Legit_V20; 27/01/2011 at 04:46 AM. Reason: get rid of adv
Legit_V20 is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
/Drop gun when you die Karl1195 Help Archive 0 12/12/2010 01:53 PM
Weapon drop.. _Vortex Help Archive 1 15/11/2009 11:04 PM
0.3a FPS drop. agnestort Client Support 2 22/10/2009 12:52 PM
Money drop? killdahobo99 Help Archive 20 20/07/2009 12:54 AM


All times are GMT. The time now is 09:45 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.