[Ajuda] Erro ao salvar
#1

Oi galera tudo bom? Espero que sim.

Bom vamos comeзar.

Eu fiz essa minha GM do zero estudando tudo o que a de disponнvel no fуrum e vendo alguns videos no *******, mas infelizmente ela tem alguns erros que alguns eu mesmo irei resolver, mas tem um erro que esta me perturbando e que nгo consigo resolver de jeito nenhum. O erro й no sistema de login/registro, eu mesmo fiz o sistema de login/registro com os meus conhecimentos, abaixo estarб os cуdios para vocкs com um nнvel superior ao meu analisar.

Aqui esta a public "OnDialogResponse"

Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid){

    case DIALOG_REGISTRO:
    {
        if( response )
        {
            if( strlen( inputtext ) < 3 || strlen( inputtext ) > 15 || !strlen( inputtext ) )
            {

              	ShowPlayerDialog( playerid, DIALOG_REGISTRO ,DIALOG_STYLE_INPUT, "» SERVER", "{FFFFFF}Sua Senha Deve Conter No Mнnimo {F50717}5 {FFFFFF}Caracteres!{F50717}\nTente Novamente!","Registrar","Cancelar" );

                return 1;
            }

			// Criar Arquivo E Colocar Os Valores //
            DOF2_CreateFile( GetPlayerArquivo( playerid ) );
            DOF2_SetString( GetPlayerArquivo( playerid ),"Senha", inputtext );
            DOF2_SetInt( GetPlayerArquivo( playerid ), "Score" ,0 );
            DOF2_SetInt( GetPlayerArquivo( playerid ), "Skin" ,0 );
            DOF2_SetInt( GetPlayerArquivo( playerid ),"Dinheiro", 1500 );
            DOF2_SetInt( GetPlayerArquivo( playerid ), "Admin",0 );
			DOF2_SaveFile();

			SendClientMessage(playerid, -1, "{16F00E} | INFO | {16F00E}Vocк se registrou no servidor,tenha um уtimo jogo!.");

			new Loginplayer[980];
			format(Loginplayer, sizeof(Loginplayer), "\n{00FF00}Sua conta foi registrada.{FFFFFF}\n\nSeja bem vindo(a) ao SERVER\n\n\n{FC8403}Usuбrio(a): {FFFFFF}%s\n\n\n{FC8403}Status da conta: {00FF00}Registrada\n\n{FFFFFF}Insira sua senha abaixo para logar:",GetPlayerNameEx(playerid));
            ShowPlayerDialog( playerid, DIALOG_LOGAR ,DIALOG_STYLE_PASSWORD, "»{F50A0E}Conta", Loginplayer,"Entrar","Cancelar" );

        }
        else Kick( playerid );
    }

	case DIALOG_LOGAR:
    {
        if( response )
        {
            if( strlen( inputtext ) < 3 || strlen( inputtext ) > 15 || !strlen( inputtext ) )
            {

       			SendClientMessage( playerid, -1, "{F50717} | ERRO | {F50717}Digite Sua Senha Corretamente!." );

				new Loginplayer[980];
       			format(Loginplayer, sizeof(Loginplayer), "\n{FC8403}Usuбrio(a): {FFFFFF}%s\n\n\n{FC8403}Status da conta: {00FF00}Registrada\n\n{F50A0E}Insira sua senha corretamente!",GetPlayerNameEx(playerid));
       			ShowPlayerDialog( playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "»{F50A0E}Conta", Loginplayer,"Entrar","Cancelar" );

                return 1;
            }
            if( strcmp( inputtext, DOF2_GetString( GetPlayerArquivo( playerid ), "Senha" )) == 0 )
            {

                Player[playerid][Skin] = DOF2_GetInt(GetPlayerArquivo(playerid), "Skin");
                Player[playerid][Admin] = DOF2_GetInt(GetPlayerArquivo(playerid), "Admin");
                Player[playerid][Dinheiro] = DOF2_GetInt(GetPlayerArquivo(playerid), "Dinheiro");
				GivePlayerMoney(playerid, Player[playerid][Dinheiro]);
				SetPlayerSkin(playerid, Player[playerid][Skin]);

            }
            else
            {
                Erro[ playerid ] ++; // Aquivo adiciona + 1 a variavel erro...
                if ( Erro[ playerid ] == 3 ){ SavePlayer(playerid); Kick ( playerid ); } // se a variavel chegar a 3, kicka o player pois ele errou 5 vezes a senha.

				new Loginplayer[980];
       			format(Loginplayer, sizeof(Loginplayer), "\n{FC8403}Usuбrio(a): {FFFFFF}%s\n\n\n{FC8403}Status da conta: {00FF00}Registrada\n\n{F50A0E}Insira sua senha corretamente!",GetPlayerNameEx(playerid));
       			ShowPlayerDialog( playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "»{F50A0E}Conta", Loginplayer,"Entrar","Cancelar" );

            }
        }
        else{
		 SendClientMessage(playerid, 0xF50A0EFF, "| ERRO | Vocк exedeu a quantidade de erros, portanto vocк foi kickado do servidor!");
         SavePlayer( playerid );
		 Kick( playerid );

		}
    }

    }
	return 1;
}
Aqui estб o "GetPlayerArquivo"

Код:
GetPlayerArquivo(playerid)
{
    new ArquivoPlayer[ 30 ];
    format( ArquivoPlayer, sizeof( ArquivoPlayer ), "Contas/%s.ini", GetPlayerNameEx( playerid ) );
    return ArquivoPlayer;
}
Aqui estб o "SavePlayer" como mostra na public "OnDialogResponse"

Код:
SavePlayer(playerid)
{
    if( DOF2_FileExists(GetPlayerArquivo(playerid))) DOF2_CreateFile(GetPlayerArquivo(playerid));
    {

		Player[playerid][Dinheiro] = GetPlayerMoney(playerid);
		Player[playerid][Skin] = GetPlayerSkin(playerid);
        DOF2_SetInt(GetPlayerArquivo(playerid), "Skin", Player[playerid][Skin]);
        DOF2_SetInt(GetPlayerArquivo(playerid), "Score", Player[playerid][Score]);
        DOF2_SetInt(GetPlayerArquivo(playerid), "Dinheiro", Player[playerid][Dinheiro]);
        DOF2_SetInt(GetPlayerArquivo(playerid), "Admin", Player[playerid][Admin]);
        DOF2_SaveFile();

    }
    return 1;
}
E por ultimo aqui estб a public "OnPlayerDisconnect"

Код:
public OnPlayerDisconnect(playerid, reason)
{
    SavePlayer(playerid);
	return 1;
}
O erro nisso tudo, й que quando eu deslogo do servidor e logo novamente, sу esta salvo o meu dinheiro em mгos, mas infelizmente nгo salva a skin, vou colocar o comando /setskin para vocкs analisarem.

Um outro problema й quando morre com a skin. Por exemplo, eu coloco no /setskin pra me dar a skin 230 que й a do mendigo, atй ai tudo bem, Posso fazer tudo o que estiver disponнvel no server, mas se eu morrer, eu spawno com a skin de novato(uma skin que eu escolhi pra quando logarem no server), sу que tipo eu morro, mas sу pra min que a skin de novato aparece, pra outra pessoa que estiver dentro do server, ela ainda vai continuar vendo a skin 230 do mendigo mas eu vou ver a de novato. Se puderem me ajudar nisso tambйm eu agradeзo. <3

Код:
CMD:setskin(playerid, params[])
{
	if(!IsPlayerAdmin(playerid) ) return SendClientMessage(playerid, 0xF50A0EFF, "| ERRO | Comando invбlido!");
	new id, skin, jogador[24], admin[24], string[128], strg[128];
	if(sscanf(params, "dd", id, skin)) return SendClientMessage(playerid, 0xF50A0EFF, "| ERRO | Use: /setskin [id] [skin]");
    {
        if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xF50A0EFF, "| ERRO | Jogador invalido!");
		if(skin < 0 || skin > 299) return SendClientMessage(playerid, 0xF50A0EFF,"| ERRO | Sу й permidito as skin de 0 a 299!");
		GetPlayerName(id, jogador, 24);
		format(string, sizeof(string), "| SERVER | O(A) Administrador(a) %s trocou sua skin!", GetPlayerNameEx(playerid));
		SetPlayerSkin(id, skin);
		GetPlayerName(playerid, admin, 24);
		SendClientMessage(playerid, 0x0099CCAA, string);
		format(strg, sizeof(strg), "| INFO | Comando efetuado com sucesso!");
		SendClientMessage(playerid, 0x0099CCAA, strg);
	}
	return 1;
}
Jб pesquisei em tudo quanto й lugar mas infelizmente nгo consigo solucionar o problema.

Creio eu que o problema й no comando /setskin, pois eu fiz tudo certinho no resto.

Se alguйm puder me ajudar agradeзo desde ja. <3
Reply


Messages In This Thread
Erro ao salvar - by WB - 25.01.2018, 17:46
Re: Erro ao salvar - by Bieell - 25.01.2018, 18:09
Re: Erro ao salvar - by WB - 25.01.2018, 18:31
Re: Erro ao salvar - by Marllun - 25.01.2018, 18:36
Re: Erro ao salvar - by WB - 25.01.2018, 18:44
Re: Erro ao salvar - by Cleyson - 25.01.2018, 18:50
Re: Erro ao salvar - by WB - 25.01.2018, 19:08
Re: Erro ao salvar - by Bieell - 25.01.2018, 19:21
Re: Erro ao salvar - by WB - 25.01.2018, 19:25
Re: Erro ao salvar - by Gleidson - 25.01.2018, 19:33

Forum Jump:


Users browsing this thread: 1 Guest(s)