Перейти к содержимому


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

code ss13

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 351

#21 Finn

Finn

    Человек-ПРОАРГУМЕНТИРУЙ ЭТО

  • Employee
  • 859 сообщений
  • ГородАртем, Приморский край.

Отправлено 11 May 2013 - 15:38

Просто скрытые двери сливаются со стенами, а скрытые ферна - нет. Как будто отдельная стена.

Изображение


#22 tizit

tizit

    /\_/\

  • Employee
  • 3244 сообщений

Отправлено 11 May 2013 - 16:26

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

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

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

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

#23 Recei

Recei

    Green King

  • Employee
  • 5279 сообщений
     

Отправлено 11 May 2013 - 18:23

Просмотр сообщенияtuzhit принцесса (11 May 2013 - 16:26) писал:

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

Просмотр сообщенияtuzhit принцесса (11 May 2013 - 16:26) писал:

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

Цитата

1)Вся суть СБ: Загребли, но он невиновен? Пфф, виновен, просто улик при нем нет.
2)Все решается простой логикой основанной на правилах и бек-стори. Стыдно объяснять такие моменты.
3)Вперде Анимусяне!
4)#ящерсарматурой

#24 tizit

tizit

    /\_/\

  • Employee
  • 3244 сообщений

Отправлено 11 May 2013 - 18:29

Просмотр сообщенияOdSt_97 (11 May 2013 - 18:23) писал:

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

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

#25 Lagius

Lagius

    Грифер

  • Employee
  • 760 сообщений

Отправлено 11 May 2013 - 18:32

Знатно обзмеился с треда
Изображение

#26 tizit

tizit

    /\_/\

  • Employee
  • 3244 сообщений

Отправлено 11 May 2013 - 18:45

Я не кодер, поэтому сильно ссаными тряпками не бейте)
Скрытый текст

#27 Recei

Recei

    Green King

  • Employee
  • 5279 сообщений
     

Отправлено 11 May 2013 - 19:34

Просмотр сообщенияtuzhit принцесса (11 May 2013 - 18:29) писал:

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

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

Именно эти варианты предложил Эдитор и даже кодец написал, но это не работает, так, как надо. Точнее совсем. Скрытые стены вообще странные и проверку запихнуть туда не возможно.

Цитата

1)Вся суть СБ: Загребли, но он невиновен? Пфф, виновен, просто улик при нем нет.
2)Все решается простой логикой основанной на правилах и бек-стори. Стыдно объяснять такие моменты.
3)Вперде Анимусяне!
4)#ящерсарматурой

#28 tizit

tizit

    /\_/\

  • Employee
  • 3244 сообщений

Отправлено 11 May 2013 - 21:38

Беги код тг с гитхаба. Там ищи code/game/smoothwall.dm. В этом файле находится код, который отвечает за направление соединения стен, насколько я понимаю.

И там есть прок relativewall, он запиливается в код создания стены. Этот прок собственно и есть суть smoothwall.dm. Его вызов соединяет стены.

https://codeload.git...tion/zip/master
Скрытый текст

#29 ACCount

ACCount

    Ветеран космонавтики

  • Employee
  • 2684 сообщений
  

Отправлено 11 May 2013 - 23:47

И да, relativewall к стене прикрутить не забудь. Хотя...

1. Копипастим фальшстены и их спрайты /tg/
2. Копипастим smoothwalls /tg/
3. Вставляем костыли там, где не компилируется

#30 Recei

Recei

    Green King

  • Employee
  • 5279 сообщений
     

Отправлено 11 May 2013 - 23:54

Просмотр сообщенияACCount (11 May 2013 - 23:47) писал:

И да, relativewall к стене прикрутить не забудь. Хотя...

1. Копипастим фальшстены и их спрайты /tg/
2. Копипастим smoothwalls /tg/
3. Вставляем костыли там, где не компилируется

Был бы рад для начала извлечь скрытые стены из кода ферна. Закопипастить новые легко, а вот извлечь старые проблема.

Цитата

1)Вся суть СБ: Загребли, но он невиновен? Пфф, виновен, просто улик при нем нет.
2)Все решается простой логикой основанной на правилах и бек-стори. Стыдно объяснять такие моменты.
3)Вперде Анимусяне!
4)#ящерсарматурой

#31 tizit

tizit

    /\_/\

  • Employee
  • 3244 сообщений

Отправлено 12 May 2013 - 10:34

Просмотр сообщенияOdSt_97 (11 May 2013 - 23:54) писал:

Был бы рад для начала извлечь скрытые стены из кода ферна. Закопипастить новые легко, а вот извлечь старые проблема.
Ищи в коде falsewall или вроде того.
Скрытый текст

#32 Recei

Recei

    Green King

  • Employee
  • 5279 сообщений
     

Отправлено 12 May 2013 - 11:18

Просмотр сообщенияtuzhit принцесса (12 May 2013 - 10:34) писал:

Ищи в коде falsewall или вроде того.

Для начала убедись, что скрытые стены ферна раскиданы по трем файлам. Я пробовал удалять из каждого, это вызывало около 6 тысяч ошибок.

Цитата

1)Вся суть СБ: Загребли, но он невиновен? Пфф, виновен, просто улик при нем нет.
2)Все решается простой логикой основанной на правилах и бек-стори. Стыдно объяснять такие моменты.
3)Вперде Анимусяне!
4)#ящерсарматурой

#33 tizit

tizit

    /\_/\

  • Employee
  • 3244 сообщений

Отправлено 12 May 2013 - 11:32

Просмотр сообщенияOdSt_97 (12 May 2013 - 11:18) писал:

Для начала убедись, что скрытые стены ферна раскиданы по трем файлам. Я пробовал удалять из каждого, это вызывало около 6 тысяч ошибок.
Где взять код ферна?
Скрытый текст

#34 Recei

Recei

    Green King

  • Employee
  • 5279 сообщений
     

Отправлено 12 May 2013 - 11:35

Просмотр сообщенияtuzhit принцесса (12 May 2013 - 11:32) писал:

Где взять код ферна?

Ну в репозитории грина.

Цитата

1)Вся суть СБ: Загребли, но он невиновен? Пфф, виновен, просто улик при нем нет.
2)Все решается простой логикой основанной на правилах и бек-стори. Стыдно объяснять такие моменты.
3)Вперде Анимусяне!
4)#ящерсарматурой

#35 tizit

tizit

    /\_/\

  • Employee
  • 3244 сообщений

Отправлено 12 May 2013 - 11:42

Там код 120 метров весит.
Скрытый текст

#36 ACCount

ACCount

    Ветеран космонавтики

  • Employee
  • 2684 сообщений
  

Отправлено 13 May 2013 - 05:34

Вот тебе творческая копипасточка проверки зоны из кода чертежей:
/obj/item/weapon/gun/energy/supercool/proc/can_fire()
    var/turf/T = get_turf_loc(usr)
    var/area/A = T.loc
    A = A.master
    if (A.name == "Space") return 1
    else return 0

#37 12xilluks или Albert Xill

12xilluks или Albert Xill

    Ветеран космонавтики

  • Employee
  • 4647 сообщений
  • Byond:12xilluks
  • Discord:12xilluks#1912
  • Городпобратим

Отправлено 16 May 2013 - 23:33

Просмотр сообщенияLeonido33 (28 April 2013 - 22:14) писал:

flags = FPRINT | TABLEPASS | CONDUCT - куда эти слоты, что, как и зачем.
Первый позволяет оставлять на предмете отпечатки пальцев, второй - позволяет при броске пролетать над столом, а третий - проводить электричество.

#38 Lagius

Lagius

    Грифер

  • Employee
  • 760 сообщений

Отправлено 17 May 2013 - 00:31

Просмотр сообщения12xilluks или Albert Xill (15 February 2013 - 22:32) писал:

В прямом смысле - нет. Они реализуются через т.н. "списки".

http://www.byond.com...ide/chap10.html

Я думаю, это не совсем корректно.

Как реализуются множества обьектов в бьонде точно сказать нельзя, так как у нас нет доступа к исходному коду бьонда, однако можно сделать несколько предположений.

Скорее всего при каких-то обстоятельствах list в коде представляет собой бинарное дерево или хэш таблицу (list_var["key"] = value), в остальных же представляет собой либо список, либо массив (в терминах си). На одной чаше весов у нас  быстрая вставка множеств обьектов в середину (список), на другой - малый размер занимаемой памяти (примерно в три раза меньше, в случае двусвязного списка), практически мгновенная скорость доступа по индексу (в отличие от О(n) для списка), элементарность конструкции (без адресной арифметики массив не реализовать, а вот список на бьонде наваять можно).

В итоге список нужен лишь для очень редкого количества случаев, тогда как массив гораздо более необходимая и базовая вещь. Поэтому я ставлю на то, что list в бьонде это и есть массив (в подавляющем большинстве случаев, когда это не бинарное дерево/хэштаблица).
Изображение

#39 Dollar

Dollar

    Chaotic Good

  • Employee
  • 520 сообщений
  • ГородМинск

Отправлено 20 May 2013 - 02:34

https://github.com/SS13/black
Это актуальный код?
Кажется, нет.
Но всё же объясните это:


Цитата

var/new_tone = input("Please select skin tone level: 1-220 (1=albino, 35=caucasian, 150=black, 220='very' black)", "Character Generation", "[35-s_tone]")  as text

if (!new_tone)
     new_tone = 35
s_tone = max(min(round(text2num(new_tone)), 220), 1)
s_tone =  -s_tone + 35

Как я понял, вводится новый тон кожи, переводится в численный тип, round (не понял что за функция), потом проверка на граничные значения, а потом ПОЧЕМУ-ТО вычитается из 35.

Объясняю хардкорно два возникших вопроса.
Говорили, что баг появился после введения цвета кожи для ксеносов.
Следовательно:

Если код актуальный, то каким хером это работало тогда?
В обратном случае, где посмотреть актуальный код, и не имеется ли там такой же херни?

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

#40 ZLOFENIX

ZLOFENIX

    Генерал пальма

  • Employee
  • 1590 сообщений

Отправлено 20 May 2013 - 11:58

Eye damage: 9001% bleeding

Блак в привате, репа старая.
Round - ну ты хотя бы в ангельский можешь? Округление до целых это.
Минимум - не дает выбрать больше 220, самым уебанским способом.
Максимум - не дает выбрать меньше 1, опять же уебанско.
Последняя строка вообще беекод, мне не понять в данном случае.

А еще мне не понять где тут ошибка и каком баге вообще речь.
Относительно кода - все правильно, относительно того что тут происходит - хз.




Темы с аналогичным тегами code, ss13

Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных