SA-MP Forums Archive
[Pedido] Sistema de conquistas - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Pedido] Sistema de conquistas (/showthread.php?tid=653535)



Sistema de conquistas - HelderPT - 06.05.2018

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.


Re: Sistema de conquistas - AllanSG - 06.05.2018

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.


Re: Sistema de conquistas - RIPOrkut - 06.05.2018

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



Re: Sistema de conquistas - HelderPT - 07.05.2018

Obrigado pela base.


Re: Sistema de conquistas - Felipe_Freeze - 07.05.2018

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

Faz em MySql


Re: Sistema de conquistas - HelderPT - 07.05.2018

Nem me fala em MYSQL!

Jб me chatiei mt com ele ;-;


Re: Sistema de conquistas - Felipe_Freeze - 07.05.2018

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.