[DUV], pessoal em qual dessas udb eu salvo o level? FAVOR
#1

Pessoal por favor se alguйm puder me dar uma dica agradeзo, fiz sistema de level no meu RPG e a cada tempo o player ganha 1 level o problema й quando sai do jogo o level zera ou seja tenhu que guardar em um desses udb? certo? pra poder salvar depois e assim fazer meu sistema de profissoes por level.

A pergunta й em qual udb eu faзo isso ou como faзo isso, alguйm tem idйia?


forward udb_setClantag(nickname[], new_clantag[]);
forward udb_setPwdHash(nickname[], new_pwdhash);
forward udb_setAccState(nickname[], new_accstate);
forward udb_setPosition(nickname[], Float:new_x, Float:new_y, Float:new_z);
forward udb_setAng(nickname[], Float:new_ang);
forward udb_setSkin(nickname[], new_skin);
forward udb_setBankMoney(nickname[], new_bankmoney);
forward udb_setHealth(nickname[], Float:new_health);
forward udb_setGasoline(nickname[], new_gasoline);
forward udb_setHabaerea(nickname[], new_habaerea);
forward udb_setHabterre(nickname[], new_habterre);
forward udb_setHabnauti(nickname[], new_habnauti);
forward udb_setPrisao(nickname[], new_prisao);
forward udb_setProf(nickname[], new_prof);

Desde jб agradeзo se alguйm puder me dar uma dica.
Reply
#2

Nenhuma. Isso й Udb modificado. Use Dini/Udb assim:


pawn Код:
#include <Dini>

#include <Dudb>


// Pra salvar o level:

new pName[MAX_PLAYER_NAME];

GetPlayerName(playerid, pName, sizeof(pName));

dUserSetINT(pName).("Level", 0); // Salvando como Level 0


// Pra dar load no level:

new Level[MAX_PLAYERS];

Level[playerid] = (dUserINT(pName).("Level"));
Reply
#3

Amigo muito obrigado sу que deu os sequintes erros

coloquei dentro do Disconet assim:
Код:
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; //Deixa o cara livre?
		Procurados[playerid] = 0; // o cara procurado fica livre?
		GetPlayerHealth(playerid, health); //Pega a vida do personagem
		udb_setHealth(PlayerName(playerid), health); //Seta a vida no SAVE
		udb_setGasoline(PlayerName(playerid), Petrol[playerid]);//Seta Gasolina
             udb_setProf(PlayerName(playerid), Profissao[playerid]);//Seta profissao
    		// salvar level inicio>> Coloquei o que vocк falou assim>>
		new pName[MAX_PLAYER_NAME];

		GetPlayerName(playerid, pName, sizeof(pName));

		dUserSetINT(pName).("Level", 0); // Salvando como Level 0
		// salvar level final
		PLAYERLIST_authed[playerid] = 0; //zera algo que nгo sei o que й
		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);
	  }
 	  else {
       printf("Jogador %s (ID: %d) deixou o servidor sem se registrar/logar",PlayerName(playerid),playerid);
       return 0;
    }
    return 1;
}
e no logar coloquei como vocк falou tambйm
Код:
public LogarPlayer(playerid) //Quando Logar pega os dados logando
{
       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); //posicao que vai aparecer?
	udb_getAng(PlayerName(playerid), ang);
	SetSpawnInfo(playerid, 1, udb_getSkin(PlayerName(playerid)), X, Y, Z, ang, 0, 0, 0, 0, 0, 0);
	Profissao[playerid] = udb_getProf(PlayerName(playerid));
	Petrol[playerid] = udb_getGasoline(PlayerName(playerid));
       // linhas adicionadas para dar load no level>>>>>>
	new Level[MAX_PLAYERS];
	Level[playerid] = (dUserINT(pName).("Level"));

}
Mensagens de erro>>

(1054) : error 017: undefined symbol "dUserSetINT"
(1054) : error 029: invalid expression, assumed zero
(1054) : warning 215: expression has no effect
(4625) : warning 235: public function lacks forward declaration (symbol "OnPlayerInfoChange")
(4976) : warning 219: local variable "Level" shadows a variable at a preceding level
(4977) : error 017: undefined symbol "dUserINT"
(4977) : error 029: invalid expression, assumed zero
(4977) : warning 215: expression has no effect
(5933) : warning 203: symbol is never used: "ContSalario"
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

O sistema de meu MODE й RPG e o sistema de level й o que o pessoal disponibilizou aqui mesmo.


Esse aqui>
Код:
#include <a_samp>

new Level[MAX_PLAYERS];
forward GanharLevel(playerid);

public OnGameModeInit()
{
    SetTimer("AumentarLevel",60000,true);
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp(cmdtext,"/meulevel",true)==0)
    {
        new str[128];
        format(str,sizeof(str),"Seu level й: %d.",Level[playerid]);
        SendClientMessage(playerid,0xFFFFFFAA,str);
        return 1;
    }
    return 1;
}

public GanharLevel(playerid)
{
    for(new i=0; i <= MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            Level[i] ++;
            new str[256];
            format(str,sizeof(str),"Vocк ganhou um level, somando um total de %d.",Level);
            SendClientMessage(i,0xFF0000AA,str);
        }
    }
    return 1;
}
Vocк ou alguйm tem idйia do que pode ser?
Obs: tipo no game o sistema funciona mas nгo salva o level quando eu relogo eu queria que quando o player deslogasse o level ficaria salvo e quando logar continuaria a contar o level de onde parou, bem tentei fazer do geito que o amigo acima falou mas da esses erros como vocкs podem ver, por favor me ajudem pois to meio perdido.


Reply
#4

Coloca os includes.
Reply
#5

Quote:
Originally Posted by Spawn*
Coloca os includes.
Sim ja estгo adicionados, veja.

#include <a_vehicles> //eu coloquei pra arrumar o concerto do carro
#include <a_samp> //Adicionado para horario em tempo real e outras funзхes
#include <DUDB>
#include <a_objects>
#include <core>
#include <float>
#include <dutils>
#include <c_vehicleinfo>
#include <a_players>
#include <cpstream>
#include <Dini> //adicionado para funcionar SALVAR level

OBS: serб que й algo de String ou inteiro que ta errado sei la? pelo que to tentando entender ali nos erros, so um poco leigo nisso, ou esta certo? serб que й aquele 0 ali?

OBS2: Pode ser o DUDB versao 1.2? que nao ta indo ne?

OBS3:
Код:
#include <a_vehicles> //eu coloquei pra arrumar o concerto do carro
#include <a_samp> //Adicionado para horario em tempo real e outras funзхes
#include <DUDB>
#include <a_objects>
#include <core>
#include <float>
#include <dutils>
#include <c_vehicleinfo>
#include <a_players>
#include <cpstream>
#include <Dini> //adicionado para funcionar SALVAR level
#include <DUDB2> 
/* acrecentei o DUBD2 pelo fato de eu nгo achar o dUserSetINT dentro do DUDB
mesmo assim deu o mesmo erro.print
OBS> o DUDB2 tem o dUserSetINT coloquei localizar e ele achou.

*/
Reply
#6

Tenta pegar os incs mais novos possнveis, do SAMP 0.3a e o "0" ali nгo muda nada, como eu disse ele salva o level como 0. Daн pra salvar com o valor do level atual do cara vocк muda o parвmetro ali para Level[playerid] ou algo assim.
Reply
#7

Diminuiu um erro quando eu fiz isso no disconect:

new pName[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName, sizeof(pName));
dUserSetINT(PlayerName(playerid),Level[playerid]); // Salvando como Level do player?


Veja:
C:\Downloads\gta-sa\windows servers\pawno\matrixrpg.pwn(1065) : error 017: undefined symbol "dUserSetINT"
C:\Downloads\gta-sa\windows servers\pawno\matrixrpg.pwn(4636) : warning 235: public function lacks forward declaration (symbol "OnPlayerInfoChange")
C:\Downloads\gta-sa\windows servers\pawno\matrixrpg.pwn(4987) : warning 219: local variable "Level" shadows a variable at a preceding level
C:\Downloads\gta-sa\windows servers\pawno\matrixrpg.pwn(498 : error 017: undefined symbol "dUserINT"
C:\Downloads\gta-sa\windows servers\pawno\matrixrpg.pwn(498 : error 029: invalid expression, assumed zero
C:\Downloads\gta-sa\windows servers\pawno\matrixrpg.pwn(498 : warning 215: expression has no effect
C:\Downloads\gta-sa\windows servers\pawno\matrixrpg.pwn(5944) : warning 203: symbol is never used: "ContSalario"
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase


3 Errors.



e deu apenas 1 erro quando eu retirei do logar essas duas linhas:

new Level[MAX_PLAYERS];
Level[playerid] = (dUserINT(pName).("Level"));


Olhe>>
C:\Downloads\gta-sa\windows servers\pawno\matrixrpg.pwn(1065) : error 017: undefined symbol "dUserSetINT"
C:\Downloads\gta-sa\windows servers\pawno\matrixrpg.pwn(4636) : warning 235: public function lacks forward declaration (symbol "OnPlayerInfoChange")
C:\Downloads\gta-sa\windows servers\pawno\matrixrpg.pwn(5944) : warning 203: symbol is never used: "ContSalario"
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase


1 Error.


Isso ajuda??
Reply
#8

Bom se vocк ainda nгo conseguiu pela dica do colega acima, eu sugiro usar o PAP para salvar o level sу pra te quebrar o galho agora, e quem sabe mais a frente vocк consiga fazer as funзхes usando outro include ou passe todas para PAP, ou ainda se quiser deixar assim nгo tem problema nenhum...
Para fazer pelo meu modo vocк precisa apagar tudo o que colocou com a ajuda acima, para retirarem os erros.

pawn Код:
// No inнcio do script:
#include "PAP"

// No /registrar quando o jogador se registra, coloque isso:
Level[playerid] = 0;
pap_SalvarInt(playerid, "level", Level[playerid]);

// No mesmo lugar no OnPlayerDisconnect que vocк colocou do exemplo acima, coloque:
pap_SalvarInt(playerid, "level", Level[playerid]);

// Na funзгo que vocк mostrou aн para logar o jogador, coloque:
Level[playerid] = pap_CarregarInt(playerid, "level");
Por padrгo do PAP ele vai salvar no arquivo *nome do jogador*.txt, na pasta scriptfiles.
Vocк pode editar o nome do arquivo e extensгo, como quiser modificando o formato... Й sу abrir o PAP.inc e procurar por PAP_FORMATO_ARQUIVO_JOGADOR.

Link do include: http://forum.sa-mp.com/index.php?topic=137412.0
Precisa do include PGD e PSF, que estгo com o link no mesmo tуpico.

Boa sorte, abraзo.
Reply
#9

Quote:
Originally Posted by [VGS
Protioso_OC ]
Bom se vocк ainda nгo conseguiu pela dica do colega acima, eu sugiro usar o PAP para salvar o level sу pra te quebrar o galho agora, e quem sabe mais a frente vocк consiga fazer as funзхes usando outro include ou passe todas para PAP, ou ainda se quiser deixar assim nгo tem problema nenhum...
Para fazer pelo meu modo vocк precisa apagar tudo o que colocou com a ajuda acima, para retirarem os erros.

pawn Код:
// No inнcio do script:
#include "PAP"

// No /registrar quando o jogador se registra, coloque isso:
Level[playerid] = 0;
pap_SalvarInt(playerid, "level", Level[playerid]);

// No mesmo lugar no OnPlayerDisconnect que vocк colocou do exemplo acima, coloque:
pap_SalvarInt(playerid, "level", Level[playerid]);

// Na funзгo que vocк mostrou aн para logar o jogador, coloque:
Level[playerid] = pap_CarregarInt(playerid, "level");
Por padrгo do PAP ele vai salvar no arquivo *nome do jogador*.txt, na pasta scriptfiles.
Vocк pode editar o nome do arquivo e extensгo, como quiser modificando o formato... Й sу abrir o PAP.inc e procurar por PAP_FORMATO_ARQUIVO_JOGADOR.

Link do include: http://forum.sa-mp.com/index.php?topic=137412.0
Precisa do include PGD e PSF, que estгo com o link no mesmo tуpico.

Boa sorte, abraзo.
cara obrigado vo tentar mas somente colocando o PAP de include e compilando ja da um erro:

C:\Downloads\gta-sa\windows servers\pawno\include\PGD.inc(1 : fatal error 100: cannot read from file: "PGD\1.3F2#PGD_LIB\PGD_DPPFI"

Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase


1 Error.

o que seria?
OBS ja estao os 3 arquivos dentro da pasta include certinho
Reply
#10

Acho que vocк nгo extraiu o include PGD todo em sua pasta includes, ou colocou em outra pasta diferente do seu pawno.
Dentro da pasta include devem ficar os includes PAP.inc, PGD.inc e PSF.inc... Junto das duas pastas PGD e PSF.
Tente novamente aн brow, boa sorte!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)