ID:141632
 
Code:
Arena Winner Proc:
mob
proc
Winner()
if(src.arena == 1)
usr.ckey = usr
world<<"<font color=black><B>Player Info:</font><B> <font color=red>[usr.key] has defeated [src] in the arena!"
src.arena = 0
usr.arena = 0
usr.loc = locate(57,143,9)
worldA = 1


BEAM CODE:
obj/Beam/KameHameHax10
layer=MOB_LAYER
density=1
icon='Beams.dmi'
icon_state="10Mid"
var/mob/Owner
Bump(var/obj/Beam/KameHameHax10/O)
src.name = Owner.name
if(src.type==O.type && src.Owner==O.Owner) return ..()
if(ismob(O))
var/mob/M=O
var/dmg = Owner.MaxKi - M.KiDefense
if(M.NPC == 1)
del(src)
if(M.Monster == 1)
M.Powerlevel -= dmg
F_damage(M, Owner.MaxKi, color = "#ff0000")
M.Attacked = 1
if(M.Powerlevel<=0)
Owner << "You Defeated [M], You gain <B><U>[M.Zeni] Zeni</U></B> and <B><U>[M.Exp] Exp</B></U>"
Owner.Exp += M.Exp
Owner.Zeni += M.Zeni
Owner.LevelUp()
del(M)
else
M.Powerlevel -= dmg
F_damage(M, Owner.MaxKi, color = "#ff0000")
if(M.Powerlevel<=0)
world << "<font color=black><B>Player Death: </font><font color=red><B>[Owner] has killed [M]!"
Owner << "You Defeated [M], You gain <B><U>[M.Zeni] Zeni</U></B> and <B><U>[M.Exp] Exp</B></U>"
Owner.Exp += M.Exp
Owner.Zeni += M.Zeni
Owner.LevelUp()
M.Death()
del(src)
if(isturf(O))
var/turf/T=O
T.density = 0
new/obj/rubble(locate(O.x,O.y,O.z))
spawn(1)
T.Density_Timer()
if(istype(O,/obj/Beam))
if(Owner.MaxKi >= O.Owner.MaxKi)
del(O)
if(O.Owner.MaxKi >= Owner.MaxKi)
del(src)
flick("BeamHit",src)
view(src)<<'explosion.wav'
sleep(1);del src


Problem description:

Everytime I use my beam on the other person, the world output thing, says: 0 has defeated Gizhy(example) in the arena!
I put "usr.key" so it shows my name but it doesn't say I won the arena when I kill the other person in the arena with a beam attack, it works fine with melee attacks.
Can someone show me an example or simple solution to fixing this problem.

usr abuse

Use src not usr in procs