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

Кодопроблемы (again)

Автор: buhals · 13.03.2013, 10:53 · 20 сообщений

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

buhals#1

Здравствуйте, я начал делать свою карту, появились вопросы.

1 Где код транспорта уборщика?

2 Скрытый текст

/turf/simulated/floor/plating/sand //floor piece name = "Sand" icon = 'floors.dmi' icon_state = "asteroid" icon_plating = "asteroid" var/dug = 0 //0 = has not yet been dug, 1 = has already been dug

/turf/simulated/floor/plating/sand/New() var/proper_name = name ..() name = proper_name //if (prob(50)) // seedName = pick(list("1","2","3","4")) // seedAmt = rand(1,4) if(prob(20)) icon_state = "asteroid[rand(0,12)]" spawn(2) updateMineralOverlays()

/turf/simulated/floor/plating/sand/ex_act() return

На этом турфе можно будет дышать и его нельзя будет разрушить?

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

Алсо, отредактировал код копания, будет ли он работать?

Скрытый текст

Содержимое спойлера отсутствует в сохранённом тексте.

/turf/simulated/floor/plating/sand/attackby(obj/item/weapon/W as obj, mob/user as mob)

if(!W || !user) return 0

if ((istype(W, /obj/item/weapon/shovel))) var/turf/T = user.loc if (!( istype(T, /turf) )) return

if (dug == 1) user << "\red This area has already been dug" return

user << "\red You start digging." playsound(src.loc, 'rustle1.ogg', 50, 1) //russle sounds sounded better

sleep(40) if ((user.loc == T && user.equipped() == W) && !dug) user << "\blue You dug a hole." gets_dug() dug = 1 icon_plating = "asteroid_dug" icon_state = "asteroid_dug" return else return

..(W,user)

return

/turf/simulated/floor/plating/sand/proc/gets_dug() /turf/simulated/floor/plating/sand/proc/updateMineralOverlays()

src.overlays = null

/turf/simulated/floor/plating/sand/proc/fullUpdateMineralOverlays()

/turf/simulated/floor/plating/sand/A if(istype(get_step(src, WEST), /turf/simulated/floor/plating/sand)) A = get_step(src, WEST) A.updateMineralOverlays() if(istype(get_step(src, EAST), /turf/simulated/floor/plating/sand)) A = get_step(src, EAST) A.updateMineralOverlays() if(istype(get_step(src, NORTH), /turf/simulated/floor/plating/sand)) A = get_step(src, NORTH) A.updateMineralOverlays() if(istype(get_step(src, NORTHWEST), /turf/simulated/floor/plating/sand)) A = get_step(src, NORTHWEST) A.updateMineralOverlays() if(istype(get_step(src, NORTHEAST), /turf/simulated/floor/plating/sand)) A = get_step(src, NORTHEAST) A.updateMineralOverlays() if(istype(get_step(src, SOUTHWEST), /turf/simulated/floor/plating/sand)) A = get_step(src, SOUTHWEST) A.updateMineralOverlays() if(istype(get_step(src, SOUTHEAST), /turf/simulated/floor/plating/sand)) A = get_step(src, SOUTHEAST) A.updateMineralOverlays() if(istype(get_step(src, SOUTH), /turf/simulated/floor/plating/sand)) A = get_step(src, SOUTH) A.updateMineralOverlays() src.updateMineralOverlays()

3. Area вообще обязательно назначать? Они только для проведения АПЦ?

4. Где скрипты Инсанов? Можно ли создать нового карб-хумана и кинуть туда эти скрипты?

5. Какая машина нужна для своего сервера?

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

1. На гриновской и вайтовском билдах его нет

2. Вскопать можно, разрушить можно

2.1 Работать будет, но sleep(40) замени на do_after(40), иначе вскапывать можно будет на расстоянии

3. area используются ЗОНОВЫМ атмосом. Обязательно назначать.

4. ...

5. Любая

Скопировать ссылку
buhals#4
Editor TEH Chaos-neutral (13 March 2013 - 02:34) писал:
  1. На гриновской и вайтовском билдах его нет

  2. Вскопать можно, разрушить можно

2.1 Работать будет, но sleep(40) замени на do_after(40), иначе вскапывать можно будет на расстоянии

  1. area используются ЗОНОВЫМ атмосом. Обязательно назначать.

  2. ...

  3. Любая

Как добавить песку неразрушимость?

Мне атмос не нужен, ареа можно не назначать?

Скопировать ссылку
buhals#6
Editor TEH Chaos-neutral (13 March 2013 - 03:54) писал:

Не назначай. АПК работать тоже не будет.

Неразрушимость:

Это в турф сенда вставить, да?

Как добавить к дверям(не аирлокам) зависимость от айди?

Скопировать ссылку
buhals#8
Editor TEH Chaos-neutral (13 March 2013 - 05:42) писал:

Да

Скрытый текст

var/list/assistant_occupations = list(

"Assistant", "Atmospheric Technician", "Cargo Technician", "Chaplain", "Lawyer", "Librarian" )

var/list/command_positions = list( "Captain", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer" )

var/list/engineering_positions = list( "Chief Engineer", "Station Engineer", "Atmospheric Technician", "Roboticist" )

var/list/medical_positions = list( "Chief Medical Officer", "Medical Doctor", "Geneticist" )

var/list/science_positions = list( "Research Director", "Scientist", "Chemist" )

var/list/civilian_positions = list( "Head of Personnel", "Bartender", "Botanist", "Chef", "Janitor", "Librarian", "Quartermaster", "Cargo Technician", "Shaft Miner", "Lawyer", "Chaplain", "Assistant", "Clown", "Mime", "Hobo" )

var/list/security_positions = list( "Head of Security", "Warden", "Detective", "Security Officer", "Commissar" )

var/list/nonhuman_positions = list( "AI", "Cyborg", "pAI" )

/proc/guest_jobbans(var/job) return ((job in command_positions) || (job in nonhuman_positions) || (job in security_positions))

/proc/GetRank(var/job) switch(job) if("Bartender","Chef","Lawyer","Librarian","Janitor","Assistant","Unassigned", "Clown", "Mime", "Hobo") return 0 if("Chaplain","Botanist","Hydroponicist","Medical Doctor","Atmospheric Technician","Geneticist", "Virologist", "Surgeon", "Emergency Physician", "Counselor") return 1 if("Quartermaster","Cargo Technician","Chemist", "Station Engineer","Roboticist", "Security Officer", "Forensic Technician","Detective", "Scientist","Shaft Miner", "Xenobiologist", "Plasma Researcher","Chief Medical Officer") return 2 if("Research Director","Head of Security","Chief Engineer","Warden") return 3 if("Captain","Head of Personnel","Wizard","MODE", "Commissar") return 4 else message_admins(""[job]" NOT GIVEN RANK, REPORT JOBS.DM ERROR TO A CODER") return 2

Я переделал професии, незнаю что менять тут.

Вроде написал, но всеравно хочу узнать что это.

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

Алсо, перестал заходить в мапу после изменений турфов, что делать?

Скрытый текст

Просто Турф

/turf/simulated/floor/plating/sand //floor piece name = "Sand" icon = 'floors.dmi' icon_state = "asteroid" icon_plating = "asteroid" var/dug = 0 //0 = has not yet been dug, 1 = has already been dug ./Del() return

/turf/simulated/floor/plating/sand/New() var/proper_name = name ..() name = proper_name //if (prob(50)) // seedName = pick(list("1","2","3","4")) // seedAmt = rand(1,4) if(prob(20)) icon_state = "asteroid[rand(0,12)]" spawn(2) updateMineralOverlays()

mine-turf

/turf/simulated/floor/plating/sand/attackby(obj/item/weapon/W as obj, mob/user as mob)

if(!W || !user) return 0

if ((istype(W, /obj/item/weapon/shovel))) var/turf/T = user.loc if (!( istype(T, /turf) )) return

if (dug == 1) user << "\red This area has already been dug" return

user << "\red You start digging." playsound(src.loc, 'rustle1.ogg', 50, 1) //russle sounds sounded better

do_after(40) if ((user.loc == T && user.equipped() == W) && !dug) user << "\blue You dug a hole." gets_dug() dug = 1 icon_plating = "asteroid_dug" icon_state = "asteroid_dug" return else return

..(W,user)

return

/turf/simulated/floor/plating/sand/proc/gets_dug() /turf/simulated/floor/plating/sand/proc/updateMineralOverlays()

src.overlays = null

/turf/simulated/floor/plating/sand/proc/fullUpdateMineralOverlays()

/turf/simulated/floor/plating/sand/A if(istype(get_step(src, WEST), /turf/simulated/floor/plating/sand)) A = get_step(src, WEST) A.updateMineralOverlays() if(istype(get_step(src, EAST), /turf/simulated/floor/plating/sand)) A = get_step(src, EAST) A.updateMineralOverlays() if(istype(get_step(src, NORTH), /turf/simulated/floor/plating/sand)) A = get_step(src, NORTH) A.updateMineralOverlays() if(istype(get_step(src, NORTHWEST), /turf/simulated/floor/plating/sand)) A = get_step(src, NORTHWEST) A.updateMineralOverlays() if(istype(get_step(src, NORTHEAST), /turf/simulated/floor/plating/sand)) A = get_step(src, NORTHEAST) A.updateMineralOverlays() if(istype(get_step(src, SOUTHWEST), /turf/simulated/floor/plating/sand)) A = get_step(src, SOUTHWEST) A.updateMineralOverlays() if(istype(get_step(src, SOUTHEAST), /turf/simulated/floor/plating/sand)) A = get_step(src, SOUTHEAST) A.updateMineralOverlays() if(istype(get_step(src, SOUTH), /turf/simulated/floor/plating/sand)) A = get_step(src, SOUTH) A.updateMineralOverlays() src.updateMineralOverlays()

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

/turf/simulated/floor/plating/sand/New()

var/proper_name = name

..()

name = proper_name

//if (prob(50))

// seedName = pick(list("1","2","3","4"))

// seedAmt = rand(1,4)

if(prob(20))

icon_state = "asteroid[rand(0,12)]"

spawn(2)

updateMineralOverlays()

Что это за код? убрал его и заработало.

Ошибка, не из-за него

убрал его и заработало.

Скопировать ссылку
intercross#13
Editor TEH Chaos-neutral (13 March 2013 - 02:34) писал:
  1. area используются ЗОНОВЫМ атмосом. Обязательно назначать.

AHAHA! No.

Атмос вполне будет работать даже без назначения зон. Зональный он лишь потому что сам генерирует себе определённые зоны, между которыми и происходит взаимодействие. Собственно зоны используются в для АРС, эвентов, шаттлов, музыки в конце концов.

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

Цитата

Атмос вполне будет работать даже без назначения зон. Зональный он лишь потому что сам генерирует себе определённые зоны, между которыми и происходит взаимодействие. Собственно зоны используются в для АРС, эвентов, шаттлов, музыки в конце концов.

Цитата

Зональный он лишь потому что сам генерирует себе определённые зоны

Цитата

что сам генерирует себе определённые зоны

Что может привести к веселым последствиям :3

Скопировать ссылку
intercross#15
Editor TEH Chaos-neutral (14 March 2013 - 18:12) писал:

Что может привести к веселым последствиям :3

Это да... На старой сборке ТГбея тебя может начать колотить об стену, за которой космос, лол

Хотя нынче такие ситуации черезвычайно редки

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

Сейчас генерация таких зон на грине вызывает веселый полубаг-полуфичу:

Если помещение разгерметизировано, то малейшее изменение давления вызывает, как ни странно, сквознячок. Причем нехилый такой. Урона не наносит, но с ног сбивает. Кстати, именно этот баг меня и убил на робастократии. Суть - меня уебало разгермой ап стекла, и влетел в дверь. Какого-то хрена даже в таком состоянии из ниоткуда брался сквозняк. Если я правильно понял - неправильно работала эта самая генерация зон - там стекло было проломлено в космос, и по решеткам зона появлялась в другом помещении, т.е. зона между разгерметизированным, и герметизированным помещениями принималось как граница.

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

Вопросы по профам:

1. Где написано в профе кем будет игрок (хуман, ии, киборг, МАКАКА).

2. Где написан список в Оккупейшн (где ставишь приоритет профам до начала игры)

Маленький реквест:

Генератор, который гибает тело и за счет этого получает электроенергию.

Как заставить биогенератор вырабатывать енергию за счет нутриенов?

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

Биогенератор? Бери код пэкмена, выпили добавление плазмы, переименуй в биогенератор. Этот код должен обработать заправку живыми существами, но он с Луны. Не знаю, как будет работать на билдах с кучей мобов.

/obj/machinery/biogenerator/attackby(var/obj/item/weapon/O as obj, var/mob/user as mob)

    if (istype(O, /obj/item/weapon/grab))

        var/obj/item/weapon/grab/G = O

        if (G.affecting)

            G.affecting.gib()

            переменная с топливом += 50

        return

Гибает всё живое, добавляет топлива.

Чтобы биогенератор делал энергию из нутриентов, опять бери код пэкмена, но добавляй туда заправку реагентами от импринтера плат. При добавлении нутриентов нутриенты добавляются к топливу, при добавлении плазмы реактор бомбанёт при запуске (бонусные очки), остальные реагенты удаляются.

Скопировать ссылку
12xilluks или Albert Xill#19
buhals (13 March 2013 - 01:53) писал:

Где код транспорта уборщика?

Кто-то бампнул тему и тут я заметил...

Ты не поверишь, но

code\game\objects\structures\janicart.dm

А в маппере он находится в разделе табуреток. Не спрашивайте, почему.

Скопировать ссылку
buhals#20
12xilluks или Albert Xill (29 March 2013 - 07:27) писал:

Кто-то бампнул тему и тут я заметил...

Ты не поверишь, но

code\game\objects\structures\janicart.dm

А в маппере он находится в разделе табуреток. Не спрашивайте, почему.

Конечно спасибо, но я заметил её сразу после перехода на тг билд.

Жду кодера который может мне обьяснить структуру кода профессий.

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

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