Архив сообщества
2011 — 2019

Мелкие вопросы по теме

Автор: 12xilluks или Albert Xill · 15.02.2013, 16:24 · 352 сообщений

Сообщений в теме: 352

ACCount#4

Лэндмарки? Синие и красные крестики? Как "blobstart", спавн профессий, спавн предметов, входы и выходы шахтёрской плавильни?

Лендмарки - сугубо вспомогательная хуита. Сам лендмарк не делает ровно нихуя, поэтому и кода у лендмарка нет. Например, при запуске рэндомивента "блоб" код этого ивента выбирает случайный "blobstart" и спавнит там блоб. При спавне ассистента то же самое, но спавнится ассистент. При спавне карпов так же. Есть ещё режимные лендмарки, например на шатоле Синдиката. Шкафы с экипировкой соспавнятся только если нюка потому что этими лэндмарками рулит код режима "нюка". Шахтёрские лендмарки из плавильни обозначают вход и выход техники, это точно помню. Их поведение определяется кодом техники, к которой они примыкают. Вроде свой код имеет только спавнилка, которая спавнит случайный предмет из списка, но и в этом не уверен.

Скопировать ссылку
Editor TEH Chaos-neutral#6

Общая освещенность по всей зоне, которая не зависит от поставленных туда источников света. Например, на шаттле ВСЕГДА есть свет благодаря этому. Ну, как-то так.

Скопировать ссылку
buhals#7

Editor TEH Chaos-neutral (05 March 2013 - 09:27) писал:

Общая освещенность по всей зоне, которая не зависит от поставленных туда источников света. Например, на шаттле ВСЕГДА есть свет благодаря этому. Ну, как-то так.

Общая освещенность по всей зоне, которая не зависит от поставленных туда источников света. Например, на шаттле ВСЕГДА есть свет благодаря этому. Ну, как-то так.

Спасибо

Переменную туда нельзя поставить?

Сообщение отредактировал buhals: 05 March 2013 - 09:57

Скопировать ссылку
intercross#8

buhals (05 March 2013 - 09:29) писал:

Спасибо

Переменную туда нельзя поставить?

buhals (05 March 2013 - 09:23) писал:

/area

var/area_lights_luminosity = 9

Что это?

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

Скопировать ссылку
ZLOFENIX#10

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

Скопировать ссылку
alkoz#12

Где описан алгоритм выбора спрайта для собираемого стола? (то, каким стол станет в зависимости от того, есть ли на соседних тайлах еще столы)

UPD: Спасибо, уже не надо. Спасибо Ксиллу.

Скопировать ссылку
Recei#13

alkoz (17 March 2013 - 06:34) писал:

Где описан алгоритм выбора спрайта для собираемого стола? (то, каким стол станет в зависимости от того, есть ли на соседних тайлах еще столы)

Да-да. Это очень нужно. Ведь таким образом работают стены. А на грине испорчены скрытые стены.

Скопировать ссылку
intercross#14

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]"
Скопировать ссылку
Gvardota#16

Бьендовские гайды по какой-то причине на работают, так что спрошу тут, прежде чем разбираться.

Скрытый текст
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() возвращает флаг, сообщающий, удалось ли предмету переместиться в сторону цели. Соответственно, переменная используется для подрыва фаербола, если он врезался в препятствие. Как определить, что к этим самым препятствиям относится?

Скопировать ссылку
Recei#19

Итак. Есть не много вопросов по коду.

Вопрос первый : Как заставить оружие стрелять только в определенной зоне? ( Я тут кое-что хотел запилить, потом расхотел, но уже запиленое оружие не работает как надо. А все из-за советов Эдитора.)

Вопрос второй : Как сделать новую профессию, и выпилить из кода старую? (Не заменить, а именно вынести.)

Вопрос третий : Как я понял, это не смог решить Кет на Флегетоне, а именно скрытые двери ферна. Хотелось бы услышать ваше мнение по вопросу.

По мере возникновения, я буду обновлять списочек.

Скопировать ссылку
tizit#22

Код сливания стен же есть, там через какой-нибудь if запилино, что если стена на тайле рядом, то запилить спрайт стены без теней по бокам. Я подозреваю, что скрытые стены в коде сливания стен никак не фигурируют, потому они и не сливаются.

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

А профессии хранятся в тхт файле, как и доступ, наверно :3

Я не кодер и с кодом станции не знаком, поэтому могу ошибаться.

Скопировать ссылку
Recei#23

tuzhit принцесса (11 May 2013 - 06:26) писал:

Код сливания стен же есть, там через какой-нибудь if запилино, что если стена на тайле рядом, то запилить спрайт стены без теней по бокам. Я подозреваю, что скрытые стены в коде сливания стен никак не фигурируют, потому они и не сливаются.

Код скрытой стены на ферне запилен сразу в трех файлах. Часть в mineral door.dm часть в structure.dm и еще где-то.

tuzhit принцесса (11 May 2013 - 06:26) писал:

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

Мне нужно немного другое. Оружие должно стрелять только в зоне А, но не в зоне Б.

Скопировать ссылку
tizit#24

OdSt_97 (11 May 2013 - 08:23) писал:

Мне нужно немного другое. Оружие должно стрелять только в зоне А, но не в зоне Б.

Сделай area с названием gun1_on. В коде стрельбы из оружия(лол) нужно сделать проверку, что-то вроде if area=gun1_on, то оружие будет стрелять, соответственно, если оружие не будет находится в такой зоне, то вести огонь оно не сможет. С кодом оружия незнаком, но думаю, что у оружия в руках нет координат, поэтому при стрельбе нужно присваивать пушке координаты персонажа и проверять, находятся ли они в необходимой зоне gun1_on.

И я бы делал скрытые стены так. Есть тайл пола. На тайл пола я ставлю стену, идет проверка на наличие стен вокруг, их нет => стена ставится с окаймлением(такие полоски с винтами по бокам). Ставлю еще стену справа, идет проверка, теперь она проверяет эту стену и соседние на наличие стен рядом. Если рядом с какой-то стеной есть другая стена, то с этих сторон окаймление убирается. Еще правее ставлю скрытую стену, она появляется открытой, механизм проверки стен не включается. Потом я закрываю стену и тут механизм проверяет эту стену и соседние на наличие стен рядом, исходя из результатов дорисовываются или отрисовываются окаймления на нужных стенках.

Скопировать ссылку

Обратно в Кодинг