DIMASIK
Ученик
Вот такой у меня баг, сделал чтобы уровень довался после 25очков опыта, а вот как насчитало 25очков - лвл не дается.
Код:
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)
{
PlayerInfo[i][pRabotalLopatoy] = 0;
DengiTime[i] = 15;
new playername2[MAX_PLAYER_NAME];
GetPlayerName(i, playername2, sizeof(playername2));
account = PlayerInfo[i][pAccount];
new key = PlayerInfo[i][pPhousekey];
new ebill = SBizzInfo[4][sbPriceProd];
new interestp = interest/100;
new workpay;
new oldm;
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, "Вы были выселены по причине вашей неплатёжеспособности!");
rent = 0;
}
HouseInfo[key][hTakings] = HouseInfo[key][hTakings]+rent;
}
if(PlayerInfo[i][pPayDay] >= 5)
{
if(PlayerInfo[i][pMember] == 1)
{
workpay = CopSal * PlayerInfo[i][pRank];
new Taxx = workpay * Tax / 80;
PlayerInfo[i][pAccount] -= Taxx;
Treasury += Taxx;
Treasury -= workpay;
}
else if(PlayerInfo[i][pMember] == 2)
{
workpay = FbiSal * PlayerInfo[i][pRank];
new Taxx = workpay * Tax / 60;
PlayerInfo[i][pAccount] -= Taxx;
Treasury += Taxx;
Treasury -= workpay;
}
else if(PlayerInfo[i][pMember] == 3)
{
workpay = NGSal * PlayerInfo[i][pRank];
new Taxx = workpay * Tax / 50;
PlayerInfo[i][pAccount] -= Taxx;
Treasury += Taxx;
Treasury -= workpay;
}
else if(PlayerInfo[i][pMember] == 4)
{
workpay = MedSal * PlayerInfo[i][pRank];
new Taxx = workpay * Tax / 50;
PlayerInfo[i][pAccount] -= Taxx;
Treasury += Taxx;
Treasury -= workpay;
}
else if(PlayerInfo[i][pMember] == 7)
{
workpay = PolSal * PlayerInfo[i][pRank];
new Taxx = workpay * Tax / 50;
PlayerInfo[i][pAccount] -= Taxx;
Treasury += Taxx;
Treasury -= workpay;
}
else if(PlayerInfo[i][pMember] == 9)
{
workpay = ReportSal * PlayerInfo[i][pRank];
new Taxx = workpay * Tax / 50;
PlayerInfo[i][pAccount] -= Taxx;
Treasury += Taxx;
Treasury -= workpay;
}
else if(PlayerInfo[i][pMember] == 11)
{
workpay = LicSal * PlayerInfo[i][pRank];
new Taxx = workpay * Tax / 50;
PlayerInfo[i][pAccount] -= Taxx;
Treasury += Taxx;
Treasury -= workpay;
}
else if(PlayerInfo[i][pMember] == 20)
{
workpay = SwatSal * PlayerInfo[i][pRank];
new Taxx = workpay * Tax / 50;
PlayerInfo[i][pAccount] -= Taxx;
Treasury += Taxx;
Treasury -= workpay;
}
else if(PlayerInfo[i][pMember] == 21)
{
workpay = FermaSal * PlayerInfo[i][pRank];
new Taxx = workpay * Tax / 50;
PlayerInfo[i][pAccount] -= Taxx;
Treasury += Taxx;
Treasury -= workpay;
}
else if(PlayerInfo[i][pMember] == 12)
{
workpay = GroovSal * PlayerInfo[i][pRank];
new Taxx = workpay * Tax / 50;
PlayerInfo[i][pAccount] -= Taxx;
Treasury += Taxx;
Treasury -= workpay;
}
else if(PlayerInfo[i][pMember] == 13)
{
workpay = BallazSal * PlayerInfo[i][pRank];
new Taxx = workpay * Tax / 50;
PlayerInfo[i][pAccount] -= Taxx;
Treasury += Taxx;
Treasury -= workpay;
}
else if(PlayerInfo[i][pMember] == 14)
{
workpay = StreetDogsSal * PlayerInfo[i][pRank];
new Taxx = workpay * Tax / 50;
PlayerInfo[i][pAccount] -= Taxx;
Treasury += Taxx;
Treasury -= workpay;
}
else if(PlayerInfo[i][pMember] == 15)
{
workpay = VagosSal * PlayerInfo[i][pRank];
new Taxx = workpay * Tax / 50;
PlayerInfo[i][pAccount] -= Taxx;
Treasury += Taxx;
Treasury -= workpay;
}
else if(PlayerInfo[i][pMember] == 16)
{
workpay = CoronosSal * PlayerInfo[i][pRank];
new Taxx = workpay * Tax / 50;
PlayerInfo[i][pAccount] -= Taxx;
Treasury += Taxx;
Treasury -= workpay;
}
else if(PlayerInfo[i][pMember] == 17)
{
workpay = BaikerSal * PlayerInfo[i][pRank];
new Taxx = workpay * Tax / 50;
PlayerInfo[i][pAccount] -= Taxx;
Treasury += Taxx;
Treasury -= workpay;
}
else if(PlayerInfo[i][pMember] == 18)
{
workpay = TriadaSal * PlayerInfo[i][pRank];
new Taxx = workpay * Tax / 50;
PlayerInfo[i][pAccount] -= Taxx;
Treasury += Taxx;
Treasury -= workpay;
}
else if(PlayerInfo[i][pMember] == 19)
{
workpay = RMSal * PlayerInfo[i][pRank];
new Taxx = workpay * Tax / 50;
PlayerInfo[i][pAccount] -= Taxx;
Treasury += Taxx;
Treasury -= workpay;
}
else if(PlayerInfo[i][pPensija] == 1)
{
workpay += (CopSal * PlayerInfo[i][pRank]) / 2;
Treasury -= workpay;
}
else if(PlayerInfo[i][pPensija] == 2)
{
workpay += (FbiSal * PlayerInfo[i][pRank]) / 2;
Treasury -= workpay;
}
else if(PlayerInfo[i][pPensija] == 3)
{
workpay += (PolSal * PlayerInfo[i][pRank]) / 2;
Treasury -= workpay;
}
else if(PlayerInfo[i][pPensija] == 4)
{
workpay += (MedSal * PlayerInfo[i][pRank]) / 2;
Treasury -= workpay;
}
else if(PlayerInfo[i][pPensija] == 5)
{
workpay += (ReportSal * PlayerInfo[i][pRank]) / 2;
Treasury -= workpay;
}
else if(PlayerInfo[i][pPensija] == 5)
{
workpay += (LicSal * PlayerInfo[i][pRank]) / 2;
Treasury -= workpay;
}
else if(PlayerInfo[i][pPensija] == 8)
{
workpay += (NGSal * PlayerInfo[i][pRank]) / 2;
Treasury -= workpay;
}
else
{
workpay = NonJobSal;
}
//Сбрасываем время работ
if(PlayerInfo[i][pOtkRabota1] > 0)
{
PlayerInfo[i][pOtkRabota1] -- ;
}
if(PlayerInfo[i][pOtkRabota2] > 0)
{
PlayerInfo[i][pOtkRabota2] -- ;
}
if(PlayerInfo[i][pOtkRabota3] > 0)
{
PlayerInfo[i][pOtkRabota3] -- ;
}
if(PlayerInfo[i][pOtkRabota7] > 0)
{
PlayerInfo[i][pOtkRabota7] -- ;
}
if(PlayerInfo[i][pOtkRabota8] > 0)
{
PlayerInfo[i][pOtkRabota8] -- ;
}
if(PlayerInfo[i][pOtkRabota12] > 0)
{
PlayerInfo[i][pOtkRabota12] -- ;
}
if(PlayerInfo[i][pOtkRabota14] > 0)
{
PlayerInfo[i][pOtkRabota14] -- ;
}
if(PlayerInfo[i][pOtkRabota15] > 0)
{
PlayerInfo[i][pOtkRabota15] -- ;
}
if(PlayerInfo[i][pOtkRabota16] > 0)
{
PlayerInfo[i][pOtkRabota16] -- ;
}
if(PlayerInfo[i][pOtkRabota22] > 0)
{
PlayerInfo[i][pOtkRabota22] -- ;
}
if(PlayerInfo[i][pOtkRabota24] > 0)
{
PlayerInfo[i][pOtkRabota24] -- ;
}
PlayerInfo[i][pAccount] += workpay;
PlayerInfo[i][pAccount] -= Tax;
PlayerInfo[i][pAccount] += interest;
interest = PlayerInfo[i][pAccount]/1000;
PlayerInfo[i][pExp]++;
PlayerPlayMusic(i);
new premia = 0;
if(PlayerInfo[i][pJob] == 1 || PlayerInfo[i][pJob] == 2 || PlayerInfo[i][pJob] == 7 || PlayerInfo[i][pJob] == 8 || PlayerInfo[i][pJob] == 12
|| PlayerInfo[i][pJob] == 14 || PlayerInfo[i][pJob] == 15 || PlayerInfo[i][pJob] == 16 || PlayerInfo[i][pJob] == 22 || PlayerInfo[i][pJob] == 24)
{
premia = 50 + random(150);
ServerGivePlayerMoney(i,premia);
}
SendClientMessage(i, COLOR_WHITE, "|_______Расчёт_______|");
if(IsAWorkGroup(i))
{
format(string, sizeof(string), "* Зарплата: $%d Налоги: -$%d Премия: $%d", workpay, Tax,premia);
SendClientMessage(i, COLOR_GRAD1, string);
}
else
{
format(string, sizeof(string), "* Пособие: $%d Налоги: -$%d Премия: $%d", workpay, Tax,premia);
SendClientMessage(i, COLOR_GRAD1, string);
}
if(PlayerInfo[i][pMember] == 1||PlayerInfo[i][pMember] == 2||PlayerInfo[i][pMember] == 20)
{
if(qperc[i] > 0)
{
new quality;
quality = qperc[i] * 50;
PlayerInfo[i][pAccount] += quality;
format(string, sizeof(string), "* Надбавка: $%d", quality);
SendClientMessage(i, COLOR_GRAD1, string);
qperc[i] = 0;
}
}
if(PlayerInfo[i][pLevel] > 10)
{
oldm = 10 * PlayerInfo[i][pLevel];
PlayerInfo[i][pAccount] += oldm;
format(string, sizeof(string), "* Выплаты от Гос-ва: $%d", oldm);
SendClientMessage(i, COLOR_GRAD2, string);
}
if(PlayerInfo[i][pPhousekey] != 255 || PlayerInfo[i][pPbiskey] != 255 ||PlayerInfo[i][pPapptkey] != 255)
{
PlayerInfo[i][pAccount] -= ebill;
SBizzInfo[4][sbTill] += ebill;
format(string, sizeof(string), "* Эл. энергия: -$%d", ebill);
SendClientMessage(i, COLOR_GRAD1, string);
}
if(PlayerInfo[i][pPbiskey] != 255)
{
format(string, sizeof(string), "* Подоходный налог: -$%d", biztax);
SendClientMessage(i, COLOR_GRAD1, string);
PlayerInfo[i][pAccount] -= biztax;
}
SendClientMessage(i, COLOR_GRAD4, "|---------- Cчёт в банке ----------|");
format(string, sizeof(string), "* Старый баланс: $%d", account);
SendClientMessage(i, COLOR_GRAD1, string);
format(string, sizeof(string), " Новый счет: $%d", PlayerInfo[i][pAccount]);
SendClientMessage(i, COLOR_GRAD5, string);
format(string, sizeof(string), "* Доход: $%d", interestp);
SendClientMessage(i, COLOR_GRAD3, string);
SendClientMessage(i, COLOR_GRAD4, "|----------------------------------|");
format(string, sizeof(string), "* За квартиру: -$%d", rent);
SendClientMessage(i, COLOR_GRAD5, string);
format(string, sizeof(string), "~y~€APЊ‡A¦A~n~~w~O—®A‹‡E® ЌE®");
GameTextForPlayer(i, string, 5000, 1);
rent = 0;
PlayerInfo[i][pPayDay] = 0;
PlayerInfo[i][pPayCheck] = 0;
PlayerInfo[i][pConnectTime] += 1;
adlimit[i] = 0;
if(PlayerInfo[i][pExp] == levelexp*(PlayerInfo[i][pLevel]+1))
{
PlayerInfo[i][pExp] = 0;
PlayerInfo[i][pLevel]++;
PlayerInfo[i][gPupgrade] += 2;
format(string, sizeof(string), "Bы достигли %d уровня.", PlayerInfo[i][pLevel]);
SendClientMessage(i, COLOR_LIGHTBLUE , string);
PlayerInfo[i][pAge]++;
format(string, sizeof(string), " С Днём Рождения! Вы постарели на 1 год, и теперь Вам %d.", PlayerInfo[i][pAge]);
SendClientMessage(i, COLOR_LIGHTBLUE , string);
}
//------------------------------------------------------------------------------
format(string, sizeof(string), "* У вас %d оч./оп.", PlayerInfo[i][pExp]);
SendClientMessage(i, COLOR_LIGHTBLUE , string);
if(PlayerInfo[i][pNeSdal] == 1)
{
PlayerInfo[i][pNeSdal] = 0;
}
if(PlayerInfo[i][pAge] == 45)
{
SendClientMessage(i, COLOR_WHITE, "Ну вот, Вам уже 45 лет. Теперь Вы больше не работаете, а только получаете пенсию.");
SendClientMessage(i, COLOR_WHITE, "Не знаю, поздравлять Вас или нет, решать Вам. В общем удачи.");
SendClientMessage(i, COLOR_WHITE, "Когда Вам исполнится 50 лет. Вы с каждым годом можете умереть от старости.");
PlayerInfo[i][pPensija] = PlayerInfo[i][pMember];
PlayerInfo[i][pMember] = 0;
}
if(PlayerInfo[i][pAge] >= 50)
{
new chance = random(50);
if(chance > 0 && chance < 9)
{
return 1;
}
else
{
SendClientMessage(i, COLOR_WHITE, "Ну вот, Ваше время пришло. Вы умерли от старости.");
SendClientMessage(i, COLOR_WHITE, "Земля вам будет пухом.");
PlayerInfo[i][pRPD] = 1;
}
}
}
else
{
SendClientMessage(i, COLOR_LIGHTRED, "* Вы слишком мало играли, чтобы получить чек.");
}
}
}
}
Checkprop();
return 1;
}
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
Код:
new level = PlayerInfo[targetid][pLevel];
new exp = PlayerInfo[targetid][pExp];
