Přejít na obsah

[YSI] Afk [*] #2

Scydo SkiBig18 Afk YSI Návody

  • Pokud chcete odpovědět, přihlaste se
15 odpovědí

#1
Ernst Remer

Ernst Remer

    Nacistický pawner

  • Uživatel
  • Příspěvků: 1 295
  • Je tu celkem: 13d 10h 41m 2s

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):

Spoiler


Znalosti některých uživatelů jsou vskutku mimořádné. Děkujeme uživateli HelloJeffry, který nám tento "kód" poskytl na

Please Login or Register to see this Hidden Content

. 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!:



Please Login or Register to see this Hidden Content

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:



Please Login or Register to see this Hidden Content

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:


Please Login or Register to see this Hidden Content

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:



Please Login or Register to see this Hidden Content

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:



Please Login or Register to see this Hidden Content

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:



Please Login or Register to see this Hidden Content

*****
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.



Please Login or Register to see this Hidden Content

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:



Please Login or Register to see this Hidden Content

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:



Please Login or Register to see this Hidden Content

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:



Please Login or Register to see this Hidden Content

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:



Please Login or Register to see this Hidden Content

A teď jeho alternativu v případě, že napíše cokoliv, například ahoj, místo parametrů(/afk ahoj):



Please Login or Register to see this Hidden Content

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:



Please Login or Register to see this Hidden Content

Toť vše. Celý kód pro shlédnutí zde:

Spoiler


Pak to dopadne nějak takto:
W1lq.png

Děkuji za pozornost a všem, kdo tento návod ohodnotí kladně a nebo repem.
PS: mám v plánu pokračovat.

 

[success='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ý[/success]


  • 3


Ur9w.pngd649ffe2b5dae279f900288b2ce881fd49fdbdd6


#2
vEnd

vEnd

    Marc Wayne "B-Dup"

  • Globální moderátor
  • Příspěvků: 497
  • Je tu celkem: 46d 7h 6m 42s

Zcela by se dalo obejít bez YSI, ale poněvadž je to návod právě na YSI utility, tak budiž. Dobré (pár postřehů jsem ti psal osobně).


Upraveno uživatelem vEnd: 30 březen 2016 - 19:11:04

  • 0

96b259ac47244701b5097887d9439120.png

I always enjoy meeting people more chemically imbalanced than myself. -Trevor Philips
Roses are gay, violets are gayer, fuck the poem and listen to Slayer.
Unix is user friendly. It just happens to be very selective about who it decides to make friends with.


#3
UareBugged

UareBugged

    Your nightmare

  • Globální moderátor
  • Příspěvků: 1 136

Steam Profile


                                 
  • Je tu celkem: 29d 21h 12m 23s

Konečne si môžem spraviť afk systém na môj mc server :) 


  • 0

#4
BTomas

BTomas

    Pawn My Life

  • Uživatel
  • Příspěvků: 58
  • :

Vyborne, vse funguje..


  • 0

                      


#5
Quiter

Quiter

    Emmet

  • Uživatel
  • Příspěvků: 556
  • Je tu celkem: 2d 1h 55m 17s
  1. #define IsPlayerAfk(%0) Bit_Get(bIsAfk, playerid) - menšia chybička sa nájde všakže :klidek: 

  • 0
__________________________________________________________________________
Nikdy nehovor, že sa niečo nedá, pretože vždy sa nájde nejaký de*il, ktorý nevie že sa to nedá a urobí to!

#6
Mattsy

Mattsy

    Rovinky jsou pro rychlá auta. Zatáčky jsou pro rychlé jezdce

  • Uživatel
  • Příspěvků: 3 283
  • Je tu celkem: 1h 40m 46s
Je to fajn návod na knižnicu YSI ako ukážka funkcií a ich využitia ale ten jeho script zase nie je zlý, áno možno ten dôvod sa dá spraviť o pár riadkov kratšie ale to je asi tak všetko čo sa tam dá vyčítať....používa dcmd? no a čo? nechápem prečo ti to vadí, 90% uživateľov na tomto fóre ani nevie že nejaký bool existuje a nehovoriac o tom že 90% z tých 90% nedokáže urobiť dôvod na afk...

Návod ako ukážka YSI fajn ale tá výčitka v prvom scripte....to nemuselo byť
  • 0

!!! NIE SOM MATESSS A NEMÁM SHOOTER !!!

SVK_Mattsy.png
4e79071dddeb7643ddf3a57f06616a26.png


#7
Ewwe

Ewwe

    May the force be with you

  • Administrátor
  • Příspěvků: 3 830

Steam Profile


         
  • Je tu celkem: 46d 12h 31m 26s

Co dělá Bit_Let a Bit_Vet ?


  • 0

#8
GaRGoyLeS

GaRGoyLeS

    I thought it was the end, but it was actually just the beginning

  • Ověřený uživatel
  • Příspěvků: 745
  •   
  • Je tu celkem: 8d 18h 23m 26s

Co dělá Bit_Let a Bit_Vet ?

 

Využití vyplývá z popisků, nicméně by mu tam nějaký menší komentář k těmto fcím neměl chybět. ;)


  • 0

#9
Ernst Remer

Ernst Remer

    Nacistický pawner

  • Uživatel
  • Příspěvků: 1 295
  • Je tu celkem: 13d 10h 41m 2s

Zcela by se dalo obejít bez YSI, ale poněvadž je to návod právě na YSI utility, tak budiž. Dobré (pár postřehů jsem ti psal osobně).


~> Samozřejmě, že by se dalo zcela obejít i bez jakýchkoliv includů. Ale chtěl jsem přidat jenom návod, který by se týkal úpravy kódu, který jsem sem přidal jako ukázku, kdybych na něm pracoval s využitím YSI. Nemůžu říct, že tohle by byl výsledný afk systém přes YSI, jelikož jde k tomu využít ještě další hromada includů z knihovny.

Vyborne, vse funguje..


~> Jelikož vidím větší počet teček na konci, tak to zní jako ironie. Samozřejmě kód jsem i pro jistotu vyzkoušel, a ano skutečně funguje ten kód, který je v tomto návodě vysvětlený.

#define IsPlayerAfk(%0) Bit_Get(bIsAfk, playerid) - menšia chybička sa nájde všakže :klidek:


~> Jojo děkuju moc, opraveno.

Je to fajn návod na knižnicu YSI ako ukážka funkcií a ich využitia ale ten jeho script zase nie je zlý, áno možno ten dôvod sa dá spraviť o pár riadkov kratšie ale to je asi tak všetko čo sa tam dá vyčítať....používa dcmd? no a čo? nechápem prečo ti to vadí, 90% uživateľov na tomto fóre ani nevie že nejaký bool existuje a nehovoriac o tom že 90% z tých 90% nedokáže urobiť dôvod na afk...

Návod ako ukážka YSI fajn ale tá výčitka v prvom scripte....to nemuselo byť


~> Nikde jsem nenapsal, že ten kód je špatně, nebo, že by ho nikdo neměl využívat. Slouží pouze jako ukázka(píšu to i v samotném úvodu).
~> To stejné s využitím dcmd. Opět nikde jasně nepíšu, že mi to vadí, že je to nejhorší člověk na světě. Jen mi několik lidí již psalo, že jako ukázka by se hodil nějaký lepší kód se alespoň průměrnými includy (zcmd, dof2 aj.). Je pravda, že dcmd dini zrovna nemusím, ale raději povím, ať ho ten uživatel nepoužívá a zkusí něco lepšího, a také proč, než, abych ho kritizoval...


Co dělá Bit_Let a Bit_Vet ?


~> Díky za připomínku, už je to v návodě přidané. Zapomněl jsem to přidat již dříve.

Využití vyplývá z popisků, nicméně by mu tam nějaký menší komentář k těmto fcím neměl chybět. ;)


~> Už přidané. Také je to oddělené, aby to uživatelé nemátlo, že je to spíše vysvětlení, než, že to patří ke výslednému kódu.
BTW: upravil jsem i trochu topic. Snad už tam nejsou nějaká nesmyslná slova typu "scriptum".

  • 0

Ur9w.pngd649ffe2b5dae279f900288b2ce881fd49fdbdd6


#10
vEnd

vEnd

    Marc Wayne "B-Dup"

  • Globální moderátor
  • Příspěvků: 497
  • Je tu celkem: 46d 7h 6m 42s

Je to fajn návod na knižnicu YSI ako ukážka funkcií a ich využitia ale ten jeho script zase nie je zlý, áno možno ten dôvod sa dá spraviť o pár riadkov kratšie ale to je asi tak všetko čo sa tam dá vyčítať....používa dcmd? no a čo? nechápem prečo ti to vadí, 90% uživateľov na tomto fóre ani nevie že nejaký bool existuje a nehovoriac o tom že 90% z tých 90% nedokáže urobiť dôvod na afk...

Návod ako ukážka YSI fajn ale tá výčitka v prvom scripte....to nemuselo byť

Já si myslím, že ten povzdech nad dcmd je na místě. Je rok 2016, máme rychlejší a stejně jednoduché metody. A argumentovat neznalostí zdejších uživatelů, nevím no... je to teda smutná a, bohužel, pravdivá poznámka. Možná by to chtělo pořádnou aktualizaci sekce návodů.


  • 0

96b259ac47244701b5097887d9439120.png

I always enjoy meeting people more chemically imbalanced than myself. -Trevor Philips
Roses are gay, violets are gayer, fuck the poem and listen to Slayer.
Unix is user friendly. It just happens to be very selective about who it decides to make friends with.


#11
Mattsy

Mattsy

    Rovinky jsou pro rychlá auta. Zatáčky jsou pro rychlé jezdce

  • Uživatel
  • Příspěvků: 3 283
  • Je tu celkem: 1h 40m 46s
SkiBig....narazam na to ze si to napisal takym stylom ze to vyznelo ako by to mal uplne zle napisane....viem ze si chcel ukazat len alternativu cez YSI, chapem ze mame rychlejsie funkcie na prikazy ale stale je dcmd pouzivane v hojnej miere a to len preto ze ludom sa nechce menit nieco co funguje spolahlivo a osobne si myslim(je to len moj osobny nazor) ze pri takomto prikaze tam rozdiel v rychlosti asi ani nebude, co keby si urobil nejake testy rychlosti na prikazy a systemy?
  • 0

!!! NIE SOM MATESSS A NEMÁM SHOOTER !!!

SVK_Mattsy.png
4e79071dddeb7643ddf3a57f06616a26.png


#12
Pán Podnikateľ

Pán Podnikateľ

    Podnikateľ

  • Uživatel
  • Příspěvků: 203
  • Je tu celkem: 22d 55m 12s

Dobrí večer. 

Nedá mi nezareagovať na toto téma. 

V prvom rade by som chcel pochváliť autora kódu za pekný a priehľadný návod ktorí sa zameriava na YSI. Tak tiež musím súhlasiť s Scydo že DCMD aj keď je to tu veľa krát spomenuté by sa už nemal používať. Ako napísal Mattsy nebolo by zlé spraviť nové rýchlostné testy páč počítače a samotné serveri sú výkonnejšie než včera čiže v kvázi aj samotné DCMD zrýchľuje. 
Lenže vždy tu bude to samotné staré meranie kde už v tedy vyplývalo z rýchlostných testov že DCMD je veľmi pomalé. Tieto merania ktoré už boli budú síce iné než dnes ale poradie by malo zostať nezmenené.
Čiže autorove pohoršenie na systéme akceptujem a myslím si že je adekvátne k jeho prvotným slovám nad ktorými sa niektorý pohoršujete. Ako spomínal kolega vEnd je rok 2016 čiže právo na svoj názor má každý a sú rýchlejšie systémy ktoré by som skôr aj ja odporúčal ako staršie z roku 2008... . 
Kód je pekne napísaní len by trebalo tak tiež podotknúť na konci témy že funkcie ako bool, char a knižnice ako y_bite, y_playerarray sú veľmi pomalé páč pawn pracuje s  4 Byte čo je 32 bitov. Nižšie to pawn nedokáže vďaka SA:MP Teams ktorý očividne v časovej tiesni alebo lenivosťou zabudli na znalosti o bitoch samotných a použili iba tkz. DoubleWorld. 

Ďakujem za prečítanie a za skvelí tutoriál. 


  • 2

#13
Ernst Remer

Ernst Remer

    Nacistický pawner

  • Uživatel
  • Příspěvků: 1 295
  • Je tu celkem: 13d 10h 41m 2s

SkiBig....narazam na to ze si to napisal takym stylom ze to vyznelo ako by to mal uplne zle napisane....viem ze si chcel ukazat len alternativu cez YSI, chapem ze mame rychlejsie funkcie na prikazy ale stale je dcmd pouzivane v hojnej miere a to len preto ze ludom sa nechce menit nieco co funguje spolahlivo a osobne si myslim(je to len moj osobny nazor) ze pri takomto prikaze tam rozdiel v rychlosti asi ani nebude, co keby si urobil nejake testy rychlosti na prikazy a systemy?


~> Jak se již zmínili kolegové nademnou (vEnd, CMatus) včetně tebe samotného, ano jsou mnohem rychlejší includy. Ale nemysli jsi. Jsou i rychlejší než samotné YSI. Na kód, který jsem sem přidal jako ukázku, jsem pohlížel a komentoval jako Ysisák(uživatel, co používá výhradně jen YSI4 na obsahovější nebo složitější scripty), proto možná to zní tak kriticky. Ale nikde jsem nepsal, že ten kód není spolehlivý nebo, že by se neměl používat.
~> A bohužel, zase úplně tak spolehlivě nefunguje. Stačí jedno špatné písmenko, nebo někde něco vynechat, a už to nefunguje. Nemluvě o tom, že jsem i slýchal případy, kdy blblo params u dcmd.


Kód je pekne napísaní len by trebalo tak tiež podotknúť na konci témy že funkcie ako bool, char a knižnice ako y_bite, y_playerarray sú veľmi pomalé páč pawn pracuje s 4 Byte čo je 32 bitov. Nižšie to pawn nedokáže vďaka SA:MP Teams ktorý očividne v časovej tiesni alebo lenivosťou zabudli na znalosti o bitoch samotných a použili iba tkz. DoubleWorld.


~> Do takových podrobností jsem už nechtěl jít, jelikož tohle subfórum se zaobírá prací s YSI, nikoliv teorií. Samozřejmě, některé důležité informace napíšu, ale, kdybych měl u všeho napsat jak je to rychlé, jaký na to mám osobní názor, jestli je to vhodné, nevhodné, jestli by se to mělo používat... tak akorát tím zbytečně prodloužím tutoriál a nikomu se moc nechce číst 4 a více stránek v 1 návodů. btw taky děkuju
  • 0

Ur9w.pngd649ffe2b5dae279f900288b2ce881fd49fdbdd6


#14
Daniels

Daniels

    Jethro

  • Uživatel
  • Příspěvků: 166
  • Je tu celkem: 8d 19h 58m 49s

V celém kodu tam máš include <a_samp>, ještě to #


  • 0

#15
Ernst Remer

Ernst Remer

    Nacistický pawner

  • Uživatel
  • Příspěvků: 1 295
  • Je tu celkem: 13d 10h 41m 2s

V celém kodu tam máš include <a_samp>, ještě to #


~> To jsi neměl říkat... to bylo to super secret proti kopírákům :(.... #1d-a
  • 0

Ur9w.pngd649ffe2b5dae279f900288b2ce881fd49fdbdd6


#16
Pán Podnikateľ

Pán Podnikateľ

    Podnikateľ

  • Uživatel
  • Příspěvků: 203
  • Je tu celkem: 22d 55m 12s

~> Jak se již zmínili kolegové nademnou (vEnd, CMatus) včetně tebe samotného, ano jsou mnohem rychlejší includy. Ale nemysli jsi. Jsou i rychlejší než samotné YSI. Na kód, který jsem sem přidal jako ukázku, jsem pohlížel a komentoval jako Ysisák(uživatel, co používá výhradně jen YSI4 na obsahovější nebo složitější scripty), proto možná to zní tak kriticky. Ale nikde jsem nepsal, že ten kód není spolehlivý nebo, že by se neměl používat.
~> A bohužel, zase úplně tak spolehlivě nefunguje. Stačí jedno špatné písmenko, nebo někde něco vynechat, a už to nefunguje. Nemluvě o tom, že jsem i slýchal případy, kdy blblo params u dcmd.



~> Do takových podrobností jsem už nechtěl jít, jelikož tohle subfórum se zaobírá prací s YSI, nikoliv teorií. Samozřejmě, některé důležité informace napíšu, ale, kdybych měl u všeho napsat jak je to rychlé, jaký na to mám osobní názor, jestli je to vhodné, nevhodné, jestli by se to mělo používat... tak akorát tím zbytečně prodloužím tutoriál a nikomu se moc nechce číst 4 a více stránek v 1 návodů. btw taky děkuju

Dovoľ mi zareagovať na tvoju reakciu ohľadom môjho príspevku. 

Plne súhlasím že ak by si mal popisovať samotní návod o Bitoch bolo by to asi zdĺhavejšie ale na druhej stránke musíš uznať že y_playerarray je hranie sa s Bytmi. Len že musíš brať aj ohľad na nováčika a je dobré napísať a upozorniť ho na samotné výhody a nevýhody. Páč pre príklad dnes veľa ľudí si robí viac FS v YSI pre svoj server nevedomky o tom že spomaľuje systém.
Tak tiež nemusíš robiť rýchlostné testy stačí to len decentne spomenúť.
Prosím neber môj príspevok ako dôraz znechutenia práce alebo opovrhovanie. Len som ťa chcel upozorniť na daný fakt pre seba zlepšenie v budúcich príspevkoch. 

S pozdravom CMatus.


  • 1





Také označeno jedním nebo více klíčovými slovy: Návod, Scydo, SkiBig18, Afk, YSI, Návody

0 uživatelů si prohlíží toto fórum

0 uživatelů, 0 návštěvníků 0 anonymních uživatelů

© 2015 IPS, Inc.

Zajímat Vás mohou ještě aktuální zprávy. sleviště, slevy dnes Herbalife je skvělou cestou pro dobré zdraví. Je libo dětský web?