Jump to content

Search the Community

Showing results for tags 'afk'.



More search options

  • Search By Tags

    Oddělujte čárkami
  • Search By Author

Content Type


Fórum

  • Obecné
    • Pravidla a oznámení
    • Návrhy změn a hlášení chyb
    • Všechno možné
    • Hledám/nabízím
  • Hry a herní tematika
    • Diskuze
    • Grand Theft Auto V
    • Grand Theft Auto: San Andreas
    • Minecraft
    • Source hry
    • Jiné hry
    • Prezentace projektů
  • Software
    • Diskuze
    • Počítačové sítě
    • Operační systémy a aplikace
    • Programování
    • Grafika a webdesign
  • Hardware
    • Diskuze
    • Pomoc
    • Návody
    • Prezentace tvorby
  • Ostatní
    • Koš

Categories

  • Pawn – filterscripty a gamemody
  • Pawn – skripty od nováčků povinně sem
  • Aplikace a hry

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. Zdravím, Dávám sem FilterScript který nese název AFK System. Jedná se o Script, který je hodně využívaný, a už sem zde na forum zahlédl pár topicu které se týkali tipu " Máte někdo AFK system " Rozhodl sem se že něco zkusím zpracovat a podařilo se. Příkazy /afk /back Nedostatky Jelikož sem si nevzpoměl na funkci která zmrazí hráče a nastaví nesmrtelnost, udělal sem to tak, že hráč, který zadá příkaz /afk tak mu nastaví životy na 10 milionu % Tuším že to ej blbost ale tak snad se bude líbit. #include <a_samp> #include <zcmd> #define SCMTA SendClientMessageToAll #define SCM SendClientMessage public OnPlayerConnect(playerid) { SCM(playerid,-1,"{FF0000} [ AFK SYSTEM ]{00ffff}Server používá {870000}AFK SYSTEM {00ffff}by {870000}Tommy"); return 1; } CMD:afk(playerid) { new Jmeno[MAX_PLAYER_NAME]; new string[128]; GetPlayerName(playerid,Jmeno,MAX_PLAYER_NAME); format(string, sizeof(string), "{00ffff}Hráč {870000}%s {00ffff}odešel nachvilku od PC.", Jmeno); SCM(playerid,-1,"{00ffff}Pro návrat do hry použij {870000}/back"); SCMTA(0xAA3333AA, string); TogglePlayerControllable(playerid, 0); SetPlayerHealth(playerid, 100000000); return 1; } CMD:back(playerid) { new Jmeno[MAX_PLAYER_NAME]; new string[128]; GetPlayerName(playerid,Jmeno,MAX_PLAYER_NAME); format(string, sizeof(string), "{00ffff}Hráč {870000}%s {00ffff}se vrátil k PC.", Jmeno); SCM(playerid,-1,"{00ffff}Přejeme opět příjemné hraní."); SCMTA(0xE0FFFFFF, string); TogglePlayerControllable(playerid, 1); SetPlayerHealth(playerid, 100); return 1; } zanechte autora scriptu. Děkuji.
  2. YSI4 AFK #2 ***** Zdravím vás u dalšího návodu. Dnešní díl se bude týkat AFK systému. Opět jsem si pro vás připravil takovou ukázku, kde uživatel, který je jistě autorem tohoto kód, se snažil o naprogramování stejného scriptu, na který bude návod v tomto topicu, s opět využitím dcmd(ach jo): Znalosti některých uživatelů jsou vskutku mimořádné. Děkujeme uživateli HelloJeffry, který nám tento "kód" poskytl na (ewolutions.cz/topic/1170). Teď si to zkusíme vytvořit s využitím YSI knihovny. Začneme s tím, že si rozmyslíme, co si nahrajeme: y_commands - pro lepší, efektivnější práci s příkazy, včetně parametrů. y_playerarray - ušetří využití paměti, hlavně u boolen proměnných s polem. Rozdíl mezi y_bit a y_playerarray prakticky není. Jen y_playerarray je určená pro hráče. y_va - pro práci s již formátovanými fcemi nebo efektivnější zpracovávání vlastních form. fcí. Potřebné includy z knihovny máme nahrané a tak můžeme pokračovat. Začneme tím, že si deklarujeme jednu boolen proměnnou, ale pozor, s tagem PlayerArray!: new PlayerArray: bIsAfk<MAX_PLAYERS>; Pracování pak s tou proměnnou je sice jednoduché, ale pro vás to bude ze začátku celkem neefektivní, tak si na to můžeme udělat preprocesor: #define IsPlayerAfk(%0) Bit_Get(bIsAfk, %0) Nyní přidáme snad nejrozšířenější, nejčastější a nejvíce používanou funkci, a to funkci, která nám vrátí z fce GPN jméno hráče. Jelikož nepřidávám další velice známé slovíčko stock, tak jméno naší fce trošku zkrášlíme: GetPlayerNick(playerid) { new sNick[MAX_PLAYER_NAME + 1]; GetPlayerName(playerid, sNick, sizeof(sNick)); return (sNick); } Dále si přidáme (zjednodušeně) příkaz. Tak já nevím co vy, ale myslím, že příkaz afk je asi pro náš účel nejlepší volba: YCMD:afk(playerid, params[], help) { V případě, že by jste chtěli jiný příkaz, stačí jenom změnit slovíčko afk.. Tak, dále použijeme náš preprocesor a pomocí podmínky zjistíme, jestli není hráč již afk: if (IsPlayerAfk(playerid)) { Nyní budeme zpracovávat blok, který proběhne v případě, že hráč je afk, tudíž jestliže bude proměnná true. Začneme tím, že přiřadíme naší proměnné hodnotu false, jelikož je afk a jakmile zadá příkaz, tak už nebude: Bit_Vet(bIsAfk, playerid); TogglePlayerControllable(playerid, true); /* K tomhle snad nemusím nic povídat... */ ***** Rozdíl mezi Bit_Vet a Bit_Let. I když je celkem jasný rozdíl, nejspíše se najdou jedinci, co ho nevidí, tak vysvětlím: Normálně při nastavování u takových-to proměnných musí uživatel používat fci Bit_Set. Bit_Set(bIsAfk, playerid, true); Bit_Set(bIsAfk, playerid, false); Kdo tento způsob bude používat, tak maximálně bude upozorněn, že existuje lepší varianta a to zrovna Bit_Let, který nastaví proměnnou na true a Bit_Vet nastaví proměnnou zase na false: Bit_Let(bIsAfk, playerid); /* true */ Bit_Vet(bIsAfk, playerid); /* false */ Krom toho, že jsou rychlejší v zápise jsou také mnohem rychlejší po stránce funkčnosti. ***** A nakonec přidáme, že se všem odešle zpráva(již formátovaná), že se hráč úspěšně vrátil do hry: va_SendClientMessageToAll(0xFFA50000, "[ AFK ] Hráč %s se vrátil do hry", GetPlayerNick(playerid)); Ale nyní zpracovávat blok, který proběhne v případě, že hráč ještě není afk, tudíž jestliže bude proměnná false. Začneme tím samým akorát opačně, a to, že přiřadíme naší proměnné hodnotu true, jelikož není afk a jakmile zadá příkaz, tak už bude: Bit_Let(bIsAfk, playerid); TogglePlayerControllable(playerid, false); A pozor. Teď vám ukážu takový magický trik. Pokud chcete odesílat afk s důvodem v případě, že nějaký napsal, tak nemusíte na to přidávat zbytečně další blok. Ale stačí vám jediné, a to if-else. Prvně podmínka, jestli tedy nezadal žádné parametry: if (!strlen(params)) va_SendClientMessageToAll(0xFFA50000, "[ AFK ] Hráč %s je nyní AFK !", GetPlayerNick(playerid)); A teď jeho alternativu v případě, že napíše cokoliv, například ahoj, místo parametrů(/afk ahoj): else va_SendClientMessageToAll(0xFFA50000, "[ AFK ] Hráč %s je nyní AFK [ DŮVOD: %s ]!", GetPlayerNick(playerid), params); Neuvěřitelné, že? Z celých 2 bloků jsou pouhé 2 řádky!. A nakonec zakončíme blok a i celý příkaz a máme hotovo: } return (true); } Toť vše. Celý kód pro shlédnutí zde: Pak to dopadne nějak takto: 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ý
  3. lekpri

    pomoc AFK

    Ahoj Mám dotaz na AFK Na mém GM nemám afk systém a tak asi po jedné min. mě to vyhodí ze serveru. Když jsem zkoušel afk systém tak i tak mě to po jedné min. spadlo a tak jsem ho smazal. Prosím poradíte jak na ten afk? Jak to udělat aby to ve hře nespadlo a hodilo mě to do toho AFK? Děkuji za rady
×
×
  • Create New...