Como identificar motor ligado - LeleziiN - 18/03/2021
Bom alguém saberia mim dizer como é que posso identifica com uma TextDraw se o motor do veículo está ligado ou desligado, tipo eu criei um sistema de ignição para os veículos do meu servidor, mais queria por uma TextDraw para identifica-lo quando a pessoa entra-se no veiculo.
Eu fiz aqui mais não está funcionando correto, poderiam mim ajudar??
Código PHP: if(newkeys == KEY_YES) { if((IsPlayerConnected(playerid)) && (IsPlayerInAnyVehicle(playerid) == 1) && (Logado[playerid] == 1)) { new modelo; modelo = GetVehicleModel(GetPlayerVehicleID(playerid)); if((modelo != 594) && (modelo != 481) && (modelo != 509) && (modelo != 510)) { if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER) { return SendClientMessage(playerid, CORX1, "| INFO | Você precisa ser motorista de um veículo!"); } new mot, lu, alar, por, cap, porma, ob; new veiculoid = GetPlayerVehicleID(playerid); GetVehicleParamsEx(veiculoid, mot, lu, alar, por, cap, porma, ob); if(mot == VEHICLE_PARAMS_OFF || mot == VEHICLE_PARAMS_UNSET) { SetVehicleParamsEx(veiculoid, VEHICLE_PARAMS_ON, lu, alar, por, cap, porma, ob); TextDrawShowForPlayer(playerid, BarraMotorx[playerid]); if(PrintON[playerid] == 1) TextDrawHideForPlayer(playerid, BarraMotorx[playerid]); } else { SetVehicleParamsEx(veiculoid, VEHICLE_PARAMS_OFF, lu, alar, por, cap, porma, ob); TextDrawShowForPlayer(playerid, BarraMotor[playerid]); if(PrintON[playerid] == 1) TextDrawHideForPlayer(playerid, BarraMotor[playerid]); } } } return 1; }
RE: Como identificar motor ligado - Levi.M - 18/03/2021
Esse PrintON[playerid] está verificando oque?
EDIT: Não sei se está certo, mais tente esse:Código PHP: if(newkeys == KEY_YES) { if((IsPlayerConnected(playerid)) && (IsPlayerInAnyVehicle(playerid) == 1) && (Logado[playerid] == 1)) { new modelo; modelo = GetVehicleModel(GetPlayerVehicleID(playerid)); if((modelo != 594) && (modelo != 481) && (modelo != 509) && (modelo != 510)) { if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { new mot, lu, alar, por, cap, porma, ob; new veiculoid = GetPlayerVehicleID(playerid); GetVehicleParamsEx(veiculoid, mot, lu, alar, por, cap, porma, ob); if(mot == VEHICLE_PARAMS_OFF || mot == VEHICLE_PARAMS_UNSET) { SetVehicleParamsEx(veiculoid, VEHICLE_PARAMS_ON, lu, alar, por, cap, porma, ob); TextDrawShowForPlayer(playerid, BarraMotorx[playerid]); TextDrawHideForPlayer(playerid, BarraMotor[playerid]); } else { SetVehicleParamsEx(veiculoid, VEHICLE_PARAMS_OFF, lu, alar, por, cap, porma, ob); TextDrawShowForPlayer(playerid, BarraMotor[playerid]); TextDrawHideForPlayer(playerid, BarraMotorx[playerid]); } } } } return 1; }
RE: Como identificar motor ligado - LeleziiN - 19/03/2021
(18/03/2021 11:45)Levi.M Escreveu: Esse PrintON[playerid] está verificando oque?
EDIT: Não sei se está certo, mais tente esse:
Código PHP: if(newkeys == KEY_YES) { if((IsPlayerConnected(playerid)) && (IsPlayerInAnyVehicle(playerid) == 1) && (Logado[playerid] == 1)) { new modelo; modelo = GetVehicleModel(GetPlayerVehicleID(playerid)); if((modelo != 594) && (modelo != 481) && (modelo != 509) && (modelo != 510)) { if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { new mot, lu, alar, por, cap, porma, ob; new veiculoid = GetPlayerVehicleID(playerid); GetVehicleParamsEx(veiculoid, mot, lu, alar, por, cap, porma, ob); if(mot == VEHICLE_PARAMS_OFF || mot == VEHICLE_PARAMS_UNSET) { SetVehicleParamsEx(veiculoid, VEHICLE_PARAMS_ON, lu, alar, por, cap, porma, ob); TextDrawShowForPlayer(playerid, BarraMotorx[playerid]); TextDrawHideForPlayer(playerid, BarraMotor[playerid]); } else { SetVehicleParamsEx(veiculoid, VEHICLE_PARAMS_OFF, lu, alar, por, cap, porma, ob); TextDrawShowForPlayer(playerid, BarraMotor[playerid]); TextDrawHideForPlayer(playerid, BarraMotorx[playerid]); } } } } return 1; }
Continuou a mesma coisa mano
RE: Como identificar motor ligado - k2bi_YT - 19/03/2021
Qual é a função dessa PrintON[playerid]?
RE: Como identificar motor ligado - LeleziiN - 19/03/2021
(19/03/2021 12:14)k2bi_YT Escreveu: Qual é a função dessa PrintON[playerid]?
foi um erro já removi.
Mais eu queria fazer que quando eu entresse no veiculo e aperta-se 'Y' ligava o veiculo e aparecia uma textdraw com o nome MotorOn indicando que o motor estava ligado com a parte On verde (~g~~h~On)
Até ai eu fiz mais quando saiu do veiculo e entro de volta a textdraw de motor ligado desaparece
RE: Como identificar motor ligado - LeleziiN - 20/03/2021
Alguém para mim ajuda nesse problema?
RE: Como identificar motor ligado - k2bi_YT - 21/03/2021
Código PHP: if(newkeys & KEY_YES) { if(IsPlayerInAnyVehicle(playerid)) { new modelo; modelo = GetVehicleModel(GetPlayerVehicleID(playerid)); if(modelo == 594 || modelo == 481 || modelo == 509 || modelo == 510) return 1 if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER) return SendClientMessage(playerid, CORX1, "| INFO | Você precisa ser motorista de um veículo!"); new mot, lu, alar, por, cap, porma, ob; new veiculoid = GetPlayerVehicleID(playerid); GetVehicleParamsEx(veiculoid, mot, lu, alar, por, cap, porma, ob); if(!mot) { SetVehicleParamsEx(veiculoid, VEHICLE_PARAMS_ON, lu, alar, por, cap, porma, ob); TextDrawShowForPlayer(playerid, BarraMotorx[playerid]); SendClientMessage(playerid, -1, "Motor ON."); } else if(mot) { SetVehicleParamsEx(veiculoid, VEHICLE_PARAMS_OFF, lu, alar, por, cap, porma, ob); TextDrawShowForPlayer(playerid, BarraMotor[playerid]); SendClientMessage(playerid, -1, "Motor OFF."); } } return 1; }
RE: Como identificar motor ligado - LeleziiN - 21/03/2021
(21/03/2021 08:52)k2bi_YT Escreveu: Código PHP: if(newkeys & KEY_YES) { if(IsPlayerInAnyVehicle(playerid)) { new modelo; modelo = GetVehicleModel(GetPlayerVehicleID(playerid)); if(modelo == 594 || modelo == 481 || modelo == 509 || modelo == 510) return 1 if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER) return SendClientMessage(playerid, CORX1, "| INFO | Você precisa ser motorista de um veículo!"); new mot, lu, alar, por, cap, porma, ob; new veiculoid = GetPlayerVehicleID(playerid); GetVehicleParamsEx(veiculoid, mot, lu, alar, por, cap, porma, ob); if(!mot) { SetVehicleParamsEx(veiculoid, VEHICLE_PARAMS_ON, lu, alar, por, cap, porma, ob); TextDrawShowForPlayer(playerid, BarraMotorx[playerid]); SendClientMessage(playerid, -1, "Motor ON."); } else if(mot) { SetVehicleParamsEx(veiculoid, VEHICLE_PARAMS_OFF, lu, alar, por, cap, porma, ob); TextDrawShowForPlayer(playerid, BarraMotor[playerid]); SendClientMessage(playerid, -1, "Motor OFF."); } } return 1; }
Mais dessa forma a textdraw que é uma barrinha verde para motor ligado e outra vermelha para motor desligado irar funcionar correto?
pq o problema que estou tendo é que quando eu ligo o motor do veículo e saiu dele, e entro de volta a barrinha verde que era para tá identificando se o motor está ligado desaparece
RE: Como identificar motor ligado - k2bi_YT - 21/03/2021
Adicione isso na callback OnPlayerStateChange
Como eu não sei qual textdraw vai identificar o motor ligado, fiz assim para você conseguir entender, mas basta colocar na ordem correta
Exemplo: Se o motor estiver desligado, deve esconder a textdraw que identifica como ON e mostrar a que identifica como OFF e vice-versa
Caso eu tenha ajudado na função de ligar o motor (newkeys & KEY_YES), basta apenas adicionar esse codigo abaixo na sua GM e testar, mas possivelmente você vai ter que esconder uma e mostrar outra na hora de acionar a tecla para ligar o motor, adicionando TextDrawShowForPlayer e TextDrawHideForPlayer na callback OnPlayerKeyStateChange
Código PHP: public OnPlayerStateChange(playerid, newstate, oldstate) { if(IsPlayerInAnyVehicle(playerid)) { new mot, lu, alar, por, cap, porma, ob; new veiculoid = GetPlayerVehicleID(playerid); GetVehicleParamsEx(veiculoid, mot, lu, alar, por, cap, porma, ob); if(!mot) { SetVehicleParamsEx(veiculoid, VEHICLE_PARAMS_ON, lu, alar, por, cap, porma, ob); TextDrawHideForPlayer(playerid, BarraMotorx[playerid]);//Caso essa textdraw for a identificação do motor desligado (caso não, basta inverter de | Hide para Show |) TextDrawShowForPlayer(playerid, BarraMotor[playerid]);//Caso essa textdraw for a identificação do motor desligado (caso não, basta inverter de | Hide para Show |) } else if(mot) { SetVehicleParamsEx(veiculoid, VEHICLE_PARAMS_OFF, lu, alar, por, cap, porma, ob); TextDrawHideForPlayer(playerid, BarraMotor[playerid]); TextDrawShowForPlayer(playerid, BarraMotorx[playerid]); } } else { TextDrawHideForPlayer(playerid, BarraMotor[playerid]);//Caso essa textdraw for a identificação do motor desligado (caso não, basta inverter de | Hide para Show |) TextDrawHideForPlayer(playerid, BarraMotorx[playerid]);//Caso essa textdraw for a identificação do motor desligado (caso não, basta inverter de | Hide para Show |) } return 1; }
RE: Como identificar motor ligado - LeleziiN - 21/03/2021
Bom mano eu tinha dado uma mudada no formato na questão da TextDraw, agora eu fiz dessa forma uma barrinha verde para motor ligado e nada para motor desligado. Tipo quando eu entrar no veiculo desligado fica dessa forma
![[Imagem: sa-mp-425.png]](https://media.discordapp.net/attachments/823278881611972621/823279455806947348/sa-mp-425.png)
Ai quando aperto a tela 'Y' fica asse mostrando essa barrinha verde identificando que o motor tá ligado
![[Imagem: sa-mp-426.png]](https://media.discordapp.net/attachments/823278881611972621/823279456486817822/sa-mp-426.png)
Mais o problema é que quando eu saiu do veículo que está ligado e entro em outro desligado a barrinha verde fica aparecendo no veiculo desligado, como posso resolver isso??
|