13.07.2013, 20:30
(
Last edited by [THs]ShadoW; 01/08/2013 at 10:06 PM.
)
Olб a todos, venho 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 ? ^^
• Includes 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 •
• Abaixo das Includes e Defines: •
Explicaзгo:
"Float:" - Float й usada 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 й a Primeira vez que o Player Spawna (serve para que o Player sу seja colocado na posiзгo salva na primeira vez que Spawnar).
• public OnPlayerConnect(playerid) •
Explicaзгo:
Colocarб o valor de "SpawnInPos" para 1, assim significando que sim, que o mesmo deverб Spawnar na posiзгo salva.
• OnPlayerDisconnect •
Explicaзгo:
Estб no prуprio cуdigo.
• public OnFilterScriptExit()//OnGameModeExit() •
Explicaзгo:
"Saнda" do DOF2, se nгo colocar darб erro/warning.
• public OnPlayerSpawn(playerid) •
Explicaзгo:
Estб no prуprio cуdigo.
• Observaзхes •
› A Include "DOF2" foi usada 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)
• Direitos Autorais •
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 ? ^^
• Includes 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 •
pawn Code:
#include <a_samp>
#include <DOF2>
pawn Code:
new Float:pPosX[MAX_PLAYERS], Float:pPosY[MAX_PLAYERS], Float:pPosZ[MAX_PLAYERS], Float:pPosA[MAX_PLAYERS], SpawnarInPos[MAX_PLAYERS], pInterior[MAX_PLAYERS];
"Float:" - Float й usada 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 й a Primeira vez que o Player Spawna (serve para que o Player sу seja colocado na posiзгo salva na primeira vez que Spawnar).
• public OnPlayerConnect(playerid) •
pawn Code:
SpawnarInPos[playerid] = 1;
Colocarб o valor de "SpawnInPos" para 1, assim significando que sim, que o mesmo deverб Spawnar na posiзгo salva.
• OnPlayerDisconnect •
pawn Code:
new pName[MAX_PLAYER_NAME], File[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" atй o local onde serб salvo o Arquivo com a posiзгo do Player
GetPlayerPos(playerid, pPosX[playerid], pPosY[playerid], pPosZ[playerid]); // 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(File)) // Checa se a File existe
{
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(File, "PosZ", pPosZ[playerid]); // 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.
Estб no prуprio cуdigo.
• public OnFilterScriptExit()//OnGameModeExit() •
pawn Code:
DOF2_Exit();
"Saнda" do DOF2, se nгo colocar darб erro/warning.
• public OnPlayerSpawn(playerid) •
pawn Code:
new pName[MAX_PLAYER_NAME], File[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" atй o local onde estб salvo o Arquivo com a posiзгo do Player
if(DOF2_FileExists(File) && SpawnarInPos[playerid] == 1) // SE o Arquivo existir 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"
pPosZ[playerid] = DOF2_GetFloat(File, "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, pPosX[playerid], pPosY[playerid], pPosZ[playerid]); // Seta a posiзгo do Player para a 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.
}
Estб no prуprio cуdigo.
• Observaзхes •
› A Include "DOF2" foi usada 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)
• Direitos Autorais •
Quote:
Este obra de Graf_Spee, foi licenciado sob uma Licenзa Creative Commons Atribuiзгo-NгoComercial 3.0 Nгo Adaptada. |