Faction Pay Help -
VictorWolf - 21.01.2014
Hello.
I am editing a script I have and I found out that the pay system in it does not work. I cannot seem to set the pay for factions, though it all "looks" right. This script uses DINI and also z-cmd and various other includes.
Now the DINI files for the faction ranks include the "facpay" but all of the pay for each rank is stuck at 53.
The lines are below.
Код:
stock LoadFactions()
{
// SAPD
new file[64];
format(file, sizeof(file), "factions/SAPD.ini");
format(FacInfo[1][facMembers], 8, "%s", dini_Get(file, "LSPDMembers"));
format(FacInfo[1][fRank0], 32, "%s", dini_Get(file, "Rank0"));
format(FacInfo[1][fRank1], 32, "%s", dini_Get(file, "Rank1"));
format(FacInfo[1][fRank2], 32, "%s", dini_Get(file, "Rank2"));
format(FacInfo[1][fRank3], 32, "%s", dini_Get(file, "Rank3"));
format(FacInfo[1][fRank4], 32, "%s", dini_Get(file, "Rank4"));
format(FacInfo[1][fRank5], 32, "%s", dini_Get(file, "Rank5"));
format(FacInfo[1][fRank6], 32, "%s", dini_Get(file, "Rank6"));
format(FacInfo[1][fRank7], 32, "%s", dini_Get(file, "Rank7"));
format(FacInfo[1][fRank8], 32, "%s", dini_Get(file, "Rank8"));
format(FacInfo[1][fRank9], 32, "%s", dini_Get(file, "Rank9"));
format(FacInfo[1][fRank10], 32, "%s", dini_Get(file, "Rank10"));
format(FacInfo[1][fDiv1], 8, "%s", dini_Get(file, "Div1"));
format(FacInfo[1][fDiv2], 8, "%s", dini_Get(file, "Div2"));
format(FacInfo[1][fDiv3], 8, "%s", dini_Get(file, "Div3"));
format(FacInfo[1][fDiv4], 8, "%s", dini_Get(file, "Div4"));
format(FacInfo[1][fDiv5], 8, "%s", dini_Get(file, "Div5"));
format(FacInfo[1][fPay0], 32, "%d", dini_Get(file, "Pay0"));
format(FacInfo[1][fPay1], 32, "%d", dini_Get(file, "Pay1"));
format(FacInfo[1][fPay2], 32, "%d", dini_Get(file, "Pay2"));
format(FacInfo[1][fPay3], 32, "%d", dini_Get(file, "Pay3"));
format(FacInfo[1][fPay4], 32, "%d", dini_Get(file, "Pay4"));
format(FacInfo[1][fPay5], 32, "%d", dini_Get(file, "Pay5"));
format(FacInfo[1][fPay6], 32, "%d", dini_Get(file, "Pay6"));
format(FacInfo[1][fPay7], 32, "%d", dini_Get(file, "Pay7"));
format(FacInfo[1][fPay8], 32, "%d", dini_Get(file, "Pay8"));
format(FacInfo[1][fPay9], 32, "%d", dini_Get(file, "Pay9"));
format(FacInfo[1][fPay10], 45, "%d", dini_Get(file, "Pay10"));
format(FacInfo[1][fPay11], 32, "%d", dini_Get(file, "Pay11"));
print("SAPD files loaded successfully.");
}
only showing one faction as all the others are the same
the Faction Pay Command
Код:
CMD:facpay(playerid, params[])
{
new rank, amount, string[128];
if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You are not allowed to use command.");
if(!PlayerInfo[playerid][pFacLeader]) return SendClientMessage(playerid, COLOR_GREY, "You are not a faction leader.");
if(sscanf(params, "ui", rank, amount)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /facpay [rank] [amount]");
if(amount > 300000) return SendClientMessage(playerid, COLOR_WHITE, "Invalid Amount");
if(amount <= 0) return SendClientMessage(playerid, COLOR_WHITE, "Invalid Amount");
new idx = PlayerInfo[playerid][pFac];
if(PlayerInfo[playerid][pFacLeader])
switch(rank)
{
case 0:
{
FacInfo[idx][fPay1] = amount;
format(string, sizeof(string), "You have set rank 1's pay to %d", amount);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
}
case 1:
{
FacInfo[idx][fPay2] = amount;
format(string, sizeof(string), "You have set rank 2's pay to %d", amount);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
}
case 2:
{
FacInfo[idx][fPay3] = amount;
format(string, sizeof(string), "You have set rank 3's pay to %d", amount);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
}
case 3:
{
FacInfo[idx][fPay4] = amount;
format(string, sizeof(string), "You have set rank 4's pay to %d", amount);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
}
case 4:
{
FacInfo[idx][fPay5] = amount;
format(string, sizeof(string), "You have set rank 5's pay to %d", amount);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
}
case 5:
{
FacInfo[idx][fPay6] = amount;
format(string, sizeof(string), "You have set rank 6's pay to %d", amount);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
}
case 6:
{
FacInfo[idx][fPay7] = amount;
format(string, sizeof(string), "You have set rank 7's pay to %d", amount);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
}
case 7:
{
FacInfo[idx][fPay8] = amount;
format(string, sizeof(string), "You have set rank 8's pay to %d", amount);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
}
case 8:
{
FacInfo[idx][fPay9] = amount;
format(string, sizeof(string), "You have set rank 9's pay to %d", amount);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
}
case 9:
{
FacInfo[idx][fPay10] = amount;
format(string, sizeof(string), "You have set rank 10's pay to %d", amount);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
}
case 10:
{
FacInfo[idx][fPay11] = amount;
format(string, sizeof(string), "You have set rank 11's pay to %d", amount);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
}
}
return 1;
}
And lastly the paycheck system
Код:
stock Paycheck()
{
// Bank Robbery
if(BankRobberyTime) BankRobberyTime --;
// Bonus Calculation
new bonus;
foreach(Player, i)
{
if(IsPlayerLoggedIn(i)) bonus ++;
}
bonus = bonus*2;
// Paycheck
foreach(Player, i)
{
if(IsPlayerLoggedIn(i))
{
if(PlayerInfo[i][pMinutes] >= 40)
{
new string[128], idx;
// Calculating Paycheck
new paycheck = ((PlayerInfo[i][pMinutes]*PlayerInfo[i][pMinutes]) / 12) * PlayerInfo[i][pLevel];
new taxamount = (TaxPercent * paycheck) / 100;
new finalpaycheck = paycheck + strval(FACPAY(i)) - taxamount;
if(PlayerInfo[i][pInternet]) {finalpaycheck = finalpaycheck - 50; TaxMoney += 50;}
idx = PlayerInfo[i][pBiz];
if(PlayerInfo[i][pBiz]) {finalpaycheck = finalpaycheck - (BizInfo[idx][bLevel] * PlayerInfo[i][pLevel]); TaxMoney += (BizInfo[idx][bLevel] * PlayerInfo[i][pLevel]);}
idx = PlayerInfo[i][pHouse];
if(PlayerInfo[i][pHouse]) {finalpaycheck = finalpaycheck - (HouseInfo[idx][hLevel] * PlayerInfo[i][pLevel]); TaxMoney += (HouseInfo[idx][hLevel] * PlayerInfo[i][pLevel]);}
if(PlayerInfo[i][pVIP] == 2) {finalpaycheck = finalpaycheck * (125/100);}
if(PlayerInfo[i][pVIP] == 3) {finalpaycheck = finalpaycheck * (150/100);}
if(PlayerInfo[i][pVIP] == 4) {finalpaycheck = finalpaycheck * (200/100);}
finalpaycheck = finalpaycheck + ((bonus/100)*finalpaycheck);
// Increasing Respect
new calc, stack[4];
if(PlayerInfo[i][pMinutes] >= 120)
{
calc = (PlayerInfo[i][pMinutes]/60);
format(stack, sizeof(stack), "%d", calc);
PlayerInfo[i][pHours] += strval(stack);
}
else
{
PlayerInfo[i][pHours] ++;
}
// Levels: 1-30
new OldLevel = PlayerInfo[i][pLevel];
if(PlayerInfo[i][pLevel] == 1 && PlayerInfo[i][pHours] >= 4) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 2 && PlayerInfo[i][pHours] >= 12) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 3 && PlayerInfo[i][pHours] >= 16) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 4 && PlayerInfo[i][pHours] >= 20) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 5 && PlayerInfo[i][pHours] >= 24) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 6 && PlayerInfo[i][pHours] >= 60) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 7 && PlayerInfo[i][pHours] >= 80) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 8 && PlayerInfo[i][pHours] >= 100) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 9 && PlayerInfo[i][pHours] >= 125) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 10 && PlayerInfo[i][pHours] >= 144) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 11 && PlayerInfo[i][pHours] >= 173) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 12 && PlayerInfo[i][pHours] >= 200) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 13 && PlayerInfo[i][pHours] >= 250) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 14 && PlayerInfo[i][pHours] >= 300) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 15 && PlayerInfo[i][pHours] >= 350) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 16 && PlayerInfo[i][pHours] >= 400) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 17 && PlayerInfo[i][pHours] >= 450) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 18 && PlayerInfo[i][pHours] >= 500) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 19 && PlayerInfo[i][pHours] >= 550) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 20 && PlayerInfo[i][pHours] >= 600) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 21 && PlayerInfo[i][pHours] >= 700) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 22 && PlayerInfo[i][pHours] >= 750) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 23 && PlayerInfo[i][pHours] >= 800) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 24 && PlayerInfo[i][pHours] >= 850) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 25 && PlayerInfo[i][pHours] >= 900) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 26 && PlayerInfo[i][pHours] >= 950) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 27 && PlayerInfo[i][pHours] >= 1000) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 28 && PlayerInfo[i][pHours] >= 1050) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 29 && PlayerInfo[i][pHours] >= 1100) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 30 && PlayerInfo[i][pHours] >= 1125) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 31 && PlayerInfo[i][pHours] >= 1150) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 32 && PlayerInfo[i][pHours] >= 1175) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 33 && PlayerInfo[i][pHours] >= 1200) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 34 && PlayerInfo[i][pHours] >= 1225) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 35 && PlayerInfo[i][pHours] >= 1260) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 36 && PlayerInfo[i][pHours] >= 1280) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 37 && PlayerInfo[i][pHours] >= 1310) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 38 && PlayerInfo[i][pHours] >= 1290) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 39 && PlayerInfo[i][pHours] >= 1320) PlayerInfo[i][pLevel]++;
else if(PlayerInfo[i][pLevel] == 41 && PlayerInfo[i][pHours] >= 1350) PlayerInfo[i][pLevel]++;
new NewLevel = PlayerInfo[i][pLevel];
// Setting Level
format(string, sizeof(string), "~r~Level up");
GameTextForPlayer(i, string, 5000, 1);
PlayerPlaySound(i, 1052, 0.0, 0.0, 0.0);
SetPlayerScore(i, PlayerInfo[i][pLevel]);
new oldbalance = PlayerInfo[i][pBank];
PlayerInfo[i][pBank] += finalpaycheck;
TaxMoney += taxamount;
// Paycheck Report
//SendClientMessage(i, COLOR_LIGHTBLUE, "|________ BANK STATEMENT ________|");
SendClientMessage(i, COLOR_WHITE, "{FF6347}===================== {FFFFFF}Los Santos Payday {FF6347}=====================");
format(string, sizeof(string), "{FF6347}Minutes Played: {FFFFFF}%d {FF6347} {FF6347}Level: {FFFFFF}%d {FF6347}Respect: {FFFFFF}%d", PlayerInfo[i][pMinutes], PlayerInfo[i][pLevel], PlayerInfo[i][pHours]);
SendClientMessage(i, COLOR_FADE1, string);
format(string, sizeof(string), "{FF6347}Paycheck: {FFFFFF}$%d {FF6347}Tax: {FFFFFF}$%d (%d percent) {FF6347}Final Paycheck: {FFFFFF}$%d", paycheck, taxamount, TaxPercent, finalpaycheck);
SendClientMessage(i, COLOR_FADE1, string);
format(string, sizeof(string), "{FF6347}Old Balance: {FFFFFF}$%d {FF6347}Faction Pay: {FFFFFF}$%d {FF6347}New Balance: {FFFFFF}$%d", oldbalance, FACPAY(i), PlayerInfo[i][pBank]);
SendClientMessage(i, COLOR_FADE1, string);
if(OldLevel != NewLevel) SendClientMessage(i, COLOR_FADE1, "{FF6347}* You have increased your level by playing a lot.");
SendClientMessage(i, COLOR_WHITE, "{FF6347}==========================================================");
/*if(PlayerInfo[i][pMinutes] >= 120)
{
format(string, sizeof(string), "* You have been given %d respect points for playing for %d minutes.", strval(stack), PlayerInfo[i][pMinutes]);
if(PlayerInfo[i][pVIPBuddy]) PlayerInfo[i][pVIPBuddy] -= strval(stack);
}
else
{
format(string, sizeof(string), "* You have been given 1 respect point for playing for %d minutes.", PlayerInfo[i][pMinutes]);
if(PlayerInfo[i][pVIPBuddy]) PlayerInfo[i][pVIPBuddy] --;
}
SendClientMessage(i, COLOR_LIGHTBLUE, string);*/
//if(PlayerInfo[i][pInternet]) SendClientMessage(i, COLOR_LIGHTBLUE, "* You have been charged $50 for having smartphone internet service activated.");
idx = PlayerInfo[i][pBiz];
if(PlayerInfo[i][pBiz])
{
//format(string, sizeof(string), "* You have been charged $%d for having a business.", BizInfo[idx][bLevel] * PlayerInfo[i][pLevel]);
//SendClientMessage(i, COLOR_LIGHTBLUE, string);
}
idx = PlayerInfo[i][pHouse];
if(PlayerInfo[i][pHouse])
{
//format(string, sizeof(string), "* You have been charged $%d for having a house.", HouseInfo[idx][hLevel] * PlayerInfo[i][pLevel]);
//SendClientMessage(i, COLOR_LIGHTBLUE, string);
}
//if(PlayerInfo[i][pVIP] == 2) SendClientMessage(i, COLOR_VIP, "* Silver VIP: Your paycheck was 25 percent higher than usual.");
//else if(PlayerInfo[i][pVIP] == 3) SendClientMessage(i, COLOR_VIP, "* Gold VIP: Your paycheck was 50 percent higher than usual.");
//else if(PlayerInfo[i][pVIP] == 4) SendClientMessage(i, COLOR_VIP, "* Platinum VIP: Your paycheck was 100 percent higher than usual.");
// Paycheck Bonus
//format(string, sizeof(string), "* Bonus: Your paycheck was %d percent higher as we have %d players online.", bonus, bonus/2);
//SendClientMessage(i, COLOR_LIME, string);
// Clearing Playing Minutes
PlayerInfo[i][pMinutes] = 0;
// Giving a reward point
/*if(!PlayerInfo[i][pVIP])
{
PlayerInfo[i][pReward] ++;
if(PlayerInfo[i][pReward] >= 12)
{
PlayerInfo[i][pReward] = 0;
PlayerInfo[i][pVIP] = 2;
PlayerInfo[i][pVIPTemp] = 60*24;
format(string, sizeof(string), "RewardWarn: %s has been rewarded a Silver VIP package for 24 hours for being active.", RPN(i));
SendClientMessageToAll(COLOR_VIP, string);
Log("logs/makevip.log", string);
SendClientMessage(i, COLOR_LIGHTBLUE, " You will not be rewarded again until your Silver VIP reward time is over.");
}
else
{
format(string, sizeof(string), "* You have gained an activity point, you have total of %d points.", PlayerInfo[i][pReward]);
SendClientMessage(i, COLOR_VIP, string);
}
}*/
// Loyal Points
if(!PlayerInfo[i][pLoyal])
{
PlayerInfo[i][pLPoints] ++;
//format(string, sizeof(string), "* You have gained a loyalty point, you have total of %d points.", PlayerInfo[i][pLPoints]);
//SendClientMessage(i, COLOR_LIME, string);
}
}
else
{
SendClientMessage(i, COLOR_LIGHTRED, " You haven't played long enough to recieve a paycheck.");
}
PayChecks = 1;
SetTimer("PayCheckDone", 5000, false);
}
}
return 1;
}
If there is anything else that you guys need, please, let me know.
By the way, I tried changing the .ini files and setting the pay manually but they default back to 53.