[Ajuda] O que eu to fazendo de errado no sistema de motor?
#1

To tentando fazer um sistema de motor, pra ter que ligar o veiculo...
O que eu fiz errado?

Код:
new bool:motor[MAX_VEHICLES];
Код:
public OnGameModeInit() {
	InitServer();
	return 1;
}

public InitServer() {
	...
	ManualVehicleEngineAndLights(); // motor system
	...
}
Код:
CMD:motor(playerid) {
	new mot, lu, alar, por, cap, porma, ob;
	new carroid = GetPlayerVehicleID(playerid);
	if(carroid != INVALID_VEHICLE_ID && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) {
		if(motor[carroid] == false) {
			GetVehicleParamsEx(carroid, mot, lu, alar, por, cap, porma, ob);
			SetVehicleParamsEx(carroid, VEHICLE_PARAMS_ON, lu, alar, por, cap, porma, ob);
			motor[carroid] = true;
			SendClientMessage(playerid, 0xFFFFFFAA, "Veiculo {2F991A}Ligado!");
		}
		else if(motor[carroid] == true) {
			GetVehicleParamsEx(carroid, mot, lu, alar, por, cap, porma, ob);
			SetVehicleParamsEx(carroid, VEHICLE_PARAMS_OFF, lu, alar, por, cap, porma, ob);
			motor[carroid] = false;
			SendClientMessage(playerid, 0xFFFFFFAA, "Veiculo {E31919}Desligado!");
		}
	}
	return 1;
}
Mesmo que eu coloque ManualVehicleEngineAndLights acima, os carros vem ligados, eu uso /motor e nada muda...
Reply
#2

bump
Reply
#3

Amiguinho testa ai e me diz se funcionou....

OBS: Dei uma otimizada no seu cуdigo!

PHP код:
CMD:motor(playerid)
{
    new 
motlualarporcappormaob;
    if(!
IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1"Erro! Vocк nгo estб em um veiculo!");
    new 
carroid GetPlayerVehicleID(playerid);
    if(
GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
        
GetVehicleParamsEx(carroidmotlualarporcappormaob);
        if(
motor[carroid] == false)
        {
            
SetVehicleParamsEx(carroid1lualarporcappormaob);
            
motor[carroid] = true;
            
SendClientMessage(playerid0xFFFFFFAA"Veiculo {2F991A}Ligado!");
        }
        else if(
motor[carroid] == true)
        {
            
SetVehicleParamsEx(carroid0lualarporcappormaob);
            
motor[carroid] = false;
            
SendClientMessage(playerid0xFFFFFFAA"Veiculo {E31919}Desligado!");
        }
    }
    return 
1;

Reply
#4

Tente colocar o ManualVehicleEngineAndLights(); diretamente no OnGameModeInit:

Код:
public OnGameModeInit()
{
ManualVehicleEngineAndLights();
return 1;
}
Reply
#5

Quote:
Originally Posted by HardWar
Посмотреть сообщение
Tente colocar o ManualVehicleEngineAndLights(); diretamente no OnGameModeInit:

Код:
public OnGameModeInit()
{
ManualVehicleEngineAndLights();
return 1;
}
Estб em OnGameModeInit e continua o mesmo problema...
Jб havia tentado antes de criar o tуpico...

Quote:
Originally Posted by AdrianoStk
Посмотреть сообщение
Amiguinho testa ai e me diz se funcionou....

OBS: Dei uma otimizada no seu cуdigo!

PHP код:
CMD:motor(playerid)
{
    new 
motlualarporcappormaob;
    if(!
IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1"Erro! Vocк nгo estб em um veiculo!");
    new 
carroid GetPlayerVehicleID(playerid);
    if(
GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
        
GetVehicleParamsEx(carroidmotlualarporcappormaob);
        if(
motor[carroid] == false)
        {
            
SetVehicleParamsEx(carroid1lualarporcappormaob);
            
motor[carroid] = true;
            
SendClientMessage(playerid0xFFFFFFAA"Veiculo {2F991A}Ligado!");
        }
        else if(
motor[carroid] == true)
        {
            
SetVehicleParamsEx(carroid0lualarporcappormaob);
            
motor[carroid] = false;
            
SendClientMessage(playerid0xFFFFFFAA"Veiculo {E31919}Desligado!");
        }
    }
    return 
1;

Mesmo problema, mostra apenas a mensagem:
SendClientMessage(playerid, 0xFFFFFFAA, "Veiculo {E31919}Desligado!");
Mas nгo desliga o carro e os carros jб vem ligados, eram pra vir desligado
Reply
#6

PHP код:
CMD:motor(playerid)
{
    new 
vid GetPlayerVehicleID(playerid);
    new 
veh GetVehicleModel(GetPlayerVehicleID(playerid));
    if(
veh == 481 || veh == 509 || veh == 510) return SendClientMessage(playeridC_ERRO,"|X| Este veнculo nгo tem motor.");
    if(!
IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playeridC_ERRO"|X| Vocк precisa estar dentro de um veнculo para ligar o motor.");
     if(
GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playeridC_ERRO"|X| Vocк nгo й o motorista/piloto do veнculo.");
      if(
Motor[vid] == false && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
       {
        
GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
        
SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
        
Motor[vid] = true;
    }
    else if(
Motor[vid] == true && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
        
GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
        
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
        
Motor[vid] = false;
    }
    return 
true;

Use este, adapte ele a sua GM e estб feito.
Reply
#7

Quote:
Originally Posted by Eddye
Посмотреть сообщение
PHP код:
CMD:motor(playerid)
{
    new 
vid GetPlayerVehicleID(playerid);
    new 
veh GetVehicleModel(GetPlayerVehicleID(playerid));
    if(
veh == 481 || veh == 509 || veh == 510) return SendClientMessage(playeridC_ERRO,"|X| Este veнculo nгo tem motor.");
    if(!
IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playeridC_ERRO"|X| Vocк precisa estar dentro de um veнculo para ligar o motor.");
     if(
GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playeridC_ERRO"|X| Vocк nгo й o motorista/piloto do veнculo.");
      if(
Motor[vid] == false && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
       {
        
GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
        
SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
        
Motor[vid] = true;
    }
    else if(
Motor[vid] == true && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
        
GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
        
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
        
Motor[vid] = false;
    }
    return 
true;

Use este, adapte ele a sua GM e estб feito.
Quote:
Originally Posted by IceBilizard
Посмотреть сообщение
try
PHP код:
CMD:motor(playerid)
{
    new 
carroid GetPlayerVehicleID(playerid);
    
    new 
enginelightsalarmdoorsbonnetbootobjective;
    
GetVehicleParamsEx(carroidenginelightsalarmdoorsbonnetbootobjective);
    
    if(
carroid != INVALID_VEHICLE_ID && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
        if(
motor[carroid] == false)
        {
            
SetVehicleParamsEx(carroid1lightsalarmdoorsbonnetbootobjective);
            
motor[carroid] = true;
            
SendClientMessage(playerid0xFFFFFFAA"VEHICLE {2F991A}ON!");
        }
        else if(
motor[carroid] == true)
        {
            
SetVehicleParamsEx(carroid0lightsalarmdoorsbonnetbootobjective);
            
motor[carroid] = false;
            
SendClientMessage(playerid0xFFFFFFAA"VEHICLE {E31919}OFF!");
        }
    }
    return 
1;

Quote:
Originally Posted by Dayrion
Посмотреть сообщение
Perfectly working:
PHP код:
new bool:motor[MAX_VEHICLES];
CMD:motor(playerid)
{
    new 
motlualarporcappormaob;
    if(!
IsPlayerInAnyVehicle(playerid))
        return 
1;
    new 
carroid GetPlayerVehicleID(playerid);
    if(
carroid != INVALID_VEHICLE_ID && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
        if(
motor[carroid] == false)
        {
            
GetVehicleParamsEx(carroidmotlualarporcappormaob);
            
SetVehicleParamsEx(carroid1lualarporcappormaob);
            
motor[carroid] = true;
            
SendClientMessage(playerid0xFFFFFFAA"Veiculo {2F991A}Ligado!");
        }
        else if(
motor[carroid] == true) {
            
GetVehicleParamsEx(carroidmotlualarporcappormaob);
            
SetVehicleParamsEx(carroid0lualarporcappormaob);
            
motor[carroid] = false;
            
SendClientMessage(playerid0xFFFFFFAA"Veiculo {E31919}Desligado!");
        }
    }
    return 
1;

Код:
CMD:motor(playerid) {
	if(!IsPlayerInAnyVehicle(playerid)) return 1;
	if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return 1;
	new vid = GetPlayerVehicleID(playerid);
	new mot, lu, alar, por, cap, porma, ob;
	if(motor[vid] == false) {
        GetVehicleParamsEx(vid, mot, lu, alar, por, cap, porma, ob);
        SetVehicleParamsEx(vid, 1, lu, alar, por, cap, porma, ob);
        motor[vid] = true;
        SendClientMessage(playerid, 0xFFFFFFAA, "VEHICLE {2F991A}ON!"); 
    }
    else if(motor[vid] == true) {
        GetVehicleParamsEx(vid, mot, lu, alar, por, cap, porma, ob);
        SetVehicleParamsEx(vid, 0, lu, alar, por, cap, porma, ob);
        motor[vid] = false;
        SendClientMessage(playerid, 0xFFFFFFAA, "VEHICLE {E31919}OFF!"); 
    }
    return true;
}
Not work guys, same problem...
Nгo estб funcionando, mesmo problema...
Entro no carro, ele jб vem ligado...
Eu uso /motor, e mostra as messagens certas, mas o carro nunca desliga...
To ficando louco jб, todo lugar que eu procuro isso parece estar certo, mas nгo funciona...
O que eu deveria fazer agora?
Reply
#8

Olha, eu testei o comando que o Eddye mandou, e funcionou no meu, algo de errado tu estб fazendo.
Reply
#9

Eu verifiquei o Erro, creio que seja isso:

Como estб:
PHP код:
new bool:Motor[MAX_VEHICLES]; 
Como tem que ficar:

PHP код:
new bool:Motor[MAX_VEHICLES] = false
Adicione o " = false; " do lado do MAX_VEHICLES que irб funcionar o motor.
Reply
#10

Quote:
Originally Posted by yurin
Посмотреть сообщение
Olha, eu testei o comando que o Eddye mandou, e funcionou no meu, algo de errado tu estб fazendo.
Por que nгo estб funcionando aqui entгo?
Код:
CMD:motor(playerid) {
	if(!IsPlayerInAnyVehicle(playerid)) return 1;
	if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return 1;
	new vid = GetPlayerVehicleID(playerid);
	new mot, lu, alar, por, cap, porma, ob;
	if(motor[vid] == false) {
        GetVehicleParamsEx(vid, mot, lu, alar, por, cap, porma, ob);
        SetVehicleParamsEx(vid, 1, lu, alar, por, cap, porma, ob);
        motor[vid] = true;
        SendClientMessage(playerid, 0xFFFFFFAA, "VEHICLE {2F991A}ON!"); 
    }
    else if(motor[vid] == true) {
        GetVehicleParamsEx(vid, mot, lu, alar, por, cap, porma, ob);
        SetVehicleParamsEx(vid, 0, lu, alar, por, cap, porma, ob);
        motor[vid] = false;
        SendClientMessage(playerid, 0xFFFFFFAA, "VEHICLE {E31919}OFF!"); 
    }
    return true;
}
Quote:
Originally Posted by Eddye
Посмотреть сообщение
Eu verifiquei o Erro, creio que seja isso:

Como estб:
PHP код:
new bool:Motor[MAX_VEHICLES]; 
Como tem que ficar:

PHP код:
new bool:Motor[MAX_VEHICLES] = false
Adicione o " = false; " do lado do MAX_VEHICLES que irб funcionar o motor.
Nгo й isso ai nгo brother, variaveis nгo declaradas no pawn sгo automaticamente declaradas como 0(false), tanto que quando eu dou /motor, primeiro ele mostra a msg de ligar
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)