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.
• Código e Explicações: •
• Topo do GameMode/FilterScript •
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.
• 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).
• público OnPlayerConnect(playerid) •
"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).
• 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.
• OnPlayerDisconnect •
Colocar o valor de "SpawnInPos" para 1, assim significando que sim, que o mesmo deve Spawnar na posição salva.
• 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.
• public OnFilterScriptExit()//OnGameModeExit() •
Está no prуprio cуdigo.
• 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.
• público OnPlayerSpawn(playerid) •
"Saída" do DOF2, se nгo colocar darб erro/warning.
• 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.
• 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 .
› 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 '-').
• Código Completo: •
PasteBin
• 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 •
Está no prуprio cуdigo.
• 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 .
› 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 '-').
• Código Completo: •
PasteBin
• 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 •