[Pedido] Sistema de conquistas
#1

Como o titulo jб diz poderiam me dar uma base de um sistema de conquistas?

tipo isto https://prnt.sc/79f1n4

sei criar o textdraw apenas precisso de uma base de sistema.

abraзos.
Reply
#2

Vocк pode criar uma pasta na scriptfiles chamada Conquistas, dentro dela poderia conter os nicks dos jogadores em arquivos .ini, dentro dos arquivos poderia contar as conquistas, que poderiam ser feitas por ID, exemplo
pawn Code:
0 = false
1 = false
2 = false
3 = false
4 = false
etc...
Ou com os nomes das conquistas, exemplo
pawn Code:
SeRegistrou = false
PrimeiroLogin = false
LeuRegras = false
LeuCreditos = false
ChegouLevel5 = false
etc...
, fazendo uma funзгo para checar essas informaзхes na pasta, quando um jogador se registra, loga, upa, usa comandos .... verifica se a conquista jб esta desbloqueada (true), se nгo, da a recompensa e seta true na pasta de conquistas, no arquivo do jogador.

obs: poderia setar as conquistas dentro da pasta do jogador tambйm, mas acho que iria ficar muita coisa junta.

Sу nгo faзo o cуdigo e envio pra vocк porquк deu uma preguiзa gigante de programar agora desculpe.
Reply
#3

Aqui estб uma base que eu fiz agorinha na pressa mesmo, adapte ao seu gamemode e nгo se esqueзa de criar a pasta 'Conquistas', sem aspas, nas suas scriptfiles.

Includes necessбrias:
[*] DOF2

Code:
enum CONQUISTAS
{
	LeuAsRegras,
	LeuOsCreditos
}
new Conquistas[MAX_PLAYERS][CONQUISTAS];

#define totalconquistas 2 // mбximo de conquistas

forward CarregarConquistas();
public CarregarConquistas()
{
    new playername[MAX_PLAYER_NAME + 2];
    GetPlayerName(playerid, playername, sizeof(playername));

    new arquivo[64];
    format(arquivo, sizeof(arquivo), "Conquistas/%sConquistas.ini", playername);
    
    if(!DOF2_FileExists(arquivo))
    {
        DOF2_CreateFile(arquivo);
        DOF2_SetInt(arquivo, "LeuAsRegras", Conquistas[playerid][LeuAsRegras]);
		DOF2_SetInt(arquivo, "LeuOsCreditos", Conquistas[playerid][LeuOsCreditos]);
    }
    
   	Conquistas[playerid][LeuAsRegras] = DOF2_GetInt(arquivo, "LeuAsRegras");
   	Conquistas[playerid][LeuOsCreditos] = DOF2_GetInt(arquivo, "LeuOsCreditos");
    return 1;
}

forward SalvarConquistas();
public SalvarConquistas()
{
    new playername[MAX_PLAYER_NAME + 2];
    GetPlayerName(playerid, playername, sizeof(playername));
    
    new arquivo[64];
    format(arquivo, sizeof(arquivo), "Conquistas/%sConquistas.ini", playername);
    
    if(!DOF2_FileExists(arquivo))
    {
        DOF2_CreateFile(arquivo);
        DOF2_SetInt(arquivo, "LeuAsRegras", Conquistas[playerid][LeuAsRegras]);
		DOF2_SetInt(arquivo, "LeuOsCreditos", Conquistas[playerid][LeuOsCreditos]);
    }
    
   	DOF2_SetInt(arquivo, "LeuAsRegras", Conquistas[playerid][LeuAsRegras]);
	DOF2_SetInt(arquivo, "LeuOsCreditos", Conquistas[playerid][LeuOsCreditos]);
    return 1;
}

if(strcmp(cmd, "/creditos", true) == 0)
{
    if(IsPlayerConnected(playerid))
	{
		SendClientMessage(playerid, -1, "|______________ Crйditos ______________|");
		SendClientMessage(playerid, -1, "Sistema de Conquistas feito por eu mesmo.");
	
		Conquistas[playerid][LeuOsCreditos] = 1;
		// TextDrawShowForPlayer aqui
	}
	return 1;
}

if(strcmp(cmd, "/regras", true) == 0)
{
	if(IsPlayerConnected(playerid))
	{
		SendClientMessage(playerid, -1, "Vб ao fуrum, /forum");
		
		Conquistas[playerid][LeuAsRegras] = 1;
		// TextDrawShowForPlayer aqui
  	}
	return 1;
}

if(strcmp(cmd, "/conquistas", true) == 0)
{
	if(IsPlayerConnected(playerid))
	{
	    new conquistas = 0;
	
	    SendClientMessage(playerid, -1, "|______________ Conquistas ______________|");
	
		if(Conquistas[playerid][LeuAsRegras] == 1)
		{
		    SendClientMessage(playerid, -1, "Vocк leu as regras.");
		    conquistas++;
		}
		else if(Conquistas[playerid][LeuOsCreditos] == 1)
		{
		    SendClientMessage(playerid, -1, "Vocк leu os crйditos.");
		    conquistas++;
		}
		
		new string[128];
        format(string, sizeof(string), "%d de %d conquistas desbloqueadas.", conquistas, totalconquistas);
		SendClientMessage(playerid, -1, string);
  	}
	return 1;
}
Reply
#4

Obrigado pela base.
Reply
#5

Papo, с usa Dof2 nгo kk...

Faz em MySql
Reply
#6

Nem me fala em MYSQL!

Jб me chatiei mt com ele ;-;
Reply
#7

Quote:
Originally Posted by HelderPT
View Post
Nem me fala em MYSQL!

Jб me chatiei mt com ele ;-;
Dб uma olhada nesse tutorial do Ricop sobre o Mysql:
https://sampforum.blast.hk/showthread.php?tid=299675

Tб meio desatualizado, mas dб pra ter uma noзгo bбsica.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)