Базовый гид выживания в rust

Компоненты

Rust включает в себя большое количество компонентов, которые расширяют набор функций Rust и упрощают разработку на Rust. Установка компонентов обычно управляется rustup, установщиком инструментальной цепочки Rust, разработанным проектом Rust.

Груз

Cargo — это система сборки и менеджер пакетов Rust . Cargo обрабатывает загрузку зависимостей и построение зависимостей. Cargo также действует как оболочка для clippy и других компонентов Rust. Это требует, чтобы проекты следовали определенной структуре каталогов.

Зависимости для пакета Rust указаны в файле Cargo. toml вместе с требованиями к версии , сообщая Cargo, какие версии зависимости совместимы с пакетом. По умолчанию Cargo свои зависимости из пользовательского реестра но репозитории и пакеты Git в локальной файловой системе также могут быть указаны как зависимости.

Rustfmt

Rustfmt — это программа для форматирования кода для Rust. Он принимает исходный код Rust в качестве входных данных и изменяет пробелы и отступы для создания отформатированного кода в соответствии с руководством по стилю Rust или правилами, указанными в файле rustfmt.toml. Rustfmt можно запускать как отдельную программу или в проекте Rust через Cargo.

Clippy

Clippy — это встроенный в Rust инструмент линтинга для улучшения корректности, производительности и читаемости кода Rust. По состоянию на 2021 год в Clippy действует более 450 правил, которые можно просматривать в Интернете и фильтровать по категориям. Некоторые правила по умолчанию отключены.

СБН

RLS — это языковой сервер, который предоставляет интегрированным средам разработки и текстовым редакторам дополнительную информацию о проекте Rust. Он обеспечивает проверку линтинга через Clippy , форматирование через Rustfmt, автоматическое завершение кода через Racer и другие функции. Развитие Racer было замедлено в пользу анализатора ржавчины .

Food

As we all know, Food is one of the most important things that we need in order to survive. In Rust, it is no different. I would suggest making food one of your top priorities and always keep a high amount in stock just in case. Also, for protection, I keep all my food out of storage containers in the emergency that someone stumbles upon them.Find the  boars, you want to Sprint-Smack, and repeat until dead.

In order to efficiently gather some good Ol’ grub, you are going to want to fancy yourself a Bow, and some Arrows. This is pretty easy on an unpopulated server. You need to first have gathered some cloth. Easy enough, if you Sprint-Smack a boar you can get them that way.

The second part is to gather some arrows so you can actually put your newfound tool to use. So go back to the old grind to finding your stones. On a lower populated server, they shouldn’t be too difficult to find.

In my opinion, (coming from a non-pvp low populated server ~25 people) arrows are the best source of HUNTING at a low level. I played a server, Non-PVP, with about 128 people constant, and it still remained a good way to hunt and kill things, even with low spawns.

After you have gotten yourself some food, it is time to cook it on a fireplace in your shelter. To cook the food move to your fireplace, press and hold «E» choose open, and then place the food into one of the cook slots. You can also add wood here as well.

Shots with Bow/ Food
Red Bear/ Red Wolf Bear Boar Deer Wolf Chicken Rabbit?

3 shots/

2 Shots

   4  Shots    2 Shots    2 Shots    2 Shots 1 Shot

1 Shot

Loot items (in Backpack)

Raw Meat

(~3)

Raw Meat

(~5)

Raw Meat

(~3)

Raw Meat

(~5)

Raw Meat

(~3)

Raw Meat

(~2)

Raw meat

(~2)

(Please note that the above table is with the Bow and Arrows only, the meat does not change, however.)

У Rust настоящая zero-cost abstraction

Помимо Rust, я присматривался и к другим языкам. Три года назад, когда впервые сменил работу, думал погрузиться в светлый мир JVM и написать что-нибудь на Kotlin. Но языки вроде Scala, Java и Kotlin можно применять далеко не везде. Виртуальные машины создают дополнительную нагрузку и для встраиваемого ПО в микрокомпьютерах не подходят. В таких системах пишут на чистом С, С++ или совсем страшных штуках вроде MISRA C.

У Rust, скомпилированного в native, нет дополнительного рантайма. RAII, деструкторы, конструкторы как в «плюсах». Только у Rust линейные типы и zero-cost с ними настоящий, а у C++ — нетривиальный деструктор у типа, и хоть убейтесь, но не получится передать его значение через регистры.

Ещё есть Zig — он очень похож на Rust. Там, например, тоже есть проверка lifetime, но организована она иначе, и то, как это сделано в Rust, мне нравится больше. Других языков с проверкой lifetime я не знаю, а в языках со сборщиками мусора она не нужна: если есть ссылка на объект, значит, он точно живой.

В Go механизм похожий, но там есть сборщик мусора. Мне предлагали перейти на него четыре года назад. Я попробовал, и синтаксис меня рассмешил. Стоит автоформатеру неправильно перенести строки, и программа не скомпилируется. А всё из-за неявной расстановки точек с запятой.

Оффлайн

Очень важный момент! Если на сервере стоит параметр Sleepers On, то когда вы отключаетесь от сервера вы остаётесь лежать на том месте где вы вышли, и вас могут беспрепятственно убить и забрать ваши вещи. С параметром Sleepers Off, ваш персонаж сохранится и исчезнет из игрового мира (при перезаходе персонаж будет сохранен и загружен в игровой мир, если не было вайпа(полной очистки карты))

Управление

Передвижение W, A, S, D
Использование предмета в руке Левая кнопка мыши
Использование предмета в руке

(альтернатива)

Правая кнопка мыши
Прыжок Пробел
Красться Зажать C или CTRL
Бег Зажать Shift
Инвентарь Tab или I
Хоткеи Цифры 1-6
Действие E
Прокрутка инвентаря Колесико мышки
Меню Esc
Чат T или Enter
Голосовой чат Зажать V
Перезарядка R
Включение/выключение музыки Page Up
Вкл/выкл лазер G
Вкл/выкл фонарь F
Консоль F1

Сбор материалов

Собирать материалы очень легко. Большинство предметов можно получить при помощи камня (дается при возрождении игрока или после повторного подключения на сервер).

Дерево

Дерево — один из жизненно важных ресурсов для выживания. Оно используется для создания костра, домов, складов, контейнеров, и множество другого.

Чтобы собрать дерево, есть два базовых способа и один способ грабежом:

1) Подойдите к ближайшему дереву и бейте его своим камнем,новым стартовым предметом. Вы получите сообщение в правой части экрана говорящее о том, как много дерева вы получили. Как только дерево будет исчерпано, двигайтесь к другому. Получение дерева этим способом легкое, однако не рекомендуется, груда деревьев предоставляет больше дерева за удар, чем удар по дереву.

2) Ищите груду деревьев. Они разбросаны по всей карте. Чтобы собрать груду деревьев, подойдите к ней и бейте её топором (чтобы скрафтить топор, Вам потребуются дерево и камень) пока она не исчезнет. Груда деревьев дает больше дерева за удар, чем удар по дереву.

3) Играйте как бандит,грабьте караваны убейте и заберите дерево у игрока,или украдите дерево из чужого контейнера.

Камень, железо и сера

Камень — базовый материал в Rust. Железо — главный компонент в создании железных домов, оружия, амуниции, а также кровати. Сера — участвует в производстве пороха, взрывчатки, гранат.

Чтобы добыть железо и серу, Вам нужно получить руды с такими названиями: железная руда (Metal Ore) и серная сульфуровая руда (Sulfur Ore).

Чтобы собрать эти материалы, Вам нужно найти скалу (выглядит, как округлый камень, одиноко стоящий в поле) и бить его камнем или топором, пока он не исчезнет.

Как только Вы добудете руду, найдите или сделайте печь и положите руду в печку вместе с деревом (костер не плавит руду). Спустя некоторое время, в печи вы найдете выплавленное железо и серу.

ОЧЕНЬ ВАЖНОЕ ПРИМЕЧАНИЕ, ЧИТАЙ НЕМЕДЛЕННО НОВЫЙ ИГРОК!

Чтобы открыть инвентарь печки или костра когда в них уже есть топливо, нужно ЗАЖАТЬ Е после чего можно выбрать Ignite (поджечь), или вторую опцию(которая открывает интерфейс).

Древесный уголь

Древесный уголь может быть найден, когда в костре (или в печке) сгорит дерево. Древесный уголь — это ключевой элемент в создании пороха. При соединении древесного угля с серой получится порох.

Еда

Еда используется для пополнения здоровья, калорий и удаления радиации (РАД).

В игре в настоящий момент есть два способа добыть еду:

1) Искать консервированную еду или продовольствие, которое может быть найдено в ящиках, в сумках, мутировавших животных, и мертвых игроках.

2) Охотиться на животных

Примечание: до того как начать охоту на волков(неплохой источник ткани и крови), медведей(единственный источник кожи), оленей(богаты тканью, не атакуют). Вам стоит убить пару мирных и медленных животных вроде кабана и сделать себе лук ( и стрелы ), для более продуктивной и быстрой охоты.

Чтобы добыть свежее мясо, Вам нужно найти животное и убить его. Из животного Вы можете получить ткань, (которая очень полезна для создания предметов), кожу (только из медведя), кровь (из волка или медведя), и куриную грудку, все зависит от того, какого животного Вы убили. Куриная грудка единственный вид мяса, который Вы можете добыть из животных. Это самый известный вид еды в игре и содержит больше всего калорий.

Ткань

Ткань — это тип ресурсов, которые используются для создания спальных мешков, тканевой брони, луков, аптечек, и других вещей. Её можно получить при убийстве любого животного, или ограбить мертвых игроков.

В Rust нет бардака с библиотеками

У С++ всегда было две проблемы: недостаточная квалификация разработчиков и отсутствие нормальных пакетных менеджеров.

Раньше приходилось гуглить, копировать и компилировать исходники библиотек — та ещё головная боль. Бывало, найдёшь исходники, а компилятор не подходит, потому что он слишком старый, хедеры протухшие или версии зависимостей не совпадают. Тогда вместо готового решения придумывали своё — и это своё всегда заканчивалось кучей багов.


Изображение: Public Domain

Например, я видел реализации std::optional, которые не вызывают деструктор, даже если тип нетривиально деструктурируемый. Тогда как стандартная реализация — это куча boilerplate-кода, который даже командой из трёх-четырёх человек невозможно отладить.

Получается полный бардак. Часть кода покрывают тестами, она кое-как работает, а когда начинаешь детально тестировать — тут дедлок, там use-after-free и так далее. В Rust эти заботы можно частично переложить на плечи компилятора, но с ним иногда приходится бороться: богатая система типов требует более педантичной работы.

Синтаксис

Вот и «Привет, мир!» программа написана на Rust. Макрос выводит сообщение на стандартный вывод .

fn main(){
println!("Hello, World!");
}

Синтаксис ржавчины похож на C и C ++ , с блоками кода , ограниченным , и управление потоком ключевыми слов , таким как , , , и , хотя конкретный синтаксис для определения функций больше похож на Pascal . Несмотря на сходство с C и C ++, синтаксис Rust ближе к синтаксису языков семейства ML и языка Haskell . Почти каждая часть тела функции является выражением , даже операторы потока управления. Например, обычное выражение также заменяет тернарное условное выражение языка Си , идиому, используемую АЛГОЛОМ 60 . Как и в Лиспе , функция не должна заканчиваться выражением: в этом случае, если точка с запятой опущена, последнее выражение в функции создает возвращаемое значение , как показано в следующей рекурсивной реализации факториальной функции:

fn factorial(i: u64)-> u64 {
matchi{
=>1,
n=>n*factorial(n-1)
}
}

Следующая итеративная реализация использует оператор для создания включающего диапазона:

fn factorial(i: u64)-> u64 {
(2..=i).product()
}

Antihack команды

Команды управления, встроенной в игру antihack системы.

Команда Тип Значение по умолчанию Описание
antihack.debuglevel C, S 1 Оповещение нарушений в консоль сервера:

0 = Ничего не выводить
1 = Выводить сообщения о серьёзных нарушениях
2 = Выводить все замечания

antihack.enabled C, S true Команда включает или выключает Antihack на сервере.
antihack.enforcementlevel C, S 1 Автоматическое принятие сервером решения о судьбе игрока:

0 = Ничего не делать
1 = Выкинуть игрока
2 = Забанить игрока

antihack.maxviolation C, S 5 Количество нарушений, которое приведёт игрока к бану на сервере.
antihack.relaxationpause C, S 5 Откатит изменения назад до момента обнаружения нарушения.
antihack.relaxationrate C, S 0.1 Скорость, с которой значение нарушения будет снижаться.
antihack.userlevel C, S На кого будет реагировать Antihack:

0 = Игроки
1 = Администраторы
2 = Разработчики

antihack.flyhack_protection C, S 1 Включить защиту от flyhack:

0 = Выключен
1 = Включён
2 = Расширенные настройки

antihack.flyhack_forgiveness C, S 2 Преодолённая дистанция в полёте, после которой Antihack начинает реагировать на игрока.Примечание: Чем меньше значение, тем больше ложных срабатываний.
antihack.flyhack_penalty C, S 4 Количество предполагаемого использования Flyhack, после которого автоматически будет выдан бан.
antihack.flyhack_reject C, S При обнаружении Flyhack, сервер может игнорировать перемещение игрока, фактически замораживая его положение на сервере в том месте, где был обнаружен хак.Примечание: Перемещение игрока останавливается только на сервере. Это видят все игроки, кроме нарушителя. На клиенте нарушителя он продолжит двигаться, но после остановки его откатит на позицию, сохранённую на сервере. Всё это произойдёт в том случае, если не настроены жёсткие правила автоматического бана.
antihack.noclip_protection C, S 2 Включить защиту от noclip:

0 = Выключен
1 = Включён
2 = Расширенные настройки

antihack.noclip_penalty C, S 4 Количество предполагаемого использования Noclip, после которого автоматически будет выдан бан.
antihack.noclip_reject C, S При обнаружении Noclip, сервер может игнорировать перемещение игрока, фактически замораживая его положение на сервере в том месте, где был обнаружен хак.Примечание: Перемещение игрока останавливается только на сервере. Это видят все игроки кроме нарушителя. На клиенте нарушителя он продолжит двигаться, но после остановки его откатит на позицию, сохранённую на сервере. Всё это произойдёт в том случае, если не настроены жёсткие правила автоматического бана.
antihack.speedhack_protection C, S true Включить защиту от speedhack.
antihack.speedhack_deltatime C, S 0.2 Интервал времени для проверки скорости. Чем ниже значение, тем выше шанс ложных срабатываний.Примечание: Чем меньше значение, тем больше ложных срабатываний
antihack.speedhack_forgiveness C, S 2 Предполагаемая минимальная скорость при использовании speedhack.
antihack.speedhack_history C, S 20 Преодолённое расстояние с использованием speedhack, при котором будет выдано нарушение.
antihack.speedhack_penalty C, S 4 Количество предполагаемого использования speedhack, после которого автоматически будет выдан бан.
antihack.speedhack_reject C, S При обнаружении speedhack, сервер может игнорировать перемещение игрока, фактически замораживая его положение на сервере в том месте, где был обнаружен хак. Примечание: Перемещение игрока останавливается только на сервере. Это видят все игроки, кроме нарушителя. На клиенте нарушителя он продолжит двигаться, но после остановки его откатит на позицию, сохранённую на сервере. Всё это произойдёт в том случае, если не настроены жёсткие правила автоматического бана.

Method 2 — Connect using your IP:

Here we will determine what IP address that is.

  • Hold down the windows key and hit R
  • In the Run Box that pops up, type and hit enter
  • In the Command Box that runs, type and hit enter.

Your screen will have a section that looks similar to this

Ethernet adapter Ethernet:

Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : fe80::1de5:48b8:737d:342a%8
IPv4 Address. . . . . . . . . . . : 192.168.1.2
Subnet Mask . . . . . . . . . . . : 255.255.255.
Default Gateway . . . . . . . . . : 192.168.1.1

Look for the line that starts with IPv4 Address and record this number

This is the IP address for your Rust Server that you will use to connect to it.

Test local connection on your network

You can run the server using the IP address set by your local router.

In Step 7 above, we found the IP address to be 192.168.1.2

In step 5 above, we set the server port to be 28015

To test this, we are going to start a Rust client and check to see if we can connect locally.

Launch Rust from the Steam library and when you get to the menu hit f1 and type (or whatever your information is) and hit enter

If you’ve inputted the correct information and have installed and launched the server correctly you should now connect to the server!

Adding yourself as administrator

Once you are playing locally, switch to the black command box that is the server and type «users». Don’t confuse this command with a SteamCMD. This is to be done in the text window that is your server. You should receive back that 1 user is connected. It will give you data similar to the following but with your Steam information:

> users
<slot:userid:»name»>
12345678901234567:»TomSmith»
1users

While still in the server command box, to set yourself up as admin or moderator respectively, type one the following:

> ownerid 12345678901234567 «TomSmith»
Added owner TomSmith, steamid 12345678901234567

> moderatorid 12345678901234567 «TomSmith»
Added moderator TomSmith, steamid 12345678901234567

Note that the if you know how to copy/paste, the colon «:» in the output needs to be replaced with a space. Now write the config change with the following command:

writecfg

You are now able to do admin/moderator functions while playing Rust with your client.

Setting up your router

You want your server to always be the same local IP. To do this, you need to set up your router to always assign the same IP address to the computer running your server

Refer to your router user manual for how to set up a static IP for your Rust server computer.

If you want people outside your network to be able to connect, you need to have your router forward traffic coming from the internet to the port on your computer. If you are just running on your local network, you don’t need this step.

Refer to your router user manual on how to port forward internet traffic to a specific computer and UDP port.

Additional server commands are needed for Hosting Custom Maps

Огнестрельное оружие

Название Рецепт Боеприпасы Урон Скорострельность Разлёт снаряда Размер магазина Перезарядка
Самодельный пистолет (Eoka Pistol) Очень простой пистолет, стреляет по одному патрону.

x150

x35

180 30 RPM 1 2.0s
Гвоздомёт (Nailgun)A construction tool turned deadly 18 400 RPM 0.75° 16 3.4s
Револьвер (Revolver) Шестизарядный револьвер.

x200

x100

x25

35 343 RPM 0.75° 8 3.4s
Полуавтоматический пистолет (Semi-Automatic Pistol) Полуавтоматический пистолет. Стреляет быстро и с высокой точностью.

x15

x25

40 400 RPM 0.75° 10 2.9s
Револьвер Питон (Python Revolver) A High Powered six-shooter. 45 400 RPM 0.5° 6 3.75s
Пистоле М92 (M92 Pistol) A semi-automatic Pistol. Fires rapidly and with good accuracy. Military Grade 45 600 RPM 15 2.2s
Самодельный дробовик (Waterpipe Shotgun) Дробовик из водопроводной трубы. Однозарядный.

x300

x100

180 13 RPM 1 2.4s
Винтовка (Bolt Action Rifle) Очень мощная и точная винтовка.

x300

x30

x100

80 35 RPM 4 5.0s
Помповый дробовик (Pump Shotgun) Помповый дробовик. Вмещает 6 патронов.

x300

x30

x40

210 55 RPM 6 5.5s
Пистолет-пулемёт Томпсона (Thompson)Пистолет-пулемёт Томпсона. Наносит урон средней силы.

x100

x35

37 462 RPM 0.5° 20 4.0s
Винтовка M39 (M39 Rifle)Военная полуавтоматическая винтовка. 50 300 RPM 0.1° 20 3.25s
Штурмовая винтовка (Assault Rifle)Автомат Калашникова — никаких компромиссов. 50 450 RPM 0.2° 30 4.4s
Самодельный пистолет-пулемёт (Custom SMG)Очень скорострельный пулемёт. Точность и дальность принесены в жертву скорости.

x100

x30

x10

30 600 RPM 0.5° 24 4.0s
MP5A4Очень скорострельный пулемёт. Точность и дальность принесены в жертву скорости. 35 600 RPM 0.5° 30 4.0s
Пулемёт M249 (M249)Ручной пулемёт с высоким темпом стрельбы и хорошим уроном. Невозможно создать 65 500 RPM 0.2° 100 7.5s
Полуавтоматическая винтовка (Semi-Automatic Rifle)Полуавтоматическая винтовка.

x450

x60

40 343 RPM 0.25° 16 4.4s
Огнемёт (Flame Thrower)Огнемёт, отличное средство для любителей позажигать.

x100

x250

x8

8 240 RPM 100 3.5s
Двухствольный дробовик (Double Barrel Shotgun) 180 120 RPM 0.5° 2 5.5s
LR-300 штурмовая винтовка (LR-300 Assault Rifle)Преследуйте своих врагов с этой мощной штурмовой винтовкой. 40 500 RPM 0.2° 30 4.0s
Винтовка L96 (L96 Rifle)A military issue high powered rifle. Extremely long range and accuracy. 40 500 RPM 0.2° 30 4.0s
Дробовик Spas-12 (Spas-12 Shotgun)A semi automatic military issue shotgun. 136 180 RPM 6 5.8s

Кросс-компиляция

С помощью rustup

Использовать кросс-компиляцию с rustup очень легко. Он поддерживает очень много целевых платформ. Полный их список можно увидеть с помощью команды .

Например, если вы хотите использовать stable Rust для Windows с компилятором GNU, сделайте следующее:

$ rustup install stable-x86_64-pc-windows-gnu

Эта команда установит только rust и инструменты для вашей целевой платформы, и для кросс-компиляции нужно сделать ещё несколько вещей.

Windows

В этом разделе будет целевой архитектурой ( или ).

  1. и
  2. Добавьте определение binfmt для исполняемых файлов Windows вручную.
  3. Если вы используете rustup, достаточно просто выполнить команды и для установки Rust и стандартной библиотеки для вашей архитектуры. Если вы не используете rustup, поставьте стандартную библиотеку Rust для Windows в вашем каталоге rustlib ( если у вас AUR или если вы используете пакет ). Простейший путь для этого — скачать установщик Rust под Windows для нужной вам архитектуры, установить с помощью Wine () и скопировать в ваш каталог rustlib.
  4. Подскажите cargo, где искать MinGW-w64 gcc/ar добавлением следующих параметров в (создайте файл, если он отсутствует):
~/.cargo/config
linker = "/usr/bin/$ARCH-w64-mingw32-gcc"
ar = "/usr/$ARCH-w64-mingw32/bin/ar"

Теперь вы можете выполнять кросс-компиляцию для Windows, указывая дополнительный аргумент при вызове cargo:

$ # Сборка
$ cargo build --release --target "$ARCH-pc-windows-gnu"
$ # Запуск unit-тестов через wine
$ cargo test --target "$ARCH-pc-windows-gnu"

Неофициальные пакеты

содержит rust-nightly и стандартную библиотеку Rust для i686, ARM, ARMv7, Windows 32 и 64, и вы можете просто установить то, что вам нужно, и использовать кросс-компиляцию. Тем не менее вам нужно найти ARM toolchain самостоятельно. Для Windows 32bit вам нужно получить libgcc_s_dw2-1.dll для сборки и запуска.

Tips/Tricks, Hypothesies and Conclusion

As we near the end of this guide, I will leave off with some tips and tricks that I found useful!

  • When gathering resources, you are able to look away until the main item hits the mark. This allows you to look behind you for players, and other hostile animals.
  • Join a small server when starting out, it will help you gather resources and learn the ropes of the game. NON PVP servers are also a bonus as they provide the above-mentioned and is basically ‘easy mode’.
  • When you first spawn, if there is no stone/metal in your immediate vicinity,(F1 suicide till you get a spaw with better resources to live your life) gather some wood from the trees. This will tell the game that you are sticking around that area, and I think it will increase the spawn chance. (False. Resource nodes only spawn in specific areas of the map. Stick to the road, you’ll come across resource fields)
  • Always close your doors!
  • Do your crafting at night, that way you can maximize output of resources and tools during the day! I advise you to only craft things such as: Food, tools, etc. that will make your life easier during the day! (I would advise not starting a fire at night as the hunters and looters are attracted to light, I know i sure am)
  • Make sure, if you are using Storage, that you allow nobody into the area. They may steal it and you could be left worse than when you started! Always keep the most precious items on you! (False, Put it in a little storage bag and hide the bag)
  • When logging out, take all of your valuable items that way they will stay with you with no chance of theft! (Unless you play on a «sleeper» server, meaning when you log out your character «sleeps» on the ground. A person can then come and kill you and loot your body.)
  • If you are lagging, press F1, go to the console command line and type without single quotes: ‘grass.on false’ this will disable the grass and make it easier to see, as well as easier on your system!
  • Need cloth? Hunt wolves. They give loads.

I want to thank you for reading my guide! I will keep it updated as much as possible! I will be adding a commentary and many more informational pictures! If you have any questions, my Steam ID is Kato233, and you can usually find me on the smaller NON-PVP servers! 

Thanks again,

Оружие ближнего боя и инструменты

Название Рецепт Урон Скоростьатаки Дальность
Факел (Torch)Факел. Освещает путь ночью и может быть использован в качестве оружия.

x30

x1

x1

5 46 HPM 1,5m
Камень (Rock)Камень. Самое простое оружие ближнего боя и инструмент добычи ресурсов.

x10

10 46 HPM 1,25m
Костяная дубина (Bone Club)Дробящее оружие из бедренной кости.

x20

12 86 HPM 1,5m
Бензопила (Chainsaw)Каменный топор.

x5

x2

x6

12 300 HPM 1,5m
Каменный топор (Stone Hatchet)Каменный топор.

x200

x100

15 67 HPM 1,5m
Отбойный молоток (Jackhammer)Пневматический отбойный молоток, пробивающий руду. За счёт мощности данного устройства Вам не потребуется наводиться на слабые участки. Хорошо работает на человеческой плоти. Может быть восполнен на ремонтном верстаке. 15 400 HPM 2m
Костяной нож (Bone Knife)Холодное оружие из заточенной кости и дерева.

x30

16 86 HPM 1,5m
Боевой нож (Combat Knife)
Каменная кирка (Stone Pick Axe)Каменная кирка.

x250

x125

17 67 HPM 1,5m
Нож мясника (Butcher Knife)A sharp butcher knife. Extremely good at harvesting flesh from both dead or alive bodies. 20 86 HPM 1,5m
Топор (Hatchet) Топорик, пригодится для рубки деревьев и расчленения трупов.

x100

x75

25 67 HPM 1,5m
Деревянное копьё (Wooden Spear)Большая заострённая палка.

x300

25 40 HPM 2,6m
Кирка (Pick Axe)Кирка полезна для добычи руды из горных пород.

x100

x125

30 40 HPM 1,5m
Самодельный молот (Salvaged Hammer)Металлический молот, изготовленный из кучи разного хлама.

x50

x250

30 60 HPM 1,5m
Каменное копьё (Stone Spear) Копьё с каменным наконечником.

x1

x100

x5

35 40 HPM 2,75m
Мачете (Machete)Жестокое оружие с хорошей дальностью применения.

x40

x100

35 60 HPM 1,5m
Вилы (Pitchfork) A 3 pronged pitchfork. Extremely easy to hit targets with.

x1

x100

x5

40 40 HPM 2,75m
Самодельный ледоруб (Salvaged Icepick)Ледоруб. Полезен для добычи руды.

x50

x150

40 48 HPM 1,5m
Самодельный топор (Salvaged Axe) Высокоэффективный топор. Медленнее, чем железный топорик.

x50

x250

40 48 HPM 1,5m
Булава (Mace)Мощное двуручное оружие ближнего боя с большим уроном.

x50

x100

50 30 HPM 1,5m
Самодельный меч (Salvaged Sword)Оружие ближнего боя, сделанное из старого газового ключа. Крепкое и наносит большой урон.

x15

x1

50 48 HPM 1,5m
Самодельный тесак (Salvaged Cleaver)Мощное двуручное оружие ближнего боя с большим уроном.

x50

x1

60 30 HPM 1,5m
Длинный меч (Longsword)Мощное двуручное оружие ближнего боя с хорошим радиусом поражения и высоким уроном.

x100

x3

75 30 HPM 1,5m

При этом Rust не панацея

Тех, кто только планирует погрузиться в Rust, предупреждаю: это не панацея от всех болячек C++. Он защищает вас от гонки данных через проверку borrow checker, но пропускает дедлоки. Защищает от use-after-free, но только в safe-подмножестве. Если же работаете с unsafe — у вас, по сути, будет тот же С++, только с более продвинутой стандартной библиотекой.


Изображение: Альберто Блинчиков для Skillbox Media. Источник

Хотя и здесь не всё так однозначно. Многие важные фичи, например для разработки драйверов или встроенного ПО, остаются нестабильными, а значит, писать на Rust серьёзные проекты пока рискованно. По этой причине от Rust часто отказываются в пользу C++, где всё давно stable и unsafe.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector