Přejít na obsah

[YSI] Admins [*] #3

Scydo SkiBig18 YSI4 Admins

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

#1
Castiel

Castiel

    OG LOC

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

YSI4 ADMINS #3
*****

Zdravím vás u dalšího návodu práce s YSI. Dnešní díl se bude týkat velice známého příkazu /admins. Nevyužijeme bohužel knihovnu na plno, ale hledal jsem způsob, jak vám ukázat využití iterate(foreach).
Hledal jsem nějakou zajímavou ukázku. Jenže, takových scriptů je skutečně mnoho, od návodů, po helpy, kde někteří autoři mají dokonce svojí vlastní. Tak jsem vybral asi ten nejpříhodnější:



Spoiler


Kód, celkem už slušnější, nám zaslal autor do helpu (pawno.cz/topic/41048), s tím, že prý s tím má problém, ale i tak ho můžeme využít jako ukázku. Nebudeme pracovat s jmény místo levelů. To si tam můžete již každý přidat individuálně.
No, pustíme se do toho, nejdříve si jako vždy nahrajeme includy z knihovny, které budeme potřebovat pro práci:

  • YSI_Visual\y_commands - pro lepší, efektivnější práci s příkazy, včetně parametrů.
  • YSI_Data\y_iterate - Dříve známo jako foreach. Zjednodušený, rychlejší a efektivnější cyklus, se kterým se lépe pracuje.
  • YSI_Visual\y_dialog - Include je propracovaný tak, aby se dialogID, se kterým bude s tímto includem pracovat, aby se nekřížil s nějakým jiným.
  • YSI_Server\y_colours - Obsahuje propracované preprocesory s barvami, které pak může uživatel jednoduše využít prakticky kdekoliv.

Potřebné includy z knihovny máme nahrané a tak můžeme pokračovat. Začneme tím, že si deklarujeme jednu integer proměnnou, která nám bude sloužit jako AdminLevel našich hráčů:


Please Login or Register to see this Hidden Content

Všimněte si slovíčka char. Co je to? Zkráceně a zjednodušeně, nám to vrátí číslo po dělení pole číslem 4(například [200] / 4 = [50]). Dále si přidáme samozřejmě příkaz, který nám bude zobrazovat naše administrátory:



Please Login or Register to see this Hidden Content

Tak, a ťed budeme potřebovat deklarovat lokálně tři proměnné. Dvě budou string, přesněji první proměnná string bude pro text v dialogu a druhý pro nick, a třetí proměnná bude integer, který nám bude udávat počet přitomných administrátorů na serveru:



Please Login or Register to see this Hidden Content

Když to máme za sebou, tak za další budeme přidat samotný cyklus, kterým nám projete všechny hráče na serveru. Princip foreach je prakticky stejný jako cyklus se GetPlayerPoolSize, ale samozřejmě lepší:



Please Login or Register to see this Hidden Content

Slovíčko Player nám říká, že cyklus má project pouze přítomné hráče na serveru. Je samozřejmě více možností pro cyklus(Bot, Character, Actor, Vehicle). Po cyklusu následuje funkce, která nám všech hráčů zjistí jméno. Můžeme jí samozřejmě přidat, že je bude zjišťovat, až najde ty naše administrátory, ale zas taková hrůzná to nebude, když to necháme takhle mimo:



Please Login or Register to see this Hidden Content

Konečně můžeme hledat naše administrátory. Postačí nám 2 úplně základní a typické podmínky, a to sice, jestliže má nějaký AdminLevel a pokud je přihlášen na rcon. Začneme podmínkou v případě, že je přihlášen na RCON ale nemá AdminLevel, včetně formatování samozřejmě, a nesmíme zapomenou zvyšovat naší proměnnou iPocet:



Please Login or Register to see this Hidden Content

Další podmínkou v případě, že není přihlášen na RCON ale má nějaký AdminLevel:



Please Login or Register to see this Hidden Content

A třetí podmínkou v případě, že je přihlášen na RCON a zároveň má nějaký AdminLevel:



Please Login or Register to see this Hidden Content

Všimněte si, jak pracujeme s tou proměnnou. Jako s boolen. Tudíž, v případě, jestli vrací true/false, nikoliv číslo... k čemu? Jelikož, nepotřebujeme vědět jaký má přesně adminlevel (1, 2, 3...), nám stačí, pokud nějaký má(1) a pokud má žádný(0). A ano přesně tak. To jsou stejné hodnoty jako u boolenu: true(1) a false(0).

Když máme tyhle podmínky za sebou, tak za další budeme potřebovat podmínku, jestliže je vůbec nějaký přítomný administrátor. Na to nám poslouží naše lokální proměnná. Začneme v případě, že nejsou, tak nám pomocí návratové hodnoty zobrazí zprávu:



Please Login or Register to see this Hidden Content

V případě, že je nějaký přítomný, tak budeme potřebovat už blok, jelikož se stane více věci. Začneme tím, že si formátujeme string s našimi administrátory:



Please Login or Register to see this Hidden Content

A nakonec zobrazíme samotný dialog. Díky y_dialog nemusíme vepisovat dialogID, najde nám samo, které nejnižší dialogID je volné:



Please Login or Register to see this Hidden Content

Pak už jen ukončíme blok a ukončíme i příkaz návratovou hodnotou a máme hotovo:



Please Login or Register to see this Hidden Content

ukazka.png

Celý kód pro shlédnutí zde:

Spoiler

 

[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]


  • 2



#2
UareBugged

UareBugged

    Old Reece

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

Steam Profile


                                                                     

A berie to aj admin lvl 5 a 6? :kappa:


  • 0

TH1R6.gif


#3
Castiel

Castiel

    OG LOC

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

A berie to aj admin lvl 5 a 6? :kappa:


~> Klidně i level 216 - 1 :kappa:
  • 0

#4
HighΡrint

HighΡrint

    Hraju za Wildcats

  • Uživatel
  • Příspěvků: 900
To bys ale nesmel pouzivat char pole :(
  • 1

podpis.png






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

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?