Подскажите как сделать так, чтобы к определенной двери подходил только определенный ключ(как ид карта и аирлок). Двери деревянные или металлические т.е без электричества и всего такого.
Занялся кодингом недавно, поэтому, если можно, то поподробнее.
В свойствах шлюза посмотри через ПКМ, там что-то связанное с акцусом
Спасибо за это, но мне бы понять, где оно именно в коде прописано все это. Я вроде все просмотрел, но так и не нашел.
Найди файл (если наш билд - z1) и там найди какой-нибудь шлюз, нажми ПКМ и свойства и ищи
Ну смотри, в этом месте код всех доступов, соответственно, дабы добавить “ключ”, сначала сюда надо запилить его доступ.
Потом сюда внести код “ключа” и прописать ему этот доступ, если на знаешь как, то глянь на карту синдиката.
А вот дабы дать именно конкретный доступ двери, тут уже мапперством нужно заниматься, если я не ошибаюсь.
Грубо говоря с 0-ля это можно сделать просто прописав в двер и ключь переменную, которую спавнивать при использовании ключа. Использовать для этого реализованную систему доступов это не очень. темболее что врядли один ключ подойдет к разным дверям, с разными замками.
Вопрос по коду у меня возник, а тему лишнюю создавать не хочется, да и разницы особо нет.
Зачем плодить лишние темы, их и так тут много, можно было бы собрать большинство в две-три.
Разбирался я в коде с гита, пытаясь реализовать новый функционал и сделать пулл реквест на это, но наткнулся на некоторую проблему, а именно что во многих местах, когда нужно вещи выкинуть на турф используется подобное:
var/turf/T = get_turf(src)
if(T)
...
или
var/turf/T = get_turf(src)
if(!T)
return 1
...
Возможно ли, что get_turf(src) выдаст не турф? Или только в случае, если где-то баг?
Почему тогда не добавить эту проверку внутрь get_turf?
И какой в итоге вариант выбрать?
Просто пропиши своим ключам номер доступа, а в сами двери впиши запрос доступа.
Будет работать как ИД карта.
Быдлокостылекодер в деле
Я другое предлагаю:
Запилить 2 доп состояния для дверей - открыт замок и закрыт.
При клике ключом на дверь будет открывать\закрывать соотвественно и если замок открыт, то дверь открывается. Нормас будет.
Замок - болты. Так даже проще. Ключ их поднимает/опускает.
Объект, у которого ты хочешь вызнать турф, может быть в NULL’e или удалён. На этот случай и делается эта проверка.
То есть можно не делать эту проверку в проке этого же объекта?
Например код разборки объекта:
/obj/item/X/attackby(obj/item/W, mob/user)
..()
if(istype(W, /obj/item/weapon/crowbar))
if(src.cell)
src.cell.loc = get_turf(src)
src.cell = null
to_chat(user, "\blue You took out a cell!")
else
to_chat(user, "\red No cell installed!")
return
Совершенно верно.
P.S. Не злоупотребляй указателем src, в твоём отрезке он точно не нужен. А ещё вместо \blue
используй спаны.
Понял, я просто скопировал из https://github.com/TauCetiStation/TauCetiClassic/blob/master/code/game/objects/items/robot/robot_parts.dm то как там было, думал допилить разборку остовов боргов на составляющие.
п.с. Может тогда там все случаи с src и \blue переделать заодно?
Нужно.