Архив сообщества
2011 — 2019
Аватар 12xilluks или Albert Xill

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

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

code ss13

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

tizit#26
Я не кодер, поэтому сильно ссаными тряпками не бейте)
0
Спойлер
Цитата
Собственно, форумные кукаретики как всегда в ударе и извернули всё так, как им удобно.
Скопировать ссылку
Recei#27
tuzhit принцесса (11 May 2013 - 07:29) писал: писал:
Сделай area с названием gun1_on. В коде стрельбы из оружия(лол) нужно сделать проверку, что-то вроде if area=gun1_on, то оружие будет стрелять, соответственно, если оружие не будет находится в такой зоне, то вести огонь оно не сможет. С кодом оружия незнаком, но думаю, что у оружия в руках нет координат, поэтому при стрельбе нужно присваивать пушке координаты персонажа и проверять, находятся ли они в необходимой зоне gun1_on.

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

Именно эти варианты предложил Эдитор и даже кодец написал, но это не работает, так, как надо. Точнее совсем. Скрытые стены вообще странные и проверку запихнуть туда не возможно.
0
Цитата
1)Вся суть СБ: Загребли, но он невиновен? Пфф, виновен, просто улик при нем нет.
2)Все решается простой логикой основанной на правилах и бек-стори. Стыдно объяснять такие моменты.
3)Вперде Анимусяне!
4)#ящерсарматурой
Скопировать ссылку
tizit#28
Беги код тг с гитхаба. Там ищи code/game/smoothwall.dm. В этом файле находится код, который отвечает за направление соединения стен, насколько я понимаю.

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

https://codeload.git...tion/zip/master
0
Спойлер
Цитата
Собственно, форумные кукаретики как всегда в ударе и извернули всё так, как им удобно.
Скопировать ссылку
ACCount#29
И да, relativewall к стене прикрутить не забудь. Хотя...

1. Копипастим фальшстены и их спрайты /tg/
2. Копипастим smoothwalls /tg/
3. Вставляем костыли там, где не компилируется
0
Скопировать ссылку
Recei#30
ACCount (11 May 2013 - 12:47) писал: писал:
И да, relativewall к стене прикрутить не забудь. Хотя...

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

Был бы рад для начала извлечь скрытые стены из кода ферна. Закопипастить новые легко, а вот извлечь старые проблема.
0
Цитата
1)Вся суть СБ: Загребли, но он невиновен? Пфф, виновен, просто улик при нем нет.
2)Все решается простой логикой основанной на правилах и бек-стори. Стыдно объяснять такие моменты.
3)Вперде Анимусяне!
4)#ящерсарматурой
Скопировать ссылку
tizit#31
OdSt_97 (11 May 2013 - 12:54) писал: писал:
Был бы рад для начала извлечь скрытые стены из кода ферна. Закопипастить новые легко, а вот извлечь старые проблема.
Ищи в коде falsewall или вроде того.
0
Спойлер
Цитата
Собственно, форумные кукаретики как всегда в ударе и извернули всё так, как им удобно.
Скопировать ссылку
Recei#32
tuzhit принцесса (11 May 2013 - 23:34) писал: писал:
Ищи в коде falsewall или вроде того.

Для начала убедись, что скрытые стены ферна раскиданы по трем файлам. Я пробовал удалять из каждого, это вызывало около 6 тысяч ошибок.
0
Цитата
1)Вся суть СБ: Загребли, но он невиновен? Пфф, виновен, просто улик при нем нет.
2)Все решается простой логикой основанной на правилах и бек-стори. Стыдно объяснять такие моменты.
3)Вперде Анимусяне!
4)#ящерсарматурой
Скопировать ссылку
tizit#33
OdSt_97 (12 May 2013 - 00:18) писал: писал:
Для начала убедись, что скрытые стены ферна раскиданы по трем файлам. Я пробовал удалять из каждого, это вызывало около 6 тысяч ошибок.
Где взять код ферна?
0
Спойлер
Цитата
Собственно, форумные кукаретики как всегда в ударе и извернули всё так, как им удобно.
Скопировать ссылку
Recei#34
tuzhit принцесса (12 May 2013 - 00:32) писал: писал:
Где взять код ферна?

Ну в репозитории грина.
0
Цитата
1)Вся суть СБ: Загребли, но он невиновен? Пфф, виновен, просто улик при нем нет.
2)Все решается простой логикой основанной на правилах и бек-стори. Стыдно объяснять такие моменты.
3)Вперде Анимусяне!
4)#ящерсарматурой
Скопировать ссылку
tizit#35
Там код 120 метров весит.
0
Спойлер
Цитата
Собственно, форумные кукаретики как всегда в ударе и извернули всё так, как им удобно.
Скопировать ссылку
ACCount#36
Вот тебе творческая копипасточка проверки зоны из кода чертежей:
/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
0
Скопировать ссылку
12xilluks или Albert Xill#37
Leonido33 (28 April 2013 - 11:14) писал: писал:
flags = FPRINT | TABLEPASS | CONDUCT - куда эти слоты, что, как и зачем.
Первый позволяет оставлять на предмете отпечатки пальцев, второй - позволяет при броске пролетать над столом, а третий - проводить электричество.
0
Скопировать ссылку
Lagius#38
12xilluks или Albert Xill (15 February 2013 - 11:32) писал: писал:
В прямом смысле - нет. Они реализуются через т.н. "списки".

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

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

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

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

В итоге список нужен лишь для очень редкого количества случаев, тогда как массив гораздо более необходимая и базовая вещь. Поэтому я ставлю на то, что list в бьонде это и есть массив (в подавляющем большинстве случаев, когда это не бинарное дерево/хэштаблица).
0
Изображение
Скопировать ссылку
Dollar#39
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.

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

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

Если я действительно нашёл ошибку, то ЧСВ моё будет увеличиваться в геометрической прогрессии, а потом напишу покровосрывающий пост в багрепорты.
0
Изображение
Baystation12's fluff - основная статья
NanoTrasen: Титан Двадцать Шестого Века

NanoTrasen: структура корпорации
Тау Кита и её небесные тела
Икар, Исход и Луна
Скопировать ссылку
ZLOFENIX#40
Eye damage: 9001% bleeding

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

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

Скопировать ссылку
Gvardota#41
Dollar (19 May 2013 - 15:34) писал: писал:
https://github.com/SS13/black
Это актуальный код?
Кажется, нет.
Но всё же объясните это:




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

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

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

Если я действительно нашёл ошибку, то ЧСВ моё будет увеличиваться в геометрической прогрессии, а потом напишу покровосрывающий пост в багрепорты.
round() - округление до целого.
Минус перед s_tone выглядит странно. Кажется, я понимаю логику, которая за этим стоит, и она ущербная.
Суть в том, что у new_tone значение 1 отвечает за светлую кожу, 220 - за черную. С точки зрения RGB это чушь, чем больше число, тем светлее должна быть кожа. Какой из этого можно сделать вывод? Такой, что new_tone в вычислении цвета кожи используется со знаком минус. Что мы, собственно, и наблюдаем. Создается переменная s_tone, которая содержит число, которое нужно вычесть из цвета. То есть код определения составляющих цвета наверняка выглядит как-то вроде:
r = 220 + s_tone
g = 210 + s_tone
b = 150 + s_tone
Ну и коэффициенты какие-нибудь, чтобы за 1..255 не выйти.
0
Скопировать ссылку
Dollar#42
ZLOFENIX (20 May 2013 - 00:58) писал: писал:
А еще мне не понять где тут ошибка и каком баге вообще речь.
Относительно кода - все правильно, относительно того что тут происходит - хз.
Об этом:
Изображение

Gvardota (20 May 2013 - 01:11) писал: писал:

if (s_tone >= 0)
       preview_icon.Blend(rgb(s_tone, s_tone, s_tone), ICON_ADD)
else
       preview_icon.Blend(rgb(-s_tone,  -s_tone,  -s_tone), ICON_SUBTRACT)

Единственное, что нашёл, связанное с RGB.

Запустил всё это у себя - скинтон отлично работает.
Там же есть и ксеносы, которым можно менять скинтон, но на спрайтовой модельке этих изменений не видно. Также как на блеке сейчас.
Короче, я просто хотел залезть в код и посмотреть, от чего такой баг.

ZLOFENIX (20 May 2013 - 00:58) писал: писал:
Блак в привате
ДАЙ!
0
Изображение
Baystation12's fluff - основная статья
NanoTrasen: Титан Двадцать Шестого Века

NanoTrasen: структура корпорации
Тау Кита и её небесные тела
Икар, Исход и Луна
Скопировать ссылку
DemodiX#45
Решил обмазаться буонд-кодом, смотрю я в него, вроде понятен, но вот структура полного имени чего-либо, к примеру, Инженерного Шкафчика с замком
/obj/structure/closet/secure_closet/engineering_personal
не понятна, по древу папок не сопоставляется, по нахождению спрайта так же. И что это?
Так выглядит местонахождение файла:
"\code\game\objects\structures\crates_lockers\closets\secure".
А так местоположение в спрайта:
"\icons\obj\closet.dmi".
1
Изображение
Скопировать ссылку
Volad09#46
DemodiX (22 June 2013 - 12:34) писал: писал:
Решил обмазаться буонд-кодом, смотрю я в него, вроде понятен, но вот структура полного имени чего-либо, к примеру, Инженерного Шкафчика с замком
/obj/structure/closet/secure_closet/engineering_personal
не понятна, по древу папок не сопоставляется, по нахождению спрайта так же. И что это?
Так выглядит местонахождение файла:
"\code\game\objects\structures\crates_lockers\closets\secure".
А так местоположение в спрайта:
"\icons\obj\closet.dmi".
Меня это тоже отпугивает
0
I hate you, baka bitch!
Скопировать ссылку
longbow#47
DemodiX (22 June 2013 - 12:34) писал: писал:
Решил обмазаться буонд-кодом, смотрю я в него, вроде понятен, но вот структура полного имени чего-либо, к примеру, Инженерного Шкафчика с замком
/obj/structure/closet/secure_closet/engineering_personal
не понятна, по древу папок не сопоставляется, по нахождению спрайта так же. И что это?
Так выглядит местонахождение файла:
"\code\game\objects\structures\crates_lockers\closets\secure".
А так местоположение в спрайта:
"\icons\obj\closet.dmi".

Это иерархия классов. Использую комбинацию Ctrl+F, F3.
0
Скопировать ссылку
12xilluks или Albert Xill#48
DemodiX (22 June 2013 - 12:34) писал: писал:
Решил обмазаться буонд-кодом, смотрю я в него, вроде понятен, но вот структура полного имени чего-либо, к примеру, Инженерного Шкафчика с замком
/obj/structure/closet/secure_closet/engineering_personal
не понятна, по древу папок не сопоставляется, по нахождению спрайта так же. И что это?
Так выглядит местонахождение файла:
"\code\game\objects\structures\crates_lockers\closets\secure".
А так местоположение в спрайта:
"\icons\obj\closet.dmi".
Иерархия объекта в Бьенде (с наследованием характеристик и прочими фичами) и его расположение в дриммейкере. В данном случае, этот путь говорит, что личный шкафчик инженера относится к запираемым на замок шкафчикам, которые в свою очередь относятся к просто шкафчикам, а те к структурам, которые являются "обж". То есть не полнотайловыми объектами в бъенде.
0
Скопировать ссылку

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