Pages

Ads 468x60px


[FilterScript] Detectar tiro ao objeto

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

Código - http://pastebin.com/t19Ci2g1
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 // [url]www.ips-team.blogspot.com[/url] // [url]www.ips-team.forumeiros.com[/url]

O Valor da variável distancia ali no printf será conforme o erro do player, se der 0.0 ele acertou perfeitamente caso dar 0.4 ele errou o tiro por pouco, depende bastante do tamanho do objeto

Por exemplo se você quer fazer um sistema de precisão coloque isto:
pawn Code:
printf("Precisão do Tiro: %d%", floatround(distancia * (100 / TAMANHO_OBJETO)) );

Vídeo de Demonstração

Criado por Bruno da Silva

- Data da criação do projeto foi a praticamente 1 ano atrás