GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: xXCsucsuXx - 2018. Március 24. - 10:34:23

Cím: Fizetés információ
Írta: xXCsucsuXx - 2018. Március 24. - 10:34:23
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)
              {

 
 
Cím: Fizetés információ
Írta: Naretev - 2018. Március 24. - 10:49:54
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.
Cím: Fizetés információ
Írta: xXCsucsuXx - 2018. Március 24. - 10:57:42
    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)
                    {
Cím: Fizetés információ
Írta: xXCsucsuXx - 2018. Március 24. - 10:57:52
igy?
Cím: Fizetés információ
Írta: Naretev - 2018. Március 24. - 17:04:58
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.
Cím: Fizetés információ
Írta: xXCsucsuXx - 2018. Március 25. - 13:18:43
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);

 
 
Cím: Fizetés információ
Írta: Kyosuke_Hiroshi - 2018. Március 25. - 13:53:15

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);
            }
         }
      }