Clique Aqui‎ para ler as Regras do xat.

[FS]Detectar Tiro ao Objeto

[FS]Detectar Tiro ao Objeto

É um simples detector de tiros e um determinado objeto
Deixei a configuração da posição de forma fácil e rápido.

pawn Code:


#include a_samp

// ============ [ Posição do Objeto ] =========

new Float:X_OBJETO  =       128.7418;
new Float:Y_OBJETO  =       -85.9495;
#define TAMANHO_OBJETO      0.4

// =========== [ Criar Objeto para teste ] ========

main()
{
    CreateObject(2587, 128.7418,-85.9495,1.4297, 0.0, 0.0, 96.0);
    return true;
}

// =========== [ Dar Arma para Teste ] ========

public OnPlayerSpawn(playerid)
{
    GivePlayerWeapon(playerid, 32, 400);
    return true;
}

// =========== [ Detectar Tiro ] ================

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if((newkeys & KEY_FIRE || oldkeys & KEY_FIRE ) &&  IsPlayerInRangeOfPoint(playerid, 200.0 , X_OBJETO , Y_OBJETO , 0.0))
    {
       
        static
            Float:xPos,
            Float:yPos,
            Float:zPos,
            Float:distancia,
            Float:aPos;

        GetPlayerPos(playerid, xPos, yPos, zPos);
        GetPlayerFacingAngle(playerid, aPos);

        distancia = floatsqroot(floatpower(floatabs(xPos-X_OBJETO), 2) + floatpower(floatabs(yPos-Y_OBJETO), 2));
        if(distancia <  100.0)
        {
            xPos += (distancia * floatsin(-aPos, degrees)),
            yPos += (distancia * floatcos(-aPos, degrees));
            distancia = floatsqroot(floatpower(floatabs(xPos-X_OBJETO), 2) + floatpower(floatabs(yPos-Y_OBJETO), 2));
        }
       
        if(TAMANHO_OBJETO > distancia)
        {
            printf("Jogador %d acertou em um objeto (Pontuação: %f)", playerid, distancia);
        }
    }
    return true;
}

// Criado por Bruno da Silva


Video:

Creditos:

Bruno da Silva

Download:

Pastebin: Clique Aqui

Ou:




Você vai gostar também...

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *