Majitel ffredyk 167 Odesláno: 30. Listopad, 2010 Majitel Share Odesláno: 30. Listopad, 2010 V předchozích tutoriálech jsem se zapomněl zmínit o polích. Jde s nimi velice snadno zjednodušit práce.. Také vám ukážu jak použít enum, což je vlastně laicky řečeno "pole se jmény". Nejprve vám ukážu k čemu lze pole použít a jak ho vůbec vytvořit a pracovat s ním. Pole můžeme využít k uložení vícero informací do jedné jediné větvící se proměnné.. V Pawn využijete především pole jednoduché a dvojrozměrné.. Já sám jsem ještě troj a více měrné pole nepoužíval, takže ani vám neřeknu zda-li to vůbec jde (mělo by). Pole např můžete uplatnit v situaci kdy máte postaven výtah z 2 a více objektů.. Představte si situaci kdy jste si postavili do mapy výtah, ale ten výtah se skládá z více částí.. V pawn by většina lidí pro každou část výtahu vytvořila novou proměnou a ze scriptu by se mohl stát guláš plný zbytečných proměnných. Pro zpřehlednění scriptu a dosažení stavu kdy "to máte všechno pohromadě" využijeme pole. Deklarace pole je skoro stejná jako u normální proměnné, dokonce vám řeknu, že to děláte často pokud vytváříte stringy! Ano string = pole znaků! Takže i my vytvoříme vlastně string -> new pole[5]; Díky tomuto kódu máme pole o velikosti 5 větví (0 - 4). takže si do něj rovnou můžeme nasázet naše objekty: pole[0] = CreateObject(...); //První větev pole[1] = CreateObject(...); pole[2] = CreateObject(...); pole[3] = CreateObject(...); pole[4] = CreateObject(...); //Patá větev.. Pokud nevěříte spočítejte si to A dále můžeme pro pohyb výtahu použít MoveObject jako zde: MoveObject(pole[0],X,Y,Z,Speed); MoveObject(pole[1],X,Y,Z,Speed); MoveObject(pole[2],X,Y,Z,Speed); MoveObject(pole[3],X,Y,Z,Speed); MoveObject(pole[4],X,Y,Z,Speed); Dále může nastat situace, že výtahy máme dva! I zde lze využít polí, a nemusíme zvětšovat počet větví! Stačí vytvořit dvourozměrné pole. Dvourozměrné pole vytvoříme skoro úplně stejně jako pole normální, akorát jsou zde dvě sady počtu větví. new pole-vytah[2][5]; Nyní máme dvourozměrné pole (dvě pole v jednom). POZOR: Hodnota pole pole-vytah[0][3] může být jiná než pole-vytah[1][3]! Tzn. Větve se řadí do sebe podle toho jak jsou zapsané.. Představte si to třeba jako strom: Můžete tedy počítat [2]*[5]*další větve -> a každá větev je závislá na té předchozí. A můžeme do něj vložit naše výtahy: pole-vytah[0][0] = CreateObject(...); pole-vytah[0][1] = CreateObject(...); pole-vytah[0][2] = CreateObject(...); pole-vytah[0][3] = CreateObject(...); pole-vytah[0][4] = CreateObject(...); pole-vytah[1][0] = CreateObject(...); pole-vytah[1][1] = CreateObject(...); pole-vytah[1][2] = CreateObject(...); pole-vytah[1][3] = CreateObject(...); pole-vytah[1][4] = CreateObject(...); A zase můžeme s výtahem pohybovat jako v předchozím příkladu: Pohyb 1 výtahu: MoveObject(pole-vytah[0][0],X,Y,Z,Speed); MoveObject(pole-vytah[0][1],X,Y,Z,Speed); MoveObject(pole-vytah[0][2],X,Y,Z,Speed); MoveObject(pole-vytah[0][3],X,Y,Z,Speed); MoveObject(pole-vytah[0][4],X,Y,Z,Speed); Pohyb 2 výtahu: MoveObject(pole-vytah[1][0],X,Y,Z,Speed); MoveObject(pole-vytah[1][1],X,Y,Z,Speed); MoveObject(pole-vytah[1][2],X,Y,Z,Speed); MoveObject(pole-vytah[1][3],X,Y,Z,Speed); MoveObject(pole-vytah[1][4],X,Y,Z,Speed); Dobře a co když chceme udělat pole do kterého budeme přidávat hodnoty každou jinou k jinému účelu? To by jsme po chvíli museli pořád hledat jaká větev pole k čemu slouží.. Proti tomu můžeme použít enum, což je vlastně taková pomůcka jak pojmenovat větve pole! Pokud tedy chceme vytvořit pole do kterého uložíme: Počet zabitých hráčů, početzničených aut a nějaký serverový string. Tak vytvoříme enum: enum SRV { killed, destroyed, serverstr[120], } Čárku dělám na každém řádku proto, že když chci do enumu něco přidat tak zapomínám, že na předchozím řádku čárka není A nyní vytvoříme pole do kterého enum vložíme: new server[sRV]; POZOR: Je nutno nejdříve vytvořit enum a až poté pole! Vidíme, že pro definici počtu větví používáme název enumu. Server si počet větví odvodí z počtu zadaných hodnot do enumu. Nyní již můžeme používat naše pole.. takže třeba do OnPlayerDeath: server[killed]++; OnVehicleDeath: server[destroyed]++; A nějaký příkaz pro zadání reklamy třeba: format(server[serverstr],120,"%s",params); Doufám. že jsem napsal vše co jsem chtěl a na nic nezapoměl.. Ono při psaní tak velké zprávy, kdy se člověk soustředí na jednu věc, zapomíná jako prase. Link to comment Share on other sites More sharing options...
Danny 37 Odesláno: 30. Listopad, 2010 Share Odesláno: 30. Listopad, 2010 pekný tutorial 10/10 tvoje tuty sú večšinou dobré Link to comment Share on other sites More sharing options...
Majitel ffredyk 167 Odesláno: 30. Listopad, 2010 Author Majitel Share Odesláno: 30. Listopad, 2010 pekný tutorial 10/10 tvoje tuty sú večšinou dobré Ani jsi to nečetl.. Link to comment Share on other sites More sharing options...
Danny 37 Odesláno: 30. Listopad, 2010 Share Odesláno: 30. Listopad, 2010 Pravda, nečítal som to celé ale čítal som kódy a viem jak to vyzerá hodnotenie by bolo také isté Link to comment Share on other sites More sharing options...
Guest [BJ]boban88 Odesláno: 30. Listopad, 2010 Share Odesláno: 30. Listopad, 2010 hmmm je to good 10/10 mozno konecne uz neuvidim cez skype take mody ze je tam 500x new nieco :D Link to comment Share on other sites More sharing options...
Guest Frodo Odesláno: 30. Listopad, 2010 Share Odesláno: 30. Listopad, 2010 pekný tutorial 10/10 tvoje tuty sú večšinou dobré Ani jsi to nečetl.. On si jen chtel napsat prispevek a je mu jedno kam Hodnocení - 9/10, mohl si se třeba zmínit jak se pracuje s boolem (např.) v enumu (já to třeba jednou potřeboval a nikde to nebylo ) Link to comment Share on other sites More sharing options...
Majitel ffredyk 167 Odesláno: 30. Listopad, 2010 Author Majitel Share Odesláno: 30. Listopad, 2010 pekný tutorial 10/10 tvoje tuty sú večšinou dobré Ani jsi to nečetl.. On si jen chtel napsat prispevek a je mu jedno kam Hodnocení - 9/10, mohl si se třeba zmínit jak se pracuje s boolem (např.) v enumu (já to třeba jednou potřeboval a nikde to nebylo ) enum SESBLB { bool:apako, } Link to comment Share on other sites More sharing options...
Guest Frodo Odesláno: 30. Listopad, 2010 Share Odesláno: 30. Listopad, 2010 Ja to vim to si měl napsat nahoru Link to comment Share on other sites More sharing options...
Majitel ffredyk 167 Odesláno: 1. Prosinec, 2010 Author Majitel Share Odesláno: 1. Prosinec, 2010 Ja to vim to si měl napsat nahoru Ono to většině lidem dojde pokud ovládaj deklaraci proměnných... Moje tuty jsou pro chytřejší lidi Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now