Jump to content

Search the Community

Showing results for tags 'samp'.

  • Search By Tags

    Oddělujte čárkami
  • Search By Author

Content Type


Fórum

  • Obecné
    • Všeobecné
    • Všechno možné
  • Programování
    • Poradna
    • Návody
    • Tvorba
    • Hledám programátora
  • Herní oblast
    • Poradna
    • Jak na to?
    • Herní kontext
    • Herní zážitky
    • Komunita
  • Grafika
    • Poradna
    • Návody
    • Tvorba
  • Ostatní
    • Hardware a software
    • Hledám/nabízím
    • Archiv
    • 3D Tisk

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Web


Facebook


Jabber


Skype


Steam


Twitter


Github


Pastebin

  1. Obtížnost: Osnova: 1. Úvod, co je to pole 2. Deklarace pole 3. Práce s indexy (přiřazování hodnot) 4. Pole a řetězec 5. Vícerozměrné pole 6. Závěr 1. Úvod Zdravím, tohle je druhý ze série návodů pro začínající pawnery. Návod navazuje na ten předchozí o proměnných (klik). Znalost proměnných je nutná k pochopení tohoto návodu, proto Vám doporučuji, abyste si nejprve přečetli ten první návod (odkaz je k dispozici). Co je to pole? Pole (angl. array) je, zjednodušeně řečeno, proměnná, do které můžeme ukládat více hodnot. Funguje to tak, že se nám v paměti vymezí prostor a tento prostor se nám rozdělí na tolik buněk, kolik určíme. Jako kdybychom vzali dort a rozkrojili ho na námi určený počet kousků. K těmto jednotlivým buňkám (kouskům dortu) pak přistupujeme pomocí tzv. indexů. 2. Deklarace pole Jako první začneme s deklarací pole. Ta funguje stejně jako u proměnné, akorát s malým rozdílem. . new hraci[3]; . Opět jsme použili slůvko new, opět jsme zvolili název a opět jsme to všechno zakončili středníkem. Co se tedy změnilo? Hned za název jsme přidali hranaté závorky [ ] a do nich jsme vepsali velikost pole. Je tam 3, což znamená, že pole s názvem hraci má celkem 3 buňky. Samozřejmě můžeme deklarovat více polí naráz a přidat k nim různé tagy (pro různé datové typy), stejně jako u proměnných. . new hraci[3], Float:souradnice[4], bool:admin[10]; . 3. Práce s indexy (přiřazování hodnot) Nyní máme vytvořené pole. Jak teď do jednotlivých buněk uložíme hodnoty? Budeme k nim přistupovat přes, již zmíněné, indexy. Každá buňka má svůj unikátní index. Indexy vždy začínají od nuly. Poslední index bude vždy o jedno menší, než je velikost pole. Takže naše pole hraci bude mít indexy 0 až 2, pole souradnice bude mít indexy 0 až 3 a pole admin bude mít indexy 0 až 9. Teď pojďme poli hraci přiřadit nějaké hodnoty. . hraci[0] = 1; hraci[1] = 0; hraci[2] = -3; . Takhle jsme všem třem buňkám určili hodnotu. Indexy zapisujeme tam, kde jsme při deklaraci zapisovali velikost. Pro procvičení to samé uděláme i s druhým polem. . souradnice[0] = 4.7; //ukládáme čísla s desetinnou čárkou souradnice[1] = 8.52; souradnice[2] = -1.02; souradnice[3] = -0.5; . Pro zajímavost (rozklikněte spoiler): 4. Pole a řetězec Už u proměnných jsme narazili na tento způsob deklarace – jednalo se o řetězce. Je načase si říci, že řetězec není nic jiného než pole znaků. Každá buňka obsahuje jeden znak z řetězce. Podívejme se na následující příklad: . new pozdrav[4+1]; //deklarace pole znaků (řetězce), nezapomeňme přičíst jedničku (znak) navíc pozdrav = "ahoj"; . Teď máme v poli/řetězci pozdrav slovo "ahoj". Když si ho rozpitváme, zjistíme, že každý index v sobě má jedno písmeno. . pozdrav[0] = 'a' pozdrav[1] = 'h' pozdrav[2] = 'o' pozdrav[3] = 'j' . Index 4 jsem záměrně nezmínil. Proč? Podrobněji se tomu budu věnovat v návodu o řetězcích, prozatím si vystačíme s informací, že jedná-li se o řetězec (u ostatních polí to neplatí), musí poslední buňka zůstat nezměněná. Necháme ji prostě tak, jak je. Pro zajímavost (rozklikněte spoiler): 5. Vícerozměrné pole (pro středně pokročilé – rozklikněte spoiler) 6. Závěr A jsme na konci. Nyní už víme, jak funguje pole, jak jej vytvořit a jak s ním pracovat. Taky jsme si řekli něco málo o principu vícerozměrných polí a o tom, jaký vztah má řetězec k poli. Tento návod, stejně jako ten předchozí, je určen pro nováčky, pokročilejší věci byly buďto úplně vynechány, nebo jsou uvedeny ve spoilerech. Přesto, zdá-li se Vám, že jsem něco opomněl, někde jsem se spletl nebo se jen chcete vyjádřit, pište do tohoto tématu. Ověřený návod Tento návod prošel validací, a lze ho proto považovat za ověřený.
  2. Zdravím, včera a dnes došlo k reorganizaci návodů. Došlo ke smazání některých sekcí a k přidání nových. Stále platí, že návody musí projít revizí, aby mohly být označeny jako ověřené, a stále platí, že musí být zpracovány dle předlohy. a) Návody V hlavní sekci jsou všechny návody, které se týkají SA:MP funkcí a callbacků. Také jsou zde návody, které vysvětlují, jak něco vytvořit. Příklady: dialogy, textdrawy, cmd systémy, file systémy atd. Základy pawn a Rozšířené znalosti pawn Tyto podsekce sdružují návody, které se týkají přímo jazyka Pawn. V Základech jsou návody pro nováčky, v Rozšířených znalostech návody pro pokročilejší. Příklady pro Základy: proměnná, podmínky, cykly, funkce atd. Příklady pro Rozšířené znalosti: bitová manipulace, pokročilá inicializace polí, ternární operátor, pokročilá práce s řetězcem atd. c) Práce s YSI Podsekce pro návody o knihovně YSI. Příklady: y_ini, y_commands, y_groups, y_va atd. d) Nové návody Podsekce, která slouží k přidávání nových návodů. Pokud chcete založit nový návod, udělejte to zde. Jakmile dojde k ověření moderátorem, bude návod přesunut do příslušné (pod)sekce. e) Neověřené návody V této podsekci je většina dosavadních návodů. Žádný z nich neprošel kontrolou, proto je nemůžeme považovat za ověřené. Nezodpovídáme za pravdivost ani úplnost informací z těchto návodů.
  3. Obtížnost: Osnova: 1. Úvod, co je to podmínka 2. Vytvoření podmínky 3. Další možnosti větvení 4. Vnořené podmínky 5. Závěr 1. Úvod Dostáváme se k šestému návodu o základech jazyka Pawn. V něm si vysvětlíme, co to jsou podmínky a jak probíhá větvení. Než budeme pokračovat, měli byste mít znalosti alespoň z předchozích dvou návodů (z tohoto a tohoto). Abychom se posunuli dál, musíme si nejdříve říct, co to podmínka a větvení je. Podmínku si můžeme představit jako výraz (tvořený relačními a logickými operátory – viz návod na operátory), který je buď pravdivý, nebo nepravdivý. Je-li pravdivý, vykoná se kód, který jsme podmínili. Můžeme také určit, co se stane, když je výraz nepravdivý. Tomuto rozdělování kódu dle výsledku podmínek se říká větvení. Bloky ani klíčová slova if, else a switch neukončujeme středníkem! 2. Vytvoření podmínky Teď si zkusme vytvořit takovou podmínku a větev. Syntaxe je následující: . if(logický výraz) { //kód } . Klíčové slovo if nám značí, že se bude jednat o podmínku (z angličtiny if – jestliže). Do kulatých závorek píšeme logický výraz, který se má vyhodnotit. Mezi složené závorky (které nám tvoří větev – blok) píšeme kód, který se má vykonat, když je podmínka pravdivá. Zkusme si to na příkladu: . new cislo = 10; if(cislo == 10) { print("Hodnota proměnné cislo je rovna deseti."); } . Podmínka je pravdivá, kód se vykoná. Co by se stalo, kdyby podmínka pravdivá nebyla? Nestalo by se nic. Kód uvnitř bloku if by se nevykonal. 3. Další možnosti větvení Na začátku jsem psal, že může nastat i situace, kdy chceme, aby se něco stalo v případě, že podmínka neplatí. I to nám jazyk umožňuje provést, a to hned několika způsoby. a) else If nám tvořilo "pravdivou větev", else nám pak bude tvořit "nepravdivou větev", tedy blok, který se vykoná, když bude podmínka nepravdivá. Nutno dodat, že k else se podmínka nedává a že ho nemůžeme použít samostatně (je vázán na if). . new cislo = 5; if(cislo == 10) { print("Hodnota proměnné cislo je rovna deseti."); } else { print("Hodnota proměnné cislo není rovna deseti."); } . Podmínka se vyhodnotí jako nepravdivá, takže blok if se přeskočí a místo toho se vykoná blok else. b ) else if Složitější větvení nám pak umožňuje else if. Zjednodušeně řečeno je to else s dodatečnou podmínkou. Else if bloků může být více, ale stejně jako else nemohou stát samostatně. . new cislo = 5; if(cislo == 10) { print("Hodnota proměnné cislo je rovna deseti."); } else if(cislo == 5) { print("Hodnota proměnné cislo je rovna pěti."); } else if(cislo == 0) //tato podmínka se už vyhodnocovat nebude { print("Hodnota proměnné cislo je rovna nule."); } . A v čem je vlastně kouzlo else if? Script vyhodnotí podmínku v if, zjistí, že je nepravdivá, tak přeskočí k následujícímu else if. Opět vyhodnotí podmínku, zjistí, že je pravdivá, tak vykoná tento blok. K dalšímu else if už ale nepokračuje, protože jedna z podmínek nad ním byla pravdivá. A tím se liší od soustavy if – if – if; u takové soustavy by totiž script vyhodnocoval všechny podmínky nehledě na to, že některá z nich byla pravdivá. c) if – else if – else Samozřejmě to jde také vše zkombinovat, záleží jen na tom, co potřebujeme. . new cislo = 5; if(cislo == 10) { print("Hodnota proměnné cislo je rovna deseti."); } else if(cislo == 5) { print("Hodnota proměnné cislo je rovna pěti."); } else { print("Hodnota proměnné cislo není ani 10, ani 5."); } . d) switch Pro určité případy zde máme ještě jednu strukturu, a tou je switch. O switchi si něco povíme až v příštím návodu. 4. Vnořené podmínky Do teď jsme si ukazovali jednoduché podmínky a jednoduché větvení. Ale abyste si nemysleli, že je možné jen tohle, máme možnost podmínky vnořovat, tedy vkládat podmínku do podmínky. Viz tento příklad: . new cislo = 5; if(cislo > 0) { if(cislo == 5) { print("Hodnota proměnné cislo je rovna pěti."); } else { print("Hodnota proměnné cislo není rovna pěti."); } } . Zde je vidět, že uvnitř bloků lze tvořit další bloky. Platí to u podmínek, platí to u cyklů, platí to u všech struktur, které tvoří bloky. 5. Závěr A to je z podmínek všechno. Dozvěděli jste se, jak podmínky a větvení fungují, jak můžete uplatnit svou znalost relačních a logických operátorů v praxi, jak tvořit větev pro pravdu i nepravdu, jak vytvářet složitější podmínky a jak podmínky vnořovat. V dalším návodu si probereme onen zmíněný switch. Tento návod, stejně jako ten předchozí, je určen pro nováčky, pokročilejší věci byly buďto úplně vynechány, nebo jsou uvedeny ve spoilerech. Přesto, zdá-li se Vám, že jsem něco opomněl, někde jsem se spletl nebo se jen chcete vyjádřit, pište do tohoto tématu. Ověřený návod Tento návod prošel validací, a lze ho proto považovat za ověřený.
  4. Obtížnost: Osnova: 1. Úvod, co je operátor a operand 2. Dělení operátorů 3. Aritmetické operátory 4. Závěr 1. Úvod Vítám Vás u čtvrtého návodu pro začínající pawnery. Tématem tohoto návodu budou základní informace o operátorech, jejich dělení a aritmetické operátory. O dalších druzích operátorů napíši, vzhledem k množství informací, návod zvlášť. Ačkoliv to teď nevíte, operátory jsme využívali už v předchozích návodech, ale také v matematice (třeba +). Úkolem operátorů je vykonávat nějakou operaci (třeba sčítání). Aby tuto operaci mohli vykonávat, musí pracovat s tzv. operandy. Operand je nějaká hodnota, která stojí před, nebo za operátorem (čísla, která sčítáme). . 1 + 3 //plus je operátor, 1 a 3 jsou operandy . Operandy mohou být konstantní (neměnné), to jsou třeba čísla nebo jmenné konstanty jako MAX_PLAYERS, ale také variabilní (proměnné), to jsou proměnné, pole, návratové hodnoty funkcí apod. Kombinací operátorů a operandů vzniká výraz. 2. Dělení operátorů a) Počet operandů Dělit operátory můžeme podle různých kritérií. Prvním je počet operandů. Operátory s jedním operandem nazýváme unární, se dvěma operandy binární a se třemi operandy ternární. . !promenna //vykřičník je unární operátor 1 + 3 //plus je binární operátor výraz ? true : false //otazník s dvojtečkou jsou jediným ternárním operátorem v Pawn . b ) Účel Dále můžeme operátory dělit podle jejich účelu. Pak mluvíme o operátorech artimetických, relačních, logických, přiřazovacích a binárních. Tohoto dělení se budeme držet a ty hlavní skupiny si blíže rozepíšeme. 3. Aritmetické operátory Se základními aritmetickými operacemi jsme se setkali právě v matematice. Jsou to sčítání, odčítání, násobení a dělení. . new cislo = 5, cislo2 = 10; cislo + cislo2 //plus sečte dva výrazy (výsledek je 15) cislo - cislo2 //mínus odečte dva výrazy (výsledek je -5) cislo * cislo2 //hvězdička vynásobí dva výrazy (výsledek je 50) cislo / cislo2 //jedno lomítko vydělí dva výrazy (výsledek je 0.5) . Pak je tu ještě jeden speciální operátor pro dělení, který ovšem vrací zbytek po dělení. Nazývá se modulo. . cislo % cislo2 //procento vydělí dva výrazy a vrátí nám zbytek (zbytek je 5) . Všechny výše uvedené operátory jsou binární. Nezapomeňme, že pro ně platí stejná matematická pravidla jako v reálném životě (nulou nelze dělit, násobení má přednost před sčítáním, sčítání a násobení jsou komutativní operace atd.). Pokud chceme, aby nějaká operace měla přednost před jinou (sčítání před násobením), můžeme, stejně jako v matematice, použít kulaté závorky. . 4 * (1 + 1) //díky závorkám dojde nejprve k sečtení jedniček a až poté k vynásobení čtyřkou . Dalšími aritmetickými operacemi jsou inkrementace a dekrementace. S těmi se setkáme později u cyklů. Oba operátory pro tyto operace jsou unární a uvádí se buď před, nebo za proměnnou. Ano, v tomto případě musí být operandem proměnná / buňka pole. . new cislo = 5; cislo++ //inkrementace, hodnota proměnné cislo se zvětší o 1, tedy na 6 cislo-- //dekrementace, hodnota proměnné cislo se zmenší o 1, tedy na 4 . Jak už je uvedeno v poznámce, inkrementace zvýší hodnotu o 1, dekrementace sníží hodnotu o 1. Pro zajímavost (rozklikněte spoiler): . Poslední aritmetický operátor, který si zmíníme, je unární mínus. Uvádí se před operandem a jeho úkolem je převést kladné číslo v záporné a naopak. Na nulu nebude mít vliv. . -cislo . 4. Závěr První část návodu o operátorech je za námi. Vysvětlili jsme si pojmy jako operátor, operace, operand a výraz. Také jsme si uvedli, jak se operátory rozlišují a co to jsou aritmetické operátory. V příštím návodu si objasníme zbývající kategorie – relační, logické, přiřazovací a bitové operátory. Tento návod, stejně jako ten předchozí, je určen pro nováčky, pokročilejší věci byly buďto úplně vynechány, nebo jsou uvedeny ve spoilerech. Přesto, zdá-li se Vám, že jsem něco opomněl, někde jsem se spletl nebo se jen chcete vyjádřit, pište do tohoto tématu. Ověřený návod Tento návod prošel validací, a lze ho proto považovat za ověřený.
  5. Zombies Era RPG 2.0 O módu Někteří z Vás už někdy slyšely popřípadě nějakou dobu hrály na mém starém serveru Zombies Era. Přišla mi škoda nepokusit se vzkřísit tuhle “legendu“ a tak sem se rozhodl, že posbírám všechny své zkušenosti z předešlých projektů, okořením je špetkou originality a co z toho vzniklo můžete posoudit sami(zatim teda spíš představit, spuštění je v plánu 1. září). Nejedná se o klasické RP, kde si za klávesnicí nemůžete snad ani uprdnout aby to nepoznal admin a nesprdnul Vás, že jste nenapsali /do farting. Je to spíše RPG kde nikdo neřesí nějaký metagaming nebo powergaming. Proč? Protože pustina je krutá. Když potkáte hráče mimo chráněnou oblast, je pouze na Vás jestli se ho pokusíte zabít nebo ne. Ale pouze díky kooperaci s jinými hráči, budete skutečný válečník pustiny. Budete moci bojovat s ostatními frakcemi o důležité zdroje jako benzín, materiál na výrobu zbraní a munice a dokonce o samotné továrny na výrobu věcí potřebných k přežití. A bohužel do toho všeho Vás budou štvát zombíci. Zatím nikdo neví kde přesně se vzali, ale s největší pravděpodobností to má hodně společného s vládním programem LifeGuard (o tom více v samosttné části). Nejsou zase tak nebezpeční pokud máte čím se bránit. Co je to LifeGuard? (dále LG) Je to vládní projekt, který má zajistit přežití lidské rasy. Když zemře jedinec, který je součásí programu LG odešle stejnojmenné zařízení, které vlastní každý připojený subjekt, všechny charakteristiky a vlastnosti subjektu do hlavní centrály ve vesničce The Mud, kde potom klonovač vytvoří novou tělesnou schránku a nahraje do ní vědomí subjektu. Tímto je zaručeno přežití všech připojených. Nic ale není zadarmo. Každé klonování Vás bude něco stát. Síť LG má na starost skupina lidí, která si říká Officers (zároveň je to admin team). Hlídky Officerů pátrají po lidech bez klonovacího vysílače a rozdávají jim je (registrace nových hráčů) . Pohyb po světě Zombies Ery. ZE není open world RPG. To znamená, že se nepohybujete neustále v otevřeném 3D světě. Herní prostředí tvoří mapa světa po která se hráči pohybují pomocí TextDraw šipek. Když se přiblíží k některé lokaci, může pomocí kliknití myši na ENTER vstoupit do lokace. V případě náhodného setkání je buď tázan zda chce vstoupit, nebo je tam rovnu portnut bez varování. Všechny lokace v 3D světě jsou kruhového tvaru a jejich konec je znázorněn červenými lasery a napisy EXIT. Vystoupit z lokace je moné pouze pokud hráč není v režimu FIGHT. Tento režim znamená, že hráč utočí nebo někdo útočí na něj. V praxi to znamená, že pokud někdo někoho zasáhne, oba hráči se dostanou do režimu FIGHT po dobu 10ti sekund. Aby z tohoto režimu vystoupili, musí uplynout 10 sekud bez toho, aby je někdo zasáhl, nebo oni někoho. S každým dalším úspěšným útokem se režim FIGHT opět dostává na 10 sekund. Další lokace jsou hráčské základny (stan,domek), které jsou z mapy světa přístupné pouze jejich majiteli a tomu koho si tam přivede(když jako návštěvník takovou lokaci opustíte, její polohu si nezapamatujete). A podobné jsou základny frakcí (čerpací stanice, stará továrna, stará policejní stanice). Vozidla Vozidel je málo. Ale je dost možností, jak si nějaké obstarat. První možnost je si nějaké vyrobit. Takto je možné získat 3 typy vozidel. Banditto – jednomístná buggy Sanchez – dvoumístná crosska Freeway – dvoumístná motorka Ostatní vozidla musíte buď koupit, najít a opravit, zabít původního majitele a nebo ukrást. Dále je pár speciálních vozidel, které jsou pouze součástí questu a nebo jsou to unikátní vozidla, které lze pouze najít ve speciálních náhodných setkáních. Náhodná setkání Když se pohybujete po mapě světa, můžete narazit na spousty nepřátel. V náhodných setkáních narazíte na malé i velké skupinky zombie a také nájezdníků. Dost záleží na tom, zda cestujete sami, nebo s více hráči. Více hráčů, více zábavy. Dále jsou tu speciální náhodná setkání. Tato setkání může jedna postava nalézt pouze jednou. Obsahují unikátní vozidla, poklady, či sběratelské předměty. Obsahuje Dynamický systém lokací - generování,ukládání Dynamický systém NPC - NPC jsou v poolu a jsou použita, až když jsou třeba Systém replikací/klonování - když zemřete ve hře, jste znovustvořeni Hráčské frakce - možnost koupit základnu s názvem frakce Nehráčské frakce - možnost přidat se k frakci, kterou nezaložili hráči (dobrá věc pro hráče bez přátel ve hře) Boj o lokace - Gastown, Weapon factory PVP lokace - místa kde se objevuje loot (nikdy nevíte kdo Vás tam přepadne) Chráněné lokace - místa kde je hráč za střelbu trestán smrtí (The Mud, Downtown) Inspirováno hrami: Fallout 1 & 2 Fallen Earth Další informace budou postupně doplňovány, jakmile bude čas. Na závěr pár screenů... https://imgur.com/a/uqqWH Website: http://zombiesera.com
  6. Hi, i would like to freeze player and his car (tramway) on a checkpoint. My code: if(CP[playerid] == 6000) { SendClientMessage(playerid, COLOR_JOB," "); SendClientMessage(playerid, COLOR_JOB,"[Information]{EBECE1} Arrêt actuel: Motel"); SendClientMessage(playerid, COLOR_JOB,"[Information]{EBECE1} Prochain arrêt: Chapelle"); SetPlayerCheckpoint(playerid, 2283.8784, -1419.8206, 24.4352, 3.0); TogglePlayerControllable(playerid,0); SetTimerEx("UnfreezePlayer",10000,false,"d",playerid); CP[playerid] = 6001; return 1; } All works well (timer, no errors...) but: the player is freeze and not the tramway. It's a real problem thank you for your help.
  7. Zdravím chtěl bych vám představit nový herní mod na kterém jsem začal pracovat před 2-3 dny Mod se nazývá 4Life Herní mod by měl být klasický druh boje o přežití s ostatními hráči a zombie. Je pouze na vás pokud se spojíte s nějakým hráčem a rozjede nějakou skupinku kde můžete sbírat itemy a poté je dávat ostatním hráčum za herní měnu.Pokud vás to ovšem omrzí bejt "podnikatel" v boji o přežití můžete se pustit do lovu zombie. Za zabití hráče dostáváte nějaké zkušenostní body a zaty poté získáváte určité levely a stěma příchazí i nějaké výhody. Vlastně jak to probíhá sbíráte ze země předměty které využijete mezi předměty najdete i zbraně které se vám budou určitě hodit. V tomto herním modu také najdete spousty postav které vám můžou nějak pomoct ve tvorbě vašeho vlastního příběhu ve hře. Informátor přeživších Toto je prostě zakladní postava která by měla hráče informovat o ději modu. Jak to probíhá a co by měli udělat jako první věc. Prostě taková tutorial postava. Dealer předmětu Toto je postava která hráčum bude prodávat předměty jako je např jídlo,pití nebo items potřebné k práci. Např:Udice nebo GPS Výkupce předmětu Tato postava bude zas pro změnu předměty od hráču vykupovat o hodně menší cena než Dealer je bude prodávat. Je pouze na hráčích pokud si prodají své předměty za cenu která bude v nabídce. Za prodej předmětu hráči dostanou měnu bitcoin. Tato měna nefunguje jak v realitě je to čistě pro pojmenovaní. Prodejce zbraňí Tato postava bude prodávat zbraňě za nehorázně vysoké ceny hráčum proto je lepší když hráči si zbraně najdou nebo givnou mezi sebou.Záleží ovšem jak sem už říkal pouze na hráčich jestli jdou sami za sebe nebo si najdou spojence. Správce skladu Tato postava bude mejt na starosti skladiště které bude spravovat. Hráči si u něj budou moc kupovat sloty do kterých budou ukládat zbraňě. První slot na zbran bude mejt hráč zdarma poté si bude moc dokoupit asi 10 slotu. Do kterých bude moc vkládat zbraňě čímž si je bude ukládat a bude mejt jistotu že mu je nikdo nevezme. V modu bude také několik zadavatelů úkolu kteří vám vlastně pomůžou získat XP a Level. Úkolů bude asi 30-50 u několika postav bude záležet na vás jak se rozhodnete je plnit. Systém potřeb je založen na čtyřech zakladních bodech. Hlad Žízeň Spánek WC Tyto potřeby budete muset udržovat aby jste zůstali nějakej ten čas při životě. Každá potřeba má jinej druh ubíraní vaše status baru. Pomalejší nebo rychlejší. Injures systém to bude vlastně věc která bude určovat vaše zranění. Udejme si pár příkazu pro pochopení. Pokud hráč střelí hráče pomocí brokovnice ze 3 metrů hráč umře. Pokud ho střelí třeba s 20 metru kulka poškodí minimalní zranění. Pokud to bude něco mezi hráč bude krvácet. Krvacení bude lze zastavit pomocí obvazu čímž si můžete zachránit život. Každá zbraň bude mejt svoji možnost poškození takže každé napadení od zbraňě bude jiné. Samozřejmě že se pokusím udělat realistické. Ještě jedna věc a to je HeadShot na 1 ránu. Popravdě o tomto dost uvažuji sám ještě nevím zda tam dám že hlava = smrt. Uvidíme nechme se překvapit. Předměty můžete normalně sbírat a používat. Např udice rybaření. Pokud budete mejt pilu můžete kácet stromy. A podobně Zombie budou vytvořené na principu že pokud vás uvidí nebo uslyší vystřel jdou po vás. Zombie by měli mejt asi 200 hp pokud to teda zvládnu udělat. Protože tvorby zombie se opravdu bojím. Ale udělám proto všechno. Budete moc pokládat nazem předměty jako je plnej pytel nebo možnost zakladaní ohně a pár věcech. Každá věc bude mejt určitou vyhodu po použití. Ovšem protože toto by bylo suché tak uvažuji otom že by si hráči mohli zpracovávat material a zato by dostali stavební material Ze kterým by si mohli stavět a postavit třeba ukryt. Jenže když vidím pár hraču na serverech bojím se že budou dělat bordel pokud jim dám volnou možnost stavění. Budu doufat.
  8. Obtížnost: Osnova: 1. Úvod, co je řetězec 2. Nulový znak 3. Ukládání hodnot do řetězce 4. Závěr 1. Úvod Zdravím Vás, dostali jsme se už ke třetímu návodu pro začínající pawnery. Ještě než se do toho pustíme, doporučuji, abyste si přečetli předchozí dva návody (návod na pole – návod na proměnnou), zejména návod na pole, bez něj budete mít problémy pochopit problematiku řetězců. O řetězci (angl. string) byla řeč již dříve. Zopakujeme si to hlavní – je to pole znaků, do kterého ukládáme texty, zprávy, hesla atd. Každá buňka obsahuje jeden znak. Do poslední buňky nic neukládáme. Proč vlastně do poslední buňky nic neukládáme? Kvůli nulovému znaku. 2. Nulový znak Je načase, abychom si konečně vysvětlili, proč u řetězců potřebujeme buňku navíc, proč tuhle poslední buňku nikdy nezaplňujeme. Je to kvůli tzv. nulovému znaku (také EOS – End of String). Tenhle konkrétní znak (mimochodem vypadá takhle – '\0') v Pawn totiž určuje konec řetězce. Jazyk po nás požaduje, abychom mu sdělili, když řetězec skončí. Proto je nezbytné k délce řetězce vždy přičíst jeden znak navíc, ten je vyhrazen pro tento nulový znak. . new pozdrav[4+1]; //deklarace řetězce, která je nám důvěrně známa z předchozího návodu na pole pozdrav = "ahoj"; //uložení pozdravu do řetězce . Slovo "ahoj" má 4 znaky, celkem tedy potřebujeme řetězec o délce pěti znaků (4 + nulový znak). Abychom měli představu, jak to v tom řetězci vypadá, rozpitváme si ho: . pozdrav[0] = 'a' pozdrav[1] = 'h' pozdrav[2] = 'o' pozdrav[3] = 'j' pozdrav[4] = '\0' //onen nulový znak v páté buňce s indexem 4 . Ať už potřebujeme řetězec k čemukoli, vždy musíme myslet na tento nulový znak. Pro příklad, pokud funkce SendClientMessage může odeslat zprávu o maximální délce 144 znaků, řetězec s touto zprávou musí mít délku 145. 3. Ukládání hodnot do řetězce Existuje více způsobů, jak můžeme do řetězce něco uložit. Vlastně jich je spousta, my si ukážeme ty základní. a) Přímé ukládání pomocí operátoru přiřazení Tím mám na mysli rovnítko (=). Takhle jsme to dělali doposud, uvedeme identifikátor řetězce (bez hranatých závorek), rovnítko a poté text ohraničený uvozovkami ("). . pozdrav = "ahoj"; . Tento způsob ukládání lze použít, když přesně víme, co tam chceme uložit. Také je nutno podotknout, že ukládaný text nesmí být delší, než je délka řetězce. Upřímně si myslím, že s tímto se v praxi moc nepotkáte (akorát při inicializaci). Často je potřeba text upravit, dosadit do něj hodnoty proměnné apod. K těmto účelům nám slouží formátování. b ) Formátování Když formátujeme text, označujeme tím proces, při kterém do něj vkládáme hodnoty jiných proměnných a řetězců. Slouží nám k tomu funkce format. . format(output[], len, const format[], {Float,_}:...) . Za "output[]" dosadíme řetězec, kam chceme výsledný text uložit. Parametr "len" po nás chce délku výsledného textu. "const format[]" je onen text, který chceme formátovat. To poslední – "{Float,_}:..." – jsou proměnné/řetězce, které chceme dosadit. Ukažme si to na příkladu: . new hrac[4+1] = "Pepa"; //takto vypadá inicializace řetězce new penize = 500, score = 1000; //proměnné, které budeme dosazovat new vysledek[100]; //výsledný řetězec, kde bude nás formátovaný text format(vysledek, sizeof vysledek, "Hráč %s má %d dolarů a %d skóre.", hrac, penize, score); . V řetězci vysledek teď budeme mít: Hráč Pepa má 500 dolarů a 1000 skóre. . Ve fomátované zprávě jsme použili jisté znaky – %s a %d. Těmto znakům se říká specifikátory. Aby ta funkce format věděla, kam má to hrac, penize a score dosadit, musíme mu to dát nějak vědět. To je účel specifikátorů. Uvádíme je vždy v tom pořadí, v jakém po sobě jdou proměnné/řetězce, které dosazujeme. Máme následující specifikátory: %d nebo %i – celá čísla %s – řetězec %f – čísla s desetinnou čárkou %c – znak Nejsou všechny, ale jako základ nám tohle postačí. 4. Závěr A to by k řetězcům bylo všechno. Konečně již víme, co je nulový znak a k čemu slouží. Už víme, jak do řetězců ukládat běžný, ale také formátovaný text. Jediné, na co jsem ještě zapomněl – pomocí sizeof jsme zjistili velikost řetězce vysledek (počet buněk toho řetězce). Tento návod, stejně jako ten předchozí, je určen pro nováčky, pokročilejší věci byly buďto úplně vynechány, nebo jsou uvedeny ve spoilerech. Přesto, zdá-li se Vám, že jsem něco opomněl, někde jsem se spletl nebo se jen chcete vyjádřit, pište do tohoto tématu. Ověřený návod Tento návod prošel validací, a lze ho proto považovat za ověřený.
  9. Zdravím, asi jste si všimli, že přibyla nová sekce "Základy pawn". Po domluvě s Ewwem jsem se rozhodl, že většinu svých návodů z ewa (jiného fóra) přesunu i sem. Vyžádal jsem si na to svou sekci, za chvíli vysvětlím proč. Vlastně vysvětlím všechno. Proč to vzniklo? Jednoduše řečeno, je zde horda lidí, co žádají o pomoc se svým kódem nebo problémem, ale když jim někdo poskytne návod, jak toho dosáhnout, skončí to na tom, že dotyčný nezná základy. Odkázat jej na google či na samp wiki bez toho, aniž by to helper nějak přiblížil, má asi stejnou vypovídací hodnotu jako ten příspěvek od toho, co žádá pomoc. Řešením je odkázat jej na místní sekci "Návody", ale... ...ale to by v té sekci nesměl být takový bordel. Za ty roky se tam nahromadily stovky návodů, sice byl pokus o to je roztřídit (nice try, Petře, Hipe), ale že by to zrovna dvakrát pomohlo, to ne. Proto vznikla tato sekce, která bude sdružovat návody pro úplné začátečníky. Jakých návodů se to týká a co musí splňovat? Jsou to návody, které se věnují jednotlivým strukturám jazyka Pawn, jeho syntaxi apod. Já prozatím plánuji návody na proměnnou, pole, funkce, podmínky, cykly a řetězce. Co bude dál, to se uvidí. Přispět svým návodem může každý, ale návod v této sekci by měl splňovat tato pravidla, jinak by sekce postrádala smysl: 1. Návod musí být sepsán "jako pro blbce"; to znamená, že musí být vše pododrobna a srozumitelně vysvětleno, žádné odborné výrazy a úseky, popř. tyto úseky musí být od návodu nějak odděleny s upozorněním, že jde o něco navíc (já využívám spoilerů); 2. Tématem by neměla být žádná konkrétní funkce SA:MP (timery, 3dlabely apod.) ani žádný větší celek (jak udělat TDM, jak na anketu apod.), sekce je pouze pro věci týkající se Pawn; 3. Návod musí být v souladu s šablonou pro psaní návodů. Každý návod v této sekci musí projít schválením, když nebude splňovat bod 1 nebo 2, bude přesunut do sekce "Ostatní návody". V případě, že by nesplňoval bod 3, by jej uživatel musel nejprve upravit tak, aby byl v souladu s šablonou (není nutné to moderátorům znesnadňovat tím, že se to nebude dodržovat). Jak přesně to má pomoct? Zkušení pawneři mohou žadatelům o pomoc poslat odkaz na tuto sekci, pokud daný člověk nebude mít elementární znalosti Pawn. Závěrem Doufám, že se to osvědčí, udělat pořádek v celé sekci "Návody" si myslím je utopická myšlenka, takže tohle je (by mohla být?) ta zlatá střední cesta.
  10. Zdravím, tématem tohoto návodu bude hashování hesel; řeč bude zejména o nové funkci, která do SA:MP přibyla od verze 0.3.7 R1 – SHA256_PassHash. Opravdu jsem nevěděl, jakou zvolit obtížnost, ale vzhledem k úrovni vědomostí většiny místních uživatelů jsem se rozhodl pro 3/5 (pro středně pokročilé). Obtížnost: Co je hashování a k čemu slouží Pojem hashování znamená převod dat (v našem případě to budou hesla hráčů) na otisk neboli hash. K tomuto převodu nám slouží tzv. hashovací funkce. Hash, který nám vznikne, má několik klíčových vlastností: – nezáleží na tom, jak velká data jsou, výsledný hash bude mít velikost vždy pevně danou; – i při sebemenší změně dat (např. změna hesla z "ahoj123" na "ahej123") se bude výsledný hash podstatně lišit; – z hashe se k původním datům prakticky nelze dostat (proto jsou hashovací funkce označovány jako jednosměrné). Z těchto bodů by Vám už mělo být jasné, k čemu je hashování dobré – k ochraně citlivých údajů a procesů, kterými hesla nepochybně jsou. SHA-256 SHA-256 je hashovací funkce pocházející z rodiny hashovacích funkcí SHA-2. Používají ji kupříkladu protokoly TSL a SSL, ale své uplatnění najde i v Linuxu. V pawn tato funkce vypadá následovně: _ SHA256_PassHash(password[],salt[],ret_hash[],ret_hash_len) _ password[] – heslo, ze kterého chceme získat hash; salt[] – kryptovací "sůl", o které si za chvíli povíme; ret_hash[] – výsledný hash; ret_hash_len – délka výsledného hashe, která bude vždy 64. Solíme a solíme V úvodu o hashování jsem zmínil, že kryptografické hashovací funkce jsou jednosměrné, tedy že původní data z výsledného hashe už sotva získáme zpět. K těmto funkcím lze ještě přidat takzvanou sůl, což jsou náhodná data, která se připojují navíc k původním datům. Toto uplatníme právě při hashování hesel. Zvolí-li si uživatelé náhodou stejné heslo, díky unikátnímu "osolení" nám tak vznikne více variant, čímž zabráníme možným slovníkovým a podobným útokům. Co byste měli mít na paměti při generování soli: – sůl musí být vždy náhodně vygenerována, pokud budeme solit stále stejnou solí, bude to postrádat efekt; – tvoříme dlouhou sůl; pokud by si útočník chtěl udělat tabulku možných solí, sůl o délce dvou znaků by nám moc nepomohla. A jdeme skriptovat Teď, když už víme vše potřebné, je načase si ukázat, jak to bude vypadat v kódu. Vytvořím jednoduchý registrační systém, kam budu ukládat jen heslo a sůl. Jako první si nadeklarujeme potřebné proměnné. new pPassw[MAX_PLAYERS][65]; //hash bude mít vždy délku 64 znaků + EOS new pSalt[MAX_PLAYERS][11]; //délku soli jsem zvolil 10 znaků + EOS _ Následně si nadefinujeme pomocné funkce. GenerateSalt() //vygeneruje nám náhodnou sůl o délce 10 znaků { new salt[11]; for(new i;i<10;i++) salt[i] = random(126-33) + 33; //od ASCII 33 ('!') až po 126 ('~') salt[10] = EOS; return salt; } GetPath(playerid) //vrátí nám cestu k uživatelově souboru { new path[6+MAX_PLAYER_NAME+4+1]; GetPlayerName(playerid,path,sizeof path); format(path,sizeof path,"users/%s.txt",path); return path; } _ Nyní si ukážeme, jak to bude vypadat při registraci. public OnDialogResponse(playerid,dialogid,response,listitem,inputtext[]) { if(dialogid == DIALOG_REGISTER) { new File:f,salt[11],str[100]; salt = GenerateSalt(); //vygenerujeme náhodnou sůl SHA256_PassHash(inputtext,salt,pPassw[playerid],sizeof pPassw[]); //k zadanému heslu (inputtext) se přidá sůl (salt) a výsledný hash se uloží do pPassw[playerid] f = fopen(GetPath(playerid),io_write); //otevření souboru v režimu zápisování format("%s\r\n%s\r\n",pPassw[playerid],salt); //zapisované údaje (heslo a sůl) fwrite(f,str); //zápis do souboru fclose(f); //uzavření souboru return 1; } } _ Registraci se zápisem hashe bychom měli. Nyní se podíváme na to, jak budeme postupovat při přihlášení. Navazujeme na kód výše dialogem pro přihlášení. else if(dialogid == DIALOG_LOGIN) { new File:f,hash[65]; f = fopen(GetPath(playerid),io_read); //otevření souboru v režimu čtení fread(f,pPassw[playerid]); //přečtení hesla ze souboru fseek(f,2,seek_current); //přeskočení bílých znaků fread(f,pSalt[playerid]); //přečtení soli ze souboru fclose(f); //uzavření souboru SHA256_PassHash(inputtext,pSalt[playerid],hash,sizeof hash); //k zadanému heslu (inputtext) se přidá sůl (pSalt[playerid]) a výsledný hash se uloží do proměnné hash if(!strcmp(hash,pPassw[playerid])) //pokud je přihlašovací hash shodný s hashem ze souboru, jsou hesla identická { //správné heslo = úspěšné přihlášení } else { //nesprávné heslo = neúspěšné přihlášení } return 1; } _ Tím, že jsme k přihlašovacímu heslu přidali stejnou sůl jako při registraci hráče a celé ho poté zahashovali, nám musí vzniknout identický hash s hashem v souboru. Je-li tomu tak, uživatel zadal správné heslo, došlo k úspěšnému přihlášení. Pokud se hashe shodovat nebudou, bylo zadáno špatné heslo. Právě z tohoto důvodu je nutné zapisovat sůl do souboru společně s otiskem hesla. Závěr A to by bylo vše. Probrali jsme základní principy hashování, možnost SHA-256 hashování v pawn, ukázali si, jak vytvořit registrační soubor. Mimoto také můžeme vidět, že se dá obejít bez různých includů pro práci se soubory. Předem varuji, že kódy slouží pouze a jen jako ukázka. Cílem nebylo vytvořit registrační systém, jen poukázat na možnosti hashování. Pozdější komentáře typu: "Zkopíroval jsem to a nejde mi to!" budou pravděpodobně ignorovány nebo tězce zkritizovány ostatními. Samozřejmě, pokud jste našli jakoukoli chybu v tom, co jsem napsal, neváhejte mi zde zanechat vzkaz! Totéž platí i v případě, chcete-li se na něco zeptat nebo mi jen vyjádřit svůj názor. Návod označen jako platný Ten to návod byl označen jako platný.Návod může být kdykoli označen jako nevhodný či neplatný
  11. Zdravím rád bych se zeptal na otázku která podle mě zajímá více uživatelů této stránky. Jak jsem viděl už na více serverech to že pokud má hráč ve své složce ve které má GTA určitej soubor tak ho to kickne. Dejme tomu že budem pracovat ze souborem mod_sa Shrnutí: Pokud má hráč ve své složce s GTA Soubor mod_sa Hráče bude kicknut Jak se to dá nějakou jednoduchou cestou udělat ? Děkuji za vaše odpovědi.
  12. Rozhodl jsem se spustit a dokončit můj mód Re-Volt, dnes jsem odbugoval na co jsem měl čas, do módu přibyde postupně mnoho funkcí, které jsem tam kdysi plánoval :-) o co jde snad nemusím popisovat, hru ReVolt zná asi každý, jediné v čem se to od této hry zatím liší je, že toto je na způsob crashday a ne race. Příkazy: /setspawn = tímto příkazem si můžete určit spawn např u určitého vozidla /rules = pravidla /rtv = jako v csku, hlasování o jinou mapu /respawn = respawn vím, že popis není nic moc ale spěchám na bus no nic ip serveru je: samp.ixel.cz:3537 komentujte, kritizujte, pište co se má přidat do módu přátelé, díky zatím ahoj :-)
  13. Dobrý den Chtěl bych vám dnes představit připravujicí se hosting relispo.cz. Pár z vás tu vidělo tu zkázu od Zdenka... No nebudu se k tomu vyjadřovat. Takže chtěl bych vám představit hosting, u kterého dělám správce a snažím se něco udělat k dobrému. Co hostujeme? Náš hosting je velice široký a máme připraveno pro hodně služeb. Krom toho i speciálních jako hosting rádia a pod. Ale to vše je v přípravě aktuálně připravujeme SAMP hosting a potom MTA server hosting. Tyto hry hostujeme na vlastních serverech. Kvalita? Naše servery fungují na VPS od firmy hostzona.cz a fungujeme na principu omezení počtu serveru na jednom VPS, každá produkt má svoje VPS tedy SAMP má svoje vps MTA bude mít svoje VPS a tak dál. Pokud je limit VPS vyčerpán (Max 50-60% výkonu) tak se připraví nový server a na ten se dávají nové serveru a takto to funguje dál. A proto se nebojí říct, že vaše servery mají tu nejlepší možnou kvalitu. Další služby? Jako je již standartem tak u nás můžete čekat web hosting k serveru zdarma a taktéž zálohy nebo autoinstaller K prezentaci vše. Doufám, že jsem na vás zapůsobil celkem dobře a že se aspoň podíváte. Popřípadě mi prosím napište konstruktivní kritiku k webu
  14. THE STREET CODEX IP adresa: 93.91.250.147:27389 Facebook: /TheStreetCodex Rád bych vám představil multiplayer server pro hru GTA San Andreas. Celý mód je posazen do pouštní oblasti okolo A51. Následující informace jsou seřazeny chronologicky podle toho, jak na ně ve hře můžete narazit. Věřím, že nebude nouze o příjemnou atmosféru a dokážeme spolu vytvořit zajímavou komunitu plnou skvělých lidí zapálených do této hry. Pojďte se bavit! Brigády ✓ Lepení plakátů ✓ Odnos barelů ✓ Krmení hadů ✓ Rozvoz novin ✓ Doplňování muničního skladu ✓ Úklid města ✓ Sekání trávy ✓ Rybaření Potřeby ✓ Toaleta ✓ Hlad ✓ Energie ✓ Tekutiny ✓ Hygiena Autoškoly ✓ Řidičský průkaz A ✓ Řidičský průkaz B ✓ Řidičský průkaz C ✓ Řidičský průkaz D Práce ✓ Policista El Quebrados ✓ Policista Fort Carson ✓ Lékař El Quebrados ✓ Lékař Fort Carson ✓ Hasič ✓ Mechanik ✓ Popelář ✓ ChickenBoy ✓ Pošťák Podniky ✓ Obchod ✓ Elektroobchod ✓ Čerpací stanice ✓ Autoservis ✓ Veřejné WC ✓ Zbrojnice Další... ✓ Občanský průkaz ✓ Zbrojní průkaz ✓ Inventář ✓ Banky + bankomaty ✓ Vehicle system ✓ HP system ✓ Online radio Připravujeme ✓ Střelnice ✓ House system ✓ VIP system ✓ Event system ✓ Web Nejnovější informace jsou zveřejňovány na naší FB stránce! Na závěr bych velice rád zmínil všechny, kteří se jakýmkoliv způsobem podíleli či stále podílí na vývoji TSC. Všem vám patří obrovské DÍKY. HighPrint, nehehe, [FoX]Majci[enR_, Michellee, Vítek, Lukasz, KarToon, Mauno, Winz Pagganiny
  15. Ahoj hledam sponzora pro start noveho gaming portalu. Tento portal bude obsahovat spise counter strike servery typu DD2 , Furien , Jail , Deathrun Co hledam ? - Sponzora ktery dokaze zajistit Counter-strike servery pro chod portalu. - Webhosting - zajisten - Domena - zajistena - Admin Team - zajisten - Web - hotov - Servery - pripraven DD2 , Deathrun (ceka se na hosting ) - TeamSpeak3 server - zajisten Jelikoz sam tvorim Counter-Strike servery na zakazky tak jsem schopen udelat velmi kvalitni servery , na kterych hraci zazijou plno zabavy. Moje webovky s tvorbou na Wextra.eu Co nabizim ? - VIP reklamu v hlavicce webu , na kazdem serveru reklamu v chatu kazdych 10 minut , po zavedeni VIP systemu na serverech nabizim 25% provizi z kazde objednavky , + zaslu i vyuctovani. Jen pro vazne zajemce PM
  16. Ahoj chci vás pozvat na nový hosting extreme-craft zabývá se hrou Gta samp mame zatím jedno vps Parametry: 2x CPU 2GB Ram 40GB disk link http://extreme-craft.eu/apanel/ fb https://www.facebook.com/extremesampfree?fref=ts používáme admin panel od lacess
  17. Ahoj nevím si rady chci když hráč není rcon admin aby mu to napsalo že není no tady to máte public OnPlayerCommandText(playerid, cmdtext[]) { if(IsPlayerAdmin(playerid)) if(!strcmp(cmdtext, "/adm", true)) { ShowPlayerDialog(playerid, 5, DIALOG_STYLE_MSGBOX, "{92e9ff}Admin Příkazy","{FF0000}Admin příkazy pouze pro rcon: {008000}/godmode", "Zavrit", ""); return 1; } else { ShowPlayerDialog(playerid, 5, DIALOG_STYLE_MSGBOX, "{92e9ff}Admin Příkazy","{FF0000}Nejsi Rcon Admin", "Zavrit", ""); return 1; }
  18. Čágo lidičky, chtěl jsem si udělat na serveru že když napíše ňáký příkaz na serveru tak mu to napíše Neznámý příkaz! ale mě to pořád ukazuje SERVER: Unknown command! nevíte v čem je chyba ? díky za pomoc... Kod: public OnPlayerCommandText(playerid, cmdtext[]) { if(!strcmp(cmdtext, "/Boost", true)) { if(EnableBoast[playerid]) { EnableBoast[playerid] = 0; SendClientMessage(playerid, 0x924161FF, "[ ! ] Boost Deaktivován."); } else { EnableBoast[playerid] = 1; SendClientMessage(playerid, 0x924161FF, "[ ! ] Boost Aktivován."); } return 1; } //-------------------------------------------------------------------------- return SendClientMessage(playerid, -1, "{FF0000}Neznámý příkaz!"); }
  19. ERRORY : Zdravím ! Mám tu drobné errory no už sedím pri nich okolo 3 hod. a na nič som neprišiel. errory. Riadky : Warningy ani nepotrebujem aby ste opravili,hlavne ERRORY,Ďakujem,PS : Som začiatočník.
  20. MajkX

    pomoc [Hledam] Samp Bot

    Ahojte pawneri potrebujem od vas mensiu pomoc. Hladam nejakeho SAMP BOTa , konkretnejsie progam , ktory by mi ingame obcas alebo aj vkuse hybal hracov , v urcitych intervaloch. Jedna sa svojim sposobom o nejake AntiAFK. Nasiel som uz vela scriptov , ktore vsak propagovali najme rusaci , a nebol som si nimy isty , preto pisem vam tu, aby ste mi poslali nieco co mate overene Je to na verziu 0.3z DAKUJEM
  21. Původně jsem to v plánu neměl, ale rozhodl jsem se, že tu trochu objasním, jak funguje ternární operátor ? : Obtížnost: Jak to funguje Nejprve trochu nezbytné teorie, tento operátor se nazývá ternární, protože, jako jediný v pawn, pracuje se třemi operandy. první operand ? druhý operand : třetí operand _ Operandem nazýváme výraz, se kterým operátor pracuje. Tohle by myslím stačilo, teď se podívejme na to, jak funguje. logický výraz ? pravda : nepravda _ Operátor nejprve vyhodnotí logický výraz, pokud je tento výraz pravdivý (true), vrátí to, co je za otazníkem. Pokud je výraz nepravdivý (false), tak vrátí to, co je za dvojtečkou. Uvedu příklad: #define CERVENA 0xFF0000FF #define MODRA 0x0000FF00 new color; color = GetPlayerTeam(playerid) == 1 ? CERVENA : MODRA; Nejprve dojde k vyhodnocení logického výrazu, kterým je GetPlayerTeam(playerid) == 1. Pokud hráčův tým je skutečně tým s ID 1, tak se do proměnné color uloží hodnota za otazníkem, tedy CERVENA. Pokud ovšem má hráčův tým jiné ID, uloží se do proměnné hodnota za dvojtečkou, tedy MODRA. Využití v praxi Ne všechno se dá pochopit z teorie, proto je lepší to ukázat na několika příkladech z praxe. Hráčův tým Vezměme si ještě jednou příklad seshora a trochu jej upravme. Budeme chtít, aby se proměnné color nastavila CERVENA, pokud bude hráčův tým mít ID v rozmezí od 1 do 10. Pokud ne, nastaví se proměnné hodnota MODRA. Jak to lze řešit přes podmínky: if(GetPlayerTeam(playerid) >= 1 && GetPlayerTeam(playerid) <= 10) color = CERVENA; else color = MODRA; _ Jak my to vyřešíme šikovně přes ternární operátor: color = GetPlayerTeam(playerid) >= 1 && GetPlayerTeam(playerid) <= 10 ? CERVENA : MODRA; GetPlayerTeam(playerid) >= 1 && GetPlayerTeam(playerid) - logický výraz CERVENA - hodnota, která se uloží, když je logický výraz pravdivý/true MODRA - hodnota, která se uloží, když je logický výraz nepravdivý/false Pokud se v tom pomalu ztrácíte a přijde vám to nepřehledné, můžete si to ozávorkovat: color = (GetPlayerTeam(playerid) >= 1 && GetPlayerTeam(playerid) <= 10) ? (CERVENA) : (MODRA); _ Else if? Někteří z vás si možná řeknou "A co když potřebuji další podmínku, tedy else if?!" I tohle je samozřejmě pomocí ternárního operátoru možné, ale předem vás varuji, že se v tom možná začnete ztrácet. Zadání je následující: pokud má hráčův tým ID 1, nastaví se CERVENA, pokud má ID 2, nastaví se MODRA, pokud má jiné ID, nastaví se ZELENA. color = (GetPlayerTeam(playerid) == 1) ? (CERVENA) : ((GetPlayerTeam(playerid) == 2) ? (MODRA) : (ZELENA)); Za dvojtečku jsme přidali další ternární operátor. Pokud se ID rovná jedné, není problém, nastaví se CERVENA. Pokud se jedné nerovná, přeskočí za dvojtečku, zde narazí na další ternární operátor. Vyhodnotí další logický výraz. Pokud se ID rovná dvěma, nastaví se hodnota MODRA. Pokud to nebude ani jedna a ani dva, tak je to logicky jiné ID => nastaví se ZELENA. Šlo by to takhle větvit i dál, vždy by se za dvojtečku přidal další ternární operátor, ale při větším počtu bude lepší využít klasických podmínek, popř. switche. Příklad na závěr A dáme si ještě příklad na závěr. Skloňování v češtině programátorům leckdy dost komplikuje práci, výsledek výpisu hlášek se nám mnohdy nelíbí, například tady: new pocetHracu = 3,str[145]; format(str,sizeof str,"%i hráčů na serveru.",pocetHracu); SendClientMessageToAll(-1,str); _ Server nám vypíše tohle: 3 hráčů na serveru. _ Ale my chceme, aby vypisoval: 1 hráč na serveru. 2/3/4 hráči na serveru. 5/6/atd. hráčů na serveru. _ Zkrátka aby to vypsalo správný tvar slova hráč podle počtu. Lze to řešit přes podmínky nebo switch: switch(pocetHracu) { case 1: format(str,sizeof str,"%i hráč na serveru.",pocetHracu); case 2,3,4: format(str,sizeof str,"%i hráči na serveru.",pocetHracu); default: format(str,sizeof str,"%i hráčů na serveru.",pocetHracu); } _ Ale my si to zkrátíme na jeden řádek pomocí ternárního operátoru. format(str, sizeof str,"%i %s na serveru.",pocetHracu,(pocetHracu == 1) ? ("hráč") : ((pocetHracu < 5) ? ("hráči") : ("hráčů"))); Za specifikátor %s se dosadí jeden z tvarů slova hráč. Je to také krásná ukázka toho, že ternární operátor lze použít i v parametru funkce. Ještě jedno upozornění na závěr, když má tento operátor vracet řetězec, tak jej uzavřete do závorek vždy! Nevím, zda problém stále trvá, ale dříve byly problémy s tím, že když to nebylo v závorkách, pawno mohlo spadnout. Edit: Potvrzeno, problém stále trvá, pokud řetězec do závorek neuzavřete, kompilátor přestane pracovat. Tímto ukončuji návod, doufám, že si z něj někteří něco odnesou a že vám tento operátor třeba v něčem ulehčí nebo pomůže. Pokud jste narazili na nějakou chybu nebo se chcete na něco zeptat nebo se jen vyjádřit, pište. Ověřený návod Tento návod prošel validací, a lze ho proto považovat za ověřený.
  22. Ahoj jsem tu nový a chtěl bych vás poprosit o hodnocení mapy kterou jsem udělal s jedním mím známím je to Stunt-Draglv.....u natáčení se omlouvám za použití S0beitu a za tak špatnou kvalitu videa...Prosil bych hodnocení x/10 přijímám pochvalu i kritiku Tímto bych chtěl poděkovat eXistenzovi za pomoc Video: Download: http://www.uloz.to/xqZgVmf/stunt-draglv-rar
  23. Čau prosím pomožte mi nefunguje mi include YSI zkompiluju a hlásí mi to chyby zde je kód: http://pastebin.com/aAaiCfMq a zde je výpis z kompilace: C:\Users\Dominik Rozporka\Desktop\Programy\Pawno\Pawno\include\YSI\y_hooks/impl.inc(1530) : error 025: function heading differs from prototype C:\Users\Dominik Rozporka\Desktop\Programy\Pawno\Pawno\include\YSI\y_hooks/impl.inc(1575) : warning 235: public function lacks forward declaration (symbol "OnEnterExitModShop") C:\Users\Dominik Rozporka\Desktop\Programy\Pawno\Pawno\include\YSI\y_hooks/impl.inc(1620) : error 025: function heading differs from prototype C:\Users\Dominik Rozporka\Desktop\Programy\Pawno\Pawno\include\YSI\y_hooks/impl.inc(1665) : error 025: function heading differs from prototype C:\Users\Dominik Rozporka\Desktop\Programy\Pawno\Pawno\include\YSI\y_hooks/impl.inc(1711) : warning 235: public function lacks forward declaration (symbol "OnVehicleDamageStatusUpdate") C:\Users\Dominik Rozporka\Desktop\Programy\Pawno\Pawno\include\YSI\y_hooks/impl.inc(1755) : warning 235: public function lacks forward declaration (symbol "OnUnoccupiedVehicleUpdate") C:\Users\Dominik Rozporka\Desktop\Programy\Pawno\Pawno\include\YSI\y_hooks/impl.inc(1983) : warning 235: public function lacks forward declaration (symbol "OnRconLoginAttempt") C:\Users\Dominik Rozporka\Desktop\Programy\Pawno\Pawno\include\YSI\y_hooks/impl.inc(2028) : warning 235: public function lacks forward declaration (symbol "OnPlayerUpdate") C:\Users\Dominik Rozporka\Desktop\Programy\Pawno\Pawno\include\YSI\y_hooks/impl.inc(2071) : warning 235: public function lacks forward declaration (symbol "OnPlayerStreamIn") C:\Users\Dominik Rozporka\Desktop\Programy\Pawno\Pawno\include\YSI\y_hooks/impl.inc(2115) : warning 235: public function lacks forward declaration (symbol "OnPlayerStreamOut") C:\Users\Dominik Rozporka\Desktop\Programy\Pawno\Pawno\include\YSI\y_hooks/impl.inc(2159) : warning 235: public function lacks forward declaration (symbol "OnVehicleStreamIn") C:\Users\Dominik Rozporka\Desktop\Programy\Pawno\Pawno\include\YSI\y_hooks/impl.inc(2203) : warning 235: public function lacks forward declaration (symbol "OnVehicleStreamOut") C:\Users\Dominik Rozporka\Desktop\Programy\Pawno\Pawno\include\YSI\y_hooks/impl.inc(2247) : warning 235: public function lacks forward declaration (symbol "OnDialogResponse") C:\Users\Dominik Rozporka\Desktop\Programy\Pawno\Pawno\include\YSI\y_hooks/impl.inc(2294) : warning 235: public function lacks forward declaration (symbol "OnPlayerClickPlayer") C:\Users\Dominik Rozporka\Desktop\Programy\Pawno\Pawno\include\YSI\y_hooks/impl.inc(2339) : warning 235: public function lacks forward declaration (symbol "OnPlayerTakeDamage") C:\Users\Dominik Rozporka\Desktop\Programy\Pawno\Pawno\include\YSI\y_hooks/impl.inc(2386) : warning 235: public function lacks forward declaration (symbol "OnPlayerGiveDamage") C:\Users\Dominik Rozporka\Desktop\EMenu+adminlevel.pwn(63) : error 001: expected token: ";", but found "public" C:\Users\Dominik Rozporka\Desktop\EMenu+adminlevel.pwn(65) : error 017: undefined symbol "UserPath" C:\Users\Dominik Rozporka\Desktop\EMenu+adminlevel.pwn(67) : error 017: undefined symbol "UserPath" C:\Users\Dominik Rozporka\Desktop\EMenu+adminlevel.pwn(77) : error 076: syntax error in the expression, or invalid function call C:\Users\Dominik Rozporka\Desktop\EMenu+adminlevel.pwn(79) : error 017: undefined symbol "ShowPlayerDialog" C:\Users\Dominik Rozporka\Desktop\EMenu+adminlevel.pwn(97) : error 017: undefined symbol "PlayerInfo" C:\Users\Dominik Rozporka\Desktop\EMenu+adminlevel.pwn(97) : warning 215: expression has no effect C:\Users\Dominik Rozporka\Desktop\EMenu+adminlevel.pwn(97) : error 001: expected token: ";", but found "]" C:\Users\Dominik Rozporka\Desktop\EMenu+adminlevel.pwn(97) : error 029: invalid expression, assumed zero C:\Users\Dominik Rozporka\Desktop\EMenu+adminlevel.pwn(97) : fatal error 107: too many error messages on one line Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase 12 Errors. pomožte mi prosím
  24. Zdravím sliboval jsem RolePlay ale nějak jsem se necejtil... K věci: San Fierro Life 1.0 Zdravím představuji vám San Fierro Life. Oco jde ? Jde o herní mod který se už z názvu odehrává jen v San Fierru. Server by měl napodobit Realitu ale zaměřen jako mody TIPU: Street Life Realná Země Co můžete čekat v modu ? Pro všechny: -Register System - Registrace a Přihlašení -House System - Možnost Koupení a Prodání domu -Vehicle System - Možnost Koupení a Prodaní Domu + Ovládání -Povolaní - Možnost zaměstnat se a vydělávat peníze -Akce - Určitě zajímavé akce pořádané administrátory -Firmy - Každý hráč si Může koupit,Prodat a vydělávat -Obchody - V obchodě lze nakupovat různé věci -Banka - Banka vkládaní a vybíraní penez + Dražba přes banku Pro hráče: -Inventář - Možnost inventáře papání atd... -AutoŠkola - Možnosti dokončení autoškoly -Zbrojní Průkaz - Zakoupení Zbrojního průkazu -Dražba - Dražení zbraní (Pomocí banky) -Nákup Skinů - Nakupovaní Skinu -Nákup Zbraní - Nakupovaní Zbrani -Nákup Alkoholu - Nakupovaní Alkoholu -VIP - Možnost VIP pro Hráče -Vykrádaní - Vykrádaní baru a ostatního Zaujalo tě to aspoň trošku ? Přijd knám : IP: 109.73.208.219:8467 Děkuji a Přiji pěkné vánoce doufám že vás to zaujalo více než ponožky pod stromečkem..
  25. Ahoj, .. přejdu rovnou k věci, je to tak dva týdny, co jsem si změnil angličtinu na češtinu (u Windows 7) Vše je v pořádku, vše funguje jak má, až na jednu věc, kterou je Pawno a SAMP, v techhto dvouch programech mi nejdou háčky a čárky, nevíte někdo prosím čim by to mohl být? Přikládám screen z Pawna. Jo ještě, ty háčky.. když třeba v pawnu dám háčky, tak se mi zobrazujou tak jako na obrázku, ale ostatním se pak na serveru zobrují jako háčky Na obrázku je napsáno "příliš žluťoučký koníček" - všem děkuji předem za pomoc.
×
×
  • Create New...