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] Tutorial simples sobre sistema de level e XP

    Weslley_Script
    Weslley_Script
    SS - Fundador
    SS - Fundador


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

    [Tutorial] Tutorial simples sobre sistema de level e XP Empty [Tutorial] Tutorial simples sobre sistema de level e XP

    Mensagem por Weslley_Script Sáb 20 maio 2023 - 16:17

    [TUTORIAL] Sistema de Nível e Experiência
    Olé este é meu primeiro tutorial , e é bem simples , apenas um sistema de nível .

    primeiro.
    peão Код:

    Código:
    //adicione isto junto com suas notícias .


    novo pLevel [ MAX_PLAYERS ] ; // esta variavel é para o level


    new pExp [ MAX_PLAYERS ] ; // esta variável é para a Experiência


    new pTimeUP [ MAX_PLAYERS ] ; // esta variável é para o Tempo de receber XP


    Bom essas 2 variáveis ​​(pLevel e pExp) só as que armazenaram o Level e a Experiencia , bem simples ,
    ja a variavel do tempo (pTimeUP) й para quando o player desconectar , a função KillTimer(pTimeUP); trabalhe!

    Depois disso, vamos a segunda parte:
    peão Код:

    Código:
    public OnPlayerConnect ( playerid ) // Público de quando o player CONECTA ao servidor


    {


         pTimeUP [ playerid ]  = SetTimerEx ( "UparXp" , 300000 ,true, "i" ,playerid ) ; // De 5 em 5 minutos o jogador ira receber 1 XP


        novo Arquivo [ 100 ] ; // Variavel que iremos usar para abrir nosso arquivo com FINI (nгo falarei sobre o mesmo pois jб existe um tуpico sobre ele)


        new pNome [ MAX_PLAYER_NAME ] ;// variavel que pegara o nome do jogador para abrir com Fini


         GetPlayerName ( playerid,pNome, sizeof ( pNome ) ) ; // Função que pega o nome do jogador


        format ( Arquivo, sizeof ( Arquivo ) , "%s" ,pNome ) ; // formatando o Arquivo para abrir com FINI


         Fini_OpenFile ( Arquivo ) ; // abre o arquivo


        if ( Fini_Exists ( Arquivo ) ) // verifica se existe o arquivo do jogador


        {


            pExp [ playerid ]  = Fini_GetValue ( "Experiência" ) ; // pega o valor da linha "Experiência" dentro do arquivo do jogador


             pLevel [ playerid ]  = Fini_GetValue ( "Level" ) ; // pega o valor da linha "Level" dentro do arquivo do jogador


             Fini_SaveFile ( Arquivo ) ; // salva o arquivo


        }


        else


        {


             Fini_Create ( Arquivo ) ; // Caso nao exista o arquivo irá cria-lo automaticamente


            Fini_SetVal ( "Experiência" , 0 ) ; // ira definir a experiência do jogador a ZERO ( pode mudar para qualquer experiência que quiser , seria a xp inicial do jogador)


             Fini_SetVal ( "Level" , 0 ) ; // irá definir o nível do jogador a ZERO (pode mudar para qualquer nível que quiser, seria o nível inicial do jogador)


             Fini_SaveFile ( Arquivo ) ; // salva o arquivo


        }


         Fini_CloseFile ( ) ; // fecha o arquivo


        return  1 ;


    }


    Bom aqui nгo tem muito a dizer , apenas iremos comeзar a contagem para receber o XP e irб setar o level do jogador , se for um jogador que ja joga no server , ira apenas carregar o level e xp da ultima vez que vc saiu Passando

    a terceira parte:
    peão Код:

    Código:
    public OnPlayerDisconnect ( playerid, reason )  // public de quando o jogador desconecta


    {


         KillTimer ( pTimeUP [ playerid ] ) ; // irá "MATAR" a contagem de receber XP


        novo Arquivo [ 100 ] ; // ja falei la em cima


        new pNome [ MAX_PLAYER_NAME ] ; // ja falei la em cima


         GetPlayerName ( playerid,pNome, sizeof ( pNome ) ) ; // ja falei la em cima


        format( Arquivo, sizeof ( Arquivo ) , "%s" ,pNome ) ; // ja falei la em cima


         Fini_OpenFile ( Arquivo ) ; // abre o Arquivo


         Fini_SetVal ( "Experiencia" ,pExp [ playerid ] ) ; // Seta a experiência no arquivo


         Fini_SetVal ( "Level" ,pLevel [ playerid ] ) ; // seta o nível no arquivo


         Fini_SaveFile ( Arquivo ) ;// salva o arquivo


         Fini_CloseFile ( ) ; // fecha o arquivo


        return  1 ;


    }

    OK . Aqui vai salvar o Level e a Experiencia no "Arquivo" , que seria no caso o nome do Player dentro da scriptfiles .

    Quarta parte:
    peão Код:

    Código:
    stock UparXp ( playerid )  // função nova que será chamada pelo SetTimerEx


    {


         pExp [ playerid ]  ++ ; // aumenta a variavel pExp do player , exemplo : tava 1 , dai aumentou ficou 2


        new string [ 50 ] ; //coloquei 50 porq acho que é o suficiente .. qualquer problema sу aumentar ...


        format ( string, sizeof ( string ) , "[UP]Parabéns ! Você acaba de upar sua experiência no nosso servidor! [%d/5] " ,pExp [ ID do jogador ] ) ;//mostra a mensagem que o player upou a XP


         SendClientMessage ( playerid, - 1 ,string ) ; // Lança pro jogador a mensagem


        if ( pExp [ playerid ]  ==  5 ) {  // verifica se ele está com 5 XP


             pLevel [ playerid ]  ++ ; // se tiver 5 xp aumenta 1 nível


             pExp [ playerid ]  =  0 ; // reseta a XP do jogador para 0


            new string2 [ 50 ] ;// mesma coisa do new string[50] apenas diferenciei o nome


            format ( string, sizeof ( string ) , "[LEVEL]OK. Você acaba de subir 1 level ! Total : [%d]" ,pLevel [ playerid ] ) ; // mostra o nível na mensagem


             SendClientMessage ( playerid, - 1 ,string2 ) ; // mensagem enviada ao player


            return  1 ;


        }


    }


    Requerimentos:
    Conhecimento bбsico sobre variaveis, sobre funзхes e tambйm sobre fini.

    Inclui usado :
    a_samp
    a_fini


    Crйditos :
    darkxdll (Brunno_Vinicius)


    Obs : Aceito crнticas e se deu algum erro ou bug me mande MP ou poste aqui no tуpico


    @Edit : Sem querer errei , as funзхes do Fini sгo com a letra "f" maiuscula , estava assim : fini_Exists , ao invйs de Fini_Exists, e tambйm por
    alguns erros que deu quando eu compilei , mais agora estб perfeito.



    [Tutorial] Tutorial simples sobre sistema de level e XP D07Xwqb
    [Tutorial] Tutorial simples sobre sistema de level e XP Yjab9HN

      Data/hora atual: Qua 8 maio 2024 - 18:24