Tanga 131 Odesláno: 29. Říjen, 2013 Share Odesláno: 29. Říjen, 2013 Toto je prvá séria návodov pre úplnych začiatočníkov. Čo je to format: • Je to funkcia, ktorá spojí viac rozličných textov.Kedy použijem funkciu format: • Napríklad ak chcem, aby som z textov "ahoj" a "hráč" dostal "ahoj hráč"!Ako vyzerá funkcia format:Nasledujúci text si prečítaj velmi pozorne, podla toho budeš robiť. format(vysledokspojenia,sizeof(vysledokspojenia),"SKRATKA1 SKRATKA2",zdrojprvejskratky,zdrojdruhejskratky,...); Skratky, ktoré môžeš použiť: %s - použi toto ak zdrojskratky je text%d - použi toto ak zdrojskratky je celé číslo%f - použi toto ak zdrojskratky je desatinné číslo%c - použi toto ak zdrojskratky je len jeden znak*Existuje ešte pár typov, ale tie ti zaručene nebude treba Postup použitia format:Tento postup používaj vždy a všade. 1. Vytvor si premennú do ktorej uložíš výsledok spojenia textov.2. Napíš si tvar ktorý chceš, aby to malo.3. Napíš si funkciu a vyplň ju.4. Do tvaru tvojho textu vlož skratky5. Napíš, čo ktorá skratka znamená.6. Napíš počet znakov výsledku do definovania výsledku. Príklady použitia format: 1. Spojenie mena a priezviska: #include <a_samp> //Krok postupu 1 - vytvorím si premenné... new PrveMeno[20]; // Lebo meno hráča má max 20 znakov new Priezvisko[20]; new CeleMeno[5+20+20]; //Ak nechápeš 5+20+20 len čítaj ďalej, tam je to vysvetlené //Krok 2 - tvar výsledku - chceme "PrveMeno_Priezvisko" /*Krok 3 - napíš si funkciu format(CeleMeno,sizeof(CeleMeno),"PrveMeno_Priezvisko"....);*/ /*Krok 4 - použi skratky a aj Krok 5 - za tvar dopíš akú skratku si použil (musia byť zaradom) format(CeleMeno,sizeof(CeleMeno),"%s_%s",PrveMeno,Priezvisko);*/ /* Krok 6 - spočítaj si počet znakov a doplň celkový počet znakov do výslednej premennej %s_%s = 5 PrveMeno[20] = 20 Priezvisko[20] = 20 CeleMeno[5+20+20] */ format(CeleMeno,sizeof(CeleMeno),"%s_%s",PrveMeno,Priezvisko); // Výsledná funkcia SendClientMessage(playerid,VASA_FARBA,CeleMeno); // Toto vypíše to meno //Táto funkcia by fungovala, keby ste v okne SAMP mohli zadať meno aj priezvisko, čo však nie je možné. Je to len príklad. 2. Správa "Vitaj na serveri, menohráča." #include <a_samp> public OnPlayerConnect(playerid) { new MenoHraca[20]; new VyslednaSprava[21+20]; GetPlayerName(playerid,MenoHraca,sizeof(MenoHraca)); format(VyslednaSprava,sizeof(VyslednaSprava),"%s, vitaj na serveri!",MenoHraca); /* Sčítanie znakov: %s, vitaj na serveri! = 21 MenoHraca[20] = 20 VyslednaSprava[21+20] */ SendClientMessage(playerid,VASA_FARBA,VyslednaSprava); } 3. Vynadanie hráčovi pomocou príkazu #include <a_samp> #include <zcmd> #define DIALOG_NADAVKA 1 command(vynadat,playerid,params[]) { if(IsPlayerAdmin(playerid) { ShowPlayerDialog(playerid,DIALOG_NADAVKA,DIALOG_STYLE_INPUT,"Vynadanie","Zadaj ID hráča, ktorému chceš vynadať:","Vynadať!",""); } return true; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == DIALOG_NADAVKA) { if(!response || !strlen(inputtext)) return true; // Ak hráč zrušil dialóg, alebo nenapísal ID, neurobiť nič new MenoHraca[20]; new IDHraca = strval(inputtext); // premena textu na číslo new VyslednaSprava[39+20]; GetPlayerName(IDHraca,MenoHraca,sizeof(MenoHraca)); format(VyslednaSprava,sizeof(VyslednaSprava),"Administrátor rozhodol, že %s je deb*l!",MenoHraca); SendClientMessageToAll(VASA_FARBA,VyslednaSprava); } return true; } 4. Vynadanie hráčovi pomocou príkazu aj s menom admina #include <a_samp> #include <zcmd> #define DIALOG_NADAVKA 1 command(vynadat,playerid,params[]) { if(IsPlayerAdmin(playerid) { ShowPlayerDialog(playerid,DIALOG_NADAVKA,DIALOG_STYLE_INPUT,"Vynadanie","Zadaj ID hráča, ktorému chceš vynadať:","Vynadať!",""); } return true; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == DIALOG_NADAVKA) { if(!response || !strlen(inputtext)) return true; // Ak hráč zrušil dialóg, alebo nenapísal ID, neurobiť nič new MenoHraca[20]; new MenoAdmina[20]; new IDHraca = strval(inputtext); // premena textu na číslo new VyslednaSprava[35+20+20]; GetPlayerName(IDHraca,MenoHraca,sizeof(MenoHraca)); GetPlayerName(playerid,MenoAdmina,sizeof(MenoAdmina)); // tu zasa získanie meno admina z jeho ID format(VyslednaSprava,sizeof(VyslednaSprava),"Šéfino %s rozhodol, že %s je deb*l!",MenoAdmina, MenoHraca); SendClientMessageToAll(VASA_FARBA,VyslednaSprava); } return true; } Dúfam, že tento typ jednoduchého návodu s postupom je efektívny.Alebo prepadák jak hovado.Upozornenie pre skúsených: 1. Nepíš mi, že premenné sa dali definovať do jedného riadka2. Nepíš mi, že definícia formatu je nepresná3. Nepíš mi, že som mohol použiť strcat Informační návod - 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ý 2 Link to comment Share on other sites More sharing options...
Michal Kuřátko (_Michael_) 49 Odesláno: 29. Říjen, 2013 Share Odesláno: 29. Říjen, 2013 jo, pro nováčky se hodí, je to přehledná, rozepsané Link to comment Share on other sites More sharing options...
Tanga 131 Odesláno: 29. Říjen, 2013 Author Share Odesláno: 29. Říjen, 2013 jo, pro nováčky se hodí, je to přehledná, rozepsané ------------------------------------------------------------------ UF, prvý náraz som prežil, uvidím ďalšie kolá crashtastu . Hej, mne sa to tiež páči, ako v škole, nie ako na nete... Je to skrátka iné.. Len ma štve že do spoilera sa nedá dať farebný kód, lebo s farebným kódom v spojleri by to bolo TOP. Link to comment Share on other sites More sharing options...
wroxx 37 Odesláno: 29. Říjen, 2013 Share Odesláno: 29. Říjen, 2013 Pekné len ja osobne by som tie kody dal ako obrázok nech to nevedia skopírovať ale nech si to pekne opíšu Link to comment Share on other sites More sharing options...
MaXikinG27 0 Odesláno: 30. Říjen, 2013 Share Odesláno: 30. Říjen, 2013 Ano taky bych řekl že pro nováčky je to super, ale někdy myslím že by to potřebovali i ti pokročilí :D. Link to comment Share on other sites More sharing options...
Risontek 0 Odesláno: 30. Říjen, 2013 Share Odesláno: 30. Říjen, 2013 format(vysledokspojenia,sizeof(vysledokspojenia),"SKRATKA1 SKRATKA2",zdrojprvejskratky,zdrojdruhejskratky,...); 1. Toto je absolútne nevalidné, miesto sizeof(vysledokspojenia) použi sizeof(vysledokspojenia) - 1 To - 1 tam musí byť pretože posledná bunka v poli je '/0' 2. ,zdrojprvejskratky,zdrojdruhejskratky,... tam nemá čo hladať pokiaľ nemáš v 3. arg. %d,%s,%i,%f,... Link to comment Share on other sites More sharing options...
Lax. 28 Odesláno: 30. Říjen, 2013 Share Odesláno: 30. Říjen, 2013 - Meno hráča môže obsahovať aj viac znakov ako 14 (neviem s kade si nabral číslo 14). - V časti "2. Správa "Vitaj na serveri, menohráča." ti chýba GetPlayerName a v časti "Vynadanie hráčovi pomocou príkazu" už zase je. - Nemyslím si že by tento návod bol nejak super prehľadný. Link to comment Share on other sites More sharing options...
Tanga 131 Odesláno: 30. Říjen, 2013 Author Share Odesláno: 30. Říjen, 2013 1. Toto je absolútne nevalidné, miesto sizeof(vysledokspojenia) použi sizeof(vysledokspojenia) - 1 To - 1 tam musí byť pretože posledná bunka v poli je '/0' ---------------------------------------------------------------------------------------- Doprdele, na toho bastarda som zabudol hneď to tam pridám . EDIT: Nepridám, zdá sa mi že MAXPLAYERNAME neobsahuje ukončovací charakter, to mu pridáva SAMP automaticky - muselo by byť MAX_PLAYER_NAME+1. *Ak sa mýlim, oprav ma. 2. ,zdrojprvejskratky,zdrojdruhejskratky,... tam nemá čo hladať pokiaľ nemáš v 3. arg. %d,%s,%i,%f,... ----------------------------------------------------------------------------------------------------------------------------- Format použijem len tam, kde mám v argumente tie ukazovatele adresy. Zbytočné hovoriť o tom, že to tam nemá čo hladať... - V časti "2. Správa "Vitaj na serveri, menohráča." ti chýba GetPlayerName a v časti "Vynadanie hráčovi pomocou príkazu" už zase je. --------------------------------------------------------------------------------------------------------------------------------------------------------------------- Mal si mi napísať SZ, ako je to na spodu skriptu, keďže to nebolo testované, očakával som chyby Dík. - Nemyslím si že by tento návod bol nejak super prehľadný. ----------------------------------------------------------------------------- Neobsahuje cudzie programovacie termíny, ktoré by nováčik nemusel poznať => ja si myslím, že je prehľadný. - Meno hráča môže obsahovať aj viac znakov ako 14. ----------------------------------------------------------------------- No jasné, to mi ušlo, od 0.3d či kedy je 20. Dík za komenty, upravené.cvičenie robí majstra Link to comment Share on other sites More sharing options...
Risontek 0 Odesláno: 30. Říjen, 2013 Share Odesláno: 30. Říjen, 2013 ---------------------------------------------------------------------------------------- EDIT: Nepridám, zdá sa mi že MAXPLAYERNAME neobsahuje ukončovací charakter, to mu pridáva SAMP automaticky - muselo by byť MAX_PLAYER_NAME+1. *Ak sa mýlim, oprav ma. Áno, mýliš sa. Každé pole musí mať ukončovaciu bunku bez ohľadu na jeho obsah. SAMP nezasahuje po kompilácii niak do kódu. Preto tam MUSÍ byť - 1. Funkcia sizeof() vracia veľkosť pola aj s ukončovacou bunkou. Doporučujem toto: #define charsmax(%1) (sizeof(%1) - 1) a potom už len jednoducho: format(array,charsmax(array),"...") Link to comment Share on other sites More sharing options...
Tanga 131 Odesláno: 30. Říjen, 2013 Author Share Odesláno: 30. Říjen, 2013 (upraveno) NIČ, nedočítal som ten príspevok.. . Edited 30. Říjen, 2013 by Tango Link to comment Share on other sites More sharing options...
Hlavní moderátor vEnd 279 Odesláno: 30. Říjen, 2013 Hlavní moderátor Share Odesláno: 30. Říjen, 2013 Je to funkcia, ktorá spojí viac rozličných textov. to tedy je nepřesná definice, a ano, upozorním tě na to, k čemu to nováčkům bude, když se to už teď špatně naučí... format nespojuje texty, nýbrž nahrazuje zástupné značky (specifikátory) hodnotami proměnných a výsledný řetězec ukládá do nové proměnné potom by možná stálo za to uvést, že proměnné musí být uvedeny ve stejném pořadí jako je pořadí zástupných značek (i taková chyba se v nějakém helpu objevila), ale to už je maličkost Link to comment Share on other sites More sharing options...
Tanga 131 Odesláno: 30. Říjen, 2013 Author Share Odesláno: 30. Říjen, 2013 VEnd, je to tam napísané niekde. Link to comment Share on other sites More sharing options...
Amenadiel 286 Odesláno: 3. Listopad, 2013 Share Odesláno: 3. Listopad, 2013 %s - použi toto ak zdrojskratky je text text a nebo string . . . Link to comment Share on other sites More sharing options...
Tanga 131 Odesláno: 3. Listopad, 2013 Author Share Odesláno: 3. Listopad, 2013 String a text je to isté.String doslova znamená reťazec, reťazec znakov (písmen).Nechcel som však použiť cudzie slová v návode pre začiatočníkov. Link to comment Share on other sites More sharing options...
Amenadiel 286 Odesláno: 3. Listopad, 2013 Share Odesláno: 3. Listopad, 2013 String a text je to isté. String doslova znamená reťazec, reťazec znakov (písmen). Nechcel som však použiť cudzie slová v návode pre začiatočníkov. True Story Link to comment Share on other sites More sharing options...
Tanga 131 Odesláno: 3. Listopad, 2013 Author Share Odesláno: 3. Listopad, 2013 @Wilson: Link to comment Share on other sites More sharing options...
Amenadiel 286 Odesláno: 3. Listopad, 2013 Share Odesláno: 3. Listopad, 2013 @Wilson: Demente Link to comment Share on other sites More sharing options...
Tanga 131 Odesláno: 3. Listopad, 2013 Author Share Odesláno: 3. Listopad, 2013 SRY, nemohol som inak xDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD. Link to comment Share on other sites More sharing options...
Amenadiel 286 Odesláno: 3. Listopad, 2013 Share Odesláno: 3. Listopad, 2013 SRY, nemohol som inak xDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD. a co je to za čubku ? Link to comment Share on other sites More sharing options...
Tanga 131 Odesláno: 3. Listopad, 2013 Author Share Odesláno: 3. Listopad, 2013 Neviem :D .Ale to je moja taktika - tieto gify . Lepšie než humor. Link to comment Share on other sites More sharing options...
Amenadiel 286 Odesláno: 3. Listopad, 2013 Share Odesláno: 3. Listopad, 2013 Link to comment Share on other sites More sharing options...
DooM 93 Odesláno: 3. Listopad, 2013 Share Odesláno: 3. Listopad, 2013 Když jsem přečetl: „Je to funkcia, ktorá spojí viac rozličných textov.”, tak jsem se musel znovu podívat na název topicu, jestli opravdu děláš tutoriál na metodu format a ne na slučování stringů. Já bych to tedy definoval jako: Nahradí formátovací položky v zadaném řetězci obsahem zadaného objektu. Dál jsem to nečetl a jen projel očima a nevšiml jsem si, že bys někde psal parametry téhle metody, co tu popisuješ. format(vysledokspojenia,sizeof(vysledokspojenia),"SKRATKA1 SKRATKA2",zdrojprvejskratky,zdrojdruhejskratky,...); Tenhle řádek mě hned praštil do očí. To nebude fungovat, protože ti tam chybí formátovací položky(string, double, float, char, integer, etc.) A ten poslední parametr(ty tečky) berou často začátečníci jako součást kódu, takže to bych z toho taky vyjmul. Dále jsem si všiml, že jsi tam implementoval zcmd, ale tohle není tutoriál na zcmd a začátečníka to může zmást. format(VyslednaSprava,sizeof(VyslednaSprava),"Administrátor rozhodol, že %s je deb*l!",MenoHraca); Používat v tutoriálu vulgarismy je též zajímavé. No, když vezmu v potaz, že tohle je fórum plné dětí, tak nějaký ten vulgarismus navíc neuškodí. Oni už to stejně moc dobře znají, ale nevím co by si o tobě pomyslel nějaký vyspělejší nováček, který by sem jen tak náhodou zabloudil. A taky jak koukám. tak není úplně vše popsáno a to co je, tak ale velmi "lajcky". Je hezké, že je v tvém zájmu rozvinout zkušenosti a schopnosti začátečníků, ale nejdřív by jsi se měl sám to pořádně naučit a vysvětlit. Nezapomínej, že když tomu co jsi napsal rozumíš ty, tak tomu nemusí rozumět někdo jiný. Daný tutoriál potom značně ztrácí na kvalitě. Btw omlouvám se případně za úplně nepřesnou "terminologii". Jsem vysazený na C#. Link to comment Share on other sites More sharing options...
Tanga 131 Odesláno: 3. Listopad, 2013 Author Share Odesláno: 3. Listopad, 2013 Nepoužívaj takéto gify keď nevieš kedy.Ináč to dopadne katastrofálne. (viď tvoj príspevok) pwned . Doom-Omluva přijata - každý jazyk používa rovnakú terminológiu, ale povedzme, že to nevadí.Nadávka v návode je preto, že tak to nováčik má rád. Preto žiaci v škole nadávajú. Kým nebude profík, bude sa mu páčiť toto, nie komplexnosť skriptu.Práve robím návod na ZCMD, nech je začiatočník akokolvek začiatočný, toto by pochopil a ak nie, môže sa spýtať .Áno je to popsáno laicky - moje návody sú špecifické JEDNODUCHOSŤOU, kde sa napríklad aj skúsený ako WILSZON35 naučí čo je to string (len príklad ).A či je to spájanie stringov? Úplne hore to bolo napísané asi týždeň, kým som to nezmazal... BOLO TAM NEKOMENTOVAŤ AK POZNÁTE STRCAT. Keďže však som myslel, že každý to už videl, alebo mu dojde, že začiatočník nepotrebuje presnú terminológiu, lebo si ju nezapamätá, tak som to odtial zmazal.---Ďakujem za koment, ale čítanie s porozumením by okomentovalo automaticky tie tvoje komenty. Link to comment Share on other sites More sharing options...
Amenadiel 286 Odesláno: 3. Listopad, 2013 Share Odesláno: 3. Listopad, 2013 Nepoužívaj takéto gify keď nevieš kedy. Ináč to dopadne katastrofálne. (viď tvoj príspevok) pwned . Doom- Omluva přijata - každý jazyk používa rovnakú terminológiu, ale povedzme, že to nevadí. Nadávka v návode je preto, že tak to nováčik má rád. Preto žiaci v škole nadávajú. Kým nebude profík, bude sa mu páčiť toto, nie komplexnosť skriptu. Práve robím návod na ZCMD, nech je začiatočník akokolvek začiatočný, toto by pochopil a ak nie, môže sa spýtať . Áno je to popsáno laicky - moje návody sú špecifické JEDNODUCHOSŤOU, kde sa napríklad aj skúsený ako WILSZON35 naučí čo je to string (len príklad ). A či je to spájanie stringov? Úplne hore to bolo napísané asi týždeň, kým som to nezmazal... BOLO TAM NEKOMENTOVAŤ AK POZNÁTE STRCAT. Keďže však som myslel, že každý to už videl, alebo mu dojde, že začiatočník nepotrebuje presnú terminológiu, lebo si ju nezapamätá, tak som to odtial zmazal. --- Ďakujem za koment, ale čítanie s porozumením by okomentovalo automaticky tie tvoje komenty. řeknu ti to takle pawno umím ale když mám neco vysvetlil tak jsem v prdeli todle byl jen můj názor Link to comment Share on other sites More sharing options...
Tanga 131 Odesláno: 3. Listopad, 2013 Author Share Odesláno: 3. Listopad, 2013 Jasne, veď to bol len vtip s tými gifmi :). A Doom, zabudol som - mám tam aj tie argumenty napísané, keby si to čítal poriadne..Doom, neber to ako ukážku a ani ostatní:Nesnažte sa prosím machrovať, ak ste si neprečítali celý návod, aj s časťou, že je pre začiatočníkov a preto nepoužíva terminológiu.Obzvlášť, keď ani neviete čo píšete. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now