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