SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese

Reply
 
Thread Tools Display Modes
Old 24/02/2019, 08:22 PM   #1
zHellSync
Big Clucker
 
zHellSync's Avatar
 
Join Date: Dec 2018
Location: Fortaleza - CE
Posts: 93
Reputation: 0
Default multiplicação com verificações de posições de jogadores

Alguem me ajuda! estou querendo fazer um loop para verificar a distancia onde o jogador estar, calculada com angulo de visão e então retirar 5.0 de vida do jogador caso esteja entre a distancia.

eu coloquei o codigo na public OnPlayerKeyStateChange
na KEY_FIRE.

PHP Code:
for(new iMAX_PLAYERSpi++)
{
    new 
Float:xFloat:yFloat:zFloat:a;
    
GetPlayerPos(playeridxyz);
    
GetPlayerFacingAngle(playerida);

    
+= floatsin(-adegrees) * DistanciaDisparo[i][0];
    
+= floatcos(-adegrees) * DistanciaDisparo[i][0];

    if(
IsPlayerInRangeOfPoint(i0.5xyz))
    {
        if(
playerid != i)
        {
            new 
Float:phealth;
            
GetPlayerHealth(iphealth);
            
SetPlayerHealth(iphealth-5.0);
        }
        else
        {
        }
    }

estas as pre-definidas para colocar no loop e verificar se o jogador estar entre elas, (NAO REMOVERA A VIDA DE QUEM APERTAR)

PHP Code:
new Float:DistanciaDisparo[20][1] =
{
    {
0.1},
    {
0.2},
    {
0.3},
    {
0.4},
    {
0.5},
    {
0.6},
    {
0.7},
    {
0.8},
    {
0.9},
    {
1.0},
    {
1.1},
    {
1.2},
    {
1.3},
    {
1.4},
    {
1.5},
    {
1.6},
    {
1.7},
    {
1.8},
    {
1.9},
    {
2.0}
}; 
OBS: ao realizar este calculo (EXEMPLO)
Code:
x += floatsin(-a, degrees) * 1.0;
y += floatcos(-a, degrees) * 1.0;
é recebida em X e Y um metro a frente.. entao de forma resumida, quero que ele comece a verificar de 0.1 a 2.0.. o restante, deixe comigo.. obrigado
__________________
Desenvolvedor de servidor SA:MP Android
Quote:
Originally Posted by zHellSync
Hm...
Code:
Placa mãe: GA-H270M-Gaming
Memoria RAM: 16GB
HD SATA: Kingstom 2TB SATA III
Fonte: 700w 80 Plus White Smart 
Processador: Intel Core i9-9900k Coffee Lake Refresh 9a Geração, Cache 16MB, 3.6GHz (5.0GHz Max Turbo)
zHellSync is offline   Reply With Quote
Old 24/02/2019, 08:32 PM   #2
ipsLuan
High-roller
 
ipsLuan's Avatar
 
Join Date: Feb 2013
Location: Ilhéus, BA
Posts: 4,560
Reputation: 332
Default Re: multiplicação com verificações de posições de jogadores

Não é tudo que é possível fazer no SA-MP.
Não estou entendendo o que você quer fazer.
Mas, como você quer verificar algo, é só usar if.

PHP Code:
if(>= 0.1 && <= 2.0
{
    
//está entre 0.1 e 2.0

__________________

Precisando de algum sistema? Chame!

ipsLuan is offline   Reply With Quote
Old 24/02/2019, 08:37 PM   #3
zHellSync
Big Clucker
 
zHellSync's Avatar
 
Join Date: Dec 2018
Location: Fortaleza - CE
Posts: 93
Reputation: 0
Default Re: multiplicação com verificações de posições de jogadores

Quote:
Originally Posted by ipsLuan View Post
Não é tudo que é possível fazer no SA-MP.
Não estou entendendo o que você quer fazer.
Mas, como você quer verificar algo, é só usar if.

PHP Code:
if(>= 0.1 && <= 2.0
{
    
//está entre 0.1 e 2.0

É.. estou tentando fazer um loop que faça com que IsPlayerInRangePoint pegue calculos apartir da float DistanciaDisparo, pois da maneira que fiz, ele não esta calculando novamente x, y para puxar da float como [i] uma da lista

EDIT:

Neste exemplo que citei
Code:
x += floatsin(-a, degrees) * 1.0;
y += floatcos(-a, degrees) * 1.0;
pode ver que fez o calculo com "1.0" quero que no loop ele verifique todas da lista DistanciaDisparo
__________________
Desenvolvedor de servidor SA:MP Android
Quote:
Originally Posted by zHellSync
Hm...
Code:
Placa mãe: GA-H270M-Gaming
Memoria RAM: 16GB
HD SATA: Kingstom 2TB SATA III
Fonte: 700w 80 Plus White Smart 
Processador: Intel Core i9-9900k Coffee Lake Refresh 9a Geração, Cache 16MB, 3.6GHz (5.0GHz Max Turbo)
zHellSync is offline   Reply With Quote
Old 24/02/2019, 09:03 PM   #4
ipsLuan
High-roller
 
ipsLuan's Avatar
 
Join Date: Feb 2013
Location: Ilhéus, BA
Posts: 4,560
Reputation: 332
Default Re: multiplicação com verificações de posições de jogadores

Use loop então.
__________________

Precisando de algum sistema? Chame!

ipsLuan is offline   Reply With Quote
Old 24/02/2019, 09:16 PM   #5
zHellSync
Big Clucker
 
zHellSync's Avatar
 
Join Date: Dec 2018
Location: Fortaleza - CE
Posts: 93
Reputation: 0
Default Re: multiplicação com verificações de posições de jogadores

Loop ja esta sendo usado. sem nenhum efeito. não tenho total conhecimento para identificar erros, mas agradeço.
__________________
Desenvolvedor de servidor SA:MP Android
Quote:
Originally Posted by zHellSync
Hm...
Code:
Placa mãe: GA-H270M-Gaming
Memoria RAM: 16GB
HD SATA: Kingstom 2TB SATA III
Fonte: 700w 80 Plus White Smart 
Processador: Intel Core i9-9900k Coffee Lake Refresh 9a Geração, Cache 16MB, 3.6GHz (5.0GHz Max Turbo)
zHellSync is offline   Reply With Quote
Old 24/02/2019, 09:45 PM   #6
GranadaGamer
Little Clucker
 
Join Date: Oct 2017
Posts: 26
Reputation: 0
Default Re: multiplicação com verificações de posições de jogadores

Code:
if(IsPlayerInRangeOfPoint(i, 0.5, x, y, z)) 
    { 
        if(playerid != i) 
        { 
            new Float:phealth; 
            GetPlayerHealth(i, phealth); 
            SetPlayerHealth(i, phealth-5.0); 
        } 
        else 
        { 
        } 
    }
Cara não sei se estou certo ou se estou moscando, mas tava pensando aqui pela logica, você verifica se "i" está em tal ponto, verifica os players "i", e no if voce usa se for diferente de "i", mas pela minha logica, para chegar na parte do if todos devem ser "i", pq senao nao passariam do IsPlayerRangeOfPoint, nao sei se deu pra entender muito ae kk
GranadaGamer is offline   Reply With Quote
Old 25/02/2019, 12:33 AM   #7
zHellSync
Big Clucker
 
zHellSync's Avatar
 
Join Date: Dec 2018
Location: Fortaleza - CE
Posts: 93
Reputation: 0
Default Re: multiplicação com verificações de posições de jogadores

Quote:
Originally Posted by Eiss View Post
Tente dessa forma.

pawn Code:
static Float:DistanciaDisparo[] =  {
    0.1,
    0.2,
    0.3,
    0.4,
    0.5,
    0.6,
    0.7,
    0.8,
    0.9,
    1.0,
    1.1,
    1.2,
    1.3,
    1.4,
    1.5,
    1.6,
    1.7,
    1.8,
    1.9,
    2.0
};


// -
//
// -

new
    Float: x,
    Float: y,
    Float: z,
    Float: a;


GetPlayerPos(playerid, x, y, z);
GetPlayerFacingAngle(playerid, a);

for (new i = 0; i < MAX_PLAYERS; i++) {
       
    if(playerid == i) {
        continue;
    }

    for (new j = 0; j < sizeof(DistanciaDisparo); j++) {
        x += (DistanciaDisparo[j] * floatsin(-a, degrees));
        y += (DistanciaDisparo[j] * floatcos(-a, degrees));

        if(IsPlayerInRangeOfPoint(i, 0.5, x, y, z)) {
            new
                Float: health;

            GetPlayerHealth(i, health);
            SetPlayerHealth(i, health - 5.0);
        }
    }
}
Obrigado a todos, mas em especial a você. estudarei as funções usadas para que futuramente possa desenvolver novos sistemas com o que foi feito.
__________________
Desenvolvedor de servidor SA:MP Android
Quote:
Originally Posted by zHellSync
Hm...
Code:
Placa mãe: GA-H270M-Gaming
Memoria RAM: 16GB
HD SATA: Kingstom 2TB SATA III
Fonte: 700w 80 Plus White Smart 
Processador: Intel Core i9-9900k Coffee Lake Refresh 9a Geração, Cache 16MB, 3.6GHz (5.0GHz Max Turbo)
zHellSync is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Ajuda] If com multiplicaçao iCracker Português/Portuguese 3 03/08/2013 12:37 AM
[ajuda]posições StrockerT Português/Portuguese 3 21/02/2012 09:14 PM
[AJUDA] Posições!! Mercurio Português/Portuguese 3 02/02/2012 04:30 PM
[AJUDA] Multiplicação De Objetos gabrielmatos Português/Portuguese 11 27/12/2011 08:40 PM


All times are GMT. The time now is 04:42 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.