[Ajuda] Respawn
#1

como que eu faзo para o respawn aleatorio ser chamado apenas quando o player morre? porque tipo, eu coloquei um sistema de salvamento no GM que estou editando! so que ele tem um sistema de respawn aleatorio quando o player spawna dai o sistema de salvamento de posiзao nao funciona pq o sistema de respawn aleatorio e chamado toda vez que o player respawna! eu tentei colocar o respawn aleatorio para apenas quando o player morrer, mas nao deu muito certo pq ele chama o sistema antes que o player der respawn (Quando o player morre ele rapidamente respawna o player dai bugado tudo)

Entгo como e que eu faзo para eu fazer com que o respawn aleatorio seja chamado apenas quando o player morra e quando ele entre pela primeira vez no servidor?

Resumo: como coloco para que um sistema seja chamado apenas na primeira vez de login do player e apos ele morrer?

OBS: uso DOF2
Reply
#2

Use uma variavel:

Код:
new morreu[MAX_PLAYERS]; // crie a variavel

morreu[playerid] = 1; // quando ele morrer

if(morreu[playerid] == 1)
{
    //  aki coloque pra respawnar aleatoriamente.
    morreu[playerid] = 0;

}
teste e diga se funfou como vc quer

@edit em onplayerconnect coloque > morreu[playerid] = 0;

eu esqueci disso rsrs
Reply
#3

deu, mais tipo na primeira vez que o player loga, ele loga no respawn padrao do gta, apenas na primeira vez! como ajeito isso? quando ele morre ele respawna nos respawn aletatorios normalmente!
Reply
#4

oque coloco para que caso o arquivo do jogador nao exista na pasta, o DOF2 chame o sistema de respawn aleatorio?

meu sistema ta assim:

Quote:

enum InfoPlayer {

Senha,
Skin,
Score,
Dinheiro,
Admin,
pBackpack,
pSlots,
Matou,
Morreu,
pQuebrado,
pAdmin,
pSexo,
pFome,
pRespawn,
pSede,
pDTime

};

new Player[MAX_PLAYERS][InfoPlayer];

Quote:

new Float:Respawns[][] =
{
{-775.4976,948.9992,2.9075},
{-651.7646,1323.0013,1.7699},
{-1388.4598,2113.0090,42.1866},
{-1868.6117,2148.7368,2.2704},
{-2328.5283,2527.1621,4.7852},
{-2888.9463,109.2686,4.5482},
{-2322.1150,-2795.7566,10.7334},
{543.0943,-1868.9418,4.1466},
{2904.9805,-2011.8224,2.3552},
{1945.0385,-270.4832,2.6262},
{2293.6926,529.0938,1.7944},
{-785.5703,671.7933,9.7264},
{194.9760,146.6970,2.4229},
{-87.2342,-549.2239,3.3717},
{546.1076,2887.4233,5.2486}
};

Playerspawn:

Quote:

{

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, pInterior[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.
}
}

PlayerDisconnect:
Quote:

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.

Reply
#5

Nгo entendi bem oque quis dizer, mais ...

para verificar se existe um arquivo vc usa como exemplo isso:

Код:
new file[40];
format(file, 40, "Contas/NomeDoPlayer.ini");

if(DOF2_FileExists(file)) // se existir


if(!DOF2_FileExists(file)) // se nгo existir
Reply
#6

Quote:
Originally Posted by Andinho
Посмотреть сообщение
Nгo entendi bem oque quis dizer, mais ...

para verificar se existe um arquivo vc usa como exemplo isso:

Код:
new file[40];
format(file, 40, "Contas/NomeDoPlayer.ini");

if(DOF2_FileExists(file)) // se existir


if(!DOF2_FileExists(file)) // se nгo existir
quase isso! tipo assim quando o player logar й nao existir, deveria ser chamada a funзao pRespawn! tem como?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)