Explicaзгo em Video -
FernandoSS - 25.07.2014
VIDEO ☟
[ame]http://www.youtube.com/watch?v=b_x1UQLy-GY[/ame]
Respuesta: Explicaзгo em Video -
RFA - 25.07.2014
kkkk ate videos, putz ta estranho tendi с
Re: Explicaзгo em Video -
MultiKill - 25.07.2014
A primeira duvida, do jogador da spawn sem se registrar, logar ou recuperar senha, й sу criar uma
variбvel booleana.
E fazer a verificaзгo se ele estб logado na callback OnPlayerSpawn, e se nгo estiver vocк pode tentar usar a funзгo
ForceClassSelection.
Na parte do jogador ter que aperta ESC, й sу usar a funзгo
CancelSelectTextDraw.
Re: Explicaзгo em Video -
ViniBorn - 25.07.2014
1 - Para tirar os botхes de spawn, use TogglePlayerSpectating.
2 - Vocк estб criando o arquivo do jogador assim que ele se conecta, crie somente apуs o registro.
3 - Use CancelSelectTextDraw
Respuesta: Explicaзгo em Video -
FernandoSS - 25.07.2014
2 problemas eu resolvi, mas o de registro ainda nгo, se ele sair antes de se registrar esta criando o arquivo dele e quando ele voltar ele nao pode se registrar pq ela ja existe pela metade
conta quando ele sair antes do registro:
Код:
PosX = 0.00000000
PosY = 0.00000000
PosZ = 0.00000000
PosA = 0.00000000
Interior = 0
Relogioupm = 9
Relogioups = 36
Dinheiro = 0
Skin = 0
Admin = 0
Level = 0
essa й a conta quando ele se registrou normalmente:
Код:
Senha = 12345
Email = SemEmail
Dinheiro = 0
Skin = 0
Admin = 0
Level = 0
PosX = 1958.23425292
PosY = 1342.38342285
PosZ = 15.37460708
PosA = 175.01397705
Interior = 0
Relogioupm = 9
Relogioups = 53
essa й a TD clicavel de registro:
pawn Код:
if(clickedid == RegistrarTXT)
{
GetPlayerName(playerid, StrContas, sizeof(StrContas));
format(StrContas, sizeof(StrContas), "Contas/%s.ini", Nome(playerid));
if(!DOF2_FileExists(StrContas))
{
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "{FFFFFF}Mundo Vida Real - Registro.", String, "Registrar", "Cancelar");
}else ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FFFFFF}Mundo Vida Real - Login", "{FFFFFF}Voce ja possue um registro em nosso servidor \n{FFFFFF}Digite sua senha para poder logar corretamente.", "Logar", "Cancelar");
}
essa aqui й a dialog do registro:
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_REGISTRO)
{
if(response)
{
if(!strlen(inputtext))
{
format(String, sizeof(String), "{FFFFFF}Olб{00FF00} %s {FFFFFF}Vocк nгo й Registrado(a)!\nPor Favor uma Senha para se Registrar:", Nome(playerid));
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "{FFFFFF}Mundo Vida Real - Registro.", String, "Registrar", "Cancelar");
return 1;
}
GetPlayerName(playerid, StrContas, sizeof(StrContas));
format(StrContas, sizeof(StrContas), "Contas/%s.ini", Nome(playerid));
DOF2_CreateFile(StrContas);
DOF2_SetString(StrContas, "Senha", inputtext);
DOF2_SetString(StrContas, "Email", "SemEmail");
DOF2_SetInt(StrContas, "Dinheiro", 0);
DOF2_SetInt(StrContas, "Skin", 0);
DOF2_SetInt(StrContas, "Admin", 0);
DOF2_SetInt(StrContas, "Level", 0);
DadosPlayer[playerid][Logado] = 1;
minUP[playerid] = 9;
segUP[playerid] = 59;
DOF2_SetFloat(StrContas, "PosX", 1958.33);
DOF2_SetFloat(StrContas, "PosY", 1343.12);
DOF2_SetFloat(StrContas, "PosZ", 15.36);
DOF2_SetFloat(StrContas, "PosA", 269.15);
DOF2_SetInt(StrContas, "Interior", 0);
GameTextForPlayer(playerid, "~r~Registrado ~w~com Sucesso", 3000, 3);
PlayerPlaySound(playerid, 1057, 0, 0, 0);
SendClientMessage(playerid, AZULCLARO, "| INFO | {FFFFFF}Dados Criados com Sucesso!");
DOF2_SaveFile();
}
else
{
SendClientMessage(playerid, VERMELHO, "| INFO | {FFFFFF}Vocк foi expulso do servidor. {FF0000}Motivo: {FFFFFF}Cancelou o Registro!");
SetTimerEx("Kickar", 500, false, "d", playerid);
return 1;
}
}
Re: Explicaзгo em Video -
UPsamp - 25.07.2014
cria uma boorleana para verifica se ele esta logado antes de salvar.
PHP код:
new bool:varLogin[MAX_PLAYERS];
//OnPlayerSpawn
PHP код:
if(varLogin[playerid] == false)
varLogin[playerid] = true;
//funзгo de salvar contas do seu GM
PHP код:
//na funзгo deve estar +/- assim
if(DOF2_FileExists("caminhoDoArquivo"))...
//voce vai por assim
if(DOF2_FileExists("caminhoDoArquivo") && varLogin[playerid] == true) {
//... salva os dados
}
nгo lembro de cabeзa se eй essa funзгo do DOF2 que verifica se um arquivo existe kk mas acho que й
Re: Explicaзгo em Video -
ViniBorn - 25.07.2014
O problema pode estar em OnPlayerConnect ou OnPlayerRequestClass.
Procura por DOF2_CreateFile
Respuesta: Explicaзгo em Video -
FernandoSS - 25.07.2014
Fiz uma booleana , mas nгo adintou, continuou criando o arquivo do player antes de se registrar.
minha OnPlayerConnect
pawn Код:
public OnPlayerConnect(playerid)
{
SpawnarInPos[playerid] = 1;
DadosPlayer[playerid][Logado] = 1;
return 1;
}
minha OnPlayerRequestClass
pawn Код:
public OnPlayerRequestClass(playerid, classid)
{
TextDrawShowForPlayer(playerid, BaixoPreto);
TextDrawShowForPlayer(playerid, CimaPreto);
TextDrawShowForPlayer(playerid, LoginTXT);
TextDrawShowForPlayer(playerid, BemVindos);
TextDrawShowForPlayer(playerid, BaixoCinza);
TextDrawShowForPlayer(playerid, CimaCinza);
TextDrawShowForPlayer(playerid, RegistrarTXT);
TextDrawShowForPlayer(playerid, SairTXT);
TextDrawShowForPlayer(playerid, RSenhaTXT);
SelectTextDraw(playerid, 0x00FF00FF);
return true;
}
Re: Explicaзгo em Video -
ViniBorn - 25.07.2014
Em quais publics estгo os DOF2_CreateFile que vocк estб utilizando?
Respuesta: Explicaзгo em Video -
FernandoSS - 25.07.2014
essas sao as publics que eu estou usando o DOF2_CreateFile
pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
GetPlayerName(playerid, StrContas, sizeof(StrContas));
format(StrContas, sizeof(StrContas), "Contas/%s.ini", Nome(playerid));
GetPlayerPos(playerid, pPosX[playerid], pPosY[playerid], pPosZ[playerid]);
GetPlayerFacingAngle(playerid, pPosA[playerid]);
pInterior[playerid] = GetPlayerInterior(playerid);
if(!DOF2_FileExists(StrContas))
{
DOF2_CreateFile(StrContas);
}
DOF2_SetFloat(StrContas, "PosX", pPosX[playerid]);
DOF2_SetFloat(StrContas, "PosY", pPosY[playerid]);
DOF2_SetFloat(StrContas, "PosZ", pPosZ[playerid]);
DOF2_SetFloat(StrContas, "PosA", pPosA[playerid]);
DOF2_SetInt(StrContas, "Interior", pInterior[playerid]);
GetPlayerName(playerid, StrContas, sizeof(StrContas));
format(StrContas, sizeof(StrContas), "Contas/%s.ini", Nome(playerid));
DOF2_SetInt(StrContas, "Relogioupm", minUP[playerid]);
DOF2_SetInt(StrContas, "Relogioups", segUP[playerid]);
SalvarDados(playerid);
TextDrawHideForPlayer(playerid, Ntick);
HideProgressBarForAll(FomeB[playerid]);
HideProgressBarForAll(SedeB[playerid]);
HideProgressBarForAll(SonoB[playerid]);
return 1;
}
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_REGISTRO)
{
if(response)
{
if(!strlen(inputtext))
{
format(String, sizeof(String), "{FFFFFF}Olб{00FF00} %s {FFFFFF}Vocк nгo й Registrado(a)!\nPor Favor uma Senha para se Registrar:", Nome(playerid));
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "{FFFFFF}Mundo Vida Real - Registro.", String, "Registrar", "Cancelar");
return 1;
}
GetPlayerName(playerid, StrContas, sizeof(StrContas));
format(StrContas, sizeof(StrContas), "Contas/%s.ini", Nome(playerid));
DOF2_CreateFile(StrContas);
DOF2_SetString(StrContas, "Senha", inputtext);
DOF2_SetString(StrContas, "Email", "SemEmail");
DOF2_SetInt(StrContas, "Dinheiro", 0);
DOF2_SetInt(StrContas, "Skin", 0);
DOF2_SetInt(StrContas, "Admin", 0);
DOF2_SetInt(StrContas, "Level", 0);
DadosPlayer[playerid][Logado] = 1;
minUP[playerid] = 9;
segUP[playerid] = 59;
DOF2_SetFloat(StrContas, "PosX", 1958.33);
DOF2_SetFloat(StrContas, "PosY", 1343.12);
DOF2_SetFloat(StrContas, "PosZ", 15.36);
DOF2_SetFloat(StrContas, "PosA", 269.15);
DOF2_SetInt(StrContas, "Interior", 0);
GameTextForPlayer(playerid, "~r~Registrado ~w~com Sucesso", 3000, 3);
PlayerPlaySound(playerid, 1057, 0, 0, 0);
SendClientMessage(playerid, AZULCLARO, "| INFO | {FFFFFF}Dados Criados com Sucesso!");
DOF2_SaveFile();
}
else
{
SendClientMessage(playerid, VERMELHO, "| INFO | {FFFFFF}Vocк foi expulso do servidor. {FF0000}Motivo: {FFFFFF}Cancelou o Registro!");
SetTimerEx("Kickar", 500, false, "d", playerid);
return 1;
}
}