[Ajuda] Problema com PayDay
#1

Toda vez que da PayDay no meu servidor, algumas pessoas acabam nгo recebendo. Cуdigo:

Код:
function::PayDay()
{
	ResetSeq();
	new interest, rent = 0;
	foreach(Player, i)
	{
 		SetPVarInt(i, #VarFlood1, 0);
		SetPVarInt(i, #VarFlood2, 0);
		SetPVarInt(i, #VarFlood3, 0);
		SetPVarInt(i, #VarFlood4, 0);
		SetPVarInt(i, #VarFlood5, 0);
		SetPVarInt(i, #VarFlood6, 0);
		SetPVarInt(i, #VarFlood7, 0);
		SetPVarInt(i, #VarFlood8, 0);
		SetPVarInt(i, #VarFlood9, 0);

	    if(!APlayerData[i][pLogado])
	        continue;
		if(APlayerData[i][pPayDay] < 3)
		    return SendClientMessage(i, COLOR_LIGHTRED, "* Vocк nгo jogou tempo suficiente para receber salбrio!");

		if(MoneyMessage[i] == 1)
		{
	    	SendClientMessage(i, COLOR_LIGHTRED, "Vocк nгo pagou sua divida e foi preso.");
			GameTextForPlayer(i, "~r~Preso!", 2000, 1);
			SetPlayerInterior(i, 6);
			SetPlayerPos(i, 264.6288,77.5742,1001.0391);
			APlayerData[i][pJailed] = 1;
			ResetPlayerWeapons(i);
			SetPlayerWantedLevelEx(i, 0);
			WantedPoints[i] = 0;
			APlayerData[i][pJailTime] = 240;
			SendFormatedMessage(i, COLOR_LIGHTBLUE, "Vocк foi preso por %d segundos.   Fianca: Desabilitada", APlayerData[i][pJailTime]);
		}
		new tmpinrate, respect;
		new checks = random(4999)+4999;
		new ebill  = APlayerData[i][pLevel] * 100;
		new exp = APlayerData[i][pExp]+respect;
		new nxtlevel = APlayerData[i][pLevel]+1;
		new expquantidade = nxtlevel * levelexp;
		GivePlayerMoneyEx(i, checks);
		GivePlayerMoneyEx(i, -TaxValue);
		DepositarGranaOrg(6, TaxValue);

		switch(APlayerData[i][pVIP])
		{
			case 0: tmpinrate = 4, respect = 1, APlayerData[i][pExp]++;
			case 1: tmpinrate = 8, respect = 2, APlayerData[i][pExp] += 2;
			case 2: tmpinrate = 12, respect = 4, APlayerData[i][pExp] += 4;
		}
		interest = (APlayerData[i][pBank]/2630)*(tmpinrate);
		APlayerData[i][pBank] += interest;

		SendClientMessage(i, COLOR_WHITE, "(--------- Pagamento ---------)");
		SendFormatedMessage(i, COLOR_GRAD1, " Salбrio: R$%s		Imposto: R$%s", Comma(checks), Comma(TaxValue));
		SendClientMessage(i, COLOR_GRAD1, " Mйdico: -R$300");
		if(APlayerData[i][pHouseKey] != 500 || APlayerData[i][pBizzKey] != 255)
		{
		    GivePlayerMoneyEx(i, -ebill);
		    SBizzInfo[i][sbTill] += ebill;
		    SendFormatedMessage(i, COLOR_GRAD1, " Energia: -R$%s", Comma(ebill));
		}
		SendFormatedMessage(i, COLOR_GRAD1, " Juros: 0.%d por cento", (tmpinrate/4));
		SendFormatedMessage(i, COLOR_GRAD1, " Rendimento: +R$%s		Respeito: +%d (%d/%d)", Comma(interest), respect, exp, expquantidade);
		SendClientMessage(i, COLOR_WHITE, "(-----------------------------)");
		SendFormatedMessage(i, COLOR_GRAD1, " Saldo bancбrio: %s%s", APlayerData[i][pBank] > 1 ? ("R$") : ("-R$"), Comma(APlayerData[i][pBank]));
		SendFormatedMessage(i, COLOR_GRAD1, " Aluguel: R$%s", Comma(rent));

		GameTextForPlayer(i, "~p~Pagamento~n~   ~w~Salario", 5000, 1);
		APlayerData[i][pPayDay] = 0;
		APlayerData[i][pGiftBox] = 0;
		APlayerData[i][pConnectTime]++;
		if(APlayerData[i][pJob] > 0 && APlayerData[i][pContractTime] < 5)
		    APlayerData[i][pContractTime]++;
	}
	Checkproop();
	ContratoAleatorio();
	return true;
}
Reply
#2

Deve ser algum if faz um debug de tudo
Reply
#3

Код:
function::PayDay()
{
	ResetSeq();
	new interest, rent = 0;
	foreach(Player, i)
	{
 		SetPVarInt(i, #VarFlood1, 0);
		SetPVarInt(i, #VarFlood2, 0);
		SetPVarInt(i, #VarFlood3, 0);
		SetPVarInt(i, #VarFlood4, 0);
		SetPVarInt(i, #VarFlood5, 0);
		SetPVarInt(i, #VarFlood6, 0);
		SetPVarInt(i, #VarFlood7, 0);
		SetPVarInt(i, #VarFlood8, 0);
		SetPVarInt(i, #VarFlood9, 0);

	    if(!APlayerData[i][pLogado])
	        continue;
		if(APlayerData[i][pPayDay] < 3)
		    return SendClientMessage(i, COLOR_LIGHTRED, "* Vocк nгo jogou tempo suficiente para receber salбrio!");

		if(MoneyMessage[i] == 1)
		{
	    	SendClientMessage(i, COLOR_LIGHTRED, "Vocк nгo pagou sua divida e foi preso.");
			GameTextForPlayer(i, "~r~Preso!", 2000, 1);
			SetPlayerInterior(i, 6);
			SetPlayerPos(i, 264.6288,77.5742,1001.0391);
			APlayerData[i][pJailed] = 1;
			ResetPlayerWeapons(i);
			SetPlayerWantedLevelEx(i, 0);
			WantedPoints[i] = 0;
			APlayerData[i][pJailTime] = 240;
			SendFormatedMessage(i, COLOR_LIGHTBLUE, "Vocк foi preso por %d segundos.   Fianca: Desabilitada", APlayerData[i][pJailTime]);
		}
		new tmpinrate, respect;
		new checks = random(4999)+4999;
		new ebill  = APlayerData[i][pLevel] * 100;
		new exp = APlayerData[i][pExp]+respect;
		new nxtlevel = APlayerData[i][pLevel]+1;
		new expquantidade = nxtlevel * levelexp;
		GivePlayerMoneyEx(i, checks);
		GivePlayerMoneyEx(i, -TaxValue);
		DepositarGranaOrg(6, TaxValue);

		switch(APlayerData[i][pVIP])
		{
			case 0: tmpinrate = 4, respect = 1, APlayerData[i][pExp]++;
			case 1: tmpinrate = 8, respect = 2, APlayerData[i][pExp] += 2;
			case 2: tmpinrate = 12, respect = 4, APlayerData[i][pExp] += 4;
		}
		interest = (APlayerData[i][pBank]/2630)*(tmpinrate);
		APlayerData[i][pBank] += interest;

		SendClientMessage(i, COLOR_WHITE, "(--------- Pagamento ---------)");
		SendFormatedMessage(i, COLOR_GRAD1, " Salбrio: R$%s		Imposto: R$%s", Comma(checks), Comma(TaxValue));
		SendClientMessage(i, COLOR_GRAD1, " Mйdico: -R$300");
		if(APlayerData[i][pHouseKey] != 500 || APlayerData[i][pBizzKey] != 255)
		{
		    GivePlayerMoneyEx(i, -ebill);
		    SBizzInfo[i][sbTill] += ebill;
		    SendFormatedMessage(i, COLOR_GRAD1, " Energia: -R$%s", Comma(ebill));
		}
		SendFormatedMessage(i, COLOR_GRAD1, " Juros: 0.%d por cento", (tmpinrate/4));
		SendFormatedMessage(i, COLOR_GRAD1, " Rendimento: +R$%s		Respeito: +%d (%d/%d)", Comma(interest), respect, exp, expquantidade);
		SendClientMessage(i, COLOR_WHITE, "(-----------------------------)");
		SendFormatedMessage(i, COLOR_GRAD1, " Saldo bancбrio: %s%s", APlayerData[i][pBank] > 1 ? ("R$") : ("-R$"), Comma(APlayerData[i][pBank]));
		SendFormatedMessage(i, COLOR_GRAD1, " Aluguel: R$%s", Comma(rent));

		GameTextForPlayer(i, "~p~Pagamento~n~   ~w~Salario", 5000, 1);
		APlayerData[i][pPayDay] = 0;
		APlayerData[i][pGiftBox] = 0;
		APlayerData[i][pConnectTime]++;
		if(APlayerData[i][pJob] > 0 && APlayerData[i][pContractTime] < 5)
		    APlayerData[i][pContractTime]++;
	}
	Checkproop();
	ContratoAleatorio();
	return true;
}
Troque a parte marcada em vermelho por
PHP код:
if(APlayerData[i][pPayDay] < 3)
    
SendClientMessage(iCOLOR_LIGHTRED"* Vocк nгo jogou tempo suficiente para receber salбrio!"),continue; 
O return faz o loop parar. O continue faz o loop voltar para o inicio.
Reply
#4

Verdade. Pior que agora resolveu. Obrigado aн.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)