Odpočítávání.. (C++ VS6 sp5) – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Odpočítávání.. (C++ VS6 sp5) – C / C++ – Fórum – Programujte.comOdpočítávání.. (C++ VS6 sp5) – C / C++ – Fórum – Programujte.com

 

Ivo
~ Anonymní uživatel
93 příspěvků
23. 3. 2007   #1
-
0
-

Ahoj.. mam malinký problémek .) potřebuju udělat nějakou funkci, která po mnou nastaveném čase provede to co chci..


4example:

SendMotd() je moje funkce ktera v sobe obsahuje volani ktery precte z txt souboru stringy a posle je do chatu.. takneco:
LTBOOL MultiplayerMgr::SendMotd()
{

{
char szMsg[128];
sprintf(szMsg,"%s",getmsg("MOTDLine1"));
HMESSAGEWRITE hMessage = g_pLTServer->StartMessage(NULL, MID_MPMGR_MESSAGE);
hMessage->WriteDWord(-1);
hMessage->WriteString(szMsg);
g_pLTServer->EndMessage(hMessage);
}
{
char szMsg[128];
sprintf(szMsg,"%s",getmsg("MOTDLine2"));
HMESSAGEWRITE hMessage = g_pLTServer->StartMessage(NULL, MID_MPMGR_MESSAGE);
hMessage->WriteDWord(-1);
hMessage->WriteString(szMsg);
g_pLTServer->EndMessage(hMessage);
}
{
char szMsg[128];
sprintf(szMsg,"%s",getmsg("MOTDLine3"));
HMESSAGEWRITE hMessage = g_pLTServer->StartMessage(NULL, MID_MPMGR_MESSAGE);
hMessage->WriteDWord(-1);
hMessage->WriteString(szMsg);
g_pLTServer->EndMessage(hMessage);
}
{
char szMsg[128];
sprintf(szMsg,"%s",getmsg("MOTDLine4"));
HMESSAGEWRITE hMessage = g_pLTServer->StartMessage(NULL, MID_MPMGR_MESSAGE);
hMessage->WriteDWord(-1);
hMessage->WriteString(szMsg);
g_pLTServer->EndMessage(hMessage);
}
{
char szMsg[128];
sprintf(szMsg,"%s",getmsg("MOTDLine5"));
HMESSAGEWRITE hMessage = g_pLTServer->StartMessage(NULL, MID_MPMGR_MESSAGE);
hMessage->WriteDWord(-1);
hMessage->WriteString(szMsg);
g_pLTServer->EndMessage(hMessage);
}


return LTFALSE;
}


a já potřebuju udělat odpočítávání který jakmile by došlo na nulu zavolalo SendMotd(); nic jinyho.. a zacalo znovu odpocitavat od zacatku.. nic vic nic min.. neumite to nekdo? ja jsem se nikdy nezabival touhle interakci uvnitr toho programu, a zadny rozumny navod na jednoduchy odpocitavani v c++ jsem proste nenasel..

protste potrebuju abych mel funkci treba counter();
a v ni aby bylo

FILE *configFile=fopen("Rommie_Settings.TXT","rt");
char szBuffer[512];
char *currentStart;

LastMessage=0.0f;
bFileExist=false;

if(configFile==NULL)
return;


//seek to the options section section
while (fgets(szBuffer, 512, configFile) != NULL)
{
if(strstr(szBuffer,"[Motd]"))
{
while (fgets(szBuffer, 512, configFile) != NULL)
{
if(strstr(szBuffer,"messagefrequency"))
{
MOTDfrequency=(atoi(szBuffer+17))*60;
break;
}
}
}

to vypocita podle toho co je vlozeny v configu jak casto to ma tu motd poslat.. kdyz do configu napisu messagefrequency=5 spocita si to 5*60sekund a bude to posilat jednou za pet minut.
jenze ten samotny timer mi dela problem.. ta aplikace uz v sobe ma "meric casu" pouziva se k odpocitavani kol, respawnu a takovyle blbosti a ta je napriklad:
m_ClientData[nIndex].m_fPickupMsgTime = (LTFLOAT)g_myRommieServer.GetTime() + 5.0f;
znamena ze se klientovy ma zobrazovat jeste pet sekund po sebrani nejaky treba lekarnicky jeji ikona, poradi prosim nekdo jak pomoci tohodle casovace udelat odpocitavani? (staci mi i kdyz tak bude natvrdo nastaveno 5 minut, nemusi to byt nastavitelne v configu...


pokud nekdo vite a muzete poradit pls pisnete na ICQ 196-924-548 fakt je to dost akutni :(



diky

Nahlásit jako SPAM
IP: ...–
Ivo
~ Anonymní uživatel
93 příspěvků
24. 3. 2007   #2
-
0
-

hm tak Vám velice děkuji za nic, myslel jsem že když se obrátím s žádostí o pomoc na tak velkou komunitu jako je tady někdo mi pomůže.


čau

Nahlásit jako SPAM
IP: ...–
zacatecnik0
Super člen
24. 3. 2007   #3
-
0
-

1) nevyskakuj si kdyz se nevi tak se proste nevi. fora jako hamachi,firefox taky nekolik dni stoji zz jednoho duvodu: useri chteji jen brat ne davat
2) pokud jo nutne touzite po odpovedi zkuste vzdy nahodit dotaz na vice for, treba : sem a forum.builder.cz

Nahlásit jako SPAM
IP: ...–
Můj blog http://www.zacatecnik.wu.cz[br]Překládám anglickou knihu o wxWidgets http://wxwidgets.hustej.net
Jura
~ Anonymní uživatel
637 příspěvků
24. 3. 2007   #4
-
0
-

To Ivo:
Mno, nikdo neodpovedel patrne proto, ze je to dost nepresne formulovane. Vyplivl si na nas mnoho kodu.To, co tu lidi potrebujou vedet je, taky na jakem OS to bezi. Jestli Windows, tak tam muzes pouzivat timer - muzes jich mit v aplikaci kolik chces(kazdy timer ma sve ID), a odchytavat zpravu WM_TIMER. Takze to zkus zformulovat jeste jednou - hlavne ten OS.

Nahlásit jako SPAM
IP: ...–
Peter D.0
Expert
24. 3. 2007   #5
-
0
-

formátovane topiky u mňa vzbudzuju väčši záujem. A taktiež dĺžka uvedeného kódu je nepriamo úmerna môjmu záujmu.

Nahlásit jako SPAM
IP: ...–
Program nemusi fungovat rychle, staci ze funguje dostatecne rychle.
Ivo
~ Anonymní uživatel
93 příspěvků
24. 3. 2007   #6
-
0
-

To Jura:
Je to postavene pro OS Windows , jedná se o server-side aplikaci k jedný hře (soubor OBJECT.LTO - binarka neco jako normalni widlacky DLL), já bohužel ty timery neovládám, jsem v tom docela ztracenej :(

proste potrebuju aby to porad dokola odpocitavalo 5 minut a pokazdy kdyz to odpocita na nulu tak to zavola SendMotd(); a zacne to odpocitavat od zacatku.

kdyz mi poradis budu moc moc moc rad.



4all omlouvam se ale je to prome docela dulezite, a je lepsi videt tady vasi odpoved proste NEVIM nez kdyz se nikdo nenamaha se sem neco napsat a ani se nepokousi nejak poradit.

Nahlásit jako SPAM
IP: ...–
zacatecnik0
Super člen
24. 3. 2007   #7
-
0
-

jj takhle to je v pohode ale pls priste zadny vyskakovani typu dik za nic

pokud jde tedy o ten timer tak tady je mala ukazka:

pod hlavicky:

#define _TimerClock 1

//kdekoliv v kodu:
SetTimer(hDlg, _TimerClock, 1000, NULL);//vytvoreni odpoctu po 1s


case WM_TIMER:
//kod timeru - zde si volejte vasi fci
break;

//pri vypnuti programu ?
//nezapomenme ukoncit odpocet !
KillTimer(hDlg,_TimerClock);

Nahlásit jako SPAM
IP: ...–
Můj blog http://www.zacatecnik.wu.cz[br]Překládám anglickou knihu o wxWidgets http://wxwidgets.hustej.net
Ivo
~ Anonymní uživatel
93 příspěvků
25. 3. 2007   #8
-
0
-

Děkuji :) už jsem vyzkoušel a po upravach tak aby si to rozumelo s mim modem to funguje :) dekujuuuu
motd timer ted slape jako hodinky :)

Nahlásit jako SPAM
IP: ...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 11 hostů

Podobná vlákna

Odpočítávání — založil Bunny-sh

Odpočítávání — založil Tomik

Odpočítávání + Gauge — založil Navara

Odpočítávání do data — založil Miky

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý