SA-MP Forums Archive
[Ajuda] Setar a skin do player quando ele se conecta - 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 a skin do player quando ele se conecta (/showthread.php?tid=527304)



Setar a skin do player quando ele se conecta - RafaelOsio - 22.07.2014

Ai galera, irei ser rбpido porque minha internet estб caindo toda hora...
Й o seguinte:

Eu sou iniciante em "mundo" pawn e estou criando um GM pra eu poder brincar com meus amigos epah...
Por enquanto, ele tem um sistema de registro/login e eu estava criando as profissхes.
Entгo criei a profissгo e salvei ela
Tudo certinho...
Mas quando eu saio e entro novamente no servidor, ele nгo seta a skin da profissгo

Jб tentei testar se ele й da profissгo:

Код:
if(dini_Int(file,"Profissao") == 0)
				{
				    AddPlayerClass(48,1480.9756,-1766.6075,18.7958,90.0,0,0,0,0,0,0);
				    SetSpawnInfo(playerid, 0, 48, 1480.9756, -1766.6075, 18.7958, 90.0, 0, 0, 0, 0, 0, 0);
				    SetPlayerSkin(playerid, 48);
				}
				else if(dini_Int(file,"Profissao") == 1)
    			{
    			    AddPlayerClass(33,1480.9756,-1766.6075,18.7958,90.0,0,0,0,0,0,0);
    			    SetSpawnInfo(playerid, 0, 33, 1480.9756, -1766.6075, 18.7958, 90.0, 0, 0, 0, 0, 0, 0);
					SetPlayerSkin(playerid, 33);
				}
ja tentei salvar a skin dele


mas ele sempre seta a skin anterior
por exemplo: eu crio a minha conta(com a skin 4 e vo na pref pra pega meu emprego
atй ai tudo beleza, ele seta a profissao la no arquivo dini e seta a skin (33)
mas quando eu deslogo e logo denovo, em vez dele vim com a skin 33(da prof detetive que eu peguei antes), ele pega a skin 48(de desempregado)...

vo coloca aqui abaixo o meu sistema de registro e login:

Код:
//DIALOGO LOGIN
	if(dialogid == 001){

		if(response)
		{

			new aname[MAX_PLAYER_NAME], string1[321], file[321];
			GetPlayerName(playerid,aname, sizeof(aname));
			format(file, sizeof(file),"PLAYERS/%s.ini",aname);

			if(!strlen(inputtext))
			{
			    SendClientMessage(playerid,COR_VERMELHO,"Digite a senha de sua conta!");
			    format(string1, sizeof(string1),"{FFFFFF}Nick: {FFFF00}%s \n\n{FFFFFF}Status: {33AA33}Registrado! :D \n\n{FFFFFF}Insira sua senha para entrar. \n\n\n\nAcesse: {33AA33}forum.brasil007games.com/forum",aname);
	        	ShowPlayerDialog(playerid,001,DIALOG_STYLE_PASSWORD,"{33AA33}Brasil 007 Games - Entrar",string1,"Entrar","Sair");
			}
			else
			{

			if(dini_Int(file,"Senha") == strval(inputtext)){
				

				Logado[playerid] = 1;
			    PlayerInfo[playerid][pDinheiro] = dini_Int(file,"Dinheiro");
			    PlayerInfo[playerid][pProfissao] = dini_Int(file,"Profissao");
				GivePlayerMoney(playerid,dini_Int(file,"Dinheiro"));
				
				if(dini_Int(file,"Profissao") == 0)
				{
				    AddPlayerClass(48,1480.9756,-1766.6075,18.7958,90.0,0,0,0,0,0,0);
				    SetSpawnInfo(playerid, 0, 48, 1480.9756, -1766.6075, 18.7958, 90.0, 0, 0, 0, 0, 0, 0);
				    SetPlayerSkin(playerid, 48);
				}
				else if(dini_Int(file,"Profissao") == 1)
    			{
    			    AddPlayerClass(33,1480.9756,-1766.6075,18.7958,90.0,0,0,0,0,0,0);
    			    SetSpawnInfo(playerid, 0, 33, 1480.9756, -1766.6075, 18.7958, 90.0, 0, 0, 0, 0, 0, 0);
					SetPlayerSkin(playerid, 33);
				}
				
                SpawnPlayer(playerid);
                
                SendClientMessage(playerid,COR_VERDE,"Logado com sucesso. Divirta-se!");
                
			}

			else
			{
			    SendClientMessage(playerid,COR_VERMELHO,"Senha incorreta. Digite novamente!");
			    format(string1, sizeof(string1),"{FFFFFF}Nick: {FFFF00}%s \n\n{FFFFFF}Status: {33AA33}Registrado! :D \n\n{FFFFFF}Insira sua senha para entrar. \n\n\n\nAcesse: {33AA33}forum.brasil007games.com/forum",aname);
	        	ShowPlayerDialog(playerid,001,DIALOG_STYLE_PASSWORD,"{33AA33}Brasil 007 Games - Entrar",string1,"Entrar","Sair");
			}

			}

		 }
		 else
		 {
		    SendClientMessage(playerid,COR_VERMELHO,"Vocк foi kickado por nгo fazer seu login.");
		    Kick(playerid);
		 }

	}

	//DIALOGO REGISTRO
	if(dialogid == 000){

    if(response){

			new aname[MAX_PLAYER_NAME], string1[321], file[321];
			GetPlayerName(playerid,aname, sizeof(aname));
			format(file, sizeof(file),"PLAYERS/%s.ini",aname);

			if(!strlen(inputtext))
			{
			    SendClientMessage(playerid,COR_VERMELHO,"Insira uma senha para a sua conta.");
			    format(string1, sizeof(string1),"{FFFFFF}Nick: {FFFF00}%s \n\n{FFFFFF}Status: {FF0000}Nгo registrado! :( \n\n{FFFFFF}Insira uma senha para se registrar. \n\n\n\nAcesse: {33AA33}forum.brasil007games.com/forum",aname);
        		ShowPlayerDialog(playerid,000,DIALOG_STYLE_PASSWORD,"{33AA33}Brasil 007 Games - Registro",string1,"Registrar","Sair");
			}
			else
			{

			if(!IsNumeric(inputtext))
			{
	   			SendClientMessage(playerid,COR_VERMELHO,"Utilize apenas nъmeros!");
	   			format(string1, sizeof(string1),"{FFFFFF}Nick: {FFFF00}%s \n\n{FFFFFF}Status: {FF0000}Nгo registrado! :( \n\n{FFFFFF}Insira uma senha para se registrar. \n\n\n\nAcesse: {33AA33}forum.brasil007games.com/forum",aname);
    			ShowPlayerDialog(playerid,000,DIALOG_STYLE_PASSWORD,"{33AA33}Brasil 007 Games - Registro",string1,"Registrar","Sair");
			}
			else
			{

				//CRIA OS DADOS INICIAIS DO PLAYER
       			dini_Create(file);
			    dini_Set(file,"Senha",inputtext);
			    dini_Set(file,"Nick",aname);
			    dini_IntSet(file,"Dinheiro",5000);
				dini_IntSet(file,"Profissao",0);
				

			    PlayerInfo[playerid][pDinheiro] = 5000;
			    PlayerInfo[playerid][pProfissao] = 0;
			    

				SendClientMessage(playerid,COR_VERDE,"Registrado com sucesso. :D");

                format(string1, sizeof(string1),"{FFFFFF}Nick: {FFFF00}%s \n\n{FFFFFF}Status: {33AA33}Registrado! :D \n\n{FFFFFF}Insira sua senha para entrar. \n\n\n\nAcesse: {33AA33}forum.brasil007games.com/forum",aname);
        		ShowPlayerDialog(playerid,001,DIALOG_STYLE_PASSWORD,"{33AA33}Brasil 007 Games - Entrar",string1,"Entrar","Sair");
			}
			}
		 }
		 else
		 {
		    SendClientMessage(playerid,COR_VERMELHO,"Vocк foi kickado por nгo efetuar seu registro");
		    Kick(playerid);
		 }
		 
	}
e aqui vai й quando ele pega o emprego la na pref:

Код:
if(dialogid == 003)
	{
	
	    if(response == 1)
	    {
	    
	    	new aname[MAX_PLAYER_NAME], file[321];
			GetPlayerName(playerid,aname, sizeof(aname));
			format(file, sizeof(file),"PLAYERS/%s.ini",aname);
	    
	    
	        PlayerInfo[playerid][pProfissao] = 1;
	        
	        dini_IntSet(file,"Profissao", 1);
	        
			SetPlayerSkin(playerid,33);

			SendClientMessage(playerid,COR_VERDECLARO,"Parabйns! Vocк acaba de se tornar um detetive. :D");
	    
	    }
por favor, me ajudem!!! eu to ficando louco jб com isso....


Re: Setar a skin do player quando ele se conecta - n0minal - 22.07.2014

Jб olhou os parвmetros da funзгo SetSpawnInfo...


Re: Setar a skin do player quando ele se conecta - RafaelOsio - 22.07.2014

SetSpawnInfo(playerid, 0, 48, 1480.9756, -1766.6075, 18.7958, 90.0, 0, 0, 0, 0, 0, 0);
playerid
team(nao sei o que й)
skin(4 8 )
coordenada x (1480.9756)
coordenada y (1766.6075)
coordenada z (18.795 8 )
вngulo (90.0)
armas... (0, 0, 0, 0, 0, 0)

se tiver algo errado no setspawninfo, eu nao sei o que й...
se possivel, me da uma forзa ae ;P


Re: Setar a skin do player quando ele se conecta - Ts3 - 22.07.2014

Troque o SetSpawnInfo por SetPlayerPos.

#Edit

SetPlayerPos(playerid, 1480.9756, -1766.6075, 18.7958);

Troque esse pelo SetSpawnInfo, ou seja sу setarб a posiзa a skin setada vai ser o cуdigo abaixo desse..


Re: Setar a skin do player quando ele se conecta - n0minal - 22.07.2014

Com o SetSpawnInfo assim ele n tб spawnando com a skin 48?


Re: Setar a skin do player quando ele se conecta - RafaelOsio - 22.07.2014

Ai Ts3, eu troquei o SetSpawnInfo por SetPlayerPos.

Код:
if(dini_Int(file,"Senha") == strval(inputtext)){
				

				Logado[playerid] = 1;
			    PlayerInfo[playerid][pDinheiro] = dini_Int(file,"Dinheiro");
			    PlayerInfo[playerid][pProfissao] = dini_Int(file,"Profissao");
				GivePlayerMoney(playerid,dini_Int(file,"Dinheiro"));
				
				if(dini_Int(file,"Profissao") == 0)
				{
				    AddPlayerClass(48,1480.9756,-1766.6075,18.7958,90.0,0,0,0,0,0,0);
				    SetPlayerPos(playerid, 1480.9756, -1766.6075, 18.7958);
				    SetPlayerSkin(playerid, 48);
				}
				else if(dini_Int(file,"Profissao") == 1)
    			{
    			    AddPlayerClass(33,1480.9756,-1766.6075,18.7958,90.0,0,0,0,0,0,0);
    			    SetPlayerPos(playerid, 1480.9756, -1766.6075, 18.7958);
					SetPlayerSkin(playerid, 33);
				}
				
                SpawnPlayer(playerid);
                
                SendClientMessage(playerid,COR_VERDE,"Logado com sucesso. Divirta-se!");
                
			}
mas continua a mesma coisa...

#Edit
e outra, agora quando eu vou criar a minha conta, ele da aquele bug de quando o cara nao coloca no GM o AddPlayerClass, sabe ?



#Edit

n0minal..
quando eu crio a minha conta, deve spawnar com a skin 48, certo ?
quando eu pego a profissгo, deve spawnar com a skin 33
e isso nao estб acontecendo


Re: Setar a skin do player quando ele se conecta - Ts3 - 22.07.2014

Quando vocк loga estб setando qual skin?


Re: Setar a skin do player quando ele se conecta - RafaelOsio - 22.07.2014

Olha sу
vo explica direitinho...
eu vo la e entro no serv, certo ?

dae eu crio minha conta
(antes de eu trocar o SetSpawnInfo pelo SetPlayerPos(agora quando eu mudei, ele buga na hora de registrar e logar)) ele criava a conta e logava direitinho, sem nenhum bug. eu entrava com a SKIN 48 (skin de desempregado)
dae eu vou la na pref e pego a profissao detetive(no momento ele seta a skin 33, tudo numa boa)
mas quando eu deslogo e logo denovo, em vez de vir com a skin 33(detetive), ele vem com a skin 48(desempregado)


Re: Setar a skin do player quando ele se conecta - Ts3 - 22.07.2014

Posta o OnPlayerDisconnect.


Re: Setar a skin do player quando ele se conecta - RafaelOsio - 22.07.2014

Mals por demorar, й que a internet caiu...

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

	SalvarDados(playerid);

	if(IsPlayerInAnyVehicle(playerid))
	{
	    new veiculo = GetPlayerVehicleID(playerid);
	    VeiculoOcupado[veiculo] = false;
	}

	return 1;
}
AKI E O SalvarDados

Код:
stock SalvarDados(playerid)
{

    new aname[MAX_PLAYER_NAME], file[321];
    GetPlayerName(playerid,aname,sizeof(aname));
	format(file,sizeof(file),"PLAYERS/%s.ini", aname);

    dini_IntSet(file,"Dinheiro",GetPlayerMoney(playerid));
    dini_IntSet(file,"Profissao",PlayerInfo[playerid][pProfissao]);

}