Jump to content

Search the Community

Showing results for tags 'ffredyk'.

  • 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

Found 10 results

  1. Zdarec prdi, jdu sem jen jako k odbytišti zboží Mám tu pro vás něco z mojí dílny Jmenuje se Bringo a potřebuje pomoc. Vy, jako hráči, máte nasbírat co nejvíc diamantů za co nejkratší čas. (Větší info dodám zítra editací - doufám.. ) Screeny: https://fbcdn-sphotos-d-a.akamaihd.net/hphotos-ak-prn2/t1/10081_690073024368615_1667765521_n.jpg https://scontent-a-fra.xx.fbcdn.net/hphotos-prn1/t1/1620641_690073011035283_1240171658_n.jpg https://scontent-b-fra.xx.fbcdn.net/hphotos-ash3/t1/1622257_690073031035281_1233167767_n.jpg https://fbcdn-sphotos-f-a.akamaihd.net/hphotos-ak-ash3/t1/1779346_690073017701949_464603490_n.jpg https://scontent-b-fra.xx.fbcdn.net/hphotos-prn2/t1/1779992_690072977701953_738901197_n.jpg https://fbcdn-sphotos-g-a.akamaihd.net/hphotos-ak-prn1/t1/150375_690072997701951_880715887_n.jpg https://fbcdn-sphotos-b-a.akamaihd.net/hphotos-ak-prn2/t1/1509940_690073027701948_1982130731_n.jpg Verze: AKTUÁLNÍ: -- 1.02 Changelog: v. 1.02 v. 1.01 v. 1.00 DOWNLOAD https://www.dropbox.com/s/nchtgs2uk7czpzt/Bringo_102.apk
  2. Nekdo z vas to jiz zna a nekdo jeste ne.. Zde vam ukazu jak DCMD pouzivat a co vsechno se s nim da delat.. Nejdrive samotna DCMD definice: Pokud ted chceme udelat prikaz pres DCMD musime si vytvorit neco jako "listener" nebo-li "poslouchac", ktery nam zajisti v pripade napsani hracem naseho prikazu, ze se vyvola ten spravny stock.. Tak tedy.. Napiseme si naseho posluchace do publicu OnPlayerCommandText dcmd(prikaz,5,cmdtext); Ted si vysvetlime proc to je tak a co to tam vsechno je.. Zacneme prvnim parametrem jimz je "prikaz". Je to text prikazu (bez /), ktery hrac musi napsat aby se nas prikaz vyvolal. "5" Je delka prikazu. Je to pro pozdejsi urcovani parametru prikazu, takze vzdy udavejte hodnotu delky vaseho prikazu (Kvuli lenosti pocitat se muzete nekdy divit proc vam prikaz nefunguje tak jak ma.. Kdyz napriklad mate prikaz "kill" a jako delku date 1 tak vam ve hre nepujde napsat /kill nybrz /k coz nepotrebujeme ). A nakonec "cmdtext" je zdroj cteni naseho poslouchace.. To znamena, ze DCMD se da pouzit i v OnPlayerText, OnRconCommand apod. (Dokonce ho muzete pouzit i v OnPlayerDisconnect pri urcovani duvodu.. Jen musite integer "reason" prevest na string jenz bude poslouchac cist..) Ted musime udelat stock jenz bude listener vyvolavat.. Neco o stocich a publicich si rozebereme v pristi lekci.. Takze ted se zatim nemusite obtezovat jak to funguje.. M osobne to, ze jsem umel DCMD driv nez jsem plne chapal stocky a publicy hodne pomohlo je pochopit. Takze si vytvorime kdekoliv v modu (Ve svete pawneru jsou zabehnute zvyky, ze DCMD stocky piseme bud pod/nad public OnPlayerCommandText a nebo nakonec/zacatek modu.. Nikdo neni rad, pri oprave ciziho scriptu, kdyz musi vse slozite hledat) stock na nas DCMD listener: dcmd_prikaz(playerid,params[]) { return 1; } Tento prikaz sam o sobe nic nedela.. Proto do nej pridame vypis textu do klientovo chatu. dcmd_prikaz(playerid,params[]) { SendClientMessage(playerid,BARVA,"Zadal jsi prikaz!"); return 1; } Barvu si dosadte sami.. Nejsem tu jak vase chuva a tim, ze tam nebudu psat barvu vas donutim aspon minimalne premyslet v cem j chyba (Myslim ty, kteri to oznaci, zmacknout CTRL + C vjedou si do pawna a CTRL + V). Kdyz nad tim budete aspon malinko premyslet, vas mozek bude pracovat s informacemi a stejne jako pocitac si nejaky informace musi ulozit. Akorat, ze pocitac si docasne informace hned maze, mozek vsak nikoliv. Ted jiz znate zakladni prikaz a jak do nej vkladat funkce.. Nyni si vysvetlime proc je tam to zahadne "return 1;". Je tam z toho duvodu, ze kdyby tam nebylo, nebo by tam bylo 0 (tudiz by prikaz vracel 0 = false) Server by bral prikaz jako neznamy a napsal by bylim textem: "Server Unknown Command" nebo neco v tom smyslu.. Ted si napisem co je "params[]" a k cemu nam slouzi. "params[]" je zde jako text toho, co je napsano za prikazem (tedy presneji "/prikaz " a dal uz je obssah "params[]"). Da se vyuzivat k urcovani cisel, textu a ruznych pozic (desetinnych cisel). My si ukazeme jak params pouzit jako urcivani cisel a textu.. Nejdriv si ukazeme prikaz warpu ve stylu "/warp [1 - 3]". dcmd_warp(playerid,params[]) { switch(strval(params)) { case 1: { SetPlayerPos(playerid,X,Y,Z); } case 2: { SetPlayerPos(playerid,X,Y,Z); } case 3: { SetPlayerPos(playerid,X,Y,Z); } default: { SendClientMessage(playerid,BARVA,"Prikaz je ve tvaru: /warp 1 - 3"); } } return 1; } "switch" jsme si vysvetlili v minule lekci (doufam) a "strval" je jednoduchy prikaz k prevodu stringu na integer. Tento prikaz je jasny.. Tak si zkusime prikaz na vypsani textu jako "console - nastext". V prikazu vyuzijeme tzv. "formatovani stringu", jenz znamena to, ze si string upravime presne podle nasich predstav (tohle opravdu nevim jak bych vam vysvetlil.. Proste a jednoduse, dela se s tim kazdy pokrocilejsi vystup textu). dcmd_prikaz(playerid,params[]) { if(strlen(params)) { new str[80]; format(str,80,"console - %s",params); SendClientMessage(playerid,0xFFFFFFFF,str); } else { SendClientMessage(playerid,BARVA,"Prikaz: /prikaz [text]"); } return 1; } Kdyz ptom ve hre napr. napisete "/prikaz ahoj" tak se vam do chatu napise bíle "console - ahoj". Doufam, ze jste pochopili.. Ted vam jeste ukazu zpusob, jakym se da docilit jedne funkce pomoci 2 a vice prikazu. Tedy abych vam to vysvetlil.. Mate treba jeden velky prikaz. Ale ted potrebujete uplne stejny prikaz, ale na jinou syntaxi (napr. prvni prikaz se pise "/warp 1 - 3" a druhej treba "/w 1 - 3". A chcete aby plnili tu stejnou funkci, ale nechcete zbytecne psat 2 stocky uplne stejny.. Da se toho docilit jednoduse: dcmd(warp,4,cmdtext); if(strcmp(cmdtext,"/w")) dcmd_warp(playerid,cmdtext[strlen(cmdtext)+1]); Doufam, ze tutorial pomuze.. Priste cokoliv !!
  3. V předchozích tutoriálech jsem se zapomněl zmínit o polích. Jde s nimi velice snadno zjednodušit práce.. Také vám ukážu jak použít enum, což je vlastně laicky řečeno "pole se jmény". Nejprve vám ukážu k čemu lze pole použít a jak ho vůbec vytvořit a pracovat s ním. Pole můžeme využít k uložení vícero informací do jedné jediné větvící se proměnné.. V Pawn využijete především pole jednoduché a dvojrozměrné.. Já sám jsem ještě troj a více měrné pole nepoužíval, takže ani vám neřeknu zda-li to vůbec jde (mělo by). Pole např můžete uplatnit v situaci kdy máte postaven výtah z 2 a více objektů.. Představte si situaci kdy jste si postavili do mapy výtah, ale ten výtah se skládá z více částí.. V pawn by většina lidí pro každou část výtahu vytvořila novou proměnou a ze scriptu by se mohl stát guláš plný zbytečných proměnných. Pro zpřehlednění scriptu a dosažení stavu kdy "to máte všechno pohromadě" využijeme pole. Deklarace pole je skoro stejná jako u normální proměnné, dokonce vám řeknu, že to děláte často pokud vytváříte stringy! Ano string = pole znaků! Takže i my vytvoříme vlastně string -> new pole[5]; Díky tomuto kódu máme pole o velikosti 5 větví (0 - 4). takže si do něj rovnou můžeme nasázet naše objekty: pole[0] = CreateObject(...); //První větev pole[1] = CreateObject(...); pole[2] = CreateObject(...); pole[3] = CreateObject(...); pole[4] = CreateObject(...); //Patá větev.. Pokud nevěříte spočítejte si to A dále můžeme pro pohyb výtahu použít MoveObject jako zde: MoveObject(pole[0],X,Y,Z,Speed); MoveObject(pole[1],X,Y,Z,Speed); MoveObject(pole[2],X,Y,Z,Speed); MoveObject(pole[3],X,Y,Z,Speed); MoveObject(pole[4],X,Y,Z,Speed); Dále může nastat situace, že výtahy máme dva! I zde lze využít polí, a nemusíme zvětšovat počet větví! Stačí vytvořit dvourozměrné pole. Dvourozměrné pole vytvoříme skoro úplně stejně jako pole normální, akorát jsou zde dvě sady počtu větví. new pole-vytah[2][5]; Nyní máme dvourozměrné pole (dvě pole v jednom). A můžeme do něj vložit naše výtahy: pole-vytah[0][0] = CreateObject(...); pole-vytah[0][1] = CreateObject(...); pole-vytah[0][2] = CreateObject(...); pole-vytah[0][3] = CreateObject(...); pole-vytah[0][4] = CreateObject(...); pole-vytah[1][0] = CreateObject(...); pole-vytah[1][1] = CreateObject(...); pole-vytah[1][2] = CreateObject(...); pole-vytah[1][3] = CreateObject(...); pole-vytah[1][4] = CreateObject(...); A zase můžeme s výtahem pohybovat jako v předchozím příkladu: Pohyb 1 výtahu: MoveObject(pole-vytah[0][0],X,Y,Z,Speed); MoveObject(pole-vytah[0][1],X,Y,Z,Speed); MoveObject(pole-vytah[0][2],X,Y,Z,Speed); MoveObject(pole-vytah[0][3],X,Y,Z,Speed); MoveObject(pole-vytah[0][4],X,Y,Z,Speed); Pohyb 2 výtahu: MoveObject(pole-vytah[1][0],X,Y,Z,Speed); MoveObject(pole-vytah[1][1],X,Y,Z,Speed); MoveObject(pole-vytah[1][2],X,Y,Z,Speed); MoveObject(pole-vytah[1][3],X,Y,Z,Speed); MoveObject(pole-vytah[1][4],X,Y,Z,Speed); Dobře a co když chceme udělat pole do kterého budeme přidávat hodnoty každou jinou k jinému účelu? To by jsme po chvíli museli pořád hledat jaká větev pole k čemu slouží.. Proti tomu můžeme použít enum, což je vlastně taková pomůcka jak pojmenovat větve pole! Pokud tedy chceme vytvořit pole do kterého uložíme: Počet zabitých hráčů, početzničených aut a nějaký serverový string. Tak vytvoříme enum: enum SRV { killed, destroyed, serverstr[120], } A nyní vytvoříme pole do kterého enum vložíme: new server[sRV]; Vidíme, že pro definici počtu větví používáme název enumu. Server si počet větví odvodí z počtu zadaných hodnot do enumu. Nyní již můžeme používat naše pole.. takže třeba do OnPlayerDeath: server[killed]++; OnVehicleDeath: server[destroyed]++; A nějaký příkaz pro zadání reklamy třeba: format(server[serverstr],120,"%s",params); Doufám. že jsem napsal vše co jsem chtěl a na nic nezapoměl.. Ono při psaní tak velké zprávy, kdy se člověk soustředí na jednu věc, zapomíná jako prase.
  4. <p>Nekteri si mysleji, ze psat vsechno krkolome a ruzne michat zavorky nema zadny vyznam.. Naopak.. Kdyz si script radkujete a "tabujete" tak se v tom lepsi pawneri (treba ja) lepe vyznaji.. Napr. kdyz mi nekdo predhodi script kterej je splacanej na 5 radcich a ani to neni tabovany tak ho poslu do ... Nikomu se nechce lustit kde co je a tak by se nemelo psat treba takhle: new string[20]; GetPlayerName(playerid,string,sizeof(string)); new string2[80]; format(string2,sizeof(string2),"Hrac se jmenuje %s",string); V tomto by se jeste kazdy vyznal.. Ale kdyz ptom mate slozitejsi funkce a mate to na 20 radcich.. Hledat ty promenne a funkce se nikomu fakt nechce.. Ukazka jak bych to zapsal ja: new string[20]; new string2[80]; GetPlayerName(playerid,string,sizeof(string)); format(string2,sizeof(string2),"Hrac se jmenuje %s",string); Na kompilator to nema efekt a reknete sami.. Nevypada to lip? Navic tabovani vyuzijete hlavne pri psani nekolika "zavorkovych" funkci do sebe.. Napriklad uvedu smycku, ktera kontroluje zda-li je hrac ve smycce pripojen a zda-li ma promennou [promenna] nastavenou na 1.. for(new i;i
  5. Nekdo neznamej ( :shifty: ) mi psal at napisu tut o klicovych slovech (ty modre). Tak ho pisu.. Jejich seznam naleznete zde http://wiki.sa-mp.co...ords:Statements . Takze projedeme to podle toho seznamu.. Napisu vam co jaka funkce dela a jak se pouziva a kde treba ji muzeme vyuzit.. Assert Tato funkce podle wikiny nefunguje (Tedy presne nevedi jestli funguje), ale je to neco jako logicka podminka if. Podle wiki, pry zastavi spusteni kodu, kdyz podminka selze... (Taky ptakovina aby nam to vyplo kod uprostred hrani ) Takze to preskocime. Break Tato funkce se pouzi ve smyckach k preruseni opakovani.. Pouziti: for(new i ; i < 5 ; i++) { printf("%d",i); if(i == 3) break; } Do konzole vypise: A kde by jsme to mohli vytuzit? Treba pri zjistovani hodnot v poli.. Napriklad mame u hrace pole Array[playerid][20]; Ale ne vsechna pole jsou zaplnena... A my napr. potrebujeme zjistit koli poli ma nejakou hodnotu (vetsi nez 0). V tom pripade vytvorime smycku o velikosti 20 loopu (Protoze pole vice hodnot nema) a jeste dodame novou promennou do, ktere budeme zapisovat pocet zaplnenych hodnot... new pocet = 0; for(new i ; i < 20 ; i++) { A ted potrebujeme podminku, ktera bude zjistovat zda-li je v dane casti pole hodnota a dale funkci v tele podminky, ktera bude pripisovat promenne "pocet" hodnotu 1. new pocet = 0; for(new i ; i < 20 ; i++) { if(Array[playerid][i] > 0) { pocet++; } A ted kdyz dana hodnota se uz rovna 0 prerusime smycku, protoze s nejvetsi pravdepodobnosti ani dalsi loopy nebudou mit zadnou hodnotu.. new pocet = 0; for(new i ; i < 20 ; i++) { if(Array[playerid][i] > 0) { pocet++; } else { break; } } A tim je hotovo... Case Case se pouziva v kombinaci s funkci switch.. Funguje jako rada logickych podminek. Pouziti: switch(promenna) { case 0: { print("Promenna ma hodnotu 0"); } case 1,2,3: { print("Promenna ma hodnotu 1 nebo 2 a nebo 3"); } case 4 .. 10: { print("Promenna ma hodnotu mezi 4 az 10"); } } Pouziti je hrozne moc. Od switchovani promenne reason v OnPlayerDisconnect az po slozite vetvene dialogy.. Continue Continue se pouziva stejne jako break. Break smycku prerusuje, ale continue preskoci aktivni loop. Default Pouziva se, k definovani zakladniho kroku v pripade, ze se zadny z case ve switchi nerovna promenne... Do Pouziva se v kombinaci s while.. A existuje vlastne jen proto, kdyz potrebujete, aby se smycka spustila aspon 1x. Pouziti: new w = 0; do { print("Smycka!"); w++; } while(w != 10); Else Else se pouziva, kdyz podminka if selze.. Napriklad: V logicke podmince kontrolujete, zda-li je hrac pripojen. A kdyz neni, tak se neprovede telo podminky, ale telo "else". Priklad: if(IsPlayerConnected(playerid)) { print("Je pripojen"); } else { print("Neni pripojen"); } Exit Exit ma ukoncit program, ale na wiki neni ani priklad pouziti a ani se nevi co dela v samp. Goto Goto preskoci na danou znacku v kodu.. Priklad: Skoc_sem: print("Skocil sem"); goto Skoc_sem; print("Toto se nikdy nevypise a vznikne nekonecna smycka"); Return Return se pouziva vsude, kde potrebujete navratit hodnotu.. V callbacku, stocku, logicke podmince, switchi atd.. Priklad: if(IsPlayerConnected(playerid)) { return 1; } Sleep Pozastavi vykon kodu na zvoleny parametr milisekund.. Funguje jen v main() Priklad: main() { print("Tedka"); sleep(1000); print("Po jedne sekunde"); } State Tomuto je venovan cely velky tutorial od Y_Lesse na samp forku http://forum.sa-mp.c...ead.php?t=86850
  6. <p>Pisu to proto, ze stale vidim ve scriptech co mi lidi posilaji na ICQ, ze v nich maji chyby to, ze cykly skoro vsichni delaji spatne.. Proto, uz jsem to nemohl vydrzet a musel jsem napsat tento tut.. Cely tut venuju cyklum i prave proto, ze tahle problematika muze nekomu prijit slozitejsi nez se zda.. Ovsem pokud si zapamatujete zakladni pravidla o tvorbe smycek (cyklu) nebudete mit problemy. OK. Podivame se na zakladni smycku, ktera vypise jmena vsech hracu na serveru do logu z pohledu novacka (tedy jak by to udelala vetsina z vas na ICQ) for(new i=0;i
  7. Podminkou se v pawn problematice oznacuje prikaz [if].. Je to tzv. "logicka podminka".. Budete ji pouzivat hodne casto.. Bez ni by se script opravdu neobesel [if] muzete pouzit opravdu na cokoliv.. Odehrava se s ni kazda udalost ve scriptu.. Vsechno je vlastne jen o ifech.. Napr. zjisteni jestli se Petr jmenuje opravdu Petr.. if(!strcmp("Petr","Petr")) { SendClientMessage(playerid,B_BILA,"Petr se opravdu jmenuje Petrl!"); } Nekoumejte ten vykricnik > ! < pred strcmp.. Ten vlastne tky nemusite nijak zvlast zkoumat.. Zatim staci vedet, ze to slouzi k porovnavani stringu.. Vyse uvedeny script funguje tak, ze porovna prvni hodnotu (string) s druhou (string) a kdyz se shoduji (prave pro to je tam > ! <) spusti script uvnitr podminky.. Zni to slozite, ale pritom je to uplne jednoduche... Proste kdyz je prvni argument v strcmp Petr a druhej argument tky tak to rekne, ze server muze jit dal.. Kdyby se Petr nejmenoval Petr, ale napr. Pavel, tak se script nespusti.. Da se ovsem udelat script i na pripad, ze se Petr opravdu Petr jmenovat nebude!.. To nam zajisti [else].. Vypadalo by to napr. takto: if(!strcmp("Petr","Petr")) { SendClientMessage(playerid,B_BILA,"Petr se opravdu jmenuje Petrl!"); } else { SendClientMessage(playerid,B_BILA,"Petr se nejmenuje Petr!!!"); } .. V prekladu [if] znamena "Kdyz" nebo "Jestli-že"... [else] zase znamena "Jinak".. takze by se to dalo chapat takto: "Kdyz(if) Petr(!strcmp("Petr") je Petr(,"Petr") tak ({ a }) jinak(else { a }).. Kdyz Petr je Petr tak> jinak> ... Mozna nepochopitelne, ale prectete si to znovu a pochopite.. Dalsi cast v pawn jsou newy.. Take hodne pouzivane.. Pouzivaji se jako ulozne prostory pro vase informace.. New je vlastne funkce [new], ktera vytvori promennou.. V pawn mame dokonce nekolik druhu promennych.. Mame stringy, integery, booly a floaty.. String je vlastne text.. Integer je zase jenom cislo.. Boolean je logicka promenna... Muze obsahovat jen "true" nebo "false".. Prelozte si to a pochopite.. Float je cislo.. Desetine cislo.. Ale funkce na vytvoreni je jen jedna, proto musime promennem pripisovat "volaci znaky" (sry ale nevedel sem jak to nazvat).. U stringu je to [pocet_znaku_stringu] new string[100]; U integeru to neni nic.. Jen hola promenna.. new integer; U boolu je to bool: pred promennou: new bool:Boolean; U floatu je to Float: pred promennou: new Float:float; Pridavat text do stringu muzete pomoci funkce [format].. format(string,sizeof(string),"Obsah stringu.."); Zadavat cisla do integeru muzete nekolika zpusoby: Nastavenim cisla na urcitou hodnotu: integer = 100; Pricitanim: integer += 100; Odecitanim: integer -= 100; Pricitanim 1: integer++; Odecitanim 1: integer--; Bool muzeme jen nastavovat: Boolean = true; Boolean = false; A u floatu stejne jak u cisel.. RCON je vestaveny admin script samp.. Urcite ho znate Banujete a kickujete s nim cheatery a nezvane navstevniky.. Od verze 0.3 s nim muzeme pracovat v pawn.. Da se diky tomu postavit dobra Anti-RCON hack ochrana.. Ovsem je omezeny jen na hrace ve hre.. Nebudu vam zde psat prikazy.. Ty byste meli znat.. Ale bylo potreba se o tom zminit... Doufam, ze tut se libil a nepiste sem kritiku.. Piste jen problemy a nazory..
  8. Az budete potrebovat help, nebo se budete na neco ptat.. Kazdej lepsi pawner na vas vytasi pawnerskej slovnik.. Zakladni pojmy vas naucim.. Na ty pokrocilejsi uz prijdete sami.. Nebudu to psat jako nejakej ohrom-článek, ale sepisu to jako ve slovniku.. New - funkce, ktera vytvari promene.. new promenna; Public - Cast scriptu, ktera je vyvolana pri nejake udalosti.. Jeji obsah je vykonan vzdy pri zavolani teto casti.. Zakladni: main() { } A udalost pri spusteni modu vypada treba takto: public OnGameModeInit() { } DCMD - System rychlych prikazu v pawn.. Musite mit definici pro pouzivani, ale to vetsina pawneru doda sama.. Definice: #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 Prikaz: dcmd(prikaz,pocetznakuprikazu,cmdtext); Definice prikazu: dcmd_prikaz(playerid,params[]) { return 1; } Define - Nadefinovani hodnoty.. Vetsinou barvy.. Nekdy i MAX promenne.. Nadefinovani bile barvy: #define BILA 0xFFFFFFFF Include - Bud prikaz ve scriptu nebo externi soubor.. Pokud se jedna o prikaz musi pred nim byt #.. Timto kompiler pozna, ze se jedna o Directive prikaz.. Pokud se jedna o externi soubor tak o tom venuju celej tutorial nekdy jindy.. Zakladni include: #include Stock - Skoro stejny jako public.. Jenze public muze vracet jen cisla.. Ale stock muze vracet cokoliv.. Samozrejme pojmu je mnohem vic.. Doufam ze vam to helpne..
  9. Prvni zalezitost, kterou by se mel pawner naucit je rozdil mezi pawn a pawno.. Pawno je officialni program pro psani kódů. Ale pawn je programovaci jazyk, ktery se pise prave do programu pawno.. Lip uz to snad ani vysvetlit neumim.. Dalsi zalezitosti jsou zakladni predpoklady proto abyste mohli programovat.. Kazdy pawner by mel uz byt trochu vice rozumnejsi.. Tzn. ze mensi jedinci hrajici hru, ktera neni pro ne by se jeste neme¨li poustet do pawneni.. Ti si mohou brat na zretel lehci programovaci jazyky.. Kazdy pawner by mel take umet anglicky.. Ne ze by to bylo opravdu nutne.. Ale zaprve to kazdemu pawnerovi usnadni praci (uceni) a wiki (vysvetleno nize) je take psana anglicky.. Mezi zakladni predpoklady take patri umet pracovat s programy, serverem (s tim se muzeme naucit pozdeji), umet brouzdat po slozkach, znat zakladni pojmy v PC problematice apod.. Zakladni program pawno je velice intuitivni a nechybi zde ani par klavesovych zkratek.. Tecky: Cervena - Vytvori novy script. Vlastne nacte obsah souboru new.pwn. Zluta - Nacte jiz ulozeny script. Zelena - Ulozi napsany script. Cyan - Hleda ve scriptu nebo hleda retezce a nahrazuje je jinymi. Cerna - Zkompiluje script. Zkompiluje znamena vlastne prelozi do formatu jenz cte samp server.. Tlacitko s otaznikem - Snad nemusim vysvetlovat.. Dokumentace a napoveda k programu. File, Edit, Build atd.. Jsou zalozky kde jsou podrobneji zobrazeny funkce jenz zaskakuje vyse vysvetlena tlacitka.. Nyni bychom jiz mohli pracovat s programem (Doufam.. Pac z meho pohledu jiz nevim co nevite vy a potrebuje te to... Me pawno prijde totalne jednoduchy a na vsechno v nem sem prisel uplne sam..). Ale jeste byste se mohli zeptat co to je za panel tam vpravo? To je panel kde jsou zobrazeny includy (vysvetlene v jine lekci) a funkce jenz obsahuji.. Pro nas zatim nepotrebne, ale jiz v druhe lekci vam vysvetlim k cemu mam to muze prijit k dobru.. Na zaver bych chtel dodat otazku jestli jsem tut napsal spravne, co bych mel doplnit ci smazat a jeste dodat: "Nejlepsi ucitel jsi ty sam.. Pawn se naucis 5x rychlejs kdyz na kazdou funkci a jeji pouziti prijdes uplne sam (popr. s malou pomoci)" Nejdulezitejsi klavesove zkratky: F5 - Kompilace scriptu do formatu .amx Ctrl + F - Vyhledavaci formular Ty by vam zatim mohli stacit Pripadny problemy piste zde do topicu.. Podotykam JEN problemy.. Cokoliv jineho se maze (psat do PMek nebo do chatu xP xD)
  10. Obtiznost tutorialu: 4/5 -> Jen pro pokrocilejsi pawnery Hi all.. Mam tu novy tut.. Brouzdal jsem wikinou a nasel funkci static.. Zde vam ji popisu. Staticka promena se pouziva v situaci kdy chcete pracovat s hodnotou (treba v smycce for) a nechcete si davat new na zacatek scriptu. Tak date do danneho scriptu statickou promenou a ona si bude pamatovat svoji hodnotu pred ukoncenim jednoho loopu smycky.. Nejlepe pochopitelno na prikladu: Takze tato funkce: public neco() //Nas vytvoreny public { for(new i = 0;i < 3; i++) //Smycka na 3 loopy { new a = 1; //Tento new nam vytvori promenou a s hodnotou 1 printf("%d", a); //Posle do logu cislo promenne a++; //pricte promene +1 }//ukonci smycku }//ukonci public Tato funkce nam do logu napise pod sebou 1 1 1. Pricemz kdyz pouzijeme statickou promenou: public neco() //Nas vytvoreny public { for(new i = 0;i < 3; i++) //Smycka na 3 loopy { static a = 1; //Vytvoreni staticke promenne s hodnotou 1 printf("%d", a); //Posle do logu cislo promenne a++; //pricte promene +1 }//ukonci smycku }//ukonci public Tak se nam do logu napise pod sebe 1 2 3. Staticka promena si totiz pamatuje svoji hodnotu kdyz se ukonci loop. Toho muzeme vyuzivat kdyz se nechceme otravovat s globalni promenou.. Pak je take globalni staticka promena. Tu jsem moc nepochopil ale podle vseho se muze odkazovat do includu daneho scriptu.. Na wiki samp je to napsane asi takto: Takze vam k tomu moc nepovim.. Myslim, ze jsem sem napsal vsechno co jsem pochytil z wikiny.. Zkuste si ty priklady dat do prazdneho scriptu a opravdu to funguje.. Ja osobne to budu ted pouzivat v kazdem pripade kdy se to hodi Ocekavam od vas kritiku, pripominky a samozrejme i podekovani
×
×
  • Create New...