Tyhmät kysymykset (I/2009)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
Harakka
Advanced Member
Posts: 430
Joined: Mon Aug 27, 2007 9:08 pm
Location: Salo
Contact:

Re: Tyhmät kysymykset

Post by Harakka »

Jep, kuten veikkasin, yrität luoda törmäystunnistusta alkuperäisen padin ja kartan välille, vaikka tuota ensimmäistä ei liikuteta ollenkaan. Sinun täytyy luoda törmäystarkistus typessä olevien luotien ja kartan välille, kun ne luodaan, eli näin:

Code: Select all

    If KeyDown(cbKeyRControl) And reload=0 Then    
        luoti.AMMUS = New(AMMUS) 'luo uusi ammus
        luoti\obj=CloneObject(pati) 'tee klooni
        'asetetaan pati samaan paikkaan
        CloneObjectPosition luoti\obj,auto                
        'käännetään pati samaan suuntaan
        CloneObjectOrientation luoti\obj,auto           
        SetUpCollision luoti\obj,kartta,1,4,2
        reload=5 'aseen lataus        
    EndIf
Saat itse tehdä vastaavan törmäystunnistuksen asetuksen toisen auton ampumiselle, ei pitäisi olla hankalaa.
Peli piirtokomennoilla - voittaja, Virtuaalilemmikkipeli - voittaja,
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)
danueli
Newcomer
Posts: 14
Joined: Sat Jul 12, 2008 8:28 am

Re: Tyhmät kysymykset

Post by danueli »

ööö, paukut menevät edelleen seinien läpi ja paukut tulevat vai objektista auto
Harakka
Advanced Member
Posts: 430
Joined: Mon Aug 27, 2007 9:08 pm
Location: Salo
Contact:

Re: Tyhmät kysymykset

Post by Harakka »

Kyllä ne ihan molemmista tulee jos osaat copypastettaa koodin oikein. Näköjään siinä taidossa on kuitenkin vielä parantamisen varaa - vähennät koodissasi reloadia neljässä eri paikassa ja ammuksiakin liikutetaan ainakin kolmessa loopissa. Tein koodista aika paljon siistimmän ja nyt toimii ihan sujuvasti. ;)

Code: Select all

Type AMMUS 'luo kokoelma, jonka nimi on AMMUS
    Field obj 'yksi kenttä nimeltään 'obj'
End Type
FrameLimit 70

SCREEN 1200,1000

ääniAmmu = LoadSound ("Media\Blaster.wav")

kartta = LoadMap("Media\cdm2.til","Media\tileset.bmp")
PlayObject kartta,0,0,2

auto2 = LoadObject("Media\car2.bmp", 72)

auto = LoadObject("Media\car2.bmp", 72)
pati=LoadObject("Media\bullet.bmp")
ShowObject pati,OFF

SetupCollision pati, kartta, 1, 4, 2

SetupCollision auto, kartta, 1, 4, 2

SetupCollision auto2, kartta, 1, 4, 2

Repeat
'soita musiikki uudelleen, jos se lo4ppuu
    If SoundPlaying(musa)=0 Then 
        musa = PlaySound ("Media\SK_Battle2.mp3")
        
        'satunnainen tapahtuma.. 
        'tasataanko ääni oikealle vai vasemmalle
        If Rand(1,2)=1 Then 
            SetSound musa,0,100,-100 'vasen kajari
        Else
            SetSound musa,0,100,100 'oikea kajari
        EndIf
    EndIf

'Ammu-systeemi. Vain, jos ase on ladattu
    If KeyDown(cbKeyRControl) And reload=0 Then    
        luoti.AMMUS = New(AMMUS) 'luo uusi ammus
        luoti\obj=CloneObject(pati) 'tee klooni
        'asetetaan pati samaan paikkaan
        CloneObjectPosition luoti\obj,auto                
        'käännetään pati samaan suuntaan
        CloneObjectOrientation luoti\obj,auto           
        PlaySound ääniAmmu,50
        reload=5 'aseen lataus        
    EndIf
    
    'Ammu-systeemi. Vain, jos ase on ladattu
    If KeyDown(cbKeyLControl) And reload2=0 Then    
        luoti.AMMUS = New(AMMUS) 'luo uusi ammus
        luoti\obj=CloneObject(pati) 'tee klooni
        'asetetaan pati samaan paikkaan
        CloneObjectPosition luoti\obj,auto2                
        'käännetään pati samaan suuntaan
        CloneObjectOrientation luoti\obj,auto2            
        PlaySound ääniAmmu,50
        reload2=5 'aseen lataus        
    EndIf
    
    'päivitä aseen lataaminen
    If reload>0 Then reload=reload-1
    If reload2>0 Then reload2=reload2-1

    'Päivitä kaikki ammukset
    For luoti.AMMUS = Each AMMUS
        MoveObject luoti\obj,6
        If GetMap(2,ObjectX(luoti\obj),ObjectY(luoti\obj)) Then
            DeleteObject luoti\obj
            Delete luoti
        EndIf
    Next luoti
            

    'tämä ennen muuta grafiikkaa (box)
    DrawGame

    'piirrä "kenttä"
   
    
    If LeftKey() Then TurnObject auto, 12
    If RightKey() Then TurnObject auto, -12    
    
    If UpKey() Then MoveObject auto, 15
    If DownKey() Then MoveObject auto, -15
    
    If KeyDown(30) Then TurnObject auto2, 12
    If KeyDown(32) Then TurnObject auto2, -12    
    
    If KeyDown(17) Then MoveObject auto2, 16
    If KeyDown(31) Then MoveObject auto2, -16    
    
    CloneCameraPosition auto2
    
    DrawScreen
Forever
Peli piirtokomennoilla - voittaja, Virtuaalilemmikkipeli - voittaja,
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)
danueli
Newcomer
Posts: 14
Joined: Sat Jul 12, 2008 8:28 am

Re: Tyhmät kysymykset

Post by danueli »

miten nuo autot voisivat ampua yhtä-aikaa?
danueli
Newcomer
Posts: 14
Joined: Sat Jul 12, 2008 8:28 am

Re: Tyhmät kysymykset

Post by danueli »

mie pistin tämmösen koodin että luodit eivät menisi autojen lävitse mutta ei onnisunut. tässä mun koodi

Code: Select all

SetupCollision pati, auto2, 2, 2, 2

SetupCollision auto, pati, 2, 2, 2
miksi ei toimi?
Harakka
Advanced Member
Posts: 430
Joined: Mon Aug 27, 2007 9:08 pm
Location: Salo
Contact:

Re: Tyhmät kysymykset

Post by Harakka »

Autot voivat kyllä ampua yhtä aikaa jos näppäimistölläsi voi ylipäätään painaa molempia näppäimiä samanaikaisesti. Kokeile vaihtaa näppäimiä. Ja edelleen sama homma, törmäystunnistus pitäisi tehdä objektille luoti\obj.. ;) Kätevin tapa on tosin tarkistaa törmäys ihan objectsoverlap():illa, koska liukuvaa törmäystä ei tarvita. Eli näin:

Code: Select all

    For luoti.AMMUS = Each AMMUS
        MoveObject luoti\obj,6
        If GetMap(2,ObjectX(luoti\obj),ObjectY(luoti\obj)) or ObjectsOverlap(luoti\obj,auto,3) or objectsoverlap(luoti\obj,auto2,3) Then
            poistettava = 1
        EndIf
            
        If poistettava Then
            DeleteObject luoti\obj
            Delete luoti
            poistettava = 0
        EndIf
    Next luoti
Pistäppä ensi kerralla kysymykset yhteen viestiin. Tuplapostaus on kielletty foorumin säännöissä.

EDIT: Tällä systeemillä ammukset poistetaan heti ammuttaessa, jos ne ovat auton päällä. Muista siis siirtää niitä parikymmentä pikseliä eteenpäin heti niiden luomisen jälkeen, jotta ne syntyisivät kartan ylle (eikä auton).
Peli piirtokomennoilla - voittaja, Virtuaalilemmikkipeli - voittaja,
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)
danueli
Newcomer
Posts: 14
Joined: Sat Jul 12, 2008 8:28 am

Re: Tyhmät kysymykset

Post by danueli »

öö, mä pistin ton koodauksen mutta nyt autot eivät ammu
danueli
Newcomer
Posts: 14
Joined: Sat Jul 12, 2008 8:28 am

Re: Tyhmät kysymykset

Post by danueli »

vaan panos ilmestyy autoon mutta katoaa saman tien
Harakka
Advanced Member
Posts: 430
Joined: Mon Aug 27, 2007 9:08 pm
Location: Salo
Contact:

Re: Tyhmät kysymykset

Post by Harakka »

Voisitkos pliis lukea mitä kirjoitin.

1.
Harakka yhtä viestiä aiemmin wrote:Pistäppä ensi kerralla kysymykset yhteen viestiin. Tuplapostaus on kielletty foorumin säännöissä.
2.
Harakka yhtä viestiä aiemmin wrote:Tällä systeemillä ammukset poistetaan heti ammuttaessa, jos ne ovat auton päällä. Muista siis siirtää niitä parikymmentä pikseliä eteenpäin heti niiden luomisen jälkeen, jotta ne syntyisivät kartan ylle (eikä auton).
3.
Harakka yhtä viestiä aiemmin wrote:Autot voivat kyllä ampua yhtä aikaa jos näppäimistölläsi voi ylipäätään painaa molempia näppäimiä samanaikaisesti. Kokeile vaihtaa näppäimiä.
Peli piirtokomennoilla - voittaja, Virtuaalilemmikkipeli - voittaja,
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)
danueli
Newcomer
Posts: 14
Joined: Sat Jul 12, 2008 8:28 am

Re: Tyhmät kysymykset

Post by danueli »

Miten minä sen piskeli määrän vaihdan xD? tossa koodaus jos et sitä muista

Code: Select all

Type AMMUS 'luo kokoelma, jonka nimi on AMMUS
    Field obj 'yksi kenttä nimeltään 'obj'
End Type
FrameLimit 70

SCREEN 1200,1000

ääniAmmu = LoadSound ("Media\Blaster.wav")

kartta = LoadMap("Media\cdm2.til","Media\tileset.bmp")
PlayObject kartta,0,0,2

auto2 = LoadObject("Media\car4.bmp", 72)

auto = LoadObject("Media\car3.bmp", 72)
pati=LoadObject("Media\bullet.bmp")
ShowObject pati,OFF
pati2=LoadObject("Media\bullet.bmp")
ShowObject pati2, OFF


SetupCollision auto2, auto, 2, 2, 2

SetupCollision auto, auto2, 2, 2, 2

SetupCollision pati, kartta, 1, 4, 2

SetupCollision auto, kartta, 1, 4, 2

SetupCollision auto2, kartta, 1, 4, 2


Repeat
'soita musiikki uudelleen, jos se lo4ppuu
    If SoundPlaying(musa)=0 Then 
        musa = PlaySound ("Media\SK_Battle2.mp3")
        
        'satunnainen tapahtuma.. 
        'tasataanko ääni oikealle vai vasemmalle
        If Rand(1,2)=1 Then 
            SetSound musa,0,100,-100 'vasen kajari
        Else
            SetSound musa,0,100,100 'oikea kajari
        EndIf
    EndIf

'Ammu-systeemi. Vain, jos ase on ladattu
    If KeyDown(cbKeyRControl) And reload=0 Then    
        luoti.AMMUS = New(AMMUS) 'luo uusi ammus
        luoti\obj=CloneObject(pati2) 'tee klooni
        'asetetaan pati samaan paikkaan
        CloneObjectPosition luoti\obj,auto                
        'käännetään pati samaan suuntaan
        CloneObjectOrientation luoti\obj,auto           
        PlaySound ääniAmmu,50
        reload=5 'aseen lataus        
    EndIf
    
         
           For luoti.AMMUS = Each AMMUS
        MoveObject luoti\obj,6
        If GetMap(2,ObjectX(luoti\obj),ObjectY(luoti\obj)) or ObjectsOverlap(luoti\obj,auto,3) or objectsoverlap(luoti\obj,auto2,3) Then
            poistettava = 1
        EndIf
            
        If poistettava Then
            DeleteObject luoti\obj
            Delete luoti
            poistettava = 0
        EndIf
    Next luoti

   
    'Ammu-systeemi. Vain, jos ase on ladattu
    If KeyDown(cbKeyLAlt) And reload2=0 Then    
        luoti.AMMUS = New(AMMUS) 'luo uusi ammus
        luoti\obj=CloneObject(pati) 'tee klooni
        'asetetaan pati samaan paikkaan
        CloneObjectPosition luoti\obj,auto2                
        'käännetään pati samaan suuntaan
        CloneObjectOrientation luoti\obj,auto2            
        PlaySound ääniAmmu,50
        reload2=5 'aseen lataus        
    EndIf
    
    'päivitä aseen lataaminen
    If reload>0 Then reload=reload-1
    If reload2>0 Then reload2=reload2-1

    'Päivitä kaikki ammukset
    For luoti.AMMUS = Each AMMUS
        MoveObject luoti\obj,6
        If GetMap(2,ObjectX(luoti\obj),ObjectY(luoti\obj)) Then
            DeleteObject luoti\obj
            Delete luoti
        EndIf
    Next luoti
            

    'tämä ennen muuta grafiikkaa (box)
    DrawGame

    'piirrä "kenttä"
   
    
    If LeftKey() Then TurnObject auto, 5
    If RightKey() Then TurnObject auto, -5    
    
    If UpKey() Then MoveObject auto, 7
    If DownKey() Then MoveObject auto, -7
    
    If KeyDown(30) Then TurnObject auto2, 5
    If KeyDown(32) Then TurnObject auto2, -5    
    
    If KeyDown(17) Then MoveObject auto2, 7
    If KeyDown(31) Then MoveObject auto2, -7    
    
    CloneCameraPosition auto2
    
    DrawScreen
Forever
User avatar
kaneli2000
Guru
Posts: 1059
Joined: Mon Mar 17, 2008 2:40 pm
Location: Lempäälä

Re: Tyhmät kysymykset

Post by kaneli2000 »

Tyhmä kysymys kai(?): miten toteutan valikon objekteilla? Tyyliin If hiiri menee kuvan päälle ja painaa vasenta hiiren nappia niin goto johonkin
I see the rainbow rising
Harakka
Advanced Member
Posts: 430
Joined: Mon Aug 27, 2007 9:08 pm
Location: Salo
Contact:

Re: Tyhmät kysymykset

Post by Harakka »

danueli wrote:Miten minä sen piskeli määrän vaihdan xD? tossa koodaus jos et sitä muista
Jos objektin liikuttaminen eteenpäin ei onnistu ilman apua, suosittelen aloittamaan helpommasta projektista. Kyllä se siitä sitten lähtee sujumaan, itsekin aloitin ihan simppelistä tekstipelistä, hipoista ym. projekteista. Ampumissysteemi vaatii jo vähän koodin ymmärtämistä.

(Vinkki: kun ammus luodaan, liikuta sitä eteenpäin MoveObject:illa. Pikselimäärä on se numero, joka määrää liikkumisvauhdin..)
kaneli2000 wrote:Tyhmä kysymys kai(?): miten toteutan valikon objekteilla? Tyyliin If hiiri menee kuvan päälle ja painaa vasenta hiiren nappia niin goto johonkin
Aika lailla noin niinkuin sanoitkin.

Code: Select all

hiiriObj = MakeObject()
kuva = LoadObject("media/car.bmp")

Repeat
  PositionObject hiiriObj,MouseWX(),MouseWY()
  If ObjectsOverlap(hiiriobj,kuva,3) and MouseHit(1) Then goto johonkin
  DrawScreen
Forever

johonkin:
End
Gotoa ei sitten suositella käytettäväksi, koska sillä saa koodin rakenteen nopeasti aika sekaiseksi. Tavara kun ei ole välttämättä loogisessa järjestyksessä vaan kirjanmerkit ovat peräkkäin ja niistä hypitään toiseen. Kikkana tässä on se, että luodaan tyhjä objekti joka sijoitetaan hiiren kohdalle ja tällä tarkastetaan sitten yksinkertaisesti törmäykset.
Peli piirtokomennoilla - voittaja, Virtuaalilemmikkipeli - voittaja,
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)
danueli
Newcomer
Posts: 14
Joined: Sat Jul 12, 2008 8:28 am

Re: Tyhmät kysymykset

Post by danueli »

joo, nyt sain toimiin
Nassi_Setä
Advanced Member
Posts: 281
Joined: Sat Jun 28, 2008 5:19 pm
Location: Hämeessä miä

Re: Tyhmät kysymykset

Post by Nassi_Setä »

mulla on edelleen tän copypaste-hirviönkaa ongelmii nimittäin se laittaa vihut hevon vittuun
ja täs koodin pätkä:

Code: Select all

tilew = 32
tileh = 32

For x = 1 to MapWidth()
    For y = 1 to MapHeight()
       
       If GetMap2(3, x, y) = 0 Then
            p.pallo = New(pallo)
            p\o = CloneObject(vihu2)
            p\q = 100
            p\x = x*tilew + tilew/2 - ImageWidth(pallokuva)/2 - (MapWidth()*tilew/2+tilew)
            p\y = y*tileh + tileh/2 - ImageHeight(pallokuva)/2 - (MapHeight()*tileh/2+tileh)
            PositionObject p\o, x*tilew + tilew/2 - ImageWidth(pallokuva)/2 - (MapWidth()*tilew/2+tilew), y*tileh + tileh/2 - ImageHeight(pallokuva)/2 - (MapHeight()*tileh/2+tileh)
        EndIf
       
    Next y
Next x

repeat 



   For p.pallo = Each pallo
  DrawImage pallokuva, p\x, p\y
Next p

Drawscreen 

forever 

toivon että joku voi auttaa
\../(-_-)\../ <---klick MyBrute Image
Jotain evilii on tekeillä....
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Tyhmät kysymykset

Post by koodaaja »

Keh. Tee koodi itse, niin tiedät miten se toimii ja yleensä myös mikä on ongelma. Esimerkiksi nyt käytät objekteja ja kuvia sekaisin. Pallolle kloonataan ja asetetaan objekti, mutta silti sillä on koordinaatit ja niihin piirretään kuva. Manuaalia lukemaan siitä.

Ja vastauksena ongelmaan: ennen drawimagea komenna DrawToWorld OFF, ON, OFF ja sen jälkeen OFF, OFF, OFF.
Rufi
Member
Posts: 50
Joined: Fri Dec 21, 2007 11:12 am

Re: Tyhmät kysymykset

Post by Rufi »

Tehtävä: Saada 2 kuvaa, joihin voi piirtää (x>0, y>0)
Tehty:

Code: Select all

imgKuva1 = MakeImage(98, 95)
imgKuva2 = MakeImage(98, 95)

Repeat

    DrawToImage imgKuva1
    If MouseDown(1) Then
        Color cbDarkRed
        Line vanhaX, vanhaY, MouseX(), MouseY()
    Endif
    vanhaX = MouseX()
    vanhaY = MouseY()

    DrawToScreen
    DrawImage imgKuva1, 151, 65

Drawscreen
Forever
Tosiaan kuva2:een ei tässä kosketa, mutta ei se nyt ongelma olekaan, vaan se, kun painetaan vasen hiiri pohjaan niin itse piirtäminen pitää suorittaa kohdassa X>0 & X<ImageWidth(imgKuva1) & Y>0 & ImageWidth(imgKuva1). Tällöin piirto piirtyy kyllä ihan oikeaan paikkaan, eli 151+, 65+... 'Efektin' voit nähdä ajamalla

Code: Select all

 tageissa olevan koodin.
IMO, pitäisi saada tuo DrawToImage osoittamaan 151, 65 tai jtn~ Monia virityksiä on nyt tullut kokeiltua, mutta ei jaksa enää aivot työstää mitään(joka tietenkin (taas) johtaa siihen, että vastaus on kuitenkin kauhean helppo...), kun yön on valvonu koodaushimon ollessa kriittisen korkea...

Kiitän ja kuittaan.

[offtopic]
Eikös toi :) hymiö täällä vaikuta vähän vahingoniloiselta/omahyväiseltä/jtn kuin perus hymyltä? =)
[/offtopic]

[edit]Typojaaa... =S[/edit]
I'm gonna be the Pira... CoolBasic King!
D. Adams wrote:The knack of flying is learning how to throw yourself at the ground and miss.
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Tyhmät kysymykset

Post by koodaaja »

Tarkoitatko jotain tällaista?

Code: Select all

imgKuva1 = MakeImage(98, 95)
imgKuva2 = MakeImage(98, 95)

Repeat
    
    DrawToImage imgKuva1
    If MouseDown(1) Then
        Color cbDarkRed
        Line vanhaX, vanhaY, MouseX()-151, MouseY()-65
    EndIf
    vanhaX = MouseX()-151
    vanhaY = MouseY()-65
    
    DrawToScreen
    DrawImage imgKuva1, 151, 65
    
    DrawScreen
Forever
Rufi
Member
Posts: 50
Joined: Fri Dec 21, 2007 11:12 am

Re: Tyhmät kysymykset

Post by Rufi »

Siinä se tuli, kiitos, pelastit päiväni xD
I'm gonna be the Pira... CoolBasic King!
D. Adams wrote:The knack of flying is learning how to throw yourself at the ground and miss.
Vouldenhaul
Active Member
Posts: 211
Joined: Tue Aug 28, 2007 3:48 pm

Re: Tyhmät kysymykset

Post by Vouldenhaul »

Täältä tulee pari todellakin tyhmää kysymystä... Eli ensinäkin. Koodaan ekaa kertaa itse projektia (oon koodannut nyt pari päivää) ja ongelmaksi muodostui seuraava. Lataan CB:lle koodatessani kuvan tapaan, "C:\Users\Minä\Desktop\Media\ladattavakuva.png". Toi ei oletettavasti toimi sitten muitten koneilla, joten mikäs ratkaisuksi. Toinen ongelma tuli, kun pitäis saada projekti johonkin ladattavaksi. Mielellään joku sellanen paikka, mihin ei tarvis kirjautua ja bonuksena viellä, jos sieltä näkis latausten määrän. Niin ja kiitollisia oltaisiin jos joku viittis auttaa viellä tän vuorokauden aikana... ;)
Some stories can't be told by words...
Some legends are meant to die...
Some bloodlines must come to an end...


Metal Gear Solid 4: Guns of the Patriots
Sneaking Out 12.06.2008
TheFish
Developer
Developer
Posts: 477
Joined: Mon Aug 27, 2007 9:28 pm
Location: Joensuu

Re: Tyhmät kysymykset

Post by TheFish »

Vouldenhaul wrote:Täältä tulee pari todellakin tyhmää kysymystä... Eli ensinäkin. Koodaan ekaa kertaa itse projektia (oon koodannut nyt pari päivää) ja ongelmaksi muodostui seuraava. Lataan CB:lle koodatessani kuvan tapaan, "C:\Users\Minä\Desktop\Media\ladattavakuva.png". Toi ei oletettavasti toimi sitten muitten koneilla, joten mikäs ratkaisuksi. Toinen ongelma tuli, kun pitäis saada projekti johonkin ladattavaksi. Mielellään joku sellanen paikka, mihin ei tarvis kirjautua ja bonuksena viellä, jos sieltä näkis latausten määrän. Niin ja kiitollisia oltaisiin jos joku viittis auttaa viellä tän vuorokauden aikana... ;)
1. Laitat polun samaan tyyliin kuin cb:n esimerkeissä on, eli siis esim. "media\x.png", jolloin ohjelma hakee exen/sorsan sijainnista media-nimistä kansiota ja sen sisältä kuvaa x.png.
2. http://up.servut.us/
CoolBasic henkilökuntaa
Kehittäjä
Locked