SSGamers - 12 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

Participe do fórum, é rápido e fácil

SSGamers - 12 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

SSGamers - 12 Anos online por você.

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Chegou o novo tema 6.5.5 - SSGamers - Servidores online de qualidade - Aproveite e entre para nossa comunidade, inscreva-se já! - Ouça nossa web radio - Veja nossas novidades - Participe dos nossos setores de jogos online - Parcerias aberta fale já com um administrador.

    [FS] Sistema de colocar jogador no porta malas

    NicolaV
    NicolaV
    --> Postador Fanático
    --> Postador Fanático


    Celular : 88 88 888888888
    Mensagens : 435
    Moedas : 3039
    Data de inscrição : 07/07/2018
    Idade : 19
    Localização : São Paulo/Capital

    [FS] Sistema de colocar jogador no porta malas Empty [FS] Sistema de colocar jogador no porta malas

    Mensagem por NicolaV Qua 22 Mar 2023 - 11:22

    Bem, eu me chamo Yruan, hoje trago a vocês um sistema de colocar jogadores dentro do porta malas de um veiculo, ele é um sistema muito simples ainda não coloquei a verificação se o veiculo tem porta malas ou não.

    Código:
    new pVeiculoProximo[MAX_PLAYERS];
    new bool:PlayerInPortaMalas[MAX_PLAYERS];

    CMD:pmalas(playerid, params[])
    {
       new id, Float:P[3];
       GetPlayerPos(playerid, P[0], P[1], P[2]);
       if(sscanf(params, "u", id))
       {
          SendClientMessage(playerid, VERMELHOs, "Uso incorreto /pmalas [id].");
          GameTextForPlayer(playerid, "~r~~r~Erro", 5000, 1);
           return true;
       }
       else if(IsPlayerInAnyVehicle(playerid))
       {
          SendClientMessage(playerid, VERMELHOs, "[Erro]: Para esta a��o, voc� deve sair do ve�culo.");
          GameTextForPlayer(playerid, "~r~~r~Erro", 5000, 1);
          return true;
       }
       else if(!IsPlayerInRangeOfPoint(id, 3.0, P[0], P[1], P[2]))
       {
          SendClientMessage(playerid, VERMELHOs, "[Erro]: Voc� n�o est� perto do jogador.");
          GameTextForPlayer(playerid, "~r~~r~Erro", 5000, 1);
          return true;
       }
       else if(PlayerInPortaMalas[id] == true)
       {
          SendClientMessage(playerid, VERMELHOs, "[Erro]: Este jogador j� est� no porta-malas.");
          GameTextForPlayer(playerid, "~r~~r~Erro", 5000, 1);
           return true;
       }
       pVeiculoProximo[id] = VeiculoProximo(playerid);
       PlayerInPortaMalas[id] = true;
       TogglePlayerSpectating(id, 1);
       PlayerSpectateVehicle(id, pVeiculoProximo[id]);
       SendClientMessage(id, -1, "{6E6E6E} Voc� foi colocado no porta-malas.");
       SendClientMessage(playerid, -1, "{6E6E6E} Voc� colocou algu�m no porta malas.");
       SendClientMessage(playerid, -1, "{6E6E6E} Para tirar o jogador do porta-malas, use \"/tmalas [id]\".");
       return true;
    }

    CMD:tmalas(playerid, params[])
    {
        new id;
       if(sscanf(params, "u", id))
       {
          SendClientMessage(playerid, VERMELHOs, "Uso incorreto /tmalas [id].");
          GameTextForPlayer(playerid, "~r~~r~Erro", 5000, 1);
           return true;
       }
       else if(IsPlayerInAnyVehicle(playerid))
       {
          SendClientMessage(playerid, VERMELHOs, "[Erro]: Para esta a��o, voc� deve sair do ve�culo.");
          GameTextForPlayer(playerid, "~r~~r~Erro", 5000, 1);
          return true;
       }
       else if(PlayerInPortaMalas[id] == false)
       {
          SendClientMessage(playerid, VERMELHOs, "[Erro]: Este jogador n�o est� no porta-malas.");
          GameTextForPlayer(playerid, "~r~~r~Erro", 5000, 1);
           return true;
       }
       pVeiculoProximo[playerid] = VeiculoProximo(playerid);
       if(pVeiculoProximo[playerid] != pVeiculoProximo[id])
       {
          SendClientMessage(playerid, VERMELHOs, "[Erro]: O jogador n�o est� neste ve�culo.");
          GameTextForPlayer(playerid, "~r~~r~Erro", 5000, 1);
           return true;
       }
       new Float:x, Float:y, Float:z;
       GetPosBehindVehicle(pVeiculoProximo[id], x, y, z, 1.0);
       TogglePlayerSpectating(id, 0);
       SetPlayerPos(id, x, y, z);
       PlayerInPortaMalas[id] = false;
       SendClientMessage(id, -1, "{6E6E6E} Voc� foi tirado do porta-malas.");
       SendClientMessage(playerid, -1, "{6E6E6E} Voc� tirou algu�m no porta malas.");
       return true;
    }

    stock GetPosBehindVehicle (vehicleid, &Float:x, &Float:y, &Float:z, Float:offset=0.5)
    {
          new Float:vehicleSize[3], Float:vehiclePos[3];
          GetVehiclePos(vehicleid, vehiclePos[0], vehiclePos[1], vehiclePos[2]);
          GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_SIZE,vehicleSize[0],vehicleSize[1], vehicleSize[2]);
          GetXYBehindVehicle(vehicleid, vehiclePos[0], vehiclePos[1], (vehicleSize[1]/2)+offset);
          x = vehiclePos[0];
          y = vehiclePos[1];
          z = vehiclePos[2];
          return 1;
    }

    GetXYBehindVehicle(vehicleid, &Float:q, &Float:w, Float:distance)
    {
          new Float:a;
          GetVehiclePos(vehicleid, q, w, a);
          GetVehicleZAngle(vehicleid, a);
          q += (distance * -floatsin(-a, degrees));
          w += (distance * -floatcos(-a, degrees));
    }

    stock VeiculoProximo(playerid)
    {
        new Float:X, Float:Y, Float:Z, id = -1;
        for(new I = 1; I < GetVehiclePoolSize()+1; I++)
        {
            GetVehiclePos(I, X, Y, Z);
            if(IsPlayerInRangeOfPoint(playerid, 3.0, X, Y, Z))
            {
                id = I;
                break;
            }
        }
        return id;
    }

      Data/hora atual: Qui 9 maio 2024 - 3:58