Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

[INC]Funkcijos kvietimas konkrečiu metu


bebras

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3310 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki,

 

 mačiau keletą klausimų, kaip padaryti kažką tam tikru laiku. Sugalvojau kad labai nesunkiai galima tam sukurti include... štai ir jis! Jo dėka galėsite nurodyti funkciją kuri bus iškviesta tam tikrą valandą. 

 

 

Naudojimas

 

Įkelkite event.inc į savo pawno/include direktoriją.

 

Savo kode rašykite:

#include <event>

Bibliotekoje yra tik viena funkcija:

AddEvent(funcname[], bool:repeating, hour, minute=0, second=0);
  • funcname[] - funkcijos pavadinimas kuri bus iškviesta nurodytu laiku. Dėmesio! Ši funkcija turi būti public
  • bool:repeating - funkcijos kvietimo kartojimasis. True - funkcija bus kviečiama kas kartą nurodytu laiku, false - funkcija bus iškviesta tik vieną kartą nurodytu laiku(artimiausiu).
  • hour - funkcijos iškvietimo valanda(0-24)
  • *minute - funkcijos iškvietimo minutė(0-59)
  • *second - funkcijos iškvietimo sekundė(0-59)

* šie parametrai neprivalomi ir jų nenurodžius jie bus palaikomi 0.

 

 

 

Atsisiuntimas

 

ManoFailai.LT

Pastebin

Redaguota , nario Justas Š.
Nuoroda į komentarą
Dalintis per kitą puslapį

Still, turi naudot MAX_EVENTS, nes eini per eventus, o ne per enumą, taip kad tiksliau ir geriau būtų MAX_EVENTS naudot, pataisyk.

Žinoma, ignoruok mano praeitą pranešimą kur parodžiau kad esi neteisus ir toliau kalbėk savo....

 

Tu galvoji kad aš nepatikrinau prieš įkeldamas?

enum event_data {
        eFunctionName[32],
        eHour,
        eMinute,
        eSecond,
        eLastCall,
        bool:eActive,
        bool:eRepeat
};
 
new EventData[MAX_EVENTS][event_data];


//sizeof(EventData) = MAX_EVENTS
//sizeof(EventData[]) = event_data
Nuoroda į komentarą
Dalintis per kitą puslapį

 

Žinoma, ignoruok mano praeitą pranešimą kur parodžiau kad esi neteisus ir toliau kalbėk savo....

 

Tu galvoji kad aš nepatikrinau prieš įkeldamas?

enum event_data {
        eFunctionName[32],
        eHour,
        eMinute,
        eSecond,
        eLastCall,
        bool:eActive,
        bool:eRepeat
};
 
new EventData[MAX_EVENTS][event_data];


//sizeof(EventData) = MAX_EVENTS
//sizeof(EventData[]) = event_data

Bet kokio velnio rašyt 2x ilgesnį žodį jeigu galima tiesiai MAX_EVENTS?

Nuoroda į komentarą
Dalintis per kitą puslapį

Bet kokio velnio rašyt 2x ilgesnį žodį jeigu galima tiesiai MAX_EVENTS?

Nes aš turiu laiko. Nes vistiek naudoju auto-complete ir nerašau pilno žodžio. 

 

Beto, net ir pašalinus MAX_EVENTS ir EventData pakeitus į konkretų skaičių, kodas vis dar veiktų, skaičių keičiant vienoje vietoje.

Nuoroda į komentarą
Dalintis per kitą puslapį

Trumpa naudojima(example) gali duoti?

#include <event>


public OnGameModeInit()
{
   AddEvent("Vidurnaktis",true,0); // Galima rašyti valandą ir 24, skirtumo nėra.
   return;
}


// Funkcija bus iškviesta kas dieną, vidurnaktį.
forward Vidurnaktis();
public Vidurnaktis()
{
    SendClientMessageToAll(0xFF0000FF,"Jau vidurnaktis, ar ne laikas eiti miegoti?");
    return 1;
}
Nuoroda į komentarą
Dalintis per kitą puslapį

#include <event>


public OnGameModeInit()
{
   AddEvent("Vidurnaktis",true,0); // Galima rašyti valandą ir 24, skirtumo nėra.
   return;
}


// Funkcija bus iškviesta kas dieną, vidurnaktį.
forward Vidurnaktis();
public Vidurnaktis()
{
    SendClientMessageToAll(0xFF0000FF,"Jau vidurnaktis, ar ne laikas eiti miegoti?");
    return 1;
}
Labai pravartus dalykas, dekingas.
Nuoroda į komentarą
Dalintis per kitą puslapį

Labai pravartus dalykas, dekingas.

Galiu pridurti jog užtenka includinti y_timers PRIEŠ šį include ir jis naudos y_timers, kurie yra tikslesni ir efektyvesni, kadangi y_timers sumažina galimybe timeriams dirbti vienu metu, kas ir sukelia lag'ą žaidėjams. 

 

Ko gero, sekančioje versijoje include pats bandys includinti y_timers ir tik nepavykus naudos įprastus timerius.

Nuoroda į komentarą
Dalintis per kitą puslapį

Galėtų su kokiais nors parametrais iškviest funkciją.

Galvojau apie tai, BET leisti įrašyti neribotą skaičių parametrų negaliu, nes juos kažkur reikėtų laikyti. Sistema gali palaikyti 15 funkcijų, jei dar reikėtų pridėti kintamųjų ir parametrams, susidarytų nemažas skaičius atminties.

 

Nebent naudoti y_malloc tiems parametrams arba leisti tik tokius elementarius kaip vieną skaičių.

Nuoroda į komentarą
Dalintis per kitą puslapį

Galvojau apie tai, BET leisti įrašyti neribotą skaičių parametrų negaliu, nes juos kažkur reikėtų laikyti. Sistema gali palaikyti 15 funkcijų, jei dar reikėtų pridėti kintamųjų ir parametrams, susidarytų nemažas skaičius atminties.

 

Nebent naudoti y_malloc tiems parametrams arba leisti tik tokius elementarius kaip vieną skaičių.

Įdomus dalykas :x

Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 3 savaičių...

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3310 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...