Szerző Téma: Fizetés információ  (Megtekintve 991 alkalommal)

Fizetés információ
« Dátum: 2018. Március 24. - 10:34:23 »
0
Olyan kérdésem lenne hogy van egy kodom és a lényeg ha eléri a 300 percet akkor kapjon fizut de közbe ha eléri az 1 orát akkor lépjen szintett ezt miként tudnám megoldani?
 

   if(afkban[playerid] == 0)
   {
      pInfo[playerid][mpercek]++;
      if(pInfo[playerid][mpercek] == 59)
      {
          pInfo[playerid][mpercek] = 0;
          pInfo[playerid][percek]++;
          if(pInfo[playerid][percek] == 59)
          {
              pInfo[playerid][percek] = 0;
              pInfo[playerid][mpercek] = 0;
              pInfo[playerid][orak]++;
              SetPlayerScore(playerid, pInfo[playerid][orak]);
              Malibu_Green(playerid,  \"Elmúlt négy óra.\");
              if(pInfo[playerid][jailtime] == 0)
              {

 
 

Fizetés információ
« Válasz #1 Dátum: 2018. Március 24. - 10:49:54 »
0
A percek változót nem kéne resetelni, és tovább mehet, csak az órák számát emeled. És ha a percek száma osztható 60-al maradék nélkül ergó 1 óra eltelt akkor +olod a játékos óráját. Ha 300-al osztható maradék nélkül = 5 óra, eltelt akkor meg fizetés lefut.

Fizetés információ
« Válasz #2 Dátum: 2018. Március 24. - 10:57:42 »
0
    if(afkban[playerid] == 0)
        {
            pInfo[playerid][mpercek]++;
            if(pInfo[playerid][mpercek] == 59)
            {
                pInfo[playerid][mpercek] = 0;
                pInfo[playerid][percek]++;
                if(pInfo[playerid][percek] == 59)
                {
                    
                    pInfo[playerid][orak]++;
                    SetPlayerScore(playerid, pInfo[playerid][orak]);
                    Malibu_Green(playerid,  \"Szint lépés!\");
                   if(pInfo[playerid][percek] == 300)
                {
                    pInfo[playerid][percek] = 0;
                    pInfo[playerid][mpercek] = 0;
                    if(pInfo[playerid][jailtime] == 0)
                    {

Fizetés információ
« Válasz #3 Dátum: 2018. Március 24. - 10:57:52 »
0
igy?

Fizetés információ
« Válasz #4 Dátum: 2018. Március 24. - 17:04:58 »
0
Ezzel csak az a baj, hogy ha a perc = 59,el csak akkor fog lefutni, és az csak 1x lesz, ha pl. 120 percnél jár ami két óra akkor már nem.
 
Írtam, hogyha oszható és a maradék nulla.  pInfo[playerid][percek] % 60 == 0. Ez a maradékos osztásnál lévő maradékot adja vissza. Ez minden 60-al oszható számra 0-ás értéket fog visszaadni. Ugyanezt meglehet 300-al is csinálni. A perceket fölösleges resetelni max disconnectnél.

Fizetés információ
« Válasz #5 Dátum: 2018. Március 25. - 13:18:43 »
0
nah most már kezdem érteni esetleg igy mukodik?
 

pInfo[playerid][mpercek]++;
      if(pInfo[playerid][mpercek] == 59)
      {
          pInfo[playerid][mpercek] = 0;
          pInfo[playerid][percek]++;
          if(pInfo[playerid][percek]% 60 == 0)
          {
              
              pInfo[playerid][mpercek] = 0;
              pInfo[playerid][orak]++;
              SetPlayerScore(playerid, pInfo[playerid][orak]);
              Malibu_Green(playerid,  \"Elmúlt egy óra.\");
            if(pInfo[playerid][percek]% 300 == 0)
             {
              if(pInfo[playerid][jailtime] == 0)
              {
                 new Float:kamat = GetIntData(playerid, \"bankpenz\")*0.015;
                 SetIntData(playerid, \"bankpenz\", GetIntData(playerid, \"bankpenz\")+floatround(kamat));
                 format(stri, 256, \"{57b0f0}Banki kamat: {ff0000}Ft%d\", floatround(kamat));
                 SCM(playerid, -1, stri);

 
 
« Utoljára szerkesztve: 2018. Március 25. - 13:26:07 írta xXCsucsuXx »

Fizetés információ
« Válasz #6 Dátum: 2018. Március 25. - 13:53:15 »
0

pInfo[playerid][mpercek]++;
      if(pInfo[playerid][mpercek] == 59)
      {
          pInfo[playerid][mpercek] = 0;
          pInfo[playerid][percek]++;
          if(pInfo[playerid][percek]% 60 == 0)
          {
              
              pInfo[playerid][mpercek] = 0;
              pInfo[playerid][orak]++;
              SetPlayerScore(playerid, pInfo[playerid][orak]);
              Malibu_Green(playerid,  \"Elmúlt egy óra.\");
          }
            if(pInfo[playerid][percek]% 300 == 0)
          {
              if(pInfo[playerid][jailtime] == 0)
              {
                 new Float:kamat = GetIntData(playerid, \"bankpenz\")*0.015;
                 SetIntData(playerid, \"bankpenz\", GetIntData(playerid, \"bankpenz\")+floatround(kamat));
                 format(stri, 256, \"{57b0f0}Banki kamat: {ff0000}Ft%d\", floatround(kamat));
                 SCM(playerid, -1, stri);
            }
         }
      }

 
 

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal