Címke: .NET


2017. Június 26.

Város koordináta és térkép letöltés

írta: Xaint

Ma, a távirányító-vevő páros programozása közben arra gondoltam, milyen király lenne, ha a távirányítón a szimpla GPS hosszúsági és szélességi koordinátákon kívül a legközelebbi város neve is megjelenne.

Mivel SD kártya olvasó van a távirányítóban és a hajóban is, így az adatok tárolása megoldott. Már csak Magyarország városainak listájára volt szükségem, azok GPS koordinátáival együtt.

Miután olyan letölthető csv / txt fájlt, ami készen tartalmazná a szükséges információt, néhány perc keresgélés után sem találtam, arra gondoltam más utat választok. Ekkor találtam rá a latitudelongitude.org/hu nevű oldalra. Ez tartalmazza ugyan a városok neveit (nem mindet) és azok hosszúsági és szélességi fokait, ám ezt több oldalra tördelve.

Így gondoltam nem keresgélek tovább, hanem inkább összedobok egy kis alkalmazást C#-ben, ami bejárja az oldalt és lementi a szükséges információkat egy txt-be:
 


Persze amíg a programozással szöszöltem, az egész ötletet továbbgondoltam. Mi lenne, ha a kijelzőn az adott helység kis térképét is meg tudnánk nézni. Persze semmi "multiple zoom level" meg ilyesmi, ahhoz az Atmega644P már kevés lenne... (Bár annyit talán még bele lehetne erőszakolni a mikrovezérlőbe, hogy ha pl. egy adott településen, az adott tóról van közeli műholdképünk, akkor a hajó pozícióját a műholdképen is meg lehetne jeleníteni. Talán.. angel)

Mindenesetre statikus térképeket van lehetőségünk lekérni a Google-től, a Google Static Maps API használatával, ami egy alap felhasználónak 640x640 pixeles maximum képfelbontást és 25.000 térképletöltést engedélyez 24 óránként, ingyen. Nekünk egy 2"-os 160x128-as felbontású kijelzőnk van, és a latitudelongitude.org adatbázisa szerint pedig 276 városunk. Az előírt kvóta betartásával nem lenne gond...

Miután a latitudelongitude.org oldalról sikerült bekebelezni a szükséges adatokat, a térképrészletek letöltése sem volt annyira nehéz. laugh

A kis képek letöltését az alábbi kóddal oldottam meg:

foreach (ListViewItem i in listView1.Items)
	{
	string outFile = System.IO.Path.Combine("images/hybrid", i.SubItems[4].Text + "_hybrid" + ".png");
	System.IO.Directory.CreateDirectory("images/hybrid");

	// Download file
	var request = (HttpWebRequest)WebRequest.Create("https://maps.googleapis.com/maps/api/staticmap?center=Hungary," + i.SubItems[1].Text + "," + i.SubItems[0].Text + "&zoom=11&size=160x128&maptype=hybrid&key=YOURKEY");
	request.Proxy = null;
	request.UserAgent = @"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36";
	using (var response = await request.GetResponseAsync())
	{
	    using (var reader = new BinaryReader(response.GetResponseStream()))
	    {
	        // Read file 
	        byte[] bytes = await reader.ReadAllBytes();

	        // Write to folder 
	        using (var fs = new FileStream(outFile, FileMode.Create))
	        {
	            await fs.WriteAsync(bytes, 0, bytes.Length);
	        }
	    }
	}
	this.Invoke(new Action(() => progressBar2.PerformStep()));
	}

 

A hibrid, vagyis a műholdképek letöltése mellett még az egyszerű térkép (roadmap) verziót is lekaptam, ha már ott jártam:


 

Update: Közben úgy tűnik, egy problémát mindenképpen orvosolnom kell majd a későbbiekben. A távirányítóban ugyanis a kijelző, az nrf24l01 rádió modul, és az SD kártya olvasó is SPI buszon keresztül kommunikál a mikrovezérlővel. Mivel eddig az SD kártyával nem nagyon foglalkoztam (leszámítva a bekapcsoláskor egy egyszerű írás/olvasás tesztet txt-be), így semmi problémát nem vettem észre. Ám, a kijelző inicializálása után, és a rádiómodul használata közben történő SD kártya műveletek kifagyasztják a mikrovezérlőt surprise. Valószínűleg a kijelzőhöz használt, agyonoptimalizált függvénykönyvtár lesz a ludas. Ennek sajnos még utána kell járjak. (Az eredeti terv, mármint az adott GPS koordinátához tartozó városnév megjelenítése persze megoldható, hisz a hajón is van SD kártya (ott működik is), és az onnan beolvasott városnevet egyszerűen átküldhetjük rádión a távirányítóra, amikor az szükséges.)



2013. Július 06.

CSGO SteamID Legit-proof

írta: Xaint

A Counter-Strike: Global Offensive nagyon népszerű kis lövölde lett (de már a béta idején is az volt).  Az ilyen felkapott játékoknál a csalók / csalások száma is igen magas. A Valve Anti Cheat sajnos elég butuska és könnyen kijátszható, aminek orvoslására természetesen több third-party megoldás is elérhető (EAC, ESEA, stb) illetve rengeteg közösségi adatbázis is folyamatosan épül és kvázi szabadon hozzáférhető, amelyeken egy adott Steam azonosítóról kaphatunk információkat, pl.: godmin.de.

A probléma csak az, hogy játék közben, legyen az akár sima match-making, vagy akár valamilyen verseny, eléggé nehéz 9 másik játékosnak utánanézni és közben a játékra is figyelni.

Arra gondoltam, ha már a VAC működésén nem változtathatok, sem a Valve üzletpolitikáján (ez utóbbit inkább hagyjuk broken heart), akkor összerakok egy olyan, a tisztességesen játszani szándékozó játékost támogató kis applikációt, ami a háttérben futva elvégzi ezt a kutatómunkát helyettünk.

A program alapesetben a tálcán, pontosabban mondva az értesítési területen csücsül, és várja, hogy a játékosok Steam azonosítója a vágólapra kerüljön. Ezt legegyszerűbben a játék konzoljába írt status paranccsal kérdezhetjük le.

 

 

A parancs által visszaadott szöveget ezután egyszerűen másoljuk a vágólapra.

A program ezután szépen kimazsolázza a számára szükséges SteamID-ket, majd a hozzákapcsolt szolgáltatásokon keresztül megkezdi a keresgélést. Utánanéz a delikvensnek magán a Steam-en, betölti a felhasználó profilképét (a könnyebb beazonosíthatóság érdekében), ellenőrzi a korábbi VAC kitiltásokat.

Emellett 4 különböző szolgáltatástól gyűjt be adatokat (új szolgáltatásokat könnyen hozzá lehet adni), ezek a következők:

  • SteamRep
  • Godmin
  • EAC
  • ESEA

Az adatok lekérdezésének végeztével  készít egy jelentést, HTML formátumban, amit (jelenleg) egy FTP szerverre továbbít, és a hozzá tartozó linket pedig beteszi a vágólapra. Így a többi játékossal könnyen meg lehet osztani, elég a chat ablakban Ctrl+V billentyűkombinációt nyomni, és máris bárki megnézheti a jelentést.

A programnak van egy másik érdekes funkciója is. Azon játékosok esetében, akik még nem állították be a Steam profiljukat, vagy egyszerűen csak privát profilt használnak, azoknál nem lehet látni a regisztráció dátumát sem. Ez pedig nem elhanyagolható adat. Az elv valami olyasmi, hogy ha egyszer semmit nem tudunk egy adott játékosról, mert semmit nem hajlandó megosztani másokkal, akkor legalább azt jó lenne tudni, hogy mikor regisztrálta az adott Steam accountot. Ez is több, mint a semmi. Ha például valaki feltűnően ügyesen játszik, de 3 napja regisztrált, már lehet gyanakodni.

A privát profil regisztrációjának dátumát a program nagyon egyszerűen úgy közelíti meg, hogy elindul a kérdéses steam kulcstól lefelé és felfelé is (párhuzamosan), olyan publikus steam profilokat keresve, ahol ismert a regisztráció napja. Így egy elég pontos becslést lehet kapni. A HTML jelentésben ezt a Join Date után egy zárójelbe tett E jelzi (estimated).

Egy HTML jelentés valahogy így néz ki (a képre kattintva az aktuális HTML fájl nyílik meg):

 

 

És ha ezeket az alapvető információkat mindenki megismeri már a játék elején, akkor ott csak az adott kis közösségen múlik, hogy azt hogyan kezeli.

Vélemény? Ötlet? smiley

 

Címkék: , , ,


2009. Október 13.

TheCLa

írta: Xaint

TheCLa azaz The Call of Duty Launcher.

A CoD játékok szervereire segít csatlakozni ez a kis program, mely ha a vágólapon felismer egy IP-címet, automatikusan felugrik, megjeleníti a szerver adatait és egy kattintással csatlakozhatunk is.

A szervereket hozzáadhatjuk a kedvencekhez, így azok később bármikor elérhetőek. A szerverhez tartozó jelszót is megjegyzi.

 

 

A programot az alábbi linken tölthetitek le: Letöltés

Címkék: , ,


2007. December 06.

500 Méter Mélyen Pályaszerkesztő

írta: Xaint

Mivel a játékba tervezett pályaformátum egy egyszerű (kép-alapú) formátum, így gondoltam összedobok hozzá egy szerkesztőt C#-al.

 

 

Címkék: , , ,


2006. Január 23.

Xaint's Desktop Manager

írta: Xaint

Egy egyszerű segédprogram Windows XP-hez mely a következőkre képes: 

  • Start-menü és a tálca áttetszőségének beállítása
  • Asztali ikonok és/vagy tálca elrejtése
  • Tálca animáció

 

Címkék: , ,


2006. Január 12.

Call of Duty - No Recoil

írta: xaint

Csináltam egy programot, ami a Call of Duty-ban csökkenti bizonyos fegyverek (PPSH, MP44, BAR)  visszarúgását.
A játékhoz semmilyen módon sem piszkál hozzá!

 

Címkék: , ,