В мапингоразделе есть, а в кодингоразделе - нет? Не порядок.
Итак, поехали. Как работают Лендмарки? В их коде обнаружено чуть более чем ничего.
Автор: 12xilluks или Albert Xill · 15.02.2013, 16:24 · 352 сообщений
В мапингоразделе есть, а в кодингоразделе - нет? Не порядок.
Итак, поехали. Как работают Лендмарки? В их коде обнаружено чуть более чем ничего.
Вопрос не по теме, но. В буонде есть массивы?
В прямом смысле - нет. Они реализуются через т.н. "списки".
Лэндмарки? Синие и красные крестики? Как "blobstart", спавн профессий, спавн предметов, входы и выходы шахтёрской плавильни?
Лендмарки - сугубо вспомогательная хуита. Сам лендмарк не делает ровно нихуя, поэтому и кода у лендмарка нет. Например, при запуске рэндомивента "блоб" код этого ивента выбирает случайный "blobstart" и спавнит там блоб. При спавне ассистента то же самое, но спавнится ассистент. При спавне карпов так же. Есть ещё режимные лендмарки, например на шатоле Синдиката. Шкафы с экипировкой соспавнятся только если нюка потому что этими лэндмарками рулит код режима "нюка". Шахтёрские лендмарки из плавильни обозначают вход и выход техники, это точно помню. Их поведение определяется кодом техники, к которой они примыкают. Вроде свой код имеет только спавнилка, которая спавнит случайный предмет из списка, но и в этом не уверен.
/area
var/area_lights_luminosity = 9
Что это?
Общая освещенность по всей зоне, которая не зависит от поставленных туда источников света. Например, на шаттле ВСЕГДА есть свет благодаря этому. Ну, как-то так.
Editor TEH Chaos-neutral (05 March 2013 - 09:27) писал:
Общая освещенность по всей зоне, которая не зависит от поставленных туда источников света. Например, на шаттле ВСЕГДА есть свет благодаря этому. Ну, как-то так.
Общая освещенность по всей зоне, которая не зависит от поставленных туда источников света. Например, на шаттле ВСЕГДА есть свет благодаря этому. Ну, как-то так.
Спасибо
Переменную туда нельзя поставить?
Сообщение отредактировал buhals: 05 March 2013 - 09:57
buhals (05 March 2013 - 09:29) писал:
Спасибо
Переменную туда нельзя поставить?
buhals (05 March 2013 - 09:23) писал:
/area
var/area_lights_luminosity = 9
Что это?
Судя по тому, что это переменная, не думаю, что в неё можно убрать другую переменную. Если же ты говоришь о значении, то, раз это переменная, а не константа, то вполне можно поставить. Вопрос в том, будет ли это работать как надо.
Гиде находится код, описывающий залезание персонажа в меху? Я имею в виду, в /tg/-билде.
code\game\mecha\mecha.dm
/obj/mecha/proc/moved_inside(var/mob/living/carbon/human/H as mob)
if(H && H.client && H in range(1))
H.reset_view(src)
/*
H.client.perspective = EYE_PERSPECTIVE
H.client.eye = src
*/
H.pulling = null
H.forceMove(src)
src.occupant = H
src.add_fingerprint(H)
src.forceMove(src.loc)
src.log_append_to_last("[H] moved in as pilot.")
src.icon_state = initial(icon_state)
dir = dir_in
playsound(src, 'windowdoor.ogg', 50, 1)
if(!hasInternalDamage())
src.occupant << sound('nominal.ogg',volume=50)
return 1
else
return 0
Где описан процесс открытия и закрытия дверей (шаттла).
Где описан алгоритм выбора спрайта для собираемого стола? (то, каким стол станет в зависимости от того, есть ли на соседних тайлах еще столы)
UPD: Спасибо, уже не надо. Спасибо Ксиллу.
alkoz (17 March 2013 - 06:34) писал:
Где описан алгоритм выбора спрайта для собираемого стола? (то, каким стол станет в зависимости от того, есть ли на соседних тайлах еще столы)
Да-да. Это очень нужно. Ведь таким образом работают стены. А на грине испорчены скрытые стены.
OdSt_97 (17 March 2013 - 06:45) писал:
Да-да. Это очень нужно. Ведь таким образом работают стены. А на грине испорчены скрытые стены.
Всё очень просто, однако я просто напишу пример, а не вырезку из кода, ибо лень искать.
var/dirs
for(var/d in cardinal)
var/turf/T = get_step(src,d)
var/obj/structure/table/TB = locate(/obj/structure/table) in T
if(TB)
dirs |= d
icon_state = "table[dirs]"
Есть ли в ТГ-коде нормальная замена бэевским органам, или только лимбсы?
Бьендовские гайды по какой-то причине на работают, так что спрошу тут, прежде чем разбираться.
Скрытый текст
var/obj/effect/overlay/A = new /obj/effect/overlay( usr.loc )
A.icon_state = "fireball" A.icon = 'icons/obj/wizard.dmi' A.name = "a fireball" A.anchored = 0 A.density = 0 A.luminosity = 3 step_to(A, T, 0) for(i=0, i<100, i++) var/hit = 0 var/moving = step_to(A,T,0) for(var/mob/living/target in range(1, A)) hit = 1 target.take_overall_damage(20,25) if(hit) explosion(A.loc, -1, -1, 2, 2) del(A) return if(!moving) explosion(A.loc, -1, -1, 2, 2) del(A) return sleep(2) if(A) explosion(A.loc, -1, -1, 2, 2) del(A) return
Код фаербола. Переменная moving. Могу предположить, что step_to() возвращает флаг, сообщающий, удалось ли предмету переместиться в сторону цели. Соответственно, переменная используется для подрыва фаербола, если он врезался в препятствие. Как определить, что к этим самым препятствиям относится?
Bump(var/atom/obstacle)
obstacle - ссылка до объекта столкновения.
flags = FPRINT | TABLEPASS | CONDUCT - куда эти слоты, что, как и зачем.
Итак. Есть не много вопросов по коду.
Вопрос первый : Как заставить оружие стрелять только в определенной зоне? ( Я тут кое-что хотел запилить, потом расхотел, но уже запиленое оружие не работает как надо. А все из-за советов Эдитора.)
Вопрос второй : Как сделать новую профессию, и выпилить из кода старую? (Не заменить, а именно вынести.)
Вопрос третий : Как я понял, это не смог решить Кет на Флегетоне, а именно скрытые двери ферна. Хотелось бы услышать ваше мнение по вопросу.
По мере возникновения, я буду обновлять списочек.
А что с дверями не так?
Просто скрытые двери сливаются со стенами, а скрытые ферна - нет. Как будто отдельная стена.
Код сливания стен же есть, там через какой-нибудь if запилино, что если стена на тайле рядом, то запилить спрайт стены без теней по бокам. Я подозреваю, что скрытые стены в коде сливания стен никак не фигурируют, потому они и не сливаются.
Чтобы снаряд оружия летел не в бесконечность, а до определенного тайла, нужно чтобы конечная точка его пути ограничивалась координатами оределенного тайла, это же логично.
А профессии хранятся в тхт файле, как и доступ, наверно :3
Я не кодер и с кодом станции не знаком, поэтому могу ошибаться.
tuzhit принцесса (11 May 2013 - 06:26) писал:
Код сливания стен же есть, там через какой-нибудь if запилино, что если стена на тайле рядом, то запилить спрайт стены без теней по бокам. Я подозреваю, что скрытые стены в коде сливания стен никак не фигурируют, потому они и не сливаются.
Код скрытой стены на ферне запилен сразу в трех файлах. Часть в mineral door.dm часть в structure.dm и еще где-то.
tuzhit принцесса (11 May 2013 - 06:26) писал:
Чтобы снаряд оружия летел не в бесконечность, а до определенного тайла, нужно чтобы конечная точка его пути ограничивалась координатами оределенного тайла, это же логично.
Мне нужно немного другое. Оружие должно стрелять только в зоне А, но не в зоне Б.
OdSt_97 (11 May 2013 - 08:23) писал:
Мне нужно немного другое. Оружие должно стрелять только в зоне А, но не в зоне Б.
Сделай area с названием gun1_on. В коде стрельбы из оружия(лол) нужно сделать проверку, что-то вроде if area=gun1_on, то оружие будет стрелять, соответственно, если оружие не будет находится в такой зоне, то вести огонь оно не сможет. С кодом оружия незнаком, но думаю, что у оружия в руках нет координат, поэтому при стрельбе нужно присваивать пушке координаты персонажа и проверять, находятся ли они в необходимой зоне gun1_on.
И я бы делал скрытые стены так. Есть тайл пола. На тайл пола я ставлю стену, идет проверка на наличие стен вокруг, их нет => стена ставится с окаймлением(такие полоски с винтами по бокам). Ставлю еще стену справа, идет проверка, теперь она проверяет эту стену и соседние на наличие стен рядом. Если рядом с какой-то стеной есть другая стена, то с этих сторон окаймление убирается. Еще правее ставлю скрытую стену, она появляется открытой, механизм проверки стен не включается. Потом я закрываю стену и тут механизм проверяет эту стену и соседние на наличие стен рядом, исходя из результатов дорисовываются или отрисовываются окаймления на нужных стенках.
Знатно обзмеился с треда