---
title: "OnPlayerWeaponShot | open.mp"
description: "Este callback se llama cuando un jugador efectúa un disparo de un arma."
canonical: https://omp.itsneufox.com/es/docs/scripting/callbacks/OnPlayerWeaponShot
language: es
---

# OnPlayerWeaponShot

## Descripción

Este callback se llama cuando un jugador efectúa un disparo de un arma. Solo soporta armas que usen balas. Sólo soporta drive-by por parte del pasajero (no drive-by del conductor, tampoco disparos de seasparrow / hunter).

| Nombre | Descripción |
| --- | --- |
| playerid | El ID del jugador que disparó un arma. |
| WEAPON:weaponid | El ID del [arma](https://omp.itsneufox.com/es/docs/scripting/resources/weaponids) que usó el jugador para disparar. |
| BULLET\_HIT\_TYPE:hittype | El [tipo](https://omp.itsneufox.com/es/docs/scripting/resources/bullethittypes) de cosa a la que impactó el disparo (nada, jugador, vehículo, o objeto de jugador). |
| hitid | El ID del jugador, vehículo, o objeto de jugador al que el disparo impactó. |
| Float:fX | La coordenada X en la que golpeó el disparo. |
| Float:fY | La coordenada Y en la que golpeó el disparo. |
| Float:fZ | La coordenada Z en la que golpeó el disparo. |

## Devoluciones

0 - Prevendrá a otros filterscripts de recibir este callback.

1 - Indica que este callback será pasado al siguiente filterscript.

Siempre se llama primero en filterscripts.

## Ejemplos

```c
public OnPlayerWeaponShot(playerid, WEAPON:weaponid, BULLET_HIT_TYPE:hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
    new szString[144];
    format(szString, sizeof(szString), "Arma %i disparada. hittype: %i  hitid: %i   pos: %f, %f, %f", weaponid, hittype, hitid, fX, fY, fZ);
    SendClientMessage(playerid, -1, szString);
    return 1;
}
```

## Notas

nota

Este callback sólo se llama cuando lag compensation está activado. Si hittype es:

-   `BULLET_HIT_TYPE_NONE`: Los parámetros fX, fY y fZ son coordenadas normales, devolverá 0.0 para coordenadas si nada fue impactado (ej. objeto lejano que la bala no puede alcanzar);
-   Otros: Los parámetros fX, fY y fZ son compensaciones relativas al hitid.

tip

[GetPlayerLastShotVectors](https://omp.itsneufox.com/es/docs/scripting/functions/GetPlayerLastShotVectors) puede ser usado en este callback para obtener información vectorial más detallada de la bala.

aviso

Bugs Conocido(s):

-   No se llama si disparaste en un vehículo como el conductor o si estás mirando hacia atrás con el apuntado activado (disparando hacia el aire).
-   Se llama como `BULLET_HIT_TYPE_VEHICLE` con el hitid correcto (el vehicleid del vehículo impactado) si estás disparando a un jugador que está en un vehículo. Este no se va a llamar como `BULLET_HIT_TYPE_PLAYER` en absoluto.
-   Parcialmente arreglado en SA-MP 0.3.7: Si información de armas (weapondata) falsa en eviada por un jugador malicioso, los clientes de otros jugadores pueden congelarse o crashear. Para combatir esto, comprobar si el weaponid reportado es capaz de disparar balas.

## Funciones Relacionadas

-   [GetPlayerLastShotVectors](https://omp.itsneufox.com/es/docs/scripting/functions/GetPlayerLastShotVectors): Devuelve el vector del último disparo que efectuó el jugador.
