[Ajuda] Bloquear player entrar em carro
#1

Como faзo para impedir que players nгo vip entrem nos carros que esse Fs cria.
Observe que no comando tem uma variavel que impede que players nгo vip executem o comando.
Pastebin
Agora quero que players normais nгo entrem nos veiculos criados por esse FS.

Minha variavel original de Vip й essa:
pawn Код:
PlayerDados[playerid][Vip]
Isso й apenas uma chamada da variavel:
pawn Код:
#define GetVipLevel(%0) CallRemoteFunction(#_@GetVipLvl, "i", %0)
if(GetVipLevel(playerid) == 0) // se o VIP do jogador for 0
Reply
#2

Tem como fazer com TogglePlayerControllable , eu nunca vi algo semelhante.

Quote:
Originally Posted by Schocc
Посмотреть сообщение
Fiz pra vocк uma forma usando OnPlayerEnverVehicle, й um simples FS que fiz de testes talvez sirva como exemplo.
Se for testar, precisa da ysi e sscanf.

By [iPs]iShock

pawn Код:
#include                                    < a_samp  >
#include                                    < sscanf2 >
#include                                < YSI\y_commands >


#define MAX_VEHICLE_HELPERS                              (11)

new bool:IsPlayerHelpers[MAX_PLAYERS];
new VeiculoHelpers[MAX_VEHICLE_HELPERS];

public OnFilterScriptInit( ) {
    VeiculoHelpers[0] = AddStaticVehicleEx(535,1562.8000500,-1897.0999800,13.4000000,270.0000000,98,68,15); //Slamvan
    VeiculoHelpers[1] = AddStaticVehicleEx(567,1563.3000500,-1893.0000000,13.5000000,270.0000000,174,155,15); //Savanna
    VeiculoHelpers[2] = AddStaticVehicleEx(400,1563.0000000,-1889.0000000,13.7000000,270.0000000,38,55,15); //Landstalker
    VeiculoHelpers[3] = AddStaticVehicleEx(500,1562.6999500,-1885.0000000,13.8000000,269.5000000,32,32,15); //Mesa
    VeiculoHelpers[4] = AddStaticVehicleEx(495,1573.5000000,-1896.9000200,14.1000000,90.0000000,31,37,15); //Sandking
    VeiculoHelpers[5] = AddStaticVehicleEx(424,1573.8000500,-1893.3000500,13.4000000,90.0000000,81,84,15); //BF Injection
    VeiculoHelpers[6] = AddStaticVehicleEx(461,1574.5000000,-1884.1999500,13.2000000,90.0000000,109,40,15); //PCJ-600
    VeiculoHelpers[7] = AddStaticVehicleEx(463,1574.5999800,-1885.5999800,13.2000000,90.0000000,76,117,15); //Freeway
    VeiculoHelpers[8] = AddStaticVehicleEx(581,1574.4000200,-1887.0000000,13.3000000,88.5000000,109,24,15); //BF-400
    VeiculoHelpers[9] = AddStaticVehicleEx(471,1574.6999500,-1888.5999800,13.1000000,90.0000000,52,26,15); //Quad
    VeiculoHelpers[10] = AddStaticVehicleEx(471,1574.6999500,-1890.6999500,13.1000000,90.0000000,52,26,15); //Quad
    return 1;
}

YCMD:carhelper(playerid,params[],help) {
    SetPlayerPos(playerid,1562.8000500,-1897.0999800,13.4000000);
    return 1;
}

YCMD:sethelper(playerid,params[],help) {
    new bool:ishelper,id;
    if(sscanf(params,"ul",id,ishelper)) return SendClientMessage(playerid,-1,"Use /sethelper <playerid/part name> <true/false>");
    if(ishelper == true)
    {
        IsPlayerHelpers[id] = true;
        SendClientMessage(id,0x00FF00FF,#Vocк foi adicionado ao grupo Helpers!);
    }
    else if(ishelper == false)
    {
        IsPlayerHelpers[id] = false;
        SendClientMessage(id,0xFF0000FF,#Vocк foi removido ao grupo Helpers!);
    }
    return 1;
}


/*
    Nova forma de bloquear a entrada de um player em um veiculo.
    Usando a callback OnPlayerEnterVehicle
    Por: [iPs]iShock
*/


public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) {
    for(new i; i < MAX_VEHICLE_HELPERS; i++) {
        if(VeiculoHelpers[i] != vehicleid) continue;
        if(vehicleid == VeiculoHelpers[i]) {
            if(IsPlayerHelpers[playerid] == true) {
                SendClientMessage(playerid,-1,#Bem vindo ao veiculo usado por helpers!);
            }
            else {
                SendClientMessage(playerid,-1,#Este veiculo nгo й autorizado para seu uso! <Somente Helpers>);
                TogglePlayerControllable(playerid,false);
                TogglePlayerControllable(playerid,true);
            }
            return 1;
        }
    }
    return 1;
}
Reply
#3

Testando... Vou editar algumas coisas, porque nгo quero que o FS perca sua essкncia que й criar veнculos.
Qualquer coisa edito!

@Edit
Fiz assim (olha o listitem 1 do dialog veloz):
Pastebin

Funcionou, mas deu um problema.
Quando crio mais carros iguais apenas 1 fica bloqueado para nгo vips. Os outros ficam liberados.

Alguem sabe consertar?
Reply
#4

Vocк tambйm pode usar OnPlayerEnterVehicle, e se o jogador nгo for autorizado a entrar no veнculo, use SetPlayerPos na mesma posiзгo que ele estб.

Algo mais ou menos assim:

pawn Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    if(GetVipLevel(playerid) == 0) //Checa se o jogador й vip. Se ele nгo for, seta a posiзгo dele pra de entrada no carro, impedindo ele de entrar no carro.
    {
          new Float:pz[3];
          GetPlayerPos(playerid, pz[0], pz[1], pz[2]);
          SetPlayerPos(playerid, pz[0], pz[1], pz[2]);
          return SendClientMessage(playerid, 0xAFAFAFFF, "Vocк nгo pode entrar neste veнculo.");
     }
}
Reply
#5

Quote:
Originally Posted by LeLeTe
Посмотреть сообщение
Vocк tambйm pode usar OnPlayerEnterVehicle, e se o jogador nгo for autorizado a entrar no veнculo, use SetPlayerPos na mesma posiзгo que ele estб.

Algo mais ou menos assim:

pawn Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    if(GetVipLevel(playerid) == 0) //Checa se o jogador й vip. Se ele nгo for, seta a posiзгo dele pra de entrada no carro, impedindo ele de entrar no carro.
    {
          new Float:pz[3];
          GetPlayerPos(playerid, pz[0], pz[1], pz[2]);
          SetPlayerPos(playerid, pz[0], pz[1], pz[2]);
          return SendClientMessage(playerid, 0xAFAFAFFF, "Vocк nгo pode entrar neste veнculo.");
     }
}
Jб resolvi meu problema, vlw por ajudar!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)