[Ajuda] RemovePlayerFromVehicle
#1

Olб galera, entгo eu criei uma profissгo de caminhoneiro bem simples ( Estou nesse ramo a pouco tempo ), sу que eu nгo estou conseguindo fazer a lуgica na minha cabeзa...
Tipo, se o cara nгo for caminhoneiro consequentemente ele nгo poderб usar o veiculo de caminhoneiro, certo?

Eu fiz o caminhгo desta forma:
Код:
new
	// PROF CAMINHONEIRO
	Caminhao[1];


public OnGameModeInit()
{
	SetGameModeText("RPG - Weeaaah");
	// Caminhгo
	
	Caminhao[0] = CreateVehicle(515 ,2154.7002000,-2290.8994000,15.1001600,223.9950000,79,83,0);

Adicional:
    // TextLabel's
    Create3DTextLabel("/SerCaminhoneiro", Amarelo, 2171.3208,-2312.9211,13.5469, 4, 1);
Outro problema que eu estou tendo й que a TexLabel nгo estб aparecendo, se alguйm saber o que estб acontecendo com a TextLabel e puder me ajudar tambйm ficarei muito grato!
Desculpa ser tгo noob, й que estou comeзando agora!
Reply
#2

pawn Код:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(newstate == PLAYER_STATE_DRIVER)
    {
       new Empregoid[MAX_PLAYERS]; //apage isto
       new vid = GetPlayerVehicleID(playerid);
       if(Caminhao(vid))
       {
           if(Empregoid(playerid) != 1) //renomeie o "Empregoid" para a variavel de emprego do seu servidor. mude o "!= 1" para o id do seu emprego
           {
                SendClientMessage(playerid, -1, "Vocк nгo й um caminhoneiro");
                RemovePlayerFromVehicleEx(playerid);
           }
        }
    }
    return 1;
}
Questгo da text3d pode ser o "virtualword" que provavelmente esteja com id errado. Й interior que vocк colocou para aparecer ?

tente essa:
pawn Код:
Create3DTextLabel("/SerCaminhoneiro", Amarelo, 2171.3208,-2312.9211,13.5469, 4, 0);
Reply
#3

Quote:
Originally Posted by XandyMello
Посмотреть сообщение
pawn Код:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(newstate == PLAYER_STATE_DRIVER)
    {
       new Empregoid[MAX_PLAYERS]; //apage isto
       new vid = GetPlayerVehicleID(playerid);
       if(Caminhao(vid))
       {
           if(Empregoid(playerid) != 1) //renomeie o "Empregoid" para a variavel de emprego do seu servidor. mude o "!= 1" para o id do seu emprego
           {
                SendClientMessage(playerid, -1, "Vocк nгo й um caminhoneiro");
                RemovePlayerFromVehicleEx(playerid);
           }
        }
    }
    return 1;
}
Vocк estб utilizando "Caminhao" como funзгo quando na verdade й uma variбvel...

Recomendo a callback OnPlayerEnterVehicle para essa finalidade.
Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    if(GetVehicleModel(vehicleid) == 515 && Profissao != Caminhoneiro)
    {
        RemovePlayerFromVehicle(playerid);
    }
    return 1;
}
Basicamente esta й a lуgica.

@TOPIC

Nгo hб necessidade de criar uma variбvel com apenas um index, pois se nгo hб mais de um caminhгo nгo hб necessidade de inserir index.
Код:
new Caminhao;
Reply
#4

Boa tarde,

Код:
 

	if(newstate == PLAYER_STATE_DRIVER)  < ~~~ Esse ' Se ' o que quer dizer... tipo se o player entrar no veiculo?  algo assim... Se puder me explicar!
	{
		new
		    vid = GetPlayerVehicleID(playerid);

		Linha 443 ~~ > if(Caminhao(vid))
		{
		    if(Profissao[playerid] != Caminhoneiro)
		    {
		        SendClientMessage(playerid, Vermelho, "Vocк nгo й um caminhoneiro");
		        RemovePlayerFromVehicleEx(playerid);
		        return 1;
		    }
		    return 1;
		}
	    return 1;
	}
Eu fiz da primeira forma, eu atй entendi o cуdigo... mas estб dando alguns erros onde nгo consigo achar uma funcionalidade

Код:
\PAWNO\SERVER TESTER\gamemodes\Tester.pwn(443) : error 012: invalid function call, not a valid address
\PAWNO\SERVER TESTER\gamemodes\Tester.pwn(443) : warning 215: expression has no effect
\PAWNO\SERVER TESTER\gamemodes\Tester.pwn(443) : error 001: expected token: ";", but found ")"
\PAWNO\SERVER TESTER\gamemodes\Tester.pwn(443) : error 029: invalid expression, assumed zero
\PAWNO\SERVER TESTER\gamemodes\Tester.pwn(443) : fatal error 107: too many error messages on one line
Reply
#5

do modo que ele mostrou nгo ira funcionar..
PHP код:
new Caminhao[1];
Caminhao[0] = CreateVehicle(515 ,2154.7002000,-2290.8994000,15.1001600,223.9950000,79,83,0);
public 
OnPlayerEnterVehicle(playeridvehicleidispassenger)
{
    if(!
ispassenger){
        
        for( new 
csizeof(Caminhao); c++ ){
            
            if(
GetPlayerVehicleID(vehicleid) == Caminhao[c] ){
                
                if( 
/* var profissao */ == caminhoneiro ){
                    
                    print(
"Vocк й caminhoneiro");
                    break;
                }else{
                    
                    
RemovePlayerFromVehicle(playerid);
                    print(
"Vocк nгo й um caminhoneiro");
                    break;
                }
            }        
        }
    }
    return 
1;

Reply
#6

Quote:
Originally Posted by Whoo
Посмотреть сообщение
do modo que ele mostrou nгo ira funcionar..
PHP код:
new Caminhao[1];
Caminhao[0] = CreateVehicle(515 ,2154.7002000,-2290.8994000,15.1001600,223.9950000,79,83,0);
public 
OnPlayerEnterVehicle(playeridvehicleidispassenger)
{
    if(!
ispassenger){
        
        for( new 
csizeof(Caminhao); c++ ){
            
            if(
GetPlayerVehicleID(vehicleid) == Caminhao[c] ){
                
                if( 
/* var profissao */ == caminhoneiro ){
                    
                    print(
"Vocк й caminhoneiro");
                    break;
                }else{
                    
                    
RemovePlayerFromVehicle(playerid);
                    print(
"Vocк nгo й um caminhoneiro");
                    break;
                }
            }        
        }
    }
    return 
1;

Cara, fico feliz por vocк estб me ajudando, mas tem como vocк me explicar essas novas funcionalidade, pois nгo entendo...
'if(!ispassenger)', 'for( new c; c < sizeof(Caminhao); c++ )'
Mas obrigado, й que vocк viu que eu programo de um jeito mais simples para nгo dificultar muito, mas o seu jeito tambйm й vбlido e eu queria aprender de todas formas!
Reply
#7

pawn Код:
if(!ispassenger) // Player й passageiro? Acho que nгo ! !ispassenger ou seja ! = diferente

'for( new c; c < sizeof(Caminhao); c++ )//Loop para a variбvel Caminhao que no seu caso deve ter mais de um assim facilitando para vocк nгo ter
//que ficar utilizando vбrias funзхes em um cуdigo que bastam 2 linhas

//OBS: "LOOP" ele irб verificar todos os valores dentro da sua determinada variбvel assim pegando todos os valores.
Reply
#8

Tem uma maneira mais fбcil?
Reply
#9

Quote:
Originally Posted by Whoo
Посмотреть сообщение
do modo que ele mostrou nгo ira funcionar..
PHP код:
new Caminhao[1];
Caminhao[0] = CreateVehicle(515 ,2154.7002000,-2290.8994000,15.1001600,223.9950000,79,83,0);
public 
OnPlayerEnterVehicle(playeridvehicleidispassenger)
{
    if(!
ispassenger){
        
        for( new 
csizeof(Caminhao); c++ ){
            
            if(
GetPlayerVehicleID(vehicleid) == Caminhao[c] ){
                
                if( 
/* var profissao */ == caminhoneiro ){
                    
                    print(
"Vocк й caminhoneiro");
                    break;
                }else{
                    
                    
RemovePlayerFromVehicle(playerid);
                    print(
"Vocк nгo й um caminhoneiro");
                    break;
                }
            }        
        }
    }
    return 
1;

Nгo pegou ;c
Reply
#10

Problema resolvido, obrigado galera!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)