public OnPlayerPickUpPickup(playerid, pickupid)
{
OnWeaponDropPickup(playerid, pickupid)
return 1;
}
stock OnWeaponDropPickup(playerid, pickupid)
{
for(new i=0; i<MAX_PLAYERS; i++)
{
for(new a=0; a<13; a++)
{
if(WeaponDrop[i][a] == pickupid)
{
WeaponDrop[i][a] = -1;
DestroyPickup(pickupid);
GivePlayerWeapon(playerid, WeaponData[i][a][0], WeaponData[i][a][1]);
WeaponData[i][a][0] = -1;
WeaponData[i][a][1] = -1;
}
}
if(WeaponDrop[i][13] == pickupid)
{
WeaponDrop[i][13] = -1000;
DestroyPickup(pickupid);
GivePlayerMoney(playerid, 1000);
WeaponData[i][13][0] = -1;
WeaponData[i][13][1] = -1;
}
}
return 1;
}
new player_Crouchbutton[MAX_PLAYERS];
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys & KEY_CROUCH) && !(oldkeys & KEY_CROUCH))
{
if(player_Crouchbutton[playerid] == 0)
{
player_Crouchbutton[playerid] = 1;
SetTimerEx("OnCrouchButton", 2000, false, "i", playerid);
}
}
}
forward OnCrouchButton(playerid);
public OnCrouchButton(playerid)
{
player_Crouchbutton[playerid] = 0;
}
stock OnWeaponDropPickup(playerid, pickupid)
{
for(new i=0; i<MAX_PLAYERS; i++)
{
for(new a=0; a<13; a++)
{
if(WeaponDrop[i][a] == pickupid && player_Crouchbutton[playerid] == 1)
{
WeaponDrop[i][a] = -1;
DestroyPickup(pickupid);
GivePlayerWeapon(playerid, WeaponData[i][a][0], WeaponData[i][a][1]);
WeaponData[i][a][0] = -1;
WeaponData[i][a][1] = -1;
}
}
if(WeaponDrop[i][13] == pickupid && player_Crouchbutton[playerid] == 1)
{
WeaponDrop[i][13] = -1000;
DestroyPickup(pickupid);
GivePlayerMoney(playerid, 1000);
WeaponData[i][13][0] = -1;
WeaponData[i][13][1] = -1;
}
}
return 1;
}
|
Not really. If your pickup type is 1, the callback gets called every moment your character updates when you keep standing in the pickup. That's why I told it's going to work only on pickup type 1. |