[Ajuda] Setar a skin do player quando ele se conecta
#1

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....
Reply
#2

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

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
Reply
#4

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..
Reply
#5

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

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
Reply
#7

Quando vocк loga estб setando qual skin?
Reply
#8

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)
Reply
#9

Posta o OnPlayerDisconnect.
Reply
#10

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]);

}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)