Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: ѕєуzιι¢н™.amx poslato Avgust 07, 2011, 16:16:26 POSLE PODNE

Naslov: [Pomoc] Respekti i placa!
Poruka od: ѕєуzιι¢н™.amx poslato Avgust 07, 2011, 16:16:26 POSLE PODNE
Skripta koju koristim: GF Edit
Detaljan opis problema: Ovako nikako mi ne daje respekte i placu, ima sve normalno ono respekti 0/4, i sada kada bude npr. 16:00 i treba dobit respkt pise niste igrali dovoljno dugo, a bas sam jednom probao i bio citav sat na serveru i opet isto, a kada idem setstat sve je normalno
Dio skripte: public 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)
   {
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, "Iseljeni ste iz kuce.");
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;
new checks = PlayerInfo[i][pPayCheck] / 5;
if(PlayerInfo[i][pDonateRank] > 0)
{
   new bonus = PlayerInfo[i][pPayCheck] / 10;
   checks += bonus;
}
   new ebill = (PlayerInfo[i][pAccount]/10000)*(PlayerInfo[i][pLevel]);
   //ConsumingMoney[i] = 1;
   //GivePlayerMoney(i, checks);
   account += 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 playerid;
   format(string,sizeof(string),"~y~Los Santos Banka:~n~~n~~w~ Iznos plate:~y~ %d~g~$~n~~w~ Racuni/Takse: ~r~-%d~g~$~n~~w~ Racun za struju: ~r~-%d~g~$~n~~w~ Racun renta: ~r~-%d~g~$~n~~y~Novi racun: ~g~$%d~n~~y~Stisni ~w~ENTER~y~ ukoliko zelis zatvoriti ovaj prozor",checks, TaxValue, ebill, rent,PlayerInfo[i][pAccount]);
   TextDrawSetString(ag, string);
   TextDrawShowForPlayer(playerid, ag);
   TextDrawShowForPlayer(playerid, paytextdraw);
format(string, sizeof(string), "~y~PayDay~n~~w~Placa");
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, "* Niste igrali dovoljno dugo da bi dobili payday.");
}
}
}
}
Checkprop();
return 1;
}

Neke slike/video za lakse dobivanje pomoci(neobavezno): //
Naslov: Odg: [Pomoc] Respekti i placa!
Poruka od: mikec poslato Avgust 07, 2011, 16:54:58 POSLE PODNE
Proveri na koliko minuta ti se povećava vrednost promenjive pPayDay, i onda na osnovu toga izmeni sledeći uslov:
if(PlayerInfo[i][pPayDay] >= 5)
Naslov: Odg: [Pomoc] Respekti i placa!
Poruka od: ѕєуzιι¢н™.amx poslato Avgust 07, 2011, 18:15:24 POSLE PODNE
a gdje da to promjenim nisam bas razumio :S
Naslov: Odg: [Pomoc] Respekti i placa!
Poruka od: System32 poslato Avgust 07, 2011, 21:35:17 POSLE PODNE
pa da kucas ctrl + f i onda nades omg
Naslov: Odg: [Pomoc] Respekti i placa!
Poruka od: ѕєуzιι¢н™.amx poslato Avgust 08, 2011, 15:24:48 POSLE PODNE
Kolko sam shvatio ovo treba :S?
if(PlayerInfo[i][pPayDay] >= 5)
{
    Tax += TaxValue;//Should work for every player online
    PlayerInfo[i][pAccount] -= TaxValue;
new checks = PlayerInfo[i][pPayCheck] / 5;
if(PlayerInfo[i][pDonateRank] > 0)
{
    new bonus = PlayerInfo[i][pPayCheck] / 10;
    checks += bonus;
}
    new ebill = (PlayerInfo[i][pAccount]/10000)*(PlayerInfo[i][pLevel]);
    //ConsumingMoney[i] = 1;
    //GivePlayerMoney(i, checks);
    account += 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 playerid;
    format(string,sizeof(string),"~y~Los Santos Banka:~n~~n~~w~ Iznos plate:~y~ %d~g~$~n~~w~ Racuni/Takse: ~r~-%d~g~$~n~~w~ Racun za struju: ~r~-%d~g~$~n~~w~ Racun renta: ~r~-%d~g~$~n~~y~Novi racun: ~g~$%d~n~~y~Stisni ~w~ENTER~y~ ukoliko zelis zatvoriti ovaj prozor",checks, TaxValue, ebill, rent,PlayerInfo[i][pAccount]);
    TextDrawSetString(ag, string);
    TextDrawShowForPlayer(playerid, ag);
    TextDrawShowForPlayer(playerid, paytextdraw);
format(string, sizeof(string), "~y~PayDay~n~~w~Placa");
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, "* Niste igrali dovoljno dugo da bi dobili payday.");
}
}
}
}
Checkprop();
return 1;
}
Naslov: Odg: [Pomoc] Respekti i placa!
Poruka od: mikec poslato Avgust 08, 2011, 16:46:04 POSLE PODNE
Da, to treba. Samo proveri na koliko minuta ti se menja pPayDay.

Ako ti se menja na svakih 15minuta, u navedenom uslovu umesto 5 napisi naprimer 2. (15x2 = 30minuta za dobijanje plate)
Ako se menja na svakih 2min, u uslovu namesto 5 napisi oko 10.  (2x10 = 20minuta za dobijanje plate)

Naravno, ovo su primeri, ako želiš da se platu igra 40minuta, stavi da se promenjiva pPayDay povećava naprimer na svaka 2minuta, i da se u uslovu nalazi:
if(PlayerInfo[pPayDay] >= 20)
Zato što 2x20=40minuta

Koji deo nije jasan? :D