SA-MP Forums Archive
[Ajuda] Como tiro /comprarnivel? - 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: [Ajuda] Como tiro /comprarnivel? (/showthread.php?tid=653956)



Como tiro /comprarnivel? - eoqtrabhir - 17.05.2018

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

Код:
	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;
	}
Код:
	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;
	}



Re: Como tiro /comprarnivel? - FerrariL - 17.05.2018

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.


Re: Como tiro /comprarnivel? - iTakelot - 17.05.2018

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 !