Tava sem nada pra fazer aqui, e fiz uma include que pode ser util pra vocк.
imagen:
code:
pawn Код:
#include a_samp
/*
Include: @WeaponPickup
by dimmy_scarface
//------- natives -----------
native CreateWeaponPickup(armaid, balas,preco, Float:px, Float:py, Float:pz, bool:destroy = true);
native DestrroyWeaponPickup(pickupid);
native bool:GetWeaponPickupDestroy(pickupid);
native SetWeaponPickupDestroy(pickupid, bool:destroy);
//-------- callbacks ---------*/
forward OnPlayerPickUpWeaponPickup(playerid, pickupid, arma, balas, money);
#define MAX_WEAPON_PICKUP 500
//-------- enum -----------//
enum w_pickup
{
PICKUP_ARMA,
PICKUP_BALAS,
PICKUP_MONEY,
Text3D:PICKUP_3D,
bool:PICKUP_DESTROY,
bool:PICKUP_CREATED
}
new w_p[MAX_WEAPON_PICKUP][w_pickup];
stock CreateWeaponPickup(armaid, balas, preco, Float:px, Float:py, Float:pz, bool:destroy = true)
{
new str@[24], str@@[100];
new pick = CreatePickup(armaid+324, 24, px, py, pz);
w_p[pick][PICKUP_ARMA] = armaid;
w_p[pick][PICKUP_BALAS] = balas;
GetWeaponName(armaid, str@, sizeof(str@));
format(str@@, sizeof str@@,
"Arma: {00cc00}%s\n\
{FFFFFF}Balas: {00cc00}%d\n\
R$%d", str@, balas, preco);
w_p[pick][PICKUP_3D] = Create3DTextLabel(str@@, -1, px, py, pz, 10.0, 0);
w_p[pick][PICKUP_CREATED] = true;
w_p[pick][PICKUP_DESTROY] = destroy;
w_p[pick][PICKUP_MONEY] = preco;
return pick;
}
stock SetWeaponPickupDestroy(pickupid, bool:destroy)
{
w_p[pickupid][PICKUP_DESTROY] = destroy;
return true;
}
stock bool:GetWeaponPickupDestroy(pickupid)
{
return w_p[pickupid][PICKUP_DESTROY];
}
stock DestrroyWeaponPickup(pickupid)
{
if(!w_p[pickupid][PICKUP_CREATED])
return true;
w_p[pickupid][PICKUP_CREATED] = false;
Delete3DTextLabel(w_p[pickupid][PICKUP_3D]);
DestroyPickup(pickupid);
return true;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
if(w_p[pickupid][PICKUP_CREATED])
{
new
StRiNg[74], strinG_[24];
GetWeaponName(w_p[pickupid][PICKUP_ARMA], strinG_, sizeof strinG_);
GivePlayerWeapon(playerid,w_p[pickupid][PICKUP_ARMA], w_p[pickupid][PICKUP_BALAS]);
format(StRiNg, sizeof StRiNg,
"SERVER: \
Vocк adquiriu uma %s \
com %d balas, \
por $%d",
strinG_,
w_p[pickupid][PICKUP_BALAS],
w_p[pickupid][PICKUP_MONEY]);
SendClientMessage(playerid, -1, StRiNg);
GivePlayerMoney(playerid, -w_p[pickupid][PICKUP_MONEY]);
if(w_p[pickupid][PICKUP_DESTROY])
{
DestrroyWeaponPickup(pickupid);
}
CallLocalFunction("OnPlayerPickUpWeaponPickup", "dddd", playerid, pickupid, w_p[pickupid][PICKUP_ARMA], w_p[pickupid][PICKUP_BALAS],
w_p[pickupid][PICKUP_MONEY]);
}
return CallLocalFunction("WP_OnPlayerPickUpPickup", "dd", playerid, pickupid);
}
#if defined _ALS_OnPlayerPickUpPickup
#undef OnPlayerPickUpPickup
#else
#define _ALS_OnPlayerPickUpPickup
#endif
#define OnPlayerPickUpPickup WP_OnPlayerPickUpPickup
forward WP_OnPlayerPickUpPickup(playerid, pickupid);
exemplo:
PHP код:
CreateWeaponPickup(24, 500,1000, 1554.4180,-1675.5874,16.1953, true);
Neste caso o player receberб uma eagle, com 500 balas, e pagarб $1000 por elas.
Код:
O parametro 'bool:destroy' vocк define se o Pickup irб destruir ou nгo quando o player passar por cima.
true = Destruir;
false = nгo destruir;
Й bem simples, basta vocк criar elas no OnGameModeInit, ou em qualquer outro lugar.
Se encontrar algum bug, me avisa por MP.
Atй mais o/