ID:173210
 
Look, I know how to do the door thing (with the open and close door verb) BUT...... Im doing the Metroid Doors (the side-scrolling game where you have to shoot doors to open them) Im going to put out a sample of what I did... and you guys can help me out here.. Heres the first thing I did.... I made the door turfs, and just left them alone.
Next thing I did was that I made it so when the beam bumps into that certain turf... it deletes the turf
heres how i first did it

obj/Beams
Strong_Beam
icon = 'Beams.dmi'
icon_state = "Weak Beam"
Bump(mob/M)
if(istype(M,/turf/Blue_Door)
del(M)

**********************************************************

I did the same for the weak beam. This did nothing to the door... so then i changed the Bump(mob/M) to Bump(turf/T). It didnt make a difference either... Im going to show you an example of my door code... see of I messed up there... but i prob didnt.


turf
Blue_Door
Right
icon = 'Doors.dmi'
icon_state = "right"
Left
icon = 'Doors.dmi'
icon_state = "left"

************************************************************

There we go... so the next thing I did was instead of doing the check in the bullet.... I tried doing it on the proc it self.Heres what I did.....

mob
proc
Shoot()
if(usr.Regular_damage <= 24)
view(src)<<sound('scifi002.wav')
var/obj/H = new/obj/Beam/Weak
H.loc = usr.loc
H.dir = usr.dir
while(H)
step(H,H.dir)
var/turf/T = H.loc
if(istype(T,/turf/Blue_Door))
del(T)
del(H)
break
if(T.density == 1)
del(H)
break
for(var/mob/M as mob in T)
if(M == usr)
continue
var/damage = usr.Regular_damage - round(M.armor * 0.50)
if(damage <= 0)
M.HP -= 1
M.DeathCheck()
del(H)
else
M.HP -= damage
M.DeathCheck()
del(H)
sleep(1)
sleep(1)

else
view(src)<<sound('scifi041.wav')
var/obj/H = new/obj/Beam/Strong
H.loc = usr.loc
H.dir = usr.dir
while(H)
step(H,H.dir)
var/turf/T = H.loc
if(T.type == /turf/Blue_Door)
del(T)
del(H)
break
if(T.density == 1)
del(H)
break
for(var/mob/M as mob in T)
if(M == usr)
continue
var/damage = usr.Regular_damage - round(M.armor * 0.50)
if(damage <= 0)

M.HP -= 1
M.DeathCheck()
del(H)
else
M.HP -= damage

M.DeathCheck()
del(H)

sleep(1)
sleep(1)

************************************************************

That what I did... if the bullet hit a T that was the door... it would delete the door.... but that doesnt work.
Oh... and the HUB mest up the rounding the damage minus the armor part (sorry about that ^_^ ;D)Well... I need the most help I may and can get... Thnx for reading over this and THANK YOU!!!

From a clueless person,
Bloodsport12


Even if you are on the right track,
you'll get run over if you just sit
there.
-Will Rogers
You see... it was the way I coded it on the strong beam part. Since I am a GM of the game.... I made it so my beam power is really strong... so I shoot out the strong beams.... As you can tell, in th strong beam part... instead of using if(istype(T,/turf/Blue_Door)... I used if(T.type == /turf/Blue_Door). So... thnx if you read my message... but sorry for the inconvenience 8/. Thnx all!!


I learned something NEW,
Bloodsport12