//------------------------------------------------------------------------------
//
// Drop Weapon Filter Script v1.1
// Designed for SA-MP v0.2
//
// Created by Flyin
// Modified by uncajesse
//
// http://forum.sa-mp.com/index.php?topic=19969
//
//------------------------------------------------------------------------------
#include <a_samp>
public OnFilterScriptInit()
{
print("\n**********************\n*Weapon Drop *\n**********************\n");
return 1;
}
public OnFilterScriptExit()
{
print("\n**********************\n*Weapon Drop*\n* UnLoaded *\n**********************\n");
return 1;
}
// * main defines *
new weapmod[600] = {1212,331,333,334,335,336,337,338,339,341,321,322,323,324,
325,326,342,343,344,345,345,345,346,347,348,349,350,351,352,353,355,356,372,357,
358,359,360,361,362,363,364,365,366,367,368,369,371};
new PickUpMoney[101] = {false, ...};
new PickUpMoneyAmmount[101] = {0, ...}; // added by uncajesse
new PickUpWeaponSlot[101] = {0, ...}; // added by uncajesse
new PickUpWeaponAmmo[101] = {0, ...}; // added by uncajesse
new DropPick[101] = {false, ...};
forward Float:GetPlayerArmourEx(p);
Float:GetPlayerArmourEx(p)
{
new Float:a;
GetPlayerArmour(p, a);
return a;
}
// * OnPlayerDeath *
public OnPlayerDeath(playerid, killerid, reason)
{
// defines
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
new weap[200];
new ammo;
new temp;
new s[256];
new PX;
new PY;
new PickUpMoneyBit = false; // added by uncajesse
// loop through weapon slots
for(new i=0;i<15;i++){
// placing pickups
if(i<12){
GetPlayerWeaponData(playerid, i, weap[i], ammo);
if(weapmod[weap[i]] == 1212){
PickUpMoneyBit=true; // added by uncajesse
} else {
// calculating random pos near to player
format(s, 256 ,"%.0f", X);
temp = strval(s);
PX = random((temp+2)-(temp-2))+(temp-2);
format(s, 256 ,"%.0f", Y);
temp = strval(s);
PY = random((temp+2)-(temp-2))+(temp-2);
// create pickup
new pickid = CreatePickup(weapmod[weap[i]], 4,PX, PY, Z);
PickUpWeaponSlot[pickid]=i;
PickUpWeaponAmmo[pickid]=ammo;
DropPick[pickid]=true;
PickUpMoney[pickid]=false; // added by uncajesse
}
}
if(i==13){
// health drop, removed
// why drop health when the player is dead?
}
if(i==14){
if(GetPlayerArmourEx(playerid)>0.0){
// calculating random pos near to player
format(s, 256 ,"%.0f", X);
temp = strval(s);
PX = random((temp+2)-(temp-2))+(temp-2);
format(s, 256 ,"%.0f", Y);
temp = strval(s);
PY = random((temp+2)-(temp-2))+(temp-2);
// create pickup
new pickid = CreatePickup(1242, 4,PX, PY, Z);
PickUpWeaponSlot[pickid]=14;
PickUpWeaponAmmo[pickid]=0;
DropPick[pickid]=true;
PickUpMoney[pickid]=false; // added by uncajesse
} else {
PickUpMoneyBit=true; // added by uncajesse
}
}
if(i==15){
PickUpMoneyBit=true; // added by uncajesse
}
}
// create money pickup
if(PickUpMoneyBit)
{ // added by uncajesse
// calculating random pos near to player
format(s, 256 ,"%.0f", X);
temp = strval(s);
PX = random((temp+2)-(temp-2))+(temp-2);
format(s, 256 ,"%.0f", Y);
temp = strval(s);
PY = random((temp+2)-(temp-2))+(temp-2);
// placing money pickup
new pickid = CreatePickup(1212, 4,PX, PY, Z);
PickUpMoney[pickid]=true;
PickUpMoneyAmmount[pickid]=GetPlayerMoney(playerid);
PickUpWeaponAmmo[pickid]=0;
DropPick[pickid]=true;
}
// end placing pickups
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
if(PickUpMoney[pickupid]){
GivePlayerMoney(playerid,PickUpMoneyAmmount[pickupid]); // added by uncajesse
}
if(PickUpWeaponAmmo[pickupid]>0){
new currentslotweapon, currentslotammo;
GetPlayerWeaponData(playerid,PickUpWeaponSlot[pickupid],currentslotweapon,currentslotammo);
new newslotammo = currentslotammo + PickUpWeaponAmmo[pickupid]; // added by uncajesse
SetTimerEx("PlayerPickUpPickupSetAmmo", 500, 0, "d", playerid, PickUpWeaponSlot[pickupid], newslotammo); // added by uncajesse
}
if(DropPick[pickupid]){
DropPick[pickupid]=false; // added by uncajesse
PickUpMoney[pickupid]=false; // added by uncajesse
SetTimerEx("PickDestroy", 500, 0, "d", pickupid); // Destroying pickups
}
return 1;
}
// set player's ammo, added by uncajesse
forward PlayerPickUpPickupSetAmmo(playerid, slotid, slotammo);
public PlayerPickUpPickupSetAmmo(playerid, slotid, slotammo)
{
SetPlayerAmmo(playerid,slotid,slotammo);
}
forward PickDestroy(o);
public PickDestroy(o)DestroyPickup(o); // Destroy pickup ! Muha xD!
// the end