Anonymní profil Ovrscout – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Ovrscout – Programujte.comAnonymní profil Ovrscout – Programujte.com

 

Příspěvky odeslané z IP adresy 78.80.163.–

Ovrscout
.NET › XNA/C# - síťová hra - jak fu…
8. 11. 2012   #166188

#1 Eflyax
Kromně aktuální pozice by se (podle mne) mněl posílat i směr a rychlost pohybu. Pro kouzla třeba čas začátku kouzlení(+kolik času už je odkouzleno) atp. . Takto by se nemusela data posílat tak často ale hlavně při začátku/změně/ukončení akce. Nicméně jen změny bych neposílal, občas by to chtělo plnější stav, aby se to někde nerozsypalo, to pak vypadá hrozně když každý vidí něco jiného.

U různých her je to i vidět . Když se špatně přeruší spojení tak vidíte jak váš kamarád běží a běží a běží až doběhne ke zdi a vypadá že se chce prohrabat zkrz , nebo třeba běží do kopečka a pak pokračuje dál a dál do vzduchu :)

Záleží také na protokolu, TCP zaručuje doručení(nebo hlásí chybu) ale zase se to v něm při delších výpadcích štosuje a navazování spojení chvilku trvá. UDP má výhodu že se ztracené pakety nikde nehromadí takže příchozí paket je relativně čerstvý, zase ale není zaručeno pořadí paketů a ztráta se musí vyhodnocovat ručně. Zajímalo by mne jakou variantu jste se rozhodli zvolit :)

Jinak pingy kolem 32ms jsou ještě docela pěkné :) , já mívám třeba 40-60ms a ještě se to u některých her dá snést.
 

Ovrscout
C / C++ › Datový typ - 256 bitů
24. 10. 2012   #165210
Ovrscout
C / C++ › Datový typ - 256 bitů
24. 10. 2012   #165209

#1 Hlavinka

Pro c++ bych skusil něco jako tohle http://www.codeproject.com/Articles/36323/BigInt
Určitě je takových knihoven víc, třeba někdo připíše typ :)

Ovrscout
C / C++ › Jak nejrychleji porovnat 2 p…
15. 10. 2012   #164733

#1 ingiraxo
Můj předpoklad je že memcmp je rozumně udělaný a optimalizovaný ačkoliv režie volání a optimalizace pro opravdu malá pole může být velká.

Teď několik tipů co mne tak z hlavy napadly:

-Použití maker pro jednotlivé velikosti porovnávaných polí, pokud jsou převážně jedné nebo několika málo stejných velikostí.

-Použití "šílených" maker, pokud to překladač zvládne optimalizovat tak si pro jednotlivé velikosti nadefinuješ přetypování/porovnání a pro moc velká pole použiješ memcmp. Bude ale třeba se kouknout do asm nebo změřit rychlost, to ostatně platí pro všechny optimalizace
něco jako  #define  mojecmp(data1,data2,velikost)  ((velikost==1)? ...:memcmp(data1,data2,velikost))

-pokud jsou data zarovnána např po 8byte tak si napsat cyklus nad polem uint_64 a skusit překladač přemluvit aby cyklus "rozvinul" tj přepsal na na kroky, skus kouknout co tvůj překladač umí.

-i když jsi nechtěl použít cyklus, existují specializované instrukce, pro x86 je to tuším REP+CMP.. kterými zapíšeš cyklus ve dvou instrukcích(+inicializace registrů). Toto by ale mněla dělat funkce memcmp i když s trochou režie na volání a ošetření okrajových podmínek(například lichý počet byte atp)

Ovrscout
C / C++ › C, C++ nebo C#
9. 10. 2012   #164339

#1 Lubomír

Je důležité vědět pro jaký jazyk(i více) máš knihovny na ovládání HW, volat třeba C++ knihovnu v C není úplně dobrý nápad.

Také bývají k těm knihovnám různé příklady a vzhledem k tomu že (jak píšeš) nejsi v programování moc skušený, je lepší se odpíchnout od existujících příkladů, než se je pokoušet přepsat do jiného jazyka.

Ovrscout
.NET › jak zachytit komunikaci na s…
31. 8. 2012   #162499

#1 VladislavK

Moc asi neporadím, ani jsem moc nepochopil co/proč vlastně chceš monitorovat, přesto mám pár tipů:

PCAP je docela standard co se týka monitorovani komunikace(multiplatformní,velmi rychlé filtrování,ukládání do souboru,monitorování na vzdáleném PC).
Jukni na wireshark ktery ho používá aspoň uvidíš co se z toho dá vytáhnout. Jsou i nastroje pro prikazovou radku a pak jde treba udelat analyza vysledneho souboru.
(jediná věc co pcap asi momentálně neumí  je monitorování komunikace na vytáčeném spojení na win vista/7/8)

Pokud ti jde přímo o monitorovani volání funkcí z konkrétní aplikace tak pokud se nemůžeš vřadit do zdrojáku, zbývá jedině použít DLL injection na volání winapi funkcí pro sockety.Ale je to fujky řešení a nevím jetli to jde v dotnetu.

Co se týká měření přenesených dat tak možná by bylo dobré se poohlédnout po nějaké funkci v API pro monitorování výkonu, třeba by z toho šlo něco vytáhnout.

Jinak seznam aplikací a navázaných spojení(pro zjištění IP adres) by mněl jít vytáhnout i bez DLL injection, však to umí i takový systémový příkaz netstat nebo TCPView od sysinternals(nyní microsoft) ale jak to dělají to nevím. možná by ale stačilo parsovat výstup z netstatu.

Ovrscout
C / C++ › Jak zmrazit process ?
14. 8. 2012   #161577

#1 Hunty

troska googlovani na tema "process suspend" :)
http://www.codeproject.com/Articles/2964/Win32-process-suspend-resume-tool

Upozornění: Je to fujky ošklivost něco takového dělat a program/process potom nemusí fungovat úplně správně zejména pokud má sám více vláken (to jde zjistit napriklad prez ProcessExplorer). Pokud si kousneš do něčeho moc zažraného v systému, můžeš na to také pěkně doplatit.

P.S. vzhledem ke stari clanku to nemusi fungovat na Win vista/7/8 vůbec, nebo jen špustěé jako správce.

Ovrscout
Delphi › jak ziskat udaj z internetu ?
25. 6. 2012   #159483

#2 dyžon
Pokud na to nemaji nějaké oficiální rozhraní(jakože o tom dost pochybuju) nezbude ti než stránku načíst jako text a poté najít co potřebuješ, nej jednoduší asi pomocí regularního vyrazu. Každopádně to nejspíše bude fungovat jen dokud stranky moc nezmění.(záleží jak to udeláš a jak moc se stránky případně změní).

Nezapomeň také na to že takovéto vytahování dat z webu není ůplně legalní pokud k tomu nemáš svolení(navíc to mají i explicitně napsané v patičce stránky).
Tak pozor abys tvrďě nenarazil, obzvlášť pokud tu aplikaci plánuješ dávat dál(a takové kauzy už tu byly)

Ovrscout
C / C++ › GNU fonty v C
21. 5. 2012   #158214

#2 xp
technicky pěkné a jednoduché řešení :), já jsem si onehdy takový program psal sám.

Nicméně chci upozornit na to že i na fonty je třeba mít tu správnou licenci.Pro takové to domácí bastlení je to asi jedno.
Pokud však jde o něco oficiálního nebo něco co je určeno na prodej, je na místě se nad tím alespoň zamyslet.

A abych jenom nefrfňal, tak přidám odkaz na stránku s fonty která by se mohla hodit
(první odkaz google na Fonty Zdarma).


http://www.ceskefonty.cz/

Ovrscout
.NET › Změna ikony v c#
17. 5. 2012   #158080

#5 Ovrscout
Jještě mne napadlo jestli máš na ploše zástupce, mohlo by pomoci jeho nové vytvoření

Ovrscout
.NET › Změna ikony v c#
17. 5. 2012   #158079

#1 AttilaA
Možná by pomohlo vyzkoušet vymazat cache icon pro plochu, jestli tu ikonu měníš může se používat ta zmenšená co je v cache. Vymazání je nejspíše dle verze OS, pro XP jsem to kdysi dělával s sw XPTweak, myslím že jde stáhnout ze stránek MS. Volba se jmenovala nějak jako "Rebuild Icon Cache".

Ovrscout
.NET › Konzole log s možností psát…
9. 5. 2012   #157606

#3 ingiraxo
Řekl bych že ta řádka s nápisem Command: není vlastně součástí logu.V podstatě je to nezávislý EditBox a teprve po odklepnutí Enter se tato řádka odešle na server a včetně odpovědi se zaloguje. Jen zobrazení je udělané tak že to vypadá že součástí logu je.

Takže je nejspíše potřeba udělat zobrazování logu tak aby ti nezasahoval do poslední řádky konzole a nebo aby tam při překreslení(po změně) nechal prázdnou řádku a do ní se pak vloží ten rozpracovný text s uživatelským vstupem "command:.." ,který ale není součástí logu, je to jen řetězec který bude uložen někde mimo až do doby než je odeslán serveru který ho zpracuje a včetně výsledku vloží do logu.

Ovrscout
C / C++ › multihtreading c++ a i7
21. 3. 2012   #155309

Předpokládám windows

Je dobré se podívat do knihovny pomocí které vlákna spouštíš ale pokud to tam není skus se kouknout na winapi funkce SetThreadAffinityMask a SetThreadIdealProcessor. Většinou je ale lepší nechat přiřazování na OS, přeci jenom záleží i na tom aby i ostatní procesy běželi optimálně.Pokud by se například více náročných programů rozhodlo běžet pouze na posledním jádře procesoru, asi by to nebylo zrovna to nejefektivnější využití.Takže toto vynucení běhu vláken na konkrétních jádrech je spíš do speciálních aplikací běžících v přesně definovaném prostředí.Nebo pro "výzkumné" účely. :)

Ovrscout
C / C++ › Medzera v pamäti
12. 3. 2012   #154782

#3 Grungy
Já bych spíše doporučil použít #pragma pack jen pro vybranou strukturu. A pro ostatní to ponechat na defaultní nastavení.

Je třeba dát pozor na to že u zapakovaných struktur může dojít k problémům, například u vícevláknových aplikací.Nebo třeba při přenosu na jinou platformu která "pack" neumí nebo u něj má nějaké omezení.
Osobně používám jen pokud je opravdu potřeba "binární" kompatbilita. Například pro ukládání do souboru který má specifikován binární formát,nebo posílání dat do nějakého zařízení přez tcpip,seriovou linku, atp.

Pokud se jedná o optimalizaci z důvodu paměťové náročnosti, někdy pomůže vhodné poskládání stejných(stejně velikých)  typů proměnných k sobě. zejména nevkládat proměnnou char mezi dva int a tak podobně.Ale samozřejmně závisí na situaci.

příklad: (zápis se může lišit dle překladače)

#pragma pack(push, 1)
typedef struct{
	int data;
	...
};
#pragma pack(pop)
Ovrscout
C / C++ › Knihovna pro komunikaci s HID
8. 2. 2012   #153302

#1 yaqwsx
Přímo ti neporadím , ale zkusil bych jít trochu jinou cestou. Úplně nejjednodušší je použít USB/serial převodník(např my používáme CP2103, ale známé jsou také čipy FTDI232) který se tváří jako seriový port.Nemusíš se pak starat o ovladače pro různé verze OS atp.Protože to už někdo udělal za tebe.Pokud chceš ale přímo USB na (mikro)procesoru pak bych skusil sehnat knihovnu pro něj, aby se tvářil jako standardní seriový port.My v práci používáme něco jako mikrooperační systém uTasker(plný zdroják :) ), který to tak dělá.Samozřejmně záleží jaký máš procesor a jestli najdeš takovou knihovnu.Ale pak stačí systémový ovladač plus nějaký ten inf soubor a je to hotovo.Navíc práce se seriovým portem je na PC poměrně standardní záležitost.

Je to prostě jinný pohled jak komunikovat, pokud potřebuješ přímo HID, nebo budeš chtít vytěžit USB na maximum tak ti bohužel neporadím(ne že bych nechtěl).

 

 

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