Jump to content

Search the Community

Showing results for tags 'prikazy'.

  • 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

Calendars

  • Kalendář Pawno.cz

Categories

  • Verze

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 6 results

  1. I-ZCMD Obsah: Úvod I-ZCMD Vytváření příkazů Funkce includu Tipy a triky Příklady Závěr 1. Úvod: V tomto návodu se podíváme na práci s příkazovým systémem I-ZCMD. Konkrétně tedy probereme vytváření příkazů, používání funkcí includu a nějaké tipy. 2. I-ZCMD Příkazový systém I-ZCMD vytvořil Yashas, jako reakci na neaktuálnost ZCMD, z kterého také vychází. Jedná se o aktuálnější, optimalizovanější a rychlejší ZCMD. Stáhnout jej můžete na tomto githubu. Návod se bude držet aktuálního I-ZCMD, ale většina informací platí i k ZCMD od Zeexe. 3. Vytváření příkazů Příkazy můžeme vytvářet hned několika způsoby a to COMMAND:nazev_prikazu(playerid, params[]) { //další kód } CMD:nazev_prikazu(playerid, params[]) { //další kód } command(nazev_prikazu, playerid, params[]) { //další kód } cmd(nazev_prikazu, playerid, params[]) { //další kód } nazev_prikazu – váš název příkazu bez lomítka (kill, pm, admins). playerid – id hráče, který odeslal příkaz. params[] - text, který hráč napsal za samotný příkaz. Parametry jsou od názvu příkazu oddělené mezerou. pozn. V příkazech při vrácení 0 (CMD_FAILURE) a nepoužití OnPlayerCommandPerformed se vypíše hláška "UNKNOWN COMMAND". Doporučuji tedy vracet 1 (CMD_SUCCESS). V samotném scriptu nepoužíváme OnPlayerCommandText (I-ZCMD ho již zahrnuje), protože se stejně nezavolá. Místo této funkce zde máme dvě funkce, na které se nyní podíváme. 4. Funkce includu V I-ZCMD se narozdíl od ZCMD tyto funkce volají přímo. To je jednou z optimalizací, kterou tento systém prošel (ZCMD využívá funkci CallLocalFunction, která je více časově náročná). . ● OnPlayerCommandReceived(playerid, cmdtext[]) je plnou náhražkou za OnPlayerCommandText a má stejné parametry. Funkce se volá před samotným procesem zpracování a volání zadaného příkazu. Vrácením 0 můžeme ukončit zpracování příkazu, ale nebude vypsána hláška "UNKNOWN COMMAND". ● OnPlayerCommandPerformed(playerid, cmdtext[], success) je další ze zmiňovaných dvou funkcí. Narozdíl od předešle, se tato funkce volá až po zavolání našeho příkazu. Funkce má stejné parametry, ale jeden zde přibyl. Hodnota success odpovídá vrácené hodnotě funkce CallLocalFunction (pokud příkaz existuje, odpovídá vrácené hodnotě v daném příkazu). Díky tomuto parametru si tedy můžeme kontrolovat, zda příkaz existuje, proběhl v pořádku a podobně. Vrácení 0 v této funkci vypíše hlášku "UNKNOWN COMMAND". 5. Tipy a triky ● I-ZCMD není defaultně case-sensitive. Znamená to tedy, že příkaz "/prikaz" a "/PRIKAZ" vyvolá stejnou funkci, avšak tuto vlastnost můžeme změnit následující definicí (nelze u ZCMD). #define IZCMD_ENABLE_CASE_SENSITIVITY . ● Narozdíl od ZCMD, se nehookuje OnFilterScriptInit/OnGameModeInit, a proto nijak neřešíme definici FILTERSCRIPT. . ● Pokud chceme zjistit, zda hráč nezadal parametry, využijeme k tomu isnull (součástí includu). Viz spoiler. . ● Příkaz můžeme vyvolat odkudkoliv následujícím způsob (za playerid a params si dosadíme příslušné hodnoty) cmd_nazev_prikazu(playerid, params); Tímto způsobem můžeme jednoduše vytvořit mnoho příkazů, které provádějí stejné akce. 6. Příklady ● Jednoduchý příkaz na zabití hráče (bez parametrů). COMMAND:kill(playerid, params[]) { SetPlayerHealth(playerid, 0); return 1; } . ● Jednoduchý příkaz (s parametrem), ukázka použití isnull a chybová hláška. CMD:say(playerid, params[]) { if(isnull(params)) return SendClientMessage(playerid, -1, "Použití: /say [zpráva]"); new str[145]; GetPlayerName(playerid, str, MAX_PLAYER_NAME); format(str, sizeof str, "%s říká: %s", str, params); SendClientMessageToAll(str); return 1; } . ● Vlastní text místo "UNKNOWN COMMAND". public OnPlayerCommandPerformed(playerid, cmdtext[], success) { if(!success) return SendClientMessage(playerid, 0xFF0000FF, "Příkaz neexistuje"); return 1; } . ● Zakázání příkazů danému hráči. public OnPlayerCommandReceived(playerid, cmdtext[]) { if(isMuted[playerid]) { SendClientMessage(playerid, 0xFF0000FF, "Máte zakázáno používání příkazů"); return 0; } return 1; } . 7. Závěr To by bylo k tomuto návodu o jednom z nejrychlejších příkazových systémů vše. Pokud máte nějaké otázky, připomínky, nebo máte cokoliv jiného na srdíčku, můžete dát vědět do komentářů. Ověřený návod Tento návod prošel validací, a lze ho proto považovat za ověřený.
  2. ÚVOD Po poměrně delší době od prvního tématu jsem se rozhodl, že zkusím druhý díl, se kterým si chci dát více práce. Dnes bych vám chtěl říct něco, o prvních jednoduchých příkazech, ukázat, jak se pojmenovává gamemode a napsat pár vysvětlivek, které i právě chyběly u prvního tématu. První příkazy [*] Ve složce se serverem ve složce pawno si otevřeme soubor pawno.exe, doporučuji spouštět jako správce. Po otevření nalezneme několik funkcí, které nás zatím zajímat nebudou, ale pokusím se je ve vysvětlivkách popsat. Nalezneme tuto funkci: public OnPlayerCommandText(playerid, cmdtext[]) //Toto je funkce, kde se píši veškeré příkazy (warpy, hráčské příkazy..). { if (strcmp("/mycommand", cmdtext, true, 10) == 0) //Zde se udává, co chcete, aby se muselo napsat do chatu). { // Do something here //Zde se udává přímo ta funkce, pod těmito řádky vám ukážu vzor. return 1; //Ukončení příkazu hodnotou 1, ta hodnota 0 se píše až po posledním napsaném příkazu. } return 0; } // } = tímto se taktéž ukončuje každá funkce. VZOR PŘÍKAZU [Pouze vzor] { if (strcmp("/lv", cmdtext, true, 10) == 0) //lv = text, který jsem v mém případě napsal, co se musí do chatu zadat. { SetPlayerPos(playerid, x, y, z); //SetPlayerPos = Funkce pro změny pozice hráče (souřadnice si ukážeme příště). SendClientMessage(playerid, color, "Byl jsi odwarpován do LV !"); //SendClientMessage = příkaz, kde si můžete vytvořit zprávu pro hráče po napsání příkazu. return 1; //Ukončení příkazu hodnotou 1, ta hodnota 0 se píše až po posledním napsaném příkazu. } return 0; } Pojmenování gamemodu [*] Najdeme funkci: public OnGameModeInit(). //Funke, kde se pojmenovává mod, zapisují souřadnice s vozidly, ... Máme tam: SetGameModeText("Blank Script"); //Místo toho Blank Script si gamemode pojmenujeme. To samé zde: main() { print("\n----------------------------------"); print(" Blank Gamemode by your name here"); //do závorky místo toho Blank gamemode... napíšeme název gamemodu. print("----------------------------------\n"); } Vysvětlivky na závěr [*] V confingu: gamemode0 //V confingu se za gamemode0 vždy napíše název gamemodu před spuštěním serveru. rcon_password //Heslo,díky kterému se můžete na serveru přihlásit jako rcon administrátor. maxplayers //Počet slotů, kolik chcete na serveru mít, to znamená, že kolik max. hráčů může být online najednou. hostname //Za hostname se píše jak chcete, aby se váš server v server listu jmenoval. filterscripts //Za filterscripts se píši názvy filterscriptů, které chcete na serveru mít, např: House systém, Job systém, ... weburl //Za weburl se píše název vašeho webu serveru, pokud tedy nějaký máte. language //Za language se píše jazyk vašeho serveru. Zobrazí se v server listu. V pawnu: include //Includy jsou vlastně takové věcičky, které musíte mít ve složce pawno/include, jinak by vám některé systémy nemusely fungovat. public OnFilterScriptInit() //Funkce, kde se pojmenovává váš filterscript. print("\n----------------------------------"); print(" Blank Gamemode by your name here"); //Zde se pojmenovává váš gamemode. print("----------------------------------\n"); public OnGameModeInit() //Funkce, kde se zapisují souřadnice aut, ikony na mapě, objekty, ... public OnPlayerCommandText(playerid, cmdtext[]) //Funkce, kde se vytváří příkazy, warpy, ... Toto už by mohlo být vše, funkcí je hodně, ale z toho, co jsme zatím dělali, tak je to dostačující. Tak snad někdy příště pokračování. S těma barvama, nevěděl jsem, jestli to nechat tak, počkám na ohlasy.
  3. Dobrý den. Mám problém s touto funkcí. Tuto funkci používám na získání informací z příkazu například /kick hrač důvod. if(!strcmp(cmdtext, "/kick", true, 5)){ if(Rank[playerid] == 3 || Rank[playerid] == 4){//pokud je hráč admin new num,message[256],text[256]; if(!sscanf(cmdtext[6],"is[256]",num,message)){ SendClientMessageToAllLang(0x0000FFFF,"|Server| - {FA710C}Admin kicked player","|Server| - {FA710C}Admin kikl hráče"); if(Language[playerid] == 1){ format(text,256,"|Server| - {FA710C}You will be kicked because: %s",message); }if(Language[playerid] == 2){ format(text,256,"|Server| - {FA710C}Budete kiknuti protože: %s",message); } SendClientMessage(playerid,0x0000FFFF,text); SetTimerEx("UdeleniKicku",100,false,"%i",playerid); }else{ SendClientMessageLang(playerid,0x0000FFFF,"|Server| - {FA710C}Bad format: use {1FCC06}/kick playerID","|Server| - {FA710C}Špatný formát: použij {1FCC06}/kick hračovoID"); } }else{ SendClientMessageLang(playerid,0x0000FFFF,"|Server| - {FA710C}You don't have permision!","|Server| - {FA710C}Nemáte oprávnění!"); } return 1; } Při napsání do chatu příkazu /kick a parametrů, tak mi to neustále hlásí špatný formát a to i v případě, že zadané parametry jsou správně. Toto chování mě dost zaráží, protože pár dnů před jsem vytvořil podobný příkaz, který využíval této metody a funguje bezchybně. Zde je jeho ukázka: if(!strcmp(cmdtext, "/creathouse",true,11)){ new Float:PozPX,Float:PozPY,Float:PozPZ,Float:inside1,Float:inside2,Float:inside3,name[256],price,text[256]; GetPlayerPos(playerid,PozPX,PozPY,PozPZ); if(Rank[playerid] == 4){ if(!sscanf(cmdtext[12],"fffs[256]i",inside1,inside2,inside3,name,price)){ //nějaký kód }else{ SendClientMessageLang(playerid,0x0000FFFF,"|Server| - {FA710C}Bad format: use {1FCC06}/createhouse InX InY InZ Name Price","|Server| - {FA710C}Špatný formát: použij {1FCC06}/createhouse VnitrekX VnitrekY VnitrekZ Jmeno Cena"); } }else{ SendClientMessageLang(playerid,0x0000FFFF,"|Server| - {FA710C}You don't have permission!","|Server| - {FA710C}Nemáte oprávnění!"); } return 1; } Proto bych se chtěl zeptat, kde dělám chybu, nebo neznáte-li někdo jiné řešení? Díky předem.
  4. Ahoj, chtěl bych se na něco zeptat. Zkoušel jsem udělat vlastní fs na warpy, ale nešlo mi tam použít dvakrát "OnPlayerCommandText". Možná, že na to jdu špatně, ale prosím jak to mám nastavit Díky
  5. lekpri

    pomoc Příkazy

    Ahoj Potřebuji pomoci. Dělal jsem zaměstnání, ale když jsem to zaměstnání zprovoznil tak nejdou některé příkazy. Když, ale povolání rozdělím každé zvlášť do filterscriptu tak příkazy jdou, ale já bych rád měl zaměstnání v jednom. Nevíte kde je problém? Prosím poradí někdo?
  6. Cau proc mi nefunguje to ze kdyz ve hre napisu /kara tak to napise ze tento prikaz neexistuje zde je cast kodu: if (strcmp("/kara", cmdtext, true, 9) == 1) { SendClientMessage(playerid, COLOR_RED, "[!] Pouziti /kara ID auta"); return 1; } proc mi to nejde?
×
×
  • Create New...