Для удобной работы с нашим кодом вам понадобятся следующие инструменты:
Предположим, что вы уже установили Git. Тут всё очень просто:
git clone --depth=1 https://github.com/frosty-dev/white-dream-main
Это не всё. Если вы хотите внести изменения, то придётся перейти к следующему пункту.
Для этого нам потребуются следующие вещи:
Всё имеется? Продолжим. Допустим, у нас есть изменение в файле code/shitcode/anus/bepis.dm
и мы хотим видеть его в основном репозитории. Создаём коммит с изменениями тогда:
Теперь нам нужно выгрузить куда-то это всё. Если вы делали всё по нашей инструкции, то понадобится ещё сделать собственный форк репозитория:
https://github.com/YOURNICKNAME/white-dream-main
.git remote add myfork https://github.com/YOURNICKNAME/white-dream-main
git push myfork master
Изменения будут в вашем форке. Теперь нужно открыть Pull Request для запроса внесения ваших правок в основной репозиторий:
Важная заметка! Все коммиты, которые вы делаете в ваш форк, также будут автоматически добавлены в ваш Pull Request. Не нужно создавать новый после каждого коммита, если существует текущий.
Learn More →
Самый мощный инструмент экономящий тонну времени из всей пачки. Выделим несколько особенностей при работе с ним:
Объект, который можно использовать в игре:
/*
Объект дилдо
Все переменные от этого объекта наследуют его дети
Например: /obj/item/dildo/small
*/
/obj/item/dildo
// большая часть имён должна быть в нижнем регистре,
// но возможны исключения,
// если вы используете имена существительные
name = "дилдо"
desc = "Описание дилдо."
// обязательно в одинарных кавычках
icon = 'путь/к/иконке/дилдо.dmi'
// название состояния в файле .dmi иконки
icon_state = "дилдо_драконий"
// любая переменная на ваш вкус
var/gayish = TRUE
// Прок инициализации. Он заменяет бьёндовский прок New()
/obj/item/dildo/Initialize()
// данная штука снизу нужна для вызова родительского прока Initialize().
// если забудете её, то ваш объект может работать неправильно, конечно,
// если только вы не собираетесь полностью менять этот прок
. = ..() // да, эта
// сюда пишем любую ересь, которую вы хотите видеть при инициализации, например
if(get_turf(src) == /turf/closed/wall)
gayish = TRUE
/*
Определяем свой собственный прок для объекта дилдо.
Для определения новых проков пишем перед названием /proc/
Все дети от этого объекта наследуют их.
В него также передаётся переменная /mob/M
Передаётся так "fuk(какой-то реф моба)"
*/
/obj/item/dildo/proc/fuk(mob/M)
// тут не нужен вызов родительской функции . = ..()
// однако, если будете менять этот прок у наследственного объекта
// то можно и добавить, если не собираетесь перезаписывать этот полностью
// моб принадлежит к классу living?
if(isliving(M))
// если да, то обозначаем его как living и работаем дальше
var/mob/living/L = M
// вызываем муть в глазах у этого моба в зависимости от force объекта dildo
M.apply_effects(eyeblur = force)
// возвращаем успех
return TRUE
else
// если моб не относится к классу living
// возвращаем не успех
return FALSE
// вызываем родительский прок attack(КОГО, КТО).
/obj/item/dildo/attack(mob/living/M, mob/living/user)
// дальше идёт проверка родительской функции
if(..())
// выполняем наш прок, который возвращает что-то в return
if(fuk(M))
// если успех
gayish = FALSE
// для прикола красим в красный
color = "#ff0000"
else
// если провал
gayish = TRUE
// цвет голубых?
color = "#00ffff"
// можем выполнить что-то ещё после проверки
say("Санекмен доигрался...")
// удаляем дилдо через 10 секунд
QDEL_IN(src, 100)
Как вы заметили, тут обилие комментариев. Комментарии всегда обязательны в коде для более быстрого понимания как он работает. Даже для себя, не только для других.
Thu, Jul 2, 2020 10:05 PM
Подготовка Убедитесь, что это точно баг, а не фича. Поинтересуйтесь у других игроков, например. Если можете, то определитесь с кодобазой. Вайт очень просто определить по названию в заголовке и особом стиле интерфейса. Если Вы думаете, что этот баг не Вайта, а /tg/station -- всё равно стоит его отрепортить. Скриншоты и логи. Как можно больше скриншотов и логов ускорят процесс решения проблемы. И помните, что за любой полезный репорт вам положена особая награда в виде донатпоинтов. Ещё вам понадобится аккаунт на GitHub. Это не сложно и не займёт много времени. Регистрироваться здесь. Делаем "ишью"
Oct 23, 2022DCS - это сложно. Не только потому, что он использует умные решения для сложных проблем, но и то, что само понимание этих проблем резко меняется. По началу это покажется сложным, но после начального периода обучения вы поймёте суть. Это совершенно новый подход к решению проблем, который упрощает многие варианты решений, распространенные в ss13. Терминология DCS, Datum component system: Немного устаревший термин, но это было первоначальное название системы в целом. Компоненты: Изолированные обладатели функциональности. Они содержат все данные и логику, необходимые для выполнения некоторого дискретного поведения. Элементы: То же, что и компоненты, но дешевле и более ограниченны в функциональности. Компоненты часто используются в этом руководстве для обозначения обоих как группы. Сигналы: Способ получения сообщений компонентами. Первоначально только компоненты могли принимать сигналы, но с тех пор он был расширен, поэтому любой может принимать сигнал, если он полезен. Компоненты/Элементы Компоненты - это набор функций черного ящика, разработанный с нуля с учетом сигналов. Подробности того, как работают сигналы, будут подробно описаны ниже, но вы, вероятно, сначала будете взаимодействовать с сигналами, внося изменения в какой-либо компонент или элемент. Функционально элементы представляют собой минимальную версию компонентов, и для целей этого документа вы можете заменить большинство случаев использования слова «компонент» на элемент. Различия будут раскрыты позже, если вы захотите углубиться в детали.
Jun 5, 2022Эта памятка создана для тех, кто в будущем захочет поднять свой "анемаз". Тому, кто занимается этим давно может пригодиться только список нужных библиотек и трики, всё остальное уже и так разжевано на форумах бьёнда. За основу будет взят мой старый опыт по настройке всего этого под Ubuntu Linux 20.04. Беру я её из-за простоты в настройке и меньшей вероятностью в возможном пердолинге с конфигами. Хостинг Выбираете сами, но могу посоветовать SpaceCore (регайтесь по этой рефке, если вдруг понадобится моя помощь). Одноядерного сервера с i7-8700 от них должно хватить на ровно один сервер, так что пробуйте. Также внимательно смотрите на скорость процессора, она должна быть описана, чем она больше - тем бодрее двигается ваша станция. Многие хостинги любят резать процессор в половину и более (большая часть говнохостеров режет процессор по приколу, не говоря уже про триальные версии), либо подсовывают магнитные ленты вместо SSD дисков со скоростью записи/чтения в 1 байт/25 лет. Первоначальная настройка Думаю, процесс с созданием машины и подключением к ней вы найдёте в интернете. Для удобства работы с сервером могу посоветовать Xshell и его лучшего друга Xftp. Если вы сейчас работаете под линуксом и не понимаете как это сделать, то могу вам посоветовать застрелиться нахуй. И так, подключаемся к нашей новенькой горяченькой и чистенькой машине.
Jun 5, 2022Надоел медлительный DreamMaker? Выполнение апдейта дерева после компиляции кода заставляет ваши яйца полысеть от старости? ТГшники молодцы и пилят тонны весьма очень полезных фич каждый час? Вы гей? Есть решение! Попробуйте начать кодить в Visual Studio Code прямо сейчас без смс и регистрации, просто берёте и ставите вот это: Visual Studio Code DreamMaker Language Client BYOND DM Language Support А что мне за это будет – спросите вы. Не бойтесь, если вы уже зашифровали ваши диски от товарища майора, то сесть всегда можно используя данные фичи:
Jun 5, 2022or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up