Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <DOF2>
- new Float:pPosX[MAX_PLAYERS], Float:pPosY[MAX_PLAYERS], Float:pPosZ[MAX_PLAYERS], Float:pPosA[MAX_PLAYERS], SpawnarInPos[MAX_PLAYERS];
- public OnFilterScriptExit()
- {
- DOF2_Exit();
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- SpawnarInPos[playerid] = 1;
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason) //Quando o Player Desconectar do servidor.
- {
- 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
- 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 ?)
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- 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"
- SetPlayerPos(playerid, pPosX[playerid], pPosY[playerid], pPosZ[playerid]); // Seta a posição do Player para a que estava no Arquivo
- 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.
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement