--------------
Online Toplist
--------------

Online Toplist on K-pelien (http://www.kpelit.net) tarjoama ilmainen palvelu pelien kehittjille, joka mahdollistaa pelin pistetietojen lhettmisen web-palvelimelle suoraan pelist, sek valmiiksi jrjestetyn ja rajatun toplistan hakemisen palvelimelta peliin.

Palvelua voidaan hydynt mill tahansa ohjelmointikielell tai pelinteko-ohjelmalla, joka pystyy lhettmn http-pyyntj ja vastaanottamaan palvelimen vastauksen pyyntihin.


------------------
CoolBasic-toteutus
------------------

Mikli kehitt pelisi CoolBasic Beta 10.43:lla, seuraa nit ohjeita.

1. Online Toplist -funktiokirjaston lisksi tarvitset cbNetwork-kirjaston. Voit mys kytt kyseisest kirjastosta jotakin modattua versiota, kunhan siit lytyy toimiva HTTPGet()-funktio. Tai voit vaihtoehtoisesti kytt jotakin muuta CoolBasicille tehty nettifunktiokirjastoa, kunhan siin on samankaltainen funktio kuin cbNetworkin HTTPGet()-funktio. cbNetwork-kirjaston voi ladata esimerkiksi osoitteesta http://www.kpelit.net/cbnetwork/ .

cbNetworkia ei sisllytet automaattisesti tmn kirjaston mukaan, koska sen virallinen versio sislt Online Toplistille ylimrisi ominaisuuksia nettipelipalvelimien ja -clienttien toteuttamiseksi. Tarkoitus on, ett ohjelmoija voi itse alusta asti valita kyttmns nettifunktiokirjaston.

2. Sinulla tulee olla seuraavat CoolBasic-lhdekooditiedostot:
	- OnlineToplist.cb	(kirjaston ptoiminnallisuus)
	- MD5.cb			(MD5-hashien luontiin vaadittavat funktiot tietoturvan parantamiseksi)
	- cbNetwork.cb		(tai jokin muu nettifunktiokirjasto. cbNetwork.cb vaatii toimiakseen mys cbNetwork.dll-tiedoston)
	- TestProgram.cb	(palvelun testaamiseksi ennen projektiin liittmist. Projektiin liittmisen jlkeen tt tiedostoa ei vlttmtt tarvita)

3. Avaa TestProgram.cb CBEditoriin
Testiohjelma on vain muutaman kymmenen rivi pitk. Lue ohjelman koodi ja kommentit. Aja ohjelma ja testaa sen toimintoja. Voit lhett testiohjelmalla palvelimelle niin paljon pistemerkintj kuin haluat. Ne tallentuvat vain testiohjelman omaan toplistaan ja nkyvt muiden tietokoneilla kun he testaavat kirjastoa.

4. Kun haluat liitt kirjaston omaan projektiisi, ota yhteytt shkpostilla jare@kpelit.net, jolloin saat pelisi vastaavat tunnistetiedot palvelimelle ja pelisi toplistat ovat suojattuja.
Ilmoita shkpostissa seuraavat tiedot:
	- Aiheeseen ainakin "nettitoplista" ja halutessasi jokin tarkennus.
	- Pelin nimi ja mahdollinen kotisivu.
	- Pelin tekijn nimi tai nimimerkki - tai kehitystiimin nimi tms.
	- Shkpostiosoite, johon toplistaan liittyviss asioissa voi tulevaisuudessakin tarvittaessa ottaa yhteytt.
	- Halutessasi voit ilmoittaa muitakin tietoja.
	- Saako antamiasi tietoja (tai osan tiedoista) nytt julkisesti* K-pelien nettisivuilla toplistapalvelun yhteydess?
	- Saako pelin toplistat sisltineen nytt julkisesti K-pelien nettisivuilla?

Vastauksena saat:
	- Yksilllinen id-numero pelillesi
	- Kirjaimista ja numeroista koostuva salasana.
	- Mahdollisesti muuta tietoa liittyen kirjaston asetusten mrittmiseen.

PALVELUUN LIITTYMINEN EI SIDO SINUA MIHINKN! Eik palvelussa ole varsinaisia ehtoja, mutta ei myskn takuita palvelun jatkumisesta.

*) Shkpostiosoite nytetn sellaisessa muodossa, jota roskapostiohjelmat eivt osaa lukea. Mitn tietoja ei kytet mainontaan eik mitn tietoja juilkaista ilman nimenomaista suostumusta.

5. Saatuasi id-numeron ja salasanan, avaa OnlineToplist.cb-lhdekooditiedosto CBEditoriin.

Mrit seuraavat asetukset KYTTJN KONFIGUROIMAT TIEDOT -osiossa:
	- OT_GAME_ID: aseta tmn arvoksi shkpostissa saamasi id-numero.
	- OT_GAME_PASSWORD: aseta tmn arvoksi shkpostissa saamasi salasana.
	- OT_GAME_VERSION:
		Aina kun julkaiset pelistsi uuden version, joka vaikuttaa pisteiden saamiseen, kasvata tmn vakion arvoa yhdell. Nin luot uudelle peliversiolle automaattisesti uudet toplistat.
		Tmn vakion EI tarvitse olla arvoltaan sama kuin pelisi varsinainen versionumero.
	- OT_DEFAULT_URL:
		Tm vakio mritt, mihin palvelimeen ja nettisivustoon kirjasto ottaa yhteytt lhettessn komentoja. Arvon tulee olla "http://toplist.kpelit.net/", mikli sinulle ei ole ilmoitettu, ett osoite olisi muuttunut.
		Kirjasto kytt tt oletusosoitetta mikli sill ei ole tiedossaan mitn muuta osoitetta.
	- OT_CONFIG_FILE:
		Tiedostopolku (tai pelkk tiedostonimi) kirjaston asetustiedostolle. Kirjasto luo asetustiedoston vain silloin, jos se saa palvelimelta tiedon, ett yhteysosoite on vaihtumassa ja jatkossa tulee ottaa yhteytt uuteen osoitteeseen. Tllin kirjasto tallentaa uuden osoitteen kyseiseen asetustiedostoon. Tm ominaisuus on tysin automaattinen ja se luo paremmat mahdollisuudet toplistapalvelun toiminnalle mys silloin, mikli palvelun nettiosoitetta joudutaan tulevaisuudessa muuttamaan.
		Tmn vakion arvoa ei tarvitse vlttmtt muuttaa. Ideaali tapaus on kuitenkin muuttaa arvoa siten, ett kirjasto sijoittaa asetustiedoston johonkin alihakemistoon, jossa pelaaja ei joudu ihmettelemn, mit se tekee.
		Tarvittaessa asetustiedoston voi kirjoittaa itse. Tllin luodaan tavallinen tekstitiedosto, jossa on yksi rivi. Riville kirjoitetaan kytettv yhteysosoiteosoite, eik mitn muuta. Tiedostoa ei tarvitse normaalisti luoda lainkaan.

6) Liit kirjasto projektiisi ja testaa toimivuus.
Huomaa, ett sinun tulee liitt projektiisi seuraavat kaksi lhdekooditiedostoa kytten Include-komentoa:
	- OnlineToplist.cb
	- cbNetwork.cb (tai jokin muu nettifunktiokirjasto)

(Kirjaston kyttm MD5.cb sisllytetn ohjelmaan automaattisesti OnlineToplist.cb-tiedostossa.)

7) Ongelmia, kysyttv tai kommentoitavaa?
Voit ottaa vapaasti yhteytt shkpostilla jare@kpelit.net. Lhet shkpostia aina siit osoitteesta, jonka olet ilmoittanut palveluun liittyesssi.

Shkpostilla voit esimerkiksi:
	- Pyyt liittmn palveluun jonkin uuden pelin.
	- Muuttaa aiemmin antamiasi tietoja.
	- Pyyt listat pelisi kaikista toplistoista kaikkine pisteineen.
	- Pyyt tyhjentmn jonkin toplistasi tai poistamaan joltakin tolistaltasi yksittisi pistemerkintj.
	- Ilmoittaa, mikli haluat lopettaa palvelun kytn. Tllin poistan kaikki palveluun antamasi tiedot ja toplistat, kunhan olet saanut niist kopiot, mikli haluat.
	- Vapaa yhteydenotto.

------------
Virhenumerot
------------

Globaali muuttuja OT_LastErrorNumber sislt virhenumeron, mikli jonkin komennon suorittaminen eponnistui. Tarkentava virheilmoitus (englanniksi) lytyy globaalista muuttujasta OT_LastErrorString.

Virhenumeroiden merkitykset:

Numero	| Selite
--------+----------------------------------------------------------------
	  0 | Ksky on suoritettu onnistuneesti (ei virhett) TAI * palvelimeen ei saatu yhteytt (katso OT_LastErrorString)
	  1 | Tietokantavirhe.
	  2 | Virheellinen peruskomento.
	  3 | Jokin argumentti puuttuu.
	  4 | Jollain argumentilla on virheellinen arvo. Tarkista, ett pelin versio, pelimoodi ja pelin vaikeuste ovat mritettyjen rajojen sisll.

Jos et saa ongelmaasi ratkaistua, ota yhteytt shkpostilla jare@kpelit.net.

*) Tm erikoistilanne koskee ainoastaan CoolBasic-toteutusta.


-------------------------------------
Asiakaspuolen toteutuksesta yleisesti
-------------------------------------
"Asiakkaana" tarkoitetaan palvelimelle kskyj antavaa ohjelmaa tai peli, oikeastaan tarkemmin sanottuna tt kirjastoa.

Tm ohje opastaa palvelun kyttmisess, mikli et toteuta peliprojektiasi CoolBasicilla etk siten pysty hydyntmn palvelun valmiiksi tarjoamaa funktiokirjastoa.

0. Palveluun liittyminen
Lue CoolBasic-toteutus-luvusta kappale numero 4. Siin neuvotaan, miten liitt pelisi palveluun. Ilman palveluun liittymist toplista(t) ei toimi pelisssi. Palveluun liittyminen on ilmaista, eik sidoa sinua mihinkn.

1. Yhteydenotosta yleisesti
Yhteydenottamiseen kytetn http-protokollaa ja GET-argumentteja. Oletusyhteysosoite on http://toplist.kpelit.net/ . Kytettvn yhteysosoitteen pern tulee mritt suoritettava komento sek komennon parametrit GET-argumentteina: ?action=KOMENTO&PARAMETRI1=ARVO&PARAMETRI1=ARVO . Parametrien mr ja nimet riippuvat tysin kytettvst komennosta. Mahdolliset komennot ksitelln tuonnempana.

Kokonaisuudessaan yhteysosoite, komento ja parametrit nyttvt siis tmn esimerkin kaltaiselta: http://toplist.kpelit.net/?action=KOMENTO&PARAMETRI1=ARVO&PARAMETRI1=ARVO

Sinun tulee toteutuksessasi tarkistaa, ett http-pyynt mritettyyn osoitteeseen yliptn onnistui, eli http-pyynnn tulee antaa vastausnumero 200. Tmn jlkeen tiedetn, ett PALVELIN ON VASTAANOTTANUT KSKYN. Sit emme kuitenkaan viel tied, onko palvelin suorittanut kskyn onnistuneesti.

Kun http-pyynt onnistuu, palvelin palauttaa vastauksessa ensimmisen merkkin AINA virhenumeron. Virhenumero on alunperin suunniteltu olemaan jotakin vlilt 0 - 4, mutta tulevaisuudessa sen skaalaa saatetaan laajentaa koskemaan numeroita 0 - 9 sek mit tahansa kirjaimia A-Z (kirjainkoko aina suuraakkoset). Virhenumero pidetn kuitenkin aina yhden merkin mittaisena.

Jos virhenumero on 0, ksky on suoritettu onnistuneesti ja loppuosa vastauksesta on suoritettuun kskyyn liittyv vastaus. Jos virhenumero on muuta kuin 0, niin palvelimella on tapahtunut virhe. Tllin voit katsoa tst ohjetiedostosta virhenumeron merkityksen. Lisksi virhenumeron jlkeinen osa palvelimen vastauksessa sislt englanninkielisen tarkennuksen virheeseen.

2. KOMENTO: Tarkistetaan muutos yhteysosoitteessa
Ennen kuin muita komentoja suoritetaan, meidn tulee viel varmistua siit, ett palvelin, johon otamme yhteyden, edelleen hoitaa toplistapalvelua. Otetaan palvelimeen yhteys kappaleen 1 ohjeiden mukaisesti ja asetetaan komennoksi "updateaddress" (lainausmerkit eivt ole osa komentoa). Komennolle ei anneta parametreja.

Tehdn normaali virheentarkistus kappaleen 1 mukaisesti. Mikli komennon paluuarvo EI OLE TYHJ, on paluuarvona palvelun uusi osoite. Tm tarkoittaa sit, ett palvelu on muuttamassa uuteen osoitteeseen. Uusi osoite tulee tallentaa siten, ett vlittmsti tst eteenpin kytetn uutta yhteysosoitetta. Vanha yhteysosoite saattaa lakata toimimasta, mutta pyrkimys on pit vanha osoite toiminnassa ja ilmoittamassa uudesta osoitteesta viel useiden kuukausien ajan siit kun uusi osoite on otettu kyttn. Jos vanhaan osoitteeseen lhetetn muita kskyj, kyseiset kskyt palauttavat virhenumeron ja virheilmoituksen. Muuttunut osoite tulee tallentaa varmaan paikkaan pelin tiedostojen joukkoon.

Mikli komennon paluuarvo on tyhj, tulee edelleen kytt nykyist osoitetta.

Koko tmn ominaisuuden idea on siin, ett palvelu pystyy jatkamaan toimintaansa, vaikka yhteysosoite muuttuisi, ilman ett sinun tarvitsee julkaista peliisi pivityst ja ilman, ett pelisi pelaajien tarvitsee olla aktiivisia pelin pivittmisen suhteen. Loppujen lopuksi kyse on lhinn varotoimesta, koska osoitteen snnlliselle muuttamiselle ei olisi mitn jrjellist syyt.


3. KOMENTO: Lhet pistemerkint toplistalle
Otetaan yhteys palveluun aiempien ohjeiden mukaisesti, kytten kappaleessa 2 varmistettua yhteysosoitetta. Komennoksi asetetaan "newscore" (lainausmerkit eivt ole osa komentoa).

Komennolle mritetn seuraavat parametrit:
	- nick:			Pelaajan nimimerkki
	- score:		Pelaajan pistemr kokonaislukuna
	- game:			ID-numero, jonka sait liittesssi pelisi palveluun
	- mode:			Pelimoodi. Kokonaisluku vlilt 1 - 20. Jos pelisssi ei ole moodeja, valitse thn kytettvksi aina sama luku, esimerkiksi 1.
	- version:		Pelin versionumero vlilt 1 - 50. Aina kun julkaiset peliisi pivityksen, joka saattaa muuttaa pisteiden ansaintaa, kasvata tt arvoa yhdell, mutta pid se muuten vakiona.
	- difficulty:	Pelin vaikeusaste vlilt 1 - 100. Jos pelisssi ei ole eri vaikeusasteita, kyt tss kokoajan samaa arvoa, esimerkiksi 1.
	- map:			Pelatun kentn tunniste merkkijonona. Voi olla mys tyhj esimerkiksi silloin jos pelisssi on vain yksi kentt.
	- hash:			Seuraavalla kaavalla muodostettava MD5-hash. HUOMAA, ett kaavassa olevat plus-operaattorit (operaattori +) EIVT ole matemaattisia, vaan merkkijono-operaattoreita. Siten esimerkiksi 3 + 4 = 34.
		hash = MD5(nick+score+game+mode+version+difficulty+map+SALASANA)
		SALASANA on numeroita ja kirjaimia sisltv salasana, jonka sait liittesssi pelisi palveluun.

HUOMAUTUS! parametrit nick ja hash tulee urlenkoodata siten, etti niiss mahdollisesti olevat erikoismerkit muuta http-protokollan GET-rakennetta!

Hash:n avulla parannetaan tietoturvaa siten, ett vaikka pelisi kyttj onnistuisi nappaamaan yhteysosoitteen, komennon ja parametrit pelin ottaessa yhteytt palveluun, ei hn pysty helposti tekaisemaan uusia pistemerkintj, koska palvelin vertaa saamiaan pisteit annettuun hashiin. Lisksi pelaaja ei pysty generoimaan uutta hashia, mikli ei tied hahsin viimeisen osana kytetty salasanaa. Siksi on erittin trke pit salasana hyvin suojattuna pelin sisll niin, ettei sit pysty lukemaan esimerkiksi hexa-editorilla pelin .exe-tiedostosta.

Mikli haluat kytt hashin muodostamiseen jotakin muuta kuin MD5-algoritmia, ota yhteytt shkpostilla jare@kpelit.net, niin sovitaan oman pelisi kohdalla poikkeavasta algorimista.

Komento ei palauta mitn, vaan toiminnon onnistumisen tiet siit, ett kappaleen 1 mukainen yhteydenotto kyseisen komennon kanssa onnistui, palauttaen siis pelkstn virhenumeron 0.

4. KOMENTO: Hae toplista palvelimelta
Otetaan yhteys palveluun aiempien ohjeiden mukaisesti, kytten kappaleessa 2 varmistettua yhteysosoitetta. Komennoksi asetetaan "getscores" (lainausmerkit eivt ole osa komentoa).

Komennolle mritetn seuraavat parametrit:
	- game:			ID-numero, jonka sait liittesssi pelisi palveluun
	- mode:			Pelimoodi. Kokonaisluku vlilt 1 - 20. Jos pelisssi ei ole moodeja, valitse thn kytettvksi aina sama luku, esimerkiksi 1.
	- version:		Pelin versionumero vlilt 1 - 50. Aina kun julkaiset peliisi pivityksen, joka saattaa muuttaa pisteiden ansaintaa, kasvata tt arvoa yhdell, mutta pid se muuten vakiona.
	- difficulty:	Pelin vaikeusaste vlilt 1 - 100. Jos pelisssi ei ole eri vaikeusasteita, kyt tss kokoajan samaa arvoa, esimerkiksi 1.
	- map:			Pelatun kentn tunniste merkkijonona. Voi olla mys tyhj esimerkiksi silloin jos pelisssi on vain yksi kentt.
	- hash:			tm muodostetaan samalla tavalla kuin kappaleen 3 hash - kuitenkin sill poikkeuksella, ett nick- ja score-tiedot jtetn kokonaan pois hashin alusta.

HUOMAUTUS! parametri hash tulee urlenkoodata siten, etti siin mahdollisesti olevat erikoismerkit muuta http-protokollan GET-rakennetta!

Lisksi komennoille voidaan mritt seuraavat valinnaiset parametrit. Nm parametrit voi mys jtt mrittmtt.
	- limit:		Kuinka monta pistemerkint palvelu palauttaa toplistan huipulta pelille. Jos tt ei mritet, palvelin kytt limittin oletusarvoa, joka on 10.
	- sortorder:	Jrjestetnk toplista pisteiden mukaan nousevasti vai laskevasti. Mahdolliset arvot ovat (ilman lainausmerkkej) "asc" (=nouseva) tai "desc" (=laskeva). Jlkimmist kytetn oletuksena, mikli tt argumenttia ei mritet.

Toplistaa haettaessa kytetn hashia varmistamaan, ett pelill on oikeus hakea kyseisen toplistan sislt. Palvelun komentoja pystyy suorittamaan mys ihan tavallisella nettiselaimella ja sit kautta toplistat voisi saada nkyviin, jos hashia ei kytettisi. Tll tavalla toplistasi pysyvt yksityisin, eik muut pse niit urkkimaan muuten kuin pelisi kautta. Poikkeuksena voi palveluun liittyesssi erikseen sallia pelisi toplistojen nyttmisen K-pelit-sivustolla. Tllin hash on edelleen kytss ja K-pelit-sivusto hakee toplistojen tiedot palvelimen privaatin liittymn kautta, jota ei palvelimen ulkopuolelta pse kyttmn.

Mode-, version-, difficulty- ja map-tiedot vaikuttavat siihen, miten toplistan pistemerkinnt koostetaan yhteen. Tarkoitus on hakea yhteen listaan ainoastaan ne pistemerkinnt, jotka on tehty pelaten tietty pelimoodia, tietyll pelin versiolla, tietyll vaikeustasolla ja tietyss kentss. Nin ollen yhden pelin sisll voi olla rajaton mr eri toplistoja. Tai pienen pelin ollessa kyseess toplistoja voi olla vain yksikin, jos useammalle listalle ei ole tarvetta.

Jos komento on suoritettu onnistuneesti, tulee kappaleen 1 mukaisesti virhenumeroksi 0. Tmn jlkeen komento palauttaa pistemerkinnt seuraavassa formaatissa:

Pistemerkinnll tarvoitetaan toplistan yht rivi, jolla on pelaajan nimimerkki, saadut pisteet sek pivmr. Jokainen pistemerkint pttyy puolipisteeseen (eli ; ). Vlittmsti puolipisteen jlkeen alkaa seuraava pistemerkint, mikli pistemerkinnt eivt jo loppuneet. Mys viimeinen pistemerkint pttyy puolipisteeseen. Ohjelma kannattaa rakentaa siten, ett se jakaa tss vaiheessa eri pistemerkinnt erilleen toisistaan. Sitten kydn yksitellen lpi jokainen pistemerkint tarkemmin.

Jokainen pistemerkint koostuu kolmesta arvosta. Kukin arvo on erotettu toisistaan pilkulla (eli , ). Ensimminen pistemerkinnss oleva arvo on pelaajan nimimerkki, toinen on pelaajan pistemr ja kolmas on pivmr ISO-standardin mukaisessa muodossa, esimerkiksi 2010-02-11, eli YYYY-MM-DD . Mys viimeinen arvo pttyy pilkkuun.

On tysin pelin toteutuksesta kiinni, miten ja millaiseen rakenteeseen toplistan tiedot talletetaan. Toivottavasti tm ohje antoi kuitenkin selken kuvan siit, miten toplista-dataa psee purkamaan.

Pienen huomiona mainittakoon, ett pelaaja saattaa sytt nimimerkkiins pilkkuja tai puolipisteit. Nm merkit SAA lhett toplistalle tallennettavaksi. Kun toplista haetaan peliin, palvelin poistaa kyseiset merkit pelaajan nimimerkist automaattisesti kokonaan, joten tmn vuoksi palvelimelta saatava toplista-data ei mene sotkuun nimimerkkien vuoksi.


5. Pelin sulkeminen ja yhteyden katkaiseminen palveluun

Palvelun yhteytt ei tarvitse mitenkn erikseen katkaista. Mitn lopetuskomentoa ei lhetet, koska kyseess on niin sanotusti "tilaton palvelu", eli palvelin ei missn vaiheessa odota, ett asiakas ottaisi viel uudestaan yhteytt. Pelin voi siis sulkea aivan kehittjn omien suunnitelmien mukaisesti.


---------------------------------------------------------------
Kyttehdot sek tiedot  palvelun perustajasta ja yllpitjst
---------------------------------------------------------------

Tt palvelua ja sen mukana toimitettavaa materiaalia saa kytt rajoituksetta. "Materiaaliksi" lasketaan tm ohje-tiedosto sek mukana toimitettavat CoolBasic-lhdekoodit. Materiaalia saa muokata vapaasti haluamallaan tavalla ja myskin levitt vapaasti eteenpin.

Palvelinpuolella olevaa tietokantaa ja toiminnallisuutta ei luovuteta eteenpin. Materiaalin kyttjill on oikeus luoda vastaavan kaltainen palvelinpuolen toteutus omalle palvelimelleen tai kotisivutilalleen ja kytt tt materiaalia yhdistmn kyseiseen uuteen osoitteeseen ja palveluun.

Palveluun liittyminen (kuvattu tarkemmin luvun CoolBasic-toteutus kappaleessa 4) ei maksa mitn eik velvoita mihinkn. Palvelun kyttminen vaatii kuitenkin palveluun liittymisen siin tapauksessa, mikli palvelua kyttv peli muodostaa yhteyden K-pelien kotisivutilaan/palvelimeen.

Palvelun yllpitj voi koskatahansa lopettaa palvelun joko kaikkien pelien tai yksittisen pelin kohdalta ilman varoitusta. Palveluun liitetty peli voidaan pelin kehittjn toimesta mys koskatahansa poistaa palvelusta lhettmll asiasta pyynt shkpostilla osoitteeseen jare@kpelit.net

Jos palvelu lopetetaan - ja muulloinkin palveluun liitetyn pelin kehittjn erikseen pyytess - palvelun yllpitj lhett pelin kehittjlle shkpostilla kaikki palvelussa pelist olevat tiedot sek toplistat sisltineen. Niden tietojen kytlle ei palvelun yllpitj aseta mitn rajoituksia.

Palvelussa olevien tietojen julkaiseminen on palvelun yllpitjlle sallittua, mikli palveluun liitetyn pelin kehittj on sen palveluun liittyessn tai myhemmin erikseen sallinut.

Palvelun yllpitj ei ole vastuussa palvelun toiminnasta tai mahdollisista ongelmista, eik myskn materiaalin toiminnasta tai materiaaliin liittyvist ongelmista.

Palvelun kyttj hyvksyy nm ehdot liittyessn palveluun.

Palvelun olen perustanut vuonna 2010 min, Jarkko Linnanvirta.
Palautetta, kommentteja ja ihan vaan muuta asiaa voi lhett minulle shkpostilla osoitteeseen jare@kpelit.net .
Palvelun virallinen kotisivu on osoitteessa http://toplist.kpelit.net/ .
Yllpidn palvelua sivustoni K-pelit kautta, jonka osoite on http://www.kpelit.net/ .
