[Ajuda] Sistema de Motor - Permissхes
#1

Entгo, eu estou tentando adaptar o comando /motor e faze-lo funcionar sу se o player for dono do carro ou da org a qual aquele veiculo pertence, porйm tive um problema no caminho e como meu nнvel de conhecimento ainda й meio limitado resolvi postar um pedido de ajudar aqui.


Esse й o comando:
pawn Код:
if(strcmp(cmd, "/motor",true) == 0)//na public OnPlayerCommandText
    {
        new vid = GetPlayerVehicleID(playerid);
        if(IsPlayerInAnyVehicle(playerid))
        {
        if(PlayerInfo[playerid][pCarKey] != vid && PlayerInfo[playerid][pCarKey2] != vid && PlayerInfo[playerid][pCarKey3] != vid && HireCar[playerid] != vid)
        {
            SendClientMessage(playerid, COR_PM, "Vocк nгo tem a chave deste veнculo.");
            return 1;
        }
        if(IsACopCar(vid))
        {
            if(GetPlayerOrg(playerid) != 1)
            {
                SendClientMessage(playerid, COR_PM, "Vocк nгo й da Polнcia Mнlitar, por isso nгo tem a chave desse veнculo!");
                return 1;
            }
        }
        if(EngineCarro[vid] == 0 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
            {
                new viados[MAX_PLAYER_NAME];
                GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
                SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
                SendClientMessage(playerid, 0xFFFFFFAA, "Motor {2F991A}Ligado!");
                EngineCarro[vid] = 1;
                GetPlayerName(playerid, viados, sizeof(viados));
                format(string, sizeof(string), "* %s girou a chave e ligou o veiculo.", viados);
                ProxDetector(20.0, playerid, string, ROXO,ROXO,ROXO,ROXO,ROXO);
              }
        }
        return 1;
    }

Essa й a permissгo 1, ela faz que sу os membros da PM liguem suas viaturas (Funcional Sozinha)
pawn Код:
if(IsACopCar(vid))
        {
            if(GetPlayerOrg(playerid) != 1)
            {
                SendClientMessage(playerid, COR_PM, "Vocк nгo й da Polнcia Mнlitar, por isso nгo tem a chave desse veнculo!");
Permissгo 2: Ela faz com que o jogador ligue somente os seus carros, ou seu carro alugado (Funcional Sozinha)
pawn Код:
if(PlayerInfo[playerid][pCarKey] != vid && PlayerInfo[playerid][pCarKey2] != vid && PlayerInfo[playerid][pCarKey3] != vid && HireCar[playerid] != vid)
        {
            SendClientMessage(playerid, COR_PM, "Vocк nгo tem a chave deste veнculo.");
            return 1;
        }
O Porblema й o seguinte, a permissгo 1 para de funcionar quando adiciona a permissгo 2 ao comando e ele passa a fazer com o que o jogador ligue somente o seu carro, nгo permitindo que ele ligue os da sua org, agradeзo qualquer ajuda.
Reply
#2

o que acontece Junior, pelo o que eu entendi , do seu cуdigo ele verifica se й um carro de cops ou seja, em seu 'GM' й possнvel obter um carro de cops? Se nгo, as permissхes devem atuar separadamente, pois todos da org COPS "terгo" as chaves dos veнculos de trabalho prуpriamente ditos. Agora jб um carro particular nгo, ai sim a necessidade de ter as chaves. Se sim, vocк deve criar uma variбvel que atribua um valor no qual as duas permissхes compartilhem, por exemplo uma chave para carros de cops.
Reply
#3

Entгo, nгo й verificar carro de Cops dessa maneira, exemplo o IsaCopCar й a callback que define os carros da org 1, se eu colocar esse comando pra verificar as orgs, funciona perfeitamente, cada jogador sу liga o carro da sua org mas se eu colocar ele pra verificar as chaves ai sу vai funcionar os carros proprios mesmo que as pessoas,

A questгo de criar as chaves vocк sugere que eu crie, exemplo: CarroOrg = 1 ai quando o jogador entrasse na org automбticamente ele recebia essas chaves e poderia ligar ou desligar os carros, assim nгo prescisaria verificar as orgs e sim somente as chaves serб que isso funcionaria?
Reply
#4

Sim, caso os carros de tal org sу ligasse com tal chave e essas chaves sгo dadas ao entrar e tiradas ao sair da org. Sim Substituiria o teste se a pessoa й ou nгo da org, mas vocк estaria trocando 6 por meia duzia, pois testar se й da org ou se ele tem a chave que sу consegue ao entrar na org й a mesma coisa. Vocк poderia mantar do jeito que estб porйm separadamente. Como diz antes, usar as chaves para carros do player e se o player й da org para carros de org.
Reply
#5

Fiz sua sugestгo, e realmente funcionou perfeitamente, muito obrigado rep+ pra ti amanhг pq hoje exedi o limite, rs mas nгo vou esquecer valeu!
Reply
#6

Nada cara. Sу to aqui para ajudar ^^ .
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)