Jump to content

Search the Community

Showing results for tags 'odpočet'.

  • 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 3 results

  1. YSI4 ODPOČET #1 ***** Je celkem škoda, že je tu celé subfórum, ale prázdné. Tak mě napadlo toho využít. Hledal jsem chvilku nějaký odpočet bez použití YSI. Jelikož vEnd neumí pochopit pojem ukázka, tak jsem našel něcí starší odpočet na ewolutions(ewolutions.cz/topic/1661): Jak si můžete všimnout je tam použité dcmd(my god). Teď si to zkusíme vytvořit ve YSI knihovně. Začneme s tím, že si rozmyslíme, co si nahrajeme: y_commands - pro lepší, efektivnější práci s příkazama, včetně parametrů. y_timers - pro lepší a efektivnější práci s timerama. y_va - pro práci s již formátovanými fcemi nebo efektivnější spracovávání vlastních form. fcí. Potřebné includy z knihovny máme nahrané a tak můžeme pokračovat. Nejdříve si deklarujeme dvě proměnné. Jedna bude pro podmínku, jestliže běží nějaký odpočet a druhá bude na čas do konce odpočtu: new iOdpocet, bool:bOdpocet; Pokud to někteří z vás nezvládají tento krok, tak se YSI ani neučte. Děkuji za pochopení. Všimněte si, že máme jednu proměnnout deklarovanou jako integer a druhou jako boolen. Nyní si vložíme (zjednodušeně) příkaz. Můžeme si zvolit jaký chceme, tak například obyčejný odpocet: YCMD:odpocet(playerid, params[], help) { Oprávnění si bude moct každý přidat zvlášť podle svých potřeb nebo podle svého uvážení. Upozornění: Nemusíme vůbec přidávat preprocesor #pragma unused (přesněji na to samotné help, které vrací true v případě, že hráč zadá to, co má nastavené (například otazník)), jak velká většina lidí praktikuje. Je to naprosto zbytečně. Ale zpět k návodu, kde budeme pokračovat tím, že si přidáme nejlépe tři podmínky a k nim budeme vracet zprávy. První, jestliže zadal parametry správně: if (!strlen(params)) return SendClientMessage(playerid, -1, "< Chyba > Použití příkazu: /odpocet [5-60]"); Následně, jestliže ten čas, co zadal je správně v rozmezí 5-60 sekund: if (strval(params) < 5 || strval(params) > 60) return SendClientMessage(playerid, -1, "< Chyba > Použití příkazu: /odpocet [5-60]"); A na konec, jestliže už neběží nějaký odpočet: if (bOdpocet) return SendClientMessage(playerid, -1, "< Chyba > Odpočet již běží !"); Když máme podmínky za sebou následuje samotný odpočet. Nejdříve si jednou spustíme timer, defer tOdpocet(); Můžeme ho místo místo jednostranného spouštění pomocí defer ho opakovat pomocí repeat, ale to bychom ho pak musely zastavit, což je už trochu složitější, a není to tak jednoduché, jak to zní. Pak už jen přiřadíme hodnoty, a to tak, že bOdpocet přiřadíme true, jelikož odpočet bude běžet, tak aby se nezačal hned další a iOdpocet abychom věděli, kolik zbývá do konce: bOdpocet = true; iOdpocet = strval(params); return (true); /* A zakončíme návratovou hodnotou */ } Teď ke spracování samotného timeru. Ale není čeho se obávat. I to je velice jednoduché. Tak přidámi fci timeru: timer tOdpocet[1000]() { Slovo timer je poznámka pro compiler, že je o fci pro timer. Číslo se závorkou [1000] je počet milisekund, kdy se spustí timer (tedy, kdy začne "působit" kód uvnitř bloku), a závorky () je pro parametry, které voláme(přidáváme) spolu se spouštěním času (defer, repeat...). Pak si přidáme podmínku, jestli naše proměnná ještě nedosáhla hodnoty 0: if (iOdpocet != 0) { Uvitř bloku dáme, že se odešle již formátovaná zpráva GM pro všechny hráče se odpočtem: va_GameTextForAll("~r~%i", 1000, 3, iOdpocet); Všimněte si, že tady ve fci dostazujeme za specifikátory až ke konci. A nakonec znovu spustíme jednou timer, protože, kdybychom ho spustili jenom v příkaze, objeví se jenom číslo a konec: defer tOdpocet(); Ale nesmíme zapomenout, pokud tu podmínku splňuje, aka pokud ta hodnota je už rovna 0: }else{ Tak určitě se napíše zpráva START: GameTextForAll("~r~START", 3000, 3); A dokončíme tím, že zase přiřadáme proměnné bOdpocet hodnotu false, jinak by nám náš příkaz odpocet už další odpočet nepovolil: bOdpocet = false; } } Toť vše. Celý kód pro shlédnutí zde: Děkuji za pozornost a všem, kdo tento návod ohodnotí kladně a nebo repem. PS: mám v plánu pokračovat. 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. Zdravím vás potřebuji poradit ohledně odčítaní času v prisonu 1.) Čas neubíhá Takže v PlayerInfo mám ( Toto je zatím jen pro Info) Prison, LoadUser ( Načtení Uživatele ) INI_Int("Prison",PlayerInfo[playerid][Prison]); Do spawnu vlastně načtení jestli je hráč v Prisonu if(PlayerInfo[playerid][Prison] == 0) { new INI:File = INI_Open(UserPath(playerid)); INI_SetTag(File,"data"); INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid); INI_Close(File); SetTimerEx("Odpocet", 1000, true, "i", playerid); } Disconnect ( Odpojení ) (Ukladaní ) INI_WriteInt(File,"Prison",PlayerInfo[playerid][Prison]); A zde odpočítaní času Jak už mám o něco vejš ten TimerEx forward Odpocet(playerid); public Odpocet(playerid) { PlayerInfo[playerid][Prison]--; return 1; } Co by to mělo dělat ? Každou vteřinu odečíst jednen Prison vlastně čas v Prisonu z PlayerInfo Děkuji za Help a Informace Předem Popřípadě i urážky na moje chyby atd.... Samozřejmě že pak udělám z KillTimerem ale to ted není důležité jde jen o tento Code
  3. Palqoo_HE

    pomoc Pomooc

    čaute poradily by ste mi niekto ako spravit odpocet na preteky ? ako je napr.: /odpocet a aby ked dam napr.: /start a bude 20,19,18,17,16,..-0 ? spravite mi niekto a pošlete v pwn alebo date do komentara ? Dakujem vopred alebo sa mi ozvite na skype palymaly13
×
×
  • Create New...