[Pedido] Criar um alarme de veiculo com PlayerPlaySound
#1

Criei uma funзгo com intuito de gerar um alarme para veiculos pessoais comprados em meu servidor, o codigo esta assim:

PHP код:
//forward alarme veiculo
forward AlarmeVeiculo(playerid);
public 
AlarmeVeiculo(playerid)
{
    
PlayerPlaySound(playerid1147PlayerInfo[playerid][pVposX], PlayerInfo[playerid][pVposY], PlayerInfo[playerid][pVposZ]);
    return 
1;

PHP код:
//comando para iniciar alarme
CMD:alarme(playerid)
{
    if(!
PlayerInfo[playerid][pVConectado]) return SendClientMessage(playeridCor_Vermelha"| ERRO | Seu Veiculo precisa estar conectado para poder ativar o alarme.");
    
KillTimer(TimerAlarmeVeiculo[playerid]);
    
GetVehiclePos(VeiculoPessoalID[playerid], PlayerInfo[playerid][pVposX], PlayerInfo[playerid][pVposY], PlayerInfo[playerid][pVposZ]);
    for( new 
i=0;i<=MAX_VEHICLES;i++)
    {
        
//comecar o alarme de veiculo
        
TimerAlarmeVeiculo[playerid] = SetTimerEx("AlarmeVeiculo"1300true"i"i);
    }
    
    return 
1;

Quero pedir uma ajuda, como a plataforma pra quem estou desenvolvendo o servidor nгo suporta por padrгo o "SetVehicleParamsEx" resolvi criar com loop.. ao usar o comando /alarme que fiz para iniciar o teste do alarme, ele inicia para todos, porem como a posiзгo da Public esta puxando o playerid do SetTimerEx o som reproduzido para os outros jogadores fica parado e reproduzindo como quando se usa os parвmetros X, Y e Z em 0.. eu quero que o som fique no veiculo do jogador que usou /alarme

Se vocк entendeu onde quero chegar por favor me ajude!
Reply
#2

seu codigo tem muitos problemas/erros de logica, de uma revisada nele, pois estб fazendo de uma forma ruim...


solucionei o problema trocando o seu "i" por "playerid"
PHP код:
//comando para iniciar alarme 
CMD:alarme(playerid

    if(!
PlayerInfo[playerid][pVConectado]) return SendClientMessage(playeridCor_Vermelha"| ERRO | Seu Veiculo precisa estar conectado para poder ativar o alarme."); 

    
KillTimer(TimerAlarmeVeiculo[playerid]); 

    
GetVehiclePos(VeiculoPessoalID[playerid], PlayerInfo[playerid][pVposX], PlayerInfo[playerid][pVposY], PlayerInfo[playerid][pVposZ]); 

    for( new 
i=0;i<=MAX_VEHICLES;i++) 
    { 
        
//comecar o alarme de veiculo 
        
TimerAlarmeVeiculo[playerid] = SetTimerEx("AlarmeVeiculo"1300true"i"playerid); /*resolvido*/ 
    

     
    return 
1

Reply
#3

Nenhum dos 2 tem lуgica, eu acho que o meu tambйm nгo, mas tenta

//Nгo testei
Код:
CMD:alarme(playerid) 
{ 
    if(!PlayerInfo[playerid][pVConectado]) return SendClientMessage(playerid, Cor_Vermelha, "| ERRO | Seu Veiculo precisa estar conectado para poder ativar o alarme."); 

    KillTimer(TimerAlarmeVeiculo[playerid]); 

    GetVehiclePos(VeiculoPessoalID[playerid], PlayerInfo[playerid][pVposX], PlayerInfo[playerid][pVposY], PlayerInfo[playerid][pVposZ]); 

    TimerAlarmeVeiculo[playerid] = SetTimerEx("AlarmeVeiculo", 1300, true, "i", playerid); //Playerid para pegar as variбveis da posiзгo do veнculo

    return 1; 
}  

forward AlarmeVeiculo(playerid); 
public AlarmeVeiculo(playerid) 
{ 
    foreach(new i : Player) { //Por mim ele vai mandar o som do alarme nesta posiзгo para todos os jogadores perto
        PlayerPlaySound(i, 1147, PlayerInfo[playerid][pVposX], PlayerInfo[playerid][pVposY], PlayerInfo[playerid][pVposZ]);
    } 
    return 1; 
}
Reply
#4

Quote:
Originally Posted by Marllun
Посмотреть сообщение
Nenhum dos 2 tem lуgica, eu acho que o meu tambйm nгo, mas tenta

//Nгo testei
Код:
CMD:alarme(playerid) 
{ 
    if(!PlayerInfo[playerid][pVConectado]) return SendClientMessage(playerid, Cor_Vermelha, "| ERRO | Seu Veiculo precisa estar conectado para poder ativar o alarme."); 

    KillTimer(TimerAlarmeVeiculo[playerid]); 

    GetVehiclePos(VeiculoPessoalID[playerid], PlayerInfo[playerid][pVposX], PlayerInfo[playerid][pVposY], PlayerInfo[playerid][pVposZ]); 

    TimerAlarmeVeiculo[playerid] = SetTimerEx("AlarmeVeiculo", 1300, true, "i", playerid); //Playerid para pegar as variбveis da posiзгo do veнculo

    return 1; 
}  

forward AlarmeVeiculo(playerid); 
public AlarmeVeiculo(playerid) 
{ 
    foreach(new i : Player) { //Por mim ele vai mandar o som do alarme nesta posiзгo para todos os jogadores perto
        PlayerPlaySound(i, 1147, PlayerInfo[playerid][pVposX], PlayerInfo[playerid][pVposY], PlayerInfo[playerid][pVposZ]);
    } 
    return 1; 
}
Fiz desta forma porem retornou um pouquinho de erros
Код:
C:\Users\Lukas\Desktop\Meus Arqs\PROGRAMADOR\pawno\include\DOF2.inc(467) : warning 219: local variable "i" shadows a variable at a preceding level
C:\Users\Lukas\Desktop\Meus Arqs\PROGRAMADOR\pawno\include\DOF2.inc(576) : warning 219: local variable "i" shadows a variable at a preceding level
C:\Users\Lukas\Desktop\Meus Arqs\PROGRAMADOR\pawno\include\DOF2.inc(984) : warning 219: local variable "i" shadows a variable at a preceding level
C:\Users\Lukas\Desktop\Meus Arqs\PROGRAMADOR\pawno\include\DOF2.inc(1059) : warning 219: local variable "i" shadows a variable at a preceding level
C:\Users\Lukas\Desktop\Meus Arqs\PROGRAMADOR\pawno\include\DOF2.inc(1339) : warning 219: local variable "i" shadows a variable at a preceding level
C:\Users\Lukas\Desktop\Meus Arqs\PROGRAMADOR\pawno\include\DOF2.inc(1368) : warning 219: local variable "i" shadows a variable at a preceding level
C:\Users\Lukas\Desktop\Meus Arqs\PROGRAMADOR\pawno\include\DOF2.inc(1526) : warning 219: local variable "i" shadows a variable at a preceding level
C:\Users\Lukas\Desktop\Meus Arqs\PROGRAMADOR\pawno\include\DOF2.inc(1667) : warning 219: local variable "i" shadows a variable at a preceding level
C:\Users\Lukas\Desktop\Meus Arqs\PROGRAMADOR\gamemodes\GM.pwn(1367) : warning 219: local variable "i" shadows a variable at a preceding level
C:\Users\Lukas\Desktop\Meus Arqs\PROGRAMADOR\gamemodes\GM.pwn(1384) : warning 219: local variable "i" shadows a variable at a preceding level
C:\Users\Lukas\Desktop\Meus Arqs\PROGRAMADOR\gamemodes\GM.pwn(1409) : warning 219: local variable "i" shadows a variable at a preceding level
C:\Users\Lukas\Desktop\Meus Arqs\PROGRAMADOR\gamemodes\GM.pwn(1424) : warning 219: local variable "i" shadows a variable at a preceding level
C:\Users\Lukas\Desktop\Meus Arqs\PROGRAMADOR\gamemodes\GM.pwn(4076) : warning 219: local variable "i" shadows a variable at a preceding level
C:\Users\Lukas\Desktop\Meus Arqs\PROGRAMADOR\gamemodes\GM.pwn(5222) : warning 219: local variable "i" shadows a variable at a preceding level
C:\Users\Lukas\Desktop\Meus Arqs\PROGRAMADOR\gamemodes\GM.pwn(5505) : warning 219: local variable "i" shadows a variable at a preceding level
C:\Users\Lukas\Desktop\Meus Arqs\PROGRAMADOR\gamemodes\GM.pwn(5516) : warning 219: local variable "i" shadows a variable at a preceding level
C:\Users\Lukas\Desktop\Meus Arqs\PROGRAMADOR\gamemodes\GM.pwn(5602) : warning 219: local variable "i" shadows a variable at a preceding level
C:\Users\Lukas\Desktop\Meus Arqs\PROGRAMADOR\gamemodes\GM.pwn(5631) : warning 219: local variable "i" shadows a variable at a preceding level
C:\Users\Lukas\Desktop\Meus Arqs\PROGRAMADOR\gamemodes\GM.pwn(5715) : warning 219: local variable "i" shadows a variable at a preceding level
C:\Users\Lukas\Desktop\Meus Arqs\PROGRAMADOR\gamemodes\GM.pwn(5929) : warning 219: local variable "i" shadows a variable at a preceding level
C:\Users\Lukas\Desktop\Meus Arqs\PROGRAMADOR\gamemodes\GM.pwn(5949) : warning 219: local variable "i" shadows a variable at a preceding level
C:\Users\Lukas\Desktop\Meus Arqs\PROGRAMADOR\gamemodes\GM.pwn(6051) : warning 219: local variable "i" shadows a variable at a preceding level
C:\Users\Lukas\Desktop\Meus Arqs\PROGRAMADOR\gamemodes\GM.pwn(6431) : warning 219: local variable "i" shadows a variable at a preceding level
C:\Users\Lukas\Desktop\Meus Arqs\PROGRAMADOR\gamemodes\GM.pwn(6541) : warning 219: local variable "i" shadows a variable at a preceding level
C:\Users\Lukas\Desktop\Meus Arqs\PROGRAMADOR\gamemodes\GM.pwn(6774) : warning 219: local variable "i" shadows a variable at a preceding level
C:\Users\Lukas\Desktop\Meus Arqs\PROGRAMADOR\gamemodes\GM.pwn(6826) : warning 219: local variable "i" shadows a variable at a preceding level
C:\Users\Lukas\Desktop\Meus Arqs\PROGRAMADOR\gamemodes\GM.pwn(8038) : warning 219: local variable "i" shadows a variable at a preceding level
C:\Users\Lukas\Desktop\Meus Arqs\PROGRAMADOR\gamemodes\GM.pwn(8066) : warning 219: local variable "i" shadows a variable at a preceding level
C:\Users\Lukas\Desktop\Meus Arqs\PROGRAMADOR\gamemodes\GM.pwn(8084) : error 017: undefined symbol "foreach"
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase
Reply
#5

Nгo tem foreach.. recomendo usar, com ele vocк consegue fazer muitas coisas, ler esse tutorial

https://sampforum.blast.hk/showthread.php?tid=625227

PHP код:
forward AlarmeVeiculo(playerid); 
public 
AlarmeVeiculo(playerid

    for(new 
iMAX_PLAYERSi++) { //Por mim ele vai mandar o som do alarme nesta posiзгo para todos os jogadores perto
        
if(IsPlayerConnected(i) {
            
PlayerPlaySound(i1147PlayerInfo[playerid][pVposX], PlayerInfo[playerid][pVposY], PlayerInfo[playerid][pVposZ]);
        }
    } 
    return 
1

Reply
#6

Quote:
Originally Posted by Marllun
Посмотреть сообщение
Nгo tem foreach.. recomendo usar, com ele vocк consegue fazer muitas coisas, ler esse tutorial

https://sampforum.blast.hk/showthread.php?tid=625227

PHP код:
forward AlarmeVeiculo(playerid); 
public 
AlarmeVeiculo(playerid

    for(new 
iMAX_PLAYERSi++) { //Por mim ele vai mandar o som do alarme nesta posiзгo para todos os jogadores perto
        
if(IsPlayerConnected(i) {
            
PlayerPlaySound(i1147PlayerInfo[playerid][pVposX], PlayerInfo[playerid][pVposY], PlayerInfo[playerid][pVposZ]);
        }
    } 
    return 
1

Fiz o download das includes citadas porem creio que nгo instalei corretamente.. pois veio este erro:
Код:
C:\Users\Lukas\Desktop\Meus Arqs\PROGRAMADOR\pawno\include\y_iterate.inc(102) : fatal error 100: cannot read from file: "..\YSI_Internal\y_compilerdata"
as duas estгo na pawno/include/...

pesquisei um tutorial de instalaзгo recente mas nгo encontrei, tem sugestгo ou alguma soluзгo que vocк saiba?
Reply
#7

#include <YSI\y_iterate>

As pastas devem estar assim: imgur.com/a/dWMQ41p
Reply
#8

Se vocк sу vai usar a include foreach baixa separada

Foreach:https://github.com/karimcambridge/SAMP-foreach/releases

caso use YSI baixa aqui(й sу jogar nas includes)

https://github.com/pawn-lang/YSI-Includes/releases
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)