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
ID:173210
![]() Feb 3 2004, 1:12 pm (Edited on Feb 3 2004, 1:27 pm)
|
|
I learned something NEW,
Bloodsport12