var/list/Teleports=list()
atom
proc/Bumped(var/atom/movable/A)
movable/Bump(var/atom/A)
spawn() A.Bumped(src)
..()
obj/TeleportPiratesIsle
icon = 'Objects.dmi'
icon_state = "wheel"
density = 1
New()
..()
name = "Pirates Isle "
Teleports+=src
Bumped(var/atom/movable/A)
if(!ismob(A) || !A:client) return
usr << sound('Magic.wav')
var/obj/i = input(A,"Which teleport would you like to go?")as null|anything in Teleports
if(!i) return
A.loc = i.loc
obj/TeleportSkullIsland
icon = 'Objects.dmi'
icon_state = "wheel"
density = 1
New()
..()
name = "Skull Island"
Teleports+=src
Bumped(var/atom/movable/A)
if(!ismob(A) || !A:client) return
usr << sound('Magic.wav')
var/obj/i = input(A,"Which teleport would you like to go?")as null|anything in Teleports
if(!i) return
A.loc = i.loc
obj/TeleportOtherPiratesBase
icon = 'Objects.dmi'
icon_state = "wheel"
density = 1
New()
..()
name = "Other Pirates Base"
Teleports+=src
Bumped(var/atom/movable/A)
if(!ismob(A) || !A:client) return
usr << sound('Magic.wav')
var/obj/i = input(A,"Which teleport would you like to go?")as null|anything in Teleports
if(!i) return
A.loc = i.loc
obj/TeleportVolcano
icon = 'Objects.dmi'
icon_state = "wheel"
density = 1
New()
..()
name = "Volcano"
Teleports+=src
Bumped(var/atom/movable/A)
if(!ismob(A) || !A:client) return
usr << sound('Magic.wav')
var/obj/i = input(A,"Which teleport would you like to go?")as null|anything in Teleports
if(!i) return
A.loc = i.loc
obj/TeleportDarkIsland
icon = 'Objects.dmi'
icon_state = "wheel"
density = 1
New()
..()
name = "Dark Island"
Teleports+=src
Bumped(var/atom/movable/A)
if(!ismob(A) || !A:client) return
usr << sound('Magic.wav')
var/obj/i = input(A,"Which teleport would you like to go?")as null|anything in Teleports
if(!i) return
A.loc = i.loc
obj/TeleportSamuraisVillage
icon = 'Objects.dmi'
icon_state = "wheel"
density = 1
New()
..()
name = "Samurais Village"
Teleports+=src
Bumped(var/atom/movable/A)
if(!ismob(A) || !A:client) return
usr << sound('Magic.wav')
var/obj/i = input(A,"Which teleport would you like to go?")as null|anything in Teleports
if(!i) return
A.loc = i.loc
obj/GuildHouses
icon = 'Objects.dmi'
icon_state = "wheel"
density = 1
New()
..()
sleep(20)
name = "Guild Houses"
Teleports.Insert(1,src)
Bumped(var/atom/movable/A)
if(!ismob(A) || !A:client) return
usr << sound('Magic.wav')
var/obj/i = input(A,"Which teleport would you like to go?")as null|anything in Teleports
if(!i) return
A.loc = i.loc
Problem description:
runtime error: Cannot execute null.Bumped().
proc name: Bump (/atom/movable/Bump)
source file: Teleport System.dm,6
usr: Frozen (/mob/You/Human)
src: Frozen (/mob/You/Human)
call stack:
Frozen (/mob/You/Human): Bump(null)
You can also set Guild Houses to the parent_type of Teleports if you'd like. You'd have no need for the procedures under it because /obj/Teleport already has them.
I believe that runtime was caused because an atom bumped into something and the atom was deleted at the same time. Maybe you killed a Werewolf once it bumped into a teleport.