Szerző Téma: Függvény készítése.  (Megtekintve 335 alkalommal)

Nem elérhető nyomo

  • 159
    • Profil megtekintése
Függvény készítése.
« Dátum: 2014. Február 18. - 19:21:54 »
0 Show voters
Írtam egy code-ot ami a jelenlegi dátumhoz hozzáadja a beírt napok számát és azt dátum formájában közli. Ez kéne nekem átalakítani.
A kérdésem az lenne hogy lehet ezt függvénynek átalakítani? Nekem a dátum értékei kellenének, hogy a 3  változóval (év,hónap,nap) térjen vissza, vagy hogy is fogalmazzak. A szöveg meg a többi nem kell csak a teszt kedvéért van ott. Hasonlítanám itt a getplayerpos(playerid,x,y,z), én meg ilyen szeretnék, paraméterek \"AdDatum(hánynappalszámoljon,évlesz,hónaplesz,naplesz)\"
Egy bérléshez kellene ahol nap alapján lehet hosszabbítani, van esetleg valami praktikusabb módszer erre? Nem lepõdnék meg ha lenne, de én nem találtam és elkezdtem ezt, ami már elég jól mûködik mert 2099 évig pontos, utána 1 nap eltérés van, ami elhanyagolható szerintem.
A code:
 
CMD:datumos(playerid,params[])
{
new plusz;
if(sscanf(params,\"i\",plusz)) return SendClientMessage(playerid,-1,\"Használat: /datumos [nap]\");
new nap,h,ev,napos;
new ora,perc,mp;
new napmulva,szev[16]= \"nem szökõév\";
napmulva = plusz;
getdate(ev,h,nap);
gettime(ora,perc,mp);
new string[128];
SendClientMessage(playerid,-1,\"=======================================================\");
format(string, sizeof string, \"A dátum ma:   %i.%s%i.%s%i.\",ev, (h < 10) ? (\"0\") : (\"\"), h, (nap < 10) ? (\"0\") : (\"\"), nap);
SendClientMessage(playerid,-1,string);
format(string, sizeof string, \"Pontos idõ:   %s%i:%s%i:%s%i\",(ora < 10) ? (\"0\") : (\"\"), ora, (perc < 10) ? (\"0\") : (\"\"), perc, (mp < 10) ? (\"0\") : (\"\"), mp);
SendClientMessage(playerid,-1,string);
if(h == 1 || h ==  3 || h ==  5 || h ==  7 || h ==  8 || h ==  10 || h ==  12) napos =31;
if(h == 4 || h ==  6 || h ==  9 || h ==  11) napos =30;
if(h == 2 && (ev % 4) == 0) napos = 29;
if(h == 2 && (ev % 4) != 0) napos = 28;
    if((ev % 4)== 0)szev = \"szökõév\";
format(string,sizeof(string),\"A jelenlegi év %s | A jelenlegi hónap %i napos\",szev,napos);
SendClientMessage(playerid,-1,string);
if(plusz>400)
{
    for(new i;i<10000;i++)
    {
            ev++;
   if((ev % 4) == 0) plusz-=366;
   if((ev % 4) != 0) plusz-=365;
   if(plusz<400) i=10000;
    }
}
if(nap+plusz > napos)
{
for(new i;i<12;i++)
{
    if(h == 1 || h ==  3 || h ==  5 || h ==  7 || h ==  8 || h ==  10 || h ==  12) napos =31;
   if(h == 4 || h ==  6 || h ==  9 || h ==  11) napos =30;
   if(h == 2 && (ev % 4) == 0) napos = 29;
   if(h == 2 && (ev % 4) != 0) napos = 28;
    if(nap+plusz > napos)
    {
        plusz-=napos;
      h++;
      if(h > 12) h= 1, ev++;
   }
}
nap = nap+plusz;
}
else
{
    nap = nap+plusz;
}
format(string,sizeof(string),\"%i nap múlva a dátum %i %s%i %s%i lesz\",napmulva,ev,(h < 10) ? (\"0\") : (\"\"),h,(nap < 10) ? (\"0\") : (\"\"),nap);
SendClientMessage(playerid,-1,string);
SendClientMessage(playerid,-1,\"=======================================================\");
return 1;
}

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal