Jump to content
  • 0

pomoc Timer - nevykoná se


Deejva

Dotaz

Ahoj, mám problém, dělal jsem si podle návodu VIP na čas, to funguje, ale vip vyprší, když se připojí a nemá ho mít .. a to může mít o dost hodin déle. proto jsem si udělal Timer, který se bude opakovat každou hodinu, chtěl jsem vyzkoušet, jestli funguje, tak jsem ho dal na 2 minuty, ale nefunguje .. nic se nenapíše a neudělá .. zkusil jsem dát i že když ho má, tak to napíše, že ho má, ale nenapíše se nic.

Mam to jako filterscript.

 

Pod includy:

 

forward Control();

 

 

public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Blank Filterscript by your name here");
print("--------------------------------------\n");
SetTimer("Control",120*1000,true);
return 1;
}

 

 

public Control()
{
new file[128],Caskonec;
 for(new i; i<MAX_PLAYERS+1;i++)
   format(file,sizeof(file),"Vip/%s.txt",Jmeno(i));
if(fexist(file))
{
  Caskonec = DOF2_GetInt(file,"VIP");
  if(Caskonec < gettime())
  {
   for(new i; i<MAX_PLAYERS+1;i++)
      SCM(i,-1,"Vypršelo ti VIP!");
      DOF2_RemoveFile(file);

 }
 else if(Caskonec > gettime())
 {
  for(new i; i<MAX_PLAYERS+1;i++)
      SCM(i,-1,"Máš VIP!");
  }
}
}

Link to comment
Share on other sites

9 odpovědí na tuto otázku

Recommended Posts

  • 0

Takže takhle ? a jinak, když tam dam for(new i; i<MAX_PLAYERS+1;i++) jen nahoru, dole to hlásí že "i" neexistuje

 

public Control()

{

new file[128],Caskonec;

for(new i; i<MAX_PLAYERS+1;i++)

if(!IsPlayerConnected(i))

{

format(file,sizeof(file),"Vip/%s.txt",Jmeno(i));

if(fexist(file))

{

Caskonec = DOF2_GetInt(file,"VIP");

if(Caskonec < gettime())

{

for(new i; i<MAX_PLAYERS+1;i++)

SCM(i,-1,"Vypršelo ti VIP!");

DOF2_RemoveFile(file);

 

}

else if(Caskonec > gettime())

{

for(new i; i<MAX_PLAYERS+1;i++)

SCM(i,-1,"Máš VIP!");

}

}

}

}

Link to comment
Share on other sites

  • 0

Když nastavuješ VIP, zadáš počet dnů a to se to přičte k datumu, co právě je. Caskonec pak zjistí, jakej je čas zapsanej v souboru, když je aktuálně datum větší, než v souboru, smaže ti VIP

Link to comment
Share on other sites

  • 0
public Control()
{
   for(new i; i<MAX_PLAYERS+1;i++)
   {
       new file[128],Caskonec;
       if(IsPlayerConnected(i))
       {
           format(file,sizeof(file),"Vip/%s.txt",Jmeno(i));
           if(fexist(file))
           {
                  Caskonec = DOF2_GetInt(file,"VIP");
                  if(Caskonec < gettime())
                  {

                      SCM(i,-1,"Vypršelo ti VIP!");
                      DOF2_RemoveFile(file);  
               }
                 else if(Caskonec > gettime())
                 {

                      SCM(i,-1,"Máš VIP!");
                  }
           }
       }
   }
}

Link to comment
Share on other sites

  • 0

proc

 

MAX_PLAYERS+1 ?

 

sa-mp ma maximalne 800 slotu a ne 801

 

Jinak co kdyz se hrac pripoji a uz bude po expiraci, ale timer ho skontroluje treba az za pul hodiny?

 

public Control()
{
for(new i; i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i))
{
switch(CheckVIP(i))
{
case 0: SCM(i,-1,"Nemáš VIP!");
case 1: SCM(i,-1,"Máš VIP!");
case 2: SCM(i,-1,"Vypršelo ti VIP!");
}
}
}
return 1;
}

public OnPlayerRequestSpawn(playerid)
{
switch(CheckVIP(playerid))
{
case 0: SCM(playerid,-1,"Nemáš VIP!");
case 1: SCM(playerid,-1,"Máš VIP!");
case 2: SCM(playerid,-1,"Vypršelo ti VIP!");
}
return 1;
}

stock CheckVIP(playerid)
{
new file[128];
format(file,sizeof(file),"Vip/%s.txt",Jmeno(playerid));
if(fexist(file))
{
if(DOF2_GetInt(file,"VIP") < gettime())
{
DOF2_RemoveFile(file);// = fremove(file);
return 2;
}
return 1;
}
return 0;
}

 

Nemel jsi tam SCM na vsechny moznosti co mohou nastat, tetka aspon budes vedet, ktera ze 3 moznosti se vyvola.

Link to comment
Share on other sites

  • 0

 

Jinak co kdyz se hrac pripoji a uz bude po expiraci, ale timer ho skontroluje treba az za pul hodiny?

 

 

Mam tam, i že to kontroluje při připojení .. ale když se připojí a má ho mít, plácnu třeba na hodinu, může být online dalších 8 hodin a VIP mít .. proto potřebuju TIMER :d

 

A to od tebe Atomasi taky nefunguje, to co jsi napsal, nejde, nic se nenapíše ..

 

public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Blank Filterscript by your name here");
print("--------------------------------------\n");
SetTimer("Control",120*1000,true);
printf("Timer spuštěň!");
return 1;
}

Do logu se nic nenapsalo, takže bude problém v timeru .. má to být v FSInit, když je to FS, ne ?

 

Vyřešeno, místo #define FILTERSCRIPT jsem měl #define filterscriptt -.-" :d

Link to comment
Share on other sites

  • 0

Mam tam, i že to kontroluje při připojení .. ale když se připojí a má ho mít, plácnu třeba na hodinu, může být online dalších 8 hodin a VIP mít .. proto potřebuju TIMER :d

 

A to od tebe Atomasi taky nefunguje, to co jsi napsal, nejde, nic se nenapíše ..

 

public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Blank Filterscript by your name here");
print("--------------------------------------\n");
SetTimer("Control",120*1000,true);
printf("Timer spuštěň!");
return 1;
}

Do logu se nic nenapsalo, takže bude problém v timeru .. má to být v FSInit, když je to FS, ne ?

 

Vyřešeno, místo #define FILTERSCRIPT jsem měl #define filterscriptt -.-" :d

Tak si priste ten print dej i na zacatek toho callbacku :) Zjistil by jsi to hned :d

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...