Weapon drop.. - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (
https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (
https://sampforum.blast.hk/forumdisplay.php?fid=12)
+---- Forum: Help Archive (
https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: Weapon drop.. (
/showthread.php?tid=95694)
Weapon drop.. -
_Vortex - 04.09.2009
I'm using Double-O-Seven's weapon drop and I have a problem..
The weapons don't show for ID 0..
Here's the code:
Код:
#define MAX_PICKUPS 400
#define PICKUP_TYPE_WEAPON 1
new PickupType[MAX_PICKUPS];
new PickupWeapon[MAX_PICKUPS];
new PickupAmmo[MAX_PICKUPS];
new DestroyPickupTimer[MAX_PICKUPS];
forward DropWeapons(playerid);
public DropWeapons(playerid)
{
if(IsPlayerConnected(playerid))
{
#define MAX 300
new weaponid,ammo,modelid,pickupid;
new success=false;
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
for(new i=1;i<12;i++)
{
GetPlayerWeaponData(playerid,i,weaponid,ammo);
if(weaponid)
{
if(ammo>MAX)
ammo=MAX;
modelid=GetWeaponModel(weaponid);
if(modelid)
{
pickupid=CreatePickup(modelid,1,x+(random(10)-random(10)),y+(random(10)-random(10)),z);
PickupType[pickupid]=PICKUP_TYPE_WEAPON;
PickupWeapon[pickupid]=weaponid;
PickupAmmo[pickupid]=ammo;
DestroyPickupTimer[pickupid]=SetTimerEx("DestroyWeaponPickup",10000+random(1000),false,"i",pickupid);
success=true;
}
}
}
ResetPlayerWeapons(playerid);
#undef MAX
return success;
}
return 0;
}
forward DestroyWeaponPickup(pickupid);
public DestroyWeaponPickup(pickupid)
{
if(PickupType[pickupid]==PICKUP_TYPE_WEAPON)
{
PickupType[pickupid]=PICKUP_TYPE_NONE;
PickupWeapon[pickupid]=0;
PickupAmmo[pickupid]=0;
DestroyPickup(pickupid);
return 1;
}
return 0;
}
stock GetWeaponModel(weaponid)
{
switch(weaponid)
{
case 1:
return 331;
case 2..8:
return weaponid+331;
case 9:
return 341;
case 10..15:
return weaponid+311;
case 16..18:
return weaponid+326;
case 22..29:
return weaponid+324;
case 30,31:
return weaponid+325;
case 32:
return 372;
case 33..45:
return weaponid+324;
case 46:
return 371;
}
return 0;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
switch(PickupType[pickupid])
{
case PICKUP_TYPE_WEAPON:
{
GivePlayerWeapon(playerid,PickupWeapon[pickupid],PickupAmmo[pickupid]);
KillTimer(DestroyPickupTimer[pickupid]);
DestroyWeaponPickup(pickupid);
}
}
return 1;
}
Re: Weapon drop.. -
pooooolo - 15.11.2009
Код:
#include <a_samp>
#define PICKUP_TYPE_NONE 0
#define PICKUP_TYPE_WEAPON 1
new PickupType[MAX_PICKUPS];
new PickupWeapon[MAX_PICKUPS];
new PickupAmmo[MAX_PICKUPS];
new DestroyPickupTimer[MAX_PICKUPS];
forward DropWeapons(playerid);
public DropWeapons(playerid)
{
if(IsPlayerConnected(playerid))
{
#define MAX 300
new weaponid,ammo,modelid,pickupid;
new success=false;
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
for(new i=1;i<12;i++)
{
GetPlayerWeaponData(playerid,i,weaponid,ammo);
if(weaponid)
{
if(ammo>MAX)
ammo=MAX;
modelid=GetWeaponModel(weaponid);
if(modelid)
{
pickupid=CreatePickup(modelid,1,x+(random(10)-random(10)),y+(random(10)-random(10)),z);
PickupType[pickupid]=PICKUP_TYPE_WEAPON;
PickupWeapon[pickupid]=weaponid;
PickupAmmo[pickupid]=ammo;
DestroyPickupTimer[pickupid]=SetTimerEx("DestroyWeaponPickup",10000+random(1000),false,"i",pickupid);
success=true;
}
}
}
ResetPlayerWeapons(playerid);
#undef MAX
return success;
}
return 0;
}
forward DestroyWeaponPickup(pickupid);
public DestroyWeaponPickup(pickupid)
{
if(PickupType[pickupid]==PICKUP_TYPE_WEAPON)
{
PickupType[pickupid]=PICKUP_TYPE_NONE;
PickupWeapon[pickupid]=0;
PickupAmmo[pickupid]=0;
DestroyPickup(pickupid);
return 1;
}
return 0;
}
stock GetWeaponModel(weaponid)
{
switch(weaponid)
{
case 1:
return 331;
case 2..8:
return weaponid+331;
case 9:
return 341;
case 10..15:
return weaponid+311;
case 16..18:
return weaponid+326;
case 22..29:
return weaponid+324;
case 30,31:
return weaponid+325;
case 32:
return 372;
case 33..45:
return weaponid+324;
case 46:
return 371;
}
return 0;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
switch(PickupType[pickupid])
{
case PICKUP_TYPE_WEAPON:
{
GivePlayerWeapon(playerid,PickupWeapon[pickupid],PickupAmmo[pickupid]);
KillTimer(DestroyPickupTimer[pickupid]);
DestroyWeaponPickup(pickupid);
}
}
return 1;
}
PLAY!!