Архив сообщества
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. Какая машина нужна для своего сервера?
0
Изображение
Скопировать ссылку
Editor TEH Chaos-neutral#3
1. На гриновской и вайтовском билдах его нет
2. Вскопать можно, разрушить можно
2.1 Работать будет, но sleep(40) замени на do_after(40), иначе вскапывать можно будет на расстоянии
3. area используются ЗОНОВЫМ атмосом. Обязательно назначать.
4. ...
5. Любая
2
Скопировать ссылку
buhals#4
Editor TEH Chaos-neutral (13 March 2013 - 01:34) писал: писал:
1. На гриновской и вайтовском билдах его нет
2. Вскопать можно, разрушить можно
2.1 Работать будет, но sleep(40) замени на do_after(40), иначе вскапывать можно будет на расстоянии
3. area используются ЗОНОВЫМ атмосом. Обязательно назначать.
4. ...
5. Любая
Как добавить песку неразрушимость?
Мне атмос не нужен, ареа можно не назначать?
0
Изображение
Скопировать ссылку
buhals#6
Editor TEH Chaos-neutral (13 March 2013 - 02:54) писал: писал:
Не назначай. АПК работать тоже не будет.

Неразрушимость:
./Del()
return
Это в турф сенда вставить, да?

Как добавить к дверям(не аирлокам) зависимость от айди?
0
Изображение
Скопировать ссылку
buhals#8
Editor TEH Chaos-neutral (13 March 2013 - 04: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
Я переделал професии, незнаю что менять тут.
Вроде написал, но всеравно хочу узнать что это.
0
Изображение
Скопировать ссылку
12xilluks или Albert Xill#9
Editor TEH Chaos-neutral (13 March 2013 - 02:54) писал: писал:
Неразрушимость:
./Del()
return
Наркоман. Ее тогда даже педально убрать нельзя будет.
0
Скопировать ссылку
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()

0
Изображение
Скопировать ссылку
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()


Что это за код? убрал его и заработало.
Ошибка, не из-за него
убрал его и заработало.
0
Изображение
Скопировать ссылку
intercross#13
Editor TEH Chaos-neutral (13 March 2013 - 01:34) писал: писал:
3. area используются ЗОНОВЫМ атмосом. Обязательно назначать.
AHAHA! No.
Атмос вполне будет работать даже без назначения зон. Зональный он лишь потому что сам генерирует себе определённые зоны, между которыми и происходит взаимодействие. Собственно зоны используются в для АРС, эвентов, шаттлов, музыки в конце концов.
0
Игровая конференция в ТСе: wetskrells.net
Мы вам рады.

Мокрые скреллки (WIP)
Скопировать ссылку
Editor TEH Chaos-neutral#14
Цитата
Атмос вполне будет работать даже без назначения зон. Зональный он лишь потому что сам генерирует себе определённые зоны, между которыми и происходит взаимодействие. Собственно зоны используются в для АРС, эвентов, шаттлов, музыки в конце концов.
Цитата
Зональный он лишь потому что сам генерирует себе определённые зоны
Цитата
что сам генерирует себе определённые зоны
Что может привести к веселым последствиям :3
0
Скопировать ссылку
intercross#15
Editor TEH Chaos-neutral (14 March 2013 - 17:12) писал: писал:
Что может привести к веселым последствиям :3
Это да... На старой сборке ТГбея тебя может начать колотить об стену, за которой космос, лол
Хотя нынче такие ситуации черезвычайно редки
0
Игровая конференция в ТСе: wetskrells.net
Мы вам рады.

Мокрые скреллки (WIP)
Скопировать ссылку
Editor TEH Chaos-neutral#16
Сейчас генерация таких зон на грине вызывает веселый полубаг-полуфичу:
Если помещение разгерметизировано, то малейшее изменение давления вызывает, как ни странно, сквознячок. Причем нехилый такой. Урона не наносит, но с ног сбивает. Кстати, именно этот баг меня и убил на робастократии. Суть - меня уебало разгермой ап стекла, и влетел в дверь. Какого-то хрена даже в таком состоянии из ниоткуда брался сквозняк. Если я правильно понял - неправильно работала эта самая генерация зон - там стекло было проломлено в космос, и по решеткам зона появлялась в другом помещении, т.е. зона между разгерметизированным, и герметизированным помещениями принималось как граница.
0
Скопировать ссылку
buhals#17
Вопросы по профам:
1. Где написано в профе кем будет игрок (хуман, ии, киборг, МАКАКА).
2. Где написан список в Оккупейшн (где ставишь приоритет профам до начала игры)
Маленький реквест:
Генератор, который гибает тело и за счет этого получает электроенергию.
Как заставить биогенератор вырабатывать енергию за счет нутриенов?
0
Изображение
Скопировать ссылку
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

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

Чтобы биогенератор делал энергию из нутриентов, опять бери код пэкмена, но добавляй туда заправку реагентами от импринтера плат. При добавлении нутриентов нутриенты добавляются к топливу, при добавлении плазмы реактор бомбанёт при запуске (бонусные очки), остальные реагенты удаляются.
0
Скопировать ссылку
12xilluks или Albert Xill#19
buhals (13 March 2013 - 00:53) писал: писал:
Где код транспорта уборщика?
Кто-то бампнул тему и тут я заметил...

Ты не поверишь, но
code\game\objects\structures\janicart.dm

А в маппере он находится в разделе табуреток. Не спрашивайте, почему.
0
Скопировать ссылку
buhals#20
12xilluks или Albert Xill (29 March 2013 - 06:27) писал: писал:
Кто-то бампнул тему и тут я заметил...

Ты не поверишь, но
code\game\objects\structures\janicart.dm

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

Жду кодера который может мне обьяснить структуру кода профессий.
0
Изображение
Скопировать ссылку

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