SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese

Reply
 
Thread Tools Display Modes
Old 17/05/2018, 05:53 PM   #1
eoqtrabhir
Big Clucker
 
Join Date: Dec 2017
Posts: 93
Reputation: 0
Default Como tiro /comprarnivel?

No meu gm tem um comando lá pra comprar nivel eu tirei a função de ter que pagar e pro player subir de nível tem sempre que dar /comprarnivel para o level ser atualizado e usar /melhorar pra melhorar algumas coisas como faço pro player subir de nível e ir melhorando toda vez que acumular os respeitos necessários sem ter que escrever /comprarnivel e /melhorar

Code:
	CMD:comprarnivel(playerid, params[])
	{
			if (gPlayerLogged[playerid] != 0)
			{
				//PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
				if(PlayerInfo[playerid][pLevel] >= 0)
				{
				    new gstring[128];
					new nxtlevel = PlayerInfo[playerid][pLevel]+1;
					new costlevel = nxtlevel*levelcost;//10k for testing purposes
					new expquantidade = nxtlevel*levelexp;
					/*if(GetPlayerMoney(playerid) < costlevel)
					{
						format(gstring, 128, "   Você não tem: (R$%s) !",ConvertMoney(costlevel));
						SendClientMessage(playerid, COLOR_GRAD1, gstring);
						return true;
					}
					else */if (PlayerInfo[playerid][pExp] < expquantidade)
					{
						format(gstring, 128, "   Você precisa de %d pontos de respeito, Você tem: [%d] !",expquantidade,PlayerInfo[playerid][pExp]);
						SendClientMessage(playerid, COLOR_GRAD1, gstring);
						return true;
					}
					else
					{
						format(gstring, sizeof(gstring), "~g~Nivel adquirido~n~~w~Agora seu Nivel e %d", nxtlevel);
						PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
						PlayerPlayMusic(playerid);
						//GiveDinheiro(playerid, (-costlevel));
						PlayerInfo[playerid][pLevel]++;
						ScoreLevel(playerid);
						PlayerInfo[playerid][pExp] -= expquantidade;
						PlayerInfo[playerid][gPupgrade] = PlayerInfo[playerid][gPupgrade]+2;
						GameTextForPlayer(playerid, gstring, 5000, 1);
						format(gstring, 128, "   Você adquiriu o nível %d, Digite /melhorar", nxtlevel, ConvertMoney(costlevel));
						SendClientMessage(playerid, COLOR_GRAD1, gstring);
						format(gstring, 128, "   Você tem %d pontos de melhora",PlayerInfo[playerid][gPupgrade]);
						SendClientMessage(playerid, COLOR_GRAD2, gstring);
					}
				}
				return true;
			}
			else
			{
				SendClientMessage(playerid, COLOR_GRAD1, "   Você não está logado !");
			}
			return true;
	}
Code:
	CMD:melhorar(playerid, gunid[])
	{
	        new gstring[128];
			if(isnull(gunid))
			{
				format(gstring, sizeof(gstring), "USE: /melhorar [pontos] (Você tem %d pontos de melhora)",PlayerInfo[playerid][gPupgrade]);
				SendClientMessage(playerid, COLOR_WHITE, "|______________[ UPGRADES ]______________|");
				SendClientMessage(playerid, COLOR_GRAD2,gstring);
				if(PlayerInfo[playerid][pLevel] == 2)
				{
					SendClientMessage(playerid, COLOR_GRAD3, "Nível 2 Melhorias: Alcool, Drogas");
				}
				else if(PlayerInfo[playerid][pLevel] == 3)
				{
					SendClientMessage(playerid, COLOR_GRAD3, "Nível 3 Melhorias: Alcool, Drogas, Comercio");
				}
				else if(PlayerInfo[playerid][pLevel] == 3)
				{
					SendClientMessage(playerid, COLOR_GRAD3, "Nível 4 Melhorias: Alcool, Drogas, Avareza, Comercio");
				}
				else if(PlayerInfo[playerid][pLevel] >= 5)
				{
					SendClientMessage(playerid, COLOR_GRAD3, "Nível 5 Melhorias: Alcool, Drogas, Avareza, Comercio, PainKillers");
				}
				SendClientMessage(playerid, COLOR_GRAD5, "Extra: Vida");
				return true;
			}
			if (PlayerInfo[playerid][gPupgrade] >= 1)
			{
				if (PlayerInfo[playerid][pLevel] >= 1 && (strcmp(gunid, "Vida", true, strlen(gunid)) == 0))
				{
					if (PlayerInfo[playerid][pSHealth] < 100)
					{
						PlayerInfo[playerid][pSHealth] = PlayerInfo[playerid][pSHealth]+10.0;
						format(gstring, 128, "Atualização: você vai nascer com %.2f de vida (+10)",PlayerInfo[playerid][pSHealth]);
					}
					else
					{
						SendClientMessage(playerid, COLOR_GRAD6, "   Você já está no máximo de vida");
						return true;
					}
				}
				else if (PlayerInfo[playerid][pLevel] >= 2 && (strcmp(gunid, "Alcool", true, strlen(gunid)) == 0))
				{
					if (PlayerInfo[playerid][pAlcoholPerk] < 3)
					{
						PlayerInfo[playerid][pAlcoholPerk] += 1;
						format(gstring, 128, "Nova Atualização: Agora seu nível de alcool é %d.",PlayerInfo[playerid][pAlcoholPerk]);
						PlayerInfo[playerid][gPupgrade]--;
					}
					else
					{
						SendClientMessage(playerid, COLOR_GRAD6, "   Seu nível de alcool já está no máximo !");
						return true;
					}
				}
				else if (PlayerInfo[playerid][pLevel] >= 2 && (strcmp(gunid, "Drogas", true, strlen(gunid)) == 0))
				{
					if (PlayerInfo[playerid][pDrugPerk] < 3)
					{
						PlayerInfo[playerid][pDrugPerk] += 1;
						format(gstring, 128, "Nova Atualização: Agora seu nível de drogas é %d.",PlayerInfo[playerid][pDrugPerk]);
						PlayerInfo[playerid][gPupgrade]--;
					}
					else
					{
						SendClientMessage(playerid, COLOR_GRAD6, "   Seu nível de drogas já está no máximo !");
						return true;
					}
				}
				else if (PlayerInfo[playerid][pLevel] >= 3 && (strcmp(gunid, "Avareza", true, strlen(gunid)) == 0))
				{
					if (PlayerInfo[playerid][pMiserPerk] < 3)
					{
						PlayerInfo[playerid][pMiserPerk] += 1;
						format(gstring, 128, "Nova Atualização: Agora sua avareza é nível %d.",PlayerInfo[playerid][pMiserPerk]);
						PlayerInfo[playerid][gPupgrade]--;
					}
					else
					{
						SendClientMessage(playerid, COLOR_GRAD6, "   Sua atualização de Avareza está no máximo !");
						return true;
					}
				}
				else if (PlayerInfo[playerid][pLevel] >= 4 && (strcmp(gunid, "Comercio", true, strlen(gunid)) == 0))
				{
					if (PlayerInfo[playerid][pTraderPerk] < 3)
					{
						PlayerInfo[playerid][pTraderPerk] += 1;
						format(gstring, 128, "Nova Atualização: Agora seu Comércio é nível %d.",PlayerInfo[playerid][pTraderPerk]);
						PlayerInfo[playerid][gPupgrade]--;
					}
					else
					{
						SendClientMessage(playerid, COLOR_GRAD6, "   Sua atualização de comércio está no máximo !");
						return true;
					}
				}
				else if (PlayerInfo[playerid][pLevel] >= 5 && (strcmp(gunid, "painkillers", true, strlen(gunid)) == 0))
				{
					if (PlayerInfo[playerid][pPainPerk] < 3)
					{
						PlayerInfo[playerid][pPainPerk] += 1;
						format(gstring, 128, "Nova Atualização: Seu nível de Pain Killers agora é %d.",PlayerInfo[playerid][pPainPerk]);
						PlayerInfo[playerid][gPupgrade]--;
					}
					else
					{
						SendClientMessage(playerid, COLOR_GRAD6, "   Sua atualização de Pain Killers já está no máximo !");
						return true;
					}
				}
				else
				{
					SendClientMessage(playerid, COLOR_GRAD6, "   Atualização desconhecida");
					return true;
				}
			}
			else
			{
				SendClientMessage(playerid, COLOR_GRAD6, "   Você tem 0 Pontos de Melhoria");
				return true;
			}
			SendClientMessage(playerid, COLOR_GRAD6, gstring);
			PlayerInfo[playerid][gPupgrade]--;
			return true;
	}
__________________
eoqtrabhir is offline   Reply With Quote
Old 17/05/2018, 06:05 PM   #2
Cycle
Huge Clucker
 
Cycle's Avatar
 
Join Date: Sep 2017
Posts: 278
Reputation: 77
Default Re: Como tiro /comprarnivel?

Fazendo apenas duas requisições, manipulação de variável e timers, este tipo de sistemas não existe a necessidade de utilizar comandos.
Cycle is offline   Reply With Quote
Old 17/05/2018, 06:05 PM   #3
FerrariL
Huge Clucker
 
FerrariL's Avatar
 
Join Date: Sep 2016
Location: Goiânia
Posts: 425
Reputation: 18
Default Re: Como tiro /comprarnivel?

Crie uma função para ser chamada a cada PayDay,e verifica se o player possui dinheiro para comprar o nível,caso ele possua é setado o novo nível. OBS: Você pode colocar esta funcionalidade dentro do PayDay,sem necessidade de criação de outro Timer.
__________________
Ser humilde não é ser menos que alguém. É saber que não somos mais que ninguém.
FerrariL is offline   Reply With Quote
Old 17/05/2018, 06:07 PM   #4
iTakelot
Gangsta
 
Join Date: Jun 2015
Posts: 686
Reputation: 30
Default Re: Como tiro /comprarnivel?

na callbeck que é chamada ao player quando se adquiri o respeito, crie uma condicional que verifique o respeito do player . ex if(respeito == x) { -- } boa sorte !
iTakelot is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Ajuda] Como tiro a Anti-Tag ? Nenzittow Português/Portuguese 17 21/06/2014 08:05 PM
[Ajuda] Como Eu Tiro Os Bônus?? Superextreme Português/Portuguese 1 24/11/2013 01:08 AM
[Ajuda] Como eu tiro isso ? Urubu_Rei Português/Portuguese 10 08/07/2012 06:40 PM
[Ajuda] Como defino a life que tiro cada tiro de sniper master_mc Português/Portuguese 2 13/12/2011 11:07 PM
[Duv] Como Eu Tiro Essa Entrada gabrielbnv Português/Portuguese 2 01/10/2011 07:02 PM


All times are GMT. The time now is 03:28 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.