[Ajuda] Salvando / Pegando / Setando udb,s e variaveis Atuais.
#1


Pessoal estou com problemas quando o player desloga e logar de salvar e setar os dados de algumas coisas tipo udb de posiзгo etc. vou mostrar meu logarplayer e o playerdisconect.

Code:
public LogarPlayer(playerid) //Quando Logar pega os dados logando
{
	GivePlayerMoney(playerid, udb_getAccState(PlayerName(playerid)) - GetPlayerMoney(playerid));
	Profissao[playerid] = udb_getProf(PlayerName(playerid));
	Petrol[playerid] = udb_getGasoline(PlayerName(playerid));
	Level[playerid] = pap_CarregarInt(playerid, "level");
	SendClientMessage(playerid, COLOR_GREEN, "Logado");
	SendClientMessage(playerid, COLOR_GREEN, "Dinheiro Carregado.");
	SendClientMessage(playerid, COLOR_GREEN, "Primeramente digite /profs e /ajuda, ou pessa ajuda a um ADMIN");
	if(udb_getPrisao(PlayerName(playerid)) == 1 || Procurados[playerid] == 1){
		Procurados[playerid] = 0;
		new cela;
		Presos[playerid] = 1;
		cela = random(4);
		SetPlayerFacingAngle(playerid,0);
		if(cela == 1){
		  SetPlayerPos(playerid,227.6684,110.1895,999.0156);
		  SetPlayerInterior(playerid,10);
		}
		else if(cela == 2){
		  SetPlayerPos(playerid,223.0134,110.3193,999.0156);
		  SetPlayerInterior(playerid,10);
		}
		else if(cela == 3){
		  SetPlayerPos(playerid,219.3730,110.2772,999.0156);
		  SetPlayerInterior(playerid,10);
		}
		else if(cela == 4){
		  SetPlayerPos(playerid,214.9654,109.4626,999.0156);
		  SetPlayerInterior(playerid,10);
		}
		SendClientMessage(playerid,COLOR_RED,"Vocк deve ter cometido algum crime, por isso foi preso.");
		SendClientMessage(playerid,COLOR_RED,"Para sair mais cedo da prisгo, vocк pode pagar a fianзa de $1500,");
		SendClientMessage(playerid,COLOR_RED,"escrevendo /fianca.");
	}
	else{
		SpawnPlayer(playerid);
	}
	
}
Code:
public OnPlayerDisconnect(playerid, reason)
{
	  if (PLAYERLIST_authed[playerid] == 1) {
	  // Was loggedin, so save the data!
		udb_setAccState(PlayerName(playerid),GetPlayerMoney(playerid));//Dinheiro
		new Float:health;
		Presos[playerid] = 0; //obs: Deixa o cara livre?
		Procurados[playerid] = 0; //obs: o cara procurado fica livre?
		GetPlayerHealth(playerid, health); //Vida Pega a atual vida do personagem
		udb_setHealth(PlayerName(playerid), health); //Seta a vida no SAVE ??? talves
		udb_setGasoline(PlayerName(playerid), Petrol[playerid]);//Seta Gasolina
		udb_setProf(PlayerName(playerid), Profissao[playerid]);//Seta profissao?
    pap_SalvarInt(playerid, "level", Level[playerid]);	// salvar level final player.txt

		PLAYERLIST_authed[playerid] = 0; //zera algo que nгo sei o que й sera o ID?
		TextDrawHideForPlayer(playerid, SPClock); // linha adicionada para o tempo real.
		printf("Jogador %s (ID: %d) deixou o servidor. Seus dados foram salvos com sucesso",PlayerName(playerid),playerid);
		printf("Jogador %s (ID: %d) saiu do server. OnPlayerDisconnect processou",PlayerName(playerid),playerid);
	  }
 	  else {
       printf("Jogador %s (ID: %d) deixou o servidor sem se registrar/logar",PlayerName(playerid),playerid);
       return 0;
    }
    return 1;
}
A pergunta й: como eu pego a posiзгo atual minha e guardo em um arquivo udb de posiзгo e depois quando eu digitar /logar que abre o LogarPlayer de ele pegar a posiзгo guardada e setar minha posiзгo atual pra eu nacer no mesmo local que eu desloguei.

Bem eu sou bem leigo entгo seria o sequinte quais as linhas de comando corretas pra por no disconnect e no logarplayer?

Obs: Meu GM й RPG mas й similar a quase todos de salvar e pegar dados de udb,s

Desde ja agradeзo Muito quem souber e puder me falar
Reply
#2

Pessoal ninguйm sabe? quais comandos colocar?
Reply
#3

ajudava se soubesse mas nao sei
Reply
#4

Tipo ja que ninuguйm sabe como fazer esse geito outra soluзгo seria que o player nascesse no local de trabalho tipo caminhoneiro nasce na area de carga e assim ia....

Qual local eu colocaria esses IF,s para que quando logasse ja fosse direto pra os locais de emprego?
Reply
#5

isso vc coloca no OnPlayerRequestClass
Reply
#6

Vi que vocк estб usando o pap

Tipo, recomendo vocк retirar o dudb e usar sу o pap....
Pap te darб mais recursos, e eu nгo recomendo usar dois sistemas desse tipo.
Reply
#7

Quote:
Originally Posted by [VGS
speliarmos_OC ]
Vi que vocк estб usando o pap

Tipo, recomendo vocк retirar o dudb e usar sу o pap....
Pap te darб mais recursos, e eu nгo recomendo usar dois sistemas desse tipo.
Sim mas eu nгo sei passar tudo pra PAP se vc puder me ajudar agradeceria o logarplayer e o disconnect esta ali acima mas nгo sei as linhas corretas e o que escrever talvez se eu souber como eu faзo o dinheiro com pap e mais algum deles tipo salvar skin eu consiga atravez dos exemplos fazer nos outros, e eu nгo sei o limite do PAP e como ficariam os arquivos, entгo se puder ajudar agradeзo, abraзos
Reply
#8

Eu tabem to com o mesmo erro , se alguem puder ajuda Aqui ein !
o meu e problema que ele nao sava a prof , quando ele sai e volta a prof nao ta la !

CODIGO DO MEU GM
pawn Code:
public LogarPlayer(playerid)
{
  new Float:X, Float:Y, Float:Z, Float:ang, Float:health;
    GivePlayerMoney(playerid, udb_getAccState(PlayerName(playerid)) - GetPlayerMoney(playerid));
    udb_getHealth(PlayerName(playerid), health);
    SetPlayerHealth(playerid, health);
    udb_getPosition(PlayerName(playerid), X, Y, Z);
    udb_getAng(PlayerName(playerid), ang);
    SetSpawnInfo(playerid, 1, udb_getSkin(PlayerName(playerid)), X, Y, Z, ang, 0, 0, 0, 0, 0, 0);
  udb_getProf(PlayerName(playerid));
    Profissao[playerid] = udb_getProf(PlayerName(playerid));
    Petrol[playerid] = udb_getGasoline(PlayerName(playerid));

    SendClientMessage(playerid, COLOR_GREEN, "Logado");
    SendClientMessage(playerid, COLOR_GREEN, "Dinheiro Carregado.");
    SendClientMessage(playerid, COLOR_GREEN, "Primeramente digite /profs e /ajuda, ou pessa ajuda a um ADMIN");
    if(udb_getPrisao(PlayerName(playerid)) == 1 || Procurados[playerid] == 1){
        Procurados[playerid] = 0;
        new cela;
        Presos[playerid] = 1;
        cela = random(4);
        SetPlayerFacingAngle(playerid,0);
        if(cela == 1){
          SetPlayerPos(playerid,227.6684,110.1895,999.0156);
          SetPlayerInterior(playerid,10);
        }
        else if(cela == 2){
          SetPlayerPos(playerid,223.0134,110.3193,999.0156);
          SetPlayerInterior(playerid,10);
        }
        else if(cela == 3){
          SetPlayerPos(playerid,219.3730,110.2772,999.0156);
          SetPlayerInterior(playerid,10);
        }
        else if(cela == 4){
          SetPlayerPos(playerid,214.9654,109.4626,999.0156);
          SetPlayerInterior(playerid,10);
        }
        SendClientMessage(playerid,COLOR_RED,"Vocк deve ter cometido algum crime, por isso foi preso.");
        SendClientMessage(playerid,COLOR_RED,"Para sair mais cedo da prisгo, vocк pode pagar a fianзa de $1500,");
        SendClientMessage(playerid,COLOR_RED,"escrevendo /fianca.");
    }
    else{
        SpawnPlayer(playerid);
    }
   
}
pawn Code:
public OnPlayerDisconnect(playerid)
{
      if (PLAYERLIST_authed[playerid] == 1) {
      // Was loggedin, so save the data!
        udb_setAccState(PlayerName(playerid),GetPlayerMoney(playerid));
        new Float:health;
        Presos[playerid] = 0;
        Procurados[playerid] = 0;
        GetPlayerHealth(playerid, health);
      udb_setHealth(PlayerName(playerid), health);
        udb_setGasoline(PlayerName(playerid), Petrol[playerid]);
    udb_setProf(PlayerName(playerid), Profissao[playerid]);//Seta profissao?
        PLAYERLIST_authed[playerid] = 0;
        printf("Jogador %s (ID: %d) deixou o servidor. Seus dados foram salvos com sucesso",PlayerName(playerid),playerid);
      }
      else {
       printf("Jogador %s (ID: %d) deixou o servidor sem se registrar/logar",PlayerName(playerid),playerid);
       return 0;
    }
    return 1;
}
Reply
#9

Iaк pessoal, estou meio de saнda agora, mas aconselho vocкs olharem este post http://forum.sa-mp.com/index.php?top...542#msg1041542

Nele teve uma pessoa que tambйm usava o mesmo sistema de vocкs, eu adaptei pro PAP porйm sу o que ele me mandou. Tentem ver se entendem, creio que nгo seja muito difнcil. Flws, boa sorte!
Reply
#10

Tenta assim:
pawn Code:
dUserSetINT("NomeDoPlayer").("Variavel",(1));
Vai salvar assim:
Na conta: NomeDoPlayer[.dudb.sav]
Dentro da conta:
pawn Code:
Variavel=1
Agora se colocar:
pawn Code:
dUserSetINT("NomeDoPlayer").("Variavel",(0));
Vai salvar assim:
Na conta: NomeDoPlayer[.dudb.sav]
Dentro da conta:
pawn Code:
Variavel=0
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)