03.07.2012, 04:10
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
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:
Vнdeo de Demonstraзгo
[ame]http://www.youtube.com/watch?v=8t3SZwa8YF4[/ame]
Criado por Bruno da Silva
- Data da criaзгo do projeto foi a praticamente 1 ano atrбs
Й 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 Код:
#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
// http://www.ips-team.blogspot.com
// http://www.ips-team.forumeiros.com
Por exemplo se vocк quer fazer um sistema de precisгo coloque isto:
pawn Код:
printf("Precisгo do Tiro: %d%", floatround(distancia * (100 / TAMANHO_OBJETO)) );
[ame]http://www.youtube.com/watch?v=8t3SZwa8YF4[/ame]
Criado por Bruno da Silva
- Data da criaзгo do projeto foi a praticamente 1 ano atrбs