DarkDragon_CZE69 17 Odesláno: 1. Červen, 2016 Share Odesláno: 1. Červen, 2016 (upraveno) Obtížnost: Obsah: - Věci ke stažení - Vysvětlení - Příklady - Návod - Závěr Věci ke stažení: ZCMD plugin: http://samp-scripts.com/post/INC_zcmd_031__Fast_amp_Simple_Command_Processor_updated_30102009-MatrixBoY-other_include-15/ Vysvětlení: Pocity jsou jednoduché měl by to zvládnout i pouhý začátečník. Jde o to že hráč napíše nějaký pocit např. /lol a napíše to do chatu všem "Hráč Ponozka se směje!". Ponozka to je jen nick, který jsem si vymyslel. Příklady: Zde je příklad kdybych chtěl příkaz /lol : CMD:lol(playerid,params[]){new string[136];format(string,sizeof(string),"Hráč %s se směje!", PlayerName(playerid));SendClientMessageToAll(0xFFFFFF,string);return 1;} NÁVOD: Takže jako neprve si vytvoříme tento stock: (Dejte ho třeba úplně dolů) stock PlayerName(playerid)// zjištění jména 1{new name[255];GetPlayerName(playerid, name, 255);return name;} Potom pod include <a_samp> si zapíšeme: #include <zcmd> A nyní k samotnému příkazu Takže vytvoříme si příkaz lol: CMD:lol(playerid,params[]) Pod to dáme { na další řádek dáme TAB a return 1; potom zas další řádek a }. Nyní jsme si vytvořili samotný příkaz, ale bez žádné funkce tudíž to nic neudělá. ZATÍM! Tákže nad return 1; si uděláme takovou funkci na maximální počet písmen new string[136]; Dále si uděláme formát, aby to vypisovalo hráčův nick: format(string,sizeof(string),"Hráč %s se směje!", PlayerName(playerid)); A nakonec samoszřejmě funkce SendClientMessageToAll, aby to napsalo všem hráčům na serveru: SendClientMessageToAll(0xFFFFFF,string); To je vše k příkazu lol a nyní si uděláme ještě dialog ve kterém budou všechny pocity. Takže začneme zase tím, že si uděláme příkaz třeba /pocity: CMD:pocity(playerid,params[]){return 1;} Vložíme funkci aby to zobrazilo dialog: ShowPlayerDialog(playerid,1457,DIALOG_STYLE_MSGBOX,"SEZNAM POCITŮ","/lol","Zavřít",""); 1457 - ID dialogu DIALOG_STYLE_MSGBOX - Styl dialogu "SEZNAM POCITŮ" - Nadpis, který je nahoře v dialogu ZÁVĚR: Ták a tohle je už úplně vše k těm pocitům můžete si samozřejmě těch pocitů udělat víc princip je stejný akorát upravíte text Já se loučím ČAU! Edited 1. Červen, 2016 by Stringer_CZE Link to comment Share on other sites More sharing options...
Invouk 91 Odesláno: 1. Červen, 2016 Share Odesláno: 1. Červen, 2016 (upraveno) Toto neni návod ale len kopíračka: stock PlayerName(playerid)// zjištění jména 1 { new name[255]; GetPlayerName(playerid, name, 255); return name; } Čo to robí ? čo to je ? ako to funguje ? prečo si zadefinoval name ? a meno aby obsahovalo 255 znakov ? neni snad limit iný ? #include <zcmd> A načo slúži ZCMD ? čo tak odkaz na to ? CMD:lol(playerid,params[]) Pod to dáme { na další řádek dáme TAB a return 1; potom zas další řádek a }. Nyní jsme si vytvořili samotný příkaz, ale bez žádné funkce tudíž to nic neudělá. ZATÍM! Ty si to strašne dokonale vysvetlil čo tak to aj naznačiť ?A čo je zase toto ? format(string,sizeof(string),"Hráč %s se směje!", PlayerName(playerid)); Ako to funguje ? prečo sizeof(string) čo to robí ? ShowPlayerDialog(playerid,1457,DIALOG_STYLE_MSGBOX,"SEZNAM POCITŮ","/lol","Zavřít",""); Toto si trošku vysvetlil... Edited 1. Červen, 2016 by eXpresS Link to comment Share on other sites More sharing options...
Hlavní moderátor vEnd 279 Odesláno: 1. Červen, 2016 Hlavní moderátor Share Odesláno: 1. Červen, 2016 Co se týče formy návodu, tak je to sepsané dobře (což zejména moderátoři dokáží ocenit ), ale obsah návodu za moc nestojí. Když to píšeš pro nováčky (1 hvězda z pěti), musíš to vysvětlovat krok po kroku a každou novou myšlenku, ale stejně jako u jiných, tak i u tebe mám pocit, že bys sám těch návodů pár potřeboval. Prvně, zcmd není plugin, nýbrž include. To je soubor s kódem, který pomocí direktivy include připojuješ k jiným souborům. PlayerName je funkce, která vrací hráčův nick, a to tak, že jej zjistí pomocí funkce GetPlayerName, uloží do řetězce name a vrátí pomocí slova return (mimochodem, velikost řetězce name by měla být správně 25, maximální počet znaků v nicku je totiž 24). A takhle bys ve vysvětlování pokračoval dál a dál, až bys došel ke konci. Chápeš, co tím chci říct? Pak by ti to lidé kladně ohodnotili a možná by ti to i moderátoři označili jako "ověřeno a schváleno". Teď to ale vypadá spíš tak, že to zapadne mezi ostatní návody, které jsou na tom podobně. 1 Link to comment Share on other sites More sharing options...
Scydo 397 Odesláno: 1. Červen, 2016 Share Odesláno: 1. Červen, 2016 (upraveno) Nějak hledám pointu návodu. Vlastně si jen vysvětlil, jak jinak můžeme použít 2 nejčastěji používané fce (formátování a odeslání zprávy). Je to prakticky to stejné, jako návod na tipy, nebo getinfo, akorát zaměním obsah. A jen taková menší chybička: Není to tedy sice nějak extra chyba(jak pro koho), ale na 100% nebudu jediný, na kterou tě bude někdo upozorňovat, a to velikost pole u proměnné v fci, která vrací zjištěné jméno hráče(eXpresS such a pawner, že ano)(EDIT: ach... vidím, že mě vEnd předběhl ...). I když stačí naprosto bohatě kolem 20, za MAX_PLAYER_NAME tě tady nikdo nezabije(určitě lepší než 255). To samé v tom příkaze lol. Stačí ti bohatě 37[ zpráva(16) + nick(20) + nul. znak(1) ]. Edited 1. Červen, 2016 by SkiBig18 Link to comment Share on other sites More sharing options...
Paulee 16 Odesláno: 1. Červen, 2016 Share Odesláno: 1. Červen, 2016 Tento návod by nováček asi těžko pochopil. Kod jsi mohl dát do kodu. Ty dvě modré šipky vedle sebe. Skoro nic jsi nevysvětlil. A jméno nikdy nebude mít 255 znaků . Další návod na prd. Link to comment Share on other sites More sharing options...
DarkDragon_CZE69 17 Odesláno: 1. Červen, 2016 Author Share Odesláno: 1. Červen, 2016 Díky moc vEnd a SkiBig18 za rady jinak ještě bych se chtěl vrátit k tomu co psal vEnd. Jak si tam psal že ZCMD není plugin ano to máš pravdu asi jsem se přepsal za to se omlouvám. A ještě jak si dole psal že to zapadne mezi ostatní návody tak to asi ano, ale mě to nevadí já stejně už od začátku s tím počítal. Přeci jen jsem takovej "Pokročilej začátečník" . Ale tak dělám to na tu kopíračku , aby si to ti nováčci hezky zkopírovali a potom to za nějakej čas pochopí možná i nazpaměť. Link to comment Share on other sites More sharing options...
Administrátor Ewwe 434 Odesláno: 7. Červen, 2016 Administrátor Share Odesláno: 7. Červen, 2016 Tak je prosím tě neuč hovadiny jak už zmínil vEnd už jen kvůli tomu jménu... Link to comment Share on other sites More sharing options...
DarkDragon_CZE69 17 Odesláno: 7. Červen, 2016 Author Share Odesláno: 7. Červen, 2016 Tak je prosím tě neuč hovadiny jak už zmínil vEnd už jen kvůli tomu jménu... Jestli se ti ten Návod nelíbí tak na něj neodpovídej... Link to comment Share on other sites More sharing options...
rEf 53 Odesláno: 8. Červen, 2016 Share Odesláno: 8. Červen, 2016 (upraveno) No vytvoření příkazu v zcmd a umístění zprávy do příkazu je velice složité. #include <zcmd> new bool:f=false; #define SCMTAF(%0,%1,%2) do{ new _s[128]; format(_s, sizeof(_s), %1, %2); SendClientMessageToAll(%0, _s); } while(f) stock PlayerName(playerid){ new n[MAX_PLAYER_NAME]; GetPlayerName(playerid, n, sizeof(n)); return n; } CMD:lol(playerid, params[]) return SCMTAF(-1, "Hráč %s se směje tomuto návodu.", PlayerName(playerid)); Edited 8. Červen, 2016 by rEf Link to comment Share on other sites More sharing options...
Administrátor Ewwe 434 Odesláno: 8. Červen, 2016 Administrátor Share Odesláno: 8. Červen, 2016 Jestli se ti ten Návod nelíbí tak na něj neodpovídej... Pokud vím tak to není nikde podmíňěno btw nerikam ze se mi nelibi jen rikam ze do návodu píšeš kraviny. Jméno v sampu je os vývojářů nadeinováno na 24 znaků. Samp client pustí jen 21 znaků. Troška matematiky 255*4 je 1024 bytů. 21*4 je asi 80 bytů To je ale rozdíl v paměti co ? A ted si ještě vynásob ty čísla poštem slotů resp pokud nemáš předefinováno MAX_PLAYERS tak si to vynásob 500 tolik paměti se ti naalokuje jen blbým číslem Link to comment Share on other sites More sharing options...
Paulee 16 Odesláno: 8. Červen, 2016 Share Odesláno: 8. Červen, 2016 (upraveno) Jestli se ti ten Návod nelíbí tak na něj neodpovídej... Svoboda projevu a vyjadřování ... Tento návod je o ničem, nějaké začátečníky to může posunout špatným směrem. Jako to, že jméno má maximální délku 21 znaků. Tento návod bych smazal, nebo aspoň řádně upravil, aby tam nebyli takové, s prominutím, stupidní chyby. Edited 8. Červen, 2016 by PetrPaulik 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