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.

    [Tutorial] Portão eletrônico (apertando tecla)

    Weslley_Script
    Weslley_Script
    SS - Fundador
    SS - Fundador


    Steam Steam : WeslleySSGames
    Zello : WeslleySSGames
    Mensagens : 11378
    Moedas : 1031966
    Data de inscrição : 06/10/2011
    Idade : 28
    Localização : Brasil

    [Tutorial] Portão eletrônico (apertando tecla) Empty [Tutorial] Portão eletrônico (apertando tecla)

    Mensagem por Weslley_Script Qua 17 maio 2023 - 16:00

    Embora já existam alguns tutoriais sobre este assunto, não incomoda nada reforçar um pouco estas ideias para os novos (sendo que muitos são por comandos e muita gente procura por teclas).

    Para começar, vamos criar uma variável com o número de portas que desejamos e uma encaminhar para mais tarde fazermos um calback para chamar o porto para as coordenadas de origem.
    ex:
    peão Код:

    Código:
    novo
         esPortão [ 1 ] ;




    Código:
    encaminhar sPortaoVoltar ( )

    ;

    Com um esporte variável vamos criar 1 porto. Mas se quiser mais basta trocar o nъmero 1 pelo nъmero de portхes que deseja colocar com a mesma variбvel (lembrando que irгo ser portхes diferentes) e irб comeзar sempre pelo 0 (irгo ver jб aqui em baixo) Depois da variбvel criada, vamos ao OnGameModeInit /OnFilterScriptInit (dependendo se está a usar gamemode ou filterscript) e colocamos o seguinte em baixo:

    peão Код:

    Código:
    sPortao [ 0 ]  = CreateObject ( 980 , 2237.4724 , 2452.9809 , 11.9243 , 0.0000 , 0.0000 , -90.2999 ) ; _


    (este objeto é do meu gamemode, foi só para dar um exemplo) .

    980 - id do porto;
    2237.4724 - coordenada X onde o porto se encontra;
    2452.9809 - coordenada Y onde o porto se encontra;
    11.9243 - coordenada Z onde o porto se encontra;
    0,0000 - rotação X;
    0,0000 - rotação Y;
    -90.2999 - rotação Z.

    Agora, vamos para o calback que vai controlado o procedimento do portô mexer através das teclas, que é:
    peão Код:

    Código:
    [size=14][size=13]public OnPlayerKeyStateChange ( playerid, newkeys, oldkeys )[/size][/size]


    [center][size=14]Dentro deste calback, vamos colocar o seguinte:[/size][/center]
    [size=14]peão Код:
    [size=13]if ( newkeys == KEY_RIGHT &&  ! IsPlayerInAnyVehicle ( playerid ) || newkeys == KEY_HANDBRAKE && IsPlayerInAnyVehicle ( playerid ) )
    {
        if ( IsPlayerInRangeOfPoint ( playerid, 15.0 , 2237.4724 , 2452.9809 , 11.9243 ) )
        {
            if ( IsPlayerAdmin ( playerid ) )
            {
                 MoveObject (PortaoPoliciaMilitar [ 0 ] , 2237.4724 , 2452.9809 , 1.9243 , 3 , 0.0000 , 0.0000 , - 90.2999 ) ;
                SetTimer ( "CallPortaoPoliciaMilitarE1" , 5000 , 0 ) ;
            } }
        }[/size][/size]



    E vamos a seguir para a explicação do que eu queria de colocar
    peão Код:

    Código:
    [size=14][size=13]if ( newkeys == KEY_RIGHT &&  ! IsPlayerInAnyVehicle ( playerid ) || newkeys == KEY_HANDBRAKE && IsPlayerInAnyVehicle ( playerid ) )[/size][/size]


    [size=14]peão Код:
    [size=13]KEY_RIGHT &&! ÉJogadorEmQualquerVeículo[/size][/size]


    Se o jogador clicar na tecla do mouse (direita) e estiver fora de um veículo, irá funcionar.

    ou a outra opção é o seguinte:
    peão Код:

    Código:
    KEY_HANDBRAKE && IsPlayerInAnyVehicle


    que é se o jogador clicar na tecla ESPAÇO e estiver dentro de um veículo.


    Em relação ao
    peão Код:

    Código:
    if ( IsPlayerInRangeOfPoint ( playerid, 15.0 , 2237.4724 , 2452.9809 , 11.9243 ) )


    é uma função para verificar a que distância está da coordenada...
    peão Код:

    Código:
    15.0  - raio
    2237.4724 , 2452.9809 , 11.9243  - coordenadas


    Isto quer dizer que se estiver em um raio de 15,0 dessas coordenadas, irá conseguir abrir as portas.

    peão Код:

    Código:
    if ( IsPlayerAdmin ( playerid ) )


    Só vou deixar você usar a função se estiver logado no RCON (pode retirar isso, foi um exemplo) .

    peão Код:

    Código:
    MoveObject ( sPortao [ 0 ] , 2237.4724 , 2452.9809 , 1.9243 , 3 , 0.0000 , 0.0000 , -90.2999 ) ; _ SetTimer ( "sPortaoVoltar" , 5000 , 0 ) ;



    explicação:
    peão Код:

    Código:
    MoveObject ( sPortao [ 0 ] , 2237.4724 , 2452.9809 , 1.9243 , 3 , 0.0000 , 0.0000 , -90.2999 ) ; _


    Irá mover o objeto criado para outro sítio.
    peão Код:

    Código:
    SetTimer ( "sPortaoVoltar" , 5000 , 0 ) ;


    Passado o tempo definido (5000) irá chamar um calback sPortaoVoltar e trazer o portô denovo ao sítio de origem.


    Agora para criar, vamos criar um calback para quando o objeto é movido, passado o tempo definido voltar ao local de origem.
    peão Код:

    Código:
    public sPortaoVoltar ( )
        return MoveObject ( sPortao [ 0 ] , 2237.4724 , 2452.9809 , 11.9243 , 3 , 0.0000 , 0.0000 , - 90.2999 ) ;


    Com esta calback, o objeto sPortao[0] que é o nosso porto irá voltar para o local de origem (2237.4724, 2452.9809, 11.9243) .


    Creditos: [Variedade



    [Tutorial] Portão eletrônico (apertando tecla) D07Xwqb
    [Tutorial] Portão eletrônico (apertando tecla) Yjab9HN

      Data/hora atual: Sáb 27 Abr 2024 - 8:09