SA-MP Forums Archive
[Ajuda] Funcao apenas para o ID 0 - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Funcao apenas para o ID 0 (/showthread.php?tid=601330)



Funcao apenas para o ID 0 - iTouchS - 19.02.2016

Minha funзгo apenas funciona para o ID 0 ja tentei mudar o timer etc.. mais n adianta

PHP код:
#define FILTERSCRIPT
#include <a_samp>
#include <ZCMD>
#if defined FILTERSCRIPT
new BARCO[3];
new 
Float:oXFloat:oYFloat:oZ;
new 
Float:pXFloat:pYFloat:pZ;
public 
OnFilterScriptInit()
{
    return 
1;
}
public 
OnFilterScriptExit()
{
    return 
1;
}
CMD:moverbarco(playerid)
{
    
BARCO[0] = CreateObject(107943123.862792859.0339410.78237,   0.000000.00000273.96307);
    
BARCO[1] = CreateObject(107953123.296142860.6750520.65570,   0.000000.00000273.53851);
    
BARCO[2] = CreateObject(107933118.733642933.1621139.58103,   0.000000.00000273.04440);
    
MoveObject(BARCO[0], 3123.862792859.03394-1000010.7823710);
    
MoveObject(BARCO[1], 3123.296142860.67505-1000020.6557010);
    
MoveObject(BARCO[2], 3118.733642933.16211-1000039.5810310);
    
SetTimer("UPDATE_SHIP_PPOS"1000true);
    return 
1;
}
forward UPDATE_SHIP_PPOS(playerid);
public 
UPDATE_SHIP_PPOS(playerid)
{
  for(new 
0MAX_PLAYERSi++)
  {
    
GetObjectPos(BARCO[0], oXoYoZ);
    
GetPlayerPos(playeridpXpYpZ);
    if(
IsPlayerInRangeOfPoint(playerid350 oXoYoZ) && pZ >= 35.0000)
    if(
IsPlayerInAnyVehicle(playerid))
      {
              
CreateExplosion(pXpYpZ+8750.0);
              
SendClientMessage(playerid, -1"Acertou !");
              return 
1;
      }
  }
  return 
1;
}
#endif 



Re: Funcao apenas para o ID 0 - Delete_ - 20.02.2016

Tenta usar sscanf e colocar essas funзхes de CreateObject na callback: OnFilterScriptInit()


Re: Funcao apenas para o ID 0 - KinX - 20.02.2016

Mude
SetTimer("UPDATE_SHIP_PPOS", 1000, true);


Para

SetTimerEx("UPDATE_SHIP_PPOS", 1000, true,"i", playerid);



Vocк tambйm pode tirar esse Loop , vocк nгo estб usando ele para nada
Se vocк quisesse usar , em vez de "playerid" vocк deveria escrever
"i"


Re: Funcao apenas para o ID 0 - iTouchS - 20.02.2016

o problema de eu estar usando comando e para testar, e o fato do SetTimerEx eu jб usei mais nгo adiantou, oque mais poderia ser ?


Re: Funcao apenas para o ID 0 - KinX - 20.02.2016

Entгo faзa o seguinte

[pawn]
}

forward UPDATE_SHIP_PPOS(playerid);
public UPDATE_SHIP_PPOS(playerid)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
GetObjectPos(BARCO[0], oX, oY, oZ);
GetPlayerPos(playerid, pX, pY, pZ);
if(IsPlayerInRangeOfPoint(playerid, 350 , oX, oY, oZ) && pZ >= 35.0000)
if(IsPlayerInAnyVehicle(playerid))
{
CreateExplosion(pX, pY, pZ+8, 7, 50.0);
SendClientMessage(playerid, -1, "Acertou !");
return 1;
}
}
return 1;
}
[\pawn]

Primeiramente , mude

forward UPDATE_SHIP_PPOS(playerid);
public UPDATE_SHIP_PPOS(playerid)

Tire esse playerid de dentro dos parкnteses

Agora , dentro desse "for i=0, i < MAX_PLAYERS...
Tudo abaixo dele que tiver "playerid" vocк muda para "i"


Re: Funcao apenas para o ID 0 - KinX - 20.02.2016

....


Re: Funcao apenas para o ID 0 - iTouchS - 20.02.2016

Funcionou obrigado, aprendi mais uma