Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Žebříček


Populární obsah

Showing content with the highest reputation since 17.10.2012 in all areas

  1. 11 points
    PawnPlus 0.8 Stažení | Dokumentace Představuji vám svůj nový plugin, který z Pawnu udělá moderní programovací jazyk, v němž bude radost programovat pro SA-MP. Přidáním nových konstruktů a "typů" rozšiřuje sílu jazyka, ale zachovává a dokonce i navyšuje jednoduchost programování. Shrnutí hlavních funkcí Řetězce Všichni to známe – řetězec je pole znaků s pevnou maximální délkou, kterou vždy musíme znát, pokud chceme s řetězci cokoliv provést. Odteď už ne! PawnPlus přináší dynamickou alokaci řetězců, které lze spojovat, rozdělovat, porovnávat či jinak upravovat. Možná si říkáte, k čemu je to dobré, když funkce SA-MP (např. SendClientMessage) vyžadují předání řetězce jako pole, ale počkejte – jde to! Tento plugin umožní přetvořit jakoukoliv funkci SA-MP (i jiných pluginů) na variantu, která místo polí bere nové řetězce a funguje naprosto stejně. Asynchronní programování Nebojte, žádná vlákna či race-condition, ale lehké asynchronní programování pomocí úloh, jehož vzorem je jazyk C#. Pomocí nového příkazu jazyka lze pozastavit průběh stávající funkce a odložit jeho vykonávání na jakoukoliv jinou dobu a mezitím spustit třeba něco jiného. Již žádné složité používání SetTimerEx, s tímto pluginem lze prostě ve funkci čekat, než nastane žádaná situace, a pak pokračovat. "Reflexe" Pawn sice není natolik pokročilý, aby umožňoval jakoukoliv reflexi, ale v tomto pluginu naleznete i pár funkcí, které umožní např. zavolat nativní funkci pomocí jejího jména jako řetězce, či navázání libovolné funkce na konkrétní událost serveru. Příklady Vytvoření, spojení a předání řetězců #include "PawnPlus.inc" //Původní SendClientMessageToAll(color, const message[]) upravíme tak, že všechny "const x[]" nahradíme "AmxString:x". native SendClientMessageToAllStr(color, AmxString:message) = SendClientMessageToAll; //Pomocná funkce vytvářející řetězec (jehož maximální velikost známe). stock String:GetPlayerNameStr(playerid) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); return str_new(name); } public OnPlayerConnect(playerid) { //Řetězce jsou reprezentované proměnnými se značkou "String". Lze je spojovat pomocí operátoru +. Funkce str_val umí převést libovolnou hodnotu na řetězec. new String:name = GetPlayerNameStr(playerid); new String:msg = str_new("Hráč ")+name+str_new(" (")+str_val(playerid)+str_new(") se připojil na server."); //Provede se zavolání funkce SendClientMessageToAll, jen místo druhého parametru se vezme dynamický řetězec namísto pole znaků. SendClientMessageToAllStr(-1, msg); } Rozdělení a porovnání řetězce //Obdobným způsobem upravena funkce SendClientMessage. native SendClientMessageStr(playerid, color, AmxString:message) = SendClientMessage; public OnPlayerCommandText(playerid, cmdtext[]) { new String:cmd = str_new(cmdtext); new String:name = cmd; new String:args = STRING_NULL; //Cyklus nalezne v řetězci mezeru a rozdělí jej na jméno a argumenty. new len = str_len(cmd); for(new i = 0; i < len; i++) { if(str_getc(cmd, i) == ' ') { name = str_sub(cmd, 0, i); args = str_sub(cmd, i+1); break; } } //Porovnání jména příkazu. if(name == str_new("/test")) { SendClientMessageStr(playerid, -1, args); //Vypsání argumentů. return true; } return false; } str_find a str_split bude v pozdější verzi. Pozastavení vykonávání funkce stock Odpocet() { SendClientMessageToAll(-1, "3"); wait_ms(1000); //Neblokující čekání (žádný cyklus). SendClientMessageToAll(-1, "2"); wait_ms(1000); SendClientMessageToAll(-1, "1"); wait_ms(1000); SendClientMessageToAll(-1, "0"); } //Poznámka: Čekání zablokuje vykonávání kódu až do nejbližší (externě vyvolané) funkce public. Pokud chcete, aby vnější kód pokračoval rovnou, použije CallLocalFunction. Čekání na libovolnou událost //Předělání funkce MoveObject tak, aby vracela úlohu, na niž lze "čekat" (tedy dokončení hýbání s objektem). stock task:MoveObjectTask(objectid, Float:X, Float:Y, Float:Z, Float:Speed, Float:RotX = -1000.0, Float:RotY = -1000.0, Float:RotZ = -1000.0) { //Úloha představuje abstraktní proces, který lze dokončit a jehož výsledkem může být nějaká hodnota. //task_new vytvoří novou prázdnou (nedokončenou) úlohu. new task:t = task_new(); //Zaregistruje novou "obsluhu" pro callback OnObjectMoved. Veřejná funkce SingleFireObjectTask se zavolá pokaždé, //kdy by se měla zavolat funkce OnObjectMoved a navíc se jí předá několik argumentů navíc. //specifikátor "e" značí předání ID nově vytvořeného objektu (to funkce pawn_register_callback i vrací). pawn_register_callback(#OnObjectMoved, #SingleFireObjectTask, "edd", t, objectid); MoveObject(objectid, X, Y, Z, Speed, RotX, RotY, RotZ); return t; } stock ObjectTest() { new obj = CreateObject(19300, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); print("Object created!"); //Proběhne čekání na úlohu; zbytek kódu se vykoná, až skončí. await MoveObjectTask(obj, 0.0, 0.0, 10.0, 5.0); print("Object moved!"); } //Nová obsluha události OnObjectMoved má navíc tři parametry (na začátku), jejichž hodnotu lze určit //v pawn_register_callback. Zbytek parametrů je z OnObjectMoved. forward SingleFireObjectTask(callback:id, task:task, obj, objectid); public SingleFireObjectTask(callback:id, task:task, obj, objectid) { if(obj == objectid) { //Pokud se pohnul objekt, na nějž je zaregistrovaná tato obsluha (uloženo v parametru obj), obsluha se odregistruje pawn_unregister_callback(id); //a úloha, která k ní náleží, je nastavena na hotovou (s nějakým výsledkem). task_set_result(task, objectid); } } Technické informace Jak to celé funguje? Technologie, na které celý tento plugin staví, se nazývá hookování. Hookování principiálně umožňuje přepsat kód nějaké funkce vlastním kódem, který se spustí místo něj. Díky patří Zeexovi za jeho knihovnu subhook. Tak například každá nativní funkce, která bere řetězce, používá funkci amx_GetAddr z API AMX. Tato funkce očekává adresu nějaké proměnné uvnitř stroje AMX a vrací ukazatel, který na ni ukazuje (to lze zapsat jako DAT+addr, kde DAT je ukazatel na počátek datové sekce stroje AMX, jenž lze získat z takto pojmenovaného registru). Tato funkce se musí zavolat vždy, když v Pawnu předáváme nějakou adresu (výstupní proměnné či pole) a na hookování je tedy ideální. Pokud AMX zjistí, že addr neukazuje dovnitř datové sekce, vrátí chybu, a pak přichází na scénu nový kód pluginu, který místo vrácení chyby interpretuje adresu jako (nějaký) identifikátor dynamicky alokovaného řetězce a ukazatel na jeho znaková data úspěšně vrátí. Tak se navenek každé funkci jeví předaný argument jako správný, ale když dojde na získání ukazatele, namísto dovnitř AMX ukazuje vrácené číslo na data pluginu. Zbývá maličkost, tedy zařídit, že addr bude pro dynamické řetězce ukazovat vždy do paměti, která je mimo AMX (sice to téměř jisté, ale nikoliv zaručené). Zde se uplatňuje vlastní tag AmxString, za nímž stojí funkce str_addr. Ta z ukazatele na řetězec spočítá relativní ofset vůči datové sekci stroje AMX, takže pro ukazatele mimo datovou sekci bude vytvořené číslo vždy chybné pro normální funkci amx_GetAddr. Funkce amx_Exec se zase volá vždy, když chce server spustit kód v AMX. AMX samotné podporuje předčasné ukončení vykonávání funkce pomocí vyvolání chyby a jedna taková chyba je i AMX_ERR_SLEEP (lze ji vykonat příkazem sleep v Pawnu), která značí, že se kód může obnovit. Jelikož hookuji každé volání amx_Exec, mohu to okamžitě zjistit a průběh vykonávání obnovit, aniž by o tom byl informován server. Zbývá vyřešit jediný problém – uložený obnovovací stav AMX je jen jeden a při jiném volání se zruší. Proto si plugin ukládá veškerou dynamickou paměť AMX (halda a zásobník) a registry k sobě, jakmile je výkon funkce pozastaven, aby nedošlo ke ztrátě. Při obnově je potom paměť AMX dočasně vrácena do původního stavu a spouštění původní funkce se obnoví. Funkce pawn_register_callback funguje pomocí hookování amx_Exec a amx_FindPublic, jež se zavolá vždy, když je třeba zjistit index veřejné funkce v AMX. Pokud je na název callbacku registrována nějaká obsluha, místo skutečného indexu se vrátí záporný index, který je následně identifikován v amx_Exec, která napřed vykoná příslušné obsluhy zjištěné z tohoto indexu. Řetězce a garbage collection Jak známo, každá dynamická alokace musí mít svoji dealokaci, jinak by začala unikat paměť, ale tady jsem si vesele používal str_new a žádnou dealokaci jsem neřešil, ačkoliv použitá paměť byla nová. Jak je to možné? Řetězce mají svůj vlastní garbage collector, který se stará o jejich mazání. Ve skutečnosti existují dva druhy řetězců – lokální (dočasné) a globální. Lokální řetězce jsou jejich nejčastější typ (String) a jejich existence je omezena po dobu výkonu nejvyššího callbacku. Je-li např. do skriptu vstoupeno callbackem OnPlayerConnected, všechny nové lokální řetězce existují po celý běh této veřejné funkce a jakmile ta skončí, smažou se. Pozor! – jakmile funkce skončí, použití jejích lokálních řetězců způsobí pád serveru. Řetězce se mažou jen po skončení nejvyšší veřejné funkce, takže pokud se ve skriptu skáče pomocí CallLocalFunction/CallRemoteFunction, vnitřní řetězce existují i po skončení vnitřních funkcí public. To ovšem neplatí pro SetTimer, jelikož vnitřní funkce se zavolá až po skončení vnější. Životnost lokálních řetězců není prodloužena ani pomocí asynchronních funkcí, neboť samotný callback je ukončen prvním čekáním. Proto existují globální řetězce, které nejsou automaticky mazány. Jejich použití je ale nebezpečné, neboť se musíte postarat o jejich smazání; musíte myslet na každé místo, kde by byl globální řetězec. Příklad: native print_s(AmxString:string) = print; new GlobalString:str; public OnFilterScriptInit() { str = str_new("Goodbye world!"); } public OnFilterScriptExit() { print_s(str); str_free(str); str = STRING_NULL; } Globální řetězce jsou označeny tagem GlobalString a převod na ně je automatický, pokud do takto značené proměnné přiřazujete. Lze toho docílit i voláním funkce str_to_global. Všechny funkce fungují stejně pro globální i lokální řetězce. Místo str_free můžete použít i funkci str_to_local, jež naopak vrátí řetězec do lokálního prostoru. To doporučuji použít v kombinaci s asynchronními funkcemi: public OnFilterScriptInit() { new String:str = str_new("Hello world!"); str_to_global(str); wait_ms(1000); str_to_local(str); print_s(str); } Mutabilita řetězců Řetězce jsou mutabilní, tedy měnitelné (až na jednu výjimku – STRING_NULL). To znamená, že některé funkce (například str_del) pouze upravují existující řetězec, takže pokud s ním pracují jiné funkce, dostanou jiná data. To lze vyřešit vytvořením nového řetězce (např. přes str_clone) nebo použitím funkcí, které samy o sobě tvoří nový řetězec (např. str_sub). STRING_NULL má speciální chování. Lze jej použít na místě normálního řetězce a všechna volání proběhnou úspěšně, ale jeho délka je vždy nulová. Funkce jako str_resize nebo str_set na něj tedy nemají žádný vliv. str_clone a jiné vytvářející funkce ale vždy udělá řetězec nový (a normální). Návratová hodnota asynchronní funkce Funkce obsahující čekání skončí vlastně předčasně a v takovém případě je nutno vrátit kontrolu serveru. Jelikož ale server očekává od funkce nějakou hodnotu hned, na případný příkaz return nemusí vůbec dojít. Od toho je tu funkce yield, jež navrátí hodnotu volajícímu kódu okamžitě: public OnFilterScriptInit() { new ret = CallLocalFunction(#Func, ""); printf("%d", ret); } forward Func(); public Func() { yield 12; wait_ms(1000); return 13; } Program vypíše 12 hned po spuštění. Návratovou hodnotu zbytku funkce (či z dalších volání yield) zatím nelze nijak odchytit, ale očekávám přidání něčeho na způsob coroutines v Lua (task_create z veřejné funkce a await, který lze zavolat vícekrát na takovou úlohu). Něco divného na mém kódu? await a yield jsou funkce, ale používám je jako příkazy. Pawn umožňuje vypustit závorky z takového volání, což vypadá rozhodně lépe. Také používám výraz typu #Func, což známe z maker, a je to totéž jako prosté "Func". Pokud řetězec je zároveň jméno funkce, líbí se mi toto použití pro odlišení.
  2. 11 points
    Ahoj všem! Chtěl bych vám ukázat video z posledního updatu na WTLS - plně ovladatelný jeřáb a job jeřábníka.
  3. 10 points
  4. 9 points
    kingsofsa.cz:8888 Server, kde se dá dělat všechno. Ať už je vaší oblíbenou činností závodění, zabíjení, natáčení, stavění, roleplay či jenom testování skinů, na tomto módu můžete cokoliv. Pomocí široké škály funkcí a příkazů můžete vytvářet vlastní objekty, vozidla, prozkoumávat celé San Andreas od tajných interiérů až po konec světa. Jen fantazie je vaší hranicí. Nepřetržitý vývoj od roku 2009. Bez žádných omezení či zákazů toho, co můžete dělat (CLEO apod. povoleno). Autor vyhrál soutěž o nejlepšího pawnera. ;-) Můžete si nastavit čas, počasí i gravitaci podle sebe. Dejte si tolik zbraní a peněz, kolik chcete. Celé San Andreas jen pro vás – systém vlastnictví virtuálních světů vám umožní nerušeně hrát s lidmi, kterým to umožníte, a měnit vlastnosti hry i světa pro všechny hráče v něm. Obsahuje všechny objekty, vozidla, skiny, zbraně i animace, vše okamžitě přístupné. Jaký způsob hraní vám vyhovuje, je jen na vás. Nastavte si vlastní jméno a vrhněte se na roleplay (rozšířená sada příkazů), nebo si vytvořte autodílnu a tuňte vozidla ostatním hráčům. Některé trailery na jiné servery pocházejí ve skutečnosti z KSA. Pomocí spousty příkazů můžete pohybovat s kamerou nebo nahrávat a vytvářet NPC. Chodci – ovladatelné postavy, které můžou chodit, jezdit či útočit na váš rozkaz. Vytvořte si auto s raketovým pohonem, majákem, přídavnými střílnami či vlastními texty. Vše je sice jen kosmetické, ale fantazii se meze nekladou! Postavte si vlastní dům či vozidlo a uložte si ho, abyste ho příště mohli lehce vytvořit. Připojte na sebe jakékoliv objekty a vytvořte oblečení pro supervojáka, démona nebo čaroděje. Systém vlastních map přidává do San Andreas chybějící křoví a stromky, a nebo sníh po celém světě. Vše lze okamžitě zapnout i vypnout. Ovládejte všechny brány a výtahy po San Andreas. Lehké a okamžité pouštění hudby z YouTube. Lze spustit i všem lidem ve světě nebo v týmu. Piškvorky a jiné minihry! Pozvěte si hráče, postavte trať a lze hned závodit. Server používá pluginy YSF (který vyvíjím), FCNPC a streamer. Využívá možnosti SA-MP na maximum. Půlnoční filosofické debaty se mnou... A mnoho dalšího! Přijďte se podívat, těšíme se na vás! Videa Ukázky
  5. 8 points
    Ahoj všem! Na náš 0.3.DL server WTLS 4 byla přidána plně ovladatelná jachta. Tato jachta je z GTA Vice City (Cortezova jachta) a obsahuje celou řadu featur jako možnost spustit člun v zadní části lodi, vypít víno, sníst humra, uložit peníze do sejfu nebo uložit zbraně do bedny se zbraněmi. Na horní palubě můžete spustit rádio, které slyší i ostatní hráči. Jachta má několik různých barevných variant. Na WTLS jsem chtěl jachtu z GTA Vice City už v roce 2008, kdy bylo WTLS spuštěno, ale teprve teď díky verzi 0.3.DL je to možné
  6. 7 points
    Patrně se vám již stalo, že jste otevřeli soubor, aniž byste ho poté zase zavřeli, či jste zapomněli smazat výsledek dotazu SQLite apod. Možná z vyšších programovacích jazyků znáte příkaz using či try-with-resources a litujete, že něco takového není i v Pawnu. To ale může být! #define using(new%9\32;%0:%1=%2) for(new %0@guard:guard@%1=(%0@guard:%2),%0:%1=(%0:guard@%1);_:%1!=cellmin;_:%1=cellmin) Stačí tento řádek, abyste hned mohli vesele začít používat using na libovolné výrazy, jakmile dodefinujete destruktor. Je pravděpodobné, že jste o destruktorech ještě neslyšeli, poněvadž v dokumentaci o nich není ani zmínka, ale principiálně se jedná o něco podobného, jako je automatické mazání proměnných v C++. Pokud má určitý tag definován destruktor, zavolá se tento v momentě, kdy je ukončen blok obsahující proměnnou s tímto tagem. Jednoduchý destruktor příkazu using pro tag File: vypadá takto: stock operator~(File@guard:arr[], count) { for(new i = 0; i < count; i++) { if(_:arr[i] != 0) fclose(File:arr[i]); } } Destruktor dostane jako parametr pole všech hodnot, které opustily blok, a jeho velikost. Tento destruktor se tedy zavolá vždy, pokud proměnná s tagem File@guard: (to je jen název) opustí blok. Makro using zařídí, že taková proměnná bude existovat vždy, když se takový blok otevře, a destruktor se zavolá při každém vyskočení z bloku. Např. příkaz using(new File:f = fopen("file", io_read)) se přetransformuje na toto: for(new File@guard:guard@f = File@guard:fopen("file", io_read), File:f = File:guard@f; _:f != cellmin; _:f = cellmin) Toto zneužívá sémantiku cyklu for k tomu, aby spustilo nějaký kód na začátku a na konci bloku. Napřed se vytvoří dvě proměnné - guard@f a f. První obsahuje vrácenou hodnotu, druhá její kopii. Hodnota cellmin je použita jako ukončovací; na konci bloku je nastavena a v dalším průchodu ukončí cyklus. Mohl bych použít klasický for s jednoprvkovým intervalem, ale tohle mi přijde elegantnější. Teď k té důležité části: jakmile řízení opustí cyklus, proměnná guard@f zmizí a tedy se spustí její destruktor, který zavře soubor. Zbývá otázka - k čemu destruktor? Pokud mohu vyvolat kód na konci bloku, proč smazání nedám tam? Proto: using(new File:f = fopen("f", io_read)) { return; } Bez destruktorů by se soubor nikdy nezavřel, protože řízení opustí funkci ještě před ukončením cyklu. Naopak destruktor je vyvolán i v případě, kdy se cyklus opouští násilně, tedy příkazem break, return nebo exit (ale ne goto a sleep). Díky tomuto se chová using tak, jak by měl.
  7. 6 points
    RALLY SCRIPT Spolu s tímom C-RP sme v posledných dňoch pracovali na novej feature využiteľnej napríklad pri eventoch a to rallye tuning vozidiel - pridáva 4 upravené vozidlá (Landstalker, Blista Compact, Sultan, Club) ktoré sú vybavené na jazdu rallye. Script zahŕňa rôzne funkčné objekty na aute (polepy od sponzorov, lampy) ktoré fungujú rozlišne podľa užívateľa a nastavenia administrátorom. Každé vozidlo má jedinečné očíslovanie. V scripte sa nachádza simulovaný efekt streľby z výfuku zachytený na videách nižšie. Všetky objekty a modely (okrem upravených OffRoad kolies, ktoré sú modifikácia) sú na serveri a vidia ich všetci hráči, nevyžadujú žiadne modifikácie. Tento script nájdete po spustení plnej verzie (aktuálne open beta) na https://california-rp.eu
  8. 6 points
    Zdravím vás přátelé, poslední týden jsme jednali společně s @lvalenta o prodeji fóra. Tímto bychom rádi oznámili, že prodej je úspěšně zakončený a já tímto oznámením přebírám vlastnictví fóra. Chtěl bych zároveň poděkovat Lukášovi za zachování fóra a této komunity v podobném stavu jako mu ji předal chytrák a nevytvořil z toho žádný komerční produkt zaměřený na výdělek Každopádně, rád bych toto fórum znovu probudil a vytáhl na výsluní stejně jako za dob rozkvětu GTA:SA a s tímto budu potřebovat nejen pomoc admin týmu, ale i vás jako komunity. Určitě nehodlám měnit původní jádro fóra a komunity, ale každopádně budeme muset provést mírnou restrukturalizaci a dodat fóru nový dech a směr. Doufám, že společně fórum opět probudíme a posuneme ho směrem, který jej opět zařadí mezi špičkové komunity nejen programátorského, ale i herního světa.
  9. 6 points
    Určitě jste si všimli , že jsme prodělali jakýsi rollback o zhruba rok a půl. Původcem tohoto rolbacku jsem bohužel já. Moc rád bych to měl na koho hodit ale je to má chyba. Co se stalo ? Inu čistil jsem iíspcofig od projektů , které již byli hotové nebo jinak uzavřené a mazal jsem i databáze. Bohužel mezi nimi byla databáze s názvem c4_pawnotemp což byla produkční databáze tohoto webu. Díky přívlastku temp jsem si ničeho nevšiml a pokračoval v mazaní. Dostal jsem se k i mazání záloh ( ktere jsem jinak dělal každé 4 hodiny ) a z lenosti vymazal cely obsah složky ( cca 18,5 TB databázových záloh ) a šel spát. Bohužel druhý den ráno mi Spy donesl tu příšernou informaci o tom , ze forum neběží. Instatně mi došlo co se stalo a kdo za to může ( já ), Snažil jsem se soubory obnovit bohužel provider se do klientských serverů nemontuje tím pádem nedělají ani interní zálohy klientských strojů. Nejnovější zálohu databáze kterou se nám podařilo vyhrabat zde vidíte a je vázaná k datu 18.08.2018. Novější zálohu nikdo z moderátorů bohužel nemá protože spoléhali na mé systémové zálohy. Co je tedy celé co se stalo... Viníkem jsem já a má nepozornost a krátká paměť. Částečně se ještě pokusím fórum zrestaurovat pomocí waybackmachine minimálně po stránce rozložení.
  10. 6 points
    Hunterov úvod do bezpečnosti Základné tipy, ako zabezpečiť svoj počítač a svoje online účty. Tento návod predpokladá, že používate Windows. Toto nieje návod na štýl krok po kroku, skôr ide o súhrn vecí, ktoré by ste mali spraviť a aplikácií, ktoré vám s tým môžu pomôcť. Návody, ako jednotlivé kroky spraviť nájdete tipicky v odkazoch, ktoré som priložil, alebo pomocou Googlu. Ak máte nejaké pripomienky, napíšte mi ich prosím a ja tento návod prípadne upravím. 1 Základy Základné triky, ako zabrániť niekomu, aby sa dostal na vaše webové účty. 1.1 Bezpečné heslá Základom bezpečnosti je zvoliť si bezpečné heslá. Určite vám ludia povedali, že bezpečné heslo musí mať aspom 8 znakov, že musí obsahovať malé a velké písmená, čísla, znaky, hieroglify, motivačný slogan. Neverte im, sú to americký sabotéry. Takéto heslá sa ťažko pamätajú a niesu nijak zvlášť bezpečné. Ak chcete bezpečné heslo, nájdite si najbližší slovník a náhodne z neho vyberte 4 slová, odstráňte diakritiku a ak chcete ich vysklonujťe alebo ich nechajte tak a máte svoje heslo. Napríklad: "StolickaKlameVyslednemuRazu". Takéto heslo si oveľa jednoduchšie zapamätáte ako napríklad "qeP2Ub%L" a hádajte čo? Je aj bezpečnejšie. Ak váš slovník má 10 000 slov, tak sila tohoto hesla je 53 bitov, zatiaľ čo náhodné 8 znakové heslo má 50-52 bitov. A na rozdiel od náhodného hesla ho nemusíte mať napísané na lístočeku vedľa počítača, kde ho môže hocikto nájsť. 1.2 Správca hesiel (KeePass) No ale aj takýchto pekných hesiel si veľa nezapamätáte a používať rovnaké heslá na viacerých webstránkach je veľmi nebezpečné, preto je vhodné používať správcu hesiel (Password Manager). Já osobne odporúčam KeePass. KeePass vám vytvorí náhodné heslá a zašifrované vám ich uchová vo vašom počítači. Vaše heslá zostavajú u vás v PC, takže sa nemusíte báť, že niekto hackne KeePass, alebo, že KeePass prestane fungovať a vy o vaše heslá prídete, ako tomu je u podobných služieb od iných poskytovateľov. Ja osobne ukladám svoju databázu hesiel na Google Drive (Teraz tomu vraj hovoria google backup and sync? Čo tý ľudia v tom marketingovom oddelení hulia, keď si myslia, že takýto názov je lepší ako Drive fakt netuším. Kto vám v bežnej konverzácie bude hovoriť "Dám ti to na google backup and sync."?!). Vďaka tomu ju jednak nestratím, ak mi napríklad odíde disk na PC a jednak ju môžem používať na telefóne pomocou Keepass2Android. Ak máte svoju databázu v Google Drive neukladajte do nej heslo od Google, pretože sa k nemu bez tohoto hesla aj tak nedostanete. Takto by ste mohli prísť o všetky svoje heslá! Nemusíte sa báť, že by Google mal prístup k vašim heslám, databáza hesiel je šikovne šifrovaná pomocou vašeho hlavného hesla a používa taktiež PIM1. Každopádne taktiež používam rozšírenie ChromelPass, ktoré heslá píše z KeePass priamo do webových stránok, lebo lenivosť. Pozor: Heslo z KeePassu sa nedá resetovať, pretože ho nikto okrem vás nevie a databáza sa bez neho nedá nijak dešifrovať. 1.3 Antivirový program Dobrý antivírový program je základ pre bezpečnosť a je to jediná oblasť v tomto návode, kde by som odporučil zaplatiť nejaké peniaze, ak chcete byť naozaj v bezpečí. Ja osobne používam ESET Smart Security (zrejme zas premenovali na Internet Security, meh), ktorý je platený, ale som veľmi spokojný. Jednoduchá inštalácia a funguje bez nejakého extra nastavovania, čo je obzvlášť plus, ak nieste bezpečnostný expert a všetkým tým zložitým nastaveniam nerozumiete. Jediná vec, ktorú by ste mali vypnúť pri inštalácii je "detekcia potenciálne nechcených aplikácií", čo v preklade znamená, že vám ESET bude vrieskať na každú blbosť ako crack, cheat a podobne. A na detekciu takýchto vecí ja aj tak lepší MawareBytes, o ktorom hovorím v sekcii 1.5. Je dostupných taktiež viacero programov, ktoré sú zadarmo, ale s týmy, ktoré som skúšal som vždy mal nejaké problémy a neviem vám doporučiť žiadny najlepší. Jediné čo k tomu poviem je, držte sa ďalej od McAfee. Myslým, že oni tú predponu anti v slove antivírus pridali len preto, aby zmiatli súpera... Taktiež nepoužívajte 2 antivírové programy naraz, viď. sekcia 1.5. 1.4 2FA (Dvojfázové overenie) Niektoré webstránky umožňujú používať takzvané dvojstupňové overenie (Two Factor Authentication, 2FA). 2FA znamená, že sa pri prihlásení okrem hesla musíte ešte overiť pomocou napríklad svojho telefónu. Vysoko odporúčam si 2FA aktivovať minimálne pre váš Google účet (pamätajte, že na ňom máte databázu všetkých svojich hesiel, aj keď šifrovanú, ale heslo vám niekto môže dopozerať, keď ho píšete) a na váš mail (ak používate Gmail, tak máte 2 v jednom), pomocou ktorého vám niekto môže restovať všetky vaše heslá a dostať sa všade. POZOR: Vytvorte a odložte si záložné kódy!!! Ak sa niečo stane s vaším telefónom (stratíte, utopíte, pokazí sa) a nebudete mať záložné kódy, tak sa nedostanete do svojich účtov a všetko stratíte. Kódy od Google si vytlačte, najlepšie v dvoch kópiách a uložte na bezpečné miesto, prípadne jednu kópiu môžete nosiť v penaženke. Ostatné kódy si môžete uložiť napríklad aj do KeePass do poznámok k heslám. Neukladaje tam kódy od Google, keďže vaša databáza je na Google drive!! Pretože na Google drive a tým pádom ani do KeePass sa bez nich potom nedostanete. 1.5 MalwareBytes MalwareBytes je veľmi užitočný nástroj na skenovanie počítača. Na rozdiel od bežných antivírov je veľmi dobrý v hľadaní menej nebezpečných, ako napríklad rôzne reklamné vírusy, ktoré vám neustále zobtazujú nejaké stránky pre dospelých a podobne. Odporúčam si ho nainštalovať a spustiť sken raz za čas. Neodporúčam vám si zaplatiť za prémiovú verziu. Prémiová verzia vám iba umožňuje používať MalwareBytes ako bežný antivír. Avšak MalwareBytes nieje až tak dobrý v zastavovaní vírusov a používať dva antiviráky nieje dobrý nápad. Jednak zbytočne spomalíte svoj počítač. Ale hlavne dva antivíry sú ako dve frajerky, je fajn mať jednu trvalo a jednou... skenovať... raz za čas, ale skúsiť ich obe nasťahovať k sebe domov by dopadlo zle. Neustále by sa hádali a mohlo by to byť nakoniec horšie, než mať len jednu. 1.6 HTTPS a VPN Každý, kto sa dokáže pripojiť medzi vás a internet dokáže odpočúvať a aj meniť, čo odosielate a prijímate a to vrátane hesiel. To zahŕňa nielen vašeho providera internetu, ale napríklad aj každého s prístupom k vašemu routeru. Ak router nieje správne zabezpečený, môže to dokonca zahŕňať každého, kto je k routeru len pripojený. Preto je potreba používať HTTPS všade, kde to je možné. HTTPS šifruje vaše spojenie a vďaka tomu zabraňuje odpočúvaniu aj meneniu. Avšak nie všetky weby poskytujú https. Ak chcete bezpečne navštevovať aj tie, môžete použiť VPN. VPN šifruje vaše spojenie a vďaka tomu zabraňuje špehovaniu od všetkých vyššie vymenovaných lumpov. Ale pozor: Váš poskytovateľ VPN vidí všetko, čo by normálne videl váš internetový provider. Preto je dôležité si vybrať VPN, ktorá aspoň tvrdí, že neukladá žiadne údaje, aj keď toto tvrdenie sa nedá overiť. Preto neprestaňte používať HTTPS aj keď máte VPN. VPN má taktiež tú výhodu, že skryje vašu IP adresu. 1.7 Vypnite RDP Vypnite RDP! RDP je niečo ako Team Virewer len horšie a vstavané priamo vo Windowse. Často to je zapnuté defaultne. Vypnite to! A keď hovoríme o TeamVirewery, ten vypnite tiež, keď ho nepoužívate. Alebo ak neviete ako, tak ho rovno odinštalujte. Keď ho budete potrebovať znovu tak o pol roka, tak ho proste nainštalujete znovu. Aspoň budete mať najnovšiu verziu. PS: Ak RDP naozaj potrebujete, zvazte jeho zablokovanie na firewalle PC a tunelovanie cez SSH. Touto metodou odstranite vacsinu problemov, ktore nastavaju pri beznom pouziti RDP. Usitite sa, ze mate SSH spravne nastavene. 2 Silnejšie zabezpečenie (porazte súrodencov, aj FBI) Ako zabezpečiť svoj PC, ak sa útočník dokáže k nemu dostať fyzicky. 2.1 VeraCrypt Používať heslo na Windowse je asi tak efektívne, ako nalepiť lístoček s textom "Nepoužívať bez povolenia" na monitor. Nástroje ako OphCrack dokážu prelomiť aj 16-miestne heslá za niekoľko minút. A dané heslo nakoniec ani nepotrebujete. Stačí vybrať disk a pripojiť ho k inému PC alebo nabootovať iný operačný systém z CD/USB a možete prechádzať všetky súbory bez hesla. Jediný spôsob, ako tomuto zabrániť je šifrovať svoj disk a to umožnuje open-source program zvaný VeraCrypt. VeraCrypt je nasledovník TrueCryptu, keďže vývojári TrueCryptu sa dobrovoľne rozhodli projekt ukončiť a odporučiť všetkým, aby používali bitlocker (Určite americké tajné služby v tom nemali prsty, určite ich nepresvedčili, že odovzdať všetku moc Microsoftu je dobré pre ich zdravie). VeraCrypt dokáže šifrovať celý disk, alebo len niektoré súbory, alebo aj oboje rôznymi heslami. Taktiež používa PIM1 a dokáže aj vytvárať takzvané skryté sekcie. To umožňuje v podstate skryť súbory do iných šifrovaných súborov. Takže povedzme, že máte rôzne nelegálne hacky v PC a niekto vás dotiahne pred súd. Sudca vám prikáže rozšifrovať zašifrované súbory, inak vás pošle do vezenia, až dokým nevyzradíte heslo. A tak mu vaše heslo poviete, lenže všetko čo nájde sú len rôzne por... exotické videá. Naštvaný prokurátor sa vás opýta, aké je heslo k vašim skrytým súborom v týchto súboroch, ale vy mu poviete, že tam žiadne niesu. A to, či tam sú sa nijako nedá zistiť, takže vás musia pustiť. Potom si len zadáte svoje druhé heslo do VeraCryptu a veselo si hackujete ďalej. Je ale kritické, aby ste PC vypli, než sa k nemu niekto dostane, keďže heslo sa zadáva len pri zapnutí PC a zapnutý PC môže používať každý. 2.2 BitLocker Nepoužívajte bitlocker. Ak vás zaujíma prečo, čítajte ďalej, ak nie, preskočte na ďalšiu sekciu. Bitlocker je šifrovacia aplikácia podobná VeraCryptu, ktorá je vyrobená Microsoft a pribalená priamo v niektorých Windowsoch. BitLocker síce funguje podobne ako VeraCrypt, ale s tým rozdielom, že keď niečo zašifruje, tak kľúče odošle priamo Microsoftu. Takže v predchádzajúcom príklade o súde sudca dostane všetky klúče hneď od Microsoftu a nemusí sa vás pýtať na nič. Hneď idete bručet. A nielen to, ale stačí aby niekto napríklad získal vaše heslo od Microsoft účtu, alebo mailu, alebo nejak inak presvedčil Microsoft, že ste to vy a môže vám resetovať heslo. 2.3 Windows Heslo V sekcii 2.1 som napísal, že windows heslo samé o sebe je úplne neefektívne a to je aj pravda. Avšak Windows heslo môže byť užitočné v kombinácii s napríklad VeraCryptom. VeraCrypt pýta heslo len keď zapnete počítač. Lenže od zapnutého počítača musíte často na chvíľu odísť. Preto je vhodné si na tú chvíľu zhačknúť widnows+L alebo ctrl+alt+del alebo a vybrať "zamknúť". Obísť windows heslo bez vypnutia PC je zložité, aj keď nie nemožné. Pre Windows heslo vám stačí niečo jednoduché, napríklad len pár čísiel, alebo jedno dve slová/mená. Úlohou tohoto hesla je len odradiť náhodné mašírovanie od súrodencov, spolubývajúcich a kolegov na tú chvíľu, kým ste preč od PC. Môžete si taktiež nastaviť, aby sa vám PC zamkol po niekoľkých minútach bez používania. 2.4 Heslo na telefóne Pre androiďákov tu, ak chcete mať svoj telefón v bezpečí, je nutné si zapnúť šifrovanie telefónu v nastaveniach a taktiež šifrovanie karty SD, ak nejakú máte a chcete ju v bezpečí. Používanie odtlačku prstu nestačí, keďže odtlačky sa zatiaľ nedajú použiť na šifrovanie. Ak používate biometriku, nieje zlý nápad si taktiež stiahnuť aplikáciu typu FindMyPhone alebo niečo podobné, ktorá vám umožní zamknúť telefón na heslo na diaľku. Taktiež si pamätajte, že pre súd je ťažké a vo veľa krajinách nelegálne vás donútiť vyzradiť heslo, ale jednoduché vás donútiť priložiť prst k snímaču, alebo zobrať vaše odtlačky. 2.5 Súkromný chat (s telefónnym číslom) Pre bezpečný chat momentálne platí jednoduché pravidlo, čím bezpečnejšie, tým menej vychtávok ako napríklad nálepky a menej ľudí, ktorý to používajú. Najpoužívanejšia chatová aplikácia, ktorá je aspoň ako tak bezpečná je Messanger, keď používate tajné konverzácie. Messanger používa Signal protokol. Tento protokol je považovaný za veľmi bezpečný, avšak to, že používate tajné konverzácie je nápadné a FB ukladá metadáta. To znamená, že FB nevie, o čom si píšete, ale vie, kedy, s kým, ako dlho, koľko správ a približne ako dlhých. To nieje ideálne. Taktiež to funguje len cez telefón, nie PC. Taktiež vám appka pre telefón z telefónu kradne telefónne čísla a odosiela vašu polohu GPS. Druhá často používaná aplikácia je WhatsApp. Táto aplikácia používa Signal protokol na všetky konverzácie, aj na hlasové hovory. Avšak WhatsApp je momentálne vlastnený Facebookom, takže FB taktiež zbiera vaše metadáta (kdo, kde, kedy, s kým, koľko, ako dlho). Taktiež pre FB kradne vaše telefónne číslo, ako aj čísla všetkých vašich kontaktov v telefóne. Či kradne vašu GPS polohu momentálne neviem. Najbezpečnejšia, ale najmenej populárna apka je Signal. Áno, apka menom Signal používa Signal protokol na všetko. Ide o appku priamo od vývojárov Signal protokplu a verejne ju chválil aj Edward Snowden. Signal zaručuje, že neukladá žiadne metadáta ani telefónne čísla vašich kontaktov (aj keď ich odosielať pre fungovanie musí). Signal je Open-Source aplikácia a jej kód, vrátane kódu serveru si teda môžete overiť. Signal momentálne pracuje na spôsobe, ako overiť, že servery naozaj používajú zverejnený kód (a nie kód, ktorý ukladá informácie) pomocou Intel Trusted Platform. 2.6 Súkromný chat (bez telefónneho čísla) Bohužial, aplikácií ktoré nevyžadujú telefónne čisla nieje veľa a sú pomerne neznáme a nepoužívané. Ja osobne som zatiaľ skúšal Wire a Tox. Obe su open-source, ale ani jedna z nich ma nijak moc nenadchla. Wire je aplikácia, ktorá je zadarmo pre ľudí a platená pre firmy. Naposledy keď som ju skúšal bola plná bugov (aj keď na nej od tej doby zrejme zapracovali). Prešla však nezávislým auditom, čo znamená, že by mala byť relatívne bezpečná. Tox je nekomerčný projekt a používa P2P technológiu miesto serverov, takže nikto nemôže získavať metadáta. Avšak to taktiež znamená, že nemôžete poslať správu niekomu, kto nieje online, keďže nieje žiadny server, ktorý by mu ju zatiaľ podržal. Taktiež Tox neprešiel žiadnym auditom a jeho tvorcovia sa chovajú dosť nevhodne, čo sa bezpečnej aplikácie týka. Preto bezpečnosť toxu je značne pochybná. 3. Poznámky 1. PIM (Personal Iteration Multiplier) spôsobuje, že prevedenie hesla na kľúč trvá nejakú dobu, v prípadne KeePass 1-2 sekundy. Preto sa zdá, že otváranie KeePassu je pomalé. Ale vďaka tomu niekto, kto tipuje heslá taktiež musí čakať na každý pokus 1 sekundu (na každom jadre CPU, ktoré má). Takže napríklad prelomiť osemmiestne heslo, ktoré je len z číslic (napr. 8428 1158) by normálne trvalo na bežnom PC 5-10 minút bez PIM a cca 4 roky s PIM. PIM je super!
  11. 6 points
    História: Pôvodný herný mód San Francisco Bay bol vytvorený v roku 2009 ex-pawnerom vystupujúcim pod prezývkou _BuLLeT_. Od počiatku server náležal a bol sprostredkovaný portálom Crew Zone. V roku 2012 však mód začal upadať a tak sa rozhodovalo o tom, či bude mód ďalej pokračovať ako TDM, alebo roleplay. Komunita nakoniec rozhodla o roleplayi a tak sa začal vyvíjať prvý československý roleplay gamemód, ktorým bolo SFB-RP v1.2. Mód obsahoval mnoho chýb a nedostatkov, tie sa ale počas tých rokov podarilo obmedziť na ich minimum. Po vydaní verzie 1.3 sa _BuLLeT_ rozhodol ukončiť svoje pôsobenie na vývoji SFB-RP a začal vyvíjať nový mód, Tales of War. Vývoja módu sa následne ujal _NosiK_, pretože vtedajšia komunita nechcela dopustiť, aby mód s jeho odchodom zanikol. SFB-RP si prešlo ráznymi zmenami v pravidlách a hlavne v systémoch, ktoré na SFB boli. V roku 2017 sa SFB-RP oddelilo od portálu Crew Zone a teraz funguje samostatne ako sfb-rp.cz. O momentálný vývoj módu sa stará Kubko, ktorý sa snaží script neustále zveľaďovať zavádzaním nových systémov na úrovni novodobých kvalít a rovnako optimalizovať, aby zabezpečil terajšej komunite len ten najlepší pôžitok z hrania. Čo server ponúka? Aktuálna verzia San Francisco Bay Roleplay v1.3.2 Build 5a ponúka tieto možnosti: Dynamický systém postáv prepojený s používateľským účtom na webe - pre pripojenie na server je potrebné mať registrovaný účet na webe, jedná sa o rýchly proces, po ktorom získate plný prístup do hry, UCP a fóra - po úspešnom prihlásení do hry pod zvoleným menom si môžete v grafickom prostredí do slotu vytvoriť postavu voľbou pohlavia, skinu a mena postavy - kliknutím na náhľad postavy a následným kliknutím na tlačítko "Spawn" bude vaša postava prenesená do herného roleplay sveta - medzi jednotlivými postavami je možné prepínať priamo v hre, bez nutnosti akéhokoľvek reštartu herného klienta Obr. 1 - Náhľad na výber postavy Legálne frakcie a povolania - v hre sa môžete pridať k štátnym frakciám ako je San Francisco Government, San Francisco Police Department, San Francisco Fire Department, Emergency Medical Services a San Francisco One News - medzi ostatné povolania patrí napríklad mechanik, vodič taxi, autobusu, kamiónu, čistič chodníkov, smetiar, natierač mostu, vodič prepravnej služby, rozvázač pizze, donutov... - každá frakcia má svoju hodnosťnú štruktúru, od ktorej sa pri výplate odvíja finančné ohodnotenie zamestnanca - výplata prichádza v intervale jednej hodiny a jej výška sa odvíja od viacerých faktorov (prac. doba, dodržanie prac. náplne...) - v šatni niektorých štátnych zložiek je k dispozícii niekoľko novo pridaných pracovných skinov (0.3.8) - frakcie ako je SFG a SFON dokážu vplývať na ekonomiku celého mesta (nastavenie DPH, mýta, poplatok za podanie inzerátu...) - okrem povolaní, je možnosť si privyrobiť brigádou nosenia bední, alebo chytaním rýb na mori - v prípade, že by vás práca prestala baviť, bude vám na úrad chodiť menšia podpora - dávky Obr. 2 - Zamestnanci EMS s novým objektom medicbagu a pracovným skinom Obr. 3 - Brigáda nosenia bedien Dynamický systém nelegálnych skupín - hráč si môže svoju nelegálnu skupinu nechať "zoficiálniť", čím obdrží ako leader svojej skupiny zaujímavé možnosti - nelegálna skupina si môže vybrať spôsob zisku zbraní, jednou je dovoz (rýchlejšia a drahšia možnosť) a druhou je výroba zbraní v sklade - spomínaný leader môže nastaviť sídlo svojej ilegálnej skupiny, spravovať členov, prideliť im akýkoľvek názov hodnosti, permisie... - každá skupina má v svojom sídle kasu, do ktorej môžu členovia prispievať a oprávnený aj vyberať peniaze či kontrolovať pohyby Obr. 4 - Prehľad základných informácii o skupine Obr. 5 - Zobrazenie všetkých členov skupiny Obr. 6 - Transakcie v kase Dynamický systém vozidiel - v meste sa nachádza niekoľko predajných miest, kde si môžete zakúpiť motorové vozidlo, loď, helikoptéru, bicykel... - súčasťou systému vozidiel je palivo (benzín, alebo nafta) a kufor, do ktorého je možné ukladať zbrane, alebo drogy - všetky vozidlá sú kupované za hernú menu, výnimku tvorí pár prémiových vozidiel, ktoré je možné kúpiť len za coiny - s kúpenými vozidlami je možné obchodovať s hráčmi, alebo ho predať okamžite za polovicu pôvodnej kúpnej ceny - udeliť permisiu na kúpené vozidlo (zamykanie, štartovanie) je inému hráčovi možné odovzdaním kľúčov - opraviť poškodené časti vozidla dokáže mechanik v dielni, okrem toho vie vozidlo upravovať; montovanie komponentov či tuningu - v dielni môže mechanik taktiež namontovať, alebo odmontovať bezpečnostný zámok či poistkovú skriňu niekoľkých stupňov - v prípade fatálneho poškodenia vám vozidlo dokáže odtiahnuť do dielni mechanik - s páčidlom sa môžete pokúsiť o prelomenie zámku vozidla a ukradnúť tak vozidlo naštartovaním cez "drátky" Obr. 7 - Dielňa Obr. 8 - Vlastné emergency lights Dynamický house systém - na serveri sa nachádza niečo cez 600 obývateľných domov, ktoré je možné zakúpiť - domy sa delia na: rodinné domy, byty, luxusné byty, vily a karavany - sú rozdelené podľa častí mesta; cena sa odvíja od koeficientu lukratívnosti danej štvrti - v domoch je použitých približne 22 vlastných nezariadených interiérov - interiér domu je možné zariadiť podľa svojich predstáv - položený nábytok sa dá tiež pretextúrovať na ľubovolnú textúru z hry - majiteľ domu môže nastaviť permisie na dom aj iným hráčom Garáže - ku každému domu je možnosť nechať si vytvoriť garáž - garáž je uzamykateľná a obsahuje dve parkovacie miesta Obr. 9 - Pickup domu Obr 10 - Jeden z interiérov Obr 11 - Garáž Damage systém - pokiaľ bude postava postrelená do ruky, začne sa vám pri mierení zbraňou kolísať obrazovka - v prípade postrelenia do nohy, vaša postava nebude môcť šprintovať a ani skákať - akonáhle zdravie vašej postavy klesne pod 20 percent, postava prejde do "wounded" fáze - v tomto štádiu bude vaša postava ležať nehybne na zemi, pokiaľ jej nikto nepomôže, zomrie - okolitý hráči si vedia príkazom zobraziť podrobnosti s informáciami o zraneniach Obr. 12 - Mŕtva postava MDC pre policajné zložky - príslušníci SFPD majú v každom služobnom vozidle a na stanici dostupnú policajnú databázu - momentálne obsahuje rôzne informácie z činnosti oddelenia a možnosť vyhľadávania osôb či vozidiel - v časti spravovania osoby je prezatiaľ možné len spravovať licencie a prezrieť si adresy bydliska Obr. 13 - Hlavná obrazovka Obr. 14 - Dopyt po vyhľadanej osobe Obr. 15 - Zoznam adries osoby Obr. 16 - Dopyt po vozidle Nový drug systém (už čoskoro na serveri) - drogy sú zobrazované vo vlastnom interaktívnom inventári - každá droga má po užití svoj okamžitý pozitívny efekt - čím väčšia je kvalita danej drogy, tým je efekt výraznejší (napr. nárast HP) - niektoré drogy je možné vyrobiť za pomoci kombinovania rôznych ingrediencii - užívanie návykových drog môže mať však aj negatívny efekt (závislosť) - zmierniť negatívne účinky dokáže EMS predpísaním vhodných liekov Obr. 13 - Inventár drog Obr. 14 - Drogy položené na zem A mnoho ďalších... (priebežne budem aktualizovať veci, ktoré som neuviedol) Ako sa pripojím? Domovskou adresou našich webových stránok je sfb-rp.cz/main, kde máte k dispozícii registráciu, či cestu na fórum, alebo UCP. Na fóre (board.sfb-rp.cz) nájdete všetky pravidlá serveru a zvyšné potrebné informácie k hraniu. Ak ste nováčik a nikdy ste nehrali roleplay nie je to absolútne žiadny problém, od toho máme náš ochotný Admin Team, ktorý vás s radosťou všetkému zaučí, tešíme sa na vás! IP serveru: samp.sfb-rp.cz:7777 TS3 server: ts3.sfb-rp.cz
  12. 6 points
    CO JE BATTLE ROYALE? Battle Royale je survival gamemode s rychlým gameplayem, který ponoří hráče do zápasu o život. Cíl je jednoduchý: být poslední přeživší. Všichni ostatní musí zemřít. K tomu se skvěle hodí zbraně, léky, brnění a mnoho dalších předmětů rozmístěných po celé mapě. Po 5 minutách od odstartování zápasu se začne zmenšovat herní zóna a všichni zbývající přeživší jsou nuceni se proti sobě utkat. NAJDĚTE TEN SPRÁVNÝ LOOT Po celé mapě se nachází hromada zbraní, nábojů, léků, batohů a dalších věcí, které můžete použít ve svůj prospěch. Stačí jen nějaký předmět najít a sebrat ho klávesou LALT. Použít nebo zahodit své předměty můžete přes inventář, který lze otevřít pomocí klávesy Y. Samozřejmě nesmí chybět vozidla. Ta jsou trochu vzácnější, proto není tak snadné nějaké najít. Vozidla mají omezené palivo, proto je dobré mít po ruce kanystr. HRAJTE S PŘÁTELI Battle Royale je mnohem zábavnější s kamarády. Pár kliknutími v hlavním menu stačí vytvořit skupinu, pozvat hráče a odstartovat hru. Jako skupina jste o něco silnější než ostatní hráči, na začátku zápasu vás hra spawne u sebe a své spoluhráče vidíte na radaru. BUĎTE U AIR DROPU JAKO PRVNÍ V každém zápasu spadne po 2 minutách od odstartování z nebe air drop, který obsahuje zbraně, náboje, léky a neprůstřelnou vestu. Air drop je vždy označen zelenou zónou a pokaždé spadne na jiné místo. O pádu air dropu jsou informováni všichni hráči. PŘIZPŮSOBTE SI CHARAKTER I v boji o život je důležité vypadat dobře. Svou postavu si můžete kdykoliv vylepšit řadou doplňků přes hlavní menu. Cena každého doplňku je $500. Některé doplňky se vám zpřístupní až po výhře určitého počtu zápasů, takže se s nimi budete cítit nadřazeně. HERNÍ MOD DÁLE OBSAHUJE: - Anticheat, který dokáže detekovat přes 15 nejznámějších cheatů - "Lobby systém", takže žádné čekání, než ostatní dohrají, stačí kliknout na "Hrát" a server vás automaticky přiřadí do nové lobby - Achievementy - Výběr mezi češtinou a angličtinou (aby si na serveru mohl zahrát i cizinec) 82.208.17.10:27738 www.facebook.com/sabattleroyale
  13. 6 points
    Ahoj všem! Nedávno jsem přidal na WTLS vylepšnou verzi taneční a lowrider souteže a chtěl bych vám ukázat výsledek. Co na to říkáte? Líbila se vám taneční minihra v singleplayeru GTA:SA? Myslíte si, že tato minihra byla větší výzva než v GTA: The Ballad of Gay Tony? Předem díky za vaše komentáře! .)
  14. 5 points
    https://california-rp.eu https://discord.gg/CdJz6SG
  15. 5 points
    Bitové operátory Obsah Úvod Bitové operácie Operácia not Operácie and, or Operácie shl, shr Operácia xor 1. Úvod K napísaniu tohoto návodu ma inšpiroval tento príspevok z roku 2012, ktorý podľa môjho názoru má k dnešnej úrovni našich návodov celkom nízku kvalitu a tiež v ňom chýbajú určité informácie. Niektoré body z neho som podobne použil aj ja. V príspevku budú tiež cvičenia, ktoré kým spravíte, rozhodne budete bitovým operáciám rozumieť. Nejaký čas nad cvičeniami určite strávite. V praxi majú tieto operácie veľký význam, predsalen, ak jeden bit môže mať hodnotu 0, alebo 1, tak so znalosťami bitových operátorov je možné do jedného 32-bitového čísla (klasická premenná v Pawn) uložiť 32 true/false hodnôt. Do úvodu však ešte uvediem, že síce dokážu neuveriteľne šetriť pamäť (v prípadne jednej bool hodnoty až 32násobná úspornosť), tak každá operácia trvá určitý čas a z úmyslu ušetriť pamäť by výsledok mohol byť až strata rýchlosti. Ak potrebujete pracovať s binárnymi číslami, Windows kalkulačka je najvhodnejší nástroj (Štart->calc.exe->Možnosti->Programátorská). Otázky sa môžete pýtať v komentároch. Veľa šťastia a nových vedomostí. 2. Bitové operácie Najmenšia dátová jednotka na počítači je bit, ktorý patrí do množiny {0, 1}. Vždy nadobúda práve jednu hodnotu. Operácie prebiehajú v dvojkovej sústave. Desiatková sústava pozostáva z {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}. Jeden bajt má osem bitov. Keďže v Pawn sa používajú len 4-bajtové premenné, všetky bunky majú 32 bitov. Množina {0, 1} sa dá zobraziť do množiny {false, true}. Premenná, ktorá môže nadobúdať iba hodnoty true a false máva typ "bool", po matematikovi Georgeovi Booleovi. Pawn umožňuje vypisovať čísla v binárnom tvare na konzolu. Stačí do printf() dať namiesto "%d" (decimal - desiatková sústava) "%b" (binary - binárna sústava). Kód si spustite. #include <a_samp> main() { for (new i; i < 16; i++) { printf("%2d = 0b%04b", i, i); } } Cvičenie 1. V Pawn existujú kľúčové slová true a false. Keďže je to beztypový jazyk, je možné zamieňať typy premenných (vyskočí iba warning). Zistite k akým celočíselným hodnotám sa dajú priradiť výrazy true a false pomocou nasledujúceho kódu: #include <a_samp> main() { new a = ??; if (a) { ?? } } 3. Operácia not Všetky bity naraz je možné znegovať operáciou not, ktorá má len 1 argument a značí sa '~'. #include <a_samp> main() { new a = 0b11001100; printf("%032b", a); printf("%032b", ~a); } 4. Operácie and, or Operácie and a or majú dva parametre a ich výsledkom je jedna premenná s rovnakým počtom bitov. Operácie and a or sa v Pawn vykonávajú na všetkých bitoch premennej zaradom, akoby v cykle. Najprv sa vykoná operácia na prvých bitoch premnenných, potom na druhých bitoch premenných, atď. Pawn obsahuje operátor '&' pre operáciu and, ktorá je tiež nazývaná "bitový súčin". Súčin preto, lebo výsledok tejto operácie je "1" iba v prípade, že obidva parametre sú "1". Operáciu or (tiež nazývanú logický súčet) zapisujeme v Pawne operátorom '|'. To, ako Pawn chápe '&' a '|', nám môže sám ukázať. Vašou úlohou je tieto operácie pochopiť priamo od neho. Výstup programu kvôli prehľadnosti pripomína mechanické sčitovanie "pod sebou na papieri". #include <a_samp> main() { new a = 0b1010, b = 0b1100; printf("0b%b\n0b%b &\n------\n0b%b\n\n", a, b, a & b); printf("0b%b\n0b%b |\n------\n0b%b\n\n", a, b, a | b); } Cvičenie 2. Pri prenose dát sa z kontrolných dôvodov pridáva k preneseným dátam jeden bit navyše, jedná sa o tzv. paritný bit. Prenáša sa 8 dátových bitov a jeden paritný - ten úplne naľavo je paritný. (tj. "100000101"). Vašou úlohou je naprogramovať detekciu hodnoty paritného bitu. Doplňte do nasledujúceho kódu operáciu binárneho súčinu, aby kód správne fungoval. Rada: Chcete detekovať, či bol daný bit nastavený na "1". #include <a_samp> main() { new number = 0b100101101; if (parityBitSet(number)) { print("Paritny bit je nastaveny na 1."); } } parityBitSet(number) { if (??) { return true; } else { return false; } } Cvičenie 3. V zastaralej databáze údajov, ktorá musela šetriť maximálny možný priestor, sú údaje o obyvateľoch uložené v bitoch. Napr. nultý bit (úplne vpravo) obsahuje pohlavie (0-muž/1-žena), ten vedľa neho obsahuje informáciu, či osoba poberá dávky v hmotnej núdzi, nasledujúci hovorí o zamestnanosti danej osoby, atď. Databáza používa celkovo 16 bitov, ostatné sú nedefinované. V novej verzii databázy sa zmenil význam piateho bitu a preto chceme bez zmeny ostatných informácií vynulovať daný bit každej osobe. Doplňte procedúru update() tak, aby databáza spĺňala nové požiadavky. #include <a_samp> new people[] = { 0b1100111100110101, 0b0011001101010101, 0b1111111001110111 }; main() { update(); for (new i; i < sizeof(people); i++) { printf("%016b", people[i]); } } update() { for (new i; i < sizeof(people); i++) { ?? } } 5. Operácie shl a shr Nasledujúce dve operácie vykonávajú aritmetické bitové posuny. Aritmetické znamená, že pri posune sa zachová (záporné), alebo vznikne (záporné) znamienko. SHL a SHR sú skratky pre shift left a shift right. Operátormi pre tieto operácie sú "<<" a ">>". Argumentom bitového posunu je počet bitov, o ktoré chceme číslo posunúť. Pri operátore "<<" je novo-pridaný bit 0. #include <a_samp> main() { new a = 1; for (new i; i < 8; i++) { printf("%08b", a << i); } printf(""); a <<= 3; // je mozne pouzit aj tuto syntax printf("%08b", a); } Na binárnej úrovni sa rozlišujú záporné a kladné čísla najvyšším bitom, tj. celková kapacita 4 bajtov je rozdelená na 2 polovice - kladnú a zápornú. U záporných čísel je 31. bit (ten úplne naľavo) vždy 1, pričom u kladných 0. Aritmetický posun vpravo sa teda správa ináč než ten vľavo. Znamienko čísla sa zachováva pri operácii ">>". Operácia ">>" akoby preskočí bit, ktorý určuje zápornosť čísla a posúva všetky ostatné bity. Lepšiu predstavu o tomto procese získate spustením nasledujúceho kódu. Existuje ešte tretí, logický operátor pre posun vpravo, ktorý (záporné) znamienko nezachováva ani nevytvára. Tento operátor je ">>>". #include <a_samp> main() { new a = -10; printf("%032b = %d", a, a); printf("%032b = %d", a >> 1, a >> 1); printf("%032b = %d", a >> 2, a >> 2); printf("%032b = %d", a >>> 1, a >>> 1); printf("%032b = %d", a >>> 2, a >>> 2); } Cvičenie 4. Majme v desiatkovej sústave číslo "65421". Toto číslo z hlavy vydeľte číslom "100", resp. "10^2". Zvyšok zanedbajte. Výsledok si overte. Cvičenie 5. Majme v binárnej sústave číslo "1101010". Z hlavy vydeľte toto číslo číslom "4", resp. "2^2". Zvyšok zanedbajte. Výsledok si overte. Rovnakým spôsobom výsledok vynásobte číslom "4". Dostali ste pôvodné číslo? Cvičenie 6. Doplňte riešenie cvičenia 2 tak, aby nie len kontrolovalo paritný bit, ale aby kontrolovalo, či je paritný bit správny. Skontrolujte hodnotu všetkých bitov a rozhodnite, či ich počet (či sú párne) sedí s informáciou z paritného bitu. Takáto kontrola sa v praxi používa pri prenose dát. Cvičenie 7. Doplnením do kódu nižšie vygenerujte číslo s takýmto tvarom: "0b1010101010101010". Rada: použite okrem operácie na bitový posun aj bitový súčet (na nastavenie bitu) a bitový súčin (na overenie/zistenie hodnoty nejakého bitu). #include <a_samp> main() { new number = 0; for (new i; i < 15; i++) { if (!(??)) { ?? } ?? } printf("0b%016b", number); } 6. Operácia xor Ako aj v názve, tak aj vo funkcionalite sa podobá operácii or. #include <a_samp> main() { new a = 0b1010, b = 0b1100; printf("0b%b\n0b%b ^\n------\n0b%04b\n\n", a, b, a ^ b); } Cvičenie 8. Istý fanúšik jazyka assembler, Rendall Hide, má rád prácu s bitmi. Posledne o sebe tvrdí, že našiel vlastnosť, ktorá dokáže nastaviť zázračným spôsobom hodnotu akejkoľvek premennej na 0. Mnohí ho majú za blázna a nepočúvajú čo hovorí, ale je naozaj blázon, alebo len neodborná programátorská verejnosť nerozumie kráse jeho mágie? Tvrdí, že dokáže vynulovať premennú bez použitia iných konštánt ako "0" a bez operácií ako násobenie, odčítanie či and. Údajne je táto vlastnosť zapísaná tu: n xor n = 0 Preskúmajte túto údajnú vlastnosť a overte, či Rendall Hide bol naozaj blázon, alebo majster majstrov. Cvičenie 9. Nádejný programátor Peter "VlastneŠifrovanieJeNajlepšie" Skutočný si všimol neuveriteľnú a jedinečnú vlastnosť operácie xor. Nazdáva sa, že by možno odhalil niečo, čo by nazýval "symetrické šifrovanie", hoc názvom si ešte nie je istý. Prezrite a vylúštite na bitovej úrovni pozadie tejto operácie. #include <a_samp> const secret = 123456; main() { new number = 9087324; number = encode(number); printf("My new hashed password is: %d", number); number = decode(number); printf("The real password is: %d", number); } encode(number) { return number ^ secret; } decode(number) { return number ^ secret; } Cvičenie 10. Alen During, známy hejter, si s obľubou prezerá internet a hľadá veci na kritiku. Po zlej noci počas ranného rituálu s telefónom našiel príspevok Petra Skutočného a jeho procedúry encode() a decode(). Nemal však chuť sa niečím takým zaoberať a tak mu zo svojho smartphone-u poslal jediný snippet bez slov. Čo ním asi chcel povedať? #include <a_samp> main() { new crackedSecret = gimmeSecret(9087324, 9128732); printf("%d", crackedSecret); } gimmeSecret(pass, hashedPass) { return pass ^ hashedPass; }
  16. 5 points
    Zdravím. Před čtyřmi lety jsem dostal nápad že bych mohl opravit a dostavit dannou část města Liberty City které se nacházi v Interioru 1, mapu jsem nedodělal, a nyní jsem to vyhrabal ze staršího PC a Liberty dodělal. Jedná se o originalní část města která byla opravena od všech bugů , aby se nepropadalo pod mapu a neprocházelo stěnami , také část města byla dostavena podle originálu GTA 3. Info Silnice které vedou dál Něco víc Obrázky Icngnito Object Streamer ackslimit 50000 Liberty City (original).zip
  17. 5 points
    Multi jazyk pre GM Obtížnost: 2/5 Osnova/obsah: 1. Úvod 2. Čo je multi jazyk (multilanguage) a načo sa dá použiť? 3. Vytváranie vlastných funkcií a ich použitie 4. Záver 1. Úvod Tento návod som sa rozhodol vytvoriť, pretože v dnešnej dobe už GM s jedným jazykom nemá veľkú popularitu, a mladší hráči ktorý neovládajú veľmi angličtinu nehrávajú na serveroch písaných po anglicky. Upozorňujem, že tento návod nie je copy + paste. Pre tvorbu svojích funkcií je nutné kódu rozumieť. 2. Čo je multi jazyk a načo sa dá použiť? Multi jazyk je implementácia dvoch a viacerých jazykov do GM. V tomto návode sa Vám posnažím čo najjednoduchšie vysvetliť, ako si vytvoriť svoje funkcie na multijazyčnosť a ako ich použiť. Multijazyčnosť je vhodná pre servery, ktoré plánujú expandovať na zahraničný "trh" a tým rozšíriť svoju klientelu (hráčov). 3. Vytvárania vlastných funkcií a ich použitie Celý systém funguje na princípe #define. Pre pochopenie kódu je nutné poznať: #include, #define, cyklus for, SendClientMessage/ToAll, format(...) V prvom rade, budeme potrebovať definície naších textov (textových reťazcov/stringov). Pre lepší prehľad som ich vložil do zložky INCLUDE s názvom lang_SK.inc a lang_CZ.inc. !!! POZOR !!! Je nutné nastaviť formátovanie textu na ANSI. lang_CZ.inc lang_SK.inc new.pwn
  18. 4 points
    Vypada to hezky, jen abych rekl pravdu cekal jsem ze ten kun bude behat od zacatku ke konci a uvidime i ty soupere. Ale jinak pekny
  19. 4 points
    Úvod Už nějaký ten pátek dělám na tomto módu přesněji od 24.3.2020 kdy jsem se rozhodl že se trochu ponořím do pawna. Beru to spíš jako koníček co mě baví ne jak někteří co dělají mód ve stylu hop šup udělám to co nejrychleji, nasypu tam totálně broken coin systém ať vydělám love a vypnu server, takhle teda ne. Popravdě zatím vám nemůžu oznámit že bude nějaké otevření jde čistě o ukázku módu, co obsahuje atd. Chci vám tedy představit Hood Life Roleplay zkráceně HLRP, jde o lowrp mód se kterým si dávám dosti záležet. Půjde jak už z názvu můžete usoudit o téma "hoodu/ghetta" kde budete přežívat, vydělávat, užívat si zkrátka to co mód nabízí. Hlavní roli bude taky hodně hrát těžká ekonomika takže pokud budete chtít vlastnit něco cool tak to zabere nějakej ten čas, zkrátka to nebude že "jou za den mám barák a auto". Ze začátku/prvních pár dní budete mít možná tak kolo a byt v bytovce na pár dní. Zásadně nechci dělat nějaký P2W systém který vám lusknutím prstů vytvoří vilu a llamborghini, jen tak pro info. Ještě sem později něco víc napíšu zatím to stačí. ...WIP... Informace SAMP verze: 0.3.DL / Verze GM: 0.2.4 (closed beta) / Developer: M1KE / Částečná výpomoc(mapping atd): Paule,Nass,W1lly,monkys Ukázka Novinek 10.5.2020 [v 0.2.4] 6.5.2020 Systém domů Dům lze prodat serveru čímž získáte 30% z ceny, později půjde vystavit na prodej. Lze jej zamknout, změnit interier,vybavit nábytkem. Dům má nastavené dny které lze navýšit zaplacením výdajů podle typu domu. Systém pokládání itemu Některé věci lze položit na zem při výběru akce "Položit" v inventáři. Multifunkční inventář Po výběru itemu/slotu se vám otevře dialog kde si vyberete akci jakou chcete s danou věcí udělat. Food Systém/Systém jídla V módu je rozsáhlý výběr jídla a pití díky kterým si udržujete hlad. Pokud hlad klesne na 0% tak začnete pomalu umírat. Je tu možnost položit plato piv na zem následně z něj lze po jednom vytáhnout pivo. //Uděláno pro venkovní party atd. Drug/Grow Systém Marihuana má nastavené čtyři fáze růstu: Růst - Kvetení - Zralá - Zvadlá //btw custom model který vidí všichni. Systém nábytku Tento systém vám umožňuje nakoupit nábytek, upravit ho nebo smazat. Později půjde i retexturovat. Mapping Venkovní mapping není nijak přehnaný aby se zbytečně daná oblast někomu nesekala. Doplňky Můžete si doplnit vzhled vaší postavy pomocí doplňků, zatím je k dispozici 5 slotů. Později se budou přidávat i custom objekty(batohy,výbava pro frakce atd.). Nákup vozidel Vlastněné vozidla Můžete vlastnit až 3 vozidla které lze zaparkovat a odparkovat. //[vedlejší] Vozidla jdou také zamknout, lze půjčit náhradní klíče, ovládat světla, zapínat vypínat motor, doplňovat palivo kanistrem + more Palivo/Tachometr/Info system Zatím je systém paliva nastavený na 100, později se to bude upravovat zatím vyhovuje. Palivo se dá doplnit na benzínce nebo kanistrem z inventáře. Systém Prací/Levelování Levelovani je neomezené. Za každý level dostanete jeden LP(Learning point) za které si lze vylepšit dovednosti, později uvedu. Seznam aktuálních prací: "Umývač Aut", "Nosič Beden", "Pizza Poslíček", "Drogový Poslíček", "Vykradač Domů", "Řidič Dodávky", "Prostitutka", "Mechanik" Vykrádání/Hledanost Vykrádání a hledanost je zrovna taková novinka kterou je třeba dobře promyslet.//včera přidáno 4.5.20 Bude to zhruba fungovat tak že se ukáže upozornění pro PD že v daném obchodě někdo míří zbraní. Vykrádající hráč získá hledanost společně s tagem [Hledaná osoba]. Hráč bude mít čas uniknout pokud zrovna někdo nebude poblíž nebo pokud ho někdo neohlásí díky tagu který lze vidět pokud je někdo hodně blízko. Hazard Zatím tu lze pouze sázet na koně, plánuje se dělat "kasíno" kde budou automaty možná i nějaký složitější karetní systém. Death systém Death systém se bude ještě předělávat zatím funguje na basic smysl. Autoškola V autoškole si můžete zaplatit zkoušku kterou když splníte tak získáte daný průkaz. (Checkpointovka nic extra) Ostatní
  20. 4 points
    Všechno jednou končí – a to platí i pro moji nadvládu nad tímto fórem. Stejně byla iluzorní, jelikož naprostou většinu záležitosti zastával tým moderátorů a administrátorů. Pawno jsem se snažil historicky posunout dál, nikdy se mi to nepodařilo k mé spokojenosti – a v určité fázi jsem se vlastně přestal snažit. Pokud se však má fórum někam dál posunout, je potřeba, aby se tomu někdo opravdu věnoval. Historicky jsem už dostal mnoho nabídek k odkoupení, i za významně vyšší částky, ale nikdy jsem nebyl přesvědčený, že by prodej byl pro fórum to nejlepší. Nyní jsem. Takže, bylo to fajn, zdravím všechny, které jsem tu poznal, děkuji všem, co se čehokoli na fóru účastnili – a těším se na případný sraz. @ffredyku a týme – ať se daří!
  21. 4 points
    Rozhodl jsem se pokračovat, asi před měsícem jsem na to narazil v jedné kouzelné složce. Tak jsem si zapl server a začal jsem hledat bugy, zatim jsem opravil stats (životy, vesta, pohlaví) snažim se zjednodušit všechny příkazy aby nebyli dlouhé atd.. Dále jsem odstranil to že si můžete koupit celu jelikož to je docela blbost a ponechal jsem z toho jen samotku jelikož to funguje jak prison na normal rp serverech. Opravil jsem kupovaní drog a zbraní pro officiální gangy, dále jsem malinko předělal register/login proto proběhl wipe jelikož staré účty už stim nechtějí fungovat. To je asi vše na co si ted' vzpomenu, neočekám od toho že tam bude někdo hrát, ale zkusit to přece můžu, nic tim nestratim. Toto je pouze takové info, všechno zapíšu v update příspěvku až to bude hotové.
  22. 4 points
    Zdravím, od listopadu do května jsem modeloval 12 ostrovu v blenderu. Používal jsem budovy ze hry ovšem terén silnice a mosty jsem modeloval sám. Zde je video jak to celé vypadá. Video je pojato relaxačně a dobrou podkladovou hudbou. Enjoy.
  23. 4 points
    1. Nauc se anglicky 2. Preloz si video Nemas zaco. dej rep+
  24. 4 points
  25. 4 points
    Já ti s tím poradím. Vykašli se na to a běž na sobě pracovat. Běž cvičit, sebevzdělávat se, následovat své sny. Tohle je jen obrovská ztráta času.
  26. 4 points
    Ahoj všetci! Poslednou novinkou na našom serveri je nový systém mobilu. Dúfam, že sa vám bude páčiť.
  27. 4 points
    Na tvorbe sa podielali milous22 (objekty), NoxeS (dizajn), DYXiCZ (napad) a bigw3b (script). Najdete na http://sfb-rp.cz (1.3.2) uz coskoro. .
  28. 4 points
    Ahojky, chcel by som vám ukázať jeden stock čo som nakódil, fillArray(), ktorý dokáže vynulovať pole, resp. nastaviť každý prvok v poli na nejakú hodnotu. Je to užitočné v tom, že je to rýchlejšie než použitie loopu, pomer rýchlosti sa odvíja od počtu prvkov, kde pre 100 prvkové pole je fillArray() 18x rýchlejší, pre 1000 a viac prvkové ~65krát rýchlejší. Použitie main() { new pole[] = {1,2,3,4}; fillArray(pole, 55); // nastavi kazdu hodnotu v poli na 55 for (new i; i < sizeof (pole); i++) // vypise cele pole, teda 4 riadky s textom "55" printf("%d", pole[i]); } Pre viac-rozmerné polia treba použiť cyklus fillArray()ov. main() { pole[][] = {{1,2}, {3,4}}; for (new i; i < sizeof (pole); i++) fillArray(pole[i]); // default hodnota je 0, toto teda vynuluje cele pole for (new i; i < sizeof (pole); i++) for (new j; j < sizeof (pole[]); j++) printf("%d", pole[i][j]); } Speedtest Ťažko sa získavajú grafy pre rôzne veľkosti polí (lebo pawn nemá polia s dynamickou veľkosťou), ale pár manuálnymi pokusmi som zistil, že s kódom nižšie je fillArray() rýchlejší okolo 18x pre polia o veľkosti 100 prvkov, pre polia okolo 1000 prvkov okolo 70 krát rýchlejší a pre viac (až po 10 000 000 prvkové polia) to už osciluje medzi 60-65-70krát. Získal som: [19:45:51] Klasicka metoda: 74012 tickov [19:45:52] fillArray() metoda: 1075 tickov Pre kód: main() { #define MAX 1234567 new pole[2000]; new tick = GetTickCount(); for (new i; i < MAX; i++) for (new j; j < sizeof(pole); j++) pole[j] = 1; printf("Klasicka metoda: %d tickov", GetTickCount() - tick); tick = GetTickCount(); for (new i; i < MAX; i++) fillArray(pole, 2); printf("fillArray() metoda: %d tickov", GetTickCount() - tick); } Kód (môžete copy-paste do modu) stock fillArray(array[], value = 0, size = sizeof(array)) { new cip; size *= 4; cip = get_code_relative_address(); #emit load.s.alt cip #emit lctrl 6 #emit add #emit add.c 56 #emit stor.s.pri cip #emit load.s.alt size #emit sref.s.alt cip #emit load.s.alt array #emit load.s.pri value #emit fill 0 } stock get_code_relative_address() { new dat, cod; #emit lctrl 1 #emit neg #emit add.c 12 #emit stor.s.pri cod #emit lref.s.pri cod #emit stor.s.pri cod #emit lctrl 1 #emit neg #emit add.c 16 #emit stor.s.pri dat #emit lref.s.pri dat #emit stor.s.pri dat return cod - dat; } Resp., aktuálna verzia (aj s pár vysvetľujúcimi komentmi) tu. Ó, Majstre! Uč ma! Krátke vysvetlenie pre tých, čo vedia čo znamená slovo "assembler", ale nevedia čítať emit.
  29. 4 points
    OFFICE CENTER LV Ahoj všem Dovolte mi představit vám moji řadově druhou mapu. Chci tedy předem říct že se nepovažuji za mapera a i když se v sampu pohybuji již 10 let vždycky sem se věnoval jen pawnění. Chybí ještě vybavit kanceláře,ale tam už asi žádný zázrak nečeká. Doporučuji kouknout i na videa kde je vidět vybavení restaurace a detaily jako sklad a osvětlení areálu ve tmě. Mapa byla dělaná na zakázku a majitel je spokojený. FOTO VIDEO Děkuji všem za zhlédnutí a případný komentář. Příště se podíváme na moji první mapu která zatím nebyla dokončena. UKÁZKA
  30. 4 points
    Invision Power Board 4.2 - Pawno Vitajte v IP.Board 4.2, konečne sme sa dočkali upgradu fóra Pawno.cz! Je ťažké popísať všetky rôzne zmeny, čo nastali ani sa o to snažiť nebudem, veď nech sa páči môžete si to skúsiť sami, je toho dosť, ale hlavnou zmenou sú asi reakcie a reputácie. Po novom tu máme takzvané Reakcie: Niektorý z týchto reakcií dávajú reputácie a niektoré nie, tie ktorá dávajú majú pripísané (+1) k ich názvu. Vašu reakciu je možné zmeniť, ak ste omylom dali zlú. Ďalej, niektoré veci nám bohužiaľ nezostali, ale je možné že sa v budúcnosti vrátia, a to sú: Podklady na zakladanie tém "Pomoc" a úspechy, ktoré ste mohli získať napríklad za príspevky. Témy "Pomoc" sa opäť zakladajú klasickým vytvorením témy, avšak už s využitím novej možnosti IPB 4.2 a to sú tkz. "Otázky", ak navštívite sekciu Pawn > Pomoc uvidíte sami ako to vyzerá . Veľa vecí ešte môže mať svoje chyby ako napríklad preklad a samotná téma, preto bolo vytvorené nové fórum - Nahlásenie chýb/Návrhy zmien. Budeme radi za každé nahlásenie chyby ale aj za návrhy zmien! Toto fórum je dočasné a týka sa hlavne návrhov k možnostiam IPB 4.2 a témy, nepoužívajte ho na návrhy zmien napríklad v pravidlách! Na to tu máme sekciu - Čo by sa tu malo zmeniť. Ďalšou veľkou zmenou je! 2FA - Dvojstupňové overenie: Môžete v nastaveniach profilu aktivovať dvojité overenie, čo vám dovolí mať väčšiu bezpečnosť vášho účtu! Čo je dvojstupňové overenie? Po prihlásení na účet zadaním klasického meno a hesla bude ešte vyžadovaný dočasný kód z vašej mobilnej aplikácie, ktorý sa mení každých 30 sekúnd! To je asi všetko zatiaľ . Ospravedlňujeme sa za trocha zdržania, ale bolo toho treba dosť pomeniť, nastaviť a podobne. S pozdravom, Celý tím Pawno.cz.
  31. 3 points
    Missing Brackets Detector Pri chybnom počte zátvoriek v Pawn súbore sa stáva, že kompiler crashne. Nájsť takýto problém (resp. či ide práve o tento problém) je časovo náročné a nudné. Všimol som si, že neexistuje podobný funkčný program (na zahraničných fórach sa dajú nájsť, no niektoré chybne detekujú zátvorky vnútri stringov, alebo komentárov a iné sú strašne pomalé kvôli zlému návrhu, prípadne nevhodnému jazyku. Preto som dal dokopy malý program, ktorý rieši daný problém a môžete si ho tu stiahnuť. V prípade, že by ste našli nejakú chybu, nezrovnalosť, alebo máte nejaký návrh, prosím napíšte mi. Použitie Jedná sa o command-line utilitu, čiže sa spúšťa z príkazového riadku. Po stiahnutí a uložení do nejakého priečinka, v ktorom je "testskript.pwn", je možné použiť program takto: C:\Users\..>cd brackets C:\Users\..\brackets>brackets.exe testskript.pwn No incorrect / unmatching brackets were found. C:\Users\..\brackets> Download Source - https://gist.github.com/ts12311122014/b8763c771a30bfc75d1961676d393245
  32. 3 points
    Abych předešel případným dotazům a nepříjemným problémům, řekni mi: obsahuje to i skripty, jež nejsou tvoje, a jsou všechny funkční? Rád bych dostal odpověď na obě otázky, díky.
  33. 3 points
    Podľa nových pravidiel nie je povinnosť v prípade vyriešenia HELP problému zakliknúť správne riešenie. Navrhujem pridať do pravidiel (hoc je to asi nevynútiteľné, ale aspoň aby to tam bolo..), že pri vyriešení musí zakladateľ topicu označiť správnu odpoveď. Aby aspoň ten čo mu pomohol niečo z toho mal.
  34. 3 points
    https://www.humblebundle.com/store/amnesia-collection
  35. 3 points
    Takto rozhodně ne! Používat takováto arbitrární čísla jako 100, 128, 256 apod. jako velikost řetězce je holý nesmysl – zbytečně alokujete na zásobníku víc místa, než kolik nakonec využijete. Dobrý pawner neplýtvá místem (zvláště ne na zásobníku). Jméno hráče má nejvýše MAX_PLAYER_NAME - 1 znaků, "nejdelší" číslo (-2147483648) má znaků 11 a samotný text jich má 16. Správná velikost bufferu je tedy 27 + MAX_PLAYER_NAME (+1 buňka na ukončující nulový znak). Méně buněk nemusí stačit a více bude zaručeně plýtvat místem. Povšimněte si, že místo 24 píšu MAX_PLAYER_NAME. To je taky dobrý zvyk, protože definice se mohou vždy změnit, a až (když) nová verze SA-MPu zvýší velikost jména z 24 znaků na 32, přeji vám hledat ve vašem kódu všechna místa, kde to bude potřeba opravit. ;-) Také doporučuji použít namísto kombinace format + SendClientMessage nějakou alternativu SendClientMessageFormat. Existuje verze používající #emit a plugin YSF přidává SendClientMessagef. Nezapomeňte, že do řádku v chatu se vejde nejvýše 143 znaků. Pokud tedy chcete formátovaný řetězec ukazovat v chatu, použijte nejvýše velikost MAX_CHATBUBBLE_LENGTH. Chybou (či úmyslem, nevím) SA-MP je taky to, že pokud zasíláte přes SendClientMessage znak %, pochopí ho to jako formátovací specifikátor (ačkoliv SendClientMessage nemá formátovat) a může to i shodit server. Použijte %%.
×
×
  • Create New...