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] Criando funções (Simples e Avanço)

    Weslley_Script
    Weslley_Script
    SS - Fundador
    SS - Fundador


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

    [Tutorial] Criando funções (Simples e Avanço) Empty [Tutorial] Criando funções (Simples e Avanço)

    Mensagem por Weslley_Script Ter 16 maio 2023 - 11:27

    Criando Funções

    Diversão Simples
    As funções mais simples são aquelas com poucos parâmetros (um parâmetro é tudo que se encontra dentro de um parênteses), e as vezes nenhuma e tem uma linguagem simples, como o nome diz. Na wiki tem um pequeno exemplo de uma função chamada quando o servidor inicia:
    peão Код:

    Código:
    main ( )
    {
        return MinhaFunção ( ) ;
    }
     
     MinhaFunção ( )
    {
        print ( "Olá Mundo!" ) ;
        retornar  1 ;
    }


    Nesse pequeno exemplo, está mostrando uma função hiper simples, que retorna 1 e mostra uma mensagem no console. Uma função pode estar no meio, no fim, ou no início de um GM/FS e pode ser chamada em qualquer lugar dele, não necessariamente DEPOIS de declarar a função. No exemplo, uma função não possui parâmetros, porque ela não precisa de informações adicionais para funcionar.


    Declarando funções


    Como eu disse, uma função pode ser declarada e usada em qualquer de um Gm/Fs, desde que ela não seja declarada dentro de chaves "{ }". Para declarar uma função, basta procurar o espaço que quiser fora de chaves e escrever o nome dela. Depois disse, abra as chaves normalmente e use sua imaginação.
    peão Код:

    Código:
    Função ( playerid )  //Esses parenteses são necessários, mesmo sem nenhum parâmetro
    {  //Abre Chave
       if  ( vip [ playerid ]  ==  1 )     
            return  1 ; //retorna 1 caso ele for vip
    }  //Fecha Chave


    Quando se fala em uma função ou stock, NÓ INTERESSA O NOME DO PARAMETRO, e sim o tipo. player Colocarid ou asdasd tera a mesma função, mesmo se for usado para um player. O que realmente conta é:
    - Se é numérico
    - Se é booleano ( bool )
    - Se é Float
    - Se é String.

    Funções Avançadas

    Se uma função simples é uma com pouco ou nenhum parâmetro e com uma linguagem mais simplificada, uma função avançada ou complexa é água com muitos parâmetros ou com uma complexibilidade maior. Por exemplo:
    peão Код:

    Código:
    MensagemProxima ( playerid, cor, Float : distancia, texto [ ] )  
    {
        static  Float : Pos [ 3 ] ;
       
        GetPlayerPos ( playerid, Pos [ 0 ] , Pos [ 1 ] , Pos [ 2 ] ) ;
       
        for  ( new i; i < MAX_PLAYERS; i ++ )
            if  ( IsPlayerInRangeOfPoint ( i, distancia, Pos [ 0 ], Pos [ 1 ] , Pos [ 2 ] ) )
                 SendClientMessage ( i, cor, texto ) ;
       
        retornar  1 ;
    }


    Vamos começar com os parâmetros. Como eu disse, não importa o nome do parâmetro, isso:
    peão Код:

    Código:
    MensagemProxima ( playerid, cor, Float : distancia, texto [ ] )


    É o mesmo que isso:
    peão Код:
    MensagemProxima ( asdasd , vodka, Float : aguadecoco, colchetesXD [ ] )

    Porém em uma função com parâmetros é bem mais fácil usar como nome algo relacionado, como na função Mensagem Próxima (Retirada do meu GM). O que realmente importa, é sé e do tipo bool, float, string ou numerico. Nessa função temos string, numerico e Float.



    Declarando Parâmetros e seus tipos


    Vamos trabalhar em cima dessa função:
    peão Код:

    Código:
    MensagemProxima ( playerid, cor, Float : distancia, texto [ ] )  
    {
        static  Float : Pos [ 3 ] ;
       
        GetPlayerPos ( playerid, Pos [ 0 ] , Pos [ 1 ] , Pos [ 2 ] ) ;
       
        for  ( new i; i < MAX_PLAYERS; i ++ )
            if  ( IsPlayerInRangeOfPoint ( i, distancia, Pos [ 0 ], Pos [ 1 ] , Pos [ 2 ] ) )
                 SendClientMessage ( playerid, cor, texto ) ;
       
        retornar  1 ;
    }


    Como se pode ver, ela tem 4 parâmetros ( playerid, cor, Float:distancia, texto[]) sendo que playerid e cor sгo do tipo numйrico, distancia do tipo Float e texto do tipo string. Olhando apenas a declaração dela é possível identificar isso. Mas como informar que o parâmetro é de cada um desses tipos?

    Nas funções, declaramos de forma idêntica a outros scripts, usando:
    peão Код:

    Código:
    bool : TipoBoolean, Float : TipoFloat, string [ tamanho ]


    Porém com uma pequena diferença nas strings , os colchetes são vazios.

    Voltando para nossa função, participaram perceber o tipo de cada parâmetro que ela possui. Agora, precisamos usá-los dentro de nossa função.
    peão Код:

    Código:
    Float estático : Pos [ 3 ] ;
       
        GetPlayerPos ( playerid, Pos [ 0 ] , Pos [ 1 ] , Pos [ 2 ] ) ;
       
        for  ( new i; i < MAX_PLAYERS; i ++ )
            if  ( IsPlayerInRangeOfPoint ( i, distancia, Pos [ 0 ] , Pos [ 1 ] , Pos [ 2 ] ) )
                 SendClientMessage( i, cor, texto ) ;
       
        retornar  1 ;


    Como se pode ver, estamos usando todas as funções declaradas e ainda mais uma para no final retornar uma simples mensagem. Mas como isto funciona?
    Todos os parâmetros são variáveis ​​, ou seja, "são passados ​​por referência", assim como GetPlayerName e etc. Quando formos usar uma função, não vamos usar esses parâmetros em si, mas sim de acordo com nossa necessidade. Essa função, por exemplo, usada como Chat Próximo, ficaria:
    peão Код:

    Código:
    public OnPlayerText ( playerid, text [ ] )  //Os parâmetros de public funciona da mesma maneira
    {
         MensagemProxima ( playerid , GetPlayerColor ( playerid ) , 50.0 , text ) ;
        retorna  0 ;
    }


    Como dÁ para perceber, só repetimos o playerid na função, o resto foi adaptado de acordo com nossa necessidade, usando os parâmetros declarados na pública, que funcionam de maneira semelhante nas funções.

    Avaliem o tutorial e me ajudem com o que nгo ficou bom[Tutorial] Criando funções (Simples e Avanço) Smile

    Creditos: Juniiro3



    [Tutorial] Criando funções (Simples e Avanço) D07Xwqb
    [Tutorial] Criando funções (Simples e Avanço) Yjab9HN

      Data/hora atual: Seg 6 maio 2024 - 20:27