ID:373224
 
(See the best response by Urias.)
Code:
mob/var/aq_charge = 'FinalCharge.dmi'
mob/learn
verb
Devilmite_Beam()
set category = "Techniques"
if(usr.doing)
src << "You are already doing something!"
return

if(src.monkey)
usr << "You cannot use this skill at the moment."
return

if(src.wrapped)
src << "Your ki has been contained in the goo!"
return

if(usr.buku)
return

if(src.safe)
src << "You are currently safe and cannot attack."
return


if(usr.dead)
return

if(usr.ki_lock)
src << "Cannot use this Technique at his time"
return

if(!usr.pk)
usr << "You are not a Combatant!"
return

for(var/turf/Floors/Safe_Zone/S in view(6))
if(S in view(8))
usr << "They are in a Safe Zone!"
return
for(var/turf/Planet_Gravitys/Supreme_Kai/A in view(6))
if(A in view(8))
usr << "They are in a Safe Zone!"
return

for(var/turf/Planet_Gravitys/King_Kai/D in view(6))
if(D in view(8))
usr << "They are in a Safe Zone!"
return

Devilmite_Beam_Shoot()
src.afk_time = 0


mob
proc
Devilmite_Beam_Shoot()
var/obj/H = new/obj/Devilmite_Beam
var/ki_damage = round(usr.powerlevel * 2.9)
var/ki_cost = round(src.ki_max * 0.99)

if(src.ki >= ki_cost)
if(!src.doing)
src.ki_lock = 1
spawn(10) src.ki_lock = 0
src.doing = 1
src.ki -= ki_cost
src.overlays += ht_charge
view(6) << "<font color = white>[src]:</font> DEVILMITE"
sleep(5)
view(6) << "<font color = white>[src]:</font> BEAM!!!"
src.overlays -= ht_charge
usr.icon_state = "attack"
sleep(3)
usr.icon_state = ""
spawn(5) src.doing = 0
spawn(5) src.frozen = 0
if(!H)return
H.dir = src.dir
H.loc = src.loc

while(H)
step(H,H.dir)
if(!H)break
var/turf/T = H.loc
if(T.density == 1)
del(H)
break
for(var/mob/M as mob in T)
var/absorb_max = round(M.powerlevel_max)
var/ki_absorbed = round(M.ki_shield_strength - ki_damage)

if(M == src)
continue
if(!M.dead && !M.safe && M.pk)
if(M.ki_shield)
if(ki_absorbed >= 1)
src << "<font color = #00C3ED>[M]'s Ki Shield Absorbs the attacks damage!"
M << "<font color = #00C3ED>Your Ki Shield Absorbs [src]'s Attack!"
Explode(new /Effect/BasicBoom(M.loc,1,3))
M.powerlevel -= round(ki_absorbed)
M.ki_shield_strength -= round(ki_damage)
M.BigKiDeathCheck(src)
src.doing = 0
src.frozen = 0
return
else
M << "\red [src]'s Devilmite Beam slams into you!"
src <<"\red Your Devilmite Beam slams into [M]!"
Explode(new /Effect/BasicBoom(M.loc,1,3))
M.powerlevel -= round(ki_absorbed)
M.ki_shield_strength -= round(ki_damage)
M.BigKiDeathCheck(src)
src.doing = 0
src.frozen = 0
return
else
if(M.absorbing)
if(absorb_max > ki_damage)
M << "\red [src]'s attacks hits you, but you Absorb the energy!"
src <<"\red Your Devilmite Beam is Absorbed by [M]!"
Explode(new /Effect/BasicBoom(M.loc,1,3))
M.ki += ki_damage
src.doing = 0
src.frozen = 0
return
else
Explode(new /Effect/BasicBoom(M.loc,1,3))
M.powerlevel -= round(ki_damage)
M << "\red You try to absorb [src]'s Devilmite Beam, but it is too strong!"
src <<"\red Your Devilmite Beam slams into [M]!"
M.BigKiDeathCheck(src)
src.doing = 0
src.frozen = 0
return

M << "\red [src.name]'s Devilmite Beam slams into you"
Explode(new /Effect/BasicBoom(M.loc,1,3))
M.powerlevel -= ki_damage
M.BigKiDeathCheck(src)
del(H)
sleep(1)


obj/Devilmite_Beam
icon = 'DMB.dmi'


Problem description:

in my dbz im trying to make the tech delete itsself if it hits a wall, ive tried a bunch of stuff and none of it works can some one pls help me

You should probably handle that in Bump() rather than all of this mess.

atom
Bump(A) // When an atom bumps A
if(isturf(A)) // if A is a turf
src.loc = null // Delete the atom
ok ill try it
still no good, i get no errors, but it wont delete, its the same for all my other techs.
Best response
When the object is created, try something like this.

Bump(atom/a)
if(isturf(a) && a.density)
del(src)
..()


EDIT:
obj/Devilmite_Beam
icon = 'DMB.dmi'

New()
..()
Bump(atom/a)
if(isturf(a) && a.density)
del(src)
..()
oh wow man thank you so much, it worked perfectly