Takže stránka má skvělou síť. Ale v něm je pouze několik řádků věnováno spuštění a konfiguraci serveru.
Pokusím se pomoci uživatelům, kteří by chtěli hrát na svém lokálu server s přáteli a s vlastním nastavením. V tomto krátkém článku se pokusím ukázat celý proces: od instalace serveru až po jeho konfiguraci, včetně použití modů.

1. První věc, kterou potřebujeme, je přejít na spuštění Rustu přes síť a stažení archiv obsahující vše potřebné nástroje a rozbalte na libovolné místo.

2. Nyní přejděme k instalace. Spusťte soubor Update-Rust-Server.bat ze složky SteamCMD a počkejte, než se náš server stáhne. Servery budou načteny do složky RustServer.

Vše, nainstalovali jsme server, pokračujte dalšími kroky.

3. Teď budeme spusťte server, přizpůsobte si jej a pozvěte přátele. Chcete-li se připojit k vytvořenému serveru, proveďte následující kroky:

Jdu do složky SteamCMD a spusťte soubor Spusťte-Rust-Server.bat(Je to on, ne Rust_server). Chcete-li spustit experimentální server Rust, spusťte soubor Spusťte-Rust-Exp-Server.bat
- Po spuštění bude příkazový řádek obsahovat řádky s informacemi o stahování, čekáme na okamžik, kdy se objeví nápis "server inicializován".
- Všechno, server funguje.
- Nyní, abychom mohli vstoupit na server, musíme zjistit adresu našeho serveru. Klasická verze -
- Zapište si někam svou IP textový soubor(nezapomenout).
- Dále spusťte hru a stiskněte klávesu F1 (konzole) a zadejte tam příkaz net.connect Your ip: 28015 (kde Your ip je vaše ip, kterou jste se naučili předem). Teoreticky by to mělo být také 127.0.0.1.

Pokud je vše provedeno správně, připojíte se ke svému serveru. Aby se k vám přátelé mohli připojit, je samozřejmě nutné, aby na vašem počítači běžel server a vaši přátelé správně zadali příkaz k připojení, který jim sdělíte.
Nyní můžete začít hrát. ALE! Správné provedení všech akcí vám v některých případech nemůže zaručit úspěch. Protože existuje mnoho důvodů, proč nemusíte uspět. Řešení nejběžnějších problémů je napsáno.

4. No, a teď, pokud vám všechno vyšlo a líbilo se vám to, můžete si s tím pohrát nastavení serveru.
Například v poslední aktualizace přidali to vývojáři zajímavá věc jak opotřebení zbraní (hned jsem si vzpomněl na sérii mrtvý ostrov), jakož i opotřebení oděvů a vybavení.
To mnohým nevyhovovalo a zde je možnost tuto funkci zakázat.

K tomu potřebujete:
> Přihlaste se k serveru s právy správce. Chcete-li to provést, otevřete konzoli ve hře pomocí klávesy F1 a zadejte příkaz Rcon.login své heslo (heslo je nastaveno v souboru server.cfg a ve výchozím nastavení vypadá jako 123456). Po zadání by se měl objevit nápis (v konzole) "přihlášen jako admin", což znamená, že jste přihlášeni jako admin. Nyní zadejte příkazy:
- Pro zakázání nošení oblečení: conditionloss.armorehealthmult "0.0"
- Chcete-li zakázat opotřebení zbraně/inventáře: conditionloss.damagemultiplier "0.0"

Pomocí různých modů můžete také zakázat nebo povolit různé věci. Například deaktivujte rozpad na serveru nebo upravte letový interval pro letadla. Síť už má dostupné i nepříliš dostupné mody. Doporučuji použít bezplatný mod magma, díky snadnému přizpůsobení a velkému množství pluginů.

Optimalizace hry Rust je prostě "bezcenná", což způsobuje určité potíže hratelnost pro některé uživatele. V některých případech dokonce výkonný počítač neschopné vyrovnat se se svými přímými povinnostmi, jmenovitě poskytovat vynikající obraz bez zpoždění v „rezovém“ rozhraní. Samozřejmě, díky některým manipulacím můžete ve hře mírně zvýšit fps, ale nejlépe se to dělá zadáním různých druhů příkazů do řádku konzoly, které deaktivují konkrétní efekty. Ale jak si to představuješ? Pokaždé, když se připojíte k serveru, zadejte do konzole asi 30 příkazů - tolik času bude ztraceno ... Ale existuje cesta ven a toto je konfigurační soubor pro Rust, do kterého můžete zadat všechny tyto příkazy a vložte jej do speciálního adresáře.

Ale kde mohu získat toto cfg pro Rust? Ve skutečnosti existují dva způsoby, jak to získat. Můžete provést následující...

Vytvoření konfigurace pro hru Rust

1. Přejděte do kořenového adresáře hry.
2. Najděte tam složku CFG.
3. Najděte v něm dva soubory: client.cfg a config.cfg.
4. Pokud žádné nejsou, pak stačí vytvořit nové a podle toho je pojmenovat.
5. Zde zadejte příslušné příkazy pro , shadows, wind a tak dále.

A můžete to udělat jinak.

Stáhněte si cfg pro hru

1. Hotovou konfiguraci Rust (se všemi potřebnými příkazy) si můžete stáhnout přímo z našeho webu zde.
2. Zkopírujte dva soubory v archivu do příslušného adresáře (určeného v první metodě).
3. Pokud tam tyto soubory již jsou, zkopírujte je s náhradou, pokud ne, stačí je vložit.

V podstatě je jedno, jakou cestou se vydáte. Poté pouze:

Přihlaste se do hry
Klikněte na záložku "Možnosti".
Zrušte zaškrtnutí políčka "Vodní odrazy" a "VSync"
A vytáhněte posuvník "Kvalita vykreslení" úplně doleva

Nutno podotknout, že konfigurace Rust je ovlivněna velmi pozitivně, dá se dokonce říci, že konfigurace Rust (samozřejmě správně nakonfigurovaná) přinese mnohem více výhod než dalších 512 MB video paměti.

V předchozích článcích série byl proveden obecný přehled programovacího jazyka Rust, byly probrány základy syntaxe: nejjednodušší komponenty (proměnné, jednoduché datové typy, operátory a rozšíření), řídicí konstrukce a složené datové struktury, funkce a byly popsány destruktory. Zvláštní pozornost byla věnována paměťovému modelu obecně, konceptu vlastnictví objektu, obecné zásady správa paměti, používání vlastních a spravovaných bloků sdílená paměť, stejně jako vypůjčené ukazatele. Tento článek popisuje možnosti vstupu a výstupu jazyka Rust.

V každém programovacím jazyce je důležitý I/O subsystém nedílná součást. Některé z nejjednodušších prostředků práce se standardním výstupem byly již použity v předchozích článcích ( print , println ). Tyto funkce jsou intuitivní a nezpůsobují žádné potíže v procesu jejich aplikace. Proto se nyní zaměříme především na prostředky příjmu dat zadávaných uživatelem a na nástroje pro práci se soubory.

1. Modul std::io

V Rustu jsou všechna I/O zařízení shromážděna v modulu io.

Vlastnosti Čtenář a Zapisovatel definují minimální soubor nejvíce jednoduché metody vstup a výstup. Vlastnosti ReaderUtil a WriterUtil nabízejí širší výběr metod, které uživateli poskytují větší kontrolu nad vstupem a výstupem. Například Reader umožňuje pouze načíst daný počet bajtů do vyrovnávací paměti, zatímco ReaderUtil nabízí metody pro čtení celého řádku, více řádků, číselné hodnoty a tak dále. Kromě toho existuje implementace (implementace) ReaderUtil pro , který umožňuje přístup ke všem metodám aplikace Reader.

Vlastnost popisuje sadu metod, které lze použít na konkrétní typ nebo na více typů. Vlastnosti budou podrobněji zváženy v následujících článcích této série.

Jak již bylo zmíněno výše, v modulu jsou také definovány nejčastěji používané funkce print() a println(). io, ale nemusíte je ve většině případů výslovně importovat, o to se již postaral systém kompilace a propojení.

Navíc velmi užitečné funkce stdin() , stdout() a stderr() , které vracejí ukazatele na tři standardní deskriptory souborů: standardní vstup, standardní výstup a standardní chybu.

2. Příjem dat od uživatele

V každém případě nejvíc jednoduchým způsobem příjem dat od uživatele je použít funkci stdin(), která vytvoří ukazatel na objekt @Reader, který vám umožní číst data ze standardního vstupního proudu (podobné funkce existují pro standardní výstupní proud - stdout() , jako stejně jako pro standardní chybový proud - stderr() ). Jakmile byl vytvořen ukazatel @Reader, můžete použít funkci read_line() ke čtení vstupu uživatele, jak je uvedeno ve výpisu 1.

Výpis 1. Čtení uživatelského vstupu
fn main() ( nechť stdin = std::io::stdin(); print("Jak se jmenuješ?"); nech name_str = stdin.read_line(); println(fmt!("Rád tě poznávám, %s \ n", jmenný_str)); )

Ve vlastnosti ReaderUtil kromě jednoduché funkcečtení bajtů a jednotlivých řádků také definuje bohatou sadu nástrojů pro čtení dat za různých podmínek: čtení bajtů, dokud se neobjeví znak konce souboru - read_until() , čtení řetězce napsaného ve stylu C (s ukončovacím znakem null ) - read_c_str() , čtení celého datového toku - read_whole_stream() , čtení všech řádků z datového toku - read_lines() a také velká sada funkcí, které umožňují číst číselné hodnoty, a to jak celé číslo, tak plovoucí desetinnou čárku.

3. Čtení dat ze souboru

V modulu jsou také umístěny všechny potřebné nástroje pro práci se soubory std::io. Nejprve byste měli věnovat pozornost následujícím funkcím:

fn FILE_reader(f: *libc::FILE, vyčištění: bool) -> @Reader fn FILE_writer(f: *libc::FILE, vyčištění: bool) -> @Writer fn file_reader(cesta: &Cesta) -> Výsledek<@Reader, ~str>fn file_writer(cesta: &Cesta, příznaky: &) -> Výsledek<@Writer, ~str>fn mk_file_writer(cesta: &Cesta, příznaky: &) -> Výsledek<@Writer, ~str>

Volby FILE_* čtou a zapisují soubory ve stylu C, zatímco volby file_* jsou určeny pro použití ve stylu Rust. Vzhledem k tomu, že první dvě funkce zjevně hrají roli pomocných nástrojů pro konkrétní úkoly, a kromě toho je zvažován jazyk Rust, měl by být preferován styl Rust. Proto budou dále zvažovány pouze funkce file_reader a file_writer. Obě funkce berou jako svůj první parametr cestu k souboru typu ~str a obě vracejí hodnotu typu Result . Abyste tedy porozuměli I/O souboru v Rustu, musíte také správně porozumět a vyhodnotit typ Result.

3.1. Návratový typ Výsledek

Tento typ slouží jako nástroj v Rustu, aby se zabránilo chybám za běhu. Výsledkem je výčet obsahující následující hodnoty (viz src/libstd/result.rs):

hospodský enum výsledek ( Ok(T), /// obsahuje hodnotu při úspěšném návratu z funkce Err(U) /// obsahuje hodnotu při návratu chyby z funkce )

Hodnoty typu Result musí být před použitím rozbaleny (destrukovány).

Ukázkový program bude používat následující funkci z modulu std::výsledek :

fn rozbalit (res: Výsledek ) -> T

Pokud je výsledek Ok(T) , pak funkce vrátí hodnotu T , extrahovanou z Ok(T) , kterou lze v programu dále použít.

Samozřejmě, s touto funkcí, knihovnou toolkit std::výsledek není omezena. Popisy dalších funkcí naleznete ve výše uvedené dokumentaci.

3.2. Příklad čtení dat ze souboru

Zdrojový kód příkladu je uveden ve výpisu 2. Příklad jednoduše načte bajty z daného souboru, poté převede výsledek čtení na řetězec a provede shodu se vzorem. Předpokládá se, že samotný program a testovací soubor read.txt, ze kterých se data čtou, jsou umístěny ve stejném adresáři.

Výpis 2. Čtení dat ze souboru bajt po bajtu.
použijte std::io::*; použijte std::vec::*; použijte std::path::*; fn is_success(fpath: &PosixPath) ( nechť Maybe_test_reader: Výsledek<@Reader, ~str>= čtečka_souborů (fcesta); let test_reader: @Reader = std::result::unwrap(možná_testovací_čtečka); let mut bytes: ~ = ~; smyčka ( let byte: int = test_reader.read_byte(); if test_reader.eof() ( break; ) append_one(bajty, byte jako u8); ) let sample: ~str = ~"úspěch"; nechť možná_úspěch: ~str = std::str::from_bytes(bytes); if Maybe_success == sample ( println("Operace čtení souboru byla úspěšná"); ) ) fn main() ( nechť fpath: ~PosixPath = ~PosixPath("./read.txt"); is_success(fpath); )

Ve výše uvedeném příkladu testovací funkce is_success() vytvoří objekt test_reader pomocí cesty k souboru, která mu byla předána. Pro přehlednost je obsah souboru čten po jednom bajtu a čtený bajt je přidán k vektoru bajtů. Bajty se čtou jako celočíselné hodnoty typu int, ale když je do vektoru vložen další bajt, očekává se hodnota typu u8. Proto se pro každý vložený bajt provede explicitní převod jako u8. Tyto operace pokračují, dokud se při čtení nenarazí na konec souboru (konec souboru).

Metoda reader.eof() vrátí hodnotu true, když aktuálně čtený bajt obsahuje příznak eof. V tomto případě je hodnota tohoto bajtu -1 (což je důvod, proč reader.read_byte() vrací int a ne u8) a není třeba ji přidávat k vektoru. Podmínka je zkontrolována, a pokud je nalezen EOF, smyčka se ukončí.

Ověření výsledku čtení se opírá o skutečnost, že přečtené bajty jsou hodnoty ASCII (a tedy odpovídají odpovídající části kódování UTF8), tedy znaky, které tvoří slovo „úspěch“.

3.3. Proč ne chvíli smyčka

Při zvažování kódu ve výpisu 2 může vyvstat rozumná otázka: proč je smyčka ukončena kontrolou eof v těle smyčky, spíše než pomocí běžnějšího podmíněného testu před další iterací? Důvodem je, jak funguje reader.eof(). Při použití smyčky while s kontrolou eof v podmíněném výrazu se k cílovému vektoru přidá bajt EOF s hodnotou -1 (255u8). Když tedy použijete while, musíte z vektoru „vytáhnout“ nejnovější hodnotu, jak je znázorněno ve výpisu 3.

Výpis 3. Úryvek čtení bajtů pomocí smyčky while
let mut bytes: ~ = ~; while !reader.eof() ( std::vec::append_one(bytes, reader.read_byte() as u8); ) std::vec::pop(bytes);

Taková možnost zpracování údajů má samozřejmě právo na existenci.

Závěr

V Rustu jsou téměř všechny I/O soustředěny v modulu std::io. Pro každý elementární datový typ jsou k dispozici nástroje pro jeho čtení a prezentaci při výstupu. Hlavní součásti modulu std::io jsou vlastnosti Reader , Writer , ReaderUtil a WriterUtil , které poskytují veškerou nezbytnou kontrolu nad vstupem a výstupem.


V tomto vláknu vám ukážu, jak si vytvořit svůj vlastní Rust server Experimentujte s mody. Proč je to nutné? No, alespoň pokud hrajete Rust, pak máte spoustu nápadů, které je mnohem pohodlnější otestovat na vlastním serveru s nekonečnými zdroji a schopností létat. A pokud půjdete dále, můžete svůj server učinit populární a získat skutečné peníze za prodej herních dobrot hráčům na vašem serveru.

Pojďme tedy začít.
První část - Vytvoření serveru.
1. Stáhněte si archiv Rust_server.zip z oficiálních stránek pomocí tohoto
2. Rozbalte archiv do složky, která vám vyhovuje. Například tento: C:\Games\Rust_Server\Server
Dále uvedu příklady adresy s touto složkou.
3. Přejděte do složky C:\Games\Rust_Server\Server a spusťte soubor update.bat
Otevře se černé okno s příkazovým řádkem a do něj se stáhnou serverové soubory, velikost je cca 2,15 GB. Po dokončení stahování se okno automaticky zavře.
4. Přejděte do složky C:\Games\Rust_Server\Server\rustds
Vytvořit Textový dokument v poznámkovém bloku zkopírujte tento text dovnitř:
RustDedicated.exe -batchmode -server.hostname "Můj server" -server.port 28015 -server.identity Hello_World -server.maxplayers 5 -server.seed 777 -server.worldsize 4000 -chat.serverlog 1 -server.netlog 1 -server .saveinterval 300 -spawn.max_rate 1 -spawn.max_density 1
Dále v poznámkovém bloku klikněte na "Uložit jako ..." a uložte soubor s názvem "start server.bat" příponou "Všechny soubory".
Objevený soubor "start server.bat" je spouštěcím souborem pro váš server. Po kliknutí na něj se opět otevře černé okno. příkazový řádek a vytvoření mapy a spuštění serveru proběhne. To, že je server připraven k práci, zjistíte tak, že se podíváte na počítadlo fps v pravém dolním rohu okna: při načítání ukáže 0 fps a po skončení se objeví digitální hodnota, třeba já mám 262 fps.
5. Dále musíte zjistit vaši externí IP adresu.
Řekněme, že jste šli do jedné ze služeb pro určení IP adresy a vaše adresa se ukázala jako 213.180.193.11
Otevřete Rust a stiskněte tlačítko F1, v konzoli, která se otevře, zadejte příkaz client.connect 213.180.193.11:28015

Pokud je vše provedeno správně, připojení proběhne a vy se ocitnete na svém vlastním serveru

P.S.: Složka se soubory vašeho serveru (uložit atd.) bude umístěna na C:\Games\Rust_Server\Server\rustds\server\Hello_World

Část dvě: admin

1. Chcete-li se stát (nebo přítelem) správcem vašeho serveru, musíte nejprve znát své Steam ID. Chcete-li to provést, přejděte do svého profilu služby Steam a na libovolný volný prostor- klikněte například nalevo od svého avatara klikněte pravým tlačítkem myši myši a zvolte "Kopírovat adresu stránky". Tuto adresu vložíme kamkoli, například do poznámkového bloku nebo do prohlížeče. Něco jako )