I maked a payday dialog but if im on ESC ( menu ) i get "* You haven't played long enough to obtain a PayDay."
Код:
public PayDay()
{
new string[128];
new account,interest;
new rent = 0;
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][pLevel] > 0)
{
if(MoneyMessage[i]==1)
{
SendClientMessage(i, COLOR_1RED, "You failed to pay your debt, Jail time.");
GameTextForPlayer(i, "~r~Busted!", 2000, 1);
SetPlayerInterior(i, 10);
PlayerInfo[i][pInt] = 10;
SetPlayerPos(i, 264.6288,77.5742,1001.0391);
PlayerInfo[i][pJailed] = 1;
ResetPlayerWeapons(i);
ResetPlayerMoney(i);
WantedPoints[i] = 0;
PlayerInfo[i][pJailTime] = 300;
TextDrawShowForPlayer(i, Textdraw1[i]);
format(string, sizeof(string), "You are jailed for %d seconds. Bail: Unable", PlayerInfo[i][pJailTime]);
SendClientMessage(i, COLOR_WHITE, string);
}
new playername2[MAX_PLAYER_NAME];
GetPlayerName(i, playername2, sizeof(playername2));
account = PlayerInfo[i][pAccount];
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 > GetPlayerMoney(i))
{
PlayerInfo[i][pPhousekey] = 255;
SendClientMessage(i, COLOR_WHITE, "You have been evicted.");
rent = 0;
}
HouseInfo[key][hTakings] = HouseInfo[key][hTakings]+rent;
}
new tmpintrate;
if (key != 255 && strcmp(playername2, HouseInfo[key][hOwner], true) == 0)
{
if(PlayerInfo[i][pDonateRank] > 0) { tmpintrate = intrate+4; }
else { tmpintrate = intrate+2; }//HouseInfo[key][hLevel]
}
else
{
if(PlayerInfo[i][pDonateRank] > 0) { tmpintrate = 3; }
else { tmpintrate = 1; }
}
if(PlayerInfo[i][pPayDay] >= 5)
{
Tax += TaxValue;//Should work for every player online
PlayerInfo[i][pAccount] -= TaxValue;
if(PlayerInfo[i][pDonateRank] > 0)
{
new bonus = PlayerInfo[i][pPayCheck] / 2;
PlayerInfo[i][pPayCheck] += bonus;
}
new checks = PlayerInfo[i][pPayCheck];
new ebill = (PlayerInfo[i][pAccount]/10000)*(PlayerInfo[i][pLevel]);
ConsumingMoney[i] = 1;
GivePlayerMoney(i, checks);
if(PlayerInfo[i][pAccount] > 0)
{
PlayerInfo[i][pAccount] -= ebill;
SBizzInfo[4][sbTill] += ebill;
}
else
{
ebill = 0;
}
interest = (PlayerInfo[i][pAccount]/1000)*(tmpintrate);
PlayerInfo[i][pExp]++;
PlayerPlayMusic(i);
PlayerInfo[i][pAccount] = account+interest;
new hour,minuite;
gettime(hour,minuite);
FixHour(hour);
hour = shifthour;
new str[1024];
format(str,1024,""wh"_________|"color_red"STATISTICI BANCA"wh"|_________\n\n");
format(str,1024,"%s"wh"Bani primiti: "color_green"%d$\n",str,checks);
format(str,1024,"%s"wh"Taxa bani: "color_green"-%d$\n",str,TaxValue);
if(PlayerInfo[i][pPhousekey] != 255 || PlayerInfo[i][pPbiskey] != 255){format(str,1024,"%s"wh"Electicitate Bill: "color_green"-%d$\n",str,ebill);}
format(str,1024,"%s"wh"Balanta veche: "color_green"%d$\n",str,account);
format(str,1024,"%s"wh"Dobanda: "color_green"0.%d "wh"percent\n",str,tmpintrate);
format(str,1024,"%s"wh"Castig "color_green"%d$\n",str , interest);
format(str,1024,"%s"wh"Bani cont: "color_green"%d$\n",str , PlayerInfo[i][pAccount]);
format(str,1024,"%s"wh"Chirie: "color_green"-%d$\n",str , rent);
format(str,1024,"%s"wh"Ora: "color_cyan"%02d:%02d",str,hour, minuite);
format(str,1024,"%s\t\t "color_red"PayDay\n",str);
format(str,1024,"%s\t\t\t\t"color_blue"PayCheck",str);
ShowPlayerDialog( i, 790, DIALOG_STYLE_MSGBOX, " ", str, "Iesi", "" );
rent = 0;
PlayerInfo[i][pPayDay] = 0;
PlayerInfo[i][pPayCheck] = 0;
PlayerInfo[i][pConnectTime] += 1;
if(PlayerInfo[i][pDonateRank] > 0)
{
PlayerInfo[i][pPayDayHad] += 1;
if(PlayerInfo[i][pPayDayHad] >= 5)
{
PlayerInfo[i][pExp]++;
PlayerInfo[i][pPayDayHad] = 0;
}
}
}
else
{
SendClientMessage(i, COLOR_LIGHTRED, "* You haven't played long enough to obtain a PayDay.");
}
}
}
}
Checkprop();
return 1;
}
Idk exactily your problem but....
... WTF?! You're using 1024 cells for every 'format'...LOL Take from str string the array cuz it's big enough. use sizeof(str) instead 1024.