[Pedido] Pequena correзгo em um sistema.
#1

Oi, a poucos dias criei um sistema de ligar e desligar motor e agora quero adicionar novas funзхes nesse sistema.
Ex: Quando a pessoa pega um veнculo "liberado" == 0 quero que fale uma mensagem quando ele apertar 2 falando que ele nгo pode ligar o veнculo.
Agradeзo se me ajudarem!


if(newkeys == KEY_SUBMISSION && IsPlayerInAnyVehicle(playerid))
{
new mot, lu, alar, por, cap, porma, ob;
new carro = GetPlayerVehicleID(playerid);
GetVehicleParamsEx(carro, mot, lu, alar, por, cap, porma, ob);
if(mot == VEHICLE_PARAMS_OFF)
{
SetVehicleParamsEx(carro, VEHICLE_PARAMS_ON, lu, alar, por, cap, porma, ob);
GameTextForPlayer(playerid, "~r~Veiculo ligado", 1000, 0);
}else{
GameTextForPlayer(playerid, "~r~Veiculo desligado", 1000, 0);
SetVehicleParamsEx(carro, VEHICLE_PARAMS_OFF, lu, alar, por, cap, porma, ob);
}
}

Sistema atual que verifica se o carro ta liberado ou nгo.
if(newstate == PLAYER_STATE_DRIVER)
{
for(new carid; carid < sizeof(cInfo); carid++)
{
if(GetPlayerVehicleID(playerid) == cInfo[carid][HouseCar])
{
new morador[256],str3[256];
format(str3, sizeof(str3), "Casas/Casaid%d", cInfo[carid][HouseCar]);
morador = dini_Get(str3, "Name");
format(hInfo[GetPlayerVehicleID(playerid)][aName],256,morador);
new msg[256];
format(tmp2, sizeof(tmp2), "Casas/Casaid%d", cInfo[carid][HouseCar]);
new vehicleid = GetPlayerVehicleID(playerid);
if(VeiculoDono(playerid, vehicleid) == -1)
{
return 1;
}
if(VeiculoDono(playerid, vehicleid))
{
format(msg, 256, "• '%s' Seja Bem vindo ao seu veiculo '%s'.", hInfo[GetPlayerVehicleID(playerid)][aName], dini_Get(tmp2, "mensagemv"));
SendClientMessage(playerid, 0xBFD672FF, msg);
}
else
{
if(dini_Int(tmp2, "liberado") == 1)
{
if(dini_Int(tmp2, "alarme") == 1)
{
new Floatos[3];
GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
PlayerPlaySound(playerid, 1147, pos[0], pos[1], pos[2]);
format(msg, 256, "* Esse veнculo %s й de '%s', e ele deixou liberado e vocк pode dirigн-lo.", dini_Get(tmp2, "mensagemv"), hInfo[GetPlayerVehicleID(playerid)][aName]);
SendClientMessage(playerid, 0xC0C0C0FF, msg);
TogglePlayerControllable(playerid, 1);
}
else if(dini_Int(tmp2, "alarme") == 0)
{
format(msg, 256, "* Esse veнculo %s й de '%s', e ele deixou liberado e vocк pode dirigн-lo.", dini_Get(tmp2, "mensagemv"), hInfo[GetPlayerVehicleID(playerid)][aName]);
SendClientMessage(playerid, 0xC0C0C0FF, msg);
TogglePlayerControllable(playerid, 1);
}
}
else if(dini_Int(tmp2, "liberado") == 0)
{
if(dini_Int(tmp2, "alarme") == 1)
{
new Floatos[3];
GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
PlayerPlaySound(playerid, 1147, pos[0], pos[1], pos[2]);
format(msg, 256, "* Esse veнculo %s й de '%s', e nгo estб liberado portanto vocк nгo pode dirigн-lo.", dini_Get(tmp2, "mensagemv"), hInfo[GetPlayerVehicleID(playerid)][aName]);
SendClientMessage(playerid, 0xFB871EFF, msg);
RemovePlayerFromVehicle(playerid);

new NomeDono = GetPlayerIdFromName(hInfo[GetPlayerVehicleID(playerid)][aName]);
if(IsPlayerConnected(NomeDono))
{
new StrRoubo[128];
format(StrRoubo, sizeof(StrRoubo), "(ALARME) %s tentou roubar seu veнculo, mas nгo obeteve sucesso pois estб trancado!", PlayerName(playerid));
SendClientMessage(NomeDono, 0xD9404FFF, StrRoubo);
}
}
else if(dini_Int(tmp2, "alarme") == 0)
{
format(msg, 256, "* Esse veнculo %s й de '%s', e nгo estб liberado portanto vocк nгo pode dirigн-lo.", dini_Get(tmp2, "mensagemv"), hInfo[GetPlayerVehicleID(playerid)][aName]);
SendClientMessage(playerid, 0x4FB5CAFF, msg);
RemovePlayerFromVehicle(playerid);

new NomeDono = GetPlayerIdFromName(hInfo[GetPlayerVehicleID(playerid)][aName]);
if(IsPlayerConnected(NomeDono))
{
new StrRoubo[128];
format(StrRoubo, sizeof(StrRoubo), "(ALARME) %s tentou roubar seu veнculo, mas nгo obeteve sucesso pois estб trancado!", PlayerName(playerid));
SendClientMessage(NomeDono, 0xD9404FFF, StrRoubo);
}
}
Reply
#2

Simples amigo, faзa o uso da checagem da variбvel e seu valor requerido, e logo retorne as funзхes desejadas.
pawn Код:
if(newkeys == KEY_SUBMISSION && IsPlayerInAnyVehicle(playerid))
{
    if(liberado[playerid] == 0) return SendClientMessage(playerid, -1, "Vocк nгo pode ligar o veнculo, que pena =/");
    new mot, lu, alar, por, cap, porma, ob;
    new carro = GetPlayerVehicleID(playerid);
    GetVehicleParamsEx(carro, mot, lu, alar, por, cap, porma, ob);
    if(mot == VEHICLE_PARAMS_OFF)
    {
        SetVehicleParamsEx(carro, VEHICLE_PARAMS_ON, lu, alar, por, cap, porma, ob);
        GameTextForPlayer(playerid, "~r~Veiculo ligado", 1000, 0);
    }else{
        GameTextForPlayer(playerid, "~r~Veiculo desligado", 1000, 0);
        SetVehicleParamsEx(carro, VEHICLE_PARAMS_OFF, lu, alar, por, cap, porma, ob);
    }
}
Reply
#3

Mano Eu estou com mesmo problema, eu fiz a mesma funзгo e deu Erro olha :
pawn Код:
error 028: invalid subscript (not an array or too many subscripts): "liberado"
 warning 215: expression has no effect
 error 001: expected token: ";", but found "]"
 error 029: invalid expression, assumed zero
fatal error 107: too many error messages on one line
Reply
#4

entгo como eu estudei o caso eu acabei chegando la entгo vou compartilhar com vocкs
pawn Код:
if(newkeys == KEY_YES && IsPlayerInAnyVehicle(playerid))
    {
    if(dini_Int(tmp2, "liberado") == 0)
    {
    SendClientMessage(playerid, Branco, "Vocк nгo pode ligar o veнculo, que pena =/");
    return 1;
    }
    new mot, lu, alar, por, cap, porma, ob;
    new carro = GetPlayerVehicleID(playerid);
    GetVehicleParamsEx(carro, mot, lu, alar, por, cap, porma, ob);
    if(mot == VEHICLE_PARAMS_OFF)
    {
    SetVehicleParamsEx(carro, VEHICLE_PARAMS_ON, lu, alar, por, cap, porma, ob);
    SendClientMessage(playerid, Verde, "Motor ligado");
    }else{
    SendClientMessage(playerid,Branco, "Motor Desligado");
    SetVehicleParamsEx(carro, VEHICLE_PARAMS_OFF, lu, alar, por, cap, porma, ob);
    }
    }
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)