SA-MP Forums Archive
[Ajuda] Setar skin ao logar - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Setar skin ao logar (/showthread.php?tid=555603)



Setar skin ao logar - RafaelOsio - 08.01.2015

Ai galera, blz ? O meu problema й o seguinte: Eu tenho meu sistema de salvamento e criei a primeira profissгo do meu GM, atй ai tudo bem. Quando o player se torna daquela profissгo ele ganha uma skin e jб й salva:

Код:
//PEGAR PROFISSAO CAMINHONEIRO
    if(strcmp(cmdtext, "/virarcaminhoneiro", true) == 0)
    {
        Player[playerid][Emprego] = 1;
		Player[playerid][Skin] = 202;
        SendClientMessage(playerid, Cor_Caminhoneiro, "Parabйns! Agora vocк й um caminhoneiro");
        SetPlayerSkin(playerid, Player[playerid][Skin]);
        SetPlayerColor(playerid, Cor_Caminhoneiro);
        
        return 1;
    }
Agora й quando o player se desconecta, que ira salvar os dados dele:

Код:
public OnPlayerDisconnect(playerid, reason)
{

	new db[40], nome[MAX_PLAYER_NAME];
	GetPlayerName(playerid, nome, 32);
	format(db, 40, "PLAYERS/%s.ini", nome);
	
	Player[playerid][Dinheiro] = GetPlayerMoney(playerid);
	DOF2_SetInt(db, "Dinheiro", Player[playerid][Dinheiro]);
	DOF2_SetInt(db, "Respeito", Player[playerid][Respeito]);
	DOF2_SetInt(db, "Skin", Player[playerid][Skin]);//AQUI ELE SALVA O VALOR DA VARIAVEL
	DOF2_SaveFile();
	DOF2_Exit();

	return 1;
}
Atй ai tudo bem... Ele salva com perfeiзгo
O problema й quando ele se conecta. A skin que ta salva nгo й setada...
Eu gostaria de ajuda com isso. O que eu deveria fazer para setar a skin que ta salva ?
Nao sei se devo postar mais algum cуdigo, mas se precisar, й sу pedir... Obrigado


Re: Setar skin ao logar - WLSF - 08.01.2015

Posta o cуdigo que vocк estб utilizando atualmente para fazer o load da skin, no OnPlayerConnect...

Algo como:
pawn Код:
public OnPlayerConnect(playerid) {
    //carrega a skin
    DOF2...
    skinValue = DOF2...

    SetPlayerSkin(playerid, skinValue);
}



Re: Setar skin ao logar - RafaelOsio - 08.01.2015

Ele ta sem sistema de registro/login por que eu nao consigo fazer de jeito nenhum. Entгo ele й sу assim :P

Код:
public OnPlayerConnect(playerid)
{

	TextDrawShowForPlayer(playerid, TextHora[playerid]);
	TextDrawShowForPlayer(playerid, TextData[playerid]);

	new db[40], nome[MAX_PLAYER_NAME];
	GetPlayerName(playerid, nome, 32);
	format(db, 40, "PLAYERS/%s.ini", nome);
	
	if(DOF2_FileExists(db))
	{
		Player[playerid][Dinheiro] = DOF2_GetInt(db, "Dinheiro");
		Player[playerid][Respeito] = DOF2_GetInt(db, "Respeito");
		Player[playerid][Skin] = DOF2_GetInt(db, "Skin");
		GivePlayerMoney(playerid, Player[playerid][Dinheiro]);
		AddPlayerClass(Player[playerid][Skin], 1107.9171,-1796.3423,16.5938, 90.0, 0, 0, 0, 0, 0, 0);

	}
	else
	{
 		DOF2_CreateFile(db);
 		Player[playerid][Skin] = 29;
 		DOF2_SetInt(db, "Dinheiro", Player[playerid][Dinheiro]);
 		DOF2_SetInt(db, "Respeito", Player[playerid][Respeito]);
 		DOF2_SetInt(db, "Skin", Player[playerid][Skin]);
 		DOF2_SaveFile();

	}
}



Re: Setar skin ao logar - WLSF - 08.01.2015

Vocк recupera a skin para a variбvel, com tudo, aparentemente vocк nгo estб setando ela para o jogador...

Код:
SetPlayerSkin(playerid, skin);



Re: Setar skin ao logar - RafaelOsio - 08.01.2015

Na real nгo deu muito certo nao -.-
Eu exclui meu arquivo da minha conta, como se eu excluisse minha conta.
Ai criei uma nova e ele setou a skin inicial(29). ate ai tudo bem.
mas quando eu me tornei um caminhoneiro, sai do servidor e entrar novamente, ele nao entrou com a skin do caminhoneiro, e sim com a skin 29 -> SKIN INICIAL
entao nao deu muito certo...


Re: Setar skin ao logar - WLSF - 08.01.2015

poste o cуdigo como vocк fez.. Esses detalhes sгo essenciais para que os membros possam te ajudar, nгo tem como adivinhar oque vocк quer e como vocк fez...


Re: Setar skin ao logar - humildadeforever - 08.01.2015

Nesse caso nгo entendo o porquк de usar variбvel pra salvar e setar a skin. Й muito inъtil sendo que existe SetPlayerSkin e GetPlayerSkin. Eu uso sу para salvar a skin antes de algum evento/troca pra depois setar a anterior novamente, mas enfim... Tente assim:

pawn Код:
public OnPlayerConnect(playerid)
{

    TextDrawShowForPlayer(playerid, TextHora[playerid]);
    TextDrawShowForPlayer(playerid, TextData[playerid]);

    new db[40], nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, nome, 32);
    format(db, 40, "PLAYERS/%s.ini", nome);

    if(DOF2_FileExists(db))
    {
        Player[playerid][Dinheiro] = DOF2_GetInt(db, "Dinheiro");
        Player[playerid][Respeito] = DOF2_GetInt(db, "Respeito");
        Player[playerid][Skin] = DOF2_GetInt(db, "Skin");
        SetPlayerSkin(playerid, Player[playerid][Skin]);
        GivePlayerMoney(playerid, Player[playerid][Dinheiro]);

    }
    else
    {
        DOF2_CreateFile(db);
        Player[playerid][Skin] = 29;
        DOF2_SetInt(db, "Dinheiro", Player[playerid][Dinheiro]);
        DOF2_SetInt(db, "Respeito", Player[playerid][Respeito]);
        DOF2_SetInt(db, "Skin", Player[playerid][Skin]);
        DOF2_SaveFile();

    }
}



Re: Setar skin ao logar - RafaelOsio - 08.01.2015

Willian_Luigi: Vou colocar aqui os cуdigos do OnPlayerConnect, OnPlayerDisconnect e o comando, que acho ser os necessбrios ok ?

OnPlayerConnect: (usei o que humildadeforever postou, mas ainda nгo resolveu)
Код:
 TextDrawShowForPlayer(playerid, TextHora[playerid]);
	TextDrawShowForPlayer(playerid, TextData[playerid]);

	new db[40], nome[MAX_PLAYER_NAME];
	GetPlayerName(playerid, nome, 32);
	format(db, 40, "PLAYERS/%s.ini", nome);
	
	if(DOF2_FileExists(db))
	{
		Player[playerid][Dinheiro] = DOF2_GetInt(db, "Dinheiro");
        Player[playerid][Respeito] = DOF2_GetInt(db, "Respeito");
        Player[playerid][Skin] = DOF2_GetInt(db, "Skin");
        SetPlayerSkin(playerid, Player[playerid][Skin]);
        GivePlayerMoney(playerid, Player[playerid][Dinheiro]);

	}
	else
	{
	    DOF2_CreateFile(db);
        Player[playerid][Skin] = 29;
        DOF2_SetInt(db, "Dinheiro", Player[playerid][Dinheiro]);
        DOF2_SetInt(db, "Respeito", Player[playerid][Respeito]);
        DOF2_SetInt(db, "Skin", Player[playerid][Skin]);
        DOF2_SaveFile();
	}
OnPlayerDisconnect:
Код:
new db[40], nome[MAX_PLAYER_NAME];
	GetPlayerName(playerid, nome, 32);
	format(db, 40, "PLAYERS/%s.ini", nome);
	
	Player[playerid][Dinheiro] = GetPlayerMoney(playerid);
	DOF2_SetInt(db, "Dinheiro", Player[playerid][Dinheiro]);
	DOF2_SetInt(db, "Respeito", Player[playerid][Respeito]);
	DOF2_SetInt(db, "Skin", Player[playerid][Skin]);
	DOF2_SaveFile();
	DOF2_Exit();
Comando:
Код:
if(strcmp(cmdtext, "/virarcaminhoneiro", true) == 0)
    {
        Player[playerid][Emprego] = 1;
		Player[playerid][Skin] = 202;
        SendClientMessage(playerid, Cor_Caminhoneiro, "Parabйns! Agora vocк й um caminhoneiro");
        SetPlayerSkin(playerid, Player[playerid][Skin] = 202);
        SetPlayerColor(playerid, Cor_Caminhoneiro);

        return 1;
    }
Ai estб os cуdigos Willian_Luigi

-------------------------------||----------------------------------

humildadeforever, eu coloquei o cуdigo que vocк postou.
Eu uso a variavel pra setar a skin por que eu nгo posso adivinha a skin que ele desconectou antes, ou seja, quando a ele se conecta, a variavel ganha o valor que estб salvo la no arquivo da minha conta. Com isso ele seta a skin com esse valor. Nгo estб certo meu pensamento ?
E outra coisa, com o comando que vocк postou, nгo tem o AddPlayerClass. Sendo assim, o personagem nasce com a skin do CJ e nasce caindo do meio do nada(creio que aconteзa isso por nгo existir uma coordenada definida para ele nascer...)


Re: Setar skin ao logar - humildadeforever - 08.01.2015

Quote:
Originally Posted by RafaelOsio
Посмотреть сообщение
Willian_Luigi: Vou colocar aqui os cуdigos do OnPlayerConnect, OnPlayerDisconnect e o comando, que acho ser os necessбrios ok ?

OnPlayerConnect: (usei o que humildadeforever postou, mas ainda nгo resolveu)
Код:
 TextDrawShowForPlayer(playerid, TextHora[playerid]);
	TextDrawShowForPlayer(playerid, TextData[playerid]);

	new db[40], nome[MAX_PLAYER_NAME];
	GetPlayerName(playerid, nome, 32);
	format(db, 40, "PLAYERS/%s.ini", nome);
	
	if(DOF2_FileExists(db))
	{
		Player[playerid][Dinheiro] = DOF2_GetInt(db, "Dinheiro");
        Player[playerid][Respeito] = DOF2_GetInt(db, "Respeito");
        Player[playerid][Skin] = DOF2_GetInt(db, "Skin");
        SetPlayerSkin(playerid, Player[playerid][Skin]);
        GivePlayerMoney(playerid, Player[playerid][Dinheiro]);

	}
	else
	{
	    DOF2_CreateFile(db);
        Player[playerid][Skin] = 29;
        DOF2_SetInt(db, "Dinheiro", Player[playerid][Dinheiro]);
        DOF2_SetInt(db, "Respeito", Player[playerid][Respeito]);
        DOF2_SetInt(db, "Skin", Player[playerid][Skin]);
        DOF2_SaveFile();
	}
OnPlayerDisconnect:
Код:
new db[40], nome[MAX_PLAYER_NAME];
	GetPlayerName(playerid, nome, 32);
	format(db, 40, "PLAYERS/%s.ini", nome);
	
	Player[playerid][Dinheiro] = GetPlayerMoney(playerid);
	DOF2_SetInt(db, "Dinheiro", Player[playerid][Dinheiro]);
	DOF2_SetInt(db, "Respeito", Player[playerid][Respeito]);
	DOF2_SetInt(db, "Skin", Player[playerid][Skin]);
	DOF2_SaveFile();
	DOF2_Exit();
Comando:
Код:
if(strcmp(cmdtext, "/virarcaminhoneiro", true) == 0)
    {
        Player[playerid][Emprego] = 1;
		Player[playerid][Skin] = 202;
        SendClientMessage(playerid, Cor_Caminhoneiro, "Parabйns! Agora vocк й um caminhoneiro");
        SetPlayerSkin(playerid, Player[playerid][Skin] = 202);
        SetPlayerColor(playerid, Cor_Caminhoneiro);

        return 1;
    }
Ai estб os cуdigos Willian_Luigi

-------------------------------||----------------------------------

humildadeforever, eu coloquei o cуdigo que vocк postou.
Eu uso a variavel pra setar a skin por que eu nгo posso adivinha a skin que ele desconectou antes, ou seja, quando a ele se conecta, a variavel ganha o valor que estб salvo la no arquivo da minha conta. Com isso ele seta a skin com esse valor. Nгo estб certo meu pensamento ?
E outra coisa, com o comando que vocк postou, nгo tem o AddPlayerClass. Sendo assim, o personagem nasce com a skin do CJ e nasce caindo do meio do nada(creio que aconteзa isso por nгo existir uma coordenada definida para ele nascer...)
Nгo tem necessidade da AddPlayerClass.

Estude as funзхes:

SetSpawnInfo
SpawnPlayer
SetPlayerInterior


Re: Setar skin ao logar - Justing3 - 10.01.2015

Removido.