[Ajuda] PayDay.
#1

Bom, eu queria ajuda com um sistema, de payday o seguinte, o cara, tem que ficar, 1 hora online, quando ele sair do jogo pausar a contagem quando ele entrar denovo in game continuar, quando ele receber o payday so aparecer pra ele, e uma TextDraw contando quantos minutos falta para ele pegar o payday.Se Algum Poder me ajudar agradeceria muito, obrigado desde jб.
Code ..

Код:
public PayDay()
{
	new Conta,interest;
	new rent = 0;
	for(new i = 0; i < MAX_PLAYERS; i++)
	{
		if(IsPlayerConnected(i) && !IsPlayerNPC(i))
		{
		    if(PlayerInfo[i][pLevel] > 0)
		    {
			    if(MoneyMessage[i]==1)
				{
				    SendClientMessage(i, COLOR_LIGHTRED, "Vocк nгo pagou a sua dнvida e foi preso.");
				    GameTextForPlayer(i, "~r~Preso!", 2000, 1);
				    SetPlayerInterior(i, 6);
			   		SetPlayerPos(i, 264.6288,77.5742,1001.0391);
		            PlayerInfo[i][pJailed] = 1;
		            ResetPlayerWeaponsEx(i);
                    WantedPoints[i] = 0;
      				SetPlayerWantedLevel(i, 0);
					PlayerInfo[i][pJailTime] = 600;
					format(gstring, sizeof(gstring), "Vocк foi preso por %d segundos.", PlayerInfo[i][pJailTime]);
					SendClientMessage(i, COLOR_LIGHTBLUE, gstring);
				}
				new playername2[MAX_PLAYER_NAME];
				GetPlayerName(i, playername2, sizeof(playername2));
				Conta = PlayerInfo[i][pConta];
				new key = PlayerInfo[i][pPHousekey];
				if(key != 255)
				{
					rent = HouseInfo[key][hRent];
					if(strcmp(playername2, HouseInfo[key][hOwner], true) == 0)
					{
						rent = 0;
					}
					else if(rent > GetPlayerMoneyEx(i))
					{
						PlayerInfo[i][pPHousekey] = 255;
						SendClientMessage(i, COLOR_WHITE, "Vocк foi expulso(a).");
						rent = 0;
					}
					HouseInfo[key][hTakings] = HouseInfo[key][hTakings]+rent;
				}
				new tmpintrate;
			    if(PlayerInfo[i][pVIP] == 1) { tmpintrate = 3; }
			    else if(PlayerInfo[i][pVIP] == 2) { tmpintrate = 4; }
			    else if(PlayerInfo[i][pVIP] == 3) { tmpintrate = 6; }
			    else if(PlayerInfo[i][pVIP] == 4) { tmpintrate = 8; }
			    else if(PlayerInfo[i][pVIP] == 5) { tmpintrate = 10; }
				else { tmpintrate = 1; }
				if(PlayerInfo[i][pPayDay] >= 60)
				{
				    Tax += TaxValue;//Shorld work for every player online
				    PlayerInfo[i][pConta] -= TaxValue;
					new checks = PlayerInfo[i][pSalario];
				    new ebill = (PlayerInfo[i][pConta]/30000)*(PlayerInfo[i][pLevel]);
				    ConsumingMoney[i] = 1;
				    GivePlayerMoneyEx(i, checks);
				    if(PlayerInfo[i][pConta] > 0)
				    {
				    	PlayerInfo[i][pConta] -= ebill;
				    	SBizzInfo[4][sbTill] += ebill;
					}
					else
					{
					    ebill = 0;
					}
					interest = (PlayerInfo[i][pConta]/1000)*(tmpintrate);
					PlayerInfo[i][pExp]++;
					PlayerPlayMusic(i);
					PlayerInfo[i][pConta] = Conta+interest;
					SendClientMessage(i, COLOR_WHITE, "{FFFFFF}|_B_G_S_|Pagamento|_B_G_S_|");
					format(gstring, sizeof(gstring), "{FFFFFF}Salбrio: {00FF00}R$[%d] {FFFFFF}| {FFFFFF}Imposto: {FF0000}-R$[%d]", checks, TaxValue);
					SendClientMessage(i, COLOR_GRAD1, gstring);
                    format(gstring, sizeof(gstring), "{FFFFFF}Saldo Bancбrio Atual: {FF0000}R$[%d] {FFFFFF}| {FFFFFF}Novo Saldo Bancбrio: {00FF00}R$[%d]", Conta , PlayerInfo[i][pConta]);
					SendClientMessage(i, COLOR_GRAD1, gstring);
					format(gstring, sizeof(gstring), "{FFFFFF}Juros: [{00FF00}0.%d {FFFFFF}por cento]",tmpintrate);
					PlayerPlaySound(i, 1185, 0.0, 0.0, 0.0);
                    GameTextForPlayer(i,"~y~-==- ~g~B~g~G~g~S ~g~Salario~y~ -==-", 5000, 1);
					GivePlayerMoneyEx(i, 5000);
					OnPlayerSave(i);
					rent = 0;
					PlayerInfo[i][pPayDay] = 0;
					PlayerInfo[i][pSalario] = 0;
					PlayerInfo[i][pConnectTime] += 1;
					PlayerInfo[i][pCaixinha] = 0;
					pban[i] = 0;
					PassadoUmDia++;
					DestroyVehicle(Racecar2);
		        	SendClientMessage(i, VERDE2, gstring);
		        	/*
		        	if(PlayerInfo[i][pCargo] == 1)
					{
					    GivePlayerMoney(i, 1000);
					    SendClientMessage(i, -1, "{FFFF00}Vocк Ganhou 1000 Pelo Seu Sбlario de Cargo 1.");
		 			}
					if(PlayerInfo[i][pCargo] == 2)
					{
					    GivePlayerMoney(i, 1500);
					    SendClientMessage(i, -1, "{00FF00}Vocк Ganhou 1500 Pelo Seu Sбlario de Cargo 2.");
		 			}
					if(PlayerInfo[i][pCargo] == 3)
					{
					    GivePlayerMoney(i, 2000);
					    SendClientMessage(i, -1, "{7FFFD4}Vocк Ganhou 2000 Pelo Seu Sбlario de Cargo 3.");
		 			}
					if(PlayerInfo[i][pCargo] == 4)
					{
					    GivePlayerMoney(i, 2500);
					    SendClientMessage(i, -1, "{A020F0}Vocк Ganhou 2500 Pelo Seu Sбlario de Cargo 4.");
		 			}*/
					if(PassadoUmDia >= 24)//DiaPassado
                    {
					}
                    if(PlayerInfo[i][pVIP] == 1)
	    			{
	    			PlayerInfo[i][pExp] += 2;
	    			GivePlayerMoney(i, 1000);
	    			SendClientMessage(i, COR_SOCIOB, "Parabens vocк ganhou 2 respeito Por Ser Um VIP Prata");
	    			}
	    			if(PlayerInfo[i][pVIP] == 2)
	    			{
	    			PlayerInfo[i][pExp] += 3;
	    			GivePlayerMoney(i, 2000);
	    			SendClientMessage(i, COR_SOCIOP, "Parabens vocк ganhou 3 respeito Por Ser Um VIP Ouro");
	    			}
	    			if(PlayerInfo[i][pVIP] == 3)
	    			{
	    			PlayerInfo[i][pExp] += 4;
	    			GivePlayerMoney(i, 2000);
	    			SendClientMessage(i, COR_SOCIOO, "Parabens vocк ganhou 4 respeito Por Ser Um VIP-Sуcio");
	    			}
	    			if(PlayerInfo[i][pVIP] == 4)
	    			{
	    			PlayerInfo[i][pExp] += 10;
	    			GivePlayerMoney(i, 20000);
	    			SendClientMessage(i, COR_SOCIOD, "Parabens vocк ganhou 10 respeito Por Ser Um Sуcio-Diamante");
	    			}
					if(PlayerInfo[i][pEmprego] > 0)
	    			{
	    	    		if(PlayerInfo[i][pContractTime] < 25)
	    	    		{
							PlayerInfo[i][pContractTime] ++;
						}
	    			}
                }
				else
				{
				    SendClientMessage(i, COLOR_LIGHTRED, "* Vocк nгo jogou tempo suficiente para receber salбrio!.");
 			}
			}
		}
		new lolbagui;
		lolbagui = PlayerInfo[i][pExp];
		new nxtlevel = PlayerInfo[i][pLevel]+1;
		if(lolbagui >= nxtlevel*levelexp)
		{
		    GameTextForPlayer(i, "~g~Respeito Adquirido!~n~~r~Digite /comprarnivel!", 5000, 1);
		}
	}
	OOCNews(COLOR_WHITE, "Loterica: Ja comecou a loteria.");
	new rand = random(80);
	if(rand < 77) { rand += 3; }
	Lotto(rand);
 //return 1;
}
Reply
#2

[Include] New SA-MP callbacks!
SetTimerEx

@Edit

Ignore a include que lhe passei (havia lido "quando o jogador pausar o jogo e quando ele voltasse, continuar" .__.), faz igual o JF falou, salva o tempo online numa variбvel e salve ela quando o jogador desconectar com seu sistema de salvamento, aн quando o jogador logar novamente, carrega o tempo na variбvel e continua a processo.

Exemplo:
Код:
new TempoParaPayday[MAX_PLAYERS], timertempoonline[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
	TempoParaPayday[playerid] = DOF2_GetInt(local do arquivo, "TempoOnline");
	timertempoonline[playerid] = SetTimerEx("TempoOnlineTimer", 60000, true, "i", playerid);
	return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
	DOF2_SetInt(local do arquivo, "TempoOnline", TempoParaPayday[playerid]);
	KillTimer(timertempoonline[playerid]);
	return 1;
}

TempoOnlineTimer(playerid);
public TempoOnlineTimer(playerid)
{
	TempoParaPayday[playerid]++;
	return 1;
}
Й uma base simples, adapte-a conforme queira.
Reply
#3

Utilize um sistema de salvamento. Concatene com as contas dos players caso jб exista sistema de salvamento. Creio eu que vocк use o Dini. Veja o modo de uso por aqui pelo fуrum, existem vбrios tutoriais.
Reply
#4

Ae Vlw , Seidel & JF , me ajudaram mesmo, muito obrigado, queria pedir so mais uma ajuda como eu faзo um reloginho contando quanto tempo falta para dar o payday do player?, vlw mesmo!
Reply
#5

Quote:
Originally Posted by Sm0L
Посмотреть сообщение
todo mundo entra no meu serv 127.0.0.1:7777
rsrsrsr
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)