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] Salvar posição do Player quando ele deslogar.

    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] Salvar posição do Player quando ele deslogar. Empty [Tutorial] Salvar posição do Player quando ele deslogar.

    Mensagem por Weslley_Script Sex 19 maio 2023 - 10:45

    Olá a todos, venha fazer o meu segundo tutorial aqui no fуrum, o primeiro nгo deu muito certo, vamos ver se consigo mudar o rumo da coisa '-'.

    Bom, no tutorial de hoje estarei ensinando como armazenar a Posição do Player quando ele desconectar do Servidor e como setá-la novamente quando ele se conectar, o cуdigo completo (para melhor visualização) está no fim do tutorial.. Antes de começar,

    gostaria de deixar claro que, buscando por este assunto no fуrum sу encontrei dъvidas a respeito e um FilterScript do rjjj, mas como o meu й tutorial e usa DOF2 e nгo dini decidi postar mesmo assim, espero que nгo tenha problema, se um tutorial assim jб existe, por favor, me avise nos comentários ou via MP, muito grato !

    Vamos ao que interessa? ^^

    • Inclui Necessárias 

    • a_samp - Créditos a SAMP Team 

    • DOF2 - Nгo me lembro quem foi o autor, atй porque nгo encontrei o tуpico oficial, se alguйm puder me passar eu ficaria grato. 

    Lembrando que as Includes que eu disponibilizei sгo para a versгo 0.3x do SAMP, se vocк usa uma versгo diferente procure atualizб-las.

    [Tutorial] Salvar posição do Player quando ele deslogar. Ond0W

    • Código e Explicações: 

     Topo do GameMode/FilterScript 
    Código do peão:


    Código:
    #include <a_samp>
    #include <DOF2>

     Abaixo das Inclui e Define: 
    Código do peão:


    Código:
    novo  Float : pPosX [ MAX_PLAYERS ] , Float : pPosY [ MAX_PLAYERS ] , Float : pPosZ [ MAX_PLAYERS ] , Float : pPosA [ MAX_PLAYERS ] , SpawnarInPos [ MAX_PLAYERS ] , pInterior [ MAX_PLAYERS ] ;

    Explicação:

    "Float:" - Float é usado para valores inteiros e nгo inteiros.
    "pPosX", "pPosY", "pPosZ", "pPosA" - Armazenaram as coordenadas (A = Ângulo)
    "pInterior" - ArmazenarÁ o Interior do mesmo.
    "SpawnarInPos" - Tem como tradução literal "Spawnar na posição". Dirá-se à primeira vez que o jogador Spawna (serve para que o jogador seja colocado na posição salva na primeira vez que Spawnar).

    [Tutorial] Salvar posição do Player quando ele deslogar. Ond0W

     público OnPlayerConnect(playerid) 
    Código do peão:


    Código:
    SpawnarInPos [ playerid ]  =  1 ;

    Explicação:

    Colocar o valor de "SpawnInPos" para 1, assim significando que sim, que o mesmo deve Spawnar na posição salva.

    [Tutorial] Salvar posição do Player quando ele deslogar. Ond0W

     OnPlayerDisconnect 
    Código do peão:

    Código:
    [center][left]novo pName [ MAX_PLAYER_NAME ] , Arquivo [ 56 ] ;
        GetPlayerName ( playerid, pName, sizeof ( pName ) ) ; // Pega o Nome (nick) do Player e converte para "pName", assim "pName" = Nick
        format ( File, 56 , "Posições/%s.txt" , pName ) ; // Cria o "caminho" no local onde será salvo o Arquivo com a posição do Player
         GetPlayerPos ( playerid, pPosX [ playerid ] , pPosY [ playerid] , pPosZ [ id do jogador ] ) ; // Pega a Posição do Player em X, Y e Z, e converte para "pPosX", "pPosY" e "pPosZ", respectivamente.
        GetPlayerFacingAngle ( playerid, pPosA [ playerid ] ) ; // Pega o Ângulo do Player em A e converte para pPosA, logo pPosA = Ângulo do Player
         pInterior [ playerid ]  = GetPlayerInterior ( playerid ) ; // Pega o interior do Player, que fica armazenado em pInterior.
        if ( ! DOF2_FileExists ( Arquivo ))  // Verifica se existe um arquivo
        {
             DOF2_CreateFile ( File ) ; // Se nгo existir, cria
        }
         DOF2_SetFloat ( File, "PosX" , pPosX [ playerid ] ) ; // Escreve dentro do Arquivo: "PosX = pPosX (posição que pegamos antes, lembra?)
         DOF2_SetFloat ( File, "PosY" , pPosY [ playerid ] ) ; // Escreve dentro do Arquivo: "PosY = pPosY (posição que pegamos antes , lembra ?)
         DOF2_SetFloat ( Arquivo, "PosZ", pPosZ [ id do jogador ] ) ; // Escreve dentro do Arquivo: "PosZ = pPosZ (posição que pegamos antes, lembra?)
         DOF2_SetFloat ( File, "PosA" , pPosA [ playerid ] ) ; // Escreve dentro do Arquivo: "PosA = pPosA (posição que pegamos antes , lembra ?)
         DOF2_SetInt ( File, "Interior" , pInterior [ playerid ] ) ; // Escreve dentro do Arquivo: "Interior = pInterior (interior que pegamos antes, lembra?)
             DOF2_SaveFile ( ) ;// Salva o arquivo.[/left][/center]
    [center][/center]

    Explicação:

    Está no prуprio cуdigo.

    [Tutorial] Salvar posição do Player quando ele deslogar. Ond0W

     public OnFilterScriptExit()//OnGameModeExit() 
    Código do peão:


    Código:
    DOF2_Sair ( ) ;

    Explicação:

    "Saída" do DOF2, se nгo colocar darб erro/warning.

    [Tutorial] Salvar posição do Player quando ele deslogar. Ond0W

     público OnPlayerSpawn(playerid) 
    Código do peão:


    Código:
    novo pName [ MAX_PLAYER_NAME ] , Arquivo [ 56 ] ;
        GetPlayerName ( playerid, pName, sizeof ( pName ) ) ; // Pega o Nome (nick) do Player e converte para "pName", assim "pName" = Nick
        format ( File, sizeof ( File ) , "Posições/%s.txt" , pName ) ; // Cria o "caminho" no local onde está salvo o Arquivo com a posição do Player
        if ( DOF2_FileExists ( File )  &&SpawnarInPos [ playerid ]  ==  1 )  // SE o Arquivo existe e SE o Player deve ser colocado nas Coordenadas que estava quando deixou o jogo
        {
             pPosX [ playerid ]  = DOF2_GetFloat ( File, "PosX" ) ; //Busca dentro do Arquivo a "PosX" e transforma em "pPosX"
             pPosY [ playerid ]  = DOF2_GetFloat ( File, "PosY" ) ; //Busca dentro do Arquivo a "PosY" e transforma em "pPosY"
     = DOF2_GetFloat ( Arquivo, "PosZ" ) ; //Busca dentro do Arquivo a "PosZ" e transforma em "pPosZ"
             pPosA [ playerid ]  = DOF2_GetFloat ( File, "PosA" ) ; //Busca dentro do Arquivo a "PosA" e transforma em "pPosA"
         pInterior [ playerid ]  = DOF2_GetInt ( File, "Interior" ) ; //Busca dentro do Arquivo "Interior" e transforma em "pInterior"
             SetPlayerPos ( playerid,] , pPosY [ id do jogador ] , pPos Z [ id do jogador ] ) ; // Seta a posição do Player para o que estava no Arquivo
             SetPlayerInterior ( playerid, pInterio [ playerid ] ) ;
            SetPlayerFacingAngle ( playerid, pPosA [ playerid ] ) ; // Seta o Ângulo do Player para o que estava no arquivo
             SetCameraBehindPlayer ( playerid ) ; // Coloca a Câmera atràs da Skin
             SendClientMessage (playerid, - 1 , "Você foi teleportado para o local onde estava antes de sair do jogo pela última vez." ) ; // Manda a ele uma mensagem
             SpawnarInPos [ playerid ]  =  0 ; // Define que o mesmo nгo deve mais ser Spawnado na posiзгo que estб no Arquivo atй Relogar.
        }

    Explicação:

    Está no prуprio cуdigo.

    [Tutorial] Salvar posição do Player quando ele deslogar. Ond0W

    • Observações 

    › A Include "DOF2" foi usado somente no Salvamento dos Dados, porйm, sem ela o cуdigo nгo funcionarб
    › Como eu jб disse, havia um FilterScript que fazia isso, mas o mesmo nгo continha nenhuma informaзгo de como faze-lo .

    [Tutorial] Salvar posição do Player quando ele deslogar. Ond0W

    › Espero que todos tenham gostado do tutorial, e que o mesmo possa ser ъtil para alguйm ('0'), qualquer erro que eu tenha cometido, favor informar nos comentários ou via PM (MP). Ficou um cуdigo bem curto e simples, mas acredito que vб ser ъtil para alguйm (assim espero '-').

    [Tutorial] Salvar posição do Player quando ele deslogar. Ond0W

    • Código Completo: 

    PasteBin

    [Tutorial] Salvar posição do Player quando ele deslogar. Ond0W

    • Crйditos 

    › [THS]ShadoW ( ou Graf_Spee ) - Criação e postagem do tutorial.

    Forte abraço a todos..

    Att. [ THS]ShadoW (Graf_Spee)

    • D esperatos Autorais 



    [Tutorial] Salvar posição do Player quando ele deslogar. D07Xwqb
    [Tutorial] Salvar posição do Player quando ele deslogar. Yjab9HN

      Data/hora atual: Qua 8 maio 2024 - 16:57