ID:146482
 
Code:
I'm trying to make my own battlesystem for my game, and its not going all that well.

Does anyone have a ny suggestion on how to make this a bit better, neater. and also, I came across some errors when I compiled. (I plan on making it so I can use it on the HUD)

        attack
icon='attck.bmp'
New(client/C) screen_loc = "1,1", C.screen+=src
Click(random(1,2))
for(var/mob/M in oview(1))
if(random==1)
call(/mob/proc/kothem)()
if(random==2)
call(/mob/proc/attackthem)()

mob/proc/kothem(var/mob/M in oview(1))
usr.random(1,5)
if(usr.random==1)
M.powerlevel -= (usr.powerlevel / 12)
if(M.powerlevel >= 1)
M.move = 0
M<<"You have been KOed"
usr<<"You KOed [M.name]"
sleep(20)
M.powerlevel = 5
M.move = 1
M<<"You can move once again"
if(usr.random==2)
M.powerlevel -= (usr.powerlevel / 15)
if(M.powerlevel >= 1)
M.move = 0
M<<"You have been KOed"
usr<<"You KOed [M.name]"
sleep(20)
M.powerlevel = 5
M.move = 1
M<<"You can move once again"
if(usr.random==3)
M.powerlevel -= (usr.powerlevel / 13)
if(M.powerlevel >= 1)
M.move = 0
M<<"You have been KOed"
usr<<"You KOed [M.name]"
sleep(20)
M.powerlevel = 5
M.move = 1
M<<"You can move once again"
if(usr.random==4)
M.powerlevel -= (usr.powerlevel / 16)
if(M.powerlevel >= 1)
M.move = 0
M<<"You have been KOed"
usr<<"You KOed [M.name]"
sleep(20)
M.powerlevel = 5
M.move = 1
M<<"You can move once again"
if(usr.random==5)
M.powerlevel -= (usr.powerlevel / 14)
if(M.powerlevel >= 1)
M.move = 0
M<<"You have been KOed"
usr<<"You KOed [M.name]"
sleep(20)
M.powerlevel = 5
M.move = 1
M<<"You can move once again"
mob/proc/attackthem(var/mob/M in oview(1))
usr.random(1,5)
if(usr.random==1)
M.powerlevel -= (usr.powerlevel / 14)
oview(1)<<"[usr] kicks [M]"
if(M.powerlevel >= 0)
M.move = 0
M.Die()
M<<"<center>You have been killed by [usr.name]"
world<<"<center>[M] has been killed by [usr]"
usr<<"<center>You killed [M]"
if(usr.random==2)
M.powerlevel -= (usr.powerlevel / 16)
oview(1)<<"[usr] kicks [M]"
if(M.powerlevel >= 0)
M.move = 0
M.Death()
M<<"<center>You have been killed by [usr.name]"
world<<"<center>[M] has been killed by [usr]"
usr<<"<center>You killed [M]"
if(usr.random==3)
M.powerlevel -= (usr.powerlevel / 12)
oview(1)<<"[usr] kicks [M]"
if(M.powerlevel >= 0)
M.move = 0
M.Death()
M<<"<center>You have been killed by [usr.name]"
world<<"<center>[M] has been killed by [usr]"
usr<<"<center>You killed [M]"
if(usr.random==4)
M.powerlevel -= (usr.powerlevel / 15)
oview(1)<<"[usr] kicks [M]"
if(M.powerlevel >= 0)
M.move = 0
M.Death()
M<<"<center>You have been killed by [usr.name]"
world<<"<center>[M] has been killed by [usr]"
usr<<"<center>You killed [M]"
if(usr.random==5)
M.powerlevel -= (usr.powerlevel / 13)
oview(1)<<"[usr] kicks [M]"
if(M.powerlevel >= 0)
M.move = 0
M.Death()
M<<"<center>You have been killed by [usr.name]"
world<<"<center>[M] has been killed by [usr]"
usr<<"<center>You killed [M]"

mob/proc/Death()
usr.loc=locate(1,1,1)


Problem description:
loading Battlesystem.dme
BS.dm:88:error:usr.random:undefined proc
BS.dm:140:error:usr.random:undefined proc

Battlesystem.dmb - 2 errors, 0 warnings (double-click on an error to jump to it)

Thanks in advance.

No user in proc, ungh.
Where there is usr in the procs() change them out with src.
It's much better and more bug prone.-
In response to Flame Sage
I'll try that.

Please not ethis is my first B.S.
In response to Crzylme
And another thing, where is the <code>random()</code> proc actually defined?
In response to Flame Sage
Since he's calling it incorrectly from click, I believe it'd be wrong, but if he called it correctly (usr.proc()), I believe usr abuse wouldn't count since it's being called from click.
obj 
attack
icon='attck.bmp'
New(client/C) screen_loc = "1,1", C.screen+=src
Click(usr.random = rand(1,2))
for(var/mob/M in oview(1))
if(usr.random==1)
usr.kothem()
if(usr.random==2)
usr.attackthem()

mob/proc/kothem(var/mob/M in oview(1))
usr.random = rand(1,5)
if(usr.random==1)
M.powerlevel -= (usr.powerlevel / 12)
if(M.powerlevel >= 1)
M.move = 0
M<<"You have been KOed"
usr<<"You KOed [M.name]"
sleep(20)
M.powerlevel = 5
M.move = 1
M<<"You can move once again"
if(usr.random==2)
M.powerlevel -= (usr.powerlevel / 15)
if(M.powerlevel >= 1)
M.move = 0
M<<"You have been KOed"
usr<<"You KOed [M.name]"
sleep(20)
M.powerlevel = 5
M.move = 1
M<<"You can move once again"
if(usr.random==3)
M.powerlevel -= (usr.powerlevel / 13)
if(M.powerlevel >= 1)
M.move = 0
M<<"You have been KOed"
usr<<"You KOed [M.name]"
sleep(20)
M.powerlevel = 5
M.move = 1
M<<"You can move once again"
if(usr.random==4)
M.powerlevel -= (usr.powerlevel / 16)
if(M.powerlevel >= 1)
M.move = 0
M<<"You have been KOed"
usr<<"You KOed [M.name]"
sleep(20)
M.powerlevel = 5
M.move = 1
M<<"You can move once again"
if(usr.random==5)
M.powerlevel -= (usr.powerlevel / 14)
if(M.powerlevel >= 1)
M.move = 0
M<<"You have been KOed"
usr<<"You KOed [M.name]"
sleep(20)
M.powerlevel = 5
M.move = 1
M<<"You can move once again"
mob/proc/attackthem(var/mob/M in oview(1))
usr.random = rand(1,5)
if(usr.random==1)
M.powerlevel -= (usr.powerlevel / 14)
oview(1)<<"[usr] kicks [M]"
if(M.powerlevel >= 0)
M.move = 0
M.Die()
M<<"<center>You have been killed by [usr.name]"
world<<"<center>[M] has been killed by [usr]"
usr<<"<center>You killed [M]"
if(usr.random==2)
M.powerlevel -= (usr.powerlevel / 16)
oview(1)<<"[usr] kicks [M]"
if(M.powerlevel >= 0)
M.move = 0
M.Death()
M<<"<center>You have been killed by [usr.name]"
world<<"<center>[M] has been killed by [usr]"
usr<<"<center>You killed [M]"
if(usr.random==3)
M.powerlevel -= (usr.powerlevel / 12)
oview(1)<<"[usr] kicks [M]"
if(M.powerlevel >= 0)
M.move = 0
M.Death()
M<<"<center>You have been killed by [usr.name]"
world<<"<center>[M] has been killed by [usr]"
usr<<"<center>You killed [M]"
if(usr.random==4)
M.powerlevel -= (usr.powerlevel / 15)
oview(1)<<"[usr] kicks [M]"
if(M.powerlevel >= 0)
M.move = 0
M.Death()
M<<"<center>You have been killed by [usr.name]"
world<<"<center>[M] has been killed by [usr]"
usr<<"<center>You killed [M]"
if(usr.random==5)
M.powerlevel -= (usr.powerlevel / 13)
oview(1)<<"[usr] kicks [M]"
if(M.powerlevel >= 0)
M.move = 0
M.Death()
M<<"<center>You have been killed by [usr.name]"
world<<"<center>[M] has been killed by [usr]"
usr<<"<center>You killed [M]"


mob/proc/Death()
usr.loc=locate(1,1,1)


client
New()
new/obj/attack(src)

..()


Another problem.

Now after I fixed the errors (thanks to your guys advice), I encountered another one.

When I test run the game, I click the attack button and nothing happens, is there something I did wrong?

(Yes, I do this against another mob)

Is there something else I should add to this so it works.

Thanks in advance for the advice!

In response to Crzylme
"Click(usr.random = rand(1,2))"
Why is that in Click()'s arglist?
In response to Hell Ramen
I'm not totally sure why I put it there. I guess it sounded good >_>
In response to Crzylme
You also should be using if(prob(50)), and if that var is only used to be random, make it a var in the proc.
In response to Mega fart cannon
He/she wants to use rand(a,b); not random(a,b) like they have.

-Ryan