Jump to content
Autentificarea cu Google și Facebook nu mai este disponibilă. ×

[TUT] Payday o data pe ora (Salariul)


Recommended Posts

Posted

Salutare la toti. Este un topic la discutii scripting, cineva cere payday si mam gandit sa fac un tutorial

1.Cautam linia forward si adaugam linia

forward PayDay();
2.Cautam linia enum pInfo si adaugam
pPayDay,
si
pPayDayHad,
3.Cautam linia
public OnPlayerConnect(playerid)
si adaugam mai jos de PlayerInfo[playerid][pGunLic] = 0; liniile
PlayerInfo[playerid][pPayDay] = 0;
si
PlayerInfo[playerid][pPayDayHad] = 0;
4.Cautam linia public OnGameModeInit() si adaugam mai pe jos unde sunt cele cu public...
public SyncTime()
{
    new string[64];
    new tmphour;
    new tmpminute;
    new tmpsecond;
    gettime(tmphour, tmpminute, tmpsecond);
    FixHour(tmphour);
    tmphour = shifthour;
    if ((tmphour > ghour) || (tmphour == 0 && ghour == 23))
    {
        format(string, sizeof(string), "SERVER: The time is now %d:00 hours",tmphour);
        BroadCast(COLOR_WHITE,string);
        ghour = tmphour;
        PayDay();
        if (realtime)
        {
            SetWorldTime(tmphour);
        }
    }
}
si mai jos de ea adaugam
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_LIGHTRED, "You failed to pay your debt, Jail time.");
                    GameTextForPlayer(i, "~r~Busted!", 2000, 1);
                    SetPlayerInterior(i, 6);
                       SetPlayerPos(i, 264.6288,77.5742,1001.0391);
                    PlayerInfo[i][pJailed] = 1;
                    ResetPlayerWeapons(i);
                    WantedPoints[i] = 0;
                    PlayerInfo[i][pJailTime] = 240;
                    format(string, sizeof(string), "You are jailed for %d seconds.   Bail: Unable", PlayerInfo[i][pJailTime]);
                    SendClientMessage(i, COLOR_LIGHTBLUE, 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;
                    SendClientMessage(i, COLOR_WHITE, "|___ BANK STATMENT ___|");
                    format(string, sizeof(string), "  Paycheck: $%d   Tax Money: -$%d", checks, TaxValue);
                    SendClientMessage(i, COLOR_GRAD1, string);
                    if(PlayerInfo[i][pPhousekey] != 255 || PlayerInfo[i][pPbiskey] != 255)
                    {
                        format(string, sizeof(string), "  Electricity Bill: -$%d", ebill);
                        SendClientMessage(i, COLOR_GRAD1, string);
                    }
                    format(string, sizeof(string), "  Balance: $%d", account);
                    SendClientMessage(i, COLOR_GRAD1, string);
                    format(string, sizeof(string), "  Interest Rate: 0.%d percent",tmpintrate);
                    SendClientMessage(i, COLOR_GRAD2, string);
                    format(string, sizeof(string), "  Interest Gained $%d", interest);
                    SendClientMessage(i, COLOR_GRAD3, string);
                    SendClientMessage(i, COLOR_GRAD4, "|--------------------------------------|");
                    format(string, sizeof(string), "  New Balance: $%d", PlayerInfo[i][pAccount]);
                    SendClientMessage(i, COLOR_GRAD5, string);
                    format(string, sizeof(string), "  Rent: -$%d", rent);
                    SendClientMessage(i, COLOR_GRAD5, string);
                    format(string, sizeof(string), "~y~PayDay~n~~w~Paycheck");
                    GameTextForPlayer(i, string, 5000, 1);
                    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;
}
5.Acum cautam linia public OnPlayerRegister(playerid, password[]) si mai jos de format(var, 32, "CarTime=%d\n",PlayerInfo[playerid][pCarTime]);fwrite(hFile, var); adugam
format(var, 32, "PayDay=%d\n",PlayerInfo[playerid][pPayDay]);fwrite(hFile, var);
si
format(var, 32, "PayDayHad=%d\n",PlayerInfo[playerid][pPayDayHad]);fwrite(hFile, var);
6.Acum cautam linia public OnPlayerUpdate(playerid) si mai jos de format(var, 32, "CarTime=%d\n",PlayerInfo[playerid][pCarTime]);fwrite(hFile, var); adaugam
format(var, 32, "PayDay=%d\n",PlayerInfo[playerid][pPayDay]);fwrite(hFile, var);
si
format(var, 32, "PayDayHad=%d\n",PlayerInfo[playerid][pPayDayHad]);fwrite(hFile, var);
7.Acum la linia public OnPlayerLogin(playerid,password[]) mai jos de if( strcmp( key , "CarTime" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pCarTime] = strval( val ); } adaugam
if( strcmp( key , "PayDay" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPayDay] = strval( val ); }
si
if( strcmp( key , "PayDayHad" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPayDayHad] = strval( val ); }

Asta a fost cam tot sper sa va ajute. Nu este facuta de mine am copiato din gm pt ca altii nu il au

Daca apar probleme dai un replay :) Ms frumos

Guest PlayON
Posted

Nui bun, nu toti avem GMu taui frate, fiecare foloseste ce vrea.

Nu toti avem pInfo poate avem P_Data, sau PlayerInfo.

Posted

Avem o vorba, Copy->Paste rezula Lock.

Imi aduc aminte cand jucam pe versiunea 0.1.. ala era SA-MP adevarat.

Va salut cu respect (pe cei care merita).

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.