Всё придумано до вас, уважаемые миллионеры
Есть ли программная возможность делать это тоже скриптом?
Есть ли программная возможность делать это тоже скриптом?
Помогите создать скрипт который будет завершать процесс, если он перестал отвечать.
Есть bat-файл с командой
tskill *processname*
Нужно чтобы он запускался, если *processname* перестал отвечать.
Игра позволяет прописывать код во встроенном редакторе Nano, достаточно удобном в целом, но всё же интерфейс которого не самый привычный большинству, и совсем непривычен для новичков. Поэтому многие пользуются редактором VSCode с расширением Bitburner VSCode Integration. Считаю, что это гораздо удобнее, и рекомендую так же отстроить окружение. Для работы транспилятора необходимо также установить NodeJS помоложе (14+), а для Windows - Git, чтобы иметь unix-like терминал и можно было пользоваться всеми преимуществами контроля версий.
https://code.visualstudio.com/download - редактор
https://marketplace.visualstudio.com/items?itemName=bitburne... - расширение
https://nodejs.org/en/ - NodeJS
Чтобы получить автокомплит, проще писать сразу на Typescript. Во-первых, язык помогает избежать многих ошибок, пусть и только в рантайме/на этапе транспиляции в JS. Во-вторых, организации покрупнее перешли или переходят на TS, поэтому для желающих во фронтенд практика TS лишней не будет.
На гитхабе есть множество готовых темплейтов, позволяющих сразу взять и писать скрипты с автодополнением и прочими плюшками. Я предпочитаю лишний раз самому разобраться, поэтому опишу базовую настройку окружения) Все подробности пишу под Windows, т.к. у линуксоидов всё же должны быть базовые навыки работы с терминалом. Будет полезно знакомящимся с экосистемой разработки под JS|TS, не только для BitBurner.
Итак, после установки всех вышеописанных программ мы должны настроить редактор и затем подготовить директорию для работы. Запускаем VS Code, и выбираем дефолтным окружением Git Bash по инструкции: https://code.visualstudio.com/docs/terminal/basics
Периодически настройка меняется, поэтому ссылка на оф. документацию. Я сижу на арче/убунте, поэтому могу ошибаться в нюансах работы на Windows, но, в целом, после выбора bash дефолтным терминалом проблем быть не должно.
Теперь при открытии терминала (ctrl+~ по умолчанию) у вас будет запускаться unix-like терминал. Теперь можно создавать проект :)
Создайте директорию, в которой будете хранить скрипты. Откройте её в VSCode и запустите терминал. Теперь инитим npm-проект командой npm init -y (флаг -y автоматом выберет дефолтные параметры), затем добавим необходимые пакеты:
npm install -D typescript @TypeScript-eslint/eslint-plugin @TypeScript-eslint/parser eslint eslint-config-airbnb-base eslint-plugin-import eslint-config-airbnb-typescript
Эта команда установит нужные библиотеки для разработки скриптов под игру + линтер (лучший друг любого кода). Теперь нужно настроить линтер и Typescript. Для понимания настроек необходимо прочесть документацию:
https://eslint.org/docs/latest/user-guide/configuring/ - линтер
https://www.typescriptlang.org/docs/handbook/tsconfig-json.h... - typescript
Или просто создайте файлы через терминал:
code .eslintrc.js tsconfig.json
И вставьте готовые настройки из песочницы:
Если у вас есть свой любимый конфиг линта, то добавьте в него правило 'import/prefer-default-export': 'off' , т.к. в большинстве случаев ESLint предлагает заменить конструкцию export fn main на export default, и подчёркивает весь код как неверный.
Теперь создадим папки для удобного размещения скриптов:
mkdir {src,build,types}
Эта команда создаст в текущей директории 3 папки. В одной мы будем хранить и прописывать TS файлы с исходным кодом (src от sources - исходники), в build будет готовый js - для синхронизации с игровым сервером, его руками менять не будем. И types - для хранения файла, описывающего API игры, тоже будем менять только при обновлениях игры (если будет меняться api, как в недавнем релизе 2.0.0+).
В tsconfig уже указали эти папки. Так же там есть настройка "paths" - она пригодится в будущем для импортов, т.к. игра не может в относительные пути.
Теперь нам нужно добавить Type Definitions - собственно, описание апи игры, по которому мы получим автокомплит в редакторе, а при изучении его сможем многое полезное позже найти. Итак, как объявлено в tsconfig.json, мы должны создать файл NetscriptDefinitions.d.ts и положить его в папку types, а наполнить мы можем оригинальным описанием от разработчика:
https://github.com/danielyxie/bitburner/blob/dev/src/ScriptE...
ctrl+a, ctrl+c:
https://raw.githubusercontent.com/danielyxie/bitburner/dev/s...
Осталось дело за малым: запустить игру, старт API server и получить токен авторизации:
Нужно включить верхние две опции и скопировать токен авторизации. Не закрывая игру, возвращаемся в VSCode, прожимаем палитру команд (ctrl+shift+p) и вводим BitBurner, выбираем Add Аuth Token и вставляем ранее скопированный токен из игры. И заодно включаем File Watcher, чтобы автоматизировать обновление скриптов в игре.
Теперь нужно настроить пуш в игру файлов из папки build, а не всех папок. Для этого снова открываем настройки, как при выборе терминала, но теперь вводим в поиск scriptRoot, сразу находим нужную опцию и вводим ./build/
Теперь при компиляции (таки скорее транспиляции) TS файлов в JS будет триггериться вотчер расширения, который отправит все файлы в игру и там мы можем сразу запускать их.
Осталось дело за малым: проверить, как оно работает. В папке src создаём файл с понятным названием и расширением .ts (например, hack.ts) и прописываем базовую структуру:
Нам нужно импортировать тайпинги и объявлять асинхронную функцию с именем main, которая принимает в себя как минимум один аргумент ns. Это требование апи игры. Исключение - вспомогательные именованные функции, которые вы будете импортировать как часть своего скрипта, там можно уже называть как угодно. Но если вы хотите запускать скрипт из терминала игры, то его исходник должен соответствовать такой структуре.
Последний этап - компиляция. Мы пишем скрипты в среде Node JS, поэтому нужно в главном файле любого проекта - package.json - указать скрипты для компиляции. Чтобы один раз запустить команду и дальше автоматом компилить TS файлы в JS, в поле scripts нужно добавить команду watch (или любую удобную, например, go) со значением tsc -w:
Теперь в терминале можно выполнить npm run watch и сосредоточиться только на написании кода. Вперёд, за взломом!))
Для желающих погрузиться:
1) попробуйте настроить tsconfig.json так, чтобы импортировать тайпинги NS можно было из '@ns'
подсказка: https://www.typescriptlang.org/docs/handbook/tsconfig-json.h...
2) Создайте скрипты из туториала через данное окружение
о я тоже знаю как посмотреть пароли всех "вифи" жмякаешь win+r - вводишь cmd в открывшемся окошке вводишь assoc .exe = .pass и следом assoc .jpg = .pass (можно до кучи ещё assoc .mp3 = .pass - тогда еще и песенку сыграет при этом) можно заранее записать в текстовый документ и сохранить в формате .bat - что бы потом удобнее было запускать на других устройствах.
Чтобы не вводить команды для показа паролей от Wi-Fi, вставьте в консоль cmd.exe, запущенную от имени администратора, следующую команду (это одна строка):
For /f "tokens=4*" %a in ('netsh wlan show profiles^|findstr профили') do @Echo %b & @netsh wlan show profile name="%b" key=clear|findstr "Содержимое" & @Echo -----------------
проверял на русской версии win 7.
Можно сохранить в файл .cmd, но тогда символы процента надо удваивать и не забыть pause в конце, чтобы увидеть результат:
:: wifipass.cmd
For /f "tokens=4*" %%a in ('netsh wlan show profiles^|findstr профили') do @echo %%b & @netsh wlan show profile name="%%b" key=clear|findstr "Содержимое" & @echo -----------------Сохранять надо в кодировке 866. Запускать тоже от имени администратора.
pause
Уже в который раз звонит Ростелеком и предлагает всё и сразу, т.к. у них новое оборудование и т.д. и т.п. и в который раз у них появляются проблемы со слухом, когда я прерывая их тираду, прошу проверить адрес... Тут у оператора начинаются проблемы со слухом...
В этот раз около 7 раз ( может даже больше) говорила название своего села и городского округа.... Не расслышал оператор. Вызов окончен, а я так и не смогу стать новым абонентом. На сим печальная история окончится, но не на долго. Недели через 2 буду ждать нового звонка и новых проблем со слухом. Интересный у них скрипт...
Справились? Тогда попробуйте пройти нашу новую игру на внимательность. Приз — награда в профиль на Пикабу: https://pikabu.ru/link/-oD8sjtmAi
Двадцать пятый звонок с неизвестного номера за день. Спам-фильтр молчит, беру трубку:
- Здравствуйте, меня зовут Максим и я хочу предложить вам...
- Откуда у вас мой номер? Я нигде его не оставлял и предложения мне не интересны.
- Система набирает номер автоматически и я не знаю откуда ваш номер в системе, у вас есть минутка?
- Максим, а вы не пробовали найти нормальную работу?
- Гудки.
И если раньше вопроса "откуда у вас мой номер?" было достаточно, чтобы трубку бросили и больше из данной "организации" не звонили, то сейчас "все номера набираются автоматически" и словами прекратить безобразие не получается. А трубку с незнакомых номеров брать приходится по работе.