Guest XmEn Odesláno: 5. Červenec, 2011 Share Odesláno: 5. Červenec, 2011 Alias "Bool".. Pokročilý pawneři určitě znají a využívají, nováčci o tom možná jenom četli. Nebudu tu rozebírat teoretickou část, jako například že boolean zabírá v paměti tolik a tolik RAM oproti obyčejné proměné apd., ale spíš se zaměřím na příklad kde se to dá využít prakticky. Boolean zabírá v paměti 1bit zatímco hodnotné proměnné zabírá v paměti 32bitů To je dost velkej rozdíl. Script "Vrata" + Vysvětlení V tomto prvním scriptu i vysvětlím Co to vůbec bool je apd. Máme udělaný script na vrata, někdo přijede (máme to např. nastavené na klávesu H), zmáčkne klávesu H, vrata se otevřou, on projede a zmáčkne zase H a vrata se zavřou. Teď musíme zařadit do scriptu podmínku, protože bez podmínky by script nepoznal jestli při stisku H má vrata zavřít a nebo otevřít.. a proč zavírat zavřená vrata? :? Nováček by (pokud umí) použil proměnou new vrata; - Sice je to funkční, ale my se bavíme o booleanu, který je lepší kvůli optimalizaci. Použijeme inicializici bool: tedy new bool:vrata; Link to comment Share on other sites More sharing options...
DooM 93 Odesláno: 5. Červenec, 2011 Share Odesláno: 5. Červenec, 2011 No pekny ale uz to tu je myslim Link to comment Share on other sites More sharing options...
EnginER 0 Odesláno: 5. Červenec, 2011 Share Odesláno: 5. Červenec, 2011 dobry tut dik nevedel som ze je to az tak lahke budem robit niektore veci cez to Link to comment Share on other sites More sharing options...
Globální moderátor HighPrint 177 Odesláno: 5. Červenec, 2011 Globální moderátor Share Odesláno: 5. Červenec, 2011 Boolean zabírá v paměti 1bit zatímco hodnotné proměnné zabírá v paměti 32bitů To je dost velkej rozdíl. Jenom reaguju na tu optimalizaci. Link to comment Share on other sites More sharing options...
Guest XmEn Odesláno: 5. Červenec, 2011 Share Odesláno: 5. Červenec, 2011 Dopíšu tam Link to comment Share on other sites More sharing options...
Petr 44 Odesláno: 5. Červenec, 2011 Share Odesláno: 5. Červenec, 2011 Možná bys ještě mohl něco napsat o "!", k čemu slouží atd, on by se správně měl používat pouze při boolean ale většina lidí ho používá snad všude kde se dá. Také bych dopsal, že některé funkce vrací boolean hodnotu (IsPlayerConnected, ...) Jinak dobré. PS: Zařazuji do seznamu návodů Link to comment Share on other sites More sharing options...
DooM 93 Odesláno: 5. Červenec, 2011 Share Odesláno: 5. Červenec, 2011 Jo a jeste by bylo dobre kdybys tam udelal i ukladani Booleanu ptze hodne lidi s tim ma problemy Link to comment Share on other sites More sharing options...
Globální moderátor HighPrint 177 Odesláno: 5. Červenec, 2011 Globální moderátor Share Odesláno: 5. Červenec, 2011 Jenze ukladani booleanu zavisi na jakym principu ukladani ma, jestli dini, dubd, mysql, nebo vlastni takze to ukladani si budou muset udelat sami...( omlouvam se za text bez diakritiky ) a xmen oprav mi tam hrubku "promenne" na "promene" EDIT: nebo jak to ma byt vubec spravne? je vecer a dobre mi to nemysli Link to comment Share on other sites More sharing options...
DooM 93 Odesláno: 5. Červenec, 2011 Share Odesláno: 5. Červenec, 2011 Jenze ukladani booleanu zavisi na jakym principu ukladani ma, jestli dini, dubd, mysql, nebo vlastni takze to ukladani si budou muset udelat sami...( omlouvam se za text bez diakritiky ) a xmen oprav mi tam hrubku "promenne" na "promene" EDIT: nebo jak to ma byt vubec spravne? je vecer a dobre mi to nemysli Pokud si este spravne pamatuju tak bool ukladat pres dudb neslo jen pres Dini Link to comment Share on other sites More sharing options...
Globální moderátor HighPrint 177 Odesláno: 6. Červenec, 2011 Globální moderátor Share Odesláno: 6. Červenec, 2011 A co takhle to převíst do intergeru a potom zas zpátky do booleanu? btw děláme už OFFTOPIC Link to comment Share on other sites More sharing options...
Guest XmEn Odesláno: 6. Červenec, 2011 Share Odesláno: 6. Červenec, 2011 ":21qaxbdm]Možná bys ještě mohl něco napsat o "!", k čemu slouží atd, on by se správně měl používat pouze při boolean ale většina lidí ho používá snad všude kde se dá. Také bych dopsal, že některé funkce vrací boolean hodnotu (IsPlayerConnected, ...) Dopsáno Jo a jeste by bylo dobre kdybys tam udelal i ukladani Booleanu ptze hodne lidi s tim ma problemy Stejný názor jak HighPrint, navíc tohle je teoretická část. Link to comment Share on other sites More sharing options...
Guest Odesláno: 6. Červenec, 2011 Share Odesláno: 6. Červenec, 2011 Boolean zabírá v paměti 1bit zatímco hodnotné proměnné zabírá v paměti 32bitů To je dost velkej rozdíl. Není tohle blbost ? Bool zabíá 32Bit v paměti, a klasická proměnná podle řetězce .. Takže když mááme : new Link to comment Share on other sites More sharing options...
wroxx 37 Odesláno: 6. Červenec, 2011 Share Odesláno: 6. Červenec, 2011 Díky dobrý TuT... Konečne viem načo sa to využíva Link to comment Share on other sites More sharing options...
Guest XmEn Odesláno: 6. Červenec, 2011 Share Odesláno: 6. Červenec, 2011 new bool:neco; - Zabere 1b new neco; - Zabere 32b new bool:neco[MAX_PLAYERS]; - 500b new neco[MAX_PLAYERS]; - 16 000b Tak jaká blbost? ffredyk (13:03:39 6/07/2011) bool 32 bitů :D:D:D:D ffredyk (13:03:44 6/07/2011) to je nějaká blbost Link to comment Share on other sites More sharing options...
Guest Frodo Odesláno: 6. Červenec, 2011 Share Odesláno: 6. Červenec, 2011 Opravdu fešný tutoriál.. autor je machr! 10/10 Link to comment Share on other sites More sharing options...
GAMELASTERツ 73 Odesláno: 6. Červenec, 2011 Share Odesláno: 6. Červenec, 2011 Dobryyy, ten boolean je trocha ako php ! = false Link to comment Share on other sites More sharing options...
Globální moderátor HighPrint 177 Odesláno: 6. Červenec, 2011 Globální moderátor Share Odesláno: 6. Červenec, 2011 Dobryyy, ten boolean je trocha ako php ! = false http://cs.wikipedia.org/wiki/Boolean 2 ALGOL 3 Pascal 4 C# 5 Fortran 6 Objective-C 7 Ocaml 8 PHP 9 Python 10 Java Takže v podstatě skoro všude se to používá Link to comment Share on other sites More sharing options...
GAMELASTERツ 73 Odesláno: 6. Červenec, 2011 Share Odesláno: 6. Červenec, 2011 Dobryyy, ten boolean je trocha ako php ! = false http://cs.wikipedia.org/wiki/Boolean 2 ALGOL 3 Pascal 4 C# 5 Fortran 6 Objective-C 7 Ocaml 8 PHP 9 Python 10 Java Takže v podstatě skoro všude se to používá jj Link to comment Share on other sites More sharing options...
Skemr 0 Odesláno: 6. Červenec, 2011 Share Odesláno: 6. Červenec, 2011 Pěkný Tutorial Ale měl bych k tomu boolu ještě dotaz: Jak se dá udělat, aby byl bool, jako výsledná hodnota ve stocku? Myslel jsem si, že ve stocku může být jako výsledná hodnota vše(integer, string, float...), ale jak to vypadá, tak bool asi nejde. stock funkce() { return true; } public OnGameModeInit() { new bool:promena; promena = funkce(); return 1; } No a háže to tag mismatch. Jak je to možné? Díky Link to comment Share on other sites More sharing options...
-BJ-Boban88 0 Odesláno: 6. Červenec, 2011 Share Odesláno: 6. Červenec, 2011 Pěkný Tutorial Ale měl bych k tomu boolu ještě dotaz: Jak se dá udělat, aby byl bool, jako výsledná hodnota ve stocku? Myslel jsem si, že ve stocku může být jako výsledná hodnota vše(integer, string, float...), ale jak to vypadá, tak bool asi nejde. stock funkce() { return true; } public OnGameModeInit() { new bool:promena; promena = funkce(); return 1; } No a háže to tag mismatch. Jak je to možné? Díky Bool využívá jen true / false tudíš nemůže jako normální přeměnná něco vyolávat... stock Link to comment Share on other sites More sharing options...
Skemr 0 Odesláno: 6. Červenec, 2011 Share Odesláno: 6. Červenec, 2011 díky moc za vysvětlení Link to comment Share on other sites More sharing options...
Globální moderátor HighPrint 177 Odesláno: 6. Červenec, 2011 Globální moderátor Share Odesláno: 6. Červenec, 2011 A proč by to nešlo? Stačí to přeměnit na bool...Sice nevím k čemu ti to bude, ale dá se to. new bool:troll; stock funkce() { return true; } public OnGameModeInit() { troll = bool:funkce(); printf("%d",int:troll); /* nevím jak vypsat přes printf bool, takže jsem to přeměnil do intergeru jestli to vypíše "1" tak to funguje */ return 1; } Link to comment Share on other sites More sharing options...
Skemr 0 Odesláno: 6. Červenec, 2011 Share Odesláno: 6. Červenec, 2011 A proč by to nešlo? Stačí to přeměnit na bool...Sice nevím k čemu ti to bude, ale dá se to. new bool:troll; stock funkce() { return true; } public OnGameModeInit() { troll = [b]bool:[/b]funkce(); printf("%s",int:troll); // nevím jak vypsat přes printf bool, takže jsem to přeměnil do intergeru jestli to vypíše "1" tak to funguje return 1; } OO, jsi borec To že bych měl dát před funkci "bool:" by mně fakt nenapadlo. Moc jsi mi pomohl Link to comment Share on other sites More sharing options...
Globální moderátor HighPrint 177 Odesláno: 6. Červenec, 2011 Globální moderátor Share Odesláno: 6. Červenec, 2011 Vždyť v podstatě to přeměňujete furt, akorát si to neuvědomujete. Tím, že vytváříte proměnu už "bool:" tak jakoby proměnujete tu normální proměnu na boolean teda aspoň jsem to takhle pochopil v pawn Link to comment Share on other sites More sharing options...
Guest Odesláno: 7. Červenec, 2011 Share Odesláno: 7. Červenec, 2011 Takhle mi radil petr když jsem mu psal jak udělat text true/false přes booly: stock 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