Tyhmät kysymykset (II/2009)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: Tyhmät kysymykset (II/2009)

Post by Jonez »

Tilesterin ja vastaavien luomat .til-tiedostot ovat vain tietynlaista dataa. Jos tiedät miten data on tiedostoon kirjoitettu, saat sen sieltä myös ulos. Jos osaat kirjottaa oikeanlaista dataa, saat coolbasicin lataamaan sen karttana.

Ehkä tiedät tämän, ehkä et. Mutta Tilesterin kansiossa pitäisi olla manuaali ko. ohjelmaan, jossa kerrotaan täsmälleen miten .til-tiedostot luodaan. Niitä lukemalla voit helposti tehdä oman tile-editorin (coolbasicille) vaikka cb:llä tai c++:lla.
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: Tyhmät kysymykset (II/2009)

Post by axu »

Laatimani kirjasto mapin avaamiselle ja tallentamiselle(ei tällä hetkellä tuon kummempaa dokumentaatiota, funktioiden pitäisi olla melko selvät käyttää), ja tilesterin helpissä on yksityiskohtaiset dokumentaatiot .til formaatin rakenteesta ;)

Code: Select all

Dim TileAnim(1,1)   //TileAnim -taulukko sisältää tilejen animoinnin(koska coolbasicissa ei voi tarkistaa sitä jälkikäteen), TileAnim(TILE, ANIMAATION_PITUUS = 0/ANIMAATION_HITAUS = 1
Function OpenMap(FileName$, Tileset$="", PrintHeader = 0)
    f = OpenToEdit(FileName)
    '    If Not(ReadByte(f) = 40 And ReadByte(f) = 192 And ReadByte(f) = 13 And ReadByte(f) =  139) Then MakeError "Can't load map "+FileName+". Map is not valid Tilester 1.3 file"
        If PrintHeader Then
            Print ReadByte(f) + " " + ReadByte(f) + " " + ReadByte(f) + " " + ReadByte(f)
            WaitKey
        EndIf
        If Tileset = "" Then
            SeekFile f, 564
            For i = 0 To 255
                b = ReadByte(f)
                If b = 0 Then Exit Else Tileset = Tileset + Chr(b)
            Next i
        EndIf
        SeekFile f, 820
        TileCount   = ReadInt(f)
        TileWidth   = ReadInt(f)
        TileHeight  = ReadInt(f)
        Map = MakeMap(ReadInt(f), ReadInt(f), TileWidth, TileHeight)
        TilesetImg  = LoadImage(Tileset)
        PaintObject Map, TilesetImg
        For i = 0 To 3
            If Not(ReadByte(f) = 254-i And ReadByte(f) = 45-i And ReadByte(f) = 12-i And ReadByte(f) = 166-i) Then MakeError "Can't load map "+FileName+". Map layer "+i+" was corrupted"
            For Y = 1 To MapHeight()
                For X = 1 To MapWidth()
                    EditMap Map, i + (i = 1) - (i = 2), X, Y, ReadInt(f)
                Next X
            Next Y
        Next i
        If Not(ReadByte(f) = 250 And ReadByte(f) = 41 And ReadByte(f) = 8 And ReadByte(f) =  162) Then MakeError "Can't load map "+FileName+". Tile animation was corrupted"
        ReDim TileAnim(TileCount-1, 1)
        For i = 0 To TileCount-1
            TileAnim(i, 0) = ReadInt(f)
            TileAnim(i, 1) = ReadInt(f)
            SetTile i, TileAnim(i, 0), TileAnim(i, 1)
        Next i
        SeekFile f, 520
        MaskObject Map, ReadByte(f), ReadByte(f), ReadByte(f)
    CloseFile f
    
    Return Map
End Function

Function SaveMap(Map, FileName$, TilesetImg, Tileset$ = "", MaskRED = 0, MaskGREEN = 0, MaskBLUE = 0, Comment$ = "")
    f = OpenToWrite(FileName)
        WriteByte f, 40 : WriteByte f, 192 : WriteByte f, 13 : WriteByte f, 139
        WriteFloat f, 1.3
        For i = 1 To 512
            If i < Len(Comment) And i < 256 Then
                WriteByte f, Asc(Mid(Comment, i, 1))
            Else
                WriteByte f, 0
            EndIf
        Next i
        WriteByte f, MaskRED : WriteByte f, MaskGREEN : WriteByte f, MaskBLUE : WriteByte f, 0
        For i = 1 To 40
            WriteByte f, 0
        Next i
        For i = 1 To 256
            If i < Len(Tileset) Then
                WriteByte f, Asc(Mid(Tileset, i, 1))
            Else
                WriteByte f, 0
            EndIf
        Next i
        TileCount = (ImageWidth(TilesetImg)/(ObjectSizeX(Map) / MapWidth())) * (ImageHeight(TilesetImg)/(ObjectSizeY(Map) / MapHeight()))
        WriteInt f, TileCount
        WriteInt f, ObjectSizeX(Map) / MapWidth()
        WriteInt f, ObjectSizeY(Map) / MapHeight()
        WriteInt f, MapWidth()
        WriteInt f, MapHeight()
        For i = 0 To 3
            WriteByte f, 254-i : WriteByte f, 45-i : WriteByte f, 12-i : WriteByte f, 166-i
            For Y = 1 To MapHeight()
                For X = 1 To MapWidth()
                    WriteInt f, GetMap2(i + (i = 1) - (i = 2), X, Y)
                Next X
            Next Y
        Next i
        WriteByte f, 250 : WriteByte f, 41 : WriteByte f, 8 : WriteByte f, 162
        For i = 0 To TileCount-1
            WriteInt f, TileAnim(i, 0)
            WriteInt f, TileAnim(i, 1)
        Next i
    CloseFile f
EndFunction
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
Hipsu

Taulukoista asiaa...

Post by Hipsu »

Olisi yksi kysymys taulukoinnista:
Jos minulla on esimerkiksi taulukko DIM vihu (x,y) niin voiko siinä olla sekä Inttejä, Floatteja että Stringeja?.
Siis voiko vaikka vihu% (0,1) = 7 kun taas vihu$ (0,2) = "Hello World"?

Kiitän jo etukäteen.
User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: Tyhmät kysymykset (II/2009)

Post by Jonez »

Ei voi normaaleilla menetelmillä, mutta voit itse tehdä sellaisen systeemin käyttämällä muistipaloja:

Code: Select all

Dim taulu( 10 )

taulu( 0 ) = LuoMuisti()
taulu( 1 ) = LuoMuisti()

LisääTekstiä( taulu( 0 ), "Hello World!" )
LisääKokLuku( taulu( 1 ), 42 )
LuoMuisti on siis periaatteessa sama kuin MakeMemBlock(). LisääTekstiä() katsoo tekstin pituuden, uudelleenvenyttää muistipalaa ja lisää tekstin muistipalaan käyttämällä esim. tavuja. LisääKokLuku() vielä helpompi.

Edit. Tässä tarkempi esimerkki. Toivottavasti ei tullut virheitä; muistipalojen kanssa saa olla tarkkana.

Code: Select all

Dim taulu( 10 )

taulu( 0 ) = LuoMuisti()
taulu( 1 ) = LuoMuisti( 4 )

LisääTeksti( taulu( 0 ), "Hello World!" )
LisääKokLuku( taulu( 1 ), 42 )

For i = 0 To MEMBlockSize( taulu( 0 ) ) - 1
    _str$ = _str$ + Chr( PeekByte( taulu( 0 ), i ) )
Next i

MakeError "Taulu 0: '" +  _str$ + "', taulu 1: '" + PeekInt( taulu( 1 ), 0 ) + "'"

Function LisääKokLuku( _id, _nbr )
    PokeInt _id, 0, _nbr
EndFunction

Function LisääTeksti( _id, _str As String )
    ResizeMEMBlock _id, Len( _str )
    For i = 0 To MEMBlockSize( _id )
        PokeByte _id, i, Asc( Mid( _str, i + 1, 1 ) )
    Next i
EndFunction

Function LuoMuisti( _size = 1 )
    Return MakeMEMBlock( 1 )
EndFunction
Kannattaa vielä tämän lisäksi laittaa jokaisen muistipalan alkuun tavu, joka kertoo ohjelmalle minkälaista tietoa säilötään. Näin voit yhdellä (monimutkaisella) silmukalla tulostaa kaiken tiedon, eikä vahingossa yritetän tulostaa liukulukua kun onkin säilötty tavuja.
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War
Ballol
Newcomer
Posts: 9
Joined: Thu Sep 25, 2008 9:50 pm

Re: Tyhmät kysymykset (II/2009)

Post by Ballol »

Terve.

Tässä olen puuhannut erään kokeilumielisen pelini parissa, ja koittanut tehdä hahmolle väliaikaista sprinttiä. Siinä en ole kuitenkaan onnistunut. Lyhyesti sanottuna voisiko joku kertoa miten saan tehtyä niin, että kun vaikkapa Shiftiä painetaan, ukko alkaa juoksemaan kovempaa, mutta hetken päästä väsähtää ja tämän pitää odottaa että tietty aika on kulunut ennen kuin voi taas vetää hetken kipaisun?

Lihavoitua kohtaa en millään saa aikaiseksi. Ukko joko juoksee kiihtyvällä vauhdilla niin kauan kuin Shift on pohjassa tai ei liiku ollenkaan. Onko vaikeakin toteuttaa ja saisiko mitään esimerkkiä vaikka sovellettuna räiskintätutoriaalin ukolle?
User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: Tyhmät kysymykset (II/2009)

Post by Jonez »

Tässä yhdenlainen juoksutyyli. Luulen, ettei tämä ole täsmälleen kuten halusit, mutta sille ei voi mitään. Ukko juoksee kun shiftiä painaa ja kesto riittää. Kun kesto = 0, on palautumisaika (joka on tässä kaksinkertainen juoksuaikaan). Kesto ei palaudu ellei olla väsähtäneitä.

Code: Select all

Dim AMMUS_ELOSSA(100) 'onko ammus elossa vai vapaa
Dim AMMUS_OBJ(100)    'sisältää ammuksen ukkoektin

FrameLimit 40 'rajoita nopeutta

ukko=LoadObject("Media\soldier.bmp",72)
pati=LoadObject("Media\bullet.bmp")
ShowObject pati,OFF

AddText "Nuolista ohjaa, CTRL=ampuu"

kesto# = 100
Repeat


    'Ammu-systeemi. Vain, jos ase on ladattu
    If KeyDown(cbKeyRControl) And reload=0 Then    
        GoSub LisääAmmus        
    EndIf
    
    
    vauhti = 2 'vauhti oletuksena 2.
    //Jos painetaan oikeata shiftiä.
    If KeyDown( CbKeyRShift ) Then
        If kesto > 0 And bVäsähtänyt = False Then   'jos kestoa riittää eikä olla väsyneitä
            kesto - 1                               'kesto tippuu
            vauhti = 4                              'vauhti on suurempi (juostaan)
        Else
            bVäsähtänyt = True                      'jos kesto = 0, väsähdetään
        EndIf
    EndIf
    
    If bVäsähtänyt Then                             'jos ollaan väsyneitä....
        kesto + 0.5                                 'kesto palautuu puolella nopeudella
        If kesto >= 100 Then bVäsähtänyt = False    'kun kesto = 100, ei olla enää väsyneitä.        
    EndIf

    'Ohjaa ukkoa NUOLILLA
    If LeftKey() Then TurnObject ukko,5
    If RightKey() Then TurnObject ukko,-5
    If UpKey() Then MoveObject ukko,vauhti
    If DownKey() Then MoveObject ukko,-2    

    'päivitä aseen lataaminen
    If reload>0 Then reload=reload-1

    'Päivitä kaikki ammukset
    GoSub PäivitäAmmukset

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

    'piirrä "kenttä"
    Color cbOrange
    Box 20,20,360,260,OFF    
    
    Color cbWhite
    Text 20, 20, "Kunto: " + kesto
    DrawScreen

Until EscapeKey()
End
'-----------------------------------------------
LisääAmmus:
    'ammutaan, eli luodaan uusi pati
    'monistamalla ladattu pati ja asettamalla
    'se samaan paikkaan kuin ukko.
        
    'ensin tarkastetaan, onko paikoja vapaana
    For i=1 To 100
        If AMMUS_ELOSSA(i)=OFF Then
            'vapaa paikka löytyi, luodaan pati
                
            AMMUS_ELOSSA(i)=ON
            AMMUS_OBJ(i)=CloneObject(pati)
                
            'asetetaan pati samaan paikkaan
            CloneObjectPosition AMMUS_OBJ(i),ukko
                
            'käännetään pati samaan suuntaan
            CloneObjectOrientation AMMUS_OBJ(i),ukko
            
            reload=5 'aseen lataus
          
            'enempää paikka-tarkistuksia ei tarvita,
            'joten voimme paeta silmukasta
            Exit
        EndIf
    Next i
Return 'palaa takaisin pääsilmukkaan
'-----------------------------------------------
PäivitäAmmukset:
    'liikutetaan kaikkia ammuksia, ja katsotaan
    'törmäävätkö ne oransseihin seiniin. Jos
    'törmäävät, niin ne poistetaan ammuslistasta,
    'ja paikka vapautuu uudelle ammukselle.
    
    'käydään KAIKKI läpi
    For i=1 To 100
        If AMMUS_ELOSSA(i) Then
            MoveObject AMMUS_OBJ(i),6
            
            'tämä on inhottavan pitkä rivi-------------> -------------> -------------> -------------> ------------->
            'voit kuitenkin pilkkoa sen mielessäsi
            'OR:n erottamiin osiin...
            If ObjectX(AMMUS_OBJ(i))<-180 Or ObjectX(AMMUS_OBJ(i))>180 Or ObjectY(AMMUS_OBJ(i))<-130 Or ObjectY(AMMUS_OBJ(i))>130 Then
                'ammus ylittää rajan -> tuhoa se
                
                DeleteObject AMMUS_OBJ(i)
                
                'vapauta paikka tyhjäksi
                AMMUS_ELOSSA(i)=OFF
            EndIf
            
        EndIf
    Next i
Return 'palaa takaisin pääsilmukkaan
Jos haluat että ukko juoksee kun shiftiä on painettu vain kerran, tarvitset ajastimen. Tässä vähän pseudo-esimerkkiä miten toteutettaisiin: (toivottavasti siinä ei ole huolimattomuusvirheitä). Katso manuaalista funktio Timer().

Code: Select all

If paina_juoksunäppäintä And ei_juosta and ( Not väsynyt ) Then alkuaika = Timer()

If Timer() - JUOKSUAIKA < alkuaika And ( Not väsynyt ) Then
    juokse()
Else
    väsynyt = True
    alkuaika = Timer()
EndIf

If väsynyt Then
    If Timer() - VÄSYMYSAIKA < alkuaika Then
        väsynyt = False
    EndIf
EndIf
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War
MrMonday
Advanced Member
Posts: 378
Joined: Fri Oct 10, 2008 2:35 pm

Re: Tyhmät kysymykset (II/2009)

Post by MrMonday »

Jos tekee muuttujan "Sprintti", jonka arvo on esmes 1000, ja jos shift pohjassa, niin vauhti kasvaa ja Sprintti - X,
ja jos sprintti < 0 niin sitten vauhti laskee taas kävely-tasolle..
ja jos Sprintti < 1000 niin Sprintti + X

aika sekava, eikä varmaan paras esimerkki, mutta toivottavasti jotain apua..

E: Jonez kerkisikin ensin, ja parempikin vielä :D
Ballol
Newcomer
Posts: 9
Joined: Thu Sep 25, 2008 9:50 pm

Re: Tyhmät kysymykset (II/2009)

Post by Ballol »

Jonez wrote:Tässä yhdenlainen juoksutyyli. Luulen, ettei tämä ole täsmälleen kuten halusit, mutta sille ei voi mitään. Ukko juoksee kun shiftiä painaa ja kesto riittää. Kun kesto = 0, on palautumisaika (joka on tässä kaksinkertainen juoksuaikaan). Kesto ei palaudu ellei olla väsähtäneitä.

Code: Select all

Esimerkki
Juuri tälläistä hain, kiitoksia paljon. Mondayn esimerkin tapaista olin siis jo yrittänyt ilman kovin hehkeää tulosta.
...

Re: Tyhmät kysymykset (II/2009)

Post by ... »

Tota karttojen teko hommaa en oikeen ymmär oon luken kyl kaikki ne ohjeet ja muut leikkiny sen kans ja muuta mut en jaks enää kun en itse keksi ratkaisuu. Ni voisko joku kertoo millai se homma sit niinku menee et saan sen kartan ladattua siihen koodaukseen?
SPuntte
Tech Developer
Tech Developer
Posts: 650
Joined: Mon Aug 27, 2007 9:51 pm
Location: Helsinki, Finland
Contact:

Re: Tyhmät kysymykset (II/2009)

Post by SPuntte »

... wrote:Tota karttojen teko hommaa en oikeen ymmär oon luken kyl kaikki ne ohjeet ja muut leikkiny sen kans ja muuta mut en jaks enää kun en itse keksi ratkaisuu. Ni voisko joku kertoo millai se homma sit niinku menee et saan sen kartan ladattua siihen koodaukseen?
Kartan tekoon tarvitset tilekarttaeditorin. CB:n mukana tulee Tilester, jolla pääset alkuun. Vaihtoehtoja ovat TileGen ja A Stigmator, löytyy foorumin hakutoiminnolla.

Itse kartta koostuu kahdesta osasta: tiilemapista ja tilesetistä. Tilemap on taulukko lukuja, jota et itse edes näe, vaan se on piilotettu karttaeditorin ja CoolBasicin karttasysteemin sisään. Tilemap tallennetaan .til-tiedostoon, joka sitten ladataan CB:hen. Tileset puolestaan on kuva, joka sisältää karttaan käytettävät palaset, tilet, tai suomeksi tiilet, ruudut, jne.

Tilekarttaeditorilla voit rakentaa tilemapin tilesetin avulla, niin että näet samalla, miltä kartta pelissä tulee näyttämään. Lisäohjeita kartan rakentamiseen saat itse editorin ohjeista.

CB:n manuaalista löytyy yksityiskohtainen esittely tilekarttamoottorin toiminnasta ja käytöstä. Kun painat editorissa F8, aukeaa Oppitunnit-paneeli, josta löytyy kaksi karttoihin keskittyvää oppituntia, 10 ja 11. Niihin tutustumalla homma selviää.
CoolBasic henkilökuntaa
Tech-kehittäjä
CoolBasic Classic, Cool VES

CoolPhysicsEngine | MissileSystem | Jana-ympyrä -törmäys | cbSimpleTexture | CoolCPLX
11v
Member
Posts: 73
Joined: Wed Jun 10, 2009 10:13 pm

Re: Tyhmät kysymykset (II/2009)

Post by 11v »

... wrote:Tota karttojen teko hommaa en oikeen ymmär oon luken kyl kaikki ne ohjeet ja muut leikkiny sen kans ja muuta mut en jaks enää kun en itse keksi ratkaisuu. Ni voisko joku kertoo millai se homma sit niinku menee et saan sen kartan ladattua siihen koodaukseen?
Back kerros on alin kerros. Kävelet sen päällä.
Over kerros on ylin kerros. Menet sen ali ja se on Back kerroksen päällä.
Hit kerrokseen piirtämäsi asiat eivä näy.(Muistaakseni) Mihin kohtaan piirrät Hit kerroksen, pelin aikana SetupCollision komennolla voit estää sen pääsemisen siihen. Eli se estää siihen kohtaan pääsemisen. Lyhyesti Block kerros. (Huom. Tilesterissä Hit kerroksen käyttö on sekoa!, Stigmatorissa se on paljon selkeämpi.)


Kannattaa käyttää Stigimatoria. Kuvassa on Stigimatori.
EDIT:

Pinkit boxit ovat ketovat mihin kohtaan olen laittanut Hit kerroksen(Blockin), tie ja nurmikko on Back kerroksessa, auto on Over kerroksessa, jotta se olisi tien päällä.

Attachments
Paljon parempi =)
Paljon parempi =)
Stigimator.JPG (73.42 KiB) Viewed 9399 times
Black city peleistä parhain
Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Tyhmät kysymykset (II/2009)

Post by Awaclus »

11v wrote:Tilesterissä Hit kerroksen käyttö on sekoa!, Stigmatorissa se on paljon selkeämpi.)


Kannattaa käyttää Stigimatoria.
Tekstisi on sekoa, ja TileGen on parempi kuin Stigmator siksi, että Stigmator on tehty CoolBasicilla ja mavittaa välillä. Anteeksi offtopic.
Guest

Re: Tyhmät kysymykset (II/2009)

Post by Guest »

Kuten taas kerran tuli todistettua mul kävi vahinko en huomannu yht juttu ja senkos takia en ymmärtäny noita mitä äsken selititte. En ees viiti kertoo ku sen verta nolo homma:D Mut nyt tuntuu et vois alkaa tajutakki jotain. Ku oikeen miettii ni ton käyttö on aika yksinkertas jos vaan osaa lukee ohjeen ja tajuu ne toisin ku eräät :D Mut kiitos kaikil ketä autto alkuun.
MAVellius

Re: Tyhmät kysymykset (II/2009)

Post by MAVellius »

Onko CB:llä mitenkään mahdollista piilottaa ohjelman otsikkopalkkia?
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Tyhmät kysymykset (II/2009)

Post by phons »

CBFUN:sta pitäisi löytyä siihenkin funktio...

viewtopic.php?f=12&t=293
Image
MAVellius

Re: Tyhmät kysymykset (II/2009)

Post by MAVellius »

phons wrote:CBFUN:sta pitäisi löytyä siihenkin funktio...

viewtopic.php?f=12&t=293
Eipä löydy, selasin juuri manuaalin läpi.
User avatar
Substance
Active Member
Posts: 234
Joined: Fri Mar 14, 2008 5:48 pm

Re: Tyhmät kysymykset (II/2009)

Post by Substance »

MAVellius wrote:
phons wrote:CBFUN:sta pitäisi löytyä siihenkin funktio...

viewtopic.php?f=12&t=293
Eipä löydy, selasin juuri manuaalin läpi.
SetWinowAlpha
Substance aka LittleGreen
Red Encounter - shoot'em uppia - lataus
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Tyhmät kysymykset (II/2009)

Post by phons »

Hmm... Nyt kun cbFun:sta puhutaan niin, mikäs on kun yksikään funktio ei toimi... Tai no kokeilin muutamia, en kaikkia, mutta luulisin että jos muutama ei toimi mikään ei toimi... Olisin mieluusti kokiellut vähän noita, enkä siksi osaa sanoa mitä esim. tuo SetWindowAlpha tekee, luulisin että tekee ikkunasta läpinäkyvän tjs.
Image
User avatar
Substance
Active Member
Posts: 234
Joined: Fri Mar 14, 2008 5:48 pm

Re: Tyhmät kysymykset (II/2009)

Post by Substance »

phons wrote:Hmm... Nyt kun cbFun:sta puhutaan niin, mikäs on kun yksikään funktio ei toimi... Tai no kokeilin muutamia, en kaikkia, mutta luulisin että jos muutama ei toimi mikään ei toimi... Olisin mieluusti kokiellut vähän noita, enkä siksi osaa sanoa mitä esim. tuo SetWindowAlpha tekee, luulisin että tekee ikkunasta läpinäkyvän tjs.
cbFunin dll:n pitää olla cbFunin kansion vieressä projekti/coolbasic kansion sisässä, ja cbFunin kansiossahan on sen funktiokirjasto. Tällä järjestelyllä pitäisi esimerkkien tiedostopolut cbFuniin toimia.
Substance aka LittleGreen
Red Encounter - shoot'em uppia - lataus
Feuer
Devoted Member
Posts: 520
Joined: Tue Jun 16, 2009 11:13 am
Contact:

Re: Tyhmät kysymykset (II/2009)

Post by Feuer »

Ei liity cb:hen, ja jos joku osaa ehdottaa parempaa aluetta, ehdottakoon. Mitä tarkoittaa "koostefunktiot"?
Asus P8P67 LE/Intel Core i5 2500K/ GTX560/ 8GT RAM/750GT HDDt + 120GT SSD + 13" Macbook Pro
Blogi - Peräpohjola - MERPG
Locked